【问题标题】:RDF change the format to include prefixRDF 更改格式以包含前缀
【发布时间】:2016-09-05 13:04:58
【问题描述】:

我正在使用 d2rq.org 将我的关系数据库数据更改为 RDF 格式,我可以使用 http://d2rq.org/dump-rdf 编写结果转储

我做到了,但生成的三元组如下:

<http://www.bla.com/to#Media3348> <http://www.bla.com/to#hasGenre> <http://www.bla.com/to#Genre1> .

不过,我更喜欢使用前缀实体,而不是全长 URI。

我正在使用以下方法提取数据:

map:Genre a d2rq:ClassMap;
    d2rq:dataStorage map:database;
    d2rq:class to:Genre;
    d2rq:uriPattern "http://www.bla.com/to#Genre@@M3.GENRE.GENRE_ID@@";
. 

即使我将映射文件更改为

d2rq:uriPattern "to:Genre@@M3.GENRE.GENRE_ID@@";

结果是:

<to:Genre1> 

它们总是包含&lt; &gt;

【问题讨论】:

  • 您需要改变输出格式。在映射规范中使用前缀并不重要。如果没有更改格式的选项,您可以在之后使用例如将 N-Triples 转换为 TURTLE。说唱歌手、耶拿、芝麻等 - 随你喜欢。
  • 如果你使用-f TURTLE会发生什么?
  • @AKSW 所以这是我在您的评论 sh dump-rdf -o output.ttl -f TURTLE mapping-file.ttl 之后使用的命令,并且没有向 output.ttl 文件写入任何内容。但是当我使用你的建议时,它会写入文件

标签: sparql rdf d2rq


【解决方案1】:

默认情况下,dump-rdf 以 N-Triples 格式生成输出。 N-Triples 不支持前缀名称,因此它总是会在尖括号中写出完整的 URI。

你想要的是海龟格式的输出。 Turtle 支持带有前缀名称的 URI 的缩写。所以文件开头可以有这个:

@prefix to: <http://www.bla.com/to#>.

在声明了这个前缀之后,就可以编写前缀名称to:Something,而不是完整的URI &lt;http://www.bla.com/to#Something&gt;

您可以通过在命令行中添加-f TURTLE 来指示dump-rdf 使用Turtle 输出格式(正如AKSW 已经指出的那样)。

请注意,N-Triples 更适合大型数据库,因为消耗的内存更少。

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 2020-01-24
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2021-04-17
    相关资源
    最近更新 更多