sparql dbpedia.org在fiorentina中唯一的目标

时间:2016-04-12 12:44:40

标签: sparql dbpedia

有没有办法只获得足球运动员在佛罗伦萨使用dbpedia.org SPARQL终点得分的目标?我尝试了以下查询,但不幸的是我获得了每个赛季的目标。

select * where {
  ?player a dbo:SoccerPlayer.
  ?player dbo:team <http://dbpedia.org/resource/ACF_Fiorentina>.
  ?player dbp:position <http://dbpedia.org/resource/Forward_(association_football)>.
  ?player dbp:goals ?goal.
}
limit 10000

1 个答案:

答案 0 :(得分:3)

我认为你可以做到这一点。如果您浏览data for Silva,您会看到许多职业电台,例如station 12,每个电台都有多个目标。这意味着你可以这样做:

select * where {
  ?player a dbo:SoccerPlayer ; 
          dbp:position <http://dbpedia.org/resource/Forward_(association_football)> ;
          dbo:careerStation ?station .
  ?station dbo:numberOfGoals ?goals ;
           dbo:team dbr:ACF_Fiorentina .
}

SPARQL results

当然,一个玩家可能在同一个团队中有多个站点,所以你仍然希望聚合每个玩家并总结目标:

select ?player (sum(?goals) as ?totalGoals) where {
  ?player a dbo:SoccerPlayer ; 
          dbp:position <http://dbpedia.org/resource/Forward_(association_football)> ;
          dbo:careerStation ?station .
  ?station dbo:numberOfGoals ?goals ;
           dbo:team dbr:ACF_Fiorentina .
}
group by ?player

SPARQL results

相关

还有一些其他问题涉及查询可能有用的职业站点: