Repository navigation
Conversation
jdsika
force-pushed
the
feat/owlgen-permissible-value-instantiates
branch
from
October 5, 2026 07:37
d3b8b2d to
7335442
Compare
jdsika
force-pushed
the
feat/owlgen-permissible-value-instantiates
branch
from
October 14, 2026 06:30
7335442 to
fa0010a
Compare
Translate explicit instantiates declarations to rdf:type on the emitted schema resource through one shared helper. Apply the mapping consistently to schemas, classes, slots, types, enums, and non-literal permissible values. Literal permissible values cannot be RDF subjects and produce a warning. Membership types the schema element itself, not its ordinary data instances, and does not become subclass inheritance. Existing enum representation and OWL class/individual punning remain intact. No additional flag is needed because the schema already declares the relationship. Cover CURIEs, absolute and minted IRIs, literal values, representation modes, and the distinction between gen-rdf metamodel serialization and gen-owl ontology assertions. Document the LinkML and OWL specification references. A resource in the OWL 2 reserved vocabulary (Structural Specification section 2.4), such as a type emitted as xsd:integer without type objects, cannot be an OWL 2 DL individual; its instantiates is not asserted, with a warning. Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
jdsika
force-pushed
the
feat/owlgen-permissible-value-instantiates
branch
from
October 14, 2026 07:42
fa0010a to
bbc8680
Compare
jdsika
added a commit
that referenced
this pull request
Oct 14, 2026
Review update from #31: without type objects a type is emitted as its XSD datatype, and asserting its instantiates made xsd:integer an individual, which OWL 2 DL forbids (found by the OWLAPI consumer gate in this branch). Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
jdsika
added a commit
that referenced
this pull request
Oct 14, 2026
Review update from #31: without type objects a type is emitted as its XSD datatype, and asserting its instantiates made xsd:integer an individual, which OWL 2 DL forbids (found by the OWLAPI consumer gate in this branch). Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gen-owlignored explicitinstantiatesdeclarations. This PR translates them tordf:typeon the emitted schema resource using one shared mapping for schemas, classes, slots, locally emitted types, enums, and non-literal permissible values.For example, an enum value with
meaning: ex:approvedandinstantiates: [vocab:Category]emitsex:approved rdf:type vocab:Category. CURIEs expand using the schema's prefixes; absolute IRIs and minted permissible-value IRIs are supported. An enum represented as named individuals retains its ownowl:oneOf; the external class is not closed by that enumeration.Literal permissible values cannot be RDF subjects, so the generator warns that their
instantiatesdeclaration cannot be emitted. Existingimplementsand permissible-value representation settings retain their roles.Semantics, generality, and option necessity
instantiatesis a multivalued URI-or-CURIE relationship applicable to schema elements and permissible values. The implementation follows those declarations and contains no vocabulary-specific lists.rdfs:subClassOfto the instantiated class.rdf:type. Where the same IRI is an OWL class or property and an individual, OWL metamodeling/punning keeps those interpretations separate. The change does not claim that every existing generator representation satisfies the full OWL 2 DL profile.--metaclassescontrols automatically added LinkML metamodel types, not whether explicitinstantiatesdeclarations are honored.Cross-generator consistency
gen-rdfandgen-jsonldserialize the schema as metamodel data and retainlinkml:instantiates;gen-owltranslates the declaration to an ontology membership assertion. A regression test exercises both RDF and OWL generation. JSON Schema and SHACL describe data instances, so applying a schema element's metaclass to those instances would be incorrect. Elements that the OWL generator does not emit, such as standalone subsets, gain no new representation from this change.The same mapping applies across emitted schema resources. Tests cover both values of
metaclassesandtype_objects.The downstream use in OMB #106 declares domain enum values as members of open vocabulary classes. Each enum closes only its own class; this does not turn those external vocabulary classes into closed enums.
Validation
bd102062b(2026-10-14): full compiler suite 12,404 passed. CI: see the checks on the current head.