Skip to content

Prefix OO-LD keywords with x-oold-, add dialect meta-schema and CI validation - #44

Merged
simontaurus merged 1 commit into
mainfrom
spec/issue-42-41-prefix-metaschema
Jun 21, 2026
Merged

Prefix OO-LD keywords with x-oold-, add dialect meta-schema and CI validation#44
simontaurus merged 1 commit into
mainfrom
spec/issue-42-41-prefix-metaschema

Conversation

@simontaurus

Copy link
Copy Markdown
Contributor

Implements decision 6 (prefixing, #42) and decision 4 (meta-schema + optional vocabulary, #41) from the gap analysis (#18), and adds the CI validation job (#23).

#42 - prefix all OO-LD-proprietary keywords with x-oold-

Every OO-LD custom keyword is prefixed, so it is a valid JSON-SCHEMA extension keyword and a valid OpenAPI 3.0 Specification Extension:

  • range -> x-oold-range
  • title* / description* -> x-oold-multilang-title / x-oold-multilang-description
  • iri -> x-oold-iri
  • backward-compatible-with -> x-oold-backward-compatible-with; incompatible-with -> x-oold-incompatible-with; prose oold-prior-version -> x-oold-prior-version
  • Already conforming (unchanged): x-oold-ref, x-oold-reverse-*, x-oold-uuid, x-oold-version
  • Left unchanged: @context (JSON-LD keyword), the name* multi-mapping (postponed, Extended JSON-LD context notation for synonyms #12), third-party json-editor keywords (format, defaultProperties), and the LinkML mapping example's own range:.

#41 - OO-LD dialect meta-schema + optional $vocabulary

  • New meta/oold-meta-schema.json: extends the 2020-12 meta-schema, re-lists the seven standard vocabularies as required (Core 8.1.2.2), declares the OO-LD vocabulary optional (false), and gives each x-oold-* keyword a syntax constraint and a description.
  • New README section "Meta-schema and vocabulary".
  • $id and the OO-LD vocabulary URI are provisional (flagged in the file) pending the hosting decision.

#23 - CI validation

  • New examples/ (Thing <- Person, Organization). Examples use a relative $id so the base URI is the retrieval location: the same relative $ref resolves both locally (file path) and once deployed (URL).
  • New scripts/validate.mjs + package.json and workflow .github/workflows/validate-schemas.yml running npm install && npm run validate, which checks: the meta-schema is valid 2020-12, each example is a well-formed OO-LD schema, and each example's standard $ref composition resolves offline.

Notes

  • x-oold-range's subschema form is left permissive and does not yet validate x-oold-reverse-* inside it.
  • The x-oold-range section still uses $ref internally; the $ref -> x-oold-ref redesign is Type-range of properties formalization #20.

Acceptance criteria

#42:

  • OO-LD custom keywords prefixed x-oold-*
  • @context -> REST-API-LD x-jsonld-* derivation documented (follow-up)
  • Delivery-tier table added to README (follow-up)

#41:

  • OO-LD dialect meta-schema published + example validates against it
  • $vocabulary declared optional; generic 2020-12 validator still processes OO-LD schemas
  • x-oold-* keywords covered by the meta-schema syntax

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant