This is the concept and design of the CASCaRA App which is a reference implementation used to validate the standard in preparation.
The model gives an overview of the use-cases and the architecture, whereas further details are developed via GitHub issues. The planning is done with a GitHub project.
CASCaRA is a project to standardize collaboration in systems engineering with respect to data format and ontology. A Request for Proposal (RFP) has been accepted by OMG in December 2024. Information in different formats and from diverse sources are transformed and integrated to a common knowledge graph.
A publicly available reference implementation shall validate the concepts of the standard as developed by the CASCaRA submission team. Validation is successful, if real-world data is ingested and the information needs of all users in the product lifecycle are met. Users and software vendors are given the opportunity to influence the project to assure their ideas are taken aboard. A joint effort on fundamental features (where differentiation isn't possible anyways) avoids duplicate work, improves quality and assures interoperability.
The reference implementation addresses the following aspects:
Major requirements (capabilities and characteristics) must be satisfied:
This model is authored with Archi using the ArchiMate 3.2 notation, then transformed to SpecIF via ArchiMate Open Exchange file format and then transformed to HTML. The CASCaRA App will support a similar workflow (among others) for the source data formats chosen.
| Element Type | Outline |
| Element Type | Views |
| Element Type | Heading |
A process to validate the conceptual and technical choices made by the standard in preparation. This is preliminary and needs further discussion and detailing with the target users. Ultimately, the standard must satisfy their use-cases and needs in general.
Subject to validation:

| Element Type | Viewpoint |
| Notation | Application Usage |
| Element Type | Heading |
The top-level module architecture of the CASCaRA App embedded in its system context.

| Element Type | Viewpoint |
| Notation | Application Structure |
The module architecture of a CASCaRA Server for collaboration along the product lifecycle and as a standardized knowledge base for AI.

| Element Type | Viewpoint |
| Notation | Application Cooperation |
| ▣ Server | shows | □ API4KP □ CASCaRA API □ CASCaRA Server □ Common Lib □ Document-DB Storage Adapter □ Graph-DB Storage Adapter □ MCP API ○ Cache |
Different paths of import processing of the CASCaRA App are shown. They correspond to the edges of the Magic Tetrahedron, which defines the sweet spot where round-trip transformations between RDF, JSON-LD, Object-oriented Data and GQL are possible without loss of information.
The input formats defined have different purpose or strength:
| Category | Format | Purpose and Strength |
|---|---|---|
| Processing | OO Classes | Data Processing, Version and Configuration Management, Multi-user Operation |
| Processing | .json | Equivalent with the above for schema checking, storage |
| Exchange | .cas.jsonld | Higher level graph language for API and LD-Processors: Entities and relationships as self-contained objects with URI, standardized type and designated values, explicit, easy to transform |
| Exchange | .cas.xml | Equivalent with the above for users preferring the XML ecosystem |
| Knowledge Graph | .cas.ttl | For use in the RDF/OWL ecosystem: Triple-Stores, SPARQL, SHACL, reasoning, visualization, elegant, compact, needs reasoning to uncover implicit meaning, low level graph („Graph Assembly Language“) |
| Knowledge Graph | .jsonld | Not planned, as it is redundant with the above |
| Knowledge Graph | .xml | Not planned, either |
| Property Graph | .gql, .cyp | For use in the ecosystem of Labelled Property Graphs: Graph Databases, superior performance, visualization |

| Element Type | Viewpoint |
| Notation | Application Usage |
| Element Type | Heading |

| Element Type | Viewpoint |
| Element Type | Model Elements (Glossary) |
A server consists of CASCaRA code accessing a (graph) database in the same container or even on the same virtual machine. One or more browser apps can access the server concurrently.
| Element Type | ArchiMate:Grouping |
| ⬚ 2-Layer Client-Server | composes | □ CASCaRA App □ CASCaRA Server |
| ▣ Configuration Options | shows | ⬚ 2-Layer Client-Server |
A server consists of CASCaRA code accessing a (graph) database in a separate container. One or more browser apps can access the server concurrently. When compared with the 2-Layer Client-Server scheme, this configuration has the advantage of being easier to update in a production environment at the cost of a somewhat inferior performance.
| Element Type | ArchiMate:Grouping |
| ⬚ 3-Layer Client-Server | composes | □ CASCaRA App □ CASCaRA Server □ Graph-DB Server |
| ▣ Configuration Options | shows | ⬚ 3-Layer Client-Server |
The data for the Multi-Vocabulary-Facility (MVF). It contains multiple vocabularies in domain and national languages plus standardized terms called 'concepts' with their synonym and antonym relationships. The concepts correspond to the classes of the CASCaRA Ontology. The relationships can be used for any-to-cas matching as well as the inverse.
| Element Type | Data Object |
| □ MVF Engine | reads | ○ any-to-cas.mvf |
| ▣ Import Processing | shows | ○ any-to-cas.mvf |
| ○ any-to-cas.mvf | specializes | ○ Configuration Data |
A set of SPARQL Protocol and RDF Query Language queries to extract relevant information from RDF data having a pattern conforming with the CASCARA Metamodel.
| Element Type | Data Object |
| □ SPARQL Engine | reads | ○ any-to-cas.sparql |
| ▣ Import Processing | shows | ○ any-to-cas.sparql |
| ○ any-to-cas.sparql | specializes | ○ Configuration Data |
Implements a REST API as designed in APIs for Knowledge Platforms - API4KP.
| Element Type | ArchiMate:ApplicationInterface |
| □ CASCaRA Server | composes | □ API4KP |
| □ Common Lib | serves | □ API4KP |
| ▣ Server | shows | □ API4KP |
Once transformed to RDF/Turtle, still according to the CASCaRA Metamodel, user-defined competency questions shall be applied to the test-data. Those queries shall validate that the graph fulfills the information needs of the various user roles accessing the data. An important criterion is that the same (i.e. standard) queries yield the desired results with data from different sources. Only then, normalization with respect to syntax and semantics is successful. It is expected, however, that the competency questions (the queries) depend on the ontology with the the current set of preferred terms.
| Element Type | ArchiMate:BusinessProcess |
| □ CASCaRA Validation Process | composes | □ Apply Competency Question |
| □ Check Schema, Consistency and Completeness | precedes | □ Apply Competency Question |
| □ Apply Competency Question | reads | ○ Business Use-Case |
| □ Triple-Store | realizes | □ Apply Competency Question |
| ▣ Validation Process | shows | □ Apply Competency Question |
Input data compliant with the CASCARA Metamodel are matched with the CASCaRA Ontology using a MVF Engine using the synonyms and antonyms defined in any-to-cas.mvf.
| Element Type | ArchiMate:ApplicationFunction |
| □ Check CASCaRA JSON-LD Schema □ Transform to Subgraph (SPARQL) □ Transform XML to JSON | precedes | □ Assign Ontology Class |
| □ Assign Ontology Class | precedes | □ Check CASCaRA JSON Schema |
| □ Assign Ontology Class | realizes | □ Weave Subgraph into Graph |
| □ MVF Engine | serves | □ Assign Ontology Class |
| ▣ Import Processing | shows | □ Assign Ontology Class |
A set of use-cases describing the user's need. Must be exemplary (concrete), relevant and representative.
| Element Type | Business Object |
| □ Apply Competency Question □ Check Schema, Consistency and Completeness □ Create Test-Data | reads | ○ Business Use-Case |
| ▣ Validation Process | shows | ○ Business Use-Case |
| Element Type | Data Object |
| □ Common Lib | accesses, stores | ○ Cache |
| □ Common Lib | contains | ○ Cache |
| ▣ Server | shows | ○ Cache |
Extends the methods of the Common Lib to a ReST API.
| Element Type | ArchiMate:ApplicationInterface |
| □ CASCaRA Server | composes | □ CASCaRA API |
| □ Common Lib | serves | □ CASCaRA API |
| □ CASCaRA API | serves | □ CASCaRA Server Adapter |
| ▣ Configuration Options ▣ Server | shows | □ CASCaRA API |
A web application for creating, reading, updating and deleting data elements. The app is configured by the classes loaded at initialization time. The classes govern the choice and the dialog layout for modifying the data. Thus, the same software is used for more or less complex applications.
The architecture includes a plugin mechanism to allow the deployment of new transformations or storage adapters without building and deploying a complete new image, for details see 'Design Plugin Mechanism'.
A major challenge is an optimal design of the programming class structure ('scaffold'), the representation in JSON-LD, RDF/Turtle and GQL according to the CASCaRA Metamodel. Goal is to allow loss-less transformations between all representations. For details see Optimize the 'magic tetrahedron'.
Details of the development, build, integration and deployment environment are discussed in 'Select Development Environment and Programming Language'.
Further aspects:
| Element Type | Application Component |
| ⬚ 2-Layer Client-Server ⬚ 3-Layer Client-Server ⬚ Single-User App | composes | □ CASCaRA App |
| □ CASCaRA App | composes | □ CASCaRA Server Adapter □ Common Lib □ Controller □ Export Adapter □ FS Storage Adapter □ Import Adapter □ KP Storage Adapter □ Model Integration Plugin □ Ontology Plugin □ Other Storage Adapter □ UI Plugin □ Validation Plugin |
| □ CASCaRA App | reads | ○ Source Data |
| □ CASCaRA App | realizes | □ Check Schema, Consistency and Completeness |
| □ File System | serves | □ CASCaRA App |
| □ CASCaRA App | serves | □ Ontology Plugin |
| ▣ App ▣ Configuration Options ▣ Validation Process | shows | □ CASCaRA App |
| □ CASCaRA App | writes | ○ Sink Data |
The CASCaRA Graph integrating partial information from different sources. It complies with the CASCARA Metamodel.
| Element Type | Business Object |
| □ Weave Subgraph into Graph | accesses, stores | ○ CASCaRA Graph |
| ○ Graph | realizes | ○ CASCaRA Graph |
| ▣ Import Processing | shows | ○ CASCaRA Graph |
A server-side IT application that may serve as a collaboration hub along the product lifecycle and as a standardized knowledge base for AI. Integrated product information is shared as a graph with create, read, update and delete function for individual nodes (entities) and edges (relationships) as well as packages containing a certain sub-graph. The CASCaRA Metamodel defines the graph structure. Import formats are .cas.ttl, .cas.jsonld and .cas.xml. Any .xml file can be imported, if a XSL stylesheet is provided for transformation to .cas.xml. Export formats are .cas.ttl, .cas.jsonld, .cas.xml and .html.
| Element Type | Application Component |
| □ CASCaRA Server | accesses, stores | ○ Graph Database |
| ⬚ 2-Layer Client-Server ⬚ 3-Layer Client-Server | composes | □ CASCaRA Server |
| □ CASCaRA Server | composes | □ API4KP □ CASCaRA API □ Common Lib □ Document-DB Storage Adapter □ Graph-DB Storage Adapter □ MCP API |
| □ CASCaRA Server | contains | ○ Graph Database |
| ▣ Configuration Options ▣ Server | shows | □ CASCaRA Server |
| Element Type | Application Component |
| □ CASCaRA App | composes | □ CASCaRA Server Adapter |
| □ CASCaRA API | serves | □ CASCaRA Server Adapter |
| □ CASCaRA Server Adapter | serves | □ Common Lib |
| ▣ Configuration Options | shows | □ CASCaRA Server Adapter |
| Element Type | ArchiMate:BusinessProcess |
| □ CASCaRA Validation Process | composes | □ Apply Competency Question □ Check Schema, Consistency and Completeness □ Create Test-Data |
| ▣ Validation Process | shows | □ CASCaRA Validation Process |
The subgraph with assigned ontology classes is checked to comply with the CASCARA Metamodel.
| Element Type | ArchiMate:ApplicationFunction |
| □ Assign Ontology Class | precedes | □ Check CASCaRA JSON Schema |
| □ Check CASCaRA JSON Schema | precedes | □ Check Package Constraints |
| □ Check CASCaRA JSON Schema | realizes | □ Weave Subgraph into Graph |
| □ JSON Schema Engine | serves | □ Check CASCaRA JSON Schema |
| ▣ Import Processing | shows | □ Check CASCaRA JSON Schema |
Check input data with the CASCaRA JSON-LD Schemata.
| Element Type | ArchiMate:ApplicationFunction |
| □ Create CASCaRA Subgraph | contains | □ Check CASCaRA JSON-LD Schema |
| □ Read File | precedes | □ Check CASCaRA JSON-LD Schema |
| □ Check CASCaRA JSON-LD Schema | precedes | □ Assign Ontology Class |
| □ JSON Schema Engine | serves | □ Check CASCaRA JSON-LD Schema |
| ▣ Import Processing | shows | □ Check CASCaRA JSON-LD Schema |
Check input data with the CASCaRA XML Schemata.
| Element Type | ArchiMate:ApplicationFunction |
| □ Read File | precedes | □ Check CASCaRA XML Schema |
| □ Check CASCaRA XML Schema | precedes | □ Transform XML to JSON |
| □ Check CASCaRA XML Schema | realizes | □ Create CASCaRA Subgraph |
| ▣ Import Processing | shows | □ Check CASCaRA XML Schema |
Package constraints are checked such as:
| Element Type | ArchiMate:ApplicationFunction |
| □ Weave Subgraph into Graph | contains | □ Check Package Constraints |
| □ Check CASCaRA JSON Schema | precedes | □ Check Package Constraints |
| □ Check Package Constraints | precedes | □ Integrate Subgraph |
| ▣ Import Processing | shows | □ Check Package Constraints |
Once transformed according to the CASCaRA Metamodel, the data shall be checked with respect to schema (shape, format), consistency (constraints) and completeness. Both formally and by expert inspection.
| Element Type | ArchiMate:BusinessProcess |
| □ CASCaRA Validation Process | composes | □ Check Schema, Consistency and Completeness |
| □ Create Test-Data | precedes | □ Check Schema, Consistency and Completeness |
| □ Check Schema, Consistency and Completeness | precedes | □ Apply Competency Question |
| □ Check Schema, Consistency and Completeness | reads | ○ Business Use-Case |
| □ CASCaRA App | realizes | □ Check Schema, Consistency and Completeness |
| ▣ Validation Process | shows | □ Check Schema, Consistency and Completeness |
Shared by different CASCaRA Deployment Packages such as Browser App and Server.
Offers the following functions:
| Element Type | Application Component |
| □ Common Lib | accesses, stores | ○ Cache |
| □ CASCaRA App □ CASCaRA Server | composes | □ Common Lib |
| □ Common Lib | contains | ○ Cache |
| □ CASCaRA Server Adapter □ Document-DB Storage Adapter □ Export Adapter □ Graph-DB Storage Adapter □ Import Adapter | serves | □ Common Lib |
| □ Common Lib | serves | □ API4KP □ CASCaRA API □ MCP API |
| ▣ Configuration Options ▣ Server | shows | □ Common Lib |
| Element Type | Data Object |
| ▣ Import Processing | shows | ○ Configuration Data |
| ○ any-to-cas.mvf ○ any-to-cas.sparql ○ itemType.json ○ reqif-to-cas.xsl | specializes | ○ Configuration Data |
The controller is the 'main' component and is in charge of managing the execution of requested services in reaction on user or server events. In the easiest case ES promises are used and the scheduling is left to the event queuing of the execution environment. But certain services may require coordination or user feedback (via spinner or log message, for example). So it is the responsibility of the controller to enable and disable elements creating events to maintain the integrity of the app and the data.
Is usually provided by the application framework. An option is to implement an event dispatcher controlled by a state-machine.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ Controller |
| □ Export Adapter □ FS Storage Adapter □ Import Adapter □ KP Storage Adapter □ Model Integration Plugin □ Other Storage Adapter □ UI Plugin □ Validation Plugin | serves | □ Controller |
| ▣ App | shows | □ Controller |
Input information as provided by various authoring tools often comes in hierarchical order. Whatever the input format is, it is transformed to a subgraph complying with the CASCARA Metamodel.
| Element Type | ArchiMate:BusinessFunction |
| □ Create CASCaRA Subgraph | contains | □ Check CASCaRA JSON-LD Schema |
| □ Create CASCaRA Subgraph | precedes | □ Weave Subgraph into Graph |
| □ Create CASCaRA Subgraph | reads | ○ Partial Information |
| □ Check CASCaRA XML Schema □ Read File □ Transform to Subgraph (SPARQL) □ Transform to Subgraph (XSLT) □ Transform XML to JSON | realizes | □ Create CASCaRA Subgraph |
| ▣ Import Processing | shows | □ Create CASCaRA Subgraph |
Create test-data in original format as produced by popular authoring systems of the domain, for example IBM DOORS for requirement management or Cameo for systems engineering.
Initially, test-data should be small and cover relevant and typical aspects of the domain to drive and validate the development of transformations. Later on, real or near-real project data 'from the field' with growing complexity should be supplied.
| Element Type | ArchiMate:BusinessProcess |
| □ CASCaRA Validation Process | composes | □ Create Test-Data |
| □ Create Test-Data | precedes | □ Check Schema, Consistency and Completeness |
| □ Create Test-Data | reads | ○ Business Use-Case |
| □ Original Authoring System | realizes | □ Create Test-Data |
| ▣ Validation Process | shows | □ Create Test-Data |
| Element Type | Data Object |
| □ Export Adapter □ Import Adapter | accesses, stores | ○ data.cas.jsonld |
| ⬚ Single-User App | contains | ○ data.cas.jsonld |
| ▣ Configuration Options | shows | ○ data.cas.jsonld |
Interfaces a document database, either embedded or in an external container.
| Element Type | Application Component |
| □ CASCaRA Server | composes | □ Document-DB Storage Adapter |
| □ Document-DB Storage Adapter | serves | □ Common Lib |
| ▣ Server | shows | □ Document-DB Storage Adapter |
Transforms a selected subgraph from the internal data format according to the CASCaRA Metamodel to a desired output format.
The following transformations are planned for validating the approach (i.e. the standard to submit):
| Element Type | Application Component |
| □ Export Adapter | accesses, stores | ○ data.cas.jsonld |
| □ CASCaRA App | composes | □ Export Adapter |
| □ File System □ Ontology Plugin □ Web-Server | serves | □ Export Adapter |
| □ Export Adapter | serves | □ Common Lib □ Controller |
| ▣ App ▣ Configuration Options ▣ Validation Process | shows | □ Export Adapter |
| □ Export Adapter | writes | ○ Test Data [RDF] |
A network file system. Consider to use
| Element Type | Application Component |
| □ File System | accesses, stores | ○ Knowledge File ○ Sink Data ○ Source Data ○ Test Data [Original] ○ Test Data [RDF] |
| □ File System | contains | ○ Knowledge File ○ Sink Data ○ Source Data ○ Test Data [Original] ○ Test Data [RDF] |
| □ File System | serves | □ CASCaRA App □ Export Adapter □ FS Storage Adapter □ Import Adapter □ Original Authoring System □ Triple-Store |
| ▣ App ▣ Validation Process | shows | □ File System |
Store a subgraph in or retrieve it from a file system.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ FS Storage Adapter |
| □ File System | serves | □ FS Storage Adapter |
| □ FS Storage Adapter | serves | □ Controller |
| ▣ App | shows | □ FS Storage Adapter |
The CASCaRA Graph integrating partial information from different sources. It complies with the CASCARA Metamodel.
| Element Type | Data Object |
| □ Integrate Subgraph | reads/writes | ○ Graph |
| ○ Graph | realizes | ○ CASCaRA Graph |
| ▣ Import Processing | shows | ○ Graph |
| Element Type | Data Object |
| □ CASCaRA Server | accesses, stores | ○ Graph Database |
| □ CASCaRA Server | contains | ○ Graph Database |
| ▣ Configuration Options | shows | ○ Graph Database |
A container with a standard Graph Database, alternatively a Document Database.
| Element Type | Application Component |
| ⬚ 3-Layer Client-Server | composes | □ Graph-DB Server |
| □ Graph-DB Server | serves | □ Graph-DB Storage Adapter |
| ▣ Configuration Options | shows | □ Graph-DB Server |
Interfaces a graph database, either embedded or in an external container.
| Element Type | Application Component |
| □ CASCaRA Server | composes | □ Graph-DB Storage Adapter |
| □ Graph-DB Server | serves | □ Graph-DB Storage Adapter |
| □ Graph-DB Storage Adapter | serves | □ Common Lib |
| ▣ Configuration Options ▣ Server | shows | □ Graph-DB Storage Adapter |
Transforms a source data format to the internal data format according to the CASCaRA Metamodel. A full transformation of the source data may not be necessary for the given use-cases, so emphasis is put on the relevant entities and relationships of the source data.
Transformations may use:
The following transformations are planned for validating the approach (the standard to submit):
| Element Type | Application Component |
| □ Import Adapter | accesses, stores | ○ data.cas.jsonld |
| □ CASCaRA App | composes | □ Import Adapter |
| □ Import Adapter | reads | ○ Test Data [Original] |
| □ File System □ Ontology Plugin □ Web-Server | serves | □ Import Adapter |
| □ Import Adapter | serves | □ Common Lib □ Controller |
| ▣ App ▣ Configuration Options ▣ Validation Process | shows | □ Import Adapter |
Input data in XML format. A pattern compatible with the CASCaRA Metamodel is assumed. More precisely: It must comply with the CASCaRA JSON-LD Schemata.
See example files:
| Element Type | Data Object |
| □ Read File | reads | ○ input.cas.jsonld |
| ○ input.cas.jsonld | realizes | ○ Partial Information |
| ▣ Import Processing | shows | ○ input.cas.jsonld |
| ○ input.cas.jsonld | specializes | ○ Source Data |
Input data in RDF Turtle format. A pattern compatible with the CASCaRA Metamodel is assumed to fully interpret the data.
See example files:
| Element Type | Data Object |
| □ Read File | reads | ○ input.cas.ttl |
| ○ input.cas.ttl | realizes | ○ Partial Information |
| ▣ Import Processing | shows | ○ input.cas.ttl |
| ○ input.cas.ttl | specializes | ○ Source Data |
Input data in XML format. A pattern compatible with the CASCaRA Metamodel is assumed.
See example files:
| Element Type | Data Object |
| □ Read File | reads | ○ input.cas.xml |
| ○ input.cas.xml | realizes | ○ Partial Information |
| ▣ Import Processing | shows | ○ input.cas.xml |
| ○ input.cas.xml | specializes | ○ Source Data |
Input data in ReqIF format. It is assumed that it complies with the OMG Standard Requirements Interchange Format (ReqIF) and with the Prostep ivip Implementation Guideline ReqIF.
| Element Type | Data Object |
| □ Read File | reads | ○ input.reqif |
| ○ input.reqif | realizes | ○ Partial Information |
| ▣ Import Processing | shows | ○ input.reqif |
| ○ input.reqif | specializes | ○ Source Data |
The final subgraph is integrated in the common Graph, so that data from different sources in various formats can be analysed in a common context. It is used for display, exchange and reference by other applications including AI agents.
| Element Type | ArchiMate:ApplicationFunction |
| □ Check Package Constraints | precedes | □ Integrate Subgraph |
| □ Integrate Subgraph | reads/writes | ○ Graph |
| □ Integrate Subgraph | realizes | □ Weave Subgraph into Graph |
| ▣ Import Processing | shows | □ Integrate Subgraph |
JSON Schema declaration per CASCARA Metamodel item type, i.e. every block on the metamodel diagram. The latest CASCaRA schema files are published here. The web-service is CORS enabled, thus the schema files can be retrieved from any other web domain.
| Element Type | Data Object |
| □ JSON Schema Engine | reads | ○ itemType.json |
| ▣ Import Processing | shows | ○ itemType.json |
| ○ itemType.json | specializes | ○ Configuration Data |
An engine checking a JSON or JSON-LD data set using JSON Schema declarations per CASCaRA Metamodel item type, see itemType.json.
| Element Type | ArchiMate:ApplicationService |
| □ JSON Schema Engine | reads | ○ itemType.json |
| □ JSON Schema Engine | serves | □ Check CASCaRA JSON Schema □ Check CASCaRA JSON-LD Schema |
| ▣ Import Processing | shows | □ JSON Schema Engine |
A subgraph represented as RDF/Turtle or JSON-LD.
| Element Type | Data Object |
| □ File System | accesses, stores | ○ Knowledge File |
| □ File System | contains | ○ Knowledge File |
| ▣ App | shows | ○ Knowledge File |
Consider to use a backend with:
| Element Type | Application Component |
| □ Knowledge Platform | serves | □ KP Storage Adapter |
| ▣ App | shows | □ Knowledge Platform |
Store a subgraph in or retrieve it from a knowledge platform.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ KP Storage Adapter |
| □ Knowledge Platform | serves | □ KP Storage Adapter |
| □ KP Storage Adapter | serves | □ Controller |
| ▣ App | shows | □ KP Storage Adapter |
A Model Context Protocol (MCP) API is an interface designed to manage and exchange context information between AI models, agents, or services. Its main purpose is to standardize how context—such as user intent, conversation history, environment variables, or task state—is represented, shared, and updated during interactions with or between AI systems.
Key features of a Model Context Protocol API:
Typical use cases:
Source: GitHub Copilot.
| Element Type | ArchiMate:ApplicationInterface |
| □ CASCaRA Server | composes | □ MCP API |
| □ Common Lib | serves | □ MCP API |
| ▣ Server | shows | □ MCP API |
Integrates a new subgraph with the existing graph, e.g. by combining nodes representing the 'same' artifact. Two artefacts are considered the same, if class and title are equal. A preliminary decision has been taken to keep the original nodes and to create an 'umbrella' node pointing to two or more nodes of the same artifact.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ Model Integration Plugin |
| □ Ontology Plugin | serves | □ Model Integration Plugin |
| □ Model Integration Plugin | serves | □ Controller |
| ▣ App | shows | □ Model Integration Plugin |
A Multi-Vocabulary-Facility mapping terms of multiple domain languages to the CASCaRA ontology terms and vice versa. The OMG Standard Multiple Vocabulary Facility (MVF) is partially implemented for that purpose.
| Element Type | ArchiMate:ApplicationService |
| □ MVF Engine | reads | ○ any-to-cas.mvf |
| □ MVF Engine | serves | □ Assign Ontology Class |
| ▣ Import Processing | shows | □ MVF Engine |
The ontology plugin provides services such as Assign Ontology Class.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ Ontology Plugin |
| □ CASCaRA App | serves | □ Ontology Plugin |
| □ Ontology Plugin | serves | □ Export Adapter □ Import Adapter □ Model Integration Plugin □ UI Plugin □ Validation Plugin |
| ▣ App | shows | □ Ontology Plugin |
A system to create and maintain information somewhere in the product lifecycle. For example IBM DOORS for requirements management or Dassault Cameo for systems engineering.
| Element Type | Application Component |
| □ Original Authoring System | realizes | □ Create Test-Data |
| □ File System | serves | □ Original Authoring System |
| ▣ Validation Process | shows | □ Original Authoring System |
| □ Original Authoring System | writes | ○ Test Data [Original] |
Store a subgraph in or retrieve it from any other storage system as required.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ Other Storage Adapter |
| □ Other Storage Adapter | serves | □ Controller |
| ▣ App | shows | □ Other Storage Adapter |
Data provided by various authoring tools such as System Engineering Modeling Tools, Mechanical or Electrical CAD Tools. All are partial information concerning the same product and shall be analyzed and used in a common context.
| Element Type | Business Object |
| □ Create CASCaRA Subgraph | reads | ○ Partial Information |
| ○ input.cas.jsonld ○ input.cas.ttl ○ input.cas.xml ○ input.reqif | realizes | ○ Partial Information |
| ▣ Import Processing | shows | ○ Partial Information |
Read a file from local disk or from URL.
| Element Type | ArchiMate:ApplicationFunction |
| □ Read File | precedes | □ Check CASCaRA JSON-LD Schema □ Check CASCaRA XML Schema □ Transform to Subgraph (SPARQL) □ Transform to Subgraph (XSLT) |
| □ Read File | reads | ○ input.cas.jsonld ○ input.cas.ttl ○ input.cas.xml ○ input.reqif |
| □ Read File | realizes | □ Create CASCaRA Subgraph |
| ▣ Import Processing | shows | □ Read File |
A XSL stylesheet to extract relevant data from a ReqIF file. It is assumed that the source file to transform complies with the OMG Standard Requirements Interchange Format (ReqIF) and with the Prostep ivip Implementation Guideline ReqIF.
The fact that the ReqIF Implementation Guideline proposes certain attribute names as a convention, but no names for the entities (called OBJECT-TYPES) themselves, is a challenge for semantic interoperability. However, daily practice has adopted a number of entity names which can be included in the any-to-cas.mvf to find appropriate ontology classes. It is advised to design the XSL stylesheet for ReqIF in a way that the LONG-NAME of all OBJECT-TYPES is taken as entity class name and to leave all mapping with ontology terms to a subsequent process step, see Assign Ontology Class.
| Element Type | Data Object |
| □ Transform to Subgraph (XSLT) | reads | ○ reqif-to-cas.xsl |
| ▣ Import Processing | shows | ○ reqif-to-cas.xsl |
| ○ reqif-to-cas.xsl | specializes | ○ Configuration Data |
A stand-alone browser app. Data persistence is achieved by exporting a comprehensive file in JSON-LD and re-importing it in the next session. In addition, a browser database can be used.
| Element Type | ArchiMate:Grouping |
| ⬚ Single-User App | composes | □ CASCaRA App |
| ⬚ Single-User App | contains | ○ data.cas.jsonld |
| ▣ Configuration Options | shows | ⬚ Single-User App |
The most general term for data produced by the CASCaRA App for further processing.
| Element Type | Data Object |
| □ File System □ Web-Server | accesses, stores | ○ Sink Data |
| □ File System □ Web-Server | contains | ○ Sink Data |
| ▣ App ▣ Validation Process | shows | ○ Sink Data |
| ○ Test Data [RDF] | specializes | ○ Sink Data |
| □ CASCaRA App | writes | ○ Sink Data |
The most general term for data ingested by the CASCaRA App from previous processing steps.
| Element Type | Data Object |
| □ File System □ Web-Server | accesses, stores | ○ Source Data |
| □ File System □ Web-Server | contains | ○ Source Data |
| □ CASCaRA App | reads | ○ Source Data |
| ▣ App ▣ Import Processing ▣ Validation Process | shows | ○ Source Data |
| ○ input.cas.jsonld ○ input.cas.ttl ○ input.cas.xml ○ input.reqif ○ Test Data [Original] | specializes | ○ Source Data |
An engine performing a transformation using the SPARQL Protocol and RDF Query Language.
| Element Type | ArchiMate:ApplicationService |
| □ SPARQL Engine | reads | ○ any-to-cas.sparql |
| □ SPARQL Engine | serves | □ Transform to Subgraph (SPARQL) |
| ▣ Import Processing | shows | □ SPARQL Engine |
Test data in a format provided by an Original Authoring System.
| Element Type | Data Object |
| □ File System | accesses, stores | ○ Test Data [Original] |
| □ File System | contains | ○ Test Data [Original] |
| □ Import Adapter | reads | ○ Test Data [Original] |
| ▣ Validation Process | shows | ○ Test Data [Original] |
| ○ Test Data [Original] | specializes | ○ Source Data |
| □ Original Authoring System | writes | ○ Test Data [Original] |
Test data in RDF/Turtle format to allow further processing and reasoning with tools of the RDF ecosystem.
| Element Type | Data Object |
| □ File System | accesses, stores | ○ Test Data [RDF] |
| □ File System | contains | ○ Test Data [RDF] |
| □ Triple-Store | reads | ○ Test Data [RDF] |
| ▣ Validation Process | shows | ○ Test Data [RDF] |
| ○ Test Data [RDF] | specializes | ○ Sink Data |
| □ Export Adapter | writes | ○ Test Data [RDF] |
Transform the input data with its original Turtle format to a CASCaRA compliant subgraph. SPARQL queries defined in any-to-cas.sparql are used.
| Element Type | ArchiMate:ApplicationFunction |
| □ Read File | precedes | □ Transform to Subgraph (SPARQL) |
| □ Transform to Subgraph (SPARQL) | precedes | □ Assign Ontology Class |
| □ Transform to Subgraph (SPARQL) | realizes | □ Create CASCaRA Subgraph |
| □ SPARQL Engine | serves | □ Transform to Subgraph (SPARQL) |
| ▣ Import Processing | shows | □ Transform to Subgraph (SPARQL) |
Transform the input data with its original XML format (such as ReqIF) to a CASCaRA compliant subgraph. A stylesheet per input format such as reqif-to-cas.xsl is used. It is advised that the stylesheet is designed to keep the original terminology, so that the transformation is as generally applicable as possible and to assign CASCaRA Ontology classes in a subsequent process step.
| Element Type | ArchiMate:ApplicationFunction |
| □ Read File | precedes | □ Transform to Subgraph (XSLT) |
| □ Transform to Subgraph (XSLT) | precedes | □ Transform XML to JSON |
| □ Transform to Subgraph (XSLT) | reads | ○ reqif-to-cas.xsl |
| □ Transform to Subgraph (XSLT) | realizes | □ Create CASCaRA Subgraph |
| □ XSLT Engine | serves | □ Transform to Subgraph (XSLT) |
| ▣ Import Processing | shows | □ Transform to Subgraph (XSLT) |
XML data compliant with the CASCaRA metamodel is transformed to the equivalent CASCaRA JSON-LD format.
| Element Type | ArchiMate:ApplicationFunction |
| □ Check CASCaRA XML Schema □ Transform to Subgraph (XSLT) | precedes | □ Transform XML to JSON |
| □ Transform XML to JSON | precedes | □ Assign Ontology Class |
| □ Transform XML to JSON | realizes | □ Create CASCaRA Subgraph |
| ▣ Import Processing | shows | □ Transform XML to JSON |
A standard database for knowledge graphs, e.g. Apache Fuseki.
| Element Type | Application Component |
| □ Triple-Store | reads | ○ Test Data [RDF] |
| □ Triple-Store | realizes | □ Apply Competency Question |
| □ File System | serves | □ Triple-Store |
| ▣ Validation Process | shows | □ Triple-Store |
User Interface, such as
The user-interface is class-driven, i.e. the details of the entity, relationship or organizer classes with their respective property classes determine the UI. For example, an editing form for a class with three property classes will have 3 fields expecting input according to its datatype and range. Or a graphical editor for a UML interaction diagram will present a tailored palette with drawing rules for interaction diagrams.
| Element Type | Application Component |
| □ CASCaRA App | composes | □ UI Plugin |
| □ Ontology Plugin | serves | □ UI Plugin |
| □ UI Plugin | serves | □ Controller |
| ▣ App ▣ Validation Process | shows | □ UI Plugin |
Validates a package or a collection of packages, with
| Element Type | Application Component |
| □ CASCaRA App | composes | □ Validation Plugin |
| □ Ontology Plugin | serves | □ Validation Plugin |
| □ Validation Plugin | serves | □ Controller |
| ▣ App ▣ Validation Process | shows | □ Validation Plugin |
A subgraph transformed form input data is first mapped to the CASCaRA Ontology, checked by schema and constraints and then integrated in the common Graph.
| Element Type | ArchiMate:BusinessFunction |
| □ Weave Subgraph into Graph | accesses, stores | ○ CASCaRA Graph |
| □ Weave Subgraph into Graph | contains | □ Check Package Constraints |
| □ Create CASCaRA Subgraph | precedes | □ Weave Subgraph into Graph |
| □ Assign Ontology Class □ Check CASCaRA JSON Schema □ Integrate Subgraph | realizes | □ Weave Subgraph into Graph |
| ▣ Import Processing | shows | □ Weave Subgraph into Graph |
A standard web-server used for publication and exchange of information.
| Element Type | Application Component |
| □ Web-Server | accesses, stores | ○ Sink Data ○ Source Data |
| □ Web-Server | contains | ○ Sink Data ○ Source Data |
| □ Web-Server | serves | □ Export Adapter □ Import Adapter |
| ▣ App | shows | □ Web-Server |
An engine performing a transformation using the Extensible Stylesheet Language (XSL).
| Element Type | ArchiMate:ApplicationService |
| □ XSLT Engine | serves | □ Transform to Subgraph (XSLT) |
| ▣ Import Processing | shows | □ XSLT Engine |