Json-ld 未按预期转换为 RDF

Json-ld not being converted to RDF as expected

我已经将一些 JSON-ld 转换为 RDF,但是它似乎没有像我期望的那样生成带有主题的 RDF。

所以,我的 JSON-ld 看起来像这样:

{ 
  "@context":{ 
  "personid":"http://schema.org/id",
  "hasUpdateType":"http://schema.org/updateType"
},
"@type":"http://schema.org/Person",
"personid":"123456",
"hasUpdateType":{ 
  "@type":"updateType",
  "updateType":"Full"
}
}

而生成的RDF是

_:b0 <http://schema.org/id> "123456" .
_:b0 <http://schema.org/updateType> _:b1 .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .

然而我期待的是这样的(语法不正确,只是想粗略地显示):

person hasUpdatetype Full

我的json-ld错了吗?

为了从 json-ld 到 rdf 的转换,我使用了这个库 https://github.com/digitalbazaar/jsonld.js

中的 toRDF()

如有任何帮助,我们将不胜感激。

谢谢。

您需要使用@id(或别名)来定义节点对象的主题。您可以在上下文中将 "persondid" 定义为 @id

您定义 "hasUpdateTime" 扩展为 "schema:updateTime",因此扩展的 RDF 应该使用“http://schema.org/updateType”作为谓词。如果您希望该值是与 "Full" 关联的单个 URI,请在 "hasUpdateType" 上使用类型强制。像下面这样的东西可能更接近你想要的。

{ 
  "@context":{ 
    "@base": "http://example.com/",
    "personid":"@id",
    "hasUpdateType": {"@id": "http://schema.org/updateType", "@type": "@id"}
  },
  "@type":"http://schema.org/Person",
  "personid":"123456",
  "hasUpdateType":"Full"
}

这将为您提供以下三元组:

<http://example.com/123456> <http://schema.org/updateType> <http://example.com/Full> .
<http://example.com/123456> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .