我有这个 json-ld:
{ "@id": "http://www.example.com/john-doe",
"@type": "http://xmlns.com/foaf/0.1/Person",
"http://xmlns.com/foaf/0.1/name": "John Doe",
"http://xmlns.com/foaf/0.1/age": {
"@value": "42",
"@kind": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"},
"http://xmlns.com/foaf/0.1/knows" : [
{ "@id": "http://www.example.com/charlie-brown" },
{ "@id": "http://www.example.com/jane-doe" }
]
}
我必须编写上下文,以便下面的 json-ld 有效。
{ "@context" : "context to write....",
"@id": "john-doe",
"@type": "person",
"name": "John Doe",
"age": "42",
"knows": ["charlie-brown", "jane-doe"]
}
我已经写了一个解决方案,但它不完整,而且我不知道如何编写完整的解决方案,希望有人可以帮助我。
最佳答案
您必须使用framing以获得接近您要求的结果。
- 请参阅此答案以获取 Java 完整代码示例,How to convert RDF to pretty nested JSON using java rdf4j .
- 另请参阅此答案,其中还包含一些额外的提示 JSON-LD to normal JSON
使用这个link for an example在 json-ld Playground 中。这就是嵌入 @context 的文档的样子:
{
"@context": {
"name": {
"@id": "http://xmlns.com/foaf/0.1/name"
},
"age": {
"@id": "http://xmlns.com/foaf/0.1/age"
},
"knows": {
"@id": "http://xmlns.com/foaf/0.1/knows",
"@container": "@set"
}
},
"@id": "john-doe",
"@type": "person",
"name": "John Doe",
"age": "42",
"knows": [
"charlie-brown",
"jane-doe"
]
}
这就是框架的样子
{
"@context": {
"name": {
"@id": "http://xmlns.com/foaf/0.1/name"
},
"age": {
"@id": "http://xmlns.com/foaf/0.1/age"
},
"knows": {
"@id": "http://xmlns.com/foaf/0.1/knows",
"@container": "@set"
}
}
}
这将渲染到
{
"@context": {
"name": {
"@id": "http://xmlns.com/foaf/0.1/name"
},
"age": {
"@id": "http://xmlns.com/foaf/0.1/age"
},
"knows": {
"@id": "http://xmlns.com/foaf/0.1/knows",
"@container": "@set"
}
},
"@graph": [
{
"@id": "john-doe",
"@type": "https://json-ld.org/playground/person",
"age": "42",
"knows": [
"charlie-brown",
"jane-doe"
],
"name": "John Doe"
}
]
}
关于semantic-web - 如何操作Json-ld?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48719613/