国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2022-09-06 11:09:16張永威唐新余
關(guān)鍵詞:三元組字段主語(yǔ)

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

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

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

3.中國(guó)科學(xué)院 新疆民族語(yǔ)音語(yǔ)言信息處理重點(diǎn)實(shí)驗(yàn)室,烏魯木齊 830011

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

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

知識(shí)圖譜按照領(lǐng)域劃分,一般可分為通用知識(shí)圖譜和行業(yè)領(lǐng)域知識(shí)圖譜。通用知識(shí)圖譜包含了大量現(xiàn)實(shí)世界中的常識(shí)性知識(shí),涵蓋范圍廣、規(guī)模巨大,如FreeBase[5]、Yago[6]、DBpedia[7],已經(jīng)被廣泛應(yīng)用于信息搜索、自動(dòng)問(wèn)答等場(chǎng)景。行業(yè)領(lǐng)域知識(shí)圖譜又稱(chēng)為垂直知識(shí)圖譜,面向特定的領(lǐng)域,如面向電影領(lǐng)域的IMDB[8]、生物醫(yī)學(xué)領(lǐng)域的DrugBank[9]、學(xué)術(shù)領(lǐng)域的Acemap[10]等、一般由各領(lǐng)域中的企業(yè)進(jìn)行構(gòu)建[11]。在行業(yè)領(lǐng)域中,關(guān)系數(shù)據(jù)庫(kù)由于其模型簡(jiǎn)單、關(guān)系理論完備、接口易用等特點(diǎn),已經(jīng)成為各行業(yè)中廣泛使用的數(shù)據(jù)存儲(chǔ)和管理方案。因此結(jié)合本體模型從結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)中進(jìn)行知識(shí)抽取并轉(zhuǎn)換成RDF三元組是構(gòu)建行業(yè)知識(shí)圖譜的關(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)映射語(yǔ)言實(shí)現(xiàn)關(guān)系數(shù)據(jù)到RDF數(shù)據(jù)的映射和轉(zhuǎn)換。目前的方案不僅需要掌握和使用各種映射語(yǔ)言和映射工具,還要對(duì)本體模型定義的知識(shí)體系結(jié)構(gòu)和領(lǐng)域中的業(yè)務(wù)數(shù)據(jù)庫(kù)的模式結(jié)構(gòu)非常熟悉。另外領(lǐng)域知識(shí)圖譜雖然沒(méi)有通用知識(shí)圖譜的覆蓋范圍廣,但是也具有相當(dāng)規(guī)模的數(shù)據(jù)量。在進(jìn)行知識(shí)抽取和數(shù)據(jù)轉(zhuǎn)換時(shí),需要根據(jù)本體模型和關(guān)系數(shù)據(jù)進(jìn)行大量的查詢(xún)語(yǔ)句和映射的編輯和維護(hù)工作,不僅費(fèi)時(shí)費(fèi)力而且還容易出錯(cuò)。本文提出一套直接由關(guān)系數(shù)據(jù)根據(jù)本體模型進(jìn)行抽取轉(zhuǎn)換成RDF 的框架,簡(jiǎn)化了映射編輯和維護(hù)等工作,提供了更簡(jiǎn)單易用的關(guān)系型數(shù)據(jù)的知識(shí)抽取和數(shù)據(jù)轉(zhuǎn)換的解決方案。

1 相關(guān)工作

目前對(duì)關(guān)系型數(shù)據(jù)進(jìn)行知識(shí)抽取并轉(zhuǎn)換成RDF數(shù)據(jù)的方案一般是先編寫(xiě)從關(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ù)的映射語(yǔ)言,DM 和R2RML。Direct mapping 定義了從關(guān)系數(shù)據(jù)庫(kù)到RDF三元組的簡(jiǎn)單變換,這種變換把關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)模式和結(jié)構(gòu)直接反映在RDF圖中[12]。Direct mapping將關(guān)系數(shù)據(jù)庫(kù)直接映射為RDF 圖,只是對(duì)原有關(guān)系數(shù)據(jù)直接轉(zhuǎn)換[15],無(wú)法根據(jù)自定義的本體模型對(duì)數(shù)據(jù)進(jìn)行抽取和組織后轉(zhuǎn)換成RDF三元組。

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

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

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

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

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

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

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

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

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

table∈DS,column∈table

(class,data property,object property)∈ontology

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

automaps={(c1,c2,max_sim)}

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

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

sql=generate_sq(lautomap)

data=get_data(DS,sql)

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

template={column1}@{column2}

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

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

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

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

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

predicate=prefix url+data property

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

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

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

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

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

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

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

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

賓語(yǔ)是對(duì)象屬性值時(shí):

get data type ∈class

object property=prefix+template

由于對(duì)象屬性也是實(shí)體所以構(gòu)建對(duì)象屬性類(lèi)型三元組:

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

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

triple=(subject,predicate,object property)

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

2.1 本體模型解析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2)本體中類(lèi)和屬性的相似度計(jì)算

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

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

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

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

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

②對(duì)于類(lèi)的標(biāo)簽,用其同義詞集合里的第一個(gè)元素進(jìn)行替換。

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

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

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

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

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

①對(duì)于類(lèi)的結(jié)構(gòu)相似:

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

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

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

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

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

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

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

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

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

sim=max(sim1,sim2)

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

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

(1)主語(yǔ)

RDF三元組的主語(yǔ)是一個(gè)資源實(shí)體,由一個(gè)統(tǒng)一資源標(biāo)識(shí)符URI(uniform resource identifier)表示。在RDF 中表示主語(yǔ)資源的URI 一般是由命名空間和資源實(shí)體的名稱(chēng)或一些其他標(biāo)識(shí)組成。比如一門(mén)課程實(shí)體的可以表示為:

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

表2 主語(yǔ)資源實(shí)體URI配置Table 2 Subject resource entity URI configuration

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

S:

P:

O:

(2)謂詞

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

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

(3)賓語(yǔ)

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

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

S:

P:

O:“張三”

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

S:

P:

O:.

S:

P:

O:

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

2.4 SQL語(yǔ)句生成與數(shù)據(jù)查詢(xún)

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

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

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

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

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

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

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

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

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

算法1整體框架實(shí)現(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)用和知識(shí)抽取實(shí)驗(yàn)

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

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

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

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

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

實(shí)驗(yàn)步驟如下:

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

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

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

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

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

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

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

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

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

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

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

4 結(jié)束語(yǔ)

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

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

猜你喜歡
三元組字段主語(yǔ)
基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
談?wù)勔龑?dǎo)主語(yǔ)從句的連接詞的用法
巧用無(wú)靈主語(yǔ),讓續(xù)寫(xiě)更靈動(dòng)
圖書(shū)館中文圖書(shū)編目外包數(shù)據(jù)質(zhì)量控制分析
特征標(biāo)三元組的本原誘導(dǎo)子
關(guān)于余撓三元組的periodic-模
CNMARC304字段和314字段責(zé)任附注方式解析
無(wú)正題名文獻(xiàn)著錄方法評(píng)述
盤(pán)點(diǎn)高考中的特殊句式(二)
英語(yǔ)中的虛主語(yǔ)“it”和漢語(yǔ)中的虛主語(yǔ)“他”異同之比較
鄂尔多斯市| 武功县| 沈丘县| 梧州市| 敦化市| 朔州市| 临沧市| 奉新县| 西丰县| 婺源县| 中宁县| 莒南县| 宜兰县| 五原县| 长治市| 新昌县| 资源县| 武宣县| 上饶市| 突泉县| 恭城| 西和县| 长阳| 洱源县| 平度市| 磴口县| 永仁县| 尚义县| 清镇市| 西城区| 合川市| 邹平县| 朝阳市| 黄冈市| 扎囊县| 桦南县| 福贡县| 兴隆县| 哈巴河县| 根河市| 富阳市|