我的问题有“重复项”,但没有回答我的问题.
考虑下面的JSON-LD示例,如第6.13节-http://www.w3.org/TR/json-ld/中的命名图所述:
{
"@context": {
"generatedAt": {
"@id": "http://www.w3.org/ns/prov#generatedAtTime",
"@type": "http://www.w3.org/2001/XMLSchema#date"
},
"Person": "http://xmlns.com/foaf/0.1/Person",
"name": "http://xmlns.com/foaf/0.1/name",
"knows": "http://xmlns.com/foaf/0.1/knows"
},
"@id": "http://example.org/graphs/73",
"generatedAt": "2012-04-09",
"@graph":
[
{
"@id": "http://manu.sporny.org/about#manu",
"@type": "Person",
"name": "Manu Sporny",
"knows": "http://greggkellogg.net/foaf#me"
},
{
"@id": "http://greggkellogg.net/foaf#me",
"@type": "Person",
"name": "Gregg Kellogg",
"knows": "http://manu.sporny.org/about#manu"
}
]
}
题:
如果仅从没有语义层的JSON部分开始怎么办:
[{
"name": "Manu Sporny",
"knows": "http://greggkellogg.net/foaf#me"
},
{
"name": "Gregg Kellogg",
"knows": "http://manu.sporny.org/about#manu"
}]
然后使用http链接标头或rdflib解析从单独的文件或位置链接@context,那么在文档的其余部分中仍然没有@id和@type.将那些缺少的键值注入json字符串不是一个干净的选择.想法是从JSON转换为JSON-LD,而无需更改原始JSON部分.
我用它定义三重主题的方式,必须使用@id映射到IRI. JSON数据具有@id键值的可能性很小.那么这是否意味着如果不先添加密钥,就无法将所有JSON文件解析为JSON-LD?我想知道他们是如何做到的.
有人有主意向我指出正确的方向吗?
谢谢.
解决方法:
不,很遗憾,这是不可能的.但是,存在正是由于这个原因而创建的库和工具. JSON-LD Macros就是这样的图书馆.它允许JSON对象的声明性转换,以使其可用作JSON-LD.因此,有效地,您所需要的只是在现成的JSON-LD处理器之上的非常薄的一层.