如果页面不是英文,我如何使用 sparql 和 dbpedia 检索 wikipageID
How can I retrieve the wikipageID if the page is not in english using sparql and 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
- 更复杂的部分是下面的 link German language Theodore_Roberts 将引导我到 属性 wikipageID 不是 dbpedia-[=42= 的页面] 这真的很复杂。
您知道如何解决吗?
太棒了,当我尝试这个查询时
SELECT ?uri ?id
WHERE {
?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
我得到以下结果:
但是当我将 uri 更改为 <it.dbpedia.org/resource/Lyon>
时,我什么也得不到。
因此,如果我理解正确的话,您想要获取 URI 的意大利语版本。但问题是您正在寻找错误的 URI。英语 DBpedia 中里昂 URI 的意大利语版本是 http://it.dbpedia.org/resource/Lione
,我假设您正在使用它。我通过以下方式发现了这一点:
SELECT *
WHERE {
?uri owl:sameAs ?b.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
而且我无法从英语 DBPedia 中获取意大利语 pageID。
当我在 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
等于 http://it.dbpedia.org/resource/Lione
owl:sameAs给你。也许你可以努力解决这个问题。
我想检索不同语言的相同查询名称的 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
- 更复杂的部分是下面的 link German language Theodore_Roberts 将引导我到 属性 wikipageID 不是 dbpedia-[=42= 的页面] 这真的很复杂。 您知道如何解决吗?
太棒了,当我尝试这个查询时
SELECT ?uri ?id
WHERE {
?uri <http://dbpedia.org/ontology/wikiPageID> ?id.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
我得到以下结果:
但是当我将 uri 更改为 <it.dbpedia.org/resource/Lyon>
时,我什么也得不到。
因此,如果我理解正确的话,您想要获取 URI 的意大利语版本。但问题是您正在寻找错误的 URI。英语 DBpedia 中里昂 URI 的意大利语版本是 http://it.dbpedia.org/resource/Lione
,我假设您正在使用它。我通过以下方式发现了这一点:
SELECT *
WHERE {
?uri owl:sameAs ?b.
FILTER (?uri = <http://dbpedia.org/resource/Lyon>)
}
而且我无法从英语 DBPedia 中获取意大利语 pageID。 当我在 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
等于 http://it.dbpedia.org/resource/Lione
owl:sameAs给你。也许你可以努力解决这个问题。