Orchestrata Ultimate / RTM / 105-ontology-domain-model
RTM: 105-ontology-domain-model
Requirement to symbol to test rows for 105-ontology-domain-model: Ontology-Driven Domain Model Generation.
At a glance
| Item | Value |
|---|---|
| Requirement IDs | 50 |
Traced from src/ |
28 (56.0%) |
| Untraced | 22 |
Cited from tests/ |
0 (0.0%) |
Traced in src/ but not cited from tests/ |
28 |
Reading this matrix
This matrix lists each of the 50 requirement IDs of spec 105-ontology-domain-model with the src/ symbols that cite it and the tests that cite it. 28 of them (56.0%) have at least one citing symbol and 22 have none.
0 requirements are also cited from tests/, and 28 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.
Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-105-* (22).
Requirement to symbols to tests
| Requirement | Symbols in src/ |
Tests citing it |
|---|---|---|
REQ-105-001 owl:Class / rdfs:Class → an Entity in the IR. |
orchestrata_ultimate/domaingen/reader _build_entities L111orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-012 Accept the ontology as a .ttl file path or raw Turtle text. |
orchestrata_ultimate/domaingen/reader _parse_graph L92orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-013 Parse via rdflib (Graph().parse, Turtle); RDF-star input tolerated. |
orchestrata_ultimate/domaingen/reader _parse_graph L92orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-014 owl:DatatypeProperty with rdfs:domain D → a Field on entity D. |
orchestrata_ultimate/domaingen/reader _attach_datatype_properties L134 |
none |
REQ-105-015 owl:ObjectProperty with rdfs:domain D, rdfs:range R → a Relationship on D... |
orchestrata_ultimate/domaingen/reader _attach_object_properties L150orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-016 rdfs:subClassOf → Entity.parent (single; multiple parents → first + warning). |
orchestrata_ultimate/domaingen/reader _build_entities L111orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-002 Cardinality — owl:FunctionalProperty / owl:maxCardinality 1 → many=False;... |
none | none |
REQ-105-017 owl:minCardinality >= 1 (or owl:someValuesFrom) → Field/Relationship.required=True. |
orchestrata_ultimate/domaingen/reader _apply_restrictions L76orchestrata_ultimate/domaingen/reader _restriction_required_prop L53orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-018 xsd datatype → Python type map (string→str, integer/int→int,... |
orchestrata_ultimate/domaingen/reader _attach_datatype_properties L134 |
none |
REQ-105-019 rdfs:label → human name (fallback: IRI local name); rdfs:comment → docstring. |
orchestrata_ultimate/domaingen/reader _build_entities L111 |
none |
REQ-105-020 IRI local-name extraction (after # or final /); preserve full iri on the IR node. |
orchestrata_ultimate/domaingen/reader _local L34 |
none |
REQ-105-021 owl:inverseOf → Relationship.inverse. |
orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-022 Entities group into Modules (bounded contexts); default = one module named after the... |
none | none |
REQ-105-023 The ontology base IRI / prefix is captured on DomainModel.namespace. |
orchestrata_ultimate/domaingen/reader _namespace_of L42orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-024 Parse failure raises OntologyParseError(BaseError) with file + cause (ERR-105-001). |
orchestrata_ultimate/domaingen/reader OntologyParseError L29orchestrata_ultimate/domaingen/reader _parse_graph L92 |
none |
REQ-105-025 Object property with no rdfs:range is skipped with a warning (ERR-105-002), not a crash. |
orchestrata_ultimate/domaingen/reader _attach_object_properties L150orchestrata_ultimate/domaingen/reader parse_ontology L174 |
none |
REQ-105-003 Render a DomainModel to valid Turtle (classes, datatype/object properties with... |
orchestrata_ultimate/domaingen/ttl _esc L28orchestrata_ultimate/domaingen/ttl _render_class L33orchestrata_ultimate/domaingen/ttl _render_datatype_properties L56+2 more |
none |
REQ-105-004 parse_ontology(render_ontology(ir)) equals ir structurally (entities, fields,... |
orchestrata_ultimate/domaingen/reader parse_ontology L174orchestrata_ultimate/domaingen/ttl render_ontology L96 |
none |
REQ-105-026 TTL rendering is deterministic — sorted entities/properties, stable prefixes, no... |
orchestrata_ultimate/domaingen/ttl _render_class L33orchestrata_ultimate/domaingen/ttl _render_datatype_properties L56orchestrata_ultimate/domaingen/ttl _render_object_properties L74+1 more |
none |
REQ-105-011 Adding an Entity and/or Relationship to the IR regenerates both the ontology... |
orchestrata_ultimate/domaingen/ttl render_ontology L96 |
none |
REQ-105-027 Round-trip preserves namespace, labels, comments, and cardinality. |
none | none |
REQ-105-008 The generated repository emits only INSERT SPARQL; no UPDATE/DELETE is ever... |
orchestrata_ultimate/domaingen/generator generate_code L79 |
none |
REQ-105-028 Each node attribute is an RDF-star assertion << :e :attr v >> annotated with... |
none | none |
REQ-105-029 Relationship (edge) triples << :a :rel :b >> are annotated identically — temporality... |
none | none |
REQ-105-030 Annotations are append-only; no existing triple/annotation is mutated in place. |
none | none |
REQ-105-031 Every assertion carries prov:txFrom (transaction time, when recorded, UTC... |
none | none |
REQ-105-032 Every assertion carries :validFrom and :validTo (valid time, when true in the domain). |
none | none |
REQ-105-033 Open intervals use a sentinel :validTo "9999-12-31T00:00:00Z" (or unbound), never... |
none | none |
REQ-105-009 Changing a value/edge inserts a new annotated assertion and a tombstone that... |
none | none |
REQ-105-034 A tombstone is itself an inserted assertion; the original assertion remains untouched... |
none | none |
REQ-105-035 "Logical delete" = insert a tombstone closing :validTo; the triple is never... |
none | none |
REQ-105-010 as_of(T) returns node state at instant T via SPARQL-star: txFrom <= T ∧... |
none | none |
REQ-105-036 as_of(T) works for relationships (edge history), not just node attributes. |
none | none |
REQ-105-037 "Current state" view = latest txFrom, not tombstoned, validTo in the future. |
none | none |
REQ-105-038 A separate transaction-time-only ("as-recorded") and valid-time-only query mode is... |
none | none |
REQ-105-039 Generated SPARQL is parameterized/escaped; ontology IRIs are validated before... |
none | none |
REQ-105-040 No DELETE/DROP/CLEAR is ever generated; a generation-time check fails the build... |
orchestrata_ultimate/domaingen/generator CodeGenError L42orchestrata_ultimate/domaingen/generator generate_code L79 |
none |
REQ-105-041 A named-graph-per-version persistence mode is documented as an alternative to RDF-star... |
none | none |
REQ-105-042 Stardog connection failure raises RepositoryError/StardogConnectionError (both... |
orchestrata_ultimate/domaingen/stardog StardogConnection L26orchestrata_ultimate/domaingen/stardog StardogConnectionError L21orchestrata_ultimate/domaingen/stardog _client L51+2 more |
none |
REQ-105-049 generate_shacl emits a sh:NodeShape per entity (sh:targetClass); fields →... |
orchestrata_ultimate/domaingen/constraints _property L20orchestrata_ultimate/domaingen/constraints generate_shacl L25 |
none |
REQ-105-050 SHACL is deterministic, valid Turtle, emitted as constraints.ttl by generate_code;... |
orchestrata_ultimate/domaingen/constraints generate_shacl L25 |
none |
REQ-105-005 Per module, generate domain/<module>/{entities.py, repository.py, __init__.py}... |
orchestrata_ultimate/domaingen/generator generate_code L79 |
none |
REQ-105-043 Layout is screaming — top-level packages are named for the domain/bounded context,... |
orchestrata_ultimate/domaingen/generator generate_code L79 |
none |
REQ-105-044 Modular monolith — a module imports only its own package + shared core;... |
none | none |
REQ-105-045 Entity class is a dataclass with typed fields; parent reflected via inheritance;... |
none | none |
REQ-105-007 Every generated module uses core.logging.get_logger(__name__). |
orchestrata_ultimate/core/logging get_logger L165 |
none |
REQ-105-046 Domain errors inherit core.base.error.BaseError; class names end in Error. |
none | none |
REQ-105-047 Generated code has no print and no bare except:. |
none | none |
REQ-105-006 Codegen is deterministic/idempotent — re-running on the same IR yields... |
orchestrata_ultimate/domaingen/generator _env L47orchestrata_ultimate/domaingen/generator _topo_sort L58orchestrata_ultimate/domaingen/generator generate_code L79+1 more |
none |
REQ-105-048 All TTL/code writes are confined to the target root; path traversal is rejected... |
orchestrata_ultimate/domaingen/generator CodeGenError L42orchestrata_ultimate/domaingen/generator _safe L124 |
none |