让我们考虑一个没有上下文的简单 JSON-LD 文档:
[
{
"@id": "http://stackoverflow.com/#users",
"http://rdfs.org/sioc/ns#name": "SO Users",
"http://xmlns.com/foaf/0.1/member":
{
"@id": "http://example.com/me#me"
}
},
{
"@id": "http://example.com/me#me",
"http://xmlns.com/foaf/0.1/givenName": "Tomasz"
}
]
我想在此文档中添加一个 @context 以获得如下内容:
{
"@context": { /* what here? */ },
"@graph": [
{
"@id": "http://stackoverflow.com/#users",
"Name": "SO Users",
"Members": [ "http://example.com/me#me" ]
},
{
"@id": "http://example.com/me#me",
"Name": "Tomasz"
}]
}
这里的问题是 foaf:givenName 和 sioc:name 属性都映射到 json 中的 Name 键。手动创作此文档不会有问题,因为嵌套的@context 可用于覆盖属性。
但是,是否可以使用 JSON-LD 规范定义的 Compact 操作?或者是将每个谓词映射到明确属性的唯一选择(在这种情况下,可能是 Name 和 GivenName)