You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spec-side siblings: OO-LD/oold-schema#119 (guidance for generating OO-LD schemas from an existing source model, i.e. the OWL to OO-LD direction), OO-LD/oold-schema#108 (mapping-set selection, class and id aliases, x-sssom slots) and OO-LD/oold-schema#82 (RDF semantics for the keywords). Those hold the spec; this issue is the implementation.
Properties are first-class entities in OWL, so they carry more than a range: rdfs:subPropertyOf, rdfs:domain, rdfs:range, and property characteristics
Note that x-oold-range points to another schema, not to an OWL class. The two are not interchangeable and the converter has to bridge that gap explicitly
Where the remaining property information comes from needs a decision:
Look up the resolvable OWL property definition, i.e. dereference the property IRI and read the existing axioms
Annotate the OO-LD schema property with additional x-oold-* keywords, reusable by factoring properties into dedicated property schemas, e.g. Person.properties.knows.$ref: knows.schema.json
Model properties as JSON instances of a Property.schema.json, so the instances generate the corresponding OWL-RDF, as done by the OpenSemanticWorld schema packages (see world.opensemantic.core)
Options 2 and 3 need further agreement, so 1 is the fallback.
OWL to OO-LD
Class and property axioms to JSON Schema plus @context
Full OWL 2 DL is not expressible in JSON Schema, so the supported fragment has to be declared
SSSOM output (optional)
Optional, to carry eventual SKOS annotations on the OWL classes and properties
Not the primary purpose of the converter
Open questions
How much OWL detail is actually needed - just generate RDF compliant to the OWL ontology or store as much as possible of the ontological definitions in OO-LD, e.g. to feed reasoning?
Which OWL profile to target, and whether the output is meant for reasoning or for documentation; this decides how strict the axioms must be
Convert between OO-LD schemas and an OWL subset.
See the migration guide for the existing OWL/SHACL crosswalk: https://oo-ld.org/1.0.0-rc.1/migration/from-owl-shacl/
Spec-side siblings: OO-LD/oold-schema#119 (guidance for generating OO-LD schemas from an existing source model, i.e. the OWL to OO-LD direction), OO-LD/oold-schema#108 (mapping-set selection, class and id aliases,
x-sssomslots) and OO-LD/oold-schema#82 (RDF semantics for the keywords). Those hold the spec; this issue is the implementation.cc @jesper-friis
OO-LD to OWL
Object schemas to
owl:ClassProperties are first-class entities in OWL, so they carry more than a range:
rdfs:subPropertyOf,rdfs:domain,rdfs:range, and property characteristicsNote that
x-oold-rangepoints to another schema, not to an OWL class. The two are not interchangeable and the converter has to bridge that gap explicitlyWhere the remaining property information comes from needs a decision:
x-oold-*keywords, reusable by factoring properties into dedicated property schemas, e.g.Person.properties.knows.$ref: knows.schema.jsonProperty.schema.json, so the instances generate the corresponding OWL-RDF, as done by the OpenSemanticWorld schema packages (seeworld.opensemantic.core)Options 2 and 3 need further agreement, so 1 is the fallback.
OWL to OO-LD
@contextSSSOM output (optional)
Open questions