For example, one way to represent the notion "The sky has the color blue"
in RDF is as the triple: a subject denoting "the sky",
a predicate denoting "has",
and an object denoting "the color blue". Therefore, RDF swaps object
for subject that would be used in the classical notation of an
entity–attribute–value model within object-oriented design;
Entity (sky), attribute (color) and value (blue).
RDF is an abstract model with several serialization formats
(i.e., file formats),
and so the particular way in which a resource or triple is encoded
varies from format to format.
1条答案
按热度按时间xxls0lw81#
SPARQL和RDF如何与AQL和ArangoDB相关联?
SPARLQ是一种专门用于RDF之上的语言,因此我们首先需要比较数据存储库:
RDF与ArangoDB集合的比较
尽管RDF和RDF都将其实体称为“文档,”但它们在许多方面是不同的。ArangoDB是无模式的,并且只支持json特定的数据类型。RDF使用从XML命名空间派生的结构来表示这些数据类型。这些命名空间可以是嵌套的。有一些实现将RDF存储在SQL数据库中。显然,RDF语法必须被转换成ArangoDB集合Foxx服务层可以提供实现这些附加数据类型的抽象;将一个名称空间Map到一个集合可能会导致许多集合具有非常少的文档。
As the Wikipedia describes it in its article over the Resource Description Framework:
RDF有三重模型,而ArangoDB使用面向对象的设计。
因此,我们在RDF中有这个源模型:
让我们尝试将此模型Map到ArangoDB:
如果我们模仿它与RDF“相似”,名称空间将成为一个集合,每个文档都是该名称空间中的一个实体:
面向对象的方法作为ArangoDB的原生方法(因此允许它最好地伸缩)可以转换为如下形式:
第二种方法利用的不是数据的元视图,而是已经对数据有了相当清晰的了解,您可以指定索引(即在
hasColor
上)以获得更好的查询性能。许多收藏有许多非常简单的文档,没有索引是很容易的。SPARQL与AQL
虽然您可以将一组基本的SPARQL
WHERE
-子句Map到Foxx服务中的AQLFILTER
-语句(也可以连接到其他集合),但using a readily available SPARQL javascript parser可能是不可缺少的,但可能不会产生正确的结果。我还尝试了使用some of the javascript RDF parsersto parse some of the publicaly available RDF datasets将它们导入ArangoDB,但似乎这些js解析器还没有准备好进入黄金时间。
结论
虽然RDF + SPARQL和ArangoDB + AQL之间存在重叠,但也存在必须填补的重大空白。虽然我们会支持其他人填补这些空白,但我们目前无法专注于此。要提供令人满意的ArangoDB体验,最终将依赖于RDF模式的手动翻译。自动转换的SPARQL很可能无法查询这些数据。
可采取的步骤:
ArangoDB文档更深入地讨论了how to map RDF data into graphs