時間:2022-11-01 16:30:02 | 來源:信息時代
時間:2022-11-01 16:30:02 來源:信息時代
面向文本結(jié)構(gòu)化查詢語言 : 一種基于SQL的文本結(jié)構(gòu)查詢語言。它通過擴(kuò)展SQL語義來支持對文本數(shù)據(jù)庫的結(jié)構(gòu)化/非結(jié)構(gòu)化查詢。在文本數(shù)據(jù)庫中,面向文本結(jié)構(gòu)化查詢語言比普通的文本內(nèi)容形式查詢語言具有更強(qiáng)的查詢功能。
1.面向文本結(jié)構(gòu)化查詢語言的分類
在文本數(shù)據(jù)庫中,隨著文本結(jié)構(gòu)/內(nèi)容形式的多樣化、用戶文本查詢需求的增加,單純內(nèi)容形式的查詢已不能滿足需求,因此需要提供特殊的面向文本結(jié)構(gòu)化查詢。文本結(jié)構(gòu)化查詢根據(jù)需求的不同分為三大類:
(1)固定結(jié)構(gòu)查詢(fixed structure queries):提供固定域查詢功能,類似于關(guān)系數(shù)據(jù)庫。這類查詢作用于規(guī)則文本。規(guī)則文本是不包含嵌套關(guān)系或?qū)哟侮P(guān)系的文本。
(2)超文本查詢(hypertext queries):主要提供超文本間導(dǎo)航查詢功能。這類查詢作用于超文本。
(3) 層次結(jié)構(gòu)查詢(hierarchical structure queries): 提供文本內(nèi)或文本間的層次化查詢功能,類似于XML數(shù)據(jù)庫中的XPath查詢。主要用于層次關(guān)系或嵌套關(guān)系的文本,如HTML、XML等形式的文本。
為了滿足上述查詢需求,通過擴(kuò)展SQL標(biāo)準(zhǔn),提出了一個面向文本結(jié)構(gòu)化查詢語言的概念。
2.面向文本的查詢協(xié)議
通常,存在多種面向文本的查詢協(xié)議,其中主要包括:
(1) Z39.50: 是ANSI和NISO在1995提出的一種文本查詢協(xié)議,已廣泛應(yīng)用于文本數(shù)據(jù)庫中。Z39.50定義了具體的查詢語言和語義,并且還定義了文本數(shù)據(jù)庫客戶端和服務(wù)器端的會話,連接和信息交換等內(nèi)容。
(2) WAIS(wide area information service): 是1990年提出的一個廣域信息服務(wù)協(xié)議簇。在WAIS中,提供了文本查詢功能,主要用于查詢因特網(wǎng)上數(shù)據(jù)庫文本信息。
(3) CCL(common command language):是NISO提出的一種Z39.50擴(kuò)展協(xié)議。CCL以布爾模型為基礎(chǔ),提供了19類文本查詢命令。
(4) SFQL(structural full-text query language):是一種SQL的擴(kuò)展協(xié)議,提供多種文本結(jié)構(gòu)查詢功能。SFQL協(xié)議以關(guān)系模型為基礎(chǔ),其中的每個文本以單個元組形式存在,并且以SGML格式進(jìn)行標(biāo)識。SFQL查詢語言格式基本類似于SQL,例如:
Select abstract from journal.papers where title contains “text search”
SFQL提供了豐富的查詢操作符,包括布爾操作符、邏輯操作符、詞典操作符、近似操作符等,例如:
Select abstract from journal.papers where paper contains “retrieval” or like “info%” and date>1/1/98
相對于其他文本查詢協(xié)議,SFQL功能更強(qiáng),可擴(kuò)展性更好,最有可能成為面向文本結(jié)構(gòu)化查詢語言業(yè)界標(biāo)準(zhǔn)。
面向文本結(jié)構(gòu)化查詢語言(to-SQL)的基本格式定義如下:
Select{[Type-name] Variable | Function of Variables}
[Where condition]
其中: Type-name是要查詢的文本內(nèi)容的類型名。Variable代表查詢結(jié)果。由于Variable前面的Type-name是可選的,當(dāng)不存在時,則必定有Where子句對Variable進(jìn)行約束。Function of Variables為內(nèi)置函數(shù),相當(dāng)于SQL中的Count等內(nèi)置函數(shù)。condition為查詢條件,也就是查詢約束,它是由變量和內(nèi)置操作構(gòu)造的邏輯表達(dá)式。Where字句是可省的。
3. 結(jié)構(gòu)查詢語言to-SQL的分類
查詢語言to-SQL按查詢需求的不同可歸納為四類,分別為: 簡單結(jié)構(gòu)查詢; 內(nèi)容約束的結(jié)構(gòu)查詢;結(jié)構(gòu)約束的結(jié)構(gòu)查詢和結(jié)構(gòu)與內(nèi)容約束的結(jié)構(gòu)查詢。
(1)簡單結(jié)構(gòu)查詢: 無任何其他約束條件的文本結(jié)構(gòu)查詢,例如:
Select Chapter x: 查詢文本中所有論文的章節(jié)。
Select Section.Title x: 查詢文本中所有的段標(biāo)題。
Select Hierarchy(Doc) x: 查詢文本中所有論文的目錄。其中Hierarchy(.)是內(nèi)置函數(shù),用于返回參數(shù)變量所代表的對象的層次結(jié)構(gòu)。
(2) 內(nèi)容約束的結(jié)構(gòu)查詢: 包含內(nèi)容約束條件的文本結(jié)構(gòu)查詢,例如:
Select Doc x Where x.Title contains: “結(jié)構(gòu)化查詢”查詢所有標(biāo)題中包含“結(jié)構(gòu)化查詢”字樣的文本。
Select Chapter x Where x contains: “結(jié)構(gòu)化查詢”AND“文本分類”查詢包含“結(jié)構(gòu)化查詢”和“文本分類”的章節(jié)。其中,contains所帶的字符串表達(dá)式后面還可以跟比較符(>、<、=、>=、<=)和具體參數(shù)。
(3)結(jié)構(gòu)約束的結(jié)構(gòu)查詢: 包含有結(jié)構(gòu)約束條件的文本結(jié)構(gòu)查詢,例如:
Select Chapter x Where x contains Figure: 查詢所有包含有圖的章節(jié)。
Select x Where x Father Chapter: 查詢父類為Chapter的所有數(shù)據(jù)對象,這里Father為內(nèi)置操作。
Select x Where x Child(1) Title: 查詢文本中第一個孩子結(jié)點為標(biāo)題的所有對象,這里Child為內(nèi)置函數(shù)。
(4)結(jié)構(gòu)和內(nèi)容約束的結(jié)構(gòu)查詢: 又叫做復(fù)雜結(jié)構(gòu)查詢,是即包含結(jié)構(gòu)約束,又包含內(nèi)容約束的文本結(jié)構(gòu)查詢,例如:
Select Doc x Where First (1,para,x) contains:“文本檢索”查詢第一段落包含“文本檢索”的所有文檔。這里First為內(nèi)置函數(shù)。
Select Doc x Where (x.Title contains“文本檢索”)AND
(x contains (Select Para y Where y contains“查詢語言”))
查詢標(biāo)題包含“中文檢索”并且有段落包含“查詢語言”的所有文本。這是一個包含有子查詢的復(fù)雜結(jié)構(gòu)查詢。
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。