我想检索不同语言的相同查询名称的wikipageID。例如:
select * where { <http://dbpedia.org/resource/Mike_Quigley_(footballer)> dbpedia-owl:wikiPageID ?wikiID }
====>Mike_Quigley_(footballer) 17237449 en
select * where { <http://dbpedia.org/resource/Theodore_Roberts> dbpedia-owl:wikiPageID ?wikiID }
====>Theodore_Roberts 6831454 en
select * where { <http://de.dbpedia.org/resource/Theodore_Roberts> dbpedia-owl:wikiPageID ?wikiID }
====>Theodore_Roberts de
select * where { <http://fr.dbpedia.org/resource/Theodore_Roberts> dbpedia-owl:wikiPageID ?wikiID }
====>Theodore_Roberts fr
select * where { <http://it.dbpedia.org/resource/Theodore_Roberts> dbpedia-owl:wikiPageID ?wikiID }
====>Theodore_Roberts it
select * where { <http://ja.dbpedia.org/resource/セオドア・ロバーツ> dbpedia-owl:wikiPageID ?wikiID }
====>セオドア・ロバーツ ja
在第一个使用英语的Mike_Quigley_(footballer)
查询中,我能够检索到它的ID = 17237449
,但是当语言发生变化时,我无法检索wikipageID。
太棒了,当我尝试这个查询时
SELECT ?uri ?id
WHERE {
?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
我得到以下结果:
但是当我将uri更改为<it.dbpedia.org/resource/Lyon>
时,我什么都没得到。
答案 0 :(得分:1)
因此,如果我理解正确,您希望获得URI的意大利语版本。但问题是你正在寻找错误的URI。英语DBpedia中的意大利版Lyon URI为http://it.dbpedia.org/resource/Lione
,我假设您正在使用它。我发现了这个:
SELECT *
WHERE {
?uri owl:sameAs ?b.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
我无法从英语DBPedia获得意大利语页面ID。 当我尝试Italian DBpedia时,它起作用了:
SELECT ?uri ?id
WHERE {
?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
FILTER (?uri = <http://it.dbpedia.org/resource/Lyon>)
}
但是,如果你查看意大利语页面http://it.dbpedia.org/resource/Lyon
,就可以看到它有一个属性dbpedia-owl:wikiPageRedirects
,它等于猫头鹰:sameAs给你的http://it.dbpedia.org/resource/Lione
。也许你可以按照自己的方式工作。