摘 要:在分析半結(jié)構(gòu)化生物數(shù)據(jù)特點(diǎn)的基礎(chǔ)上,提出了一種新的半結(jié)構(gòu)化數(shù)據(jù)抽取模型REOEM。它將OEM數(shù)據(jù)模型和正則表達(dá)式有機(jī)地結(jié)合起來,不但能夠靈活方便地表示各種數(shù)據(jù)結(jié)構(gòu),而且能夠非常方便地進(jìn)行模式匹配和數(shù)據(jù)的定位,為半結(jié)構(gòu)化生物數(shù)據(jù)的抽取打下堅(jiān)實(shí)基礎(chǔ)。
關(guān)鍵詞:半結(jié)構(gòu)化;生物數(shù)據(jù);抽取模型;OEM數(shù)據(jù)模型;正則表達(dá)式
中圖分類號(hào):TP393.04 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)09-2647-04
REOEM:model for information extraction from semistructured biological data
CAO Shunliang1,2,LIU Jie2,WANG Jian3,LIU Nianzu2,LI Yixue4
(1.Dept. of Information Science, Shanghai Lixin University of Commerce, Shanghai 201620 ,China; 2.School of Management, Fudan University, Shanghai 200433 ,China; 3.School of Life Science, Shanghai University, Shanghai 200444, China; 4 Shanghai Center for Bioinformation Technology, Shanghai 200235, China)
Abstract:In the biological data integration process, it is key to extract information, with specific integration goal in mind, from semistructured data and represent this information in a structured manner.This paper proposed REOEM based on analysis of biological data characteristics. It combined OEM data model and regular expression to represent data structure. It facilitates data extraction from semistructured biological data by enabling convenient pattern matching and data locating.
Key words:semistructured; biological data; extraction model; OEM data model; regular expression
0 引言
在生物學(xué)數(shù)據(jù)中存在著大量的半結(jié)構(gòu)化數(shù)據(jù)文件,這些數(shù)據(jù)文件是由標(biāo)簽和相關(guān)的值所構(gòu)成的具有一定規(guī)則的序列[1]。半結(jié)構(gòu)化數(shù)據(jù)格式的優(yōu)點(diǎn)是能夠表示更加復(fù)雜、具有層次(樹型)結(jié)構(gòu)的信息,如一條序列包含多條參考文獻(xiàn),每條參考文獻(xiàn)又可能包含多個(gè)作者,數(shù)據(jù)的表示具有很大的靈活性。然而這些格式的數(shù)據(jù)文件并不支持多個(gè)用戶的并發(fā)使用。如果沒有建立索引,整個(gè)文件必須進(jìn)行順序的讀取,尋找匹配用戶輸入的數(shù)據(jù)效率將非常低下。此外,要指定只對(duì)數(shù)據(jù)文件的哪部分內(nèi)容進(jìn)行查詢幾乎是不可能的。例如一個(gè)用戶想查詢哺乳動(dòng)物的序列,沒有辦法指定只搜索文件中的生物體(organism)那一節(jié)內(nèi)容以加快查詢的速度。在對(duì)數(shù)據(jù)文件進(jìn)行全文檢索時(shí),不支持復(fù)雜的、組合的檢索條件,全文檢索還有可能返回錯(cuò)誤的數(shù)據(jù)。例如考慮一個(gè)記錄有人類和老鼠的具有直系同源的基因的信息,每一個(gè)基因都記錄著它們?cè)谌旧w中的位置。假設(shè)用戶想尋找所有與老鼠的10號(hào)染色體上的基因直系同源的人類基因的信息,簡(jiǎn)單的文本查詢沒有辦法確定10號(hào)染色體指的是人類基因而不是老鼠的基因。最后,文本查詢也沒有簡(jiǎn)單的方法從兩個(gè)相關(guān)的數(shù)據(jù)源中檢索出相關(guān)的數(shù)據(jù)。
為了克服半結(jié)構(gòu)化數(shù)據(jù)的缺點(diǎn),經(jīng)常需要對(duì)半結(jié)構(gòu)化數(shù)據(jù)文件進(jìn)行數(shù)據(jù)抽取并轉(zhuǎn)換到其他數(shù)據(jù)模式(如關(guān)系數(shù)據(jù)模式)中,以方便數(shù)據(jù)的檢索和利用。在數(shù)據(jù)集成中,半結(jié)構(gòu)化的數(shù)據(jù)模式的表示、數(shù)據(jù)的抽取和轉(zhuǎn)換是其關(guān)鍵步驟。
由于生物學(xué)數(shù)據(jù)缺乏統(tǒng)一的、固定的模式,數(shù)據(jù)往往是不規(guī)則的且經(jīng)常變動(dòng),再加上生物資源的動(dòng)態(tài)性、分布性、異構(gòu)性等特點(diǎn),使對(duì)生物學(xué)數(shù)據(jù)的信息抽取越來越困難。經(jīng)分析表明,相當(dāng)數(shù)量的生物學(xué)數(shù)據(jù)都以半結(jié)構(gòu)化的形式存在,如何將這些半結(jié)構(gòu)化的數(shù)據(jù)根據(jù)特定的數(shù)據(jù)集成的目標(biāo)進(jìn)行信息抽取并以結(jié)構(gòu)化的方式進(jìn)行表示是進(jìn)行生物學(xué)數(shù)據(jù)集成的關(guān)鍵。信息抽取模型是進(jìn)行信息抽取的前提,進(jìn)行信息抽取模型的研究具有重要的理論價(jià)值和實(shí)際意義。
1 半結(jié)構(gòu)化生物數(shù)據(jù)的格式及其特點(diǎn)
由于歷史原因,各種生物數(shù)據(jù)庫采用了不同的信息格式,如GBFF格式、ASN.1格式、CODATA格式、FASTA格式、Staden格式、GCG格式、Plain/Raw格式、Nexus格式、NBRF格式、Stockhom格式、MSF格式、XML格式等。通過分析發(fā)現(xiàn),生物數(shù)據(jù)庫中絕大多數(shù)都采用文本文件的數(shù)據(jù)格式,這些文件絕大部分是半結(jié)構(gòu)化的。下面以GBFF格式為例來說明生物學(xué)數(shù)據(jù)中半結(jié)構(gòu)化數(shù)據(jù)的格式及其特點(diǎn)。GBFF是GenBank數(shù)據(jù)庫的基本信息單位,是最為廣泛使用的生物信息學(xué)序列格式之一[2]。以下是一個(gè)GBFF文件的例子: locus AAURRA 118 bp ssrRNA RNA 16JUN1986
definition A.auriculajudae (mushroom) 5S ribosomal RNA.
accession K03160
version K03160.1 GI:173593
keywords 5S ribosomal RNA; ribosomal RNA.
source A.auriculajudae (mushroom) ribosomal RNA.
organismAuricularia auriculajudae Eukaryota; Fungi; Eumycota; Basidiomycotina; Phragmobasidiomycetes;Heterobasidiomycetidae; Auriculariales; Auriculariaceae.
reference 1(bases 1 to 118)
authors Huysmans E,Dams E,Vandenberghe A and De Wachter R.
title The nucleotide sequences of the 5S rRNAs of four mushrooms and their use in studying the phylogenetic position of basidiomycetes among the eukaryotes
journal Nucleic Acids Res. 11, 2871-2880 (1983)
features location/qualifiers
rRNA 1..118
/note=\"5S ribosomal RNA\"
base count 27a 34c 34g 23t
origin 5′ end of mature rRNA.
1 atccacggcc ataggactct gaaagcactg catcccgtcc gatctgcaaa gttaaccaga
61 gtaccgccca gttagtacca cggtggggga ccacgcggga atcctgggtg ctgtggtt
//
LOCUS ABCRRAA 118 bp ssrRNA RNA 15SEP1990
definition Acetobacter sp.(strain MB 58) 5S ribosomal RNA, complete sequence.
accession M34766
version M34766.1 GI:173603
keywords 5S ribosomal RNA.
source Acetobacter sp. (strain MB 58) rRNA.
organismAcetobacter sp.Prokaryotae; Gracilicutes; Scotobacteria; Aerobic rods and cocci;Azotobacteraceae.
reference 1(bases 1 to 118)
authors Bulygina E S,Galchenko V F,Govorukhina N I,Netrusov A I,Nikitin D I,Trotsenko Y A and Chumakov K M.
title Taxonomic studies of methylotrophic bacteria by 5S ribosomal RNA sequencing
journal J. Gen. Microbiol. 136, 441446 (1990)
……(為節(jié)省頁面,該記錄的后面部分省略)
GBFF文件按域(field)可以劃分為三個(gè)部分:頭部包含整個(gè)記錄的信息(描述符);第二部分包含了注釋這一記錄的特性;第三部分是核苷酸序列本身。所有序列數(shù)據(jù)記錄都在最后以“//”結(jié)尾,也可以將“//”看成記錄之間的分割符。
所有的GBFF都起始于locus行,行首為locus標(biāo)記,接下來在行中第13個(gè)位置開始的為大于等于6個(gè)字母或數(shù)字構(gòu)成的字符串為locus名稱,用來表示本記錄描述的基因座,然后出現(xiàn)的是序列的長(zhǎng)度、分子類型、GenBank分類碼以及最后修訂日期。行中每一部分都出現(xiàn)在固定的位置上,每一部分之間用空格分割。Locus行下為definition行,該行主要對(duì)GenBank中所含的生物學(xué)意義作出總結(jié)。檢索號(hào)(accession)處在GenBank文件的第三行,它是序列記錄的惟一指針。
可以看出,在GBFF中具有一定的信息結(jié)構(gòu)即模式,模式信息和數(shù)據(jù)信息是混合在一起的。要從這些數(shù)據(jù)文件中抽取出所需要的信息,給出文件中的信息結(jié)構(gòu)是至關(guān)重要的。
經(jīng)過分析可以看到,生物數(shù)據(jù)文本文件除了具有通常的半結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn)以外,它還有自己的一些特點(diǎn):
a)一個(gè)文本文件通常由記錄構(gòu)成,記錄與記錄之間有明顯的標(biāo)記進(jìn)行分割。
b)每一條記錄中由多個(gè)具有特定意義的對(duì)象構(gòu)成,對(duì)象與對(duì)象之間出現(xiàn)的先后次序是相對(duì)固定的。
c)對(duì)于人來說可以非常容易地識(shí)別文件的結(jié)構(gòu),但對(duì)計(jì)算機(jī)來說并沒有提供類似于HTML那樣簡(jiǎn)單的對(duì)象的定界符, 有些對(duì)象的數(shù)據(jù)抽取沒有合適的定界符可用,更為糟糕的是,被宣稱用做定界符的字符串可能會(huì)出現(xiàn)在文件中的任何位置(即噪聲數(shù)據(jù))。
d)記錄中的對(duì)象是有層次的,如一條記錄中可能包括若干條參考文獻(xiàn),每條參考文獻(xiàn)又可以分為作者、題目、發(fā)表日期等子對(duì)象,依此類推。
e)一些對(duì)象在每一條記錄中都必然出現(xiàn),而有些對(duì)象是可選的(即可以出現(xiàn)也可以不出現(xiàn)),有些對(duì)象在一條記錄中允許出現(xiàn)多次。
f)由于生物數(shù)據(jù)庫具有自治的特點(diǎn),數(shù)據(jù)文件模式的變化是經(jīng)常發(fā)生的,如經(jīng)常會(huì)增加一個(gè)對(duì)象或減少一個(gè)對(duì)象。對(duì)于抽取程序而言,相當(dāng)于數(shù)據(jù)中出現(xiàn)了缺失和噪聲。
2 相關(guān)研究
數(shù)據(jù)模型用來表示要抽取的半結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)模式。由于半結(jié)構(gòu)化數(shù)據(jù)模型的重要性,近年來在這方面做了很多研究工作,提出了多種模型用來對(duì)半結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行表示[3,4]。通常這些模型都是基于帶標(biāo)記的有向圖,用來描述半結(jié)構(gòu)化數(shù)據(jù)內(nèi)在的不規(guī)則結(jié)構(gòu)。TSIMMIS[5]項(xiàng)目采用了基于對(duì)象的OEM模型。一個(gè)OEM對(duì)象可以是原子類型也可以是復(fù)雜類型。復(fù)雜類型的OEM對(duì)象是一個(gè)對(duì)象引用的集合,這些引用指向組成這個(gè)復(fù)雜類型OEM對(duì)象的那些組件,這些引用可以是嵌套的。在文獻(xiàn)[3]中提出的用于UnQL查詢語言的數(shù)據(jù)模型和OEM模型非常相似;不同之處在于,UnQL數(shù)據(jù)模型沒有對(duì)象的概念,它使用一個(gè)樹集合來描述數(shù)據(jù),樹中的葉子節(jié)點(diǎn)表示數(shù)據(jù)的實(shí)例。在文獻(xiàn)[4]中提出的數(shù)據(jù)模型也是用帶標(biāo)記的有向圖來表示數(shù)據(jù)的一種模型。圖中每一個(gè)節(jié)點(diǎn)與一個(gè)對(duì)象相對(duì)應(yīng),從任何一個(gè)節(jié)點(diǎn)發(fā)出的邊都用不同的標(biāo)記進(jìn)行標(biāo)志。其他比較有名的還有DataGuides[6~8]、一元算法模型[9]、模型定義語言ScmDL[10]等。無論是哪一種描述形式,其基礎(chǔ)都是采用帶標(biāo)記的有向圖作為半結(jié)構(gòu)化數(shù)據(jù)模型,該類模型的典型代表就是OEM模型[11]。本文構(gòu)建的半結(jié)構(gòu)化數(shù)據(jù)抽取模型REOEM就是建立在OEM基礎(chǔ)上的。
3 REOEM的構(gòu)建
數(shù)據(jù)抽取模型用來說明需要從一個(gè)數(shù)據(jù)源中抽取的數(shù)據(jù)對(duì)象的組成結(jié)構(gòu),是進(jìn)行數(shù)據(jù)抽取的重要組成部分。針對(duì)生物數(shù)據(jù)的特點(diǎn),本文在OEM數(shù)據(jù)模型和正則表達(dá)式的基礎(chǔ)上提出了一種半結(jié)構(gòu)化數(shù)據(jù)抽取模型REOEM。
3.1 OEM數(shù)據(jù)模型
OEM是自描述對(duì)象模型,專為表達(dá)半結(jié)構(gòu)化數(shù)據(jù)而設(shè)計(jì)。它最初的目的是為異構(gòu)數(shù)據(jù)源間的數(shù)據(jù)交換提供高度靈活的轉(zhuǎn)換工具[12]。
在這個(gè)數(shù)據(jù)模型中,每一個(gè)實(shí)體都是對(duì)象,每一個(gè)對(duì)象都有惟一的標(biāo)志。對(duì)象分為兩類:原子對(duì)象和復(fù)雜對(duì)象。所謂原子對(duì)象是指該對(duì)象不再有子對(duì)象,而且其值的類型為基本原子類型,如integer、string、real等;復(fù)雜對(duì)象的值是對(duì)象引用(object references)的集合,每一個(gè)對(duì)象引用指向一個(gè)子對(duì)象,記做(label,oid)。
OEM中的每個(gè)對(duì)象具有如下結(jié)構(gòu):
labeltypevalueobjectID
其中:label是一個(gè)變長(zhǎng)的字符串,用來表示一個(gè)對(duì)象以及這個(gè)對(duì)象所代表的含義type表示對(duì)象值的數(shù)據(jù)類型。每一個(gè)類型要么是一個(gè)原子類型(如integer、string、real等),要么是一個(gè)set類型。Value表示如果是一個(gè)原子類型的對(duì)象,則表示對(duì)象的值;如果是一個(gè)復(fù)雜類型的對(duì)象,則value表示對(duì)象引用,用{〈l1,oid1〉,…,〈ln,oidn〉}表示。其中li(i=1..n)為該對(duì)象的子對(duì)象的label;oidi為該對(duì)象子對(duì)象的objectID。ObjectID是對(duì)象的惟一標(biāo)志。
OEM數(shù)據(jù)模型的主要特點(diǎn)是自描述性,沒有必要預(yù)先描述一個(gè)對(duì)象的結(jié)構(gòu),也不存在所謂固定模式(fixed schema)的概念。從某種意義上來說,每個(gè)對(duì)象包含了它自己的模式。OEM的這種自描述型的結(jié)構(gòu)為異構(gòu)的、動(dòng)態(tài)的環(huán)境下進(jìn)行數(shù)據(jù)的交換和轉(zhuǎn)換提供了高度的靈活性,如可以方便地在OEM圖中增加或刪除某個(gè)對(duì)象。這為半結(jié)構(gòu)化的數(shù)據(jù)管理提供了一種比較理想的數(shù)據(jù)模型。但是在將OEM模型用于數(shù)據(jù)抽取時(shí),則表現(xiàn)出相當(dāng)?shù)木窒扌裕渲饕毕菔呛茈y用OEM模型對(duì)需要抽取的數(shù)據(jù)進(jìn)行準(zhǔn)確的定位。
3.2 正則表達(dá)式
簡(jiǎn)單地說,正則表達(dá)式就是一個(gè)字符構(gòu)成的串,它定義了一個(gè)用來搜索匹配字符串的模式。正則表達(dá)式可以讓用戶通過使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與數(shù)據(jù)文件、程序輸入以及Web頁面的表單輸入等目標(biāo)對(duì)象進(jìn)行比較,根據(jù)比較對(duì)象中是否包含匹配模式執(zhí)行相應(yīng)的程序。許多語言,包括Perl、PHP、Python、Java、JavaScript和JScript都支持用正則表達(dá)式處理文本。
為了能夠使用戶更加靈活地定制模式內(nèi)容,正則表達(dá)式提供了專門的元字符。所謂元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符,可以用來規(guī)定其前面的子表達(dá)式在目標(biāo)對(duì)象中的出現(xiàn)模式。較為常用的元字符如表1所示。
表1 正則表達(dá)式中比較常用的幾個(gè)元字符
元字符含 義
+子表達(dá)式必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)一次或多次
*子表達(dá)式必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)零次或多次
?子表達(dá)式必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)零次或一次
{n}子表達(dá)式必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)n次
{n,m}子表達(dá)式必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)n到m次之間
\\s匹配任何空白字符,包括空格、制表符、換頁符、換行符等
.用于匹配除換行符之外的所有字符
\匹配一個(gè)換行符
()標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置
除了以上所介紹的元字符之外,正則表達(dá)式中還具有另外一種較為獨(dú)特的專用字符,即定位符。定位符用于規(guī)定匹配模式在目標(biāo)對(duì)象中的出現(xiàn)位置,較為常用的定位符包括:“^”“$”“\\b”以及“\\B”。其中,“^”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的開頭;“$”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)對(duì)象的結(jié)尾;“\\b”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的頭或尾兩個(gè)邊界之一,而“\\B”定位符則規(guī)定匹配對(duì)象必須位于目標(biāo)字符串的開頭和結(jié)尾兩個(gè)邊界之內(nèi),即匹配對(duì)象既不能作為目標(biāo)字符串的開頭,也不能作為目標(biāo)字符串的結(jié)尾。
為了能夠方便用戶更加靈活地設(shè)定匹配模式,正則表達(dá)式允許使用者在匹配模式中指定某一個(gè)范圍而不局限于具體的字符,如表達(dá)式/[A~Z]/將會(huì)與A~Z范圍內(nèi)任何一個(gè)大寫字母相匹配。
構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣,也就是用多種元字符與操作符將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。正則表達(dá)式的組件可以是單個(gè)的字符、字符集合、字符范圍、字符間的選擇或所有這些組件的任意組合。以下為一個(gè)文檔實(shí)例,它是KEGG數(shù)據(jù)庫中reaction的文件片段。
entry R00001
namePolyphosphate polyphosphohydrolase
definition Polyphosphate+H2OOligophosphate
equation C00890+C00001C02174
enzyme 3.6.1.10
///
entry R00002
name Reduced ferredoxin:dinitrogen oxidoreductase (ATPhydrolysing)
definition 16ATP+16H2O8 e-+8 H++16 Orthophosphate+16 ADP
equation 16 C00002+16 C000018 C05359+8 C00080+16 C00009+16 C00008
enzyme 1.18.6.1
///
entry R00004
name Pyrophosphate phosphohydrolase
definition Pyrophosphate + H2O2 Orthophosphate
equation C00013 + C000012 C00009
pathway path:RN00190 Oxidative phosphorylation
enzyme 3.6.1.1
///
enetry R00005
name Urea1carboxylate amidohydrolase
definition Urea1carboxylate+H2O2 CO2+2 NH3
equation C01010+C000012 C00011+2 C00014
pathway path:RN00220 Urea cycle and metabolism of amino groups
path:RN00910 Nitrogen metabolism
path:RN00791Atrazine degradation
enzyme 3.5.1.54
comment The yeast enzyme (but not that from green algae) also catalyses the reaction of EC 6.3.4.6 urea carboxylase, thus bringing about the hydrolysis of urea to CO2 and NH3 in the presence of ATP and bicarbonate.
R00774(6.3.4.6)
從上述的敘述中可以看出,正則表達(dá)式具有非常強(qiáng)大的定位能力和模式匹配能力,能夠有效地彌補(bǔ)OEM的缺陷。把OEM的表示方法與正則表達(dá)式有機(jī)地結(jié)合起來,將能夠很好地、細(xì)粒度地描繪要抽取文檔的數(shù)據(jù)結(jié)構(gòu),構(gòu)建文檔的數(shù)據(jù)模式,有效地進(jìn)行數(shù)據(jù)抽取。基于這些想法,本文創(chuàng)建了REOEM數(shù)據(jù)模型。
3.3 REOEM數(shù)據(jù)抽取模型
為了敘述的方便,本文以抽取文檔實(shí)例來介紹REOEM數(shù)據(jù)抽取模型。
REOEM數(shù)據(jù)模型是在OEM數(shù)據(jù)模型的基礎(chǔ)上擴(kuò)展而成的。REOEM中的每個(gè)對(duì)象具有如下結(jié)構(gòu):
labeltypevalueobjectIDnumber
其中:label與OEM中的label意義相同,用來表示一個(gè)對(duì)象以及該對(duì)象所代表的含義;type表示對(duì)象的類型,有A、D和S三種取值(A表示該對(duì)象為屬性,即需要從文檔中抽取的數(shù)據(jù);D表示該對(duì)象為一定界符,用來定位需要提取的屬性的值,定界符分為左定界符和右定界符兩類,位于屬性左邊的定界符稱左定界符,位于屬性右邊的定界符稱右定界符;S表示該對(duì)象為復(fù)雜對(duì)象。其中類型為A和D的對(duì)象為原子類型的對(duì)象)。如果type的值為A和D,即該對(duì)象是一個(gè)原子類型的對(duì)象,則value是由正則表達(dá)式構(gòu)成的定界符或?qū)傩缘闹档臉?gòu)成規(guī)則,程序或用戶可以根據(jù)該表達(dá)式進(jìn)行模式匹配,從而進(jìn)行數(shù)據(jù)的抽取。例如在文檔實(shí)例中,需要抽取entry行中的entryid屬性的值(如在第一條記錄中其值為R00001),通過分析可以得知,該值位于行首為標(biāo)記entry后跟若干個(gè)空白符的后面,值的后面跟一個(gè)回車符。該值的左定界符對(duì)象的value值為“entry\\S*”,右定界符對(duì)象的value值為“\”,該屬性值的value值為“.*”。如果type的值為S,則value值的含義與OEM數(shù)據(jù)模型相同,即
Number表示該對(duì)象連續(xù)出現(xiàn)的次數(shù),用正則表達(dá)式中的符號(hào)“+”“*”“?”{n}和{n,m},其意義與表1中的相應(yīng)符號(hào)含義相同。如果該位置的值為空,表示該對(duì)象在一條記錄中僅出現(xiàn)一次。
上述文檔用REOEM數(shù)據(jù)模型表示如下:
(reaction,S,{(entryrow,1),(namerow,5),(definitionrow,9),(equationrow,%13),(enzymerow,25),(commentrow,29)},0,*);
(entryrow,S,{(seg1,2),(entryid,3),(seg2,4)},1,);
(seg1,D,entry\\S+,2,);
(entryid,A,.*,3,);
(seg2,D,\,4,);
(namerow,S,{(seg3,6),(name,7),(seg4,8)},5,);
(seg3,D,name\\S+,6,);
(name,A,.*,7,);
(seg4,D,\,8,);
……
(commentrow,S,{(seg15,30),(comment,31),(seg16,32)},29,?);
(seg15,D,comment\\S+,30, );
(comment,A,.*,31,);
(seg16,D,\,32,)
為了方便在REOEM中的每個(gè)對(duì)象之間用“;”分割,最后一個(gè)對(duì)象后面不跟任何符號(hào)。
可以非常方便地將REOEM數(shù)據(jù)模型表示的數(shù)據(jù)模式用一棵樹來表示,稱之為信息抽取樹,轉(zhuǎn)換后的結(jié)果如圖1所示。將信息抽取樹進(jìn)行深度優(yōu)先順序掃描,所得結(jié)果應(yīng)與REOEM數(shù)據(jù)模型相同。
通過分析可以知道,以REOEM為數(shù)據(jù)模型的信息抽取樹具有如下一些特點(diǎn):
a)自描述性。如同OEM數(shù)據(jù)模型,每個(gè)對(duì)象都包含了一個(gè)標(biāo)簽用來表示該對(duì)象所具有的含義,每個(gè)對(duì)象本身都包含了自身結(jié)構(gòu)的說明,如是原子類型的數(shù)據(jù)還是復(fù)合類型的數(shù)據(jù)。如果是原子類型,那么它是定界符還是需要抽取的屬性數(shù)據(jù)、定界符或者屬性的構(gòu)成規(guī)則是什么(用正則表達(dá)式表示);如果是復(fù)合類型,則它所包含的子對(duì)象有哪一些等。
b)層次性。可以明顯地看出數(shù)據(jù)之間具有層次結(jié)構(gòu),如reaction對(duì)象包含了entryrow、namerow、definitionrow、enzymerow以及commentrow等子對(duì)象,entryrow對(duì)象又包含seg1、entryid、seg2等對(duì)象,依此類推。
所有的葉子節(jié)點(diǎn)要么是定界符,要么是欲抽取的屬性數(shù)據(jù),而所有的非葉子節(jié)點(diǎn)都是復(fù)合節(jié)點(diǎn)。
c)有序性。數(shù)據(jù)抽取樹是一棵有序樹,節(jié)點(diǎn)之間是有序的。對(duì)數(shù)據(jù)抽取樹按深度優(yōu)先的次序進(jìn)行掃描所獲得的葉子節(jié)點(diǎn)的排列順序與文檔的結(jié)構(gòu)是一致的。
4 結(jié)束語
本文在分析半結(jié)構(gòu)化生物數(shù)據(jù)格式的基礎(chǔ)上總結(jié)了半結(jié)構(gòu)化生物數(shù)據(jù)本身所具有的特點(diǎn),提出了一種新的半結(jié)構(gòu)化數(shù)據(jù)抽取模型REOEM。REOEM將OEM數(shù)據(jù)模型和正則表達(dá)式有機(jī)地結(jié)合起來,不但能夠靈活方便地表示各種數(shù)據(jù)結(jié)構(gòu),而且能夠非常方便地進(jìn)行模式匹配和數(shù)據(jù)的定位,為半結(jié)構(gòu)化生物數(shù)據(jù)的抽取打下堅(jiān)實(shí)基礎(chǔ)。
參考文獻(xiàn):
[1]LACROIX Z.Bioinformatics:managing scientific data[M].[S.l.]:Morgan Kaufmann Publishers,2003.
[2]蔣彥,王小行,曹毅,等.基礎(chǔ)生物信息學(xué)及應(yīng)用[M].北京:清華大學(xué)出版社,2003:5-6. [3]BUNEMAN P, DAVIDSON S, HILLEBRAND G.A query language and optimization techniques for unstructured data[J].ACM SIGMOD Record,1996,25(2):505-516.
[4]BUNEMAN P,DEUTSCH S,TAN W.A deterministic model for semistructured data[C]//Proc of Workshop on Query Processing for Semistructured Data and NonStandard Data Formats.1999.
[5]PAPAKONSTANTINOU Y,GARCIA M H,WIDOM J.Object exchange across heterogeneous information sources[C]//Proc of the 11th International Conference on Data Engineering.Washington DC:IEEE Computer Society,1995:251-260.
[6]GOLDMAN R,WIDOM J.Data guides:enabling query formulation and optimization in semistructured databases[C]//Proc of the 23rdInternational Confernence on Very Large Databases.[S.l.]:Morgan Kaufmann,1997:436-445.
[7]GOLDMAN R,WIDOM J.Approximate dataguides[C]//Proc of the Workshop on Query Processing for Semistructured Data and NonStandard Data Formats.1999.
[8]GOLDMAN K R.Integrated query and search of databases,XML,and the Web[D].Standford:Stanford University,2000.
NESTOROV S,ABITEBOUL S,MOTWANI R.Inferring structure in semistructured data[J].ACM SIGMOD Record,1997,26(4):39-43.
[10]BEERI C,MOLI T.Schemas for integration and translation of structured and semistructured data[C]//Proc of the 7th International Conference on Database Theory.London:SpringerVerlag,1999:296-313
[11]PAPAKONSTAMTINOUS Y,GARCIAMOLINA H,WIIDOM J.Object exchange across heterogeneous information sources[C]//Proc of the 11th International Conference on Data Engineering.Washington DC:IEEE Computer Society,1995:251-260.
[12]BUNEMAN P.Semistructured data[C]//Proc of the 16th ACM Symposium on Principles of Database Systems.New York:ACM Press,1997:117121.