我需要使用 SPARQL 查询和 dbpedia.org 获取曾经为足球队效力过的所有球员
我可以让当前的团队成员使用http://dbpedia.org/sparql 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 }
}
Using optional确保未列出出生地或出生日期的玩家仍然可以包含在结果中。使用dbpedia-owl:人帮助删除一些“脏”数据(即具有dbpedia-owl:团队财产,但不是玩家)。同样,添加dbpedia-owl:wikiPageID []确保结果是以文章形式存在的。如果你不包括它,那么你会得到类似的结果Manchester_United_F.C.__Ryan_Giggs__1 http://dbpedia.org/page/Manchester_United_F.C.__Ryan_Giggs__1,这似乎是一种职业站实体。 (注意瑞恩·吉格斯 http://dbpedia.org/page/Ryan_Giggs有,例如,dbpedia-owl:careerStation dbpedia:Ryan_Giggs__1.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)