allegrograph 和五列 mysql 表有什么区别?
Allegrograph 基本上是一个 RDF 三元组(实际上是五个字段)存储。那为什么我们不能创建一个有五列的 MySQL 表并将三元组存储在其中呢? ?
AG相对于这样的MySql表有什么特点呢?
Allegrograph is basically a RDF triple(actually five field) store. Then why can't we create a MySQL table with five columns and store the triples in them. ?
What features does AG have over such MySql table ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简单地说,它支持 SPARQL
SPARQL w3.org/TR/rdf-sparql-query/" rel="nofollow">SPARQL 是 RDF 的查询语言,它与 SQL 的语义有很大不同,有工具可以将 SPARQL 转换为 SQL 查询,但性能较差往往是非常 贫穷的。另外,SPARQL 规范还有很多功能(特别是内置的函数),这在 MySQL 中没有等效项,因此必须通过存储过程/用户定义的函数进行模仿或在代码中完成。
评估 SPARQL 与评估 SQL 有很大不同,因为 SPARQL 更依赖于大量复杂的联接,SPARQL 存储使用的优化器虽然与 SQL 优化器的工作原理相同,但旨在处理与传统 RDBMS 截然不同的查询类型通常会处理。
一般来说,五列表非常简单,因为每一列都包含一个复杂的项目,该项目有多个部分,并且使用多个表进行存储会更好。此外,与更规范化的表设计相比,单表方法将导致大量存储需求。
如果您关心的只是在 SQL 数据库中保存和加载 RDF 三元组,那么简单的单表方法可能适合您。如果您确实想做一些有用的事情,那么您需要更复杂的 SQL 数据库模式或适当的 RDF 存储(例如 AllegroGraph)
Simply put it supports SPARQL
SPARQL is the query language for RDF and it has quite difference semantics to SQL, there are tools to convert SPARQL into SQL queries but performance is often very poor. Plus there are lots of features of the SPARQL specification (esp the built-in functions) which have no equivalent in MySQL and so would either have to be aped by stored procedures/user defined functions or done in code.
Evaluating SPARQL is quite different to evaluating SQL because SPARQL is far more reliant on lots of complex joins, SPARQL stores use optimizers that while work on the same principles as SQL optimizers but are designed to cope with very different kinds of queries to those a traditional RDBMS would usually handle.
In general a five column table is very naive because each column contains a complex item that has multiple parts to it and would be better stored using multiple tables. Also a single table approach will lead to massive storage requirements over a more normalized table design.
If all you care about is saving and loading RDF triples to/from an SQL database then a naive single table approach may be fine for you. If you actually want to do something useful then you need a more complex SQL database schema or a proper RDF store like AllegroGraph
AllegroGraph 为符合 ACID 的 RDF 图形数据库设定了行业标准
并针对 OLTP、推理和商业智能应用程序进行了优化
利用语义技术。
因此,如果您决定创建一个五列表来模拟 RDF 图
数据库,你会错过什么?
语义世界的语言)或创建您自己的 SPARQL 的能力
扩展。
表大表和每个查询多个自联接。
(Javascript、Prolog、Lisp)都针对此类存储进行了优化。
在同一数据集中同时进行分析扩展。
Python、C#、Clojure、Lisp、Ruby、REST 接口
复制、热备份、时间点恢复
AllegroGraph sets the industry standard for ACID compliant RDF graph databases
and is optimized for OLTP, reasoning and business intelligence applications
that utilize semantic technology.
So if you decide to create a single five column table to simulate an RDF graph
database, what will you be missing?
language of the semantic world) or the ability to create your own SPARQL
extensions.
table large table and multiple self-joins per query.
(Javascript, Prolog, Lisp) that are all optimized for this type of store.
Analysis extension all at the same time in the same data set.
Python, C#, Clojure, Lisp, Ruby, REST interface
replication, warm standby, point-in-time restore