以下 SPARQL 查询没有得到我想要的结果,因为它们使用的是英语以外的其他语言,不管filter lang 'en'
(请参阅查询中的过滤器)。
查询结果:
"Никола́й Ива́нович Буха́рин"@en "Никола́й Буха́рин"@en "Nikolai Bukharin"@en
"Gamal Abdel Nasser Hussein"@en "جمال عبد الناصر"@en "Gamal Abdel Nasser"@en
我查看了DBpedia页面,看到有英文版的名字,但我不明白为什么过滤器不起作用!
有人可以帮我吗?
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/property/>
SELECT DISTINCT ?person ?birthname ?nameExact ?label
where {
?person rdf:type dbpedia-owl:Person .
?person rdfs:label ?label .
OPTIONAL { ?person dbpedia-owl:birthName ?birthname . }
OPTIONAL { ?person dbpprop:name ?nameExact . }
FILTER (lang(?birthname) = 'en')
FILTER (lang(?label) = 'en')
FILTER (lang(?nameExact) = 'en')
}
LIMIT 300