Skip to content

Bidirectional OO-LD <-> OWL subset converter #109

Description

@SimonStier

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-sssom slots) 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:Class

  • 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:

    1. Look up the resolvable OWL property definition, i.e. dereference the property IRI and read the existing axioms
    2. 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
    3. 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
  • Shared IRI handling with the SHACL converter (Bidirectional OO-LD <-> SHACL converter #108), both derive from the same context and should not diverge

Metadata

Metadata

Assignees

Labels

converterSchema conversion to/from another schema or modelling language

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions