我正在使用https://github.com/jsonld-java/jsonld-java從JSON文檔生成三元組。我是json-ld的新手,我想知道是否有一種方法可以用@id生成三元組作爲文字,或者@id需要一個IRI。JSON-LD:在沒有IRI的情況下產生三元組,在json文檔中沒有@id
樣品的Json輸入:
[
{
"@context": {
"@vocab": "http://schema.org/",
"@base": "test.com"
},
"@graph": [
{
"@type": [
"Person",
"Entity"
],
"@id": "abcdef",
"personName": "David"
}
]
}
]
代碼段:
JsonLdProcessor.toRDF(obj, options)
的選項,我使用以下JsonLd選項配置
this.format = "application/nquads"
以上文件不產生任何三元組。當我將上述json文檔中的@id字段更改爲「@id」:「http://abcdef」時,它會生成以下三元組。
<http://abcdef> <http://schema.org/personName> "David" _:b0 .
<http://abcdef> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Entity> _:b0 .
<http://abcdef> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> _:b0 .
任何指針或建議將是偉大的。
完美。非常感謝您的回覆。根據設計,上下文中的@ base在所有json文檔中使用URN而不是URI。我試圖用新的JsonLdOptions(「http://test.com/」)覆蓋@base。 jsonLd選項不會覆蓋json文檔提供的@ base。你知道如何繼續這個嗎? – Sathibhu 2015-02-18 00:29:35
如果您可以修改源,那麼。您可以使用新的@base添加上下文。否則,沒有辦法修改如何生成IRI。 – 2015-02-19 07:20:23