How should we represent this in Topics' JSON-LD representations?
I'll start from this example topic:
{
"@context": {
"url": "@id"
}
"url": "http://workingnotes.org/projects/emma/topics/4/"
}
Let's say that someone wants to add a triple whose subject is this topic, predicate is http://example.org/v#color and object is the string literal "green".
The simplest way to do this would be to just extend the API's representation of the topic:
{
"@context": {
"url": "@id"
}
"url": "http://workingnotes.org/projects/emma/topics/4/",
"http://example.org/v#color": "green"
}
However, I think it makes sense to fence extra properties (i.e. not ones built in to Editors' Notes) into their own namespace, with its own context. That might look something like this:
{
"@context": {
"url": "@id",
"structuredData": "@graph"
},
"url": "http://workingnotes.org/projects/emma/topics/4/",
"structuredData": {
"@context": {
"color": "http://example.org/v#color"
},
"@id": "http://workingnotes.org/projects/emma/topics/4/",
"color": "green"
}
}
In this case, we have to repeat @id to set a subject for the statements in the @graph. That results in the following nquad:
<http://workingnotes.org/projects/emma/topics/4/> <http://example.org/v#color> "green" <http://workingnotes.org/projects/emma/topics/4/> .
Is that nonsensical, defining an RDF object as the subject of its own named graph?
If json-ld/json-ld.org#246 were a reality, we could set structuredData in the @context to be @index rather than @graph, making it a semantically meaningless grouping. However, that's not possible with the current JSON-LD standard.
I still think this second approach makes the most sense, because it makes it clear which properties are user-defined and which are EN-defined. It would be nice to be able to say, in effect: "here's your own JSON-LD space to do whatever you want."
Any other ideas?
How should we represent this in Topics' JSON-LD representations?
I'll start from this example topic:
Let's say that someone wants to add a triple whose subject is this topic, predicate is
http://example.org/v#colorand object is the string literal"green".The simplest way to do this would be to just extend the API's representation of the topic:
However, I think it makes sense to fence extra properties (i.e. not ones built in to Editors' Notes) into their own namespace, with its own context. That might look something like this:
In this case, we have to repeat
@idto set a subject for the statements in the@graph. That results in the following nquad:<http://workingnotes.org/projects/emma/topics/4/> <http://example.org/v#color> "green" <http://workingnotes.org/projects/emma/topics/4/> .Is that nonsensical, defining an RDF object as the subject of its own named graph?
If json-ld/json-ld.org#246 were a reality, we could set
structuredDatain the@contextto be@indexrather than@graph, making it a semantically meaningless grouping. However, that's not possible with the current JSON-LD standard.I still think this second approach makes the most sense, because it makes it clear which properties are user-defined and which are EN-defined. It would be nice to be able to say, in effect: "here's your own JSON-LD space to do whatever you want."
Any other ideas?