当前位置: 首页 > 知识库问答 >
问题:

Virtuoso本机RDF四元存储和Virtuoso基于SQL的RDF三元存储之间的区别

麹正业
2023-03-14

我目前正在研究Virtuoso,我真的很想知道本机RDF四元存储和基于SQL的RDF三元存储之间有什么区别,如本页所示(向下滚动一点可以看到图):http://Virtuoso.openlinksw.com/dataspace/doc/dav/wiki/main/virtjenaprovider(网址:http://Virtuoso.openlinksw.com/dataspace/doc/dav/wiki/main/virtjenaprovider

我知道本机RDF Quad Store在引擎盖下使用了传统的关系数据包,但它通过SPARQLhtml" target="_blank">优化以获得更快的请求。这让我迷惑!因为我想知道基于SQL的RDF三重存储现在是什么...

提前道谢!

共有1个答案

马欣荣
2023-03-14

Virtuoso实际上是一套完整的应用程序和服务层,构建在它们自己的SQL数据库之上,因此产生混淆是可以理解的。

本机RDF Quad Store是Virtuoso自己的Quad Store实现,具有讽刺意味的是,正如您所指出的,它实际上是基于SQL的。这完全存储和实现在Virtuoso自己的SQL数据库实现中。因此,尽管它是基于SQL的,但它具有固定的表布局,并使用自定义数据类型来存储数据。

基于SQL的RDF三重存储引用了Virtuoso商业版本的一个特性,它允许您定义映射规则,以将任意正常的关系数据库(基于Virtuoso的数据库和其他基于后端的数据库,如MySql、PostgreSQL)视为RDF存储。

对于基于SQL的三重存储,涉及到一个映射层,它们必须调用SQL数据库(可能是外部的)并将其内容转换为RDF形式,以便进行必要的计算来回答SPARQL查询。映射步骤的成本可能非常高,并且使得查询更难优化,因为查询访问的RDF数据的预先信息较少。

此外,由于数据通常只是标准的SQL类型,它们不能将某些逻辑下推到底层查询引擎,因为SQL和SPARQL类型语义在许多情况下不对齐。因此,必须提取值,进行适当的转换,然后在查询引擎层之上计算表达式结果,然后根据需要返回。这降低了性能,因为引擎必须在不同的处理上下文之间切换,并可能进行许多SQL查询来回答同一个SPARQL查询。

 类似资料:
  • 我对RDF数据库和查询语言不太了解。是否可能使Oracle RDF表高效?我看到人们在谈论Apache Jena工具和SPARQL语言。它能解决我的问题吗?如果我使用Jena,那么我需要以XML格式存储RDF三元组吗?还是我当前的格式可以?我如何使用Jena工具?另外,使用graph数据库而不是Oracle数据库会有帮助吗?如果是的话,那该选哪一个呢?

  • 我用的是艺术大师。它安装在服务器上。我正试图从我的大师中删除一个大型RDF图。它包含2590994053个三元组。我试图用下面的命令删除图表。 然而,在运行了很长一段时间后,Virtuoso给了我以下错误。

  • 本文向大家介绍内存和存储之间的区别,包括了内存和存储之间的区别的使用技巧和注意事项,需要的朋友参考一下 记忆 内存允许短期存储数据。存储器通常由寄存器组成。每个寄存器都有一个称为存储位置或存储位置的位置。每个存储位置均由一个地址标识。内存容量由否决定。内存可以存储的位数。内存分为三种主要类型: 高速缓存存储器 主记忆 二级记忆 存储 存储允许长期存储数据。只要程序需要数据,就将数据从存储器复制到内

  • 我正在搜索教程和wikipedias以了解OWLs、RDFs、TTL之间的区别。正如我所理解的,所有这些都是元数据(或本体),但它们之间的本质区别到底是什么呢?谢谢... https://www.w3.org/rdf/https://en.wikipedia.org/wiki/web_ontology_language

  • 我想将名称(ClassName)更改为一个不同的名称,例如(ClassA)。我可以通过编写SPARQL查询来实现吗? 作为一个工具包,我正在使用gena,我不确定我所询问的是可能的还是不可能的!

  • OpenLink Virtuoso 是一个可伸缩的高性能,兼容 SQL-200n 的对象关系数据库引擎,提供了复杂的SQL\XML\RDF数据库管理功能。支持工业标准的交互查询协议、API 和数据格式,包括:ODBC, JDBC, OLE-DB, ADO.NET, XMLA, SQL, SPARQL, XQuery, SOAP, HTTP, WebDAV, SyncML, Atom (Publis