You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem:
In general JSON-LD allows exactly one mapping of a prefix/keyword to an IRI.
To express alternative vocabular terms we introduced the * notation, e.g. schema:name = skos:prefLabel:
{
"@context": {
"name": "http://schema.org/name",
"name*": "http://www.w3.org/2004/02/skos/core#prefLabel",
"name**": "... additional IRI"
},
"name": "The Empire State Building"
}
Of course name* and name** are ignored by any standard JSON-LD algorithm (while name is processed normally since it's still a valid context) but OO-LD aware tools can make use of the extended syntax (e.g. to create enriched RDF or mappings between vocabulars).
This also allows to remove definitions by assigning null, e.g. "name*": null will remove this alias in a more specific subclass.
However, in a deep inheritance hierarchy it's hard to know how many stars were already used up- and downwards the hierarchy.
But using an array or object e.g. with + and - syntax to add/remove IRIs will not result in a valid JSON-LD context:
{
"@context": {
"name": "http://schema.org/name",
"name+": ["http://www.w3.org/2004/02/skos/core#prefLabel", "... additional IRI"],
"name-": ["http://www.w3.org/2004/02/skos/core#prefLabel"],
},
"name": "The Empire State Building"
}
Another option is to add a random id after the * (e.g. a part of the schemas UUID). This will still be a valid JSON-LD context while no additional knowledge about imported definitions is needed to add IRIs. Removing IRIs will required to lookup the exact ID, which seems reasonable.
{
"@context": {
"name": "http://schema.org/name",
"name*tfh45764": "http://www.w3.org/2004/02/skos/core#prefLabel",
"name*g6hfdf55": "... additional IRI",
"name*tfh45764": null,
},
"name": "The Empire State Building"
}
The text was updated successfully, but these errors were encountered:
Problem:
In general JSON-LD allows exactly one mapping of a prefix/keyword to an IRI.
To express alternative vocabular terms we introduced the * notation, e.g. schema:name = skos:prefLabel:
Of course
name*
andname**
are ignored by any standard JSON-LD algorithm (whilename
is processed normally since it's still a valid context) but OO-LD aware tools can make use of the extended syntax (e.g. to create enriched RDF or mappings between vocabulars).This also allows to remove definitions by assigning
null
, e.g."name*": null
will remove this alias in a more specific subclass.However, in a deep inheritance hierarchy it's hard to know how many stars were already used up- and downwards the hierarchy.
But using an array or object e.g. with
+
and-
syntax to add/remove IRIs will not result in a valid JSON-LD context:Another option is to add a random id after the
*
(e.g. a part of the schemas UUID). This will still be a valid JSON-LD context while no additional knowledge about imported definitions is needed to add IRIs. Removing IRIs will required to lookup the exact ID, which seems reasonable.The text was updated successfully, but these errors were encountered: