這是你覺得好的資料嗎? 台灣(開放)資料平台九大常見問題

文章推薦指數: 80 %
投票人數:10人

五星級開放資料 · 一星級的資料:開放授權 · 二星級的資料:結構化、機器可讀 · 二星級的資料隱含標準:一致性 · 三星級的資料:不要被微軟產品鎖住 · 四星級的 ... 五星級開放資料 (這是初稿,持續更動中) 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提供的補充連結或反饋或修訂建議,本文不代表他們的立場。



請為這篇文章評分?