我需要使用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.
}
如何让所有为这支足球队效力的球员?
答案 0 :(得分:4)
我会使用这样的查询:
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 }
}
使用可选可确保未列出出生地或出生日期的玩家仍可包含在结果中。使用一个dbpedia-owl:Person 有助于删除一些“脏”数据(即具有 dbpedia-owl:team 属性,但不是玩家的东西)。同样,添加 dbpedia-owl:wikiPageID [] 可确保结果是以文章形式存在的内容。如果你不包含它,那么你会得到像Manchester_United_F.C.__Ryan_Giggs__1这样的结果,它似乎是一种职业站实体。 (请注意,Ryan Giggs有例如 dbpedia-owl:careerStation dbpedia:Ryan_Giggs__1 。)