國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
資料庫內,利用 D2RQ 內的格式對應檔 (Mapping File) 設定,資料庫便可以提供 SPARQL 查詢語法的下達及本體論結果的輸出。
除了以資料庫的形式進行儲存與提供查詢使用外,也有為數眾多的資料是以 電子表格 (Spreadsheet) 作為資料發佈的格式,但是電子表格就如同資料庫一樣 具有封閉的特性,同時又因其可以利用文書處理軟體彈性的運用,在資料內容 的描述上比起資料庫又更加彈性與複雜,因此這樣結構更不容易與其他資料整 合,所以就如同資料庫的對應轉換方式,事先進行資料內容的分析,如圖 4.3中可 以分析出資料維度有 Date、Purpose 及 Residence,而計量單位則是 Thousand People,因此在整合架構下電子表格也可以利用如同 RDF123 [5]、XLWrap 的中 介軟體,將資料轉換為多維度 Data Cube 描述架構。
圖 4.3: 電子化表格對應至 Data Cube.
雖然資料透過中介軟體的對應程序,最後都轉換為一致的 Data Cube 結構,
但不同資料源在 Data Cube 內特徵元素的使用與描述上仍是自行定義的,不同資 料源彼此間仍保持其獨立的特性不需互相參照,資料源可以自行針對個別的資料 維度 (Dimension)、計量單位 (Attribute) 進行各自描述,而 Cube 特徵元素彼此間 的差異在要進行多資料源的整合查詢時,會利用存放在整合知識庫 (章節 4.2) 內 的關聯性描述來作為跨 Data Cube 的整合基礎。
4.2
整合知識庫
透過對應轉換的設計,不同來源、格式的資料利用本體論描述字彙重新定義 其資料項 (數值),利用維度 (Dimensioin) 及屬性 (Attribute) 等 Data Cube 描述字
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
彙描繪出原本資料數值的意涵,但 RDF Data Cube Vocabulary 本身沒有提供處 理跨資料來源的描述字彙,因此為了提供跨不同資料來源的整合能力,本研究擴 充了原始的描述字彙,設計出整合知識庫 (Integration Library)(圖 4.4),目的是用 來儲存與維護不同資料源所擁有的 Cube 特徵元素彼此的關聯性定義。
圖 4.4: 整合知識庫描述字彙
在本研究架構下的資料整合方式是利用查詢來完成,對單一 Data Cube 內的 資料查詢方式是利用本身的 Cube 特徵元素作為查詢條件,而當查詢的範圍擴及 不同的資料源時,原始的查詢條件很難完整涵蓋這些差異,單一範圍的查詢條件 難以完整滿足多重來源的查詢對象,因此進行整合查詢時所面對的第一個困難便 是必須修正彼此資料語意不一致的狀況,而我們是利用整合知識庫內的關聯性描 述來修正原始查詢語法的不足,這些關聯性描述可以用來擴大可能的查詢對象及 找出額外關聯性條件,因此當要進行跨不同來源的資料整合時,整合程序可以利 用擴增後的查詢條件從適當的資料對象中切割萃取出符合擴增查詢條件的資料項 (章節 4.3)。
雖然不同格式描述的資料源已經轉換為一致架構並且可以接受查詢語法的執 行,利用分散式的查詢方法,可以從不同來源的對象中萃取出適當的資料,但是 不同來資料源各自用來描述內容所使用的特徵元素如資料維度、計量單位等字彙 是依其需要獨立描述的,因此透過查詢取回的資料項仍是維持原始的資料語意,
因此最後還是必須經過適當的重整程序重建出新的 Hyper Cube(章節 4.4)。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
在整合知識庫的字彙定義中描述多維度 Data Cube 的特徵元素主要類別分別 為 gq:ExtDataSource 及 gq:DataCubeFactor,而 gq:DataCube 是 gq:ExtDataSource 的子類別,用來描述登錄進知識庫內的 Data Cube 位址資訊,而 gq:DataCubeFactor 是特徵元素的上層類別,在登錄的程序中利用查詢的方式來記錄 Data Cube 內 所包含的資料維度及計量單位資訊,Data Cube 與資料維度的關係鏈則是使用 gq:hasDimension 屬性來描述,而資料維度本身則用類別 gq:Dimension 描述,另 外 Data Cube 與計量單位的關係屬性是用 gq:hasAttribute 來描述,計量單位本身 則是用類別 gq:Attribute 描述。
圖 4.5: 水平階層關係鏈
圖 4.6: 垂直階層關係鏈
為了進行跨資料對象整合的需要,整合知識庫內除了描述資料對象與 Cube 特徵元素的關聯性外,不同 Cube 間的資料維度及計量單位彼此的關聯性也必須 完整描述,而這些跨 Data Cube 的關連性描述是整合程序中進行查詢語法改寫
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
與資料重整的基礎資訊,資料維度彼此間可能存在有階層關聯性 (Level Relation 及子類別關聯性 (SubClass),在階層關聯性中可以區分為垂直及水平的關係鏈,
其中使用 gq:hasSameAs 來描述資料維度間的水平關係鏈,水平關係鏈是指不 同資料維度彼此具有相同的意義但在不同的資料對象中使用不同的字彙來描述 (圖 4.5),另外使用 gq:hasPartOf 來描述不同資料維度上下層的垂直階層包含關 係 (圖 4.6),下層資料維度的資料進行適當的數值運算 (如: 加總、平均等) 後即成 為上層資料維度的資料,從單一 Data Cube 的角度來看,垂直階層的維度關係鏈 定義了描述範圍的細緻程度,傳統上透過垂直階層關係可以將單一 Data Cube 內 的資料進行捲起 (Roll-Up) 及切片 (Slice) 的操作,而同樣的關聯性描述運用在橫 跨不同的 Data Cube 時,利用維度階層描述則可以將存放在不同 Data Cube 內 的同一階層資料切割出來合併成上層資料維度。另外,在子類別的關係鏈的部分 利用 rdfs:subClassOf 來描述,有別於 gq:hasPartOf 的垂直階層包含關係鏈,子 類別主要是定義了上層維度類別的細部分類方式,所有子類別維度的集合進行 彙總後並不一定能夠取代上層維度,而是要取決於子類別分類的方式是否夠完 整,而在整合知識庫中完整的包含關係是使用 gq:hasPartOf 來描述而不是使用 rdfs:subClassOf,在進行整合查詢時,子類別的關聯定義主要是運用在將不同子 類別的內容可以同時在查詢結果中並排顯示,這類型的產出可以做為不同類別的 比較參考。
圖 4.7: 子類別關係鏈
除此之外在整合知識庫內額外設計了不屬於描述 Cube 元素關係鏈的分類用 類別 gq:DimensionCategory,主要是用來將登錄進知識庫內的資料維度做適當的 分類,並且利用 gq:levelIndex 來描述該維度在所屬分類中的階層深度,透過這 些額外的資訊在進行整合查詢時,能夠容易地提供分類顯示的功能,便於最後讓
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
使用者選取適當的資料維度作為整合查詢的條件。除了資料維度外,計量單位 (Attribute) 對統計資料也是很重要的特徵元素之一,計量單位在統計資料內定義 了數值的表達方式,在整合知識庫內是使用類別 gq:Attribute 來描述計量單位,通 常單一的 Data Cube 內的資料數值會使用一致的計量單位來描述統計數值,但同 樣維度的資料在不同 Cube 內描述時,則可能會以不同的計量單位來表示,因此 跨不同 Data Cube 所用來描述數值的計量單位彼此可能存在數值換算的關聯性,
因此要整合跨資料源的資料項時,計量單位的換算方式也必須被考量進來,在知 識庫內是利用 gq:exchangeRelation 來定義計量單位的換算關係鏈,在其下則是 依不同計量單位所需要的換算關聯性定義出實際運用的子類別,如千分之一的換 算關聯性描述 gq:toThousandth(圖 4.8),在個別換算關聯性中實際的換算比率則 使用 gq:rate 來定義。
圖 4.8: 計量單位換算關聯性
從整合知識庫範例 (圖 4.9) 中可以觀察出,其中包含了兩個資料源分別為 DataCube 1 及 DataCube 2,在 DataCube 1 內定義兩個資料維度分別為產業 別 (Manufacturing) 及年度 (2010),而使用的計量單位為百分比 (Percentage),
DataCube 2 的資料維度則定義了產業別、日期 (2010-01、2010-02 等),計量單 位則為新台幣千元 (Thousand-of-NTD),因此可以將個別獨立的資料維度「年 度」及「日期」透過關係鏈 gq:hasPartOf 串聯起來,而單位「千元」則可以透過 gq:toThousandth(千分之一) 建立與「百萬元」的換算關係,利用這些關係描述將 有機會可以將原始的資料轉換為另一個面向,如 DataCube 2 可以將原本以「日 期」表示的資料轉換為以「年度」表示,而數值單位也有機會轉換為以百萬元為 計量單位。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
圖 4.9: 整合知識庫範例