如何通过特定属性ID(Property:P961)和值获取Wikidata ID?
筛选Wikidata特定属性值对应的条目ID
你当前的API请求只能获取所有使用Property:P961的条目,但无法直接过滤属性值。要精准筛选出属性值为310980-1的条目ID,有两种实用方法:
方法一:调整Wikidata API请求参数
直接修改API请求,使用搜索功能指定属性和对应值:
https://www.wikidata.org/w/api.php?action=query&format=xml&list=search&srsearch="P961:310980-1"&srnamespace=0&srlimit=5000
srsearch="P961:310980-1":明确搜索条件为属性P961的值等于310980-1srnamespace=0:仅搜索条目(排除属性、分类等其他类型内容)srlimit=5000:设置最大返回条数,可按需调整
返回的XML结果中,<p>标签的title字段就是对应的条目ID(如Qxxxxxxx)。
方法二:使用SPARQL查询(更精准)
Wikidata的SPARQL端点适合这类精准筛选,查询语句如下:
SELECT ?item WHERE { ?item wdt:P961 "310980-1" . }
将这段查询提交到Wikidata的SPARQL服务,就能直接得到所有符合条件的条目ID。如果要通过API调用SPARQL,可使用以下请求:
https://query.wikidata.org/sparql?query=SELECT%20%3Fitem%20WHERE%20%7B%20%3Fitem%20wdt%3AP961%20%22310980-1%22%20.%20%7D&format=xml
返回结果里,<binding name="item">下的<uri>字段末尾部分就是条目ID(比如http://www.wikidata.org/entity/Q38655111对应的ID是Q38655111)。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

