我正在尝试使用JSON-LD设计本体,但我无法正确使用语法。我看了https://www.w3.org/TR/json-ld,但无法找到我正在寻找的信息,这就是:如何在上下文中嵌套IRI,以及如何在体内引用它们?
{
"@context":{
"@base":"http://example.com/",
"instances":"base:instances",
"animals":"base:animals",
"plants":"base:plants"
},
"@graph":[
{
"@id": "instances:1",
"@type": "Plant",
"plants:numleaves": "8",
"plants:speciesname": "sunflower"
},
{
"@id": "instances:2",
"@type": "Animal",
"animals:numlegs": "4",
"animals:speciesname": "dog",
"animals:eats": "instances:1"
}
]
}
我希望第一个元素的ID为http://example.com/instances#1
,但当我通过http://json-ld.org/playground/运行时,它的展开形式为base:instances1
。我该如何做对?
答案 0 :(得分:2)
它无法按您的方式工作,因为您定义@base
然后尝试将其用作前缀。
哈希(#)也不会神奇地出现。您必须将其包含在基URI中。
总结一下,您必须将上下文更改为:
"@context":{
"base":"http://example.com/",
"instances":"base:instances#",
"animals":"base:animals#",
"plants":"base:plants#"
}
现在instances:1
是您要求的http://example.com/
+ instances#
+ 1
的串联。