【问题标题】:IRI Mapping and referencing in JSON-LDJSON-LD 中的 IRI 映射和引用
【发布时间】:2023-03-30 22:01:01
【问题描述】:

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

【问题讨论】:

    标签: json semantic-web ontology json-ld


    【解决方案1】:

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

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

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

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

    现在instances:1http://example.com/ + instances# + 1 的串联,如您所愿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多