Json-ld为节点定义类型

时间:2015-03-03 19:32:13

标签: json-ld

我有一个简单的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。

1 个答案:

答案 0 :(得分:2)

您可以将术语(映射到IRI的字符串)用作@type的值。当您将name设为@type时,您需要做的就是将映射从something添加到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

,则不会扩展