将json转换为turtle

问题描述 投票:0回答:3

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

例如:

{
    "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 转换的工具。

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

rdf semantics linked-data turtle-rdf
3个回答
3
投票

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


2
投票

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

您所需要的只是添加一个

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

当然还有其他工具,直接映射或类似Tarql。如果您有一个大型数据集并且只是想转换它,然后就完成了,您可以使用它们,但我认为当

@context
是您所需要的(并且足够了)时,不值得将它们合并到您的管道中。

此外,在 RDF 中,您永远不必“定义”词汇表才能使用它。您可能需要它用于某些消费者,您可能需要它进行推理,它通常很有用,但您可以稍后再做(有点像您可以发布 XML 数据而不链接到 DTD/模式)。

还有
SPARQL Anything

,它使用自己的伪词汇表对任何键控或索引集合进行编码。对于您的示例,您将拥有: @prefix xyz: <http://sparql.xyz/facade-x/data/> . @prefix fx: <http://sparql.xyz/facade-x/ns/> . [ a fx:root ; xyz:name "Bart Simpson" ; xyz:age "11" ] .

JSON 属性直接转换为 
xyz:

命名空间。

    


0
投票
RDF

工具。 您可以使用

Linked Data

工具安装它,其中包含许多不同的库来处理 RDF 数据:

gem install rdf
gem install linkeddata

我先安装了
rdf

,但也许你只需要安装

linkeddata
。它可以用作命令行工具,如下所示:
rdf serialize <filename.jsonld> --output-format turtle -o <filename.ttl>

© www.soinside.com 2019 - 2024. All rights reserved.