-
Notifications
You must be signed in to change notification settings - Fork 0
SysMLv2 Ingestion Contract
Normative contract for SysMLv2 model ingestion in
flexo-rtm. Accepted serializations, conformance profile, mapping rules tortm:, and the read-only v0.1 boundary live here. Theflexo-rtmDesign Spec §3 references this page. See also OMG SysMLv2 (background), ADR-002 SysMLv2 Anchoring.
flexo-rtm's scope-reducing assumption (per Design Spec §3): the modeled system is a SysMLv2 model conformant with OMG specifications, represented as RDF via the openCAESAR omg-sysml: OWL rendering.
v0.1 ships READ ingestion only. Bidirectional I/O (write-back of internal augmentations to native .kerml / .sysml.json) is v0.2+. v0.1 reads SysMLv2 → RDF; subsequent attestations, transcripts, and audit graphs live alongside the SysMLv2 RDF in Flexo.
v0.1 pins to:
- OMG SysMLv2 1.0 (formal/2024-08-01 or successor formal release at v0.1 development time)
-
openCAESAR SysMLv2 OWL rendering v1.x (the
omg-sysml:namespace) - KerML 1.0 (the kernel language SysMLv2 inherits from)
Future SysMLv2 major versions require a new ingestion contract; old fixtures remain ingestible under the old contract via versioned profile.
| Format | Extension(s) | v0.1 status |
|---|---|---|
| KerML textual notation | .kerml |
Accepted via the openCAESAR ingestion toolchain (external dependency) |
| SysMLv2 textual notation | .sysml |
Accepted via the openCAESAR ingestion toolchain |
| SysMLv2 JSON serialization (OMG normative) | .sysml.json |
Accepted via openCAESAR or direct JSON-LD ingestion |
| omg-sysml: RDF (pre-converted) |
.ttl, .nt, .jsonld
|
Accepted natively (the canonical internal form) |
The recommended adopter workflow:
- Author in SysMLv2 textual notation or visual editor
- Export to
.sysml.jsonvia the SysMLv2 Pilot Implementation - Convert to
omg-sysml:RDF via openCAESAR's converter - Commit the RDF to Flexo via
flexo-rtm
v0.1 does NOT bundle the SysMLv2 → RDF conversion toolchain — it consumes RDF. Adopters who need conversion install openCAESAR's converter as a separate dependency (out of flexo-rtm's default install per X5 of §6.6).
The openCAESAR project provides the JVM-based owl-adapter (MOF2OML + OWL) and sysml-adapter toolchains that perform the SysMLv2 ↔ omg-sysml: RDF conversion in both directions. Canonical source:
- GitHub org: https://github.com/opencaesar
-
owl-adapter: https://github.com/opencaesar/owl-adapter -
sysml-adapter: https://github.com/opencaesar/sysml-adapter
Adopter dependency posture:
- The openCAESAR toolchain is not installed by
pip install flexo-rtmoruv sync. It's a separate JVM (Java 17+) + Gradle dependency adopters install only if their source-of-truth is SysMLv2 native rather than pre-converted RDF. -
flexo-rtmpins to OMG SysMLv2 1.0 (formal/2024-08-01) and openCAESAR rendering v1.x (see §2 of this contract). - An end-to-end live test of the conversion pipeline is tracked at research-repo issue #24 (decide JVM-in-CI vs pre-cached fixtures vs container).
For adopters who already have omg-sysml: RDF on disk (e.g., from a prior conversion pipeline), the openCAESAR dependency is not required; flexo-rtm reads and writes the RDF directly.
The sysmlv2-anchored SHACL profile (in ontology/profiles/sysmlv2-anchored.shacl.ttl) validates that an ingested model is well-formed omg-sysml: RDF. The profile enforces:
Every rtm:Artifact claimed to be a SysMLv2 model element MUST be typed as one of:
-
omg-sysml:Element(the root abstract class) or a subclass - Concrete subclasses including:
omg-sysml:PartUsage,omg-sysml:PartDefinition,omg-sysml:RequirementUsage,omg-sysml:RequirementDefinition,omg-sysml:Constraint,omg-sysml:Action,omg-sysml:PortUsage,omg-sysml:Connection
sysmlv2:ElementShape a sh:NodeShape ;
sh:targetClass omg-sysml:Element ;
sh:property [
sh:path omg-sysml:elementId ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:message "Every SysMLv2 element requires a stable elementId"
] ;
sh:property [
sh:path omg-sysml:qualifiedName ;
sh:minCount 1 ;
sh:datatype xsd:string ;
sh:message "Every SysMLv2 element requires a qualifiedName"
] .The omg-sysml:elementId is the stable identity across re-ingestions; the qualifiedName is a human-readable path.
sysmlv2:OwnershipShape a sh:NodeShape ;
sh:targetClass omg-sysml:Element ;
sh:property [
sh:path omg-sysml:owner ;
sh:maxCount 1 ;
sh:nodeKind sh:IRI ;
sh:message "An element has at most one owning element (containment hierarchy)"
] .SysMLv2 has first-class requirement constructs. The mapping to rtm: is:
| SysMLv2 construct |
rtm: mapping |
|---|---|
omg-sysml:RequirementUsage instance |
rtm:Requirement (owl:equivalentClass between omg-sysml:RequirementUsage and rtm:Requirement) |
omg-sysml:RequirementDefinition |
rtm:RequirementDefinition (a class of requirements; analogous to oslc_rm:RequirementCollection) |
omg-sysml:requirement annotation property |
rdfs:subPropertyOf rtm:hasRequirement |
omg-sysml:satisfies connection |
rtm:addresses (the v0.1 evidence-linkage edge; cross-domain to other SysMLv2 elements OR to rtm:Artifact external evidence). Per the Hawkins-Habli ACP split: no individual artifact satisfies a requirement; satisfaction is recorded via rtm:SatisfactionAttestation. |
omg-sysml:verifies connection |
rtm:addresses (validation/test relationship; cross-domain to omg-sysml:VerificationCaseUsage instances). The design-time-satisfies vs verification-time-verifies distinction is preserved in the source omg-sysml: graph; both surface as the same rtm:addresses edge in the projection. A rtm:verifies convenience alias (subPropertyOf rtm:addresses) is declared in rtm-core.ttl for adopters who want the OSLC-QM cross-domain narrative. |
omg-sysml:assumes annotation |
preserved as-is (assumption captured in source graph) |
Other SysMLv2 model elements that may serve as evidence artifacts (per rtm:Artifact):
| SysMLv2 construct |
rtm:Artifact subclass |
|---|---|
omg-sysml:PartUsage |
rtm:Artifact (a designed component instance) |
omg-sysml:PartDefinition |
rtm:Artifact (a designed component class) |
omg-sysml:Action (analysis, simulation, calculation) |
rtm:Activity (a SysMLv2-native activity; complements rtm:Activity for external activities like git+OCI) |
omg-sysml:Constraint |
rtm:Constraint (a model-level constraint statement) |
omg-sysml:VerificationCaseUsage |
rtm:TestCase (cross-classification with OSLC-QM test cases per OSLC Roundtrip Acceptance §5.1) |
SysMLv2 does not have a built-in aspect taxonomy matching rtm:Aspect (rtm:functional, rtm:performance, rtm:safety, …). Adopters tag SysMLv2 RequirementUsage instances with rtm:hasAspect annotations either:
- At ingestion time via an annotation file (
ingestion-annotations.ttl) - During authoring as SysMLv2 metadata that the converter preserves
- Post-ingestion as a separate annotation graph (
urn:rtm:annotations)
The choice is the adopter's; v0.1 does not mandate one mechanism over another.
Imported SysMLv2 RDF lands verbatim in urn:rtm:source/sysmlv2/{path-hash} per Flexo REST Binding §4.2. Internal augmentations (attestations, transcripts) reference SysMLv2 elements by their omg-sysml:elementId and live in separate named graphs (urn:rtm:attestations, etc.).
Round-trip property: the source graph for a SysMLv2 file is byte-identical to the input RDF (after RDFC-1.0 canonicalization). Internal augmentations do NOT contaminate the source.
This makes write-back (v0.2) clean: emit the source graph as RDF → convert to SysMLv2 JSON → present to the adopter for re-import into their SysMLv2 tooling.
The omg-sysml:elementId is the stable identity that rtm: attestations attach to. When a SysMLv2 model is re-ingested after edits, elements that retain their elementId retain their attestations; elements that are renamed-but-same-elementId retain attestations; elements that are deleted-and-recreated with new elementId lose attestations (the original attestation transitions to rtm:status/deprecated per ADR-031 Attestation Status Pass Fail Deferred Deprecated via prov:wasInvalidatedBy linked to the deletion event).
Deprecation cascade detection (v0.2+ per ADR-031) auto-marks attestations as deprecated when their subject's elementId is no longer present after re-ingestion. v0.1 surfaces the deprecation as a manual operator step.
8. Acceptance criteria (informative; normative are in Design Spec §6)
- Ingestion of any
omg-sysml:RDF graph from openCAESAR's reference output produces a Flexo-committable representation passing thesysmlv2-anchoredSHACL profile. - Sample SysMLv2 models (the OMG-published examples + ADCS-lifecycle-demo SysMLv2 graphs) ingest cleanly.
- The
omg-sysml:elementIdfor each ingested element is preserved verbatim in the source graph.
- For every
omg-sysml:RDF input file,flexo-rtmemits a corresponding RDF artifact preserving the source'somg-sysml:elementIdset; the round-tripparse → emit → parse → canonical-equalityis the read-step's correctness proof. - Per-file separation is enforced via per-source named graphs in the storage layer; cross-file ingestion preserves separation through the roundtrip.
- Per-native-format emission (
.kerml,.sysml.json) remains out of v0.1 scope — that's openCAESAR's owl-adapter direction, symmetric to ingest (see §3.1).
- A
rtm:SatisfactionAttestationwhosertm:appliesToreferences anomg-sysml:RequirementUsage'selementIdpasses SHACL. - A
rtm:Artifacttyped as bothrtm:Artifactandomg-sysml:PartUsageis accepted (multi-typing is allowed).
- An external
ingestion-annotations.ttlreferencingomg-sysml:elementIdvalues can attachrtm:hasAspectannotations to ingested elements; the annotations land inurn:rtm:annotationsand do not contaminate the source graph.
-
Write-back to SysMLv2 native formats (
.kerml,.sysml.jsonemit). v0.2 — that's openCAESAR's owl-adapter job, symmetric to ingest. Per-fileomg-sysml:RDF write-back ships in v0.1 (see §8.1a). -
SysMLv2 model authoring within
flexo-rtm. Adopters use their existing SysMLv2 tools (Pilot Implementation, MagicDraw, Cameo Systems Modeler, …). - SysMLv2 textual notation parser. v0.1 consumes RDF; conversion is via openCAESAR's converter as an external dependency.
- Live SysMLv2 tool connectors (e.g., direct Cameo API integration). v0.2+.
-
Behavior model semantics (full simulation of
omg-sysml:Actionchains). SysMLv2 behavior models are ingested as RDF; their executable semantics are outsideflexo-rtm's certification scope — they're modeled asrtm:Activityinstances with external URIs referencing the simulation code (per External URI Rules).
This contract pins to SysMLv2 1.0 + openCAESAR rendering v1.x. The openCAESAR rendering is the canonical RDF projection of SysMLv2; if it changes (e.g., adopts a different ontology pattern in v2.x), flexo-rtm will require a contract update.
Adopters using a different SysMLv2 → RDF converter must produce RDF that matches the omg-sysml: namespace and shapes; otherwise the sysmlv2-anchored SHACL profile will fail validation.
- Flexo Git Coexistence
- ADCS Prototype Lessons
- MVC Pattern from RIME TRL ANT
- Human-AI Accountability
- Multi-Agent Discourse Graph Precedent
- OSLC RM and QM Review
- INCOSE V2 Review
- OMG SysMLv2
- PROV EARL GSN P-PLAN
- Dragon Architecture and Mission Enterprise
- Traditional Forward and Backward Analysis
- Attestation Infrastructure in v0.1
- Identity Boundaries and Policy Projections
- External URI References
- Signed Envelopes and Established Standards
- Aspect Coverage with Adequacy and Sufficiency
- Federated Audit and Composition
- Certification Predicate
- Gap Taxonomy
- Quantitative Outcomes
- Engineering Lifecycle Stages (v0.2)
- Topological Framework Future Work (research phase)
- Vertices Edges Faces (research phase)
- Three-Layer Architecture
- Operational Layer UX Discipline
- Storage Layer Flexo Conventions
- Analysis Layer Scope Algebra
- OSLC Roundtrip Acceptance
- Identity Adapter Contract
- Flexo REST Binding
- SysMLv2 Ingestion Contract
- External URI Rules
- Signed Envelope Shapes
- Parsimony Manifest
- Lossless Roundtrip Definition
- Vendor Extension Carry-Through
- OSLC RM Adapter Contract
- OSLC QM Adapter Contract
- ADR Template
- ADR-001 Foundations First Approach
- ADR-002 SysMLv2 Anchoring
- ADR-003 Topological Framework Documented as Future Work
- ADR-003a v0.1 Ships Traditional Analysis Only
- ADR-004 Quantitative Certification Outcome
- ADR-005 Adequacy and Sufficiency as Guidance Subtypes
- ADR-006 Three-Layer Architecture
- ADR-007 Scope as First-Class RDF Resource
- ADR-008 Repo Name and Org Transfer Plan
- ADR-009 Two-Repo Strategy
- ADR-010 OSLC-RM and OSLC-QM in v0.1
- ADR-011 Lossless Criterion A plus C
- ADR-012 Direct RDF Properties over Reified Edges
- ADR-013 Simplicial Complex as Derived View When Built
- ADR-014 Parsimony Layer Build-Time Extraction
- ADR-015 GSN Adoption for Adequacy and Sufficiency
- ADR-016 Composable SHACL Profiles
- ADR-017 knowledgecomplex as Optional Extras
- ADR-018 V minus F Invariant Deferred with Topological Framework
- ADR-019 Derived Binary View from Quantitative Metrics
- ADR-020 Vocabulary Alignment with Zargham 2026
- ADR-021 Three Attestation Subclasses Ship in v0.1
- ADR-022 External URI References as Open-Source Foundation
- ADR-023 Cryptography by Composition of Battle-Tested Standards
- ADR-024 Identity by Thin Projection of External Sources
- ADR-025 Reproducibility is Structural and Local
- ADR-026 Cryptographic Agility via Algorithm Profiles
- ADR-027 Bit-Exactness vs Numerical Tolerances Are Both First-Class
- ADR-028 Scope-Level Adequacy and Sufficiency for Federated Audit
- ADR-029 Engineering Lifecycle Stages as Scope Metadata
- ADR-030 Polycentric ASOT Authority Model
- ADR-031 Attestation Status Pass Fail Deferred Deprecated
- ADR-032 Methodology Agnosticism as Foundational Axiom
- ADR-033 Generalized ASOT Principle for All Identified Things