如何查询来自不同的未知结构化rdf图的数据?

时间:2012-11-09 11:37:17

标签: rdf sparql semantic-web ontology

几年以来,关联数据的数量增长迅速。有different graphs published using RDF。每个图都有自己的前缀和词汇结构。

那么,如何使用此图表查询特定实体和相关数据呢?

是否有必要研究每个图的个别结构并在系统逻辑中实现它?

或者在不知道结构的情况下使用SPARQL查询数据有什么好方法吗?

1 个答案:

答案 0 :(得分:5)

不,不是真的。你不能盲目地查询数据库,你必须知道某些关于它的内容,以便提出一个明智的查询来获取你感兴趣的一些数据。

但是缺乏对数据集的任何了解,你可以触发一些非常一般查询来开始创建导航的构建块,ala

select distinct ?p where { ?s ?p ?o }

这将返回数据库中使用的每个谓词。大致得到所有类:

select distinct ?t where { ?s a ?t }

或者您可以将这些组合起来以获取每个类使用的所有谓词

select distinct ?p ?t where { ?s a ?t . ?s ?p ?o }

通过发出这些类型的查询,您可以开始了解数据库中的内容。但这些只是试图近似(即猜测)数据的基础架构是什么。因此,您最好查看与数据关联的RDF架构或OWL本体,假设有一个。此外,根据数据库提供的优化,这些查询具有一般性,在数据库上运行可能非常简单。因此,您可能需要在将其关闭到任何随机端点之前考虑这一点。

LoD云中的一些数据集可能提供voiD description哪种概述了您从上述查询中获得的一些内容或粗略的模式,并且足以让您前进。< / p>

通常,您不想只是开始遍历图表,最好不要了解图表的结构,并提出一些精确的查询来获取您最感兴趣的数据子集。应用。关于LoD云的一个好处是,许多数据集在某种程度上与他们使用的词汇表重叠。因此,掌握了常见词汇的知识,例如FOAF或都柏林核心,你可以从探索中获得一些好处。然后,如果将此与云部分使用的词汇结合使用,您就可以开始制定适合您的应用程序的查询。

要回答您的初始问题,如果现在还不清楚,是的,您可以查询图表中的特定实体,您需要知道的只是它的URI。事实上,一旦你知道:

describe <uri_of_the_interesting_entity>

将为您提供该实体图表的相关子集。在describe查询中返回的内容取决于数据库使用的算法,但通常情况下,它至少会包含事物所属的所有三元组。

如果您还不熟悉,可能需要一些时间来审核SPARQL spec。祝你好运。