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

时间:2015-03-02 11:55:02

标签: 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/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。


  • 如何检索这些页面的ID
  • 更复杂的部分是以下链接German language Theodore_Roberts会将我引导到属性wikipageID不是 dbpedia-owl 的页面。它变得非常复杂。 你对如何解决它有什么想法吗?

太棒了,当我尝试这个查询时

SELECT ?uri ?id 
     WHERE {
         ?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
         FILTER (?uri = <http://dbpedia.org/resource/Lyon>) 
     }

我得到以下结果:

  

http://dbpedia.org/resource/Lyon 863863


但是当我将uri更改为<it.dbpedia.org/resource/Lyon>时,我什么都没得到。

1 个答案:

答案 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。也许你可以按照自己的方式工作。