# UKO Layer 3 Technology Vocabularies ## Overview Layer 3 of the Unified Knowledge Ontology (UKO) extends Layer 2 paradigm vocabularies (or Layer 1 directly) with technology-specific semantic refinements for four programming languages: - **Python** (`uko-py:`) -- decorators, `.pyi` type stubs, test associations - **TypeScript** (`uko-ts:`) -- export markers, ambient types, generics, mapped/conditional types - **Rust** (`uko-rs:`) -- visibility, lifetimes, trait bounds, derive macros, unsafe markers - **Java** (`uko-java:`) -- package visibility, modifiers, annotations, checked exceptions Each vocabulary defines OWL classes, properties, Layer 2 dependencies, and optional DetailLevelMap insertions per `docs/specification.md` ~lines 44405-44420. ## Namespace Prefixes | Prefix | IRI | Layer | |--------|-----|-------| | `uko-py:` | `https://cleveragents.ai/ontology/uko/py#` | 3 | | `uko-ts:` | `https://cleveragents.ai/ontology/uko/ts#` | 3 | | `uko-rs:` | `https://cleveragents.ai/ontology/uko/rs#` | 3 | | `uko-java:` | `https://cleveragents.ai/ontology/uko/java#` | 3 | ## Python Vocabulary (`uko-py:`) ### Classes | Class | Superclass | Description | |-------|-----------|-------------| | `uko-py:PythonModule` | `uko-code:Module` | A Python module (`.py` file). | | `uko-py:PythonClass` | `uko-oo:Class` | A Python class definition. | | `uko-py:PythonFunction` | `uko-oo:Method` | A Python function or method. | | `uko-py:PythonDecorator` | `uko-code:TypeDefinition` | A decorator chain entry. | | `uko-py:PythonTypeStub` | `uko-code:TypeDefinition` | `.pyi` stub type annotation. | ### Properties | Property | Domain | Range | Type | |----------|--------|-------|------| | `uko-py:hasDecorator` | PythonFunction, PythonClass | PythonDecorator | ObjectProperty | | `uko-py:hasTypeStub` | PythonModule, PythonClass, PythonFunction | PythonTypeStub | ObjectProperty | | `uko-py:hasTest` | PythonFunction, PythonClass | PythonFunction | ObjectProperty | | `uko-py:decoratorName` | PythonDecorator | `xsd:string` | DatatypeProperty | | `uko-py:stubAnnotation` | PythonTypeStub | `xsd:string` | DatatypeProperty | ### DetailLevelMap Insertions Python inserts 3 levels into the OO parent map, producing a 15-level effective map: | Depth | Name | Description | |-------|------|-------------| | 7 | `DECORATED_SIGNATURES` | Decorator chains (`@property`, `@staticmethod`, custom). | | 11 | `TYPE_STUBS` | Type annotations from `.pyi` stub files. | | 14 | `WITH_TESTS` | Full source + associated test cases. | ## TypeScript Vocabulary (`uko-ts:`) ### Classes | Class | Superclass | Description | |-------|-----------|-------------| | `uko-ts:TypeScriptModule` | `uko-code:Module` | A TypeScript module (`.ts`/`.tsx`). | | `uko-ts:TypeScriptClass` | `uko-oo:Class` | A TypeScript class. | | `uko-ts:TypeScriptInterface` | `uko-oo:Interface` | A TypeScript interface (generics, mapped/conditional). | | `uko-ts:TypeScriptFunction` | `uko-oo:Method` | A TypeScript function or method. | ### Properties | Property | Domain | Range | Type | |----------|--------|-------|------| | `uko-ts:exportKind` | TypeScriptClass, TypeScriptInterface, TypeScriptFunction, TypeScriptModule | `xsd:string` | DatatypeProperty | | `uko-ts:isAmbient` | TypeScriptClass, TypeScriptInterface, TypeScriptFunction | `xsd:boolean` | DatatypeProperty | | `uko-ts:genericParameters` | TypeScriptClass, TypeScriptInterface, TypeScriptFunction | `xsd:string` | DatatypeProperty | | `uko-ts:isMappedType` | TypeScriptInterface | `xsd:boolean` | DatatypeProperty | | `uko-ts:isConditionalType` | TypeScriptInterface | `xsd:boolean` | DatatypeProperty | | `uko-ts:implementsInterface` | TypeScriptClass | TypeScriptInterface | ObjectProperty | ### DetailLevelMap Insertions TypeScript extends at the SIGNATURES level with no new depth insertions (12-level identity map). ## Rust Vocabulary (`uko-rs:`) ### Classes | Class | Superclass | Description | |-------|-----------|-------------| | `uko-rs:RustStruct` | `uko-oo:Class` | A Rust struct definition. | | `uko-rs:RustTrait` | `uko-oo:Interface` | A Rust trait definition. | | `uko-rs:RustImpl` | `uko-code:TypeDefinition` | A Rust impl block. | | `uko-rs:RustFunction` | `uko-oo:Method` | A Rust function or method. | | `uko-rs:RustDeriveAttribute` | `uko-code:TypeDefinition` | A `#[derive(...)]` macro attribute. | ### Properties | Property | Domain | Range | Type | |----------|--------|-------|------| | `uko-rs:visibility` | RustStruct, RustTrait, RustFunction | `xsd:string` | DatatypeProperty | | `uko-rs:lifetimeParameters` | RustStruct, RustImpl, RustFunction, RustTrait | `xsd:string` | DatatypeProperty | | `uko-rs:traitBounds` | RustStruct, RustFunction, RustImpl | `xsd:string` | DatatypeProperty | | `uko-rs:isUnsafe` | RustFunction, RustImpl, RustTrait | `xsd:boolean` | DatatypeProperty | | `uko-rs:deriveTraits` | RustDeriveAttribute | `xsd:string` | DatatypeProperty | | `uko-rs:mustUse` | RustStruct, RustFunction | `xsd:boolean` | DatatypeProperty | | `uko-rs:hasDerive` | RustStruct | RustDeriveAttribute | ObjectProperty | | `uko-rs:implementsTrait` | RustImpl | RustTrait | ObjectProperty | ### DetailLevelMap Insertions Rust extends at the SIGNATURES level with no new depth insertions (12-level identity map). ## Java Vocabulary (`uko-java:`) ### Classes | Class | Superclass | Description | |-------|-----------|-------------| | `uko-java:JavaClass` | `uko-oo:Class` | A Java class definition. | | `uko-java:JavaInterface` | `uko-oo:Interface` | A Java interface. | | `uko-java:JavaMethod` | `uko-oo:Method` | A Java method. | | `uko-java:JavaAnnotation` | `uko-code:TypeDefinition` | A Java annotation entry. | | `uko-java:JavaCheckedException` | `uko-code:TypeDefinition` | A checked exception declaration. | ### Properties | Property | Domain | Range | Type | |----------|--------|-------|------| | `uko-java:packageVisibility` | JavaClass, JavaInterface, JavaMethod | `xsd:string` | DatatypeProperty | | `uko-java:isFinal` | JavaClass, JavaMethod | `xsd:boolean` | DatatypeProperty | | `uko-java:isAbstract` | JavaClass, JavaMethod | `xsd:boolean` | DatatypeProperty | | `uko-java:isSealed` | JavaClass, JavaInterface | `xsd:boolean` | DatatypeProperty | | `uko-java:hasAnnotation` | JavaClass, JavaInterface, JavaMethod | JavaAnnotation | ObjectProperty | | `uko-java:annotationName` | JavaAnnotation | `xsd:string` | DatatypeProperty | | `uko-java:throwsException` | JavaMethod | JavaCheckedException | ObjectProperty | | `uko-java:exceptionClass` | JavaCheckedException | `xsd:string` | DatatypeProperty | ### DetailLevelMap Insertions Java extends at the SIGNATURES level with no new depth insertions (12-level identity map). ## Shared Base Types All Layer 3 vocabularies use shared types from `vocabulary.py`: | Type | Description | |------|-------------| | `ProvenanceInfo` | Frozen Pydantic model with 2 required fields (`source_resource`, `source_path`) and 3 defaulted fields (`source_range`, `valid_from`, `is_current`). | | `UKOClass` | Frozen OWL class definition (`uri`, `label`, `comment`, `subclass_of`, `provenance`). | | `UKOProperty` | Frozen OWL property definition (`uri`, `label`, `comment`, `domain`, `range_uri`, `is_object_property`, `provenance`). | | `Layer2Dependency` | Declared dependency on a Layer 1/2 URI (`uri`, `layer`, `prefix`, `description`). | | `UKOVocabulary` | Container aggregating classes, properties, deps, inserted levels, and optional `provenance`. | ## Utility Functions | Function | Description | |----------|-------------| | `build_detail_level_map(parent_levels, insertions)` | Merge parent + child insertions with consecutive integer re-numbering. | | `resolve_detail_level(name, levels, parent_levels=None)` | Look up a named level in `levels`, falling back to `parent_levels`. | ## Source Files | File | Description | |------|-------------| | `src/cleveragents/acms/uko/vocabulary.py` | Shared base types and utility functions. | | `src/cleveragents/acms/uko/layer3_py.py` | Python vocabulary definitions. | | `src/cleveragents/acms/uko/layer3_ts.py` | TypeScript vocabulary definitions. | | `src/cleveragents/acms/uko/layer3_rs.py` | Rust vocabulary definitions. | | `src/cleveragents/acms/uko/layer3_java.py` | Java vocabulary definitions. | | `docs/ontology/uko-py.ttl` | Python OWL/Turtle ontology. | | `docs/ontology/uko-ts.ttl` | TypeScript OWL/Turtle ontology. | | `docs/ontology/uko-rs.ttl` | Rust OWL/Turtle ontology. | | `docs/ontology/uko-java.ttl` | Java OWL/Turtle ontology. |