
Description
Investigate inheritance between MPS languages and between concepts — extended languages, superconcepts, implemented interfaces, sub-/assignable concepts, and cross-language specialization. Use when tracing language hierarchies, finding extension points, or checking concept assignability.
SKILL.md
MPS Language and Concept Inheritance
Two layers of inheritance matter in MPS: module-level (one language extends another) and concept-level (concepts inherit superconcepts and implement interface concepts).
Critical Directives
- Concept-level inheritance is realized through module-level extension — different
languageReferenceon a concept and itssuperConceptindicates a cross-language specialization, which usually requires the consumer's language to extend the parent. GET_ALL_SUPERCONCEPTSgives the full transitive closure in a single call — prefer it over recursive walking ofsuperConcept/superInterfaces.IS_SUBCONCEPT_OFis the fastest way to verify a single assignability question; do not enumerateGET_SUB_CONCEPTSand search by hand.
Module-Level Inheritance (Language Extension)
One language can inherit the structure and functionality of another via an "extends" relationship.
- Tool:
mps_mcp_get_project_structure(withincludeDependencies: true). - Workflow: check the
extendedLanguagesfield in the response for the target language. This lists direct parent languages. - Hierarchy tracing: recursively call this tool for each parent to build the full inheritance tree.
Concept-Level Inheritance
Upward Hierarchy (Ancestors)
- Direct ancestors: use
mps_mcp_get_concept_details. The response includes:superConcept: immediate parent concept.superInterfaces: immediate implemented interface concepts.superConceptContainingProjectandsuperInterfaceDetails[*].containingProjectwhen an ancestor comes from another open MPS project and is read-only from the selected project.
- Full closure: use
mps_mcp_query_structurewithGET_ALL_SUPERCONCEPTSto get the complete chain of ancestors and interfaces in one call.
Downward Hierarchy (Descendants)
- Specializations: use
mps_mcp_query_structurewithGET_SUB_CONCEPTSto find all concepts (direct and indirect) inheriting from a base. - Implementations: use
GET_ASSIGNABLE_CONCEPTSto retrieve only non-abstract subconcepts that can be instantiated.
Strategic Analysis
- Verification: use
mps_mcp_query_structurewithIS_SUBCONCEPT_OFto check if concept A inherits from concept B. - Cross-language extension: compare the
languageReferenceof a concept with that of itssuperConcept. Different references indicate a language boundary specialization; foreign-project ancestors are marked explicitly with the containing-project fields. - Discovery: use
mps_mcp_search_conceptsto find base concepts (e.g. "Statement") for extension. - Implicit dependencies: if a model uses a language without an explicit import, check if its used languages extend the missing language via
mps_mcp_get_project_structure.
Best Practice
Identify extension points by first checking high-level extendedLanguages via mps_mcp_get_project_structure, then use mps_mcp_get_concept_details to pinpoint cross-language concept specializations.
Related Skills
mps-language-analysis— start here when you need general language inspection, not just inheritance.mps-aspect-structure-concepts— when you intend to define new concepts (with their own super/interface lists).mps-aspect-accessories— forextendedLanguagesvsusedLanguagessemantics at module level.
More skills from the MPS repository
View all 31 skillsmps-aspect-accessories
configure JetBrains MPS module dependencies
Jul 17ArchitectureConfigurationEngineeringmps-aspect-actions
define and edit MPS node factories
Jul 17ArchitectureEngineeringmps-aspect-behavior
define and edit MPS concept behavior
Jul 13ArchitectureEngineeringmps-aspect-constraints
define JetBrains MPS language constraints
Jul 23ArchitectureCode Analysismps-aspect-dataflow
define and debug MPS dataflow builders
Jul 13Data Analysismps-aspect-editor
define MPS editor layouts
Jul 23DesignUI Components
More from JetBrains
View publishermps-aspect-editor-menus-and-keymaps
author MPS editor menus and keymaps
MPS
Jul 23EngineeringUI Componentsmps-aspect-generation-plan
modify MPS generation plans
MPS
Jul 13ArchitectureEngineeringmps-aspect-generator
define JetBrains MPS generator rules
MPS
Jul 17ArchitectureCode AnalysisEngineeringmps-aspect-intentions
define and edit MPS intentions
MPS
Jul 23ArchitectureEngineeringmps-aspect-migrations
author and debug MPS migration scripts
MPS
Jul 13DebuggingMigrationmps-aspect-structure-concepts
define concepts in MPS structure aspect
MPS
Jul 23Data Modeling