Overview of Moose Query for entity relations
Moose Query is an internal domain-specific language (DSL) used to build navigation and scope queries for entities in Moose. It allows developers to explore two primary types of relations:
- Containment: Defines the containment hierarchy (e.g., a package containing a class, or a class containing methods). This is used to build containment trees (DAGs).
- Associations: Represents dependencies between entities (e.g., inheritance between a subclass and a superclass, or a reference between a behavioral entity and a type).
Moose Query relies on the model meta-description (accessible via #mooseDescription), where properties must be meta-described as container, source, or target.