第一節 研究動機
可擴展標示語言(Extensible Markup Language,XML) [Roy00]、[XML98]、
[Zisman00] 逐漸成為網際網路上資料溝通、交換的一套標準。XML 與 HTML 都 屬於標示語言,但XML 比 HTML 支援更豐富的功能,如允許使用者自訂標籤與 定義標籤之間的結構化關係,並於文件中使用自訂的標籤來描述對應的資料內 容。同時,XML 將資料呈現的方式從資料內容中分離出來,資料呈現主要是透 過可擴展樣式語言(eXtensible Stylesheet Language,XSL) [XSL01]來呈現。如此 設計使得XML 文件更簡潔、更具模組化,使得一份內容除了在 WEB 上瀏覽外 也可以放在不同設備上瀏覽,諸如PDA 或無線裝置等。
由於XML 具有的彈性與韌性,使其應用的層面很廣,如透過 XML 來做資 料交換、資料庫間的互動溝通、文件發佈傳播等等;不同程式之間可利用 XML 當作共通語言來進行資料交換,或者做為異質性系統間溝通的橋樑。由於 XML 具有允許自訂標籤的特性,使其本身亦扮演著母語言(Metalanguage,亦稱超語 言、元語言) 的角色。因此,許多領域乃以 XML 為基礎定義出適用的標示語言。
如[Zisman00]中所提及的 Mathematical Markup Language (MathML) [MathML]與 Chemical Markup Language (CML) [CML]等標示語言就是針對數學與化學領域定 義其標籤,以方便表示數學與化學式子。
XML 的彈性設計亦使得網路資訊的搜尋與擷取更快、更有效率,因為透過 自訂標籤來描述資料內容能使得資料的意義更明確。例如球隊的名稱可自訂一對 標籤為”<TEAM_NAME>球隊名稱</ TEAM_NAME>”,如此,搜尋引擎即可利用 標籤資訊有效且準確的找出使用者要的資料。舉例來說,使用者可發出一個檢索 條件為「找出球隊名稱為『Dodgers』的球隊資訊」,搜尋系統則利用自訂標籤的
特性尋找並比對標籤<TEAM_NAME> … </TEAM_NAME>間的資料(即球隊名 稱)是否為『Dodgers』,若球隊名稱符合時即將其相關的球隊資訊列出。
另外,XML 能夠較明確地表示文件資料內容的意涵。因為 XML 的標籤可 以視為文件內容的詮釋資料(Metadata),若直接利用 XML 來當作資料交換的格 式,更能表達資料內容的實際意義。以圖書館為例,通常利用ISO 2709 來做資 料交換的標準,資料內容為一連串資料的編碼,對館員來說,這樣的格式內容觀 看不易,必須經過進一步資料剖析的動作方能得知文件內容。相對地,若利用 XML 的標籤來標記書目的相關資料,透過標籤即可明瞭資料對應內容為何。例 如:『作者』的資料就會出現在一個對應的XML 標籤<Author>作者資料</Author>
內,如此必定讓處理交換資料的館員一目了然。
XML 具有如上所述的多方面優點,我們可以預期未來將會有越來越多的應 用會基於XML 來發展、越來越多的文件會利用 XML 來編寫。因此,當越來越 多應用以 XML 為基礎當作資料傳播、資料交換的格式時,如何有效管理 XML 資料已成為一個值得研究的方向。
在[Larson01]中針對 XML 資料管理系統提出了幾個不同的架構,大體上可 區分為三類:
1. 直接針對 XML 的特性來設計、建構一套適合 XML 文件的資料管理系統;
2. 透過關連式資料庫來管理;
3. 透過物件導向資料庫來管理。
無論利用哪種管理架構,資料索引與資料檢索皆為重點議題。對於XML 文 件中所隱含的結構化資訊,若能為其建置索引並有效地維護,必能提供更多元、
更有效率的檢索,如內容檢索(Content Query)與結構化檢索(Structured Query)。
為了有效率地進行結構化檢索,檢索系統必須針對結構化資訊建立結構索引 (Structured Index)。對於結構索引,[Lee96]提出如何利用 k-ary 完整樹狀(k-ary
Complete Tree)結構來保存結構資訊:由於每個結構化文件都能夠展開成一個階 層式的樹狀結構,故該論文將一份結構化文件對應至一個 k-ary 完整樹狀結構 上,並以該文件最大的分支數目作為此樹狀結構的分支數k;將結構化文件對應 到完整樹狀結構後,再根據此樹狀結構上的節點依序配置每個節點一個唯一元素 識別號(UID),透過節點之 UID 只需用簡單的運算即可得知該節點的父節點與子 節點之UID。該論文即利用此概念來記錄結構間的資訊。
對於一份結構化文件,若在結構資訊上有變動時,對應的索引資訊亦會受到 影響。例如:一份結構化文件可能會新增、修改或刪除某個標籤資料,對應到 k-ary 完整樹狀結構上,則表示有新的節點會加入索引結構、原有的節點資訊會 被修改成更新的資訊,而欲刪除的資料則會從索引結構中移除。索引資料更新的 狀況中,影響最大的情況在於新增資料時,有可能使完整樹狀結構的分支數超出 原有的最大分支數k 值,此時加入的節點已無法適當地配置 UID。針對此問題,
目前的解決方法乃是將新標籤資料加入結構文件中後,再重新將此結構文件對應 到一個新的k-ary 完整樹狀結構上。然而,當資料更新頻率非常頻繁時,此方法 非常耗時,尤其當資料量大時更凸顯了此缺點。
至於XML 檢索語言方面,迄今有許多研究針對 XML 文件提出各種檢索語 言。在眾多的檢索語言當中,目前尚未有一套標準的檢索語言。本論文中則實作 了一套可親性(User Friendly)高的 SQL-like 檢索語言,並將其應用於 XML 文件 檢索。
第二節 研究目的
1.2.1 避免結構索引重建
本論文中,針對結構索引乃以k-ary Tree 的樹狀結構為索引基礎。基於此索 引結構,如果XML 文件資料的變動非常頻繁,相對地結構資訊需時常變更,但
一個新的完整樹狀結構,此方法非常耗時,尤其當資料量非常龐大時,更顯示出 索引重建的效率不彰。有鑑於此,本論文提出一個漸進式結構化索引更新的方 法,避免結構索引整個重新建置,以改善索引維護的效能。
1.2.2 實作 XML 檢索語言
我們利用k-ary Tree 的樹狀結構做為 XML 結構化資訊的索引之用。有了資 料索引後,如何從中取出所需的資料乃為一個重要的議題。目前許多研究已提出 多種XML 檢索語言,諸如:Lorel [Abiteboul97]、XML-QL [Deutsch98]、XML-GL [Ceri99]…等,但這些檢索語言中,除了 Lorel 有說明如何透過其所使用的資料模 型(Data Model)來達到資料檢索外,其餘皆只提出檢索語法卻未提及細部實作的 方法。因此,本論文擬針對某個檢索語言透過我們使用的索引結構來實作檢索功 能。由於[Abiteboul97]提出的檢索語言 Lorel 乃是透過路徑表示式(Path Expression) 並定義了SQL-like 的檢索語法,對於熟悉 SQL 語法的使用者來說,更能快速熟 悉 Lorel 檢索語法並運用它以達到 XML 檢索的目的。因此,我們實作了 Lorel 的SQL-like 檢索語言,透過路徑表示式來檢索 XML 文件。
第三節 本論文內容與架構
本論文第二章介紹 XML 相關技術背景、Lorel 檢索語言簡介與本論文採用 的索引結構,第三章說明我們提出的漸進式結構化索引更新方法並概述實作的 XML 文件檢索系統架構,第四章則對實作的路徑條件檢索做詳細說明,第五章 展示實作的系統與漸進式結構化索引更新方法的效益評估分析,第六章歸納出結 論與未來研究方向。