如何通过SPARQL从Wikidata API获取维基百科页面ID
修改SPARQL查询获取维基百科页面ID
要获取维基百科页面的数字ID(如Big Ben的英文维基ID7290308),可以利用Wikidata提供的wikibase:wikiPageID属性,直接关联维基页面URI与对应ID。以下是修改后的查询代码:
SELECT DISTINCT ?item ?itemLabel ?image ?itemCoordinates ?description ?wikipediaLink ?wikipediaID WHERE { SERVICE wikibase:around { ?item wdt:P625 ?itemCoordinates . bd:serviceParam wikibase:center "Point(9.2478 48.9929)"^^geo:wktLiteral . bd:serviceParam wikibase:radius "5" . } # 筛选旅游景点 FILTER EXISTS { ?item wdt:P31/wdt:P279* wd:Q570116 } OPTIONAL { ?item wdt:P18 ?image } OPTIONAL { ?item schema:description ?description . FILTER(LANG(?description) = "de") } # 强制获取德语维基页面及对应ID ?wikipediaLink schema:about ?item ; schema:isPartOf <https://de.wikipedia.org/> ; wikibase:wikiPageID ?wikipediaID . SERVICE wikibase:label { bd:serviceParam wikibase:language "de". } } LIMIT 100 OFFSET 0
关键改动说明
- 移除了重复的
FILTER EXISTS检查,直接将维基页面的查询从OPTIONAL改为必填(匹配原逻辑中必须有德语维基页面的要求),同时新增wikibase:wikiPageID ?wikipediaID绑定,直接获取页面数字ID - 保留原查询核心逻辑:按指定地理位置筛选5公里内的旅游景点,获取标签、图片、坐标、德语描述等信息
内容的提问来源于stack exchange,提问作者Lean-Juc Dicarp
相关产品推荐
相关产品推荐

