如何从不同的未知结构rdf图中查询数据?

如何从不同的未知结构rdf图中查询数据?,rdf,sparql,semantic-web,ontology,Rdf,Sparql,Semantic Web,Ontology,几年来,链接数据的数量快速增长。有。每个图形都有自己的前缀和词汇结构 那么,如何使用该图查询特定实体和相关数据呢 是否有必要研究每个图的单独结构并在系统逻辑中实现它 或者,有没有什么好方法可以在不知道结构的情况下使用SPARQL查询数据?没有,没有。您不能盲目地查询数据库,您必须了解数据库中的内容,才能提出合理的查询来获取您感兴趣的数据片段 但是由于缺乏对数据集的任何了解,您可以启动一些非常一般的查询来开始创建导航的构建块,ala select distinct ?p where { ?s ?p

几年来,链接数据的数量快速增长。有。每个图形都有自己的前缀和词汇结构

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

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


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

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

但是由于缺乏对数据集的任何了解,您可以启动一些非常一般的查询来开始创建导航的构建块,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云中的一些数据集可能会提供一种概述,概述您从上述查询中获得的一些内容,或者粗略地浏览一个模式,这足以让您继续

通常,您不希望只开始遍历图,最好了解图的结构,并提出一些精确的查询,以获取应用程序最感兴趣的数据子集。LoD云的一个优点是,在它们使用的词汇表中,许多数据集在某种程度上是重叠的。因此,有了FOAF或都柏林Core等普通歌手的知识,您可以从探索中获得一些经验。然后,如果您将其与云的某些部分使用的vocab相结合,就可以开始制定适用于您的应用程序的查询

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

describe <uri_of_the_interesting_entity>
描述
将为您获取该实体的相关图形子集。descripe查询返回的内容取决于数据库使用的算法,但一般来说,它至少会包含对象的所有三元组

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