知识图谱:JSON-LD To N-Quads — Numio
使用 jsonld.toRDF 将 JSON-LD 转换为 N-Quads 格式的 RDF。每条语句占一行,包含主语、谓语、宾语(命名图还包含图名);没有 @id 的节点变为 _:b0 这样的空白节点。
将 JSON-LD 结构化数据载入可导入 N-Quads 的三元组存储或 RDF 库。
适用场景
- 将 JSON-LD 结构化数据载入可导入 N-Quads 的三元组存储或 RDF 库。
- 准确查看搜索引擎或 RDF 工具会从你的 JSON-LD 中提取出哪些 RDF 三元组。
使用方法
- 将 JSON-LD 文档粘贴到 JSON-LD 编辑器。
- 查看 N-Quads 输出;@type 变为 rdf:type 三元组,嵌套对象变为相互链接的空白节点。
- 将这些行复制到 .nq 文件中。
JSON-LD
{
"@context": {"@vocab": "http://schema.org/"},
"@type": "Person",
"name": "Jane Doe",
"address": {
"@type": "PostalAddress",
"addressLocality": "Seattle"
}
}N-Quads
_:b0 <http://schema.org/address> _:b1 . _:b0 <http://schema.org/name> "Jane Doe" . _:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> . _:b1 <http://schema.org/addressLocality> "Seattle" . _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/PostalAddress> .
功能与限制
空白节点标签(_:b0、_:b1)在转换过程中分配,不是规范化的;如需稳定的标签,请使用 normalized 页面。
三元组位于默认图中,因此每行没有第四个元素;命名图(带 @id 的 @graph)会加上图 IRI。
使用 jsonld.js 在浏览器中运行;https://schema.org/ 这样的远程 @context 由浏览器获取。下载失败时,页面会显示包含该 context URL 的错误。
FAQ
N-Quads 输出是有效的 N-Triples 吗?
像本例这样所有数据都在默认图中时,每一行也是有效的 N-Triples。命名图中的数据会多出 N-Triples 不允许的图名列。
普通字符串和数字如何写出?
字符串变为 "Jane Doe" 这样的普通字面量;JSON 中的整数、小数和布尔值变为带类型的字面量:"3"^^xsd:integer、"1.5E0"^^xsd:double 和 "true"^^xsd:boolean(以完整 IRI 写出)。
为什么有些键不见了?
只有通过 @context 展开为 IRI 的键才会产生三元组;未定义的术语会被丢弃。