fix(scripts): count a scoped @context term only where it is a property - #151
Merged
Conversation
Mirrors OO-LD/oold-python#135 so the reference implementation and oold-python stay in parity, and so the fix travels with validate.mjs into oold-js. Refs #149
This was referenced Aug 27, 2026
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.
embeddedPropertiesinscripts/schema_to_frame.mjstook every@contextterm carrying a scoped@context, without checking that the schema declares a property of that name.OOLD-CMP-b926requires a schema to reflect every$refin its@context, including$refs reached from$defs, so the root context carries terms for properties the root object never holds. Such a term maderoundtripchoose framing over compaction and put an unmatchable property into the derived frame, so framing returned nothing and an unrelated property was reported lost. Full analysis in #149.Same one-line condition as OO-LD/oold-python#135. Fixed here so the reference implementation stays in parity with
oold-pythonand so the fix travels withvalidate.mjsintooold-js.Not exercised by the compliance fixtures, which is why parity did not catch it.
Verification
make validate-reference: 149/149 checks passed, 1 warning (the known rule-coverage warning). Parity fromoold-pythonagainst this branch: 6 passed.