JSON-LD 中的 IRI 映射和引用

IRI Mapping and referencing in JSON-LD

我正在尝试使用 JSON-LD 设计一个 ontology,但我无法正确使用语法。我查看了 https://www.w3.org/TR/json-ld 但无法准确找到我要查找的信息,即:How to nest IRI's in the context, and how to reference them in the body?

{
  "@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。我该如何正确处理?

它没有按照您想要的方式工作,因为您定义了 @base 然后尝试将其用作前缀。

哈希 (#) 也不会神奇地出现。您必须将其包含在您的基本 URI 中。

总而言之,您必须将上下文更改为:

"@context":{
  "base":"http://example.com/",
  "instances":"base:instances#",
  "animals":"base:animals#",
  "plants":"base:plants#"
}

现在 instances:1http://example.com/ + instances# + 1 的串联。