Question re: @context and JSON-LD
-
Let's say for some contrived (but very real) reason, I want to add
{ "toot": "http://joinmastodon.org/ns#", "Emoji": "toot:Emoji" }
to@context
, but another member of@context
might be{ "toot": "http://joinmastodon.org/ns#", "focalPoint": ... }
Would it be acceptable if I just pushed my object to the end and assumed that JSON-LD parsers would correctly reduce it down to:
{ "toot": "http://joinmastodon.org/ns#", "Emoji": "toot:Emoji", "focalPoint": ... }
... or should I be adding in logic to detect the existing member defining
toot
and merge theEmoji
property in? -
@julian depends on if your property conflicts with any other defined properties. (see the schema.org problem)
-
julian@community.nodebb.orgreplied to thisismissem@hachyderm.io last edited by
@thisismissem@hachyderm.io let's assume no. Only common property is
toot
.I just want to make sure it's not going to make fedify or smithereen throw errors when it tries to parse my janky
@context
. -
@julian @thisismissem context definitions work on a "most recently declared wins" basis. so it's generally *okay* to redeclare the same definition, just unnecessary.
the only exception is when the @\protected keyword is used, which disallows any further redefinitions unless the new definition exactly matches the old definition.
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@julian @thisismissem which is to say, the following are equivalent within the same scope...
@\context: [
{
toot: http://joinmastodon.org/ns#,
Emoji: toot:Emoji
},
{
toot: http://joinmastodon.org/ns#,
IdentityProof: toot:IdentityProof
}
]@\context: [
{
toot: http://joinmastodon.org/ns#,
Emoji: toot:Emoji,
IdentityProof: toot:IdentityProof
}
]