2

我有一个简单的 json 文件,例如:

{
   "name": "something"
}

现在我有一个 json-ld 定义,其中有对象。有 ID 为 #something 的对象 - 它存在让我们在http://example.com/test.jsonld#something上说。

现在我想在不修改原始数据的情况下添加上下文,因此 Name 成为一种类型,值成为 IRI 到http://example.com/test.jsonld#something

我做了这样的事情:

{
   "@context":{
      "name":"@type"
   },
   "@id":"1234",
   "name":"something"
}

这给了我在 jsonld 操场上几乎我想要的东西:

{
   "@id": "1234",
   "@type": "http://json-ld.org/playground/something",
}

如何添加上下文以使值“某些内容扩展到 IRI http://example.com/test.jsonld#something而不是 playgorund ?

尝试使用“@base”,但它也将@id 更改为 url。

4

1 回答 1

2

您可以使用术语(映射到 IRI 的字符串)作为@type. 正如您已经使用别名一样name@type您需要做的就是添加映射 from somethingto http://example.com/test.jsonld#something

{
  "@context":{
    "name": "@type",
    "something": "http://example.com/test.jsonld#something"
  },
  "@id": "1234",
  "name": "something"
}

尝试使用“@base”,但它也将@id 更改为 url。

的值@id始终是 IRI。如果您没有基础 ( "@base": null) ,它只是不会扩展

于 2015-03-03T20:47:04.707 回答