1

我需要知道 RDB2RDF 工具之间的区别。谁能告诉我 RDB2RDF 工具的优缺点是什么?尤其是以下几个:Virtuoso、Ultrawrap、Ontop、Morph、Xsparql、D2RQ、....

4

2 回答 2

7

将关系数据转换为 RDF 有两种 W3C 标准化的方法:

  1. 直接映射— 不可自定义的默认映射。直接映射适用于关系数据规范化良好的情况,有主键、外键等。
  2. R2RML — 可定制的映射。

在下面的调查中,我只考虑 R2RML 实现。

此处列出了许多 R2RML 实现。我不考虑以下工具:

  • 死的,
  • 有薪酬的,
  • 需要编程,
  • 全栈(即声称替换您已经使用的所有软件),
  • 仅在包装器模式下工作,而不是在 ETL 模式下工作。

XSPARQL

语法示例

java -jar cli-0.5-jar-with-dependencies.jar -h
java -server -jar -Dfile.encoding=utf-8 cli-0.5-jar-with-dependencies.jar --mysql --dbName=mydb --dbServer=127.0.0.1 --dbUser=root --r2rml=r2rml.ttl > result.ttl

评论

  • cli-0.5-jar-with-dependencies.jar命令行 jar
    版本 0.5 更可取,您将在后者中收到“前缀不能为空”。

结论

使用到 XQuery 的中间翻译,非常慢。

在上面

Ontop 是一个流行的 Protégé 插件,但也可作为一组命令行实用程序使用。

语法示例

ontop materialize --url "jdbc:mysql://localhost:3306/mydb" --mapping "../r2rml.ttl" --username root --password "65536" --driver-class com.mysql.jdbc.Driver --disable-reasoning --format turtle --output result.ttl

评论

  • 在 MySQL 中,您必须设置SET GLOBAL SQL_MODE-ANSI_QUOTES;

结论

Ontop 是为使用本体而设计的,并会生成许多本体垃圾,例如... rdf:type owl:namedIndividual.

Ontop 尝试从 解析和重写 SQL 查询rr:sqlQuery,不了解许多 SQL 结构,并诚实地建议您在关系数据库中创建适当的 SQL 视图。

R2RML 支持是部分的。Ontop R2RML 手册。真快。

RDB2RDF::R2RML

我无法安装这个 Perl 模块:CPAN 上没有很多依赖项。

D2RQ

D2RQ 是一种全栈解决方案,但是可以从 D2RQ 发行版中提取独立工具。

仅预览版支持 R2RML 。

D2RQ 提供了自己的映射语言(顺便说一句,还有 Ontop)。

结论

我记得,D2RQ 将您的 SQL 查询rr:sqlQuery分成许多“原子”查询,并一一提取数据库记录,这真的很慢。

D2RQ R2RML 手册

结论

我个人的选择是Ontop。

也可以看看:

于 2017-08-03T09:32:31.853 回答
3

我没有像@Stanislav Kralin 那样严格地考虑这一点,也没有在性能、优雅、表现力等方面定义我的期望。

越来越多的三元组在关系数据和语义三元组之间提供了自己的桥梁。我特别想到 StardogGraphDB。我相信 Stardog(和 Virtuoso 的?)解决方案实际上并没有具体转储三元组。相反,它们创建一个或多个表的虚拟语义视图。

D2R是我使用的第一个实例化器。我很惊讶@Stanislav Kralin 包含它,因为它有点死(或未维护)并且它确实需要编程(或用声明性语言写出语句。)我不知道 R2RML 预览......我必须检查一下,因为我担心使用他们的专有语言。

我相信我的一些学术同事使用参考R2RML 解析器

我对ISI 的 Karma非常满意。实例化表格/关系数据是我研究的重要组成部分,我当然发现了一些难以实现的边缘案例,例如链接多个单例实例。

  • 文档很好
  • 安装简单
  • 有一个不错的 Web GUI,还有一个命令行批量转换脚本

Karma 不仅仅使用纯 R2RML:

  • 他们使用 R2RML
    • 以 JSON 工作表作为至少一个三元组的对象
      • 在 JSON 中使用 Python 数据转换
于 2017-08-03T14:13:35.753 回答