JIS-LD中的IRI映射和引用

时间:2016-06-18 08:30:49

标签: json semantic-web ontology json-ld

我正在尝试使用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。我该如何做对?

1 个答案:

答案 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的串联。