Suppose we have the following JSON:
{
"@context":
{
"name": "http://schema.org/name",
"status": "http://schema.org/status"
},
"name": "Manu Sporny",
"status": "trollin'"
}
(JSON-LD Playground)
The trollin'
status is identified with a URI: http://example.com/trolling
. Is it possible to expand the trollin'
keyword in the example above to the URI http://example.com/trolling
?
A straightforward manipulation of the context does not work:
{
"@context":
{
"name": "http://schema.org/name",
"status": "http://schema.org/status",
"trollin'": "http://example.com/trolling"
},
"name": "Manu Sporny",
"status": "trollin'"
}
(JSON Playground)
Forcing the type of status
to @id
also won't work, because it will assume trollin'
is a relative URI.
{
"@context":
{
"name": "http://schema.org/name",
"status": {
"@id": "http://schema.org/status",
"@type": "@id"
},
"trollin'": "http://example.com/trolling"
},
"name": "Manu Sporny",
"status": "trollin'"
}
(JSON-LD Playground)
Yes, you can do it, you need to set the type of status to @vocab:
{
"@context":
{
"name": "http://schema.org/name",
"status": {
"@id": "http://schema.org/status",
"@type": "@vocab"
},
"trollin'": "http://example.com/trolling"
},
"name": "Manu Sporny",
"status": "trollin'"
}
Here's a link to the playground.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With