2023年5月16日 星期二

Wikidata dump

我的研究領域是自然語言問答系統,在我專研的問答系統是需要一個知識庫,這跟另一種問答系統 -- Stanford 的 SQUAD -- 不同。我需要的知識庫都是從 Wikipedia 轉出來的,並且以 RDF 的格式儲存,以便於使用者利用 SPARQL 語法進行查詢。

早期的知識庫有幾種,但是後來由 DBpedia 勝出。再經過幾年,這個知識庫的競賽中,似乎慢慢的有一個名為 Wikidata 的知識庫浮出檯面,因此我被迫需要去了解一下 Wikidata 的查詢平台要如何建立,才不會受限於官方的種種限制。

我找了一些文件和工具,目前發現由 QA Company 所開發的 qEndpoint 還不錯用。qEdnpoint 支援的檔案格式是 HDT,所以如果我要特定版本的 Wikidata,除非在網路上正好有網站可以下載,否則就必須去 Wikidata 官方網站下載 Wikidata dumps。以 2023 年 5 月份來說,Wikidata 官方網站的 dumps 有 JSON、NT、和 TTL 三種格式;JSON 格式我還沒找到簡單的方式將它轉為 HDT,而 NT 和 TTL 則可以無腦直接藉由 qEdnpoint 轉換。

我曾經試過 NT 轉 HDT,所以我第一時間就下載 NT 版的 dump。我下載的 latest 是 2023-05-03 建立的,結果解壓縮之後,檔案超過 1.8 TB,而我只有一顆 2 TB 的 SSD,只好轉而求 TTL。TTL 版的 dump,解壓縮之後有 768 GB,所以我就繼續檔案的轉換。

這一篇文章的目的是紀錄檔案大小和轉換所需要的時間。將 TTL 轉換出 HDT 的主檔大約花了 58 小時,而另外轉換出 HDT 的索引檔則又大約需要 5 個小時。轉換後的 HDT 主檔的大小大約是 189 GB,而索引檔則是 116 GB。

我用來轉檔的電腦配備其實不是很高檔,CPU 是 i7-10700,而 RAM 是 16GB,SSD 是 2 TB。可以預期未來 Wikidata dumps 的檔案會越來越大,有興趣的就比照大約的設備就可以進行探索。對了,我是解壓縮了以後才進行轉檔,根據 qEdnpoint 發表的論文,其實也可以直接把 gz 的壓縮檔丟給它轉換即可,不過我還沒試過。

感覺上,如果有一天 DBpedia 又開始發布 dumps,那麼非常可能,我也可以利用 qEndpoint 來轉換!

沒有留言:

張貼留言