4

几年以来,关联数据的数量快速增长。使用RDF 发布了不同的图表。每个图表都有自己的前缀和词汇结构。

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

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

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

4

1 回答 1

6

不,不是。您不能只是盲目地查询数据库,您必须了解其中的内容才能提出合理的查询来获取您感兴趣的数据片段。

但是缺乏任何数据集的知识,你可以启动一些非常通用的查询来开始创建导航的构建块,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 描述,该描述概述了您从上述查询中获得的一些内容或粗略的模式,并且足以让您继续前进。

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

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

describe <uri_of_the_interesting_entity>

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

如果您还不熟悉SPARQL 规范,您可能需要一些时间来查看它。祝你好运。

于 2012-11-09T14:06:59.520 回答