hamza.khyari
|
04f24b39c0
|
feat(acms): implement UKO Layer 1 Domain Ontologies (uko-code, uko-doc, uko-data, uko-infra)
Implement the four Layer 1 domain-specific OWL/Turtle ontology vocabularies
that specialize Layer 0 universal concepts for specific knowledge domains.
Ontology (docs/ontology/uko.ttl):
- Added uko-doc: namespace with 17 classes (Document, Part, Chapter, Section,
Subsection, Paragraph, Sentence, CodeBlock, Citation, Figure, Table,
Footnote, Annotation, Bookmark, CrossReference, PageBreak, SectionBreak),
5 properties, and 4 relationships
- Added uko-data: namespace with 13 classes (Schema, Table, Column, View,
StoredProcedure, Constraint, Index, ForeignKey, Trigger, Annotation,
Bookmark, PartitionBoundary, ShardBoundary), 6 properties, and
5 relationships
- Added uko-infra: namespace with 7 classes (Service, Network, Endpoint,
ConfigKey, Volume, FirewallRule, SubnetBoundary) and 2 relationships
- All classes use rdfs:subClassOf from Layer 0 base classes
Domain registry (ontology_registry.py):
- DomainDescriptor dataclass with namespace IRI, prefix, layer, classes,
superclass mappings, and DetailLevelMap
- Registry functions: get_domain(), list_domains(), get_layer1_domains()
- DetailLevelMap chain builder for hierarchical depth resolution
- Turtle validation with TurtleValidationError (no rdflib dependency)
- All DetailLevelMap data inlined to maintain DIP compliance (domain
layer does not import from application layer)
DetailLevelMap presets (depth_breadth_projection.py):
- code_detail_map: 10 spec-complete levels (depths 0-9)
- docs_detail_map: 11 spec-complete levels (depths 0-10)
- database_detail_map: 12 spec-complete levels (depths 0-11)
- infra_detail_map: 9 spec-complete levels (depths 0-8)
Tests:
- 31 BDD scenarios in uko_ontology_registry.feature covering domain
lookup, all DetailLevelMap levels, inheritance chains, Turtle
validation, Universal View Guarantee, and negative/edge cases
- 6 Robot Framework integration tests
- Updated existing tests: depth_breadth_projection.feature (TABLE_LISTING
depth 0->1, added SCHEMA_LISTING), uko_ontology.feature (Layer 1
node count 8->67)
Spec reference: docs/specification.md §41830-42332
ISSUES CLOSED: #574
|
2026-03-06 23:14:30 +00:00 |
|
khyari hamza
|
ad53a659de
|
feat(uko): add UKO ontology scaffolding
Add UKO Layer 0-3 ontology skeleton (RDF/TTL) with base URI, version IRI,
and prefix conventions. Python loaders handle URI parsing, inheritance
resolution, versioning metadata, and validation of undefined prefixes and
missing rdf:type. Includes Behave BDD scenarios, Robot Framework integration
tests, ASV benchmarks, and reference documentation.
- Resolve rdfs:domain and rdfs:range values to full URIs in parser
- Fix type: ignore in Robot helper with proper Callable typing
- Export UKO models from core/__init__.py
- Add parent-URI existence validation in validate()
- Rename scenario to clarify parser-skips vs validation-rejects
- Add scenario testing validation with injected typeless node
- Add Scenario Outline for multi-layer node count assertions
- TTL: Layer 0 classes (InformationUnit, Container, Atom, Annotation,
Boundary) with contains/references/dependsOn properties. Layer 1
uko-code: classes (Module, Callable, TypeDefinition, TestCase, Import)
with hasReturnType/hasParameters/testsCallable. Layer 2 uko-oo: classes
(Class, Interface, Method, Attribute) with inheritsFrom/implements and
rdfs:subPropertyOf. New URI scheme cleveragents.ai/ontology/uko#.
- TTL: uko-oo:Class has dual rdfs:subClassOf (TypeDefinition + Container),
uko-oo:Interface has dual rdfs:subClassOf (TypeDefinition + Boundary).
- Model: UKONode.parent_uri replaced with parent_uris: tuple[str, ...]
to support multi-parent rdfs:subClassOf.
- Loader: prefix regex supports hyphenated names (uko-code, uko-oo).
Semantic domain prefix maps (_LAYER_PREFIXES, _LAYER_IRI_PREFIXES).
Comma-separated rdfs:subClassOf parsing. rdfs:domain/range/subPropertyOf
URI resolution. BFS DAG traversal with DFS cycle detection for
resolve_inheritance. HTTP URI skip in validation (D-1 fix). Duplicate
error guard (B-1 fix). Consistent quoting (M-1 fix).
- Services __init__: export UKOLoader and UKOValidationError.
- Tests: 24 Behave scenarios (multi-parent, domain/range resolution,
non-existent parent validation). 4 Robot smoke tests. Consolidated
context attributes (T-3 fix).
- Docs: uko.md written for spec-aligned structure.
- Namespace prefix match in parent-URI validation includes a
delimiter guard (# or /) preventing false positives on URIs that share
the UKO prefix string (e.g. ukobogus:, ukoo:).
ISSUES CLOSED: #189
|
2026-03-04 22:40:34 +00:00 |
|