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