3

Allegrograph 基本上是一个 RDF 三元组(实际上是五个字段)存储。那么为什么我们不能创建一个包含五列的 MySQL 表并将三元组存储在其中。?

AG 对这样的 MySql 表有什么特点?

4

2 回答 2

5

简单来说就是支持SPARQL

SPARQL是 RDF 的查询语言,它的语义与 SQL 有很大不同,有工具可以将 SPARQL 转换为 SQL 查询,但性能通常很差。此外,SPARQL规范的许多特性(尤其是内置函数)在 MySQL 中没有对应的特性,因此要么必须通过存储过程/用户定义的函数来模仿,要么在代码中完成。

评估 SPARQL 与评估 SQL 完全不同,因为 SPARQL 更依赖于许多复杂的连接,SPARQL 存储使用优化器,虽然其工作原理与 SQL 优化器相同,但旨在处理与传统 RDBMS 截然不同的查询类型通常会处理。

一般来说,五列表非常幼稚,因为每一列都包含一个复杂的项目,该项目具有多个部分,并且使用多个表更好地存储。此外,与更规范化的表设计相比,单表方法将导致大量存储需求。

如果您只关心在 SQL 数据库中保存和加载 RDF 三元组,那么简单的单表方法可能适合您。如果你真的想做一些有用的事情,那么你需要一个更复杂的 SQL 数据库模式或像 AllegroGraph 这样的适当 RDF 存储

于 2012-01-06T20:27:20.143 回答
0

AllegroGraph 为符合 ACID 的 RDF 图数据库设定了行业标准,并针对使用语义技术的 OLTP、推理和商业智能应用程序进行了优化。

因此,如果您决定创建一个五列表来模拟 RDF 图数据库,您会缺少什么?

  • 如另一个响应中所述,您不会获得 SPARQL(语义世界的查询语言)或创建自己的 SPARQL 扩展的能力。
  • mySQL 针对高度规范化的数据库模式进行了优化,而不是单个表大表和每个查询的多个自联接。
  • AllegroGraph 支持多种服务器端编程语言(Javascript、Prolog、Lisp),这些语言都针对这种类型的存储进行了优化。
  • AllegroGraph 在同一数据集中同时支持 RDF 数据,以及地理扩展、社交网络分析扩展。
  • AllegroGraph 支持基于 RDF 图数据集的推理 (RDFS++)
  • AllegroGraph 支持三级安全性。
  • AllegroGraph 支持 Java 语义库 Jena 和 Sesame,以及 Python、C#、Clojure、Lisp、Ruby、REST 接口
  • 与任何企业数据库一样,AllegroGraph 还支持在线备份、复制、热备份、时间点恢复
于 2012-01-28T01:40:29.527 回答