SPARQL-查询属性并返回相关属性的结果

SPARQL-查询属性并返回相关属性的结果,sparql,Sparql,我是SPARQL新手,我正在尝试运行SPARQL查询,以便返回属性的结果,并在此基础上列出相关属性的值 示例代码为: SELECT ?player ?position ?club ?goals WHERE { ?player a <http://dbpedia.org/ontology/SoccerManager> . filter (contains (str(?player), "Alan_Shearer")) . ?player <http://dbpedia.o

我是SPARQL新手,我正在尝试运行SPARQL查询,以便返回属性的结果,并在此基础上列出相关属性的值

示例代码为:

SELECT ?player ?position ?club ?goals WHERE {
  ?player a <http://dbpedia.org/ontology/SoccerManager> . filter (contains (str(?player), "Alan_Shearer")) .
  ?player <http://dbpedia.org/ontology/position> ?position .
  ?player <http://dbpedia.org/property/clubs> ?club .
  ?player <http://dbpedia.org/property/goals> ?goals .
}
每个俱乐部的目标在数据集中正确关联,因此我只想获得各个俱乐部的目标:

player  position    club    goals
http://dbpedia.org/resource/Alan_Shearer    http://dbpedia.org/resource/Forward_(association_football)  http://dbpedia.org/resource/Southampton_F.C.    23
http://dbpedia.org/resource/Alan_Shearer    http://dbpedia.org/resource/Forward_(association_football)  http://dbpedia.org/resource/Newcastle_United_F.C.   112
http://dbpedia.org/resource/Alan_Shearer    http://dbpedia.org/resource/Forward_(association_football)  http://dbpedia.org/resource/Blackburn_Rovers_F.C.   148

但是,我不了解如何在SPARQL中执行此操作,非常感谢您的帮助。

请注意,数据中有一些dbpedia owl:careerStation属性值:

dbpedia-owl:careerStation dbpedia:Alan_Shearer__1, dbpedia:Alan_Shearer__2, ...
如果您查看这些属性的值,例如,您可以看到其中一些属性具有多个目标属性。这意味着您可以这样做:

选择球员位置团队目标{
价值观?球员{dbpedia:Alan_Shearer}
?玩家dbpedia猫头鹰:位置?位置;
dbpedia-owl:careerStation[dbpedia-owl:team?team;
dbpedia owl:numberOfGoals?goals]。
}

由于并非所有站点都有目标信息,因此您可能希望在此处使用一个可选选项来获取站点以及目标(如果可用):

选择球员位置团队目标{
价值观?球员{dbpedia:Alan_Shearer}
?玩家dbpedia猫头鹰:位置?位置;
dbpedia猫头鹰:careerStation?站。
?dbpedia猫头鹰站:团队?团队。
可选{站点dbpedia owl:numberOfGoals?goals}
}

看看,进球似乎与俱乐部没有任何关系,除了出场顺序。据我所知,没有显式的RDF语句将一个绑定到另一个。在RDF中,通过索引访问值是一件非常痛苦的事情。感谢您的回复,查看其他数据,出现的顺序并不总是相关的——当然,数据在Wikipedia中总是正确显示的。我最初的想法是从Wiki信息框中获取特定信息,同时避免解析整个信息框。谢谢,我现在理解了这个问题,我必须回头想想更好的方法和数据集。@W99你是什么意思?这难道不能解决问题吗?(很抱歉,我首先发布了一个答案,解释了评论中讨论的问题,但随后意识到DBpedia确实有您想要的数据,以及团队和目标之间的关联,但您必须以稍微不同的方式进行查询。)抱歉,我在回复您的原始答案时提供了您经过编辑的回复!是的,你的答案就是我想要的。谢谢-我把你的答案投了赞成票,我没看到。顺便问一下,将多个目标值设置为
dbpprop:goals
有什么意义?这些属性包含的所有信息都可以通过您在回答中提到的资源获得(以及其他上下文)。我明白了将聚合物化作为一种可能的性能改进(如
dbprop:totalgoals
)的意义,但我看不出在
dbpedia:Alan_Shearer
级别上断章取义地使用这三个单独数字背后的原因。有什么我遗漏的吗?@toniedzwiedz记住,DBpedia中的所有内容都是从Wikipedia中提取的。通常,页面上的信息框会告诉您有关该特定资源的信息。(例如,带有年龄字段的Person信息框通常会告诉您此人的年龄。)我想在这种情况下,有某种类型的Station信息框实际上会告诉您一些与资源不完全相同的信息。例如,多个站点信息框可以各有一个“目标”属性。简单的infobox提取只会将它们与资源关联起来。DBpedia有两种类型的信息:
dbpedia-owl:careerStation dbpedia:Alan_Shearer__1, dbpedia:Alan_Shearer__2, ...