WordNet-Similarity Installation

This logs my installation of WordNet Similarity.

The current version of WordNet::Similarity is 2.0.7, released on October 4, 2015. The install file in source code explains the installation well, however, some little problems occur with new Mac OSX, e.g. Sierra.

The WordNet-Similarity 2.0.7 works with the other packages:

  • WordNet-3.0
  • WordNet-QueryData-1.49
  • Text-Similarity-0.13

WordNet-3.0 needs to be installed firstly, and then the other two packages. Although WordNet 3.1 can be installed via Brew, my case is not successful to make WordNet 3.1 working with WordNet-Similarity 2.0.7.

As the installation of WordNet, a issue was occurred from the step of ‘make’ in stubs.c. The following is the error message.

stubs.c:43:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result =
~~~~~~ ^
stubs.c:55:14: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = bitfieldstr;
~~~~~~ ^
stubs.c:72:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: bit bitnum”;
~~~~~~ ^
stubs.c:78:14: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = bitfieldstr;
~~~~~~ ^
stubs.c:92:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result =
~~~~~~ ^
stubs.c:105:14: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = resultbuf;
~~~~~~ ^
stubs.c:117:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: glosses [1 | 0]”;
~~~~~~ ^
stubs.c:132:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: fileinfo [1 | 0]”;
~~~~~~ ^
stubs.c:147:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: byteoffset [1 | 0]”;
~~~~~~ ^
stubs.c:162:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: senseflag [1 | 0]”;
~~~~~~ ^
stubs.c:178:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: contextualhelp partofspeechnum searchtypenum”;
~~~~~~ ^
stubs.c:183:14: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = helptext[pos][searchtype];
~~~~~~ ^
stubs.c:193:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: reopendb”;
~~~~~~ ^
stubs.c:207:17: error: no member named ‘result’ in ‘struct Tcl_Interp’
interp -> result = “usage: abortsearch”;
~~~~~~ ^

Google the issue. I found a solution from StackOverflow. One suggestion is modify the line using ‘interp->result’ to ‘Tcl_SetResult’, e.g.

from

interp->result = "usage: glosses [1 | 0]";

to

Tcl_SetResult(interp, "usage: glosses [1 | 0]", TCL_DYNAMIC);

After the modification, do configure and make again. WordNet 3.0 can be successfully installed. (You type wn in terminal for testing if the WordNet installation is successful).

With having WordNet 3.0, the WordNet-QueryData-1.49, Text-Similarity-0.13, and WordNet-Similarity 2.0.7 are installed well via following procedure:

  1. perl Makefile.PL
  2. make
  3. make test
  4. su
  5. make install
  6. exit

To test if WordNet-Similarity 2.0.7 is installed successful, you can go to the folder ‘samples’, and find sample.pl. Then, try ‘perl sample.pl cat#n#1 dog#n#1′. You will see the result like the following screenshot.

screenshot-2016-10-15-12-09-22

All functions of WordNet-Similarity 2.0.7 are in the folder ‘utils’. If you’d like to launch a web service of WordNet Similarity, you can use similarity_server.pl. Just execute it. Then, you can see as following screenshot.

screenshot-2016-10-15-12-21-40

[OSM活用術]如何安裝在開放街圖(OpenStreetMap)在Garmin的機台

在台灣買GPS機台,多數只會裝台灣的圖資,而出國時經常面臨有GPS機台沒有圖資使用的窘境; 相反地,在國外買的機台也只裝載當地圖資,往往回台灣後,也會面臨沒圖可用的狀況,就必須再額外購買圖資。其實,開放街圖(OpenStreetMap)提供了一個免費的圖資。

隨著OSM的圖資在世界各地愈來愈完成、豐富,提升OSM圖資實用性。Garmin 目前是GPS熱門廠牌之一,使用者多,在OSM社群中自然有人已經把OSM圖資轉為Garmin機台可讀的IMG檔。以目前還在更新維護的Garmin圖資載點,如圖1所示,是由荷蘭人Lambertus所維護,可以自由地選擇所需圖資之區域,下載該區域的IMG,再置入Garmin的機台,就可以使用。

http://garmin.openstreetmap.nl/
圖1: 可下載Garmin機台可讀的OSM圖資 (garmin.openstreetmal.nl)

步驟很簡單,在圖1中,可以選單方式選擇所需區域,或者勾選手動的方式,選定一個或多個區域,筆者只需要越南河內,因此只選擇河內單一區域,然後填上你的email,按下”Build your map”,如圖2所示,系統會自動產生你所需的IMG檔,並email給你。

Garmin OSM region selection
圖2: 選撢所需圖資之區域

隨著email所提供的連結,來到如圖3的網頁,其中”osm_generic_gmapsupp.zip “,就是可以載入Garmin機台的IMG檔,如果你的電腦上有裝Garmin出產的地圖瀏覽工具,也可以下載在這個頁面中所提供的其它檔案。

Screen Shot 2015-10-08 at 6.20.20 PM
圖3: 經由email提供的連結下載圖資

將IMG修改一下檔名,以免覆蓋掉原本圖資,放上Garmin 機台的資料夾。開機後,縮至使用的地圖區域,如這次範例是在河內,縮到河內,就可以看到OSM的地圖。如圖4。

OSM in Garmin Dakota 20
圖4: OSM圖資在Garmin Dakota 20

用Osmosis將plant.osm資料倒入MySQL資料庫中

Osmosis 是一套處理OSM資料的JAVA應用程式,可以用來輸入輸出OSM資料庫的資料,以及處理dump的OSM資料。之前習慣於用簡單的方式來處理OSM XML資料,擷取出需要的資訊,今天嘗試的使用Osmosis後,才發現Osmosis才是王道。

Osmosis的安裝也很容易,在Mac機器上,只要brew install osmosis即可安裝完成。

OSM本身的database是postgreSQL,若你也使用postgreSQL資料,網路上可以找到不少資料。若資料庫是用MySQL,相對比較少。在github上,有人釋出database schema

連結感測器資料(Linked Sesnor Data): 從氣象測站到連結資料

緣起

會進行這個Linked Sesnor Data的試作有一些緣由,把時間拉回2013年8月1日在環保署召集的「環境資源資料開放專家諮詢會議」,開會目的除了討論環保署資料開放平台,更是在於討論紫外線測站資料來當開放資料五顆星的範例。太酷了! 環保署願意進行開放資料5顆星的示範是一件很棒的事! 不但有助於環保署所屬開放資料品質的提昇,也可以刺激其它政府部會對於開放資料品質的關注。但會中業務單位所簡報的那個「紫外線測站的五顆星開放資料」是問題多多,對於OWL/RDF有了解的人,其實不難發現簡報中的那份RDF是有問題的,況且把資料編譯為RDF格式充其量就是4顆星等級,怎麼可以說是5顆星呢?再者,所謂的5顆星開放資料是要連結什麼呢!?

這個問題後來成為與會專家要給予的答案。資料集與資料集要連結,這之間就必需要有某一些關連,也就是所謂的context,以致於資料集中的某一個entity可以與另一個entity以某種形式相連,在普遍的做法就是用owl:sameAs來表達在不同資料集中的二個entity是一樣的,以我有限的所知,資料集之間的context可以由三個特性來思考: 地理空間(Geospatial)、時間的(Temporal)、和主題屬性的(Attributiive),以環保署開資料平台中的紫外線測站資料為例,有可能連結的部份看來只有地理空間的特性了! 就資料特性而言,若環保署要做Linked Open Data (LOD),建議應該朝向Linked Sesnor Data,就是把所有測站以OGC的Sensor Web Enablement (SWE)W3C SSN Ontology 二者來表達環保署中的測站,而測站所產生的資料則是以Linked Observation Data 來詮釋。

 

IMG_20140103_121214從Sesnor nodes組成sensor network,然後以OGC SWE來架構Sensor Web,所以容易再以W3C SSN Ontology表達

 

IMG_20140103_121156Linked Sesnor Data, Linked Observation Data, and Geonames

 
很遺憾的是,他們並沒有採納這些意見,在環保署開放資料平台上線後,12月初無意間看到,那個有問題的說明己經在環保署開放資料5顆星的頁面上,而有問題的RDF資料也提供下載。這種做法給了二個不好的示範,首先,在專家會議中,本人就不認為那是對的說明和對的RDF資料,但這些內容和資料還是上線了,好吧! 意見也給了,那專家會議的用意什麼? 另一個是比較嚴重的問題是,把錯誤的LOD說明和資料放在一個政府公署開放平台的網頁上,很容易就會誤導其它人,對於LOD的理解,開放也得開放「對」的資訊,是吧! 身為市井小民所幸可以透過平台「意見回饋」反應機制,向環保署說明,那份說明的LOD頁面和RDF資料有問題,哈! 意見回饋比專家會議有效耶! 環保署在一週後拿掉在資料開放平台上的那些LOD資料,所以大家己經看不到了,接著承辦這項業務的人員也來拜訪,並帶著修改的RDF來討論。的確,修改後的RDF,使用了標準語彙,如Dublin Core,但看起來就是一份單純由表格轉為RDF的文件,這不見得有錯,但語意的表達是相當弱的,對於紫外線測站詮釋,也就是紫外線測站所表達出的概念是什麼?並沒有辦法得知。

或許,你心中油然而生一個問題,「疑!那些LOD的資料,在網頁看起來都像是表格一樣,那資料轉成這樣有什麼問題?」嗯! 那些LOD的資料背後其實都有一個ontology來表達資料的語意,只是放上網頁為了瀏覽方便而表現成表格的形態,利用標準語彙也是在確保資料語意不被誤解,但ontology中,概念的結構和邏輯的規範可以使資料語意更為完備,並可以進一步達到邏輯推理,當然目前我們只需要達到將資料本身概念充份地表達,在這個紫外線測站的案例中,如同前面所說,還是採用W3C SSN Ontology來表達紫外線測站才是比較恰當的方式。

從建構知識本體(ontology)開始

這筆所謂的紫外線測站基本資料所記述的資料相當有限,主要項目如下:

  • 紫外線測站的中英名稱
  • 紫外線測站所在的縣市鄉鎮
  • 紫外線測站的空間座標和住址
  • 紫外線測站的發佈機關

這筆有限的資料能表達出的內涵確實不多,若只根據這些項目編出的ontology應該也很空洞,對於一個用來表達紫外線測站的ontology而言,不僅僅是要表述地理空間的描述,更重要是要表達什麼是紫外線測站和紫外線測站觀測什麼。根據W3C SSN Ontology 對於感測器(Sesnor)的描述和定義,可以重新想想,要如何重新表達這筆紫外線測站資料:

  • 紫外線感測器本身是用來測量紫外線(Ultraviolet)的
  • 紫外線觀測是以紫外線指數(UV Index)
  • 紫外線感測器是裝在中央氣象局的氣象站或環保署的空氣監測站
  • 無論是氣象站或空氣監測站都有空間座標、地址、和所在行政區域

W3C SSN Ontology 這份報告附有很多案例是可以依循的,其中對於Linked Sesnor Data 就有一個案例,對於紫外線測站資料,不就是一個很好拿來模仿的案例! 對於感測器(Sesnor)的描述和定義,這個案例中主要使用W3C SSN ontology和DUL(DOLCE Ultra Light) ontology,此外也描述感測器(Sesnor)觀測能力和裝在氣象局的事實,更重要的是這樣表達的感測器(Sesnor)是可以被連結(link)。根據這個架構,可以設計一個ontology來解釋這筆紫外線測站資料,而這個ontology 不單單只有紫外線測站的ontology,而應該是感測器知識本體(sesnor ontology),且可以應用在任何不同的感測器上,我習慣先用畫圖把需要的class和individuals先勾勒出來,以便後續ontology的編輯。

uv_ontology根據W3C SSN 和 DUL設計的紫外線感測器ontology

 
與寫程式類似,ontology的編輯可以用文字編輯器,但也有一些工具輔助,一般常用的工具為Protégé,根據上面那個畫好的圖,這個UV sesnor ontology 很快就能完成。
 

Linked Data: 讓自己可以被連結,也可以連結別人

一一解釋UV Sesnor Ontology中類型(class)和個體(individual)會是冗長的說明,為了有效率的說明UV Sesnor Ontology中的知識表達,以下是擷取部份段落來做解釋:
 

Solar501A (亂瞎掰的)感測器本身是用來測量紫外線(Ultraviolet)的,安裝於台北氣象站的系統平台上,且有量測紫外線指數(UV Index)的能力,而紫外線指數有15個等級,每一個等級就是100焦身/每平方公尺,例如8就是測到紫外線800-899焦身/每平方公尺。紫外線指數又可以分級為低量級、中量級、高量級、過量級、和危險級,下面案例只顯示紫外線指數8-10是過量級。

 

###  http://lod.tw/ontologies/weather-station/uv#Sensor_Solar501A

:Sensor_Solar501A rdf:type ssn:SensingDevice ,
                           owl:NamedIndividual ;

                  ssn:onPlatform :Platform_for_Taipei_Weather_Station ;

                  ssn:hasMeasurementCapability :UV_Index_MeasurementCapability .

###  http://lod.tw/ontologies/weather-station/uv#UV_Index_MeasurementCapability

:UV_Index_MeasurementCapability rdf:type ssn:MeasurementCapability ,
                                         owl:NamedIndividual ;

                                ssn:inCondition :UV_Sacle ;

                                ssn:forProperty :Ultraviolet .

###  http://lod.tw/ontologies/weather-station/uv#Ultraviolet

:Ultraviolet rdf:type ssn:Property ,
                      owl:NamedIndividual .

###  http://lod.tw/ontologies/weather-station/uv#UV_Sacle

:UV_Sacle rdf:type ssn:MeasurementRange ,
                   owl:NamedIndividual ;

          ssn:hasValue :UV_Index_0_interval ,
                       :UV_Index_10_interval ,
                       :UV_Index_11_interval ,
                       :UV_Index_12_interval ,
                       :UV_Index_13_interval ,
                       :UV_Index_14_interval ,
                       :UV_Index_15_interval ,
                       :UV_Index_1_interval ,
                       :UV_Index_2_interval ,
                       :UV_Index_3_interval ,
                       :UV_Index_4_interval ,
                       :UV_Index_5_interval ,
                       :UV_Index_6_interval ,
                       :UV_Index_7_interval ,
                       :UV_Index_8_interval ,
                       :UV_Index_9_interval .

###  http://lod.tw/ontologies/weather-station/uv#UV_Index_8_interval

:UV_Index_8_interval rdf:type DUL:Region ,
                              owl:NamedIndividual ;

                     :hasMeasurementPropertyMaxValue :UV_Index_8_max_value ;

                     :hasMeasurementPropertyMinValue :UV_Index_8_min_value .

###  http://lod.tw/ontologies/weather-station/uv#UV_Index_8_max_value

:UV_Index_8_max_value rdf:type DUL:Amount ,
                               owl:NamedIndividual ;

                      DUL:hasDataValue "8.99"^^xsd:float ;

                      DUL:isClassifiedBy :Hecto_joule_per_square_meter .

###  http://lod.tw/ontologies/weather-station/uv#UV_Index_8_min_value

:UV_Index_0_min_value rdf:type DUL:Amount ,
                               owl:NamedIndividual ;

                      DUL:hasDataValue "8.0"^^xsd:float ;

                      DUL:isClassifiedBy :Hecto_joule_per_square_meter .

###  http://lod.tw/ontologies/weather-station/uv#Very_High_Risk

:Very_High_Risk rdf:type ssn:FeatureOfInterest ,
                         owl:NamedIndividual ;

                rdfs:label "過量級"^^xsd:string ;

                ssn:hasValue :UV_Index_10_interval ,
                             :UV_Index_9_interval ,
                             :UV_Index_8_interval .

 

台北氣象站的系統平台是台北氣象站的一部份,台北氣象站是中央氣象局的一部份,而台北氣象站和中央氣象局都是一種組織(Organization)。

 

###  http://lod.tw/ontologies/weather-station/uv#Platform_for_Taipei__Weather_Station

:Platform_for_Taipei__Weather_Station rdf:type ssn:Platform ,
                                               owl:NamedIndividual ;

                                      ssn:attachedSystem :Sensor_Solar501A ;

                                      DUL:hasLocation :Site_Taipei_Weather_Station ;

                                      DUL:isPartOf :Taipei_Weather_Station .

###  http://lod.tw/ontologies/weather-station/uv#Taipei_Weather_Station

:Taipei_Weather_Station rdf:type :Weather_Station ,
                                 owl:NamedIndividual ;

                        rdfs:label "Taipei"^^xsd:string ,
                                   "台北"^^xsd:string ;

                        DUL:isPartOf :Central_Weather_Bureau_Taiwan ;

                        DUL:hasLocation :Site_Taipei_Weather_Station .

###  http://lod.tw/ontologies/weather-station/uv#Weather_Station

:Weather_Station rdf:type owl:Class ;

                 rdfs:subClassOf DUL:Organization .

###  http://lod.tw/ontologies/weather-station/uv#Central_Weather_Bureau_Taiwan

:Central_Weather_Bureau_Taiwan rdf:type :Government_Organization ,
                                        owl:NamedIndividual ;

                               rdfs:label "中央氣象局"^^xsd:string .

 

台北氣象站是在台北氣象站場址(site),這個場址是一個地方(Place),有一個WGS 84 XY座標的參考點(reference point),且這個場址有一個地址(Address),這場址也在一級行級行級區的台北市之中和二級行政區的大安區之中,且大安區也在台北市之中,而台北市在台灣之中。

 

###  http://lod.tw/ontologies/weather-station/uv#Site_Taipei_Weather_Station

:Site_Taipei_Weather_Station rdf:type DUL:Place ,
                                      owl:NamedIndividual ;

                             geo:hasGeometry :Reference_Point_Taiepi_Weather_Station ;

                             vcard:hasAddress :Address_Taipei_Weather_Station ;

                             :is_in :Daan_District ;

                             :is_in :Taipei_City .

###  http://lod.tw/ontologies/weather-station/uv#Reference_Point_Taiepi_Weather_Station

:Reference_Point_Taiepi_Weather_Station rdf:type geo:Point ,
                                                 owl:NamedIndividual ;

                                        wgs84_pos:long "121.55834"^^xsd:float ;

                                        wgs84_pos:lat "22.036934"^^xsd:float ;

                                        geo:asWKT "Point(121.5583420000, 22.0369330000)"^^sf:wktLiteral .

###  http://lod.tw/ontologies/weather-station/uv#Address_Taipei_Weather_Station

:Address_Taipei_Weather_Station rdf:type owl:NamedIndividual ,
                                         vcard:Address ;

                                vcard:street-address "公園路64號"^^xsd:string ;

                                vcard:locality "台北市"^^xsd:string ;

                                vcard:country-name "台灣"^^xsd:string ;

                                vcard:region "大安區"^^xsd:string .

###  http://lod.tw/ontologies/weather-station/uv#Daan_District

:Daan_District rdf:type lodtw:2nd_Administration ,
                        owl:NamedIndividual ;

               :is_in :Taipei_City ;

               owl:sameAs freebase:Daan District ,
                          geonames:Daan District .

###  http://lod.tw/ontologies/weather-station/uv#Taipei_City

:Taipei_City rdf:type lodtw:1st_Administration ,
                      owl:NamedIndividual ;

             :is_in :Taiwan ;

             owl:sameAs freebase:Taipei ,
                        geonames:Taipei ,
                        wikidata:Taipei ,
                        depedia:Taipei.

 
眼尖的你不難的不發現,上述的每一個「類型(Class)」和「個體(individuals)」都是以URL方式呈現,如http://lod.tw/ontologies/weather-station/uv#Taipei_City; 且上一段中的台北市和大安區都己經以owl:sameAs分別連結到DBPediaGeonamesWikidata、或Freebase,如UV sesnor ontology中的Taipei_City是以owl:sameAs連結http://rdf.freebase.com/ns/m.0ftkx, http://sws.geonames.org/7280290/, http://www.wikidata.org/entity/Q1867, 和http://dbpedia.org/resource/Taipei。與一開始所做的分析一樣,在這筆資料中地名是最有可能拿來連結其它資料的實體(entities)。

最後,想強調的是,編寫這個UV Sesnor ontology用意在於讓更多人了解什麼是LOD,並期待能引發更多LOD的討論,而能有更多更正確的LOD資料。

群眾外包的訊息平台 — Ushahidi

Ushahidi 是一套著名的群眾外包 (Crowdsouring) 平台,被運用在許多世界上重大的災難事件中,它的出現是因為2007年非洲肯亞總統大選出現爭議而暴動,為收集肯亞各地暴動資訊,Erik Hersman等人建立了一個以電子郵件和簡訊方式收集暴動事件之資訊,並顯示於Google Map 上,此平台並命名為 Ushahidi ,即為非洲斯瓦希里語 (Swahili) 的「證詞 (testimony)」或「證人 (witness) 」之意,而 Ushahidi 以收集群眾所提供的災難資訊,並繪製於地圖上的方式,也稱為災難地圖 (Crisis Map) 。
Ushahidi平台建立於 Kohana 網頁架構,也就是一個PHP 5 為基礎,提供許多豐富的套件以用來建立網頁, 為 CodeIgniter 架構 (PHP 5 開發環境) 的一個分支。在簡訊收集方面,Ushahidi並內建 Nexmo,用來處理大量手機簡訊(Shot Mobile Message)的API,以及 Clickatell 來提供收集簡訊閘口 (gateway),此外,Ushahidi 也常使用 FrontlineSMS 來收集使用者所發送的簡訊。在地圖顯示方面,Ushahidi使用OpemLayers套件為災難訊息地理視覺化的工具,使用者透過這個套件可以將災害訊息定位,所收集的災難訊息也可以分門別類地顯示於地圖上。圖1為我們所建立的測試平台。

圖1: 我們所建立的Ushahidi測試平台
圖1: 我們所建立的Ushahidi測試平台

SwiftRiver是擴充Ushahidi資料收集的系統,該系統結合自然語言處理和資訊探礦的處理套件,能分析使用者所上傳資料,如Twitter和簡訊,在短時間內,幫使用者分類並提供使用者充份的背景資訊,讓使用者更容易提供資訊,另一方面,資料收集者也因為充份對上傳的災害資訊分析,能有效地歸類整理災害資訊,而使所收集的資訊能加以利用,因此SwiftRiver被定位為具有所生產一個智慧且即時的資料收系統。SwiftRiver具有三個主要功能:1) 組織未結構化資料、 2) 條件式過濾和即時分辨上傳訊息的優先程度、 3) 加入有意義的脈給 (context) ,如位置,圖2為SwiftRiver的使用介面,對於來自於Twitter的事件報告,可以進行內容的過濾與辨識,以利後續分類及訊息分送。

圖2: SwiftRiver的使用介面
圖2: SwiftRiver的使用介面

Ushahidi在世界各地及重大災難事件的使用

(1) 2010年海地地震

在2010年海地地震發生沒多久,哈佛大學人道計畫(Harvard Humanitarian Initiative) 發起人之一, 利用Ushahidi 開啟了一個三個單位聯合的海地人道救援計畫,包含美國塔夫茲大學佛萊契爾法律外交學院(The Fletcher School of Law & Diplomacy at Tufts University)、哥倫比亞聯合國人道事務協調辦公室(UN OCHA/Colombia)和危機資訊製圖者國際網絡(the International Network of Crisis Mappers (CM*Net)),在該計畫開始後的幾個小時,即有許多的人道救援和技術的工作者加入,近40000筆的事件報告被傳送到這個海地地震的Ushahidi,之中有約4000筆的事件被標示於地圖中,圖3這個海地地震的Ushahidi。

圖3: 用來收集與報導2010年海地地震之相關災害訊息的Ushahidi
圖3: 用來收集與報導2010年海地地震之相關災害訊息的Ushahidi

(2) 2011年紐西蘭基督城地震
在2011年2月22日的紐西蘭基督城地震後24小時, 基督城復原地圖(Christchurch Recovery Map) 即利用 Ushahidi 建立起來,該網站標示了重要物資訊息,如食物、水、廁所、燃料、ATM和醫藥用品,其訊息由Twitter以#eqnz這個雜湊標籤、簡訊和電子封件來收集,這個網站由一群網站專業工程師和志工來建立與維護,如圖4所示。

圖4: 基督城復原地圖
圖4: 基督城復原地圖

(3) 2012年東日本大地震

2012年東日本大地震之後,Ushahidi被使用來交換傳遞地震災情與救援相關訊息。圖5為利用Ushahidi建立的日本復原地圖。

圖5: 日本復原地圖
圖5: 日本復原地圖

(4) 2011年美國密蘇里河洪水

MightyMoRiver 計畫是使用 Ushahidi 為 Crowdmap.com 服務的平台來追蹤2011年美國密蘇里河洪水的災害事件。

圖6: 密蘇里河洪水事件災害地圖
圖6: 密蘇里河洪水事件災害地圖

(5) 馬其頓共和國的貪腐事件報告

透明觀察計畫是使用 Ushahidi平台來追蹤馬其頓共和國的貪腐事件, PrijaviKorupcija是一個由馬其頓國際透明組織(Transparency International – Macedonia)和國際關係中心(Center for International Relations)聯合的計畫,旨在使公民可利用手機簡訊、電子郵件和twitter的雜湊標籤#korupcijaMK 來報導馬其頓貪腐事件。

圖7: 馬其頓共和國的貪腐事件地圖
圖7: 馬其頓共和國的貪腐事件地圖

群眾外包的交通時況—Google Map traffic layer

日前與友人聊天時談到Google Map的交通時況是收集 Android的智慧型手機上的資訊,當時有點驚訝,我一直以為Google Map是使用交通部的TMC(即時交通資訊廣播),經過一番調查與測試,沒錯! Google Map 上的交通時況就是Crowdsourcing,就是千千萬萬Android 用戶貢獻的,幾點提出來來大家分享:

一、Google Map Traffic 所涉及的範圍比交通部的TMC還廣

TMC在許多都會區道路上都有架設收集的點,但鄉村地區則不足,但Google Map上卻常常有資訊,舉例在草屯鎮,在交通部服務e點通 的地圖上中二高和水沙璉高速公路都有會交通路況,但草屯市區道路看不到路況資訊,在TMC的建置計畫中也沒有草屯鎮道路的資訊,但在Google Map上,有幾條道路顯示出路況。

Screen shot 2013-05-10 at 2.05.54 PM
TMC
Screen shot 2013-05-10 at 2.06.05 PM
Google Map Traffic

 

 

二、Google Map 導航的時間估算變得比較準確

以前使用Google Map 路線規劃,時間的預估和實際狀況有時候因為塞車,使得交通時間變長,曾幾何時,Google Map路線規劃也把交通狀況考慮進去,使得路線規劃的時間變得比交符合現況,或許從Google Map的blog中可以看出一底端倪。從Mashable的這篇報導中,更加讓人確信Google Map Traffic Data是使用Android用戶。

Data is gathered through third-party services and through information from Android users who have opted in to the My Location feature on Google Maps. Google would be able to tell, for instance, if there were several Android owners moving slowly on the freeway and determine that there was traffic slowing them down. The more people opting into the service in the area, the better the traffic information available will be.

 

三、Google Map Traffic會出現一些與現實路況不符的情形

根據觀察,Google Map交通時況在中研院門口附近於中午時候,常有塞車的情況,但事實是如此嗎? 想想中午的時候有許多人用“走”出去吃飯,如果Google Map交通時況是集合Android GPS訊號而轉換得到的資訊,這些被標示塞車的路段,可以合理的被懷疑是因為集合多數人”走”速度,而讓Google Map交通時況的判斷為塞車?

Screen shot 2013-05-10 at 1.41.21 PM
中午時,中研院附近的Google Map Traffic

 

Enhanced by Zemanta

[試作] WebGL在Geovisualization上應用

Google Earth是一個3D視覺化的地理空間資訊展示平台,無庸置疑的是它的提供高解析度衛星影像,且虛擬實境般的地理空間資訊瀏覽環境,令許多人愛不釋手,其實由NASA的World Wind也是一個相當不錯的3D視覺化的地理空間資訊展示平台,而且是open source。這二個平台都是獨立的平台,雖然Google Earth有整合在網頁瀏覽器中,對於一個本身就是3D視覺化的地理空間瀏覽器而言,要塞入另一個瀏覽器,總是卡卡的。所以有沒有輕量一點的、且原生於網頁技術的3D視覺化工具可以用來做地理空間資訊視覺化呢?

隨著網路技術的發展,應該會有許多工具可以用,但找到許多與WebGL相關的,所以先來看看WebGL可以做什麼事。

根據Wikipedia的介紹,WebGL (Web Graphics Library) 是一個用來顯示互動式3D和2D圖形的JavaScript API,不用plug-in就可以在網頁瀏覽器中使用。WebGL的元素(elements)可以鑲嵌於其它HTML元素,且組合成網頁中的一部份,也因為WebGL與網頁瀏覽器中GPU的標準相容,因此可以加速圖形處理能力。目前WebGL的設計和維護都是 Khronos Group 。

OpenWebGlobe 簡單地說,就是一個以WebGL做的Google Earth,可以套疊上高解析度的衛星影像、用DTM把地形撐起來、可疊上3D建物、POI和文字資訊等,功能十分完善,OpenWebGlobe是以MIT License 釋出的Open source,且提供SDK給開發者。

OpenWebGlobe
以WebGL為基礎的OpenWebGlobe

 

另外,也有相對輕量化的WebGL工具,讓網頁開發者可以用於網頁中地理空間資料的3D視覺化。WebGL Globe是Chrome的一項實驗計畫,其中有許多很Cool的demo,按照介紹就可以自已做出一個地理空間資料的3D視覺化。下圖是一個簡單的試作,利用NSAS MODIS衛星影像中所採集的地面溫度,經過一番資料的處理後,地面溫度的資料根據設定的顏色顯示於這個球上,可以旋轉、放大、縮小控制瀏覽。

WebGL Globe
以NASA MODIS地面溫度的WebGL Globe試作

WebGL Earth 是強調地圖或衛星影像的套疊,如套上BingMapOSM

WebGL Earth BingMap WebGL Earth OSM

Enhanced by Zemanta

如何安裝4store

所謂的「triplestore」也就是用來儲存的RDF的資料庫,並可以應用類似SQL的語言來查詢。現在已經有許多發展不錯的triplestore。這裡介紹一個輕簡的triplestore—4store的安裝。

1.安裝相關套件

sudo apt-get install build-essential libpcre3-dev libglib2.0-dev ncurses-dev libreadline-dev libtool libxml2-dev libxslt-dev automake git-core

2.安裝raptor

wget http://download.librdf.org/source/raptor2-2.0.0.tar.gz
tar -xvzf raptor2-2.0.0.tar.gz
cd raptor2-2.0.0

3.安裝rasqal

wget http://download.librdf.org/source/rasqal-0.9.22.tar.gz
tar -xvzf rasqal-0.9.22.tar.gz
cd rasqal-0.9.22
./configure –enable-query-languages=”sparql laqrs” && make && sudo make install

4.安裝4store

git clone git://github.com/garlik/4store.git
cd 4store
git checkout a907f3e0a3717c16dabe383d1834df6f8090b97a
./autogen.sh
./configure –enable-no-prefixes
make && sudo make install

5. 測試4store

make test