Skip to content

v0.9.0

Latest

Choose a tag to compare

@simontaurus simontaurus released this 02 Aug 14:29
· 48 commits to main since this release

Term-mapping spec work from the OO-LD Scientific Profile requirements (#108; worked example #107, dataset model #109). Still pre-1.0: the remaining v1.0 gates are #25 (finalize edge cases) and #21 (backend impact review).

Highlights

  • One term-mapping mechanism. The inline * multi-mapping notation is removed; x-oold-context is the single mechanism, with a small, stable processing contract: tooling reads only predicate_id (a SKOS mapping predicate, compared by IRI expansion with skos: built-in) and mapping_set_id (an inline, list-valued set-membership tag), over an open SSSOM slot bag (#110).
  • Selection and co-emission. Promotion selects one synonym per term by namespace order and/or mapping set; co-emission defaults to skos:exactMatch only (others opt-in). SSSOM is the RECOMMENDED carrier, not a normative dependency; the propagatable object_source_version slots pin ontology versions under composition.
  • Type unification. x-oold-instance-rdf-type feeds @type: a materialized type is an ordinary @type, aliased and mapping-set-selectable per profile, so class synonyms are just x-oold-context on the type term. Co-typing and synonym-aliasing are orthogonal (#112).
  • Schema-level x-sssom replaces x-oold-iri (breaking rename). A schema's ontology correspondence is now the term-synonym mapping row lifted to the schema level (subject = the schema, keyed by object IRI, predicate_id exact/close). Migrate x-oold-iri: "X" to x-sssom: { "X": { "predicate_id": "skos:exactMatch" } }.
  • Value-term aliases (@vocab). Individual IRIs (e.g. units) can be declared as value terms and aliased by the same x-oold-context machinery, with enum/x-oold-range and no-collision (scoping / UUID) guidance.
  • x-oold-range bundling. Clarified that a range value is a dereferenceable reference an OO-LD loader MAY resolve (data bundling).

Full changelog: v0.8.0...v0.9.0