如何用SPARQL查询Wikidata获取法维基男女人物的MediaWiki ID
获取法语维基百科人物MediaWiki ID的Wikidata SPARQL查询方案
核心逻辑
通过Wikidata关联人物条目、其法语维基百科页面及性别属性,提取所需的页面标题、MediaWiki ID和性别标识。
SPARQL查询代码
SELECT ?frTitle ?pageID ?genderLabel WHERE { # 筛选Wikidata中的人物条目 ?item wdt:P31 wd:Q5 . # 限定性别为男性或女性 ?item wdt:P21 ?gender . VALUES ?gender { wd:Q6581097 wd:Q6581072 } # 关联对应的法语维基百科页面,提取标题和MediaWiki ID ?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> ; schema:name ?frTitle ; wikibase:wikiPageID ?pageID . # 获取多语言标签,性别标签取英文(对应male/female) SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en" } } # 可选:限制返回结果数量,避免数据量过大 LIMIT 100
代码说明
?item wdt:P31 wd:Q5:确保条目属于“人物”类别(Wikidata Q5)VALUES ?gender { wd:Q6581097 wd:Q6581072 }:限定性别为男性(Q6581097)或女性(Q6581072)?article相关语句:绑定法语维基的页面资源,提取页面标题(?frTitle)和MediaWiki ID(?pageID)SERVICE wikibase:label:自动获取条目标签,性别标签会返回英文的male/female,符合需求格式
输出格式调整
在Wikidata Query Service中执行查询后,可选择JSON格式导出结果。导出的JSON数据可通过简单脚本转换为你需要的二维数组格式,示例转换逻辑(伪代码):
const result = /* 导出的JSON数据 */; const output = result.results.bindings.map(item => [ item.frTitle.value, parseInt(item.pageID.value), item.genderLabel.value ]);
内容的提问来源于stack exchange,提问作者Léo Joubert
相关产品推荐
相关产品推荐

