維基數據:數據存取
|
開發人員嘅維基數據:數據存取權 |
維基數據目前包含超過 1.1 億個項目同超過 130 萬個詞組,而呢啲數字將會持續增長。有好多方法可以存取所有呢啲資料 — 呢份文件列出咗呢啲資料,同埋幫助潛在用戶揀最適合佢哋需要嘅方法。
揀一個可以以最快、最有效嘅方式畀你所需嘅資料嘅存取方法係至關重要,而呢個方法就係幫你做到呢一點。
喺我哋開始之前
用緊維基數據嘅數據

維基數據提供咗好多關於太陽下所有嘢嘅一般數據。 所有呢啲數據都係授權CC0,「冇保留任何權利」,用喺公共領域。
對 API 同其他存取維基數據嘅方法嘅變更需要受穩定介面政策約束。呢頁嘅資料來源唔保證係穩定嘅介面。
維基媒體計劃
呢份文件係關於存取維基媒體項目外部嘅數據,如果你需要喺另一個維基媒體項目入面呈現維基數據嘅數據,而你可以喺嗰度使用解析器函數、Lua同/或者其他僅限內部嘅方法,唔該參閱返點樣喺維基媒體項目上面使用數據。
數據嘅最佳做法

我哋可以免費提供維基數據入面嘅數據,而且唔需要喺CC-0下歸因。作為回報,如果你喺你嘅項目入面提到維基數據係你啲數據嘅來源,我哋會非常感激。噉樣做,你就有助確保維基數據會長期存在,以提供最新同高質素嘅數據。我哋亦都會推廣使用維基數據嘅最佳項目。
歸因維基數據嘅一啲例子:「由維基數據提供支援」、「由維基數據提供支援」、「由維基數據嘅魔力提供支援」、「使用維基數據資料」、「用嚟自維基數據嘅資料」、「嚟自維基數據嘅資料」、「來源:維基數據」、「包括嚟自維基數據嘅資料」等等。你亦可以用我哋其中一個現成快勞。
你可以用上面顯示嘅維基數據撈稿,但係噉樣做你唔應該以任何方式暗示維基數據或者維基媒體基金會嘅認可。
請為你嘅用戶提供一個方法去報告資料入面嘅問題,同埋搵一個方法將呢啲問題反饋畀維基數據嘅編輯器社群,例如透過不匹配搜尋器。請喺項目即時通訊些牙你收集呢啲問題嘅位置。
數據嘅最佳做法
存取維基數據嘅數據嗰陣,請遵守以下最佳做法:
- 遵循用戶代理政策 – 發送一個好啲嘅用戶代理標題。
- 遵守機械人政策:寄
Accept-Encoding: gzip,deflate,同埋唔好一次過提出太多要求。 - 如果你收到太多429請求嘅回應,請停止發送進一步嘅要求一陣(睇吓[1]嘅回應標題)
- 當有嘅時候(例如用維基數據查詢服務),設定對你嘅數據有意義嘅最低超時。
- 當使用 MediaWiki Action API 嗰陣,請自由使用
maxlag參數,同埋查閱API:禮儀入面列出嘅其餘指引。
搵
呢樣係咩嚟?
維基數據提供咗一個彈性搜尋索引,用嚟透過佢嘅數據進行傳統搜尋:Special:Search
幾時會用佢?
當你需要搵文字字串嗰陣,或者當你知道你搵緊嘅實體名稱,但唔知實體本身嘅確切名稱嗰陣,就可以用搜尋。呢個功能亦都適合喺你可以根據數據入面一啲非常簡單嘅關係嚟指定你嘅搜尋嘅情況。
當你嘅資料入面嘅關係可以更好噉形容為複雜嗰陣,就唔好用搜尋。
詳情
你可以用呢啲維基數據專用嘅額外關鍵字,令你嘅搜尋更加強大:haswbstatement, inlabel, wbstatementquantity, hasdescription, haslabel。呢個搜尋功能係記錄咗喺CirrusSearch擴充頁面。佢仲有佢自己嘅API操作。
連結數據介面( URI )
呢樣係咩嚟?
連結咗嘅資料介面會透過URI提供對個別實體嘅存取權:http://www.wikidata.org/entity/Q???呢啲URI 叫做概念URI,請注意概念URI係用HTTP而唔係HTTPS。
幾時會用佢?
當你需要攞到你已經知道嘅個別、完整嘅實體嗰陣,就可以用連結咗嘅資料介面。
當你唔清楚自己需要邊啲實體嗰陣,唔好用佢– 首先試吓搜尋或者查詢佢亦都唔適合要求大量資料。
詳情

每個項目或者屬性都有一個持久嘅URI,由維基數據嘅概念命名空間同埋項目或者屬性ID(例如Q42,P31)同埋可以由嗰個項目或者屬性嘅數據存取嘅具體數據URL組成。
維基數據有關實體嘅資料嘅命名空間係https://wikidata.org/wiki/Special:EntityData。
將實體嘅ID附加喺呢個前綴(你可以用/entity/簡稱)就會建立實體嘅數據網址嘅抽象(格式中立)形式。當存取Special:EntityData嘅命名空間入面嘅資源嗰陣,特別頁面會應用內容協商嚟確定輸出格式。如果你喺瀏覽器入面打開資源,你會見到一個HTML頁面,入面包含有關實體嘅資料,因為網絡瀏覽器會偏好HTML。但係,連結咗嘅數據用戶端會以JSON或者RDF之類嘅格式接收實體數據 – 無論用戶端喺佢嘅 HTTP Accept: 標題入面指定咩。
- 例如,以道格拉斯亞當斯嘅呢個「概念URI」為例– 呢個係指現實世界嘅人,而唔係維基數據嘅具體描述:
http://www.wikidata.org/entity/Q42
- 作為一個有眼睛同瀏覽器嘅人,你好可能會想用 URI 呢個概念作為 URL嚟存取「關於」道格拉斯亞當斯嘅資料。噉樣做會觸發HTTP重新導向,並將用戶端轉寄去包含維基數據「關於」道格拉斯亞當斯嘅資料嘅資料網址:https://www.wikidata.org/wiki/Special:EntityData/Q42。
當你需要繞過內容協商嗰陣,例如為咗喺網絡瀏覽器入面睇非HTML內容,你可以透過將相應嘅擴充名附加到資料網址,嚟指定實體資料嘅格式;例子包括.json, .rdf, .ttl, .nt or .jsonld。例如,https://www.wikidata.org/wiki/Special:EntityData/Q42.json會畀你用JSON格式嘅Q42項目。
少啲詳細嘅RDF輸出
預設情況下,連結數據介面返返去嘅RDF數據本身就係完整嘅,所以佢包括咗佢所引用嘅其他實體嘅描述。如果你想排除呢啲資料,你可以將查詢參數?flavor=dump附加去你要求嘅網址。
淨係要喺網址附加&flavor=,你就可以控制返返嚟嘅資料類型。
?flavor=dump: 唔包括資料入面所提及嘅實體嘅描述。?flavor=simple: 淨係提供真實嘅陳述(冇限定詞或者參考文獻嘅最佳排名陳述),同埋網站條拎同版本資料。?flavor=full(default): 「full」嘅引數會返返去所有嘅資料(你唔需要指定呢個,因為呢個係預設。)
如果你想更深入噉了解每個選項嘅確切內容,你可以睇吓[2]。
修訂同快取
你可以用revision查詢參數要求特定嘅實體修訂:https://www.wikidata.org/wiki/Special:EntityData/Q42.json?revision=112。
以下網址格式分別由用戶介面同查詢服務更新程式使用,所以如果你用其中一種相同嘅網址格式,你好大機會會得到更快(緩存)嘅回應:
- https://www.wikidata.org/wiki/Special:EntityData/Q42.json?revision=1600533266 (JSON)
- https://www.wikidata.org/wiki/Special:EntityData/Q42.ttl?flavor=dump&revision=1600533266 (RDF,冇其他實體嘅描述)
維基數據查詢服務
呢樣係咩嚟?
維基數據查詢服務(WDQS)係維基數據自己嘅SPARQL端點,佢會返返去用SPARQL查詢語言進行嘅查詢結果:https://query.wikidata.org
幾時會用佢?
當你淨係知道你想要嘅數據嘅特性嗰陣,就用WDQS。
唔好用 WDQS 嚟執行文字或者模糊搜尋– FILTER(REGEX(...))係反模式(喺呢啲情況下用搜尋。)
當你想要嘅數據可能好大,佔所有維基數據嘅相當一部分嗰陣,WDQS亦都唔適合(喺呢啲情況下,可以考慮用轉傳。)
詳情
你可以透過我哋嘅SPARQL端點維基數據查詢服務查詢維基數據入面嘅資料,呢個服務可以用作互動式網絡介面,或者以編程方式提交GET或POST嘅請求。
當你嘅預期結果集嘅範圍好窄嗰陣,最好用查詢服務,即係當你有個查詢嗰陣,你幾肯定已經準確噉指定咗你嘅結果數據集。如果你對結果集嘅諗法冇咁明確,噉你會對查詢服務做嘅工作就會更加似搜尋;你經常需要先做呢類同搜尋相關嘅工作,嚟加強你嘅查詢。請參閱吓搜尋部分。
喺 query.wikidata.org 嘅查詢服務只包含維基數據嘅主要圖表。同學術文章相關嘅項目喺query-scholarly.wikidata.org嘅獨立查詢服務入面,詳情請睇維基數據:SPARQL 查詢服務/WDQS圖表分割。
連結咗嘅數據片段端點
呢樣係咩嚟?
連結咗嘅數據片段(LDF)端點係一種更實驗性嘅方法,可以透過指定三元組嘅模式嚟存取維基數據嘅數據:https://query.wikidata.org/bigdata/ldf。計算主要係喺客戶端進行。
幾時會用佢?
當你可以用三重模式去定義你想搵嘅數據,同埋當你嘅結果集可能相當大嗰陣,就用LDF端點。當你有大量嘅計算能力可以使用嗰陣,端點就好好用。
由於佢係實驗性嘅,如果你需要一個絕對穩定嘅端點或者一個嚴格完整嘅結果集,就唔好用LDF端點。 同埋正如之前所講,只有喺你有足夠嘅計算能力嘅情況下先至會用到佢,因為LDF端點會將計算卸載到客戶端。
詳情
如果你有部分資料關於你想搵嘅嘢,例如當你有三個組件中有兩個組件,你可以用連結資料片段介面搵到你想搵嘅嘢,價錢係https://query.wikidata.org/bigdata/ldf。詳情請睇使用手冊同社群頁面。
維基庫嘅REST API
係咩嚟㗎?
維基庫嘅REST API係一個基於OpenAPI嘅介面,畀用戶喺維基庫實例上面同項目同語句互動、擷取同編輯– 當然包括維基數據:維基數據 REST API
幾時用佢?
維基庫嘅REST API仲係開發緊,但係對於維基數據嚟講,佢旨在喺功能上取代Action API,因為佢係一個專為維基基/維基數據而設嘅專用介面。
動作API嘅用例亦都適用於維基庫嘅REST API。當你嘅工作涉及:
- 編輯緊維基數據
- 攞到有關實體本身嘅直接數據
當你嘅結果集可能好大嗰陣,唔好用維基庫嘅REST API(喺呢啲情況下,可以考慮用轉傳。)
當你需要進一步縮窄你嘅API請求嘅結果嗰陣,最好唔好用維基庫嘅REST API。喺呢啲情況下,最好將你嘅作品架成一個 搜尋(用嚟做Elasticsearch)或者一個 查詢(用嚟做WDQS)。
詳情
維基庫嘅REST API有OpenAPI 文件,用Swagger,你亦可以睇返[3]。
維基媒體動作API
呢樣係咩嚟?
維基數據API係維基媒體自己嘅動作API,擴展到包括一啲維基庫專用嘅動作:https://wikidata.org/w/api.php
幾時會用佢?
當你嘅工作涉及以下內容嗰陣,請使用 API :
- 編輯緊維基資料
- 攞緊有關實體本身嘅數據,例如佢哋嘅修訂記錄
- 以JSON格式攞到實體嘅所有啲資料,並且分成埋小組實體(每個請求最多50個實體)。
當你嘅結果集可能好大嗰陣,唔好用API(喺呢啲情況下,可以考慮用轉傳。)
呢個API亦都唔太適合你想喺JSON入面請求實體嘅當前狀態嘅情況(喺呢啲情況下,可以考慮使用連結資料介面,噉樣更有可能提供更快嘅回應。)
最後,當你需要進一步縮窄你嘅API請求嘅結果嗰陣,用API可能係一個唔好嘅主意,喺呢啲情況下,最好將你嘅工作架構成搜索 (用嚟做Elasticsearch)或者 查詢 (用嚟做 WDQS)。
詳情
維基數據用嘅媒體維基動作 API 係有細心記錄嘅API頁面上面。你可以用API 沙盒去探索同埋實驗佢。
有多個維基庫特定嘅端點,以下係一個示例要求:
機械人

你亦可以用機器人嚟存取 API 。如果想知道更多有關機器人嘅資訊,請睇吓Wikidata:Bots。
最近嘅變動串流
呢樣係咩嚟?
「最近嘅變更」串流提供所有維基媒體維基嘅連續變更,包括維基數據:https://stream.wikimedia.org
幾時會用佢?
當你嘅項目要求你即時對變更作出反應,或者當你需要來自維基數據嘅所有最新變更嗰陣,就可以用「最近嘅變更」串流,例如喺執行你自己嘅查詢服務嗰陣。
詳情
「最近嘅變更」流包含所有使用伺服器發送事件協議嘅維基更新。你需要喺用戶端過濾維基數據更新。
你可以喺stream.wikimedia.org搵到個網絡介面,然後喺活動串流頁面睇吓所有有關佢嘅資料。
Wikidata Vector Database
What it is?
The Wikidata Vector Database stores high-dimensional vector representations of Wikidata entities. It enables semantic search based on meaning and context rather than keyword matching, and supports natural-language queries against entities.
When to use it?
Use vector search for exploration purposes, for example, when you want to uncover entities without explicitly knowing their labels, or when you need to narrow a search down to a smaller, more relevant subgraph of Wikidata as a starting point for further research before moving on to more structured tools.
The vector database can also be used in AI/ML pipelines, such as enabling semantic search in RAG workflows or applying vector distances to tasks like classification and other types of analysis.
Details
You can find more information on the Wikidata Vector Database page. The Wikidata Vector Database is available at wd-vectordb.wmcloud.org, and the API documentation can be found at wd-vectordb.wmcloud.org/docs.
Wikidata MCP
What it is?
The Wikidata MCP (Model Context Protocol) provides a set of standardized tools that allow large language models (LLMs) to explore and query Wikidata programmatically. It is designed for agentic AI or AI workflows that need to search, inspect, and query Wikidata, without relying on hardcoded assumptions about its structure or content.
When to use it?
Use the Wikidata MCP when you want to integrate Wikidata directly into a GenAI model or into AI/ML workflows. The MCP provides a set of tools for exploring and accessing Wikidata, but it is limited to read-only use and does not include editing functionality.
Details
The Wikidata MCP is implemented as an HTTP service available at wd-mcp.wmcloud.org. To use it, add https://wd-mcp.wmcloud.org/mcp/ as a connector in your AI client.
轉傳
呢啲係咩嚟?
維基數據轉傳係指維基數據入面所有實體嘅完整匯出:https://dumps.wikimedia.org
幾時會用佢哋?
當你嘅結果集好可能好大嗰陣,就用轉傳。喺設定你自己嘅查詢服務嗰陣,你亦會發現轉傳好重要。
如果你需要當前資料,唔好用轉傳:轉傳需要好長時間先至可以匯出,甚至需要更長時間先可以同步到你自己嘅查詢服務。當你對可用帶寬、些乎空間同/或者計算能力有明顯限制嗰陣,轉傳亦都唔適合。
詳情
如果你需要遍歷嘅記錄好多,或者你嘅結果集好可能好大,噉就係時候考慮用資料庫轉傳:(連結去最新嘅完整轉傳)。
你會喺Meta嘅「資料轉傳」頁面搵到有關所有維基媒體轉傳嘅詳細文件,特別係喺資料庫單撈頁面上面會搵到有關維基數據轉傳嘅詳細文件。
架撐
- JsonDump讀取器係一個用嚟讀取轉傳嘅PHP庫。
- 有個Go庫存在用嚟處理維基百科同維基數據轉傳。
- 你可以用wdumper嚟攞部分自訂 RDF 轉傳。
本地查詢服務
採購維基數據轉傳同埋實現上面嘅工具去處理佢唔係一件小事,但係你可以再進一步。如果你有能力同資源去做,你可以托管你自己嘅維基數據查詢服務實例,同埋隨意查詢佢,以免同任何其他人爭執。
如果要設定你自己嘅查詢服務,請按照查詢服務團隊嘅呢啲指示進行,當中包括採購你自己嘅本地資料副本。你亦可以喺Adam Shorland嘅網誌文章入面搵到有關呢個主題嘅有用資料。