过滤Sparql中的birthcountry

时间:2017-06-21 18:08:43

标签: filter sparql

我正在进入SPARQL,我想设置一个简单的请求,但它似乎并不那么容易......

我想从一个出生在一个特殊国家的俱乐部获得所有足球运动员。

我有要求让所有球员来自俱乐部。 e.g:

SELECT ?player WHERE {
<http://dbpedia.org/resource/Hertha_BSC> dbpedia2:name ?player
}

如何让所有玩家都出生,例如德国有过滤器选项?

我已经尝试过这种方式,但似乎我没有得到什么......

prefix dbo:<http://dbpedia.org/ontology/>
SELECT ?player WHERE {
<http://dbpedia.org/resource/Hertha_BSC> dbpedia2:name ?player .
?birth dbo:birthPlace ?player.
filter (regex(?birth, "Germany")).
}

如果你能帮助我,我将不胜感激。

编辑: 在Median Hilal帮助之后,我试图用“过滤器”完成它,但它不起作用。

SELECT distinct ?player WHERE {
?player a <http://dbpedia.org/ontology/SoccerPlayer>. 
?player <http://dbpedia.org/property/currentclub> 
<http://dbpedia.org/resource/Hertha_BSC>. 
optional {?subject <http://dbpedia.org/ontology/birthPlace>/<http://dbpedia.org/ontology/country> ?<http://dbpedia.org/resource/Germany>. }
filter (!bound(?subject)).
} 
ORDER BY ASC(?player)

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

你的两个问题都没有意义。我认为以下内容很有用

SELECT distinct * WHERE {
    ?player a <http://dbpedia.org/ontology/SoccerPlayer>. 
    #get all soccer players
    ?player <http://dbpedia.org/property/currentclub> ?club. 
    #get the clubs, you can use <http://dbpedia.org/resource/Hertha_BSC> instead of ?club for Hertha Berlin
    ?player <http://dbpedia.org/ontology/birthPlace>/<http://dbpedia.org/ontology/country>? <http://dbpedia.org/resource/Germany>. 
    # get birth places which are either Germany or places located in Germany
}