繁体   English   中英

如何建立正确的SPARQL查询

[英]How to build correct SPARQL Query

我需要使用SPARQL查询和dbpedia.org获取曾经为足球队效力的所有球员

我可以使用http://dbpedia.org/sparql和以下查询获取当前的团队成员:

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX p: <http://dbpedia.org/property/>  
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>           
SELECT * WHERE { 
      <http://dbpedia.org/resource/Manchester_United_F.C.> p:name ?player.
      ?player dbpedia-owl:birthPlace ?city;
              dbpedia-owl:birthDate ?dob.
}

如何获得曾经为这支足球队效力的所有球员?

我会使用这样的查询:

select distinct ?player ?birthPlace ?birthDate where {
  ?player dbpedia-owl:team <http://dbpedia.org/resource/Manchester_United_F.C.> ;
          a dbpedia-owl:Person ;
          dbpedia-owl:wikiPageID [] .
  optional { ?player dbpedia-owl:birthPlace ?birthPlace }
  optional { ?player dbpedia-owl:birthDate ?birthDate }
}

SPARQL结果

使用可选选项可确保没有列出出生地或出生日期的球员仍可包含在结果中。 使用dbpedia-owl:owl有助于删除一些“脏”数据(即具有dbpedia-owl:team属性但不是播放器的东西)。 同样,添加dbpedia-owl:wikiPageID []可确保结果是作为文章存在的事物。 如果不包括在内,那么您会得到类似Manchester_United_F.C .__ Ryan_Giggs__1的结果,这似乎是一种职业站实体。 (请注意, Ryan Giggs具有例如dbpedia-owl:careerStation dbpedia:Ryan_Giggs__1 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM