将 json 转换为乌龟

converting json to turtle

我正在寻找将 json 转换为 turtle 格式的工具。

例如:

{
    "name": "Bart Simpson",
    "age": "11"
}

类似于:

@base <http://example.com/people> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix people: <http://example.com/people.rdf> .

<http://example.com/people_1> people:name "Bart Simpson" ; 
             people:age "11" .

对我来说,挑战在于确定执行转换的正确步骤是什么。 看来我需要先定义一个词汇表,比如http://example.com/people.rdf。但是我不清楚如何定义词汇。

此外,我正在寻找使用给定词汇表进行 json2turtle 转换的工具。

我可能在这里误解了链接数据的概念。如果这个问题没有意义,请告诉我。

使用 JARQL,您可以在 JSON 文件上使用 SPARQL 构造查询,从而在您想要的任何序列化(Turtle、RDF/XML 等)中创建 RDF。

考虑您打算如何使用该工具是很有用的。正如评论中所建议的,您应该首先查看 JSON-LD,即关联数据的 JSON。这是连接 JSON 和 RDF 的主要方式,如果您想要发布与 RDF 兼容的数据但出于某种原因想要保留主要的 JSON 结构,则适用。您不需要使用 Turtle,因为大多数工具应该能够很好地处理 JSON-LD。

您只需要添加一个 @context 属性 来描述键和值如何映射到 RDF 词汇表。如果您的服务在 JSON 中定期通信,则无需其他任何东西。

当然还有其他工具,直接映射或者Tarql之类的。如果你有一个大型数据集并且只是想转换它然后你就可以使用它们,但我认为当 @context 是你所需要的(并且足够了)时,不值得将它们合并到你的管道中).

此外,在 RDF 中,您无需定义 词汇表即可使用它。您可能需要它供某些消费者使用,您可能需要它用于推理,它通常很有用,但您可以稍后再做(有点像您可以发布 XML 数据而不链接到 DTD/schema)。