999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關(guān)系型數(shù)據(jù)的知識抽取和RDF轉(zhuǎn)換框架及實現(xiàn)

2022-09-06 11:09:16張永威唐新余
計算機工程與應(yīng)用 2022年17期
關(guān)鍵詞:數(shù)據(jù)庫模型

張永威,張 巖,唐新余,王 蒙

1.中國科學(xué)院 新疆理化技術(shù)研究所,烏魯木齊 830011

2.中國科學(xué)院大學(xué),北京 100049

3.中國科學(xué)院 新疆民族語音語言信息處理重點實驗室,烏魯木齊 830011

4.江蘇中科西北星信息科技有限公司,江蘇 無錫 214135

近年來,知識圖譜作為一種高效的數(shù)據(jù)組織方式,在各行各業(yè)的眾多任務(wù)中都得到了廣泛的應(yīng)用。知識圖譜本質(zhì)上是一種大規(guī)模語義網(wǎng)絡(luò),即一種用互聯(lián)節(jié)點和弧表示知識的一個結(jié)構(gòu)[1]。知識圖譜中的節(jié)點可以代表概念、屬性、事件或者實體;弧表示節(jié)點之間的關(guān)系[2]。知識圖譜以結(jié)構(gòu)化三元組的形式存儲現(xiàn)實世界中的實體以及實體之間的關(guān)系,表示為G=(E,R,S),其中E表示實體集合,R表示關(guān)系集合,S表示知識圖譜中三元組的集合[3]。RDF(resource description framework)作為一種現(xiàn)實世界中資源及資源關(guān)系的描述框架和數(shù)據(jù)模型,是知識圖譜中非常重要的一種知識表示方式[4],在知識圖譜的構(gòu)建和應(yīng)用被廣泛使用。

知識圖譜按照領(lǐng)域劃分,一般可分為通用知識圖譜和行業(yè)領(lǐng)域知識圖譜。通用知識圖譜包含了大量現(xiàn)實世界中的常識性知識,涵蓋范圍廣、規(guī)模巨大,如FreeBase[5]、Yago[6]、DBpedia[7],已經(jīng)被廣泛應(yīng)用于信息搜索、自動問答等場景。行業(yè)領(lǐng)域知識圖譜又稱為垂直知識圖譜,面向特定的領(lǐng)域,如面向電影領(lǐng)域的IMDB[8]、生物醫(yī)學(xué)領(lǐng)域的DrugBank[9]、學(xué)術(shù)領(lǐng)域的Acemap[10]等、一般由各領(lǐng)域中的企業(yè)進行構(gòu)建[11]。在行業(yè)領(lǐng)域中,關(guān)系數(shù)據(jù)庫由于其模型簡單、關(guān)系理論完備、接口易用等特點,已經(jīng)成為各行業(yè)中廣泛使用的數(shù)據(jù)存儲和管理方案。因此結(jié)合本體模型從結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)中進行知識抽取并轉(zhuǎn)換成RDF三元組是構(gòu)建行業(yè)知識圖譜的關(guān)鍵步驟。

目前把關(guān)系型數(shù)據(jù)轉(zhuǎn)換成RDF數(shù)據(jù)常用的方案是使 用W3C 推出 的DM[12(]direct mapping)和R2RML[13](RDB to RDF mapping language),手工編輯從關(guān)系數(shù)據(jù)到RDF 數(shù)據(jù)的映射,再由轉(zhuǎn)換工具執(zhí)行映射完成數(shù)據(jù)轉(zhuǎn)換[14]。另外也有部分映射工具采用私有的RDB2RDF(relational database to RDF)映射語言實現(xiàn)關(guān)系數(shù)據(jù)到RDF數(shù)據(jù)的映射和轉(zhuǎn)換。目前的方案不僅需要掌握和使用各種映射語言和映射工具,還要對本體模型定義的知識體系結(jié)構(gòu)和領(lǐng)域中的業(yè)務(wù)數(shù)據(jù)庫的模式結(jié)構(gòu)非常熟悉。另外領(lǐng)域知識圖譜雖然沒有通用知識圖譜的覆蓋范圍廣,但是也具有相當(dāng)規(guī)模的數(shù)據(jù)量。在進行知識抽取和數(shù)據(jù)轉(zhuǎn)換時,需要根據(jù)本體模型和關(guān)系數(shù)據(jù)進行大量的查詢語句和映射的編輯和維護工作,不僅費時費力而且還容易出錯。本文提出一套直接由關(guān)系數(shù)據(jù)根據(jù)本體模型進行抽取轉(zhuǎn)換成RDF 的框架,簡化了映射編輯和維護等工作,提供了更簡單易用的關(guān)系型數(shù)據(jù)的知識抽取和數(shù)據(jù)轉(zhuǎn)換的解決方案。

1 相關(guān)工作

目前對關(guān)系型數(shù)據(jù)進行知識抽取并轉(zhuǎn)換成RDF數(shù)據(jù)的方案一般是先編寫從關(guān)系型數(shù)據(jù)到RDF數(shù)據(jù)的映射,然后借助的RDB2RDF工具執(zhí)行映射完成數(shù)據(jù)抽取和轉(zhuǎn)換。在關(guān)系數(shù)據(jù)與RDF 數(shù)據(jù)的映射方面,W3C 制定了兩種從關(guān)系數(shù)據(jù)到RDF 數(shù)據(jù)的映射語言,DM 和R2RML。Direct mapping 定義了從關(guān)系數(shù)據(jù)庫到RDF三元組的簡單變換,這種變換把關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)模式和結(jié)構(gòu)直接反映在RDF圖中[12]。Direct mapping將關(guān)系數(shù)據(jù)庫直接映射為RDF 圖,只是對原有關(guān)系數(shù)據(jù)直接轉(zhuǎn)換[15],無法根據(jù)自定義的本體模型對數(shù)據(jù)進行抽取和組織后轉(zhuǎn)換成RDF三元組。

為了支持自定義的本體概念模型和詞匯,W3C 推出了R2RML 映射語言,其映射本身就是Turtle 形式的RDF圖[13]。每一個R2RML映射都對應(yīng)一個數(shù)據(jù)庫模式和目標詞匯。R2RML映射的輸入是符合該模式的關(guān)系數(shù)據(jù),輸出是使用目標詞匯中的謂詞和類型的RDF 數(shù)據(jù)。使用R2RML 可以在關(guān)系數(shù)據(jù)庫上自定義視圖,一個R2RML 映射文檔里包含多個R2RML 映射,每個映射都需要配置數(shù)據(jù)檢索的邏輯表。邏輯表可以是關(guān)系數(shù)據(jù)庫中的一個基礎(chǔ)表或一個視圖,也可以是對關(guān)系數(shù)據(jù)庫的一個有效的SQL 查詢。每個邏輯表都使用三元組映射表映射到RDF,三元組映射中需要配置將邏輯表中每一行映射到多個RDF三元組的規(guī)則。該規(guī)則由主語映射和謂詞-賓語映射兩部分組成。通過將主語應(yīng)和謂詞-賓語映射組合,應(yīng)用于每個邏輯表行實現(xiàn)關(guān)系數(shù)據(jù)到RDF數(shù)據(jù)的轉(zhuǎn)換。R2RML映射需要根據(jù)自定義的詞匯和關(guān)系數(shù)據(jù)庫手動編輯大量的映射規(guī)則,包括本體模型中的類與表或邏輯視圖的對應(yīng)、屬性與字段的對應(yīng)、數(shù)據(jù)類型等。也需要基于本體模型和關(guān)系數(shù)據(jù)庫編寫SQL 語句對數(shù)據(jù)進行抽取和組織。因此R2RML 語句編碼的工作量和R2RML 映射的創(chuàng)建和維護是使用R2RML的主要障礙。

在映射執(zhí)行工具方面,D2RQ[16]是出現(xiàn)在DM 和R2RML 之前的RDB2RDF 開源工具平臺。它包括D2R Server 和一種私有的RDB2RDF 映射語言D2Rq。D2RQ 在2012 年發(fā)布的版本開始支持direct mapping,但是不支持R2RML[17]。Virtuoso[18]利用自有的“元數(shù)據(jù)方案映射語言”,來實現(xiàn)RDB 數(shù)據(jù)與RDF 數(shù)據(jù)的映射,生成關(guān)聯(lián)數(shù)據(jù)視圖(linked data views),得到RDF 數(shù)據(jù),這種功能與R2RML 類似,是R2RML 誕生之前私有映射語言的一種[19]。W3C 推出R2RML 后,Virtuoso 也通過R2RML VAD插件的方式通過將R2RML轉(zhuǎn)化成它自己的關(guān)聯(lián)數(shù)據(jù)視圖的語法來實現(xiàn)對R2RML 的支持。Ontop[20]依賴于R2RML映射實現(xiàn),通過將SPARQL查詢轉(zhuǎn)換為有關(guān)系數(shù)據(jù)源執(zhí)行的SQL 查詢。Ontop 可以提供一個基于關(guān)系數(shù)據(jù)的虛擬知識圖譜系統(tǒng),以虛擬的RDF 圖的形式訪問關(guān)系數(shù)據(jù)庫中的內(nèi)容。此外Ontop也可以基于R2RML映射把關(guān)系數(shù)據(jù)轉(zhuǎn)換成RDF數(shù)據(jù)。

現(xiàn)有的工作除了提供不同的映射工具和映射語言外,還有一些工作集中在提高R2RML 映射語言的編輯效率上。文獻[21]提出了一種快速編輯R2RML映射的編輯器,目的在于提高手工編輯映射時的效率,但是仍然需要專業(yè)人員大量參與。文獻[22]和[23]提出了根據(jù)關(guān)系數(shù)據(jù)生成R2RML 映射的方法,但還是需要后續(xù)對映射進行維護,沒有很好地解決從關(guān)系數(shù)據(jù)中進行知識抽取生成RDF數(shù)據(jù)的問題。

針對這些問題本文提出了一種直接根據(jù)本體模型和關(guān)系數(shù)據(jù)庫進行知識抽取并轉(zhuǎn)換成RDF 數(shù)據(jù)的框架,省去了R2RML映射的編輯、執(zhí)行和維護等工作。直接以可視化的方式指定關(guān)系數(shù)據(jù)和本體模型的對應(yīng)關(guān)系,根據(jù)選取的字段自動生成SQL語句,在數(shù)據(jù)庫中進行查詢并取出相應(yīng)的數(shù)據(jù)后,根據(jù)對應(yīng)關(guān)系,把關(guān)系數(shù)據(jù)自動轉(zhuǎn)換成RDF 三元組。與之前的方法相比,本文提出的框架不需要大量的映射編輯和維護工作,可以對本體模型和關(guān)系數(shù)據(jù)庫進行解析,并自動生成本體模型和數(shù)據(jù)庫之間的候選映射,提供了更加自動化的解決方案。基于本文的框架實現(xiàn)的知識抽取系統(tǒng),能夠方便地根據(jù)本體模型的目標詞匯快速地生成RDF 三元組,完成關(guān)系型數(shù)據(jù)的知識抽取和數(shù)據(jù)轉(zhuǎn)換。

2 系統(tǒng)框架設(shè)計及實現(xiàn)

本章提出一套根據(jù)自定義本體模型對關(guān)系數(shù)據(jù)進行抽取并轉(zhuǎn)換成RDF數(shù)據(jù)的框架。如圖1所示,首先對本體模型進行解析,解析出本體知識體系中的類別屬性等詞匯。接著對關(guān)系數(shù)據(jù)庫的模式結(jié)構(gòu)進行解析,獲取其表、字段、主外鍵等信息。解析完成后以可視化的方式把本體模型和數(shù)據(jù)庫的解析結(jié)果展示出來。然后根據(jù)數(shù)據(jù)庫的解析結(jié)果生成中間本體,并且根據(jù)語言學(xué)特征和結(jié)構(gòu)特征計算中間本體和自定義本體中概念和屬性的相似度,借助中間本體自動獲取數(shù)據(jù)庫和自定義本體的映射關(guān)系。最后根據(jù)每個類的屬性和映射關(guān)系,生成單表或多表查詢的SQL語句,在數(shù)據(jù)庫中進行查詢并取出相應(yīng)的數(shù)據(jù)后,根據(jù)對應(yīng)關(guān)系,自動轉(zhuǎn)換成RDF三元組。

圖1 關(guān)系數(shù)據(jù)知識抽取框架Fig.1 Relational data knowledge extraction framework

關(guān)系數(shù)據(jù)知識抽取和數(shù)據(jù)轉(zhuǎn)換框架的具體描述如下:

(1)設(shè)置數(shù)據(jù)源DS 和本體源文件ontology,并進行解析。

table∈DS,column∈table

(class,data property,object property)∈ontology

(2)可視化解析結(jié)果,創(chuàng)建中間本體,自動生成關(guān)系數(shù)據(jù)和自定義本體模型之間的候選映射關(guān)系automaps。

automaps={(c1,c2,max_sim)}

其中c1 ∈ontology;c2 ∈DS,分別表示本體和數(shù)據(jù)中的概念,max_sim表示兩個概念之間的最大相似度。

(3)修正automap,并自動生成SQL 語句,并獲取的數(shù)據(jù)data。

sql=generate_sq(lautomap)

data=get_data(DS,sql)

(4)RDF三元組前綴prefix url和主語模板template的設(shè)置。

template={column1}@{column2}

(5)主語(subject)構(gòu)建。

subject=prefix url+value(column1)@value(column2)

根據(jù)mapping的(logic table:class)構(gòu)建出主語類型的三元組triple=(subject,rdf:type,class)

(6)謂詞(predicate)構(gòu)建

數(shù)據(jù)屬性謂詞構(gòu)建:

predicate=prefix url+data property

對象屬性謂詞構(gòu)建:

predicate=prefix url+object property其中data property,object property∈ontology。

(7)賓語(object)構(gòu)建:

賓語是數(shù)據(jù)屬性值時:

get data type ∈{int,string,date,…}

value(data property)=value(column),其中(column:property)∈mapping

根據(jù)mapping構(gòu)建三元組:

triple=(subject,predicate,value(data property))

賓語是對象屬性值時:

get data type ∈class

object property=prefix+template

由于對象屬性也是實體所以構(gòu)建對象屬性類型三元組:

triple=(object property,rdf:type,class)

構(gòu)建主語的對象屬性三元組:

triple=(subject,predicate,object property)

以下是根據(jù)框架描述進行的具體實現(xiàn)。

2.1 本體模型解析

本體模型的設(shè)計定義了知識的類別體系,每個類別下所屬的概念和實體,某類概念和實體所具有的屬性,以及概念之間,實體之間的語義關(guān)系。同時也包含定義在這個本體上的一些推理規(guī)則。根據(jù)本體模型中的知識體系把關(guān)系型數(shù)據(jù)轉(zhuǎn)換成RDF 數(shù)據(jù),即使用本體模型中自定義的詞匯和關(guān)系等,把數(shù)據(jù)歸屬到本體模型定義的知識框架下。因此首先需要對本體模型解析,獲取其類別屬性等詞匯。本文使用Jena[24]對本體模型進行解析,Jena 是惠普實驗室語義Web 研究項目的開放資源,是用于創(chuàng)建語義Web 應(yīng)用系統(tǒng)的Java 框架結(jié)構(gòu),它為RDF、RDFS、OWL 提供了一個程序開發(fā)環(huán)境。另外為了方便建模和展示,使用經(jīng)典建模工具Protégé[25]進行本體模型的構(gòu)建。Protégé提供了本體概念類、關(guān)系、屬性和實例的構(gòu)建,并且屏蔽了具體的本體描述語言,用戶只需在概念層次上進行領(lǐng)域本體模型的構(gòu)建。Protégé 可從http://protege.standford.end/下載,具體用法可參考文獻[26]。

本文主要使用Jena 的Ontology 子系統(tǒng)和RDF 子系統(tǒng)。對于一個本體模型首先獲取本體模型中所有的類,然后再對每一個類進行解析。解析出當(dāng)前類與其他類的關(guān)系。之后,對每個類的屬性進行解析。對于類的數(shù)據(jù)屬性(data property),獲取到其屬性名及其定義域和值域。對于類的對象屬性(object property),由于其在本體模型中表示概念類之間的關(guān)系,其值域和定義域都是類或資源實體(resource)。所以在解析到其屬性名后,還要獲取對象屬性與其定義域類和值域類的關(guān)系。

在完成解析后,把本體模型中的所有的類,對象屬性和數(shù)據(jù)屬性都當(dāng)作節(jié)點,按照對象屬性和數(shù)據(jù)屬性的值域和定義域把屬性節(jié)點和類節(jié)點連接起來。如圖2(c)所示,形成一個可以表示本體模型結(jié)構(gòu)的圖。不同于Protégé[25]建模工具中對本體模型的展示,如圖2(a)和(b)所示Protégé中把概念類作為節(jié)點,屬性作為邊把本體模型展示出來。本文對本體模型的可視化展示方式,除了能表示出概念類之間的關(guān)系,還展示了概念類與屬性的所屬關(guān)系。更方便在設(shè)置關(guān)系數(shù)據(jù)和本體模型的對應(yīng)關(guān)系時對類和屬性等相關(guān)概念進行選擇。

圖2 解析結(jié)果展示圖Fig.2 Parse result display diagram

2.2 數(shù)據(jù)庫模式結(jié)構(gòu)解析

關(guān)系型數(shù)據(jù)的知識抽取需要根據(jù)本體模型定義的知識框架,在數(shù)據(jù)庫中選取字段數(shù)據(jù)轉(zhuǎn)換成(subject,predicate,object)三元組。因此在對數(shù)據(jù)進行知識抽取并轉(zhuǎn)換成RDF 之前,需要解析出整個關(guān)系數(shù)據(jù)庫的模式結(jié)構(gòu)。包括數(shù)據(jù)庫中所有的表、每個表的表結(jié)構(gòu)、表中所含有的字段、字段的數(shù)據(jù)類型、字段之間的關(guān)系、表的主外鍵和引用關(guān)系等。

本文使用DataBaseMetaData 接口獲取關(guān)系數(shù)據(jù)庫的元數(shù)據(jù),解析出整個數(shù)據(jù)庫中所有的表、字段、字段的數(shù)據(jù)類型和主外鍵、引用關(guān)系等信息。此外,為了在知識抽取對整個數(shù)據(jù)庫的模式結(jié)構(gòu)有更加直觀的認識,更方便選擇數(shù)據(jù)字段和本體詞匯的對應(yīng)關(guān)系。對數(shù)據(jù)庫進行解析后,以可視化的方式對數(shù)據(jù)庫的模式結(jié)構(gòu)進行展示。

如圖2(d),把數(shù)據(jù)庫中每一個表和每一個字段都當(dāng)作節(jié)點,連接節(jié)點的邊表示字段節(jié)點和表節(jié)點的所屬關(guān)系。其中外鍵節(jié)點,同時連接引用表和被引用表,表示表之間的引用關(guān)系。

2.3 關(guān)系數(shù)據(jù)到本體模型的對應(yīng)關(guān)系

2.3.1 本體模型到關(guān)系數(shù)據(jù)的自動映射

完成本體模型和數(shù)據(jù)庫模式結(jié)構(gòu)的解析之后,接下來要建立從關(guān)系數(shù)據(jù)到本體映射,即關(guān)系數(shù)據(jù)中的表和字段與本體模型中類和屬性之間的對應(yīng)關(guān)系。盡管本文提供了可視化選擇對應(yīng)關(guān)系的方式替換了傳統(tǒng)映射語句的編輯。但是為了進一步提高框架的自動化程度,設(shè)計了一種根據(jù)關(guān)系數(shù)據(jù)庫和自定義本體模型自動生成候選映射的方法。

如圖3 所示,首先獲取數(shù)據(jù)庫模式的解析結(jié)果,利用解析后的表和字段自動建立一個和數(shù)據(jù)庫一一對應(yīng)的中間本體模型。然后對中間本體和自定義本體進行匹配和對齊,基于語言學(xué)信息和結(jié)構(gòu)信息計算兩個本體之間各種概念的相似度,并根據(jù)相似度獲取候選映射關(guān)系。由于中間本體中的概念和數(shù)據(jù)庫模式中的元素是一一對應(yīng)的,所以自定義本體和中間本體的對應(yīng)關(guān)系,也即自定義本體和數(shù)據(jù)庫之間的對應(yīng)關(guān)系。

圖3 自動建立對應(yīng)關(guān)系的流程圖Fig.3 Automatically establishing corresponding relationship

1)自動創(chuàng)建中間本體

基于數(shù)據(jù)庫模式結(jié)構(gòu)的解析結(jié)果,采用如表1所示規(guī)則建立一個中間本體。

表1 數(shù)據(jù)庫與中間本體對應(yīng)規(guī)則Table 1 Correspondence between database and middle ontology

采用以上方式,保證中間本體的詞匯表和術(shù)語名稱與關(guān)系數(shù)據(jù)庫中的表名和字段名保持一致,這樣就得到了一個和數(shù)據(jù)庫一一對應(yīng)的中間本體模型。在中間本體中,數(shù)據(jù)庫中的表是本體中的類,表中的字段是類的數(shù)據(jù)屬性和對象屬性,字段所屬的表及字段的數(shù)據(jù)類型是屬性的值域和定義域。

接下來用中間本體和根據(jù)數(shù)據(jù)庫自定義的本體進行匹配,獲取到兩個本體中概念的映射關(guān)系。由于中間本體和數(shù)據(jù)庫是一一對應(yīng)的,因此自定義本體和中間本體之間的映射,即自定義本體和數(shù)據(jù)庫之間的映射。

2)本體中類和屬性的相似度計算

不同于傳統(tǒng)的本體對齊和本體匹配任務(wù)需要考慮大規(guī)模異構(gòu)之間的匹配和對齊關(guān)系。因為自定義本體是由建模人員根據(jù)數(shù)據(jù)庫進行重新組織篩選而建立的,而中間本體又是整個數(shù)據(jù)庫在本體模型中的直接反映,包含了數(shù)據(jù)庫中的所有模式。所以自定義本體和中間本體本身就具有一定程度上的相似,這種相似表現(xiàn)在兩個方面,一是語言特征上,即兩個本體中概念標簽字符和描述的相似。二是表現(xiàn)在本體的結(jié)構(gòu)特征上,在本體模型所表示的RDF 樹上,自定義本體往往是中間本體的子結(jié)構(gòu)。因此基于這兩個特性來計算自定義本體和中間本體里各種概念的相似度,再根據(jù)相似度來確定匹配和映射關(guān)系,最終得到數(shù)據(jù)庫和自定義本體之間的候選映射。

(1)基于語言學(xué)特征

基于語言學(xué)特征采用編輯距離計算兩個本體中概念的相似度時,首先自定義本體和中間本體進行預(yù)處理,去掉類和屬性的命名空間前綴,只保留類名和屬性名。在計算相似度之前,基于外部詞典WordNet對本體中的類和屬性進行同義詞替換。對于類,替換后基于編輯距離計算相似度,對于屬性,組合替換后的屬性名和定義域計算相似度。形式化描述如下:

①對于?class,property∈customer ontology∪middle ontology,獲取其同義詞集合并按字典序排序。

synonym set(word)=WordNet.synset(word)其中synonym set(word)[1]表示取同義詞集合中的第一個元素。

②對于類的標簽,用其同義詞集合里的第一個元素進行替換。

③對于屬性的標簽,首先用該屬性的同義詞集合里的第一個元素對其進行替換。然后拼接屬性名,及其值域和定義域得到一個新的字符串。

④最后基于編輯距離計算自定義本體和中間本體中各種概念屬性的相似度。

⑤根據(jù)上述計算結(jié)果獲得兩個本體中類的相似度矩陣:class similarity matrix,和屬性的相似度矩陣:property similarity matrix。根據(jù)概念和屬性的最大相似度獲取候選映射集合:map{(c1,c2,max_sim)}。

(2)基于結(jié)構(gòu)特征

基于本體的結(jié)構(gòu)特征進行概念的相似度計算時,考慮當(dāng)前概念節(jié)點在本體概念所表示的RDF樹上的父節(jié)點,子節(jié)點和兄弟節(jié)點的相似關(guān)系來確定當(dāng)前節(jié)點的相似關(guān)系。另外在中間本體和自定義本體中,具有對應(yīng)關(guān)系的類的子節(jié)點的數(shù)目不一定相同,具有對應(yīng)關(guān)系的屬性的兄弟節(jié)點也不一定相同。因此在中間本體和自定義本體中,取屬性數(shù)目較小的一方作為個數(shù)依據(jù),同時從另一個本體取相同個數(shù)且相似度高屬性節(jié)點進行計算。

①對于類的結(jié)構(gòu)相似:

其中,c1∈customer ontology,c1.property num表示類c1的屬性節(jié)點個數(shù),c2∈middle ontology,c2.property num表示類c2的屬性節(jié)點個數(shù)。

②根據(jù)上一步得到屬性相似度矩陣,計算類節(jié)點的前k個相似度最高的屬性。

其中property similarity matrix表示屬性相似度矩陣。

③對于屬性的結(jié)構(gòu)相似:

其中,p1.brother num表示屬性p1 的兄弟節(jié)點個數(shù),其中p2∈customer ontology,p2.property num表示類c2的屬性節(jié)點個數(shù),其中p2∈middle ontology。

④根據(jù)屬性相似度矩陣,計算當(dāng)前節(jié)點的前k個相似度最高的兄弟節(jié)點;根據(jù)類相似度矩陣計算當(dāng)前節(jié)點的父類相似度。

其中,p1.father表示p1 的父節(jié)點,p2.father表示p2的父節(jié)點。

⑤結(jié)合父類和子類計算最終的相似度。

最后根據(jù)實驗效果,采取如下的方式綜合基于語言特征計算的相似度sim1和基于結(jié)構(gòu)特征計算的相似度sim2。

sim=max(sim1,sim2)

2.3.2 三元組的創(chuàng)建

RDF 數(shù)據(jù)表示為(S,P,O)形式的主謂賓三元組,把關(guān)系型數(shù)據(jù)進行知識抽取轉(zhuǎn)換成RDF 數(shù)據(jù)時,要根據(jù)本體模型中定義的詞匯對關(guān)系數(shù)據(jù)中的字段進行篩選、抽取、組織成(主語,謂詞,賓語)的形式。

(1)主語

RDF三元組的主語是一個資源實體,由一個統(tǒng)一資源標識符URI(uniform resource identifier)表示。在RDF 中表示主語資源的URI 一般是由命名空間和資源實體的名稱或一些其他標識組成。比如一門課程實體的可以表示為:

其中,“http://www.xbstar.com/ontology/pension#”是命名空間,“Java”是課程名,“CS102”是課程代碼,課程名和課程代碼存儲在數(shù)據(jù)庫中。在根據(jù)關(guān)系數(shù)據(jù)創(chuàng)建主語實體的URI 時,本文采用本體模型中定義的命名空間,命名空間后面的標識符根據(jù)由自定義模板配置進行生成,模板是由關(guān)系數(shù)據(jù)庫中的字段和一些字符組成,如表2所示。

表2 主語資源實體URI配置Table 2 Subject resource entity URI configuration

另外,對于知識圖譜中的每一個資源實體,都要歸屬到本體模型所定義的概念類別下。所以在每個主語資源實體的URI生成后,還有根據(jù)本體模型中定義的概念指定其所屬的類別。當(dāng)一個主語映射完成后會生成如下的三元組:

S:

P:

O:

(2)謂詞

在RDF 三元組(S,P,O)中,謂詞P表示主語S和賓語O之間的關(guān)系,或者表示主語S具有屬性P且其取值為O。謂詞在知識圖譜中表示關(guān)系,關(guān)系可以連接兩個實體資源,表示兩個資源之間的關(guān)系。也可以連接實體資源和數(shù)據(jù)值,表示實體資源的屬性值。

謂詞在本體模型中進行定義,表示為本體模型中概念之間的關(guān)系,當(dāng)使用本體模型規(guī)定的知識體系填充RDF 數(shù)據(jù)時,謂詞就表示為概念下的實體之間的關(guān)系。完成主語實體的創(chuàng)建后,要根據(jù)本體模型中定義的謂詞詞匯,為主語連接資源或數(shù)據(jù)。本文是根據(jù)本體模型解析的結(jié)果,獲取連接類與屬性值的屬性名,然后把謂詞屬性名和屬性值在關(guān)系表中對應(yīng)的字段一一映射起來。

(3)賓語

三元組的賓語可以看作是主語實體的屬性值,包括數(shù)據(jù)屬性(data property)和對象屬性(object property)兩種類型。其中數(shù)據(jù)屬性表示賓語是一個數(shù)據(jù)值,表示實體和數(shù)據(jù)值之間的關(guān)系,對象屬性表示賓語是一個資源實體,描述的是兩個實體之間的關(guān)系,在進行映射時,對象屬性一般是關(guān)系表中的外鍵。

對于數(shù)據(jù)屬性,由于其屬性值也就是(S,P,O)中的賓語是一個數(shù)值,從數(shù)據(jù)庫中取出對應(yīng)的字段和屬性進行映射即可,如:

S:

P:

O:“張三”

對于對象屬性,在(S,P,O)三元組中其主語和賓語都是實體資源。因此在進行對象屬性的映射時,用謂詞把兩個實體連接之前,需要先創(chuàng)建賓語實體,包括生成賓語實體的URI,并把其歸類的所屬的類別下。

S:

P:

O:.

S:

P:

O:

為了定義和保存數(shù)據(jù)庫到本體模型的對應(yīng)關(guān)系,定義了如下的數(shù)據(jù)結(jié)構(gòu)對用戶選擇的映射進行存儲。其中對于每一個類,對應(yīng)關(guān)系是一個集合,集合中包含映射的元素,每個元素都有類名、表名、字段名稱和對應(yīng)的謂詞名稱和數(shù)據(jù)類型,字段所屬的表。還包括主語的模板,以及當(dāng)前字段是不是外鍵類型,為每個外鍵類型定義包含主表名稱、主列的名稱、引用表的名稱、引用列的名稱的數(shù)據(jù)結(jié)構(gòu)。

2.4 SQL語句生成與數(shù)據(jù)查詢

在確定字段和屬性的對應(yīng)關(guān)系之后,根據(jù)選取的字段和涉及到的表生成SQL語句,并在數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù)。對于同一個類的屬性,對應(yīng)的字段可能來自同一個表或來自多個表。當(dāng)一個類別的屬性對應(yīng)的字段都屬于同一個表時,從選擇的對應(yīng)關(guān)系中獲取字段名稱和其所屬的表,組合成SQL語句,在數(shù)據(jù)庫中進行查詢獲得相應(yīng)的數(shù)據(jù)即可。

當(dāng)一個類的屬性對應(yīng)多個表的字段時,選擇的字段關(guān)系會涉及多個表,一般在數(shù)據(jù)庫中進行連接查詢或者需要多個連接條件才能獲取查詢結(jié)果。這種情況下根據(jù)選取的字段生成的SQL語句,需要獲取連接查詢中所有的連接條件。本文采用的方法是根據(jù)關(guān)系數(shù)據(jù)庫解析的結(jié)果,把表和字段當(dāng)作節(jié)點,字段和表的所屬關(guān)系當(dāng)作邊,外鍵字段引用關(guān)系連接兩個表節(jié)點,由此生成一個無向圖。需要進行多表連接查詢時,根據(jù)選擇的字段在這個無向圖上尋找從起始表節(jié)點到終結(jié)點的一條路徑,然后從這條路徑上的表節(jié)點和字段節(jié)點獲取連接查詢時的條件信息,并生成SQL語句。

以學(xué)生表、選課情況表和課程表為例,在以RDF三元組的形式表示學(xué)生選擇的課程時,就要涉及到在學(xué)生表、選課情況表和課程表這三個表之間進行查詢。首先通過學(xué)生表和選課情況表,找到學(xué)生選擇課程的課程ID,然后再通過選課情況表和課程表,找到課程ID對應(yīng)的課程名。這時就需要在圖中的學(xué)生節(jié)點和課程節(jié)點之間找到一條通路,通路上所經(jīng)過的點就是在進行查詢時所需要的連接條件。首先把數(shù)據(jù)庫模式結(jié)構(gòu)建成一個無向圖,如圖4所示,然后以學(xué)生節(jié)點作為起點,課程節(jié)點作為終點尋找一條通路。尋找路徑的同時,記錄下路徑上經(jīng)過的所有節(jié)點的信息。由于路徑上的節(jié)點除了表節(jié)點,所有的字段節(jié)點都是外鍵字段,所以使用外鍵類型的數(shù)據(jù)結(jié)構(gòu),存儲外鍵的主表和引用表等相關(guān)信息。獲取這條路徑上的信息后,根據(jù)路徑信息設(shè)置生成SQL語句,并設(shè)置連接查詢的查詢條件。

圖4 由關(guān)系數(shù)據(jù)庫生成的無向圖Fig.4 Undirected graph generated by relational database

2.5 關(guān)系數(shù)據(jù)到RDF數(shù)據(jù)的轉(zhuǎn)換

首先獲取到2.3節(jié)獲取到的數(shù)據(jù)庫和本體之間的映射關(guān)系,再根據(jù)2.4 節(jié)由字段、表、外鍵引用關(guān)系等信息生成的SQL 語句,在數(shù)據(jù)庫中進行查詢獲取相應(yīng)的數(shù)據(jù)。根據(jù)主語模板和模板中對應(yīng)的關(guān)系表中的字段數(shù)據(jù),創(chuàng)建一個主語資源實體,并且根據(jù)指定的類別名把主語實體歸類到對應(yīng)的類別概念下,創(chuàng)建一個(主語實體,類型,類別概念)的三元組。

其次根據(jù)對應(yīng)關(guān)系對屬性進行處理,用數(shù)據(jù)屬性連接主語實體和數(shù)據(jù)值,用對象屬性連接主語實體和屬性實體,并創(chuàng)建相應(yīng)的三元組。對于數(shù)據(jù)屬性,直接根據(jù)謂詞對應(yīng)的字段名稱,取出字段數(shù)據(jù)作為數(shù)據(jù)屬性值并設(shè)置其數(shù)據(jù)類型;用謂詞關(guān)系把主語實體和數(shù)據(jù)屬性值連接起來,創(chuàng)建(主語實體,謂詞,數(shù)據(jù)屬性值)的三元組。對于對象屬性根據(jù)其URI 模板得到其實體資源的URI,判斷這個對象屬性實體是否已經(jīng)存在。如果對象屬性實體已經(jīng)存在直接使用謂詞關(guān)系把主語實體和對象屬性實體連接起來即可。如果該對象屬性實體不存在,那么就創(chuàng)建一個對象屬性實體,并且根據(jù)類型把其歸屬到對應(yīng)的類別下,然后在用謂詞連接主語實體和對象屬性實體創(chuàng)建(主語實體,謂詞,對象屬性實體)的三元組。

最后選擇可以當(dāng)前類,或者批量選擇本體模型中的所有類,按照指定的格式進行RDF三元組的轉(zhuǎn)換,系統(tǒng)提供了RDF/XML、N-triples、Turtle三種格式。

整體框架的實現(xiàn)算法如算法1 所示,算法2 描述了根據(jù)數(shù)據(jù)的查詢結(jié)果和對應(yīng)關(guān)系生成三元組的過程。

算法1整體框架實現(xiàn)算法

輸入:Database URL,User Name,Password,Ontology URL

輸出:RDF Triples

Parsing-Database(Database URL,User Name,Password)

Parsing-Ontology(Ontology)

Specify subject entity template

AutoMaps=generateAutoMapping(Database URL,Ontology URL)

Revise AutoMaps

For map in AutoMaps:

If Fields are from the same table then

Generate SQL based on field and table information

Else if Fields come from different tables then

Creating graph according to database schema

Find the shortest path

Record the nodes passed by the path

Generate SQL based on the path

RDF Triples=generateRDFTriples(queryResult,mapping-Result)

Return RDF Triples

算法2RDF三元組生成算法

輸入:SQL Query Result,Map

輸出:RDF Triples

Generate subject according subject template and field data

Classify the subject into its category

Create Property according to predicate

Generate predicate attributes

If it is a data attribute then

Generate triples(subject,predicate,attribute value)

Else

If this attribute is already in RDF graph

Generate triples(subject,predicate,object property)

Else

Create object attribute entity

Categorized into its category,that is generated(object property entity,type,class)

Generate triples(subject,predicate,object attribute)

Select RDF data format

Return RDF Triples

3 框架應(yīng)用和知識抽取實驗

實驗使用本文提出的框架對智慧養(yǎng)老業(yè)務(wù)系統(tǒng)中老年人的信息進行知識抽取并轉(zhuǎn)換成RDF 數(shù)據(jù),完成智慧養(yǎng)老領(lǐng)域老年人基礎(chǔ)信息知識圖譜的構(gòu)建。

實驗使用的自定義本體模型如圖5所示,該本體模型中包括17 個類別概念,25 個數(shù)據(jù)屬性,22 個對象屬性。類別概念中主要包括老人、養(yǎng)老機構(gòu)、證件、護理類型等,主要用于描述老人的基礎(chǔ)信息,和老年人在養(yǎng)老機構(gòu)的日常護理信息。其中數(shù)據(jù)屬性用于描述老人的基礎(chǔ)信息,如hasEmergencyPhone 表示老人的緊急聯(lián)系人電話。對象屬性用于表達老人概念與其他概念之間的關(guān)系,如belongPensionInstitution 表示老年人與養(yǎng)老機構(gòu)的關(guān)系。

圖5 養(yǎng)老領(lǐng)域老人基礎(chǔ)信息本體模型Fig.5 Ontology model of basic information for the elderly

除了老人的基本信息概念和老年人在養(yǎng)老機構(gòu)的信息,本體模型中還包括地址信息相關(guān)的概念。地址概念的規(guī)定采用了國家區(qū)域劃分的五級地址數(shù)據(jù)庫。行政區(qū)域劃分的本體模型中包含5個概念,用來表示行政區(qū)域劃分的五個級別。包括19 個屬性,其中14 個數(shù)據(jù)屬性表示行政區(qū)域基本信息,5個對象屬性連接不同等級的行政區(qū)域,表示行政區(qū)域的所屬關(guān)系。

數(shù)據(jù)庫中包括四個表,其中老人基礎(chǔ)信息表存儲老年人、姓名、性別、出生日期、血型等基礎(chǔ)信息。老人在養(yǎng)老機構(gòu)登記的信息表存儲了老年人在當(dāng)前機構(gòu)的信息,如房間號、護理級別等信息。養(yǎng)老機構(gòu)表存儲機構(gòu)名、機構(gòu)代碼、機構(gòu)法人等養(yǎng)老服務(wù)機構(gòu)的相關(guān)信息。地址信息表行政區(qū)域的數(shù)據(jù)庫里存儲區(qū)域的相關(guān)信息,包括區(qū)域代碼、區(qū)域名稱、郵政編碼、區(qū)域的經(jīng)緯度,其中區(qū)域的parent_code是一個引用自身表的外鍵,被引用列是父級區(qū)域的區(qū)域代碼。

實驗步驟如下:

(1)如圖6 所示,首先對數(shù)據(jù)庫和本體模型的相關(guān)信息進行配置,包括數(shù)據(jù)庫的地址,數(shù)據(jù)庫的用戶名和密碼,本體模型所在的路徑地址。系統(tǒng)根據(jù)配置連接數(shù)據(jù)庫,加載本體模型,然后自動對數(shù)據(jù)庫和本體模型進行解析,并以可視化的方式展示出來。

圖6 本體模型和數(shù)據(jù)信息配置Fig.6 Ontology and database address configuration

(2)完成數(shù)據(jù)庫和本體模型的配置后,系統(tǒng)會根據(jù)數(shù)據(jù)庫的解析結(jié)果生成中間本體.并且計算自定義本體和中間本體各種概念屬性的相似度,基于相似度自動生成數(shù)據(jù)庫和自定義本體之間的候選映射。如圖7所示,對于自定義本體中的每一個類,顯示一個類標簽頁面。如圖7 所示,每個標簽頁面的顯示詳情包括:類和表的對應(yīng)關(guān)系,屬性和字段的對應(yīng)關(guān)系,以及類的主語模板的默認設(shè)置。

圖7 自動生成對應(yīng)關(guān)系Fig.7 Automatically generated candidate mapping

(3)對自動生成的候選映射進行確認,確認類與表的映射,字段與屬性的映射。對錯誤的候選映射進行修正。如果不進行任何操作,則默認自動生成的對應(yīng)關(guān)系全部是正確的。實驗中自定義本體模型中的17 個類,成功匹配到14 個,對象屬性22 個成功匹配到16 個,數(shù)據(jù)屬性25個匹配到20個。

(4)根據(jù)需要選擇是否對資源實體的主語模板修改,可選擇數(shù)據(jù)庫中表的字段和字符組合方式,將根據(jù)在主語設(shè)置的字段模板和字符生成主語資源的URI,實驗中使用默認的主語生成方式。

(5)確認和修改后,可以直接把當(dāng)前類轉(zhuǎn)成RDF三元組,也可以在確認所有類的候選映射關(guān)系之后,一次完成整個數(shù)據(jù)庫的轉(zhuǎn)換。最終共抽取272 102 條RDF三元組,以N-triples的格式保存三元組到文件中。

最后使用本文的框架對關(guān)系數(shù)據(jù)進行知識抽取并轉(zhuǎn)換成RDF 數(shù)據(jù),結(jié)合本體模型建立的養(yǎng)老領(lǐng)域老年人基礎(chǔ)信息知識圖譜如圖8所示。

圖8 老年人基礎(chǔ)信息知識圖譜Fig.8 Basic information knowledge graph for the elderly

如表3 所示,與現(xiàn)有的映射編輯類工具對比,本文提出的框架能夠方便地根據(jù)數(shù)據(jù)源和本體的解析結(jié)果,自動生成候選映射,可視化地進行修正和調(diào)整。另外能夠根據(jù)選擇的結(jié)果自動進行SQL 語句的生成和相應(yīng)數(shù)據(jù)的獲取。不需中間映射文件的編輯和維護映射。并且應(yīng)用框架能直接獲取到RDF 三元組,而不是映射文件,不需要再借助其他工具和插件去執(zhí)行映射文件再得到RDF三元組。因此基于本文的框架實現(xiàn)的知識抽取系統(tǒng),能夠方便地根據(jù)本體模型的目標詞匯快速的生成RDF三元組,較為高效地完成關(guān)系型數(shù)據(jù)的知識抽取和數(shù)據(jù)轉(zhuǎn)換。

表3 框架和工具功能比較情況Table 3 Comparison of framework and tool functions

4 結(jié)束語

結(jié)構(gòu)化數(shù)據(jù)的知識抽取和RDF轉(zhuǎn)換是結(jié)構(gòu)行業(yè)領(lǐng)域知識圖譜的重要步驟,本文針對當(dāng)前關(guān)系型結(jié)構(gòu)化知識抽取和數(shù)據(jù)轉(zhuǎn)換方法存在的操作繁瑣、需要用戶大量參與、進行大量R2RML 語句編碼工作,以及R2RML 映射維護等問題,提出一種關(guān)系型結(jié)構(gòu)化知識抽取的框架方案并予以實現(xiàn)。直接由指定關(guān)系數(shù)據(jù)和本體模型中類別概念和屬性的對應(yīng)關(guān)系,系統(tǒng)框架根據(jù)用戶指定的對應(yīng)關(guān)系,自動生成SQL語句從關(guān)系數(shù)據(jù)庫中進行數(shù)據(jù)抽取生成RDF三元組。

未來的研究工作要對框架的細節(jié)進行進一步的完善,如在轉(zhuǎn)成生成三元組時根據(jù)用戶的需求把三元組劃分到不同的命名圖(named graph)中,提供數(shù)據(jù)類型的轉(zhuǎn)換機制,提供枚舉類型的處理機制等。另外還可以從關(guān)系型的結(jié)構(gòu)化數(shù)據(jù)擴展到其他類型的結(jié)構(gòu)數(shù)據(jù)的知識抽取上和數(shù)據(jù)轉(zhuǎn)換上,如Redis、Hbase、MongoDB 等數(shù)據(jù)庫,建立一個統(tǒng)一的結(jié)構(gòu)化數(shù)據(jù)知識抽取和數(shù)據(jù)轉(zhuǎn)換的框架。未來的研究可以考慮實現(xiàn)一個統(tǒng)一的結(jié)構(gòu)化知識抽取和數(shù)據(jù)轉(zhuǎn)換框架,并且以插件的方式集成到Protege中。

猜你喜歡
數(shù)據(jù)庫模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
主站蜘蛛池模板: 97影院午夜在线观看视频| 欧美一级高清视频在线播放| 亚洲人成影视在线观看| 国产精品美人久久久久久AV| 永久在线播放| 国产成人一区二区| 国产91全国探花系列在线播放| 热久久国产| 久久国产精品波多野结衣| 99ri精品视频在线观看播放| 真实国产精品vr专区| 无码福利日韩神码福利片| 亚洲九九视频| 爆乳熟妇一区二区三区| 亚洲欧洲日产国码无码av喷潮| 麻豆AV网站免费进入| 一本大道香蕉久中文在线播放| 四虎永久免费地址| 在线另类稀缺国产呦| 久久一级电影| 国产欧美另类| 无码精品国产dvd在线观看9久| 91在线国内在线播放老师| 午夜a视频| 亚洲欧美成人在线视频| 中文国产成人久久精品小说| 男人的天堂久久精品激情| 婷婷色丁香综合激情| 91精品aⅴ无码中文字字幕蜜桃| 3p叠罗汉国产精品久久| 人妻精品全国免费视频| 一级黄色欧美| 久久黄色视频影| 成人无码区免费视频网站蜜臀| 日本黄网在线观看| 国产精品白浆无码流出在线看| 国产精品视频久| 久久国语对白| 色综合五月| 无码区日韩专区免费系列 | 免费看的一级毛片| 99国产在线视频| 亚洲综合极品香蕉久久网| 国产性猛交XXXX免费看| 1769国产精品免费视频| 久久永久精品免费视频| 97国产在线观看| 高清无码一本到东京热| 综合人妻久久一区二区精品 | 精品伊人久久久久7777人| 日韩区欧美区| 免费国产一级 片内射老| 欧美一级在线| 国产黑人在线| 中字无码av在线电影| 精品99在线观看| 中字无码av在线电影| 国产永久免费视频m3u8| 亚洲一区黄色| 亚洲AV色香蕉一区二区| 在线欧美a| 被公侵犯人妻少妇一区二区三区| 亚洲视频欧美不卡| 在线精品欧美日韩| 在线观看欧美国产| 97久久免费视频| 久久精品无码国产一区二区三区| 亚洲视频二| 国产SUV精品一区二区| 日韩无码白| 中文字幕久久亚洲一区| 亚洲综合第一区| 亚洲一区二区在线无码| 色综合日本| 在线va视频| 亚洲精品午夜天堂网页| 欧美高清视频一区二区三区| 久久久久久久97| 亚洲色中色| 成人亚洲视频| 无码在线激情片| 久久精品国产亚洲AV忘忧草18|