Skip to main content

wikidata-search

Search for items and properties on Wikidata and retrieve entity details, claims, and external identifiers. Supports both keyword search (Wikidata Action API) and semantic/hybrid search (Wikidata Vector Database), plus direct entity retrieval (Special:EntityData) and structured querying (WDQS SPARQL).

跳到安装

来源信息

仓库
kltng/humanities-skills
最近来源活动
2026年3月6日 20:58
检测到的 SKILL.md 语言
英语
星标
7
分支
4

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
4 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
wikidata-search
description
Search for items and properties on Wikidata and retrieve entity details, claims, and external identifiers. Supports both keyword search (Wikidata Action API) and semantic/hybrid search (Wikidata Vector Database), plus direct entity retrieval (Special:EntityData) and structured querying (WDQS SPARQL).
version
1.1.0
# Wikidata Search Skill Search and retrieve data from Wikidata, the free knowledge base. ## Critical: Things Claude Won't Know Without This Skill ### Wikidata Vector Database (semantic search) This is the highest-value feature of this skill. The **Wikidata Vector Database** at `wd-vectordb.wmcloud.org` provides semantic/hybrid search over all Wikidata items — something you can't do with the standard Action API or SPARQL. **A descriptive `User-Agent` header is required or you get 403.** ```bash curl -H 'User-Agent: WikidataSearchSkill/1.0 (contact: you@example.com)' \ 'https://wd-vectordb.wmcloud.org/item/query/?query=historical+Chinese+cartography&lang=all&K=20' ``` Response includes `QID`, `similarity_score`, `rrf_score`, and `source` (vector vs keyword). Property search: replace `/item/query/` with `/property/query/`. Optional params: `lang`, `K` (result count), `instanceof` (comma-separated QIDs), `rerank`. ### WDQS SPARQL also requires User-Agent ```bash curl -G 'https://query.wikidata.org/sparql' \ --data-urlencode 'query=SELECT ?item ?label WHERE { ?item wdt:P31 wd:Q12857432 . ?item rdfs:label ?label . FILTER(LANG(?label)="en") }' \ -H 'Accept: application/sparql-results+json' \ -H 'User-Agent: WikidataSearchSkill/1.0 (contact: you@example.com)' ``` ### External identifiers live in claims ```python # claims[property_id][0]["mainsnak"]["datavalue"]["value"] → identifier string # Common: P214 (VIAF), P244 (LoC), P227 (GND), P213 (ISNI), P268 (BnF) ``` ## Choosing an Access Method | Need | Method | |------|--------| | Keyword search by label/alias | Action API `wbsearchentities` | | Semantic / fuzzy concept discovery | **Vector Database** (hybrid vector + keyword) | | Fetch a known entity's JSON | `Special:EntityData/{ID}.json` | | Complex graph queries / reporting | WDQS SPARQL | ## Python Script Use `scripts/wikidata_api.py` for programmatic access (zero dependencies): ```python from scripts.wikidata_api import WikidataAPI wd = WikidataAPI() # Keyword search results = wd.search("Zhu Xi", language="en", limit=5) # Semantic search (Vector DB) — the key differentiator candidates = wd.vector_search_items("historical Chinese cartography", lang="all", k=20) # Entity retrieval entity = wd.get_entity("Q9397", props=["labels", "descriptions", "claims"]) # External identifiers ids = wd.get_identifiers("Q9397", include_labels=True) # → {'VIAF ID (P214)': '46768804', 'Library of Congress ID (P244)': 'n81008179', ...} # SPARQL results = wd.sparql_json("SELECT ?item ?label WHERE { ?item wdt:P31 wd:Q12857432 . ?item rdfs:label ?label . FILTER(LANG(?label)='en') }") # Direct entity JSON (fast for current state) data = wd.get_entitydata("Q42", flavor="simple") ``` ## API Endpoints Quick Reference | Endpoint | URL | |----------|-----| | Action API | `https://www.wikidata.org/w/api.php` | | Entity JSON | `https://www.wikidata.org/wiki/Special:EntityData/{ID}.json` | | SPARQL | `https://query.wikidata.org/sparql` | | Vector DB | `https://wd-vectordb.wmcloud.org` | ## API Etiquette - **Rate limit**: 0.5–1s between requests - **User-Agent**: Required for Vector DB and WDQS (include contact info) - **Respect 429**: Honor `Retry-After` headers - **Action API**: Use `maxlag` parameter; batch with pipe-separated IDs (max 50) - **SPARQL**: Request only needed fields; use `LIMIT` ## Related Skills - **cbdb-api**: Cross-reference Wikidata entities with CBDB biographical data for Chinese historical figures - **chgis-tgaz**: Look up historical places found via Wikidata in the CHGIS Temporal Gazetteer for detailed administrative history ## Resources - `references/api_reference.md` — Complete API specs for all four access methods - `scripts/wikidata_api.py` — Full-featured Python client with rate limiting, retries, and identifier extraction
在 GitHub 查看