我想从维基数据id中获取维基百科的页面id,如何使用python从维基数据查询服务或其他方法中获取?因为我在维基数据中看不到任何类似维基百科id的属性。
发布于 2017-05-03 18:59:47
我不确定DBpedia是否总是同时包含wikiPageID和维基数据ID,但你可以在DBpedia上尝试以下查询:
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT ?wikipedia_id WHERE {
?dbpedia_id owl:sameAs ?wikidata_id .
?dbpedia_id dbo:wikiPageID ?wikipedia_id .
VALUES (?wikidata_id) {(wd:Q123)}
}
或者,您可以在Wikidata上尝试以下联邦查询:
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?wikipedia_id where {
VALUES (?wikidata_id) {(wd:Q123)}
SERVICE <http://dbpedia.org/sparql> {
?dbpedia_id owl:sameAs ?wikidata_id .
?dbpedia_id dbo:wikiPageID ?wikipedia_id
}
}
更新
您可以在Wikidata上使用MWAPI调用Wikipedia API:
SELECT ?pageid WHERE {
VALUES (?item) {(wd:Q123)}
[ schema:about ?item ; schema:name ?name ;
schema:isPartOf <https://en.wikipedia.org/> ]
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "en.wikipedia.org" .
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam mwapi:generator "allpages" .
bd:serviceParam mwapi:gapfrom ?name .
bd:serviceParam mwapi:gapto ?name .
?pageid wikibase:apiOutput "@pageid" .
}
}
不幸的是,您似乎have to use了一个生成器;allpages
似乎是最合适的。
发布于 2017-05-03 06:11:18
首先,您需要从Wikidata id获取Wikipedia页面title
,这可以通过对Wikidata API wbgetentities
模块的请求来完成,如下所示:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q123&format=json&props=sitelinks
然后,一旦您从所需的Wikipedia版本中找到了Wikipedia标题,您就可以从该Wikipedia API获得相关的页面id:https://en.wikipedia.org/w/api.php?action=query&titles=September&format=json
因此,从这些示例URL中,您可以获得以下内容:
维基数据id = Q123
=>英文维基百科(enwiki
)标题= September
=>页面= 15580374
发布于 2017-08-09 14:59:30
在CURL调用中使用下面的URL。您必须在下面的链接中更改WikiDataID Q243。
例如,如果你想要wikiPageID of Taj_Mahal,然后在下面的链接中用Q9141替换Q243,然后做CURL调用。
http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=PREFIX+wd%3A+%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2F%3E+%0D%0ASELECT+%3FwikiPageID+WHERE+%7B%0D%0A%3Fdbpedia_id+owl%3AsameAs+%3Fwikidata_id++.%0D%0A%3Fdbpedia_id+dbo%3AwikiPageID+%3FwikiPageID+.%0D%0AVALUES+%28%3Fwikidata_id%29+%7B%28wd%3AQ243%29%7D+%0D%0A%7D&format=application%2Fsparql-results%2Bjson&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on&run=+Run+Query
要通过wikiDataId获取WikiPageID,您必须修改上面的链接,或者替换上面链接中您选择的wikiDataID。
备注:
1)在CURL调用中使用this URL获取带标签的WikiPageID
2)查找Q243并替换为您的wikiDataID
https://stackoverflow.com/questions/43746798
复制相似问题