首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOAF的SPARQL查询不返回任何结果

FOAF的SPARQL查询不返回任何结果
EN

Stack Overflow用户
提问于 2016-05-03 10:30:47
回答 1查看 859关注 0票数 0

我想从FOAF本体中获得一些信息。我尝试了下面的SPARQL查询,但是它没有返回结果。我试着使用这个查询来熟悉FOAF,但我真正想要做的是找到?x所认识的所有特定人员(使用属性foaf:knows)。我该怎么做?

代码语言:javascript
复制
PREFIX foaf:<http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
        ?x foaf:mbox ?mbox .
}
EN

回答 1

Stack Overflow用户

发布于 2016-05-03 14:49:58

语义网由不同的组件组成。

知识被表示为RDF三元组。这些三元组基于主谓对象语法描述参考资料。例如,"John is a Male"可以表示为一个RDF三元组。

在RDF之上,我们可以使用RDFS和OWL来指定这些数据的限制和其他信息。由于RDFS,我可以指定"Male is a subclass of Person",因此可以推断出这个"John is a Person"。RDFS和OWL有助于定义本体。本体是表示数据的词汇表(可以是通用的,也可以是特定于域的)。例如,我可能希望创建一个本体猫来表示猫的数据。

在这种情况下,我将创建我的猫词汇表,定义"Cat is a subclass of Animal""hasOwner is a property that links a cat to a Person"以及其他一些属性。然后,我可以实例化一些人来创建猫的数据。比如说"Baccara is a Cat""Baccara hasOwner John"

FOAF基本上是用来表示人的数据,特别是这些人之间的链接的词汇表。FOAF词汇表提供一些属性和类来轻松处理有关人员的信息。但是它没有提供任何信息,只有“结构”/“模型”/“模式”来组织信息。FOAF数据集中没有个人。这就是为什么查询不返回结果的原因。由于FOAF数据集中没有人员,所以查询不返回任何内容是正常的。

您可能希望基于FOAF词汇表构建自己的RDF数据集。要做到这一点,您可以尝试像Protégé这样的工具,如果您熟悉RDF/XML或Turtle,可以更容易地使用文本编辑器。

否则,如果您只需要熟悉FOAF,就可以查询模型。例如,您可能希望获得代理的所有子类:

代码语言:javascript
复制
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT distinct ?c 
WHERE { ?c rdfs:subClassOf foaf:Agent }

在进一步研究FOAF之前,我建议您先阅读一下语义web组件(特别是RDF和RDFS,以及它们之间的差异)。另外,学习SPARQL的一个很好的练习是查询DBpedia:http://dbpedia.org/sparql

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37001744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档