RDB2RDF工具的优缺点是什么?

时间:2017-08-03 06:37:22

标签: sparql rdf etl semantic-web r2rml

我需要知道RDB2RDF工具之间的区别。 有谁能告诉我RDB2RDF工具的优缺点是什么?特别是对于以下的:Virtuoso,Ultrawrap,Ontop,Morph,Xsparql,D2RQ,....

2 个答案:

答案 0 :(得分:5)

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

  1. Direct Mapping - 不可自定义的默认映射。当关系数据很好地规范化,有主键,外键等时,直接映射是合适的。
  2. R2RML - 可自定义的映射。
  3. 在下面的调查中,我只考虑R2RML实现。

    许多R2RML实现都是listed here。我不认为这些工具是:

    • 死,
    • 支付
    • 需要编程,
    • 全栈(即声称要替换您已使用的所有软件),
    • 仅在包装模式下工作,在ETL模式下not

    <强> 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 - command-line jar
      版本0.5是优选的,您将在后者中收到“前缀不能为空”。

    <强> 结论

    使用中间转换为XQuery,非常慢。

    <强> ontop的

    Ontop是一个流行的Protégé插件,但also available是一组命令行实用程序。

    语法示例

    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尝试从rr:sqlQuery解析和重写SQL查询,不了解很多SQL构造,并诚实地建议您在关系数据库中创建适当的SQL视图。

    R2RML支持是partialOntop R2RML manual。真的很快

    <强> RDB2RDF :: R2RML

    我无法安装此Perl模块:CPAN上缺少许多依赖项。

    <强> D2RQ

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

    preview version支持R2RML。

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

    <强> 结论

    我记得,D2RQ将您的SQL查询从rr:sqlQuery划分为多个“原子”查询并逐个提取数据库记录,这非常慢。

    D2RQ R2RML Manual

    <强>结论

    我个人的选择是Ontop。

    另见:

答案 1 :(得分:2)

我没有像@Stanislav Kralin那样严谨地思考这个问题,或者在性能,优雅,表现力等方面对我的期望进行了定义。

越来越多的 triplestores在关系数据和语义三元组之间提供了自己的桥梁。我特别想到StardogGraphDB。我相信Stardog(以及Virtuoso&#39; s)解决方案实际上并没有具体地抛弃三元组。相反,他们创建一个或多个表的虚拟语义视图。

D2R 是我使用过的第一个实例化器。我很惊讶@Stanislav Kralin把它包括在内,因为它有点死(或者没有维护),它确实需要编程(或用声明性语言写出语句。)我对R2RML一无所知预览......我必须检查出来,因为我担心使用他们的专有语言。

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

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

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

Karma并不仅仅使用纯R2RML:

  • 他们使用R2RML
    • 使用JSON工作表作为至少一个三元组的对象
      • 使用JSON中的Python数据转换