A compositional approach to creating architecture frameworks with an application to distributed AI systems | Synapse