@Context
DS-V5 uses almost the same @context as the previous version DS-V4 with some additions and changes.
Additions and changes
Additions to the @context are:
sh:languageIn
sh:equals
sh:disjoint
sh:lessThan
sh:lessThanOrEquals
ds (this is a namespace/vocabulary for DS related specifications, which is also part of DS-V5)
ds:usedVocabularies
Since we want to use sh:in
to constraints the possible values for literals too (we used it only for enumeration values before), we have to remove the corresponding "@type": "@id"
from the @context. This means, that enumeration values are now wrapped with @id
:
in DS-V4
@context:
...
"sh:in": {
"@id": "sh:in",
"@type": "@id",
"@container": "@list"
}
...
@graph:
...
{
"sh:class": "schema:DayOfWeek",
"sh:in": [
"schema:Wednesday",
"schema:Saturday",
"schema:Thursday"
]
}
...
in DS-V5
@context:
...
"sh:in": {
"@id": "sh:in",
"@container": "@list"
}
...
@graph:
...
{
"sh:class": "schema:DayOfWeek",
"sh:in": [
{
"@id": "schema:Wednesday"
},
{
"@id": "schema:Saturday"
},
{
"@id": "schema:Thursday"
}
]
}
...
{
"sh:path": "schema:City",
"sh:or": [
{
"sh:datatype": "xsd:string",
"sh:in": [
"Innsbruck",
"Mayrhofen",
"Seefeld"
]
}
]
}
To enable a listing of allowed language tags without having a wrapping @list
, we need to add the following to the context:
"sh:languageIn": {
"@id": "sh:languageIn",
"@container":"@list"
}
Value for property pair constraints have always an URI as values, so it wise to add that type in the context:
"sh:equals": {
"@id": "sh:equals",
"@type": "@id"
}
@context for DS-V5
{
"@context": {
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"sh": "http://www.w3.org/ns/shacl#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"schema": "http://schema.org/",
"sh:targetClass": {
"@id": "sh:targetClass",
"@type": "@id"
},
"sh:property": {
"@id": "sh:property"
},
"sh:path": {
"@id": "sh:path",
"@type": "@id"
},
"sh:datatype": {
"@id": "sh:datatype",
"@type": "@id"
},
"sh:node": {
"@id": "sh:node"
},
"sh:class": {
"@id": "sh:class",
"@type": "@id"
},
"sh:or": {
"@id": "sh:or",
"@container": "@list"
},
"sh:in": {
"@id": "sh:in",
"@container": "@list"
},
"sh:languageIn": {
"@id": "sh:languageIn",
"@container":"@list"
},
"sh:equals": {
"@id": "sh:equals",
"@type": "@id"
},
"sh:disjoint": {
"@id": "sh:disjoint",
"@type": "@id"
},
"sh:lessThan": {
"@id": "sh:lessThan",
"@type": "@id"
},
"sh:lessThanOrEquals": {
"@id": "sh:lessThanOrEquals",
"@type": "@id"
},
"ds": "http://vocab.sti2.at/ds/",
"ds:usedVocabularies": {
"@id": "ds:usedVocabularies",
"@type": "@id"
}
}
}
Last updated