我需要知道RDB2RDF工具之间的区别。
有谁能告诉我RDB2RDF工具的优缺点是什么?特别是对于以下的:Virtuoso,Ultrawrap,Ontop,Morph,Xsparql,D2RQ,....
答案 0 :(得分:5)
有两种W3C标准化方法可以将关系数据转换为RDF:
在下面的调查中,我只考虑R2RML实现。
许多R2RML实现都是listed here。我不认为这些工具是:
<强> 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。<强> 结论 强>
使用中间转换为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
<强> 说明 强>
SET GLOBAL SQL_MODE-ANSI_QUOTES;
<强> 结论 强>
Ontop设计用于处理本体并生成许多本体垃圾,如... rdf:type owl:namedIndividual
。
Ontop尝试从rr:sqlQuery
解析和重写SQL查询,不了解很多SQL构造,并诚实地建议您在关系数据库中创建适当的SQL视图。
R2RML支持是partial。 Ontop R2RML manual。真的很快
<强> RDB2RDF :: R2RML 强>
我无法安装此Perl模块:CPAN上缺少许多依赖项。
<强> D2RQ 强>
D2RQ是一个全栈解决方案,但是可以从D2RQ发行版中提取独立工具。
仅preview version支持R2RML。
D2RQ提供了自己的映射语言(顺便说一下,还有Ontop)。
<强> 结论 强>
我记得,D2RQ将您的SQL查询从rr:sqlQuery
划分为多个“原子”查询并逐个提取数据库记录,这非常慢。
<强>结论强>
我个人的选择是Ontop。
另见:
答案 1 :(得分:2)
我没有像@Stanislav Kralin那样严谨地思考这个问题,或者在性能,优雅,表现力等方面对我的期望进行了定义。
越来越多的 triplestores在关系数据和语义三元组之间提供了自己的桥梁。我特别想到Stardog和GraphDB。我相信Stardog(以及Virtuoso&#39; s)解决方案实际上并没有具体地抛弃三元组。相反,他们创建一个或多个表的虚拟语义视图。
D2R 是我使用过的第一个实例化器。我很惊讶@Stanislav Kralin把它包括在内,因为它有点死(或者没有维护),它确实需要编程(或用声明性语言写出语句。)我对R2RML一无所知预览......我必须检查出来,因为我担心使用他们的专有语言。
我相信我的一些学术同事使用参考 R2RML解析器。
我对Karma from ISI非常满意。实例化表格/关系数据是我研究的重要部分,我当然发现了一些难以实现的边缘情况,例如链接多个单例实例。
Karma并不仅仅使用纯R2RML: