Python 如果使用sparql和dbpedia的页面不是英文,如何检索wikipageID

Python 如果使用sparql和dbpedia的页面不是英文,如何检索wikipageID,python,sparql,dbpedia,Python,Sparql,Dbpedia,我想为不同语言的相同的查询名称检索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/Theodor

我想为不同语言的相同的查询名称检索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
我得到以下结果:

863863



但是当我将uri更改为
时,我什么也得不到

因此,如果我理解正确,您希望获取您的URI的意大利语版本。但问题是您正在寻找错误的URI。英语DBpedia中的里昂URI的意大利语版本是
http://it.dbpedia.org/resource/Lione
我假设您正在使用它。我是通过以下方式发现的:

SELECT * 
 WHERE {
     ?uri owl:sameAs ?b.
     FILTER (?uri = <http://dbpedia.org/resource/Lyon>) 
 }
选择*
在哪里{
uri猫头鹰:sameAs?b。
过滤器(?uri=)
}
我无法从英文数据库中获取意大利语pageID。 当我试着使用时,它起了作用:

SELECT ?uri ?id 
 WHERE {
     ?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
     FILTER (?uri = <http://it.dbpedia.org/resource/Lyon>) 
 }
SELECT?uri?id
在哪里{
?uri?id。
过滤器(?uri=)
}

但是,如果您查看意大利语页面
http://it.dbpedia.org/resource/Lyon
,您可以看到它有一个属性
dbpedia owl:wikiPageRedirects
,该属性等于
http://it.dbpedia.org/resource/Lione
猫头鹰:sameAs给你的。也许你能解决这个问题

您确定如果将uri替换为,它将不起作用吗?我就这么做了,而且效果很好!当然会的。但问题是@Artemis,如果我想从意大利dbpedia得到里昂怎么办。如果我想要意大利语翻译或者意大利语维基百科怎么办。或任何其他language@Armetis对不起,我的问题不清楚。我只想提取页面ID,仅此而已。正如您在示例中看到的,当语言不是英语时,我无法提取页面ID。@HaniGoc因为您正在编写python脚本,并且两种语言的页面ID不同,所以我认为最好的方法是从英语中提取owl:sameAs属性,然后将其输入第二个本体(意大利语本体)使用dbpedia owl:wikiPageRedirects属性,然后获取id。希望这有帮助。
SELECT ?uri ?id 
 WHERE {
     ?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
     FILTER (?uri = <http://it.dbpedia.org/resource/Lyon>) 
 }