Skip to content

spec: catalogue seven indicative-mood requirements (band C) - #150

Merged
simontaurus merged 2 commits into
mainfrom
spec/band-c-normativity
Aug 27, 2026
Merged

spec: catalogue seven indicative-mood requirements (band C)#150
simontaurus merged 2 commits into
mainfrom
spec/band-c-normativity

Conversation

@simontaurus

@simontaurus simontaurus commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Continues the normativity audit. Seven requirements were stated in indicative mood, so the rule catalogue could not see them; each now carries an RFC 2119 keyword and a rule marker. 73 -> 80 rules.

New rules

id where requirement
OOLD-SCH-cfb8 #meta-schema A keyword OO-LD defines MUST carry the x-oold- prefix
OOLD-EXT-c77a #range-of-properties x-oold-range MUST take one of the three listed forms, and no other
OOLD-VER-9846 #ontology-mapping An exporter MUST NOT stamp x-oold-sssom onto instances
OOLD-EXT-68fa #framing A derived frame MUST follow the mechanical derivation
OOLD-EXT-eeda #reverse-properties An implementation MUST read and write a reverse property on the object that stores it
OOLD-EXT-44bd #localizing-schema-annotations The multilang keywords MUST NOT be interpreted as JSON-LD
OOLD-INS-770a #value-forms A reference written as a bare IRI string MUST carry @type: "@id" on its term

Also fixed

  • #meta-schema claimed @context was the only unprefixed keyword. Require x-enum-varnames for value aliases #138 added x-enum-varnames / x-enum-descriptions, and #enum-names cross-references #meta-schema for the naming rule, so the two sections contradicted each other. Both exemptions are now named, on the shared ground that the name is not OO-LD's to choose.
  • #protected-terms: "redefining a protected term to a different IRI is an error" is a [[JSON-LD11]] constraint, not an OO-LD one. Attributed rather than catalogued.
  • OOLD-INS-2e5d, OOLD-INS-1df7, OOLD-INS-f010 reworded so the keyword sits on the requirement its summary already claimed. Same obligations, re-accepted against the baseline.

Not done

The x-oold-reverse-default-properties deprecation was catalogued in the first commit and then dropped: a keyword deprecated before v1.0 is not part of v1.0's vocabulary, so there is nothing to bind. It is removed from the spec, the meta-schema and the compliance fixtures in #152 instead.

Verification

make check exit 0 (53 sections, 80 rules, baseline matching, no drift). make validate passes: 380 checks over examples, 71 over examples/compliance, 0 failed.

OOLD-SCH-cfb8 is machine-checkable and currently has no validator check.

- x-oold- keyword prefix, with @context and the enum keywords named as
  the two exemptions (#meta-schema contradicted #enum-names since #138)
- x-oold-range takes one of three forms, and no other
- x-oold-sssom must not be stamped onto exported instances
- frame derivation, reverse-property read/write, multilang keywords
  not interpreted as JSON-LD
- x-oold-reverse-default-properties deprecated as SHOULD NOT
- protected-term redefinition attributed to JSON-LD 1.1 rather than
  read as an OO-LD rule
A keyword deprecated before v1.0 is not part of v1.0's vocabulary, so
there is nothing for the catalogue to bind.
@simontaurus simontaurus changed the title spec: catalogue eight indicative-mood requirements (band C) spec: catalogue seven indicative-mood requirements (band C) Aug 27, 2026
@simontaurus
simontaurus merged commit ba57aa0 into main Aug 27, 2026
3 checks passed
@simontaurus
simontaurus deleted the spec/band-c-normativity branch August 27, 2026 03:32
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