Skip to content

fix(frame): treat a bare @reverse term as reference-valued - #4

Merged
simontaurus merged 1 commit into
mainfrom
fix/reverse-term-reference-signal
Sep 21, 2026
Merged

simontaurus merged 1 commit into
mainfrom
fix/reverse-term-reference-signal

Conversation

@simontaurus

Copy link
Copy Markdown
Contributor

referenceProperties keyed on "@type": "@id" alone, so a term mapped with @reverse was only recognised when the author also wrote the coercion - which JSON-LD 1.1 §4.1.10 makes redundant, since a reverse term's values are node references by definition.

bare @reverse        -> referenceProperties: []            frame: undefined
@reverse + @type @id -> referenceProperties: ["employees"] frame: {"@embed":"@never"}

Without the subframe, framing embeds the reverse targets: the defect OO-LD/oold-schema#160 closed, reachable again through the idiomatic spelling. Every existing fixture passed because the specification's worked example writes both.

Spec change: OO-LD/oold-schema#181, which adds @reverse as a fourth signal to OOLD-EXT-6d10. Port: OO-LD/oold-python#164.

npm test: 6 passing.

A reverse term's values are node references by definition, so "@type":
"@id" beside it is redundant and authors omit it. Keying only on @type
missed the idiomatic spelling, and framing embedded the targets.

Refs OO-LD/oold-schema#181
@simontaurus
simontaurus merged commit 18e246c into main Sep 21, 2026
1 check passed
@simontaurus
simontaurus deleted the fix/reverse-term-reference-signal branch September 21, 2026 04:57
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