sparql dbpedia.org 在佛罗伦萨的唯一进球

sparql dbpedia.org only goal in fiorentina

是否有某种方法可以仅获取足球运动员在佛罗伦萨使用 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

我认为你可以做到。如果你浏览了data for Silva, you'll see a number of career stations, e.g., 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

相关

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

  • (这也是关于获得目标。这是否恰好是 class 作业或其他什么?)
  • Obtaining start and end date from a DBPedia CareerStation
  • How to build correct SPARQL Query