Skip to content

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

Open

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

Activity

  1. self-assigned this
    on Aug 13, 2026
  2. added
    converterSchema conversion to/from another schema or modelling language
    on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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