Prefix OO-LD keywords with x-oold-, add dialect meta-schema and CI validation - #44
Merged
Merged
Conversation
…amples and CI validation
This was referenced Jun 21, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-rangetitle*/description*->x-oold-multilang-title/x-oold-multilang-descriptioniri->x-oold-iribackward-compatible-with->x-oold-backward-compatible-with;incompatible-with->x-oold-incompatible-with; proseoold-prior-version->x-oold-prior-versionx-oold-ref,x-oold-reverse-*,x-oold-uuid,x-oold-version@context(JSON-LD keyword), thename*multi-mapping (postponed, Extended JSON-LD context notation for synonyms #12), third-party json-editor keywords (format,defaultProperties), and the LinkML mapping example's ownrange:.#41 - OO-LD dialect meta-schema + optional
$vocabularymeta/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 eachx-oold-*keyword a syntax constraint and adescription.$idand the OO-LD vocabulary URI are provisional (flagged in the file) pending the hosting decision.#23 - CI validation
examples/(Thing <- Person, Organization). Examples use a relative$idso the base URI is the retrieval location: the same relative$refresolves both locally (file path) and once deployed (URL).scripts/validate.mjs+package.jsonand workflow.github/workflows/validate-schemas.ymlrunningnpm 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$refcomposition resolves offline.Notes
x-oold-range's subschema form is left permissive and does not yet validatex-oold-reverse-*inside it.x-oold-rangesection still uses$refinternally; the$ref->x-oold-refredesign is Type-range of properties formalization #20.Acceptance criteria
#42:
x-oold-*@context-> REST-API-LDx-jsonld-*derivation documented (follow-up)#41:
$vocabularydeclared optional; generic 2020-12 validator still processes OO-LD schemasx-oold-*keywords covered by the meta-schema syntax