Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# CASCaRA-Reference-Implementation
# CASCaRA Validation Tool (Reference Implementation)

[CASCaRA](https://cascara.gfse.org) (formerly CASCaDE) is a project to standardize collaboration in systems engineering with respect to data format and ontology.
[CASCaRA](https://cascara.gfse.org) (formerly CASCaDE) is a project to standardize collaboration in systems engineering
with respect to data format and ontology.
A [Request for Proposal (RFP)](https://www.omg.org/cgi-bin/doc?mantis/24-12-03.pdf) 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 CASCaDE submission team.
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 and needs are met.
A joint effort on fundamental features (where differentiation isn't possible anyways) avoids duplicate work,
Expand All @@ -13,29 +14,29 @@ improves quality and assures interoperability.
The reference implementation addresses the following aspects:
- Check data format and constraints according to the [CASCaRA meta-model](https://product-information-graph.org/doc/metamodel/latest/)
to assure data quality.
- Persistently store and retrieve PIG data using the standardized API (to be defined).
- View and edit PIG data in a web-browser.
- Persistently store and retrieve CASCaRA data using the standardized API (to be defined).
- View and edit CASCaRA data in a web-browser.
- Transform input data with the formats ReqIF, SysML v1 and v2, STEP and FMI/SSP. Other input formats may follow.
- Integrate input data with different formats to an interwoven knowledge graph.
- Create output data with the formats RDF/Turtle, JSON-LD and XHTML.
- Provide a set of *standard queries* ('competency questions') that work for all data complying with the meta-model.
- Provide a set of *standard queries* ('competency questions') that work for all data no matter the original format and naming conventions.
- Bring the data into a standardized form to facilitate machine learning and AI applications.

Major requirements (capabilities and characteristics) must be satisfied:
- Separate syntax and semantics: The software must not be changed, if the ontology is further developed.
- Comply with *web-technology* and avoid propriatory formats.
- Extend the software using a documented, if possible standardized plug-in mechanism.

Collaboration rules:
## Collaboration rules:
- This repository has two protected branches, namely 'main' and 'dev', where 'dev' is the default.
- The 'main' branch keeps just the released versions. In particular, it has a 'docs' folder which is published by GitHub pages.
- The 'dev' branch merges all development efforts, until a release is made. Then, a pull-request 'main'<--'dev' is initiated.
- All development tasks are planned in [GfSE/projects/5](https://github.com/orgs/GfSE/projects/5).
- When a task (an issue) is assigned and work is about to start, the task status is changed to 'in progress' and a new branch is opened
from within the task. The branch name will thus begin with the issue number.
- When the issue is done and all tests pass, a pull-request 'dev'<--'NN-issue-name' is initiated.
- When a task is done (an issue is resolved) and all tests pass, a pull-request 'dev'<--'NN-issue-name' is initiated.
A number of rules apply. Among others, a review by GitHub Copilot is started automatically.
It is advised to respond to the suggestions and to follow them unless wrong. In addition, a team member shall be
It is advised to respond to the suggestions and to follow them unless inadequate. In addition, a team member is
asked to review the changes and to approve the pull-request.
- If all tasks/issues for a given release are closed and all tests pass, the release can be made and a merge with
'main' may be initiated as described above.
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 12 additions & 9 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "CASCaRA-Validation-Tool",
"version": "0.2.6",
"version": "0.2.7",
"private": true,
"scripts": {
"prebuild": "node scripts/generate-build-info.js",
Expand Down
3 changes: 2 additions & 1 deletion public/assets/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ <h2 id="cascara-schema-server-content">Content</h2>
<li>
<p>
<strong>JSON-LD Schemata:</strong> The versions as developed by the CASCaRA Submission Team:<br />
• <a href="./schema/2026-05-08/jsonld/">2026-05-08 (latest)</a><br />
• <a href="./schema/2026-07-03/jsonld/">2026-07-03 (latest)</a><br />
• <a href="./schema/2026-05-08/jsonld/">2026-05-08</a><br />
• <a href="./schema/2026-02-18/jsonld/">2026-02-18</a><br />
• <a href="./schema/2026-01-12/jsonld/">2026-01-12</a>
</p>
Expand Down
56 changes: 28 additions & 28 deletions public/assets/jsonld/Entity.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Entity.json",
"$id": "http://product-information-graph.org/schema/2026-07-03/jsonld/Entity.json",
"title": "CASCaRA Entity Schema for JSON-LD",
"description": "Validates <strong>Entity</strong> class definitions for individual information objects. Configures which properties (cas:enumeratedProperty) and which outgoing links are allowed (cas:enumeratedTargetLink). Entities classify primary information objects such as Requirements, Components and Diagrams in a systems engineering context. Supports specialization hierarchies via cas:specializes and optional visual representation via cas:icon.",
"type": "object",
Expand Down Expand Up @@ -108,34 +108,34 @@
"pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$",
"description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL"
},
"idObject": {
"type": "object",
"required": [ "@id" ],
"properties": {
"@id": {
"$ref": "#/$defs/idString"
}
},
"additionalProperties": false,
"description": "JSON-LD ID object wrapper"
"idObject": {
"type": "object",
"required": [ "@id" ],
"properties": {
"@id": {
"$ref": "#/$defs/idString"
}
},
"additionalProperties": false,
"description": "JSON-LD ID object wrapper"
},
"languageValue": {
"type": "object",
"required": [ "@value" ],
"properties": {
"@value": {
"type": "string",
"minLength": 1,
"description": "The actual text content"
},
"languageValue": {
"type": "object",
"required": [ "@value" ],
"properties": {
"@value": {
"type": "string",
"minLength": 1,
"description": "The actual text content"
},
"@language": {
"type": "string",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"description": "IETF language tag (e.g., 'en', 'de', 'en-US')"
}
},
"additionalProperties": false,
"description": "Multi-language text value with optional language tag"
"@language": {
"type": "string",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"description": "IETF language tag (e.g., 'en', 'de', 'en-US')"
}
},
"additionalProperties": false,
"description": "Multi-language text value with optional language tag"
}
}
}
9 changes: 3 additions & 6 deletions public/assets/jsonld/Enumeration.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Enumeration.json",
"$id": "http://product-information-graph.org/schema/2026-07-03/jsonld/Enumeration.json",
"title": "CASCaRA Enumeration Schema for JSON-LD",
"description": "Validates Enumeration class definitions. Must include datatype specification (string, integer, double, boolean, dateTime, etc.), enumeration values (cas:enumeratedValue), measurement units.",
"type": "object",
Expand Down Expand Up @@ -72,10 +72,6 @@
"sh:datatype": {
"$ref": "#/$defs/idObject"
},
"cas:unit": {
"type": "string",
"description": "Unit of measurement (SI unit)"
},
"cas:enumeratedValue": {
"type": "array",
"description": "Enumeration of allowed values",
Expand Down Expand Up @@ -123,7 +119,8 @@
"@id",
"@type",
"cas:itemType",
"dcterms:title"
"dcterms:title",
"sh:datatype"
],
"additionalProperties": false,
"$defs": {
Expand Down
2 changes: 1 addition & 1 deletion public/assets/jsonld/Link.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Link.json",
"$id": "http://product-information-graph.org/schema/2026-07-03/jsonld/Link.json",
"title": "CASCaRA Link Schema for JSON-LD",
"description": "Validates Link class definitions that specify navigable connections between items. Defines enumerated endpoint classes (cas:enumeratedEndpoint) which determine which Entity or Relationship classes can be connected via this link type. Links enable traversal of the information graph and support bi-directional relationships when paired (e.g., 'contains' / 'is contained by').",
"type": "object",
Expand Down
9 changes: 3 additions & 6 deletions public/assets/jsonld/Property.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Property.json",
"$id": "http://product-information-graph.org/schema/2026-07-03/jsonld/Property.json",
"title": "CASCaRA Property Schema for JSON-LD",
"description": "Validates Property class definitions that specify attributes for entities and relationships. May include datatype specifications (string, integer, double, boolean, dateTime, etc.), cardinality constraints (sh:minCount, sh:maxCount, value constraints (sh:minInclusive, sh:maxInclusive, sh:maxLength, sh:pattern), default values, measurement units, and support for composed properties.",
"type": "object",
Expand Down Expand Up @@ -96,10 +96,6 @@
"type": "string",
"description": "Regular expression pattern for string validation"
},
"cas:unit": {
"type": "string",
"description": "Unit of measurement (SI unit)"
},
"sh:defaultValue": {
"type": "string",
"description": "Default value for this property"
Expand All @@ -116,7 +112,8 @@
"@id",
"@type",
"cas:itemType",
"dcterms:title"
"dcterms:title",
"sh:datatype"
],
"additionalProperties": false,
"$defs": {
Expand Down
2 changes: 1 addition & 1 deletion public/assets/jsonld/Relationship.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Relationship.json",
"$id": "http://product-information-graph.org/schema/2026-07-03/jsonld/Relationship.json",
"title": "CASCaRA Relationship Schema for JSON-LD",
"description": "Validates <strong>Relationship</strong> class definitions for directed connections between entities. Configures which properties (cas:enumeratedProperty), source links (cas:enumeratedSourceLink) and target links (cas:enumeratedTargetLink) are allowed. Relationships are reified connections that can carry their own properties, enabling rich traceability and dependency modeling (e.g., 'Refinement' relationships with rationale and traceability status). Relationships classify meaningful statements including a subject and an object, where both the subject and the object is an entity or relationship instance. Supports specialization hierarchies and optional icons.",
"type": "object",
Expand Down
Loading
Loading