這是你覺得好的資料嗎? 台灣(開放)資料平台九大常見問題
文章推薦指數: 80 %
五星級開放資料 · 一星級的資料:開放授權 · 二星級的資料:結構化、機器可讀 · 二星級的資料隱含標準:一致性 · 三星級的資料:不要被微軟產品鎖住 · 四星級的 ...
五星級開放資料
(這是初稿,持續更動中)
www.google.com前面的www代表WorldWideWeb。
網路是一項發明,而且發明網路的人TimBerners-Lee還健在。
他的另外一項發明是5星級開放資料,我們下面就會用這一個標準檢視資料:
一星級的資料:開放授權
makeyourstuffavailableontheWeb(whateverformat)underanopenlicense
(翻譯)資料以開放授權的方式,任意格式釋出
開放授權就像是民主一樣,每一個國家都可以宣稱自己是民主國家。
圖為香港大學校園,對於香港以及北韓民主比較的海報。
在台灣,包含故宮的每一個平台都宣稱自己是開放資料。
但其使用條款到底是不是普世相容?
解決方法
統一開放資料授權。
農委會原本網站上有多個授權,最近把CC授權與「政府資料開放平臺資料使用規範」同步。
除了同步,也需要檢視現有授權與國際間是否兼容。
假如是的話,那是跟哪一種授權相容?
折衷方法,假如大家一定要有自己的授權,至少國發會可以請相關法律專家,就該授權到底有什麼使用權限,包含是否再製,是否可商業用途。
並且建立一個底線,說假如沒有符合這些條件,就不能稱為開放資料。
比方CC授權會有NC(Non-commercial)、BY(Attribution)等。
以下為示意表格:
data.gov.tw:可商業使用、可重新發布、需標記來源
AA平台:不可商業使用、可重置、需標記來源
BB平台:可商業使用、可重置、需標記姓名、只供學術用途(與國際OpenData不相容)
二星級的資料:結構化、機器可讀
makeitavailableasstructureddata(e.g.,Excelinsteadofimagescanofatable)
(翻譯)以機器可讀的結構化資料釋出(Excel而非圖檔)
機器可讀格式
把資料包在網頁、word的doc、docx檔、pdf檔、或著以圖檔釋出,像是以下資料:
經濟部工業局禽流感物資
假如使用者要重複使用的話,就需要人一個字一個字key-in,無法被機器閱讀。
這也包含諸如地理資訊以圖磚方式釋出。
會出現這樣的問題,絕大部份是因為政府想要發布這些資訊,只有兼顧「給人看」,但在開放資料中,除了人看,還要「機器看」。
解決方法
立刻可做,公布原始檔:從今開始,要求政府各單位除了「輸出品」,政府應該也要包含「原始檔」,在發佈輸出品的時候,同時讓輸出品可以連到原始檔。
以文字來講doc是原始檔,而pdf是輸出品。
台北市為例。
pdf有分兩種,一種是純圖片,另一個可以複製貼上文字,所以後者比前者又稍微好點(viaclkaoslideshare)
諸如圖片、影片、照片等製作物。
這些東西通常都是外包廠商進行製作,只有最終成果獲得保存。
這一個問題是,這些素材通常解析度很低,而且不能被修改。
地理資訊:「圖磚」是輸出品
數位化:許多過去資料具有相當價值,但原始檔已經遺失。
比方中選會歷史的選舉資料可能就屬於此類。
一個可以參考的方法,是g0v.tw零時政府的「政治獻金數位化」專案。
以上是傳統對於第二顆星的看法,就是讓檔案可以讓機器可以打開。
但假如要深究「結構化、機器可讀」
二星級的資料隱含標準:一致性
在我們實際操作中,要真正做到「機器可讀」,挑戰在於一致性。
是為這個關鍵,讓目前台灣開放資料的機器可讀性只有25%。
統一資料結構(schema)、格式、編碼、投影
同一筆資料會有不同格式,這些都是標準的格式,包含csv、tsv(以及其他的dsv)、xml、json。
這些資料分別長得像是這樣子:
編碼:utf-8、utf-16、Big5
地圖投影:經緯度、TWD67、TWD97
同一筆資料,有不同的儲存結構,excel版本:
同上,json版本:
儘管這每一個檔案都是機器可讀,但不一樣的格式,會有不一樣的意義。
現行問題,是許多檔案沒有標記說背後使用什麼檔案編碼,讓機器不知道該如何解讀:
圖片來源
資料格式錯誤、或著是「太有意見」的資料格式
比較致命的,是有一些單位不了解這些格式而產生誤用:
食藥署,上面標榜著.csv,但實際上是.tsv。
兩者的原名是tabseparatedvalue以及commaseparatedvalue。
兩者都對機器非常友善,所以用.tsv絕對可以,但是掛.csv,機器就會認定這一個檔案是使用逗點進行區隔。
進而造成問題。
.tsv:資料資料資料
.csv:資料,資料,資料
接續,食藥署網站上對於.csv格式的回覆竟是:
CSV格式,資料分隔符號為tab(因資料內容易有逗點,故不直接以逗點分隔)
先不論前述名字上的根本錯誤。
這裡面更核心的問題,凸顯的是網站不了解技術規範,所以才會有這樣的論述。
資料裡面本來就有逗點。
所以.csv不是只是加上逗點而已,還要把裡面有逗點的欄位escape。
想像你有這樣的資料:
John
thisiscool
27
Marry
Hi,mynameis.
28
要化為.csv的話,按照食藥署現在的做法,第一筆應該是:John,thisiscool,27,第二筆是Marry,Hi,mynameis,28。
這樣邊會有問題的地方,ˋ是因為第二筆裡面,有四個逗點。
所以機器會以為是四個欄位。
但問題是,像這樣這麼常出現的問題,早就有規範了,在這一種情況下,正確的方法應該是Marry,"Hi,mynameis",28,更多可以參考RFC4180。
食藥署網站會有這樣的回覆,表示他們缺乏對於這些資料標準的理想,而且認為只要使用一個「比較少出現的分隔符號,像是tab」就可以解決問題了。
問題是沒有解決escape的問題,當有一天資料裡面有tab,格式也會因為同樣的理由爆掉。
同樣JSON格式也常常有錯誤。
像是文化局裡的資料(資料已移除),字串中間出現換行沒有被escape,導致錯誤。
JS裡面有內建的JSON.stringify應該可以解決。
另外一個問題,是當我們要跨資料集的應用,我們就會需要很多的overhead來處理這些資料:
用最間單方式釋放資料,因為我們不知道使用者會怎麼用資料
假如我們不知道使用者會怎麼樣使用資料,用最簡單的格式釋放資料,不要讓我們創意加值變成限制。
以金管會的例子,是想像一個全台灣ATM位置的資料集。
資料擁有單位覺得:「使用者一定是想要查詢最近的ATM」,所以我們就來做一個你給我經緯度,我給你最近ATM位置的API。
但這一個單位在提供這樣的API時候,沒有提供原始資料集。
原本善意的「想像」,反而變成某一種限制。
比方說,下列幾種使用情境就沒有辦法使用:
計算縣市ATM的密度
分析不同銀行ATM不同區域的佔比
計算ATM彼此之間的平均距離
好的地方,當然是不同單位都有在動腦筋,想像這一個資料可以怎麼樣做加值應用。
但比起這一件事情更重要的,是我們必須承認我們並不知道最理想的使用情況是什麼,假如我們的想像造成使用者使用上的不便,那就令人相當困擾。
解決方法
把格式說清楚(立刻可做):格式、編碼、以及投影法應該標記清楚。
以台北市為例,包含
編碼、投影法、檔案格式都不清楚。
用最簡單的方法提供資料:可以直接釋放原始檔,就不要以API的方式提供。
用機器去閱讀所有資料,找出錯誤(短期作法):目前個平台假如真的要持續,應該針對各資料通過「測試」,所以比方說JSONLint來測試這些資料是否符合格式,以及平台是否有能力提供正確格式的能力。
SheetHub.com這一次以機器解析所有7,000筆資料的作法,就清楚找出哪些資料編碼格式錯誤。
統一轉換(短期作法):各單位或許個別沒有能力進行格式、編碼轉換,但SheetHub.com目前已有「自動轉換」的功能。
也就是可以將單一檔案格式(比如excel),自動轉換為機器可獨的格式,包含json、csv等,把shape檔轉換為geojson,並把地理資訊以地圖形式呈現。
資料訓練(短期作法):讓各個維護資料的單位理解頁面標準的資料維護格式。
建立標準格式建議(長期):國發會應該建立一個建議格式,讓不同部門在儲存資料、建立系統的時候可以遵守。
就算此系統現階段無法立刻解決問題,但這是可以根本性改善此問題的長久之計。
根本作法,目前各單位自建獨立資料平台的作法,不容易維護。
假如統一平臺,這一種系統性錯誤將會減少許多。
關於這方面,clkao在這一個投影片裡面有提供更多的例子,包含「將報表獨立抽出」、「一列一項目:不要額外小計、不要標頭、不要標頭拆欄」、「累計、小計等可以被計算,所以可以省略」
資料人為錯誤清理
以我們服務地方政府的某局為例,我們發現同一個檔案,由不同人維護,會有截然不同的資料記錄習慣,所以比方會有:
「社團法人台北市野鳥學會」以及「台北市野鳥學會」
「台北市野鳥學會」以及「臺北市野鳥學會」
「"台北市野鳥學會"」以及「台北市野鳥學會」
「台北市野鳥學會(23125642)」以及「台北市野鳥學會」(前者有統編)
而像是同一個年份欄位,會有:「民國82年」、「82」、「1993」、「八十二」。
這源自於每一個人的習慣不同,又沒有統一標準,所以同一個檔案有截然不同的呈現方式
統一編號打錯,經濟部投審會10萬筆資料中,出現幾十筆錯誤。
SheetHub.com是利用ReferenceData的技術發現的:因為我們已經有所有統一編號的清單,所以我們可以利用既有的統一編號清單,比對新資料的統一編號列表,繼而在大量數據中找到統一編號對不起來的例子。
解決方式
一致性清理(短期):這裏有兩個想法:
資料錯誤是「系統性」,而清理的工作是可以「累積」的,所以因為兩筆資料的錯誤模式可能相似,所以清完第一筆,清理下一筆的時候就簡單許多。
以SheetHub.com為例,我們有一個工具可以把清理資料的程式捕捉下來,下一次遇到類似的案例,機器就會自動幫忙清理。
以資料清理資料,所以比方我們可以把新資料對比舊資料,進而發現不一致的地方。
所以用運這一個方法,我們就順利在7,000筆資料清出編碼錯誤。
以及將前述經濟部投審會10萬筆資料找出數十筆打錯的統一編號。
三星級的資料:不要被微軟產品鎖住
usenon-proprietaryformats(e.g.,CSVinsteadofExcel)
(翻譯)使用非專利性標準
諸如doc、docx、xls、xlsx等格式為微軟所擁有。
所以使用諸如excel等工具時,資料就被鎖住了,不利於重複利用。
解決方式
建立自動轉換程序,將專利性標準轉為非專利性(短期):這是相對容易解決的科技問題,因為資料已經是機器可讀了,所以可以使用機器進行轉換。
以SheetHub為例,可以自動將excel轉為csv、或著將shape檔轉換為geojson
要求政府單位使用往後建置新系統的時候使用非專利性標準(長期)
四星級的資料:每行資料的獨立連結
useURIstodenotethings,sothatpeoplecanpointatyourstuff
(翻譯)使用URI來標記東西(不只是每筆資料,而是每一行資料)
台灣所有的資料平台都有一個連結可以下載資料。
但四星級開放資料的概念,是資料的每一行都有超連結。
所以比方假如我們要跟別人說「天心中醫醫院」的地址,以往我們會貼這一個資料的連結。
對方會需要下載這一個資料,在2,000行資料中找到找到「天心中醫醫院」。
但假如有四星期資料的話,就可以直接告訴對方:「這一個就是天心中醫醫院的連結」。
這感覺是一個小步,但有這樣的小步驟,才可以做到五星級LinkedData。
五星級的資料:相互連結的資料
linkyourdatatootherdatatoprovidecontext
(翻譯)把(每行)資料相互連結,提供更多意義
當資料相連在一起的時候,當有人上傳「金門人口統計」的資料時,因為系統已經有「金門地圖資料」,所以兩者就可以連在一起。
所以比方系統就可以產生有意義的資訊,像是全台灣的用電資料:
或著全台灣的藍綠選舉地圖:
或著是用聲控的方法控制資料:
上述只是這樣功能的冰山一角,雖然SheetHub.com已經提供了此功能,但我們其實不完全了解LinkedData確切可以產生什麼產值。
人們在網際網路發明前夕,或許沒有人可以遇見網路在過去二十年會如此改變我們的生活。
現在說「政府沒有提供LinkedData的服務」是有一點奇怪,因為根本沒有人知道怎麼使用。
但這或許就是「基礎建設」的意思:先蓋道路才會有工業,先蓋飛機場才會有飛機。
感謝Ronny、pofeng、clkao提供的補充連結或反饋或修訂建議,本文不代表他們的立場。
延伸文章資訊
- 1這是你覺得好的資料嗎? 台灣(開放)資料平台九大常見問題
五星級開放資料 · 一星級的資料:開放授權 · 二星級的資料:結構化、機器可讀 · 二星級的資料隱含標準:一致性 · 三星級的資料:不要被微軟產品鎖住 · 四星級的 ...
- 2五星資料集連結
五星資料集連結. 網址: https://datacenter.taichung.gov.tw/swagger/OpenData/2e503e0d-8b4e-4993-af70-481a4e0a...
- 3開放資料拯救政府網站服務 - 《科學人知識庫》
根據《科技新報》報導,政務委員張善政在3月7日的Open Data論壇提到開放資料就資料格式有五顆星標準,其中之一包括機器可讀,宣示未來一定會用非專屬的CSV格式釋出資料 ...
- 4政府開放資料品質之研究:以Data.Taipei 平台為例
一般而言,資料開放的品質的評斷,多採. Tim Berners-Lee 所提的開放資料五星分等架構(5-star deployment scheme)。在此. 架構中,只要以開放授權釋出的資料皆...
- 5•開放資料的應用與發展
家,提出了開放資料五顆星架構,1 顆星的資料為可在網路上取得的數位資料,2 ... 為資料以結構化的方式發布,3 顆星的資料為開放格式的資料,4 顆星的資料為RDF 格式.