# LOD Taiwan Meetup #1 - 從開放資料到連結資料的應用: 以農產品產銷履歷資料為例 [專案介紹文](http://geocyber.org/blog/?p=1047) [活動介紹與報名頁](https://opendata.kktix.cc/events/lodtw-20170916) [臉書社團宣傳](https://www.facebook.com/groups/odtwn/permalink/2041937202487354/) [提問](https://app.sli.do/event/u933eymd/ask) - www.sli.do #lodtw_meetup1 [活動共筆 (本文件)](https://hackmd.io/IwBgRsCmLAHAtAZgGzXgFkgM2PAnCAExbwDsYheArLFgMZZ4CGYQA===) ## 14:00 - 14:10 報到 ## 14:10 - 14:20 開場介紹與主題引言 (dongpo) 今天 meetup 很隨性,大家不用太拘謹 我們不是任何組織,就社群,隨時可以解散... XD 不爽就走人,中間有問題,網兇的不知道啦,我的話可以隨時打斷,後面有 80 分鐘問問題,這是為了怕有人講太久、有人問太多... 第一個 talk 就給 whisky 介紹 ## 14:20 - 14:50 你的網站,我的開放資料 (張維志) [投影片]() (待補) ### 玩聽眾 (搞不定投影機虎爛中) w: 今天要來聽 linked data 的舉手?完全不知道 linked data 的舉手?(一直問,每次人數都不一樣...) d: 不要玩聽眾 w: 是來聽農業的舉手?(竟然蠻多的) d: 我無法講農業,只能講農業資料 w: 看 od 社團來的舉手?(很少...) w: 覺得﹍﹍做得不錯請舉手?(沒有) w: 覺得﹍﹍做得不錯請舉手?(沒有) d: 覺得網兇很兇的舉手?(ET) w: 有聽過開放資料的舉手?(一半) w: 有用過開放資料的?(不少) w: 覺得政府開放資料作得很好?(d: tw no 1 ~ ) ### 開放資料之石器時代:寫爬蟲自己砍柴,每天擔心政府網站改版 剛才虎爛我要講爬蟲,講到網站跟開放資料大家可能就會以為是要用爬蟲爬出來。我講 data on the web 是因為 w3c... 到今年他們才把完整的 best practice 寫成一版,因為 w3c 認為未來我們會大量使用網站傳遞資訊,目前比較像是內容型的東西會放網站上,但未來應該是所有東西、資料都放網路。那怎麼透過網站把資料放上去?這跟東波要講的,四星到五星的開放資料有關。 我們知道用爬蟲的方法爬網站資料,網站上人看的部分轉成機器可以看的部分,大家有注意到氣象局網站的網址嗎?他的網址其實有 /v7 版,打 /v6 /v5 都錯誤,但為何保留 /v7 ?他每次都會自動轉頁,人資總處的網站也會,蠻多機關都會這樣自動轉址,跳到現有網站。之前很多人在寫氣象 app 像是 kny,他也算網兇了吧哈哈,他很擔心氣象局偷改網站,一改他的爬蟲就失效,隔天早上醒來手機打開就發現完全沒有東西,就會有使用者去留負評。他很在意網站內容的更新。 政府網站上都有 meta data 一堆 dc:identifier、dc:date 的標準,都是用 Dublin Core 標準寫 meta data 描述,所有政府網站上都規定要有,但描述往往不符合網站內容,廠商會做,但描述內容沒有多大幫助。 ### 資料與應用之爭:不懂的民意代表與無奈的氣象局 氣象局去年開始開放資料,下載排行榜裡面,第一是氣象預報,這些資料真的很多人在用(看下載次數)國發會前五名是氣象局資料。windy 網站大家知道嗎?氣象局網站大家知道嗎?某一年大家用 windy 看颱風風向,某立委想選台南市長就跟氣象局說為什麼不做這東西。windy 是開源計畫越來越成熟,裡面的資料都來自美國中央氣象局,氣象局那時候為什麼要做這東西?為什麼不是把資料整理成可以套用的資料?氣象局完全沒有改開源的程式碼,直接把資料改成適合的格式。為什麼氣象局不是把資料準備好讓外界來做?因為很多民意代表不懂裝懂,氣象局只好做出來應付大家。很少人知道氣象局做這東西,網站他會存下來因為立委會來看。這小插曲是要酸民意代表 XD ### 有行無市、乏人問津的政府資料們 我有做個統計,下載跟瀏覽,第一二三名都是氣象局資料,我們資料及真的很多,有五萬筆,但很多是沒人下載沒人用。很可惜在這邊,做資料不是沒成本的,現在要找人特別去整理、放上國發會,做資料的成本很大,難道不能有更好的方法來做資料嗎?不能有更有效率的方法?交通跟氣象我們知道怎麼用,但下面有一大塊不知道怎麼用。 ### 開放資料五顆星始作俑者:Tim Berners-Lee 剛才有些人不知道五星,我以為大家會 wow~~~ tim berners-lee~~~ 他是 26 年前第一個寫出網頁的人耶!結果都沒有 =w= 這個演講講下個世代的網路長啥樣。影片 18 分鐘有中文字幕,建議大家去看,講得很清楚。希望在台灣有機會把這東西建立起來,2009 年的演講了。 [影片網址](https://www.ted.com/talks/tim_berners_lee_on_the_next_web) 剛才講的五星就是 tim 為了推動開放資料,一星是開放內容的資料放上網路,越往上要求越高、成本也越大。??開始推動開放資料一直想做五星,有委託人專門做了原民會的鏈接資料,後來做完,哈哈哈(台下苦主表示),那時 2014,後來才發現我們很多資料連二星都沒有,離五星還有很長一段距離,幸好今年 2017 可以往下一階段了。 ### 五顆星的意義 #### 1 顆星 一到五星是 tim 推開放資料,他想推鏈接資料,但有很多步驟,一星放網路。 #### 2 顆星 二星機器可讀,聽過機器可讀對嗎?你們都搞錯了,機器可讀是可用程式自動化處理,現在我給你照片可否寫程式處理內容?照片是否機器可讀?這邊講的機器可讀有兩層意義,是機器可讀、還是機器可解讀?機器可解讀是要機器可以看懂每一塊資料講什麼東西。二星的後半段是結構化資料,每個欄位的定義都很清楚,可以寫程式去解讀修改或分析。跟很多人想像的二星有蠻大的差距,連﹍﹍都沒想到,只想到資料是機器讀的,不是人讀的,但資料不是只有機器看得懂,而是機器可以大量快速處理。我們目前有非常多非結構化資料,該怎麼處理? #### 3 顆星 三星是開放格式,不需要用特定軟體打開。 #### 4 顆星 四星 rdf 資料在網路上有相對應位置,你在網址上輸入對應的位置就可以在網站上透過 http 找到資料,表示媒體資料都必須在網路上可被發現,還有結構化的標準要建立,a 資料跟 b 資料,不能說一邊叫電話一邊叫通訊方法,會對不起來。 #### 5 顆星 四星把標準建立起來,五星則是鏈接在一起。鏈接很重要,更重要是往前把標準做完。練皆是 a 跟 b 連接在一起,語意情境很重要,他們描述同個東西、在特定領域描述一樣的東西,才能鏈接。同一個物件可寧有不同情境在裡面,這要往前拉在四星把規範作出來,在農作物相關就往這邊走,基本物鑑定亦要很清楚。 ### 結構化 v.s. 非結構化資料 #### 格式上結構化的資料 我們開放資料平台上抓下來的檔案分類方法,有很多種,圈起來的是結構化,就是有基本架構,剩下的都是非結構化。其他類的裡面有 pdf 檔。沒圈起來的基本上都是非結構化。 #### 看起來格式上有結構化的資料 這是國防部的一筆資料,今天不會有國防部的人,我每次點名誰他就說我講錯 XD 國防部用 csv 方式,然後呢?要知道一本書籍的重點,網路書店做書籍資料會有出版社、年份、作者、關鍵自、類別,這邊沒有,只有內容簡介,雖然是結構化,但有沒有符合應用需求?基本尚沒有。 國防部諮詢小組的會議記錄,我覺得超棒的簡報跟會議記錄有 xml 檔案,結果下載下來看,他是 office open xml (OOXML) 是微軟的文件格式,有人把 word 另存新檔變成 xml 這樣有三顆星開放格式嗎?你沒有二星的結構化啊!不要相信看起來好像是結構化的東西。 外交統計年報,很多政府機關都會做,用 json 格式,有沒有人不知道 json?是一個 key 和 value 的資料格式,都是一個一個欄位。key 是欄位名稱,val 是內容。article type 1 沒人知道 2 是啥意思。檔案名稱 filename 為什麼是連結?link? source?主題不就是標題?他們只是把原本連接一個一個擺出來,這樣的資料及到底要幹嘛?政府資訊公開法要求要公佈統計年報,只要用小程式剪貼就可以下載,不必用這個 json。清單不該只是這個樣子,應該想向大家都在做,擺在一起的時候應該什麼樣子,怎樣作才是有效、有用、兼顧跟其他機關的互動性。 #### 資料類型的成長趨勢 外交部網站長這樣。有很多非結構化的表格。結構化東西目前越來越少,而非結構化的越來越多,今天的影片、照片、文字記錄、逐字稿,越來越多非結構化的東西要處理,結構化的會越來越少,因為我們開始試著把所有產出的內容視為資料,不再只是結構化的 10%。 ### 有意義的結構化資料 v.s. garbage in garbage out 國發會網站上有食衣住行分類,我會用 datatype 分類,預算一類(主計總處跟國際上都有規範),我試著把非結構化跟結構化拆開,非結構化又會分,數字形式、表格形式,數字可能是統計、預算,其他可能是清單、通訊錄、表格,地理圖資又有依整套標準在後面,geojson,非結構化的像是立法院公報、施政計畫提要、... 國外旅遊警訊發佈統計表,告訴你每年發佈了幾次,告訴我們每年多麼辛苦做多少事情。我完全無法從統計數字看出什麼規律,六七月在法國特別危險?看不出來,這些是為了工作上的館管而記錄的,但我們需要的是在什麼地方什麼時候發生什麼事情這樣的一篇文章。這樣的文章傳統上我們視為資訊,但把他是為資料,他該長啥樣?(畫重點)把人、事、時、地、物抽出來,是作資料的一種方法。抽出來以後,可以作下一步的分析,依照國基排序、在地圖上標示、加上時間軸變化、做事決呈現,把內容結構化產生新的價值,可以再不同平台不同管道,再結合不同資料就往東波要講的鏈結資料前進。 鳳山區客家文化,一樣抽出人事時地物,這是活動,所以會有新的欄位出現,報名人數、收費等。新聞稿比較特別的是類別,政府網站新聞稿一般我們看不到類別,但光是多一個類別就可以知道依照你的需求,你是媽媽,衛生局發佈的新聞裡面你只關心口蹄疫,額,不是,是腸病毒,有分類你就可以找你需要的。高雄市有做,很完整拆資料,但有欄位都沒人在寫,五佔有的這邊才有。關鍵字沒人寫。臺北市政府的常見問答有 9500 筆,是過去 15 年的資料,裡面很多是掰故事啦,為什麼吸毒不好?很久以前有人叫小明... 總之常見問答裡面有關鍵字,九千多筆裡面有 5000+ 關鍵字,很多關鍵字都只用過一次,很多是十幾個三十個字,就是把裡面一段話 copy 出來,很多是 gb in gb out,有人還要做 open api... (酸 > 唐鳳澄清:此處可能有些誤會,我並沒有提出過「問答集要做成 open api」這個想法。原文如下:「以常見問答的角度,逐一提出說明,並以開放資料集方式發佈,以供各界接取。」([來源](https://talk.pdis.nat.gov.tw/t/topic/664/2)) ### 政府網站已經開放了!既然如此不妨直接把網站變成開放資料吧 -_-+ 政府機關網站從 2015 開始都把版權所有拿掉,變成政府網站開放資料宣告,意思是所有政府機關網站都叫開放資料了,除非特別註明。現在只有開記會報會特別註明。業務上搞的時候要注意有沒有侵犯著作權因為放上來就開放資料,但業務機關不知道。 全世界這麼多網站,網站上有很多這種非結構化的內容,像是這些,觀光局網站穆斯林餐廳清單,分類是什麼意思我也不知道。 網站都已經掛上開放資料宣告,很多非結構化資料可以有效結構化,為什麼不是直接把網站變成開放資料? 我們要做的事情有幾個,資料放網站上牽涉到著作權要釐清,網站內容要找到方法轉換成結構化資料,當初選 icook 是因為很多都結構化了,她有的專家食譜要付費。 東波建議後我在 chrome 裝這隻小狗,告訴我網站背後給機器看的資料長啥樣,像是這個是 microdata 的樣子下面用 schema.org 的欄位把食譜資料塞上去放網站後面,的確有給人看的跟給機器看的。 ### 人魚人魚水中游 schema.org schema.org 是全球最大搜尋引擎公司為了有效結構化網站內容聯合很多人弄出來,他是可被擴充的,有物件的概念,就像動物是一個物件,可以分成哺乳類,捕屬類就是動物往上加特性,魚類的話就是加上其他的特性,但都叫做動物。人跟於載往上的人無就是把兩種特性都拉上來。所以可以把描述方法層層切開降低重複工作。tim 應該是世界上最懶的人所以才發明網站。 透過 schema.org 可以描述很多非結構化內容,他有欄位,有規定的日期格式,要依照他的規範。不只是制訂欄位,連裡面寫法都告訴你。google 大力推動這東西,因為 google 需要看得懂網站內容,需要機器可解讀。這段數字就是電話,告訴我他就是電話,不要讓我猜,越清楚告訴他,他就越有機會把資訊轉譯出來放在不同地方。 他有一整套標準、規範、工具:microdata, json ld, microformat。rails 會自動做這件事情,網址加上 .json 就會吐出資料。 ### data on the web 已經很多人在做了唷揪瞇 為什麼不是這樣做開放資料就好?開放資料蠻大一塊就是公開資料,會放在網站上,為什麼不是網站轉換成開放資料庫?紐約時報、英國衛報、都在做類似的事情,不只 google 看得懂,資料及都做完。這樣也許就不用特別推開放資料。如果可以有效把網站上非結構化跟結構化作完也許就不太需要開資料了。但我還是會需要知道什麼資料在哪裡,有沒有可能透過 sitemap 就有清單出來?也許直接告訴我政府有多少網站,給我資料清單就好,這是靜態資料,動態資料會需要 api,所以唐鳳講 api 還是有一半講對,如果是半年三個月更新一次的東西也許網站做完資料就做完了。 還有很大一塊是資料治理、資料生命週期,這不只是資料管理,還包含為什麼做資料、怎麼使用的程序,就不是今天主題。 ## 14:50 - 15:20 農產品產銷履歷資料鏈結化處理 (鄧東波) [投影片](https://www.slideshare.net/dongpo/linked-traceable-agricultural-data/) ### 專案緣起與自我揭露 這是一個工研院補助的計畫,當初談是不知道要做什麼,想做實證的案例,我長期在做 linked data,想讓 LD 變得更好用,所以就做 LD。剛好前陣子在看產銷履歷,又有 icook 所以就皆起來,自我揭露:這是有政府補助的案子。 我是學術背景,LD 是學術研究工作,早期作地理標準的事情,ontology 到 semantic web 到現在,我不是傳統 CS 人所以看事情角度不一樣。 ### 什麼是產銷履歷 & 什麼不是產銷履歷 各位到市場可能會看到這個,這是產銷履歷嗎?不是,這是 QR code 只會告訴你誰種的、重在哪,有驗證單位、有標章的才是產銷履歷,會連到農委會網站上。 這些都是很有用的資訊,但台灣政府大力推廣開放資料同詞也把產銷履歷資料開放,這其實很少見,法國人還問我台灣怎麼會有這種資料?這是我們特殊的地方。 ### 專案目的:創造範例、推廣正確知識 但開放後怎麼拿來用?我們想創造一個典範,想讓大家瞭解資料有什麼樣的使用方式,怎麼讓資料加值。這樣的 qr code 掃進去會連到背後資料,栽種流程 etc 可以拉出關於作物的一大串資料,放在資料庫裡沒人用就是廢物,有人用就是黃金。靠大家的使用才能變黃金。 另一個目標是我發現整個台灣對 LD 認知有點偏差,政府作 LD 或五星級資料都有點偏掉,我想做一個東西讓大家知道什麼是 LD 五星及、怎麼不要做歪、怎樣做事對的。有些從政府部門來的人有標案可以發包,當廠商告訴你要做這件事情可否分辨哪些ˋ對的錯的?才不會事後出問題?我常常看到哪邊錯了反應,背後回答的都是廠商。 ### 農委會產銷履歷資料的現狀 產銷履歷資料從 2015 開始幾乎每天更新,但假日不會動,現在超過 60 萬筆,一直在增加,量大到我現在無法處理了。之前跟農委會的人討論產銷履歷資料不是所有農夫參與,只有不到三分之一參與。因為要錢,所以參與者少。才三分之一,就已經那麼多資料,如果超過八成,可以想像資料量會多大。 (解釋欄位) 剛才 w 講網頁上資訊不見得結構化,這一個 json 雖然是結構化的格式,但他可以塞入非結構化的資訊。像是產品名稱,還要寫程式抽出來多做一個工。 ### 千奇百怪且不一致的農產品語彙 作物名稱在農糧組織有共用的語彙,為了讓全球農業資訊可以交換。把語彙切成可以識別的物件,這東西就可以讓資訊互相對在一起。剛才的例子就是農產品名稱跟作物無法對在一起。我找不到台灣有相對應的,但在對岸資料庫找到了,有個叫做 cat,把 AGRO… 翻譯成簡體中文,所以在 ag 上不能查繁體只能查簡體。我查農業的這塊發現我們有點偏離世界潮流。 知道作物名稱以後才有辦法去對很多資訊,農產品批發市場交易平台一定要用作物名稱去查詢,就發現市場交易名稱跟產銷履歷名稱,市場交易名稱冬瓜分很多種,產銷履歷卻只有一種。那我要對應哪個? 再來同一種作物有不同的講法,市場上用事家,產銷履歷叫做番荔枝,沒定義好的時候機器一定不知道他們是同一個東西。我相信政府都會有這資訊只是他放資料庫裡面不知道有啥用,可以是放出來整理的話... ### 機器不可解讀的資料 value 這 json 檔案應該是結構化,但商店資訊寫法是超市指到 200 多個門市,人可以理解,但機器怎麼讀懂?要把他解讀成兩百多個門市,這就不是結構化的寫法,這文字描述沒有解釋,機器不會懂。 商店作法就很複雜,因為商店寫法不一致,新北市平溪區農會或平溪同會,或者台跟臺不一樣,或者差一兩個字,只能拿來全部跑過以後找出相似的,瞭解哪些相同,才有辦法讓所有商店對應在一起。 剛才講的 226 個商店,我寫個 script 讀到全台各分店就把農產品對應過去,這就是產品跟商店的對應連結關係。 ### 好不容易爭取到的地籍號碼與 ronny 的座標轉譯 產地也很妙,蒜頭青菜稻米有田就有地號,有工廠就有住址,因為不斷寫信去要求,才把地籍號號碼用標準化的方式放在這邊,今年才出現的欄位。這段文字是地籍號碼,可以推出經緯度座標,可以知道他的農地位置。這段解讀方法,有個 ronnywang 寫了地藉轉 x y 座標的 api, twland.ronny.tw 把文字塞進去就可以查到。 ### 栽種流程資料的潛力 這資訊還告訴我們栽種流程,這些資訊對你沒感覺,但如果蒐集大量,可以預測一些東西。 因為日本人已經想到這件事情,日本農業活動做了知識本體(ontology)去串接這些訊息,但發展完沒有 open data。我把文字跟知識本體對應,發現有 80% 很像,他們也嚇一跳,我就說因為台灣有五十年在你的的控制底下。 當我們有標準語彙,就可以讓資訊作結合。這個 aao 的背景是 fao 做的 argo… 語彙沒有描述太多亞洲水稻田,才另外創了 aao 的,拿稻米的去對應,就對應得非常好。 ### 餐廳資料們 農委會網站還有產銷履歷農產品的餐廳,我做的時候還不是 od 就去爬,餐廳有兩套系統,兩個協會,就去爬下來。經過梳爬以後發現 572 筆餐廳資料。 ### 知識本體、語彙、格式 知道資料內容以後我怎麼表達這筆資料,告訴機器這筆資料裡有什麼內容?這要用標準語彙,OWL(Ontology Web Language),這是一個語意網的語彙,語言就是 rdf,這語彙幫助我們把資料包裝成電腦可以獨得懂得語彙,因為解讀過程讓邏輯關係可以讓電腦可以解讀,就是 semantic web 資料庫的建立。 建立知識本體,不要覺得太有壓力,因為建資料一定有 db schema、xml schema 一定有 guildeline 告訴你資料結構怎麼寫,讓機器讀得懂資料在幹嘛。過去 schema 是給人讀的,... 千萬不要做推理機... ontology 描述的是 concept,概念之間描述清楚了,再塞資料進去變成 instance 。台灣很多作法是沒有 ontology 就去做 rdf 就不知道你在描述什麼。 ### 建立 linked data 的實做方式 要建立鏈結服務,要把 ontology 建立好以後塞資料進去,可以用資料庫端轉,或是從 csv xml 轉。作法很多。對我目前的服務來講,我做的事很清量化的,直接用 d2r server 轉換,只要有關連是資料庫,把 mapping file 設計好以後,啟動 server 吐出來的就是 rdf。把技巧都跟各位講了,就是這麼簡單。 用這方法成立三個 sparql endpoints,server 可以是資料庫,但不是接受一般的 sql 語言而是接受 SPARQL 語言。endpoint 就是他已經是最底層。有三個 endpoints 我們把他做起來。我現在講的都四顆星,有 ontology。 那什麼是五顆星?要達到五顆星,就是跨資料集互相的連結。 ### 不同來源的資料間 mapping 的賤招 我要特別強調 od 怎麼連結,我們把產銷資料跟衛福部的食品業者登錄連結在一起,他是 rdf 也有網址但呈現方式很特殊。我把他連在一起,怎麼連很簡單,餐廳商店都有住址,名稱不一定一致但是住址一定接近,名稱加上住址的相似性就可以判斷商家跟餐廳是不是一樣的。找到以後對在一起,就會取得另一個有趣的東西叫做統一編號,就可以讓我的資料在去跟經濟部工商登記資料對在一起,就有兩層方式一直把資料往下延伸。你更有經驗的話可以既往下延伸,只是個技巧,講怕大家都可以學走。三個資料 xy 座標都可以轉經緯度,剛才講過。 ### 射箭完以後終於找到靶之 iCook 我愛你 我完成五星級資料,丟到資料庫裡面,有啥用處?當初也不知道怎麼用,多次討論才發現 w 在講的事情,紐約時報跟衛報網站都結構化,就看國內網站,就讓我們發現 icook,這情境下就有機會讓 icook 的資料跟我們做的產銷履歷資料對應在一起,好險我們有個厲害高手,把 rdf lib 寫了查詢介面,查詢背後的三個 sparql endpiont ,當食譜網站裡的時才名稱會查 rdf 資料然後到前端 merge 在一起。三個 endpoint 查到 rdf 資料為何可以馬上對在一起?因為使用同一套 ontology。 … 前端 icook 管碩會講,我讓大家看一下做出來的資料長啥樣 ### live demo 斷網秀 (live demo 結果網路掛了) 把一樣的東西連結在一起就好了,就算LD,不一定要 owl:sameAs。網頁呈現是用 rdf 呈現成 html,德國人早就把技術發展好了,是他們做出來的開源軟體,不是我們做的。他不是單純的 html link 他是 rdf 的 url,不要以為他是 html。如果按右上角三個球會很像是網頁看原始碼的樣子,他只是把 rdf 轉成 html 讓人可以讀。 ### 結語 最後幾個經驗跟大家分享,我們的挑戰是台灣鏈結資料環境有待改善,大家對規範跟標準認知不一致,這次希望大給大家正確概念去做這些事情,有更多資料吐出來,就有更多鏈接的可能。 還有些問題,比方說衛福部的資料有很有趣的現象,資料一直在增加,id 也在變化,url 也在變化,每隔幾個星期就要看他變化更新資料庫,我已經抱怨過寫過信他們還是一樣,很多資料轉成 rdf 做四顆星五顆星到底目的是什麼,很多 rdf 表格直接轉沒有 ontology 沒有語彙,轉成這樣比給人家 csv / json 更差,因為多了很多不必要的字元,不如給 csv 就好。所以做事情時先想清楚為什麼資料做成這樣。 很多人把 api 當成 sparql endpoint,sparql endpoint 是 api 形態,但他不是單純的 api,單純 api 是用變數撈取資料,不要混在一起。實做的時候要區分。 再來是資料集的語意不清楚,像是 moi,寺廟資料集,小寫跟大寫不一樣,電腦一定會瘋掉,無法從邏輯辨認出他要做什麼事情。這種寫法多問人、不要門關起來以後覺得自己很厲害就發表。我們做這些事情不是一開始就這樣,長期跟國外寫 paper 參與言討論交流互動,所以知道哪些東西是正確、哪些市有問題,不要憑空想像,把事情做好才是正確的... 希望不要走偏。 我們是小成本的經營但是 ap endpoint 很耗資源,三個服務就佔據一顆 cpu,所以大家請善加利用,我們想 release 但怕機器無法撐,我們有盟友說可能會支援,希望會支援。 ### Q: 會不會害對手的田被攻擊? A: 就是你這種說法讓我們常常拿不到資料 XD 資料開放有正面負面,前陣子有人下老鼠藥到魚塭,正面負面對我來講無法掌握,對我來講資訊流動才有辦法帶動資料經濟跟資料加值,open 這麼多 data 到底要幹嘛,我的想法很簡單。 ## 15:20 - 15:40 鏈結資料與結構化網站的整合應用 (麥舘碩) [投影片]() (待補) 我是中研院生物多樣性中心...,有陣子沒碰這東西(心虛)前兩個都把我要講的講得差不多惹。 ### 語意網:一個把網站當資料庫用的概念 用簡單概念講,語意網是把 web 當關連式資料庫操作,就是 tim 1998 提出的想法。實際上到 2006 提出 ld 四個原則才讓這東西真的起飛。關連式資料庫的 key 就是 linked data 的 uri。ld 就是 graph model node 之間連結成網絡。雖然有 http uri 就可以取得資料,這邊講的 link 他是建立起資料物件的連結,連結賦予特定的意義就是語意的東西。透過 http 得到相連的資料。相連的是資料而不是一般的文件。 ### Linked Data 不只是 API 過去有些疑問,這跟 api 交換資料差在哪?LD 就是把描述、存取、查詢資料的方法有一致的規範,包過 http web rdf sparql 設計成的 restful 的 api,本質是類似這樣的東西。特色是順著連結走就可以到更多資料,叫做 follow your nose,不知道 ontology 只要跟著連結走就可以知道資料內容跟關連的資訊。一般不看文件通常無法用 api 。 只要 key 一樣就可以從不同來源的資料集下 sparql 查詢要求回傳 rdf 資料,自動合併成完整的 data graph,而不是破碎的資訊。資料 ontology 都不用擔心。 ### Linked Data 格式 rdfa, microdata, json-ld ,schema.org 可以用這三種不同的格式表達,都是 rdf 的實做方式。 (反正都講過惹) ### 產品企畫 應用情境就是說,假設現在有一堆資料,拿到資料能幹麻?可以說可以去哪裡吃到、買到食材之類的。連上食譜打開我們的工具可以得到這東西。 呈現形式是 chrome 外掛,app 就再看看。 ### 使用工具 重要工具是 rdflibjs、jquery.microdata.js(同 slides) ### 消化 ontology 的技巧:隨便看看 ontology 東波沒花很多力氣介紹,我也沒花很多力氣去看... 我知道大概就好了,就 follow my nose 就好。 ### 合併 data 的技巧:用 js 自幹 sparql 1.1 標準 我把資料先抓出來存在把地端 storage 然後把雞蛋、番茄、從哪些商店可以買到吃到的食材先快取回本地端 storage,要透過 sparql 1.1 標準把資訊平行取得,但 sparql 1.1 是比較後期才發展的標準,早期研究目的作的 endpoint service 都沒有完整實做 1.1 的功能或者有 bug,會卡住,後來救自己用 js 自己刻,就是同步查不同資料集,合併,然後從合併結果撈出來。做完就同時做出 sparql endpoint,蠻爽的。 ### 名稱對應的技巧:regxp 然後食材名稱的文字就對不起來... (詳 slides 紅字) 這要另外對應,但我要做 ld 示範應該直接從前端整合資訊,不應該另外花功夫自己作對應的 service,會讓工作量增加很多。 最後很簡單的在 instance level 的資料對應,陽春的名稱對應法就是還好 sparql 有支援 regxp 比對,讓他去比說在東波農產品名稱有這些字就都帶回來,用到一個簡單的 sparql query,sp 有好幾種操作法,最簡單的就是 select 然後回傳 table 給你,或者是 construct 用篩選條件,他幫你把回傳的東西拼裝成 rdf ,可以用這方式去造原本不存在的 uri。現在即使對像是不同的 schema 或者表示方法不同的 ld 資料集,可以用這方法去重組成我需要的。比對完用到一個差強人意的結果。 ### 抓座標 blah blah 下一步也很簡單,抓使用者座標 blahblah~(slides)即使各位看不懂 sp 但從描述裡應該也可以看得出來 blah blah (語法) 做出來就哪裡買、哪裡吃,我點雞蛋就可以看到標記到點位,可以吃到產銷履歷的餐廳分佈在哪裡。 如果要 query 資料時要跟後端溝通,但我是直接跟前端 endpoint 溝通,不用涉及後端。明確的雞蛋資訊連 query 都不用去 uri 就可以得到。 ### 整合 twfood 資料 還想追加推不推,東波挖到有個台灣當季蔬果,會有批發價資訊,他們有算一些數值出來(便宜、新鮮,功能說明詳 slides) ### 敬告各位不要自己發明 5566 的標準 (資料清理的苦頭)東波講得語氣平淡,但私下工作時他其實比較激動... 如果要做網站、做 api 可以的話用 microdata ,盡可能用現成的標準,自己發明 5566 等於沒標準 www ontology 有個 design pattern,會先往後退一步看 ontology 有沒有相似的 pattern,先定一個 meta ontology 以後,再去定義跟規劃下層的 class 跟 properties,可以比較容易理解 design pattern,我可以直接在你的 ontology 上把我自己的想法跟你的 ontology 綁在一起。 最後告訴大家,資料加上標準們加上open可能可以產出LOD,本來想劃等號但不太好,沒人知道標準是啥。 (live demo 看操作) ## 15:40 - 17:00 綜合座談 ### 對於國發會新主委上任所推行的政策中,開放資料的未來走向會是如何呢? d: 無法回答 O_O ### Chrome的外掛程式名稱可以提供嗎? d: 還沒 release,但只要三四個人查詢機器就掛了... (現場 show 出來) m: https://github.com/trashmai/linkedfood 下載、解壓縮、打勾開發人員模式(載入未封裝的擴充功能)、選擇解壓縮完的資料夾,選完荷包蛋就會跑出來。 ### Lod 前端的展示需用什麼套件呈現嗎? d: 問哪一部分?chrome 不用,裝 extension 就好,請 m 操作 ### 不同領域如農業、交通、環境、水利 從茫茫開放資料海中要如何建立一套ontology? 現有標準要去哪找呢? d: 四個不同的知識領域,在日本有個共同基盤語彙,架構是在日本內閣府(行政院)層級訂出核心語彙,所有部門都會涉及到的語彙,這樣部門之間就可以交換,部門語彙在擴展連結到產業語彙,有三層的結構。這樣的結構有了以後,部門交換資料可以透過核心語彙作資料交換,自己領域的語彙也可以用自己領域語彙作資料表達,就是核心語彙跟 domain knowledge 語彙併陳。 我們有個想法,這套作法未來我會想推到整個亞洲的開放資料平台,這些領域知識的 ontology 其實都有對應的知識領域語彙,還經交通都一定有資料標準跟語彙,茫茫開放資料海就問 google,問題是怎麼使用這些國際慣用標準。找語彙會先上 LOV 網站,linked data vocabulary,會先看有多少人已經多數在用的語彙。這是 open knowledge foundation 做的,可以找到很多,要自己篩選。入門都是這樣,google 一下 lov 一下,我還會找一下 paper,就差不多八九不離十了。 ### 請問從概念發想到實際成果產出約莫花了多少時間? d: 我一個人做兩個月,拿到資料清資料,差不多就給 m 接 endpoint,他也不用讀 ontology 他就是 endpoint 資料撩一撈看一看就可以做了,做 ot 是有別人可以拿去用,日本就有人邀請我們當 data provider,給 talk 變成資料提供者。 m: 我時間蠻零散的 d: 兩個晚上?XD m: 搞清楚 rdf 蠻長時間的。 d: 其實歐洲很多學校公司都在大量用這技術,都 open source 重點是怎麼找到來用,工具都不用重新發展輪子了。 ### 對於動態的資料(如link for sensor data)能分享概念嗎?與靜態資料的做發是否相同? d: 他要秀 semantic sensor ontology,已經發展很久,氣象站、空氣盒子或者測站的資料已經有一套 ontology,特色是從 design pattern 開始實做,從設計概念延伸出來 ontology。這個 ontology 我們應用過,在路殺社的,用這個語彙去形容。 動態資料跟靜態資料是一樣的,動態只是他一直產生而已。前端應用可能會不一樣,但 database knowledge base 作法是一樣的。 ### 知識語彙感覺很重要,應該用國外語彙,還是政府由上而下去推動? d: 我的看法,我覺得 vocabulary 是個標準,應該是上位機關去定義,由下位機關發佈時對應上去,資料才有辦法共通,沒有核心語彙的定義,大家都定 5566 語彙之後,有標準等於沒標準。要找出一個共通的標準。至於是不是用國外,國外已經有經驗,為什麼不從國外導回來,不用從頭開始,可以參考國外作法參考台灣環境作修改,很快的做出來,當然還是要跟領域專家去討論,日本的作法是在內閣府底下有個委員會,邀集相關領域大學教授去制訂,就可以促進政府之間的資料交換。歐盟有類似的東西,有 euro commission 去做資料互通。 ### 政府資料開放做錯的地方,只要結構化就夠了?聽不太懂 d: 其實從 w 的簡報裡面,到我跟 m 講的,講結構化很多人把文字拆成 csv 就說是結構化,但文字不算結構化資料,裡面包含太多物件在裡面。要結構化,必須把 key val 抽出來,要區分清楚才是真正的結構化。像是頂好全台門市代表 200+ 這才是結構化。 ### 能否分享 貴團隊在執行鏈結資料的計劃時,有哪些執行上的困難處 d: 困難點在於資料內容清理很煩雜,拿到資料是 json 但清理是很大工程,發現問題是跟農委會談,農委會不太懂我們為什麼要做這個,他們的反應,我的資料已經做很好啦有 api 有 json 幹麻花那麼大功夫?難道不好用?我說對,資料不好用。會把資料變結構的人很少,他們聽到就跟廠商講說有人提這意見,廠商聽不懂,就沒後續了。所以為什麼衛福部資料連結一直在換,每次 demo 我都要重整,昨天搞到半頁四點,才有辦法看到正確的東西。這樣的事情很多,溝通上我們做這樣的事情是要讓政府單位瞭解 LD 可以做什麼、有什麼發展,廠商不太瞭解我們在幹嘛,會產生一些,就不瞭解。我們就做好的事情出來,大家可以一起來做。 ### 推薦指數是根據 twfood 算出來? m: 是 twfood 算的 d: 要從網站背面看 m: 有些 api 在後面 d: 看 source code 就有 ### 工研院計畫的下一步? d: 我野心比較大,aao 我跟日本已經合作,三個不同層級的語彙提出來,變成亞洲開放平台的基礎,農業可能是個範例,接下來可能是不同的領域,慢慢一步一步建立結構。台灣政府既有的脈絡在走,我們不是上位機關講話也沒人要聽,從國外去建立更大的典範再回來台灣。接下來可能泰國,月底去德國看看有沒有機會。我一點都不是農業背景,我只是玩 LD 的。台灣政府單位無法一起作的話我們就沒有機會能介入,願意就一起改變,沒辦法就轉。政府不作我們就一直清資料。 ### 還有其他類型的資料可以給前端工程師玩嗎? et: ronny 砍的? d: 我有建議他們做 rdf ,慕約看完 ontology 不知道怎麼下手,就不了了之 ### 跟農委會合作? d: 我會嘗試啦,但不知道誰會願意跟我討論這個,買不買單是他的事情,我不想強迫政府單位作他們做不到的事情,我試過太多次了。 ### od 內容不符合期待,會建議政府怎麼建立審核機制,或者做建資料的訓練?是資料治理要解決的問題? d: 這應該算資料素養的問題,w 最有經驗,應該他回答。 w: 應該要有規範,有規範照做就好,公務員不用懂也沒關係,因為他不是要用資料的人。我們現在做 open data 是公務員叫廠商作,但怎麼跟廠商溝通要做什麼?廠商也不知道。要有人知道、跟公務員講,公務員開規範書,廠商實做。現在最缺的是告訴大家資料該怎麼做的標準,不是只有資料本身,還包含不同 domain 的標準要做出來,這目前是不存在的,或有標準沒人遵守,沒有上位政策要求的話,剛才的狀況會繼續出現。 d: 不是唯一解,但核心的是語彙要定出來,國家要有標準,使資料能互通。應該要這樣。 w: 網站要結構化,內容要先分類,做完分類可以把資料跟分類做比對。標準則是 domain 專屬標準都要找人去定,日本很努力在做這件事情,台灣沒在做。我現在講完,以後語彙要找誰做?我不知道。國發會的跑掉了我可以講,數位政委說各部會要作「自己專屬的領域別」的語彙,那這命令下去,我打賭沒人做,反過來如果我先做,先搶先贏,觀光局跟林務局就這樣,強迫林務局要用他的方法,林務局就不爽,但觀光局先做所以他最大,變成林務局去妥協。但很多部會沒意識到這點。另外共同語彙國發會說自己要做,做到什麼地方去我不知道。好像很多東西都有人在做,但會發生什麼完全不知道。實際要作要看案子預算,目前看到都研究案,現在才要研究案,實作至少是兩年後的事情。 > 唐鳳補充:前五個領域的草案預計於 2018 年 3 月,初稿預計在 2018 年 6 月完成。([來源](https://issuu.com/pdis.tw/docs/digi___________________v4.8/24)) > (其中防救災領域雖然汛期不能上版,但會同步實作、測試。) d: 進一步問題 fb 社團可以發問。 w: 語彙不是困難的事情,只是要做跟不要做。