語意網:電腦也能看懂(2/3)
撰文/Tim Berners-Lee、James Hendler & Ora Lassila|譯者/高虹|審訂/黃居仁
轉載自《科學人》2002年8月第6期
知識表徵
為使語意網發揮其功能,電腦必須取得結構化資訊庫和一組推理規則,才能自動推理。早在網路出現前,人工智慧研究者就已開始研究這樣的系統。這項技術往往稱為「知識表徵」,它目前的處境,好比當年網路問世前的超文件技術:它顯然是個好點子,也有不錯的樣品系統,只是還未到改變世界的地步罷了。知識表徵有極大應用潛力,但是必須把它連進單一的全球系統才能充分發揮。
傳統的知識表徵系統,特色是「中央控制」。對於「父母」或「車輛」此類一般概念,它要求每個人都用完全一樣的定義。但中央控制實在窒礙難行,隨容量大小和涵蓋範圍的擴大,系統很快就會難以控制。
而且,這些系統接受的問題範圍通常已小心設限,以確保機器能夠適切回應,提供答案。這個問題令人想起數學上的哥德爾定理:任何夠複雜又有用的形式系統,只要維持一致性,必然有無法在系統內判斷真偽的句子(稱為「哥德爾句」),像是「這句話是假的」此類佯謬的各種版本。為了避免這類問題,傳統的知識表徵系統,通常都自有一套嚴密而特定的規則來做資料推理。例如,一個宗譜系統,做家族資料推理的規則中就可能會包括「伯父的妻子是伯母」這一條。儘管資料可從一個系統轉移到另一個系統,但推理規則因形式完全不同,通常無法轉移。
相反的,語意網研究者認為,要換取較多功能,容許佯謬和哥德爾句存在是必須付出的代價。為了讓網路如願做廣泛的推理,我們用來制定規則的語言必須有盡量強的表達能力。這個基本理念就像傳統網路的一樣:早在網路開發初期,執意反對者就指出,它永遠不可能是個組織完善的圖書館;沒有中央資料庫和樹狀結構,絕對無法保證可以找到所有要找的東西。他們說對了。但是網路系統的表達能力,使得大量的資訊唾手可得,而且大量的網上資料,現在搜索引擎已經提供了非常完整的索引(這在10年前看來是不切實際的)。因此,語意網的挑戰是要提供一種新的語言,既能表達資料和對資料進行推理的規則,又能夠接受任何現有的知識表徵系統的推理規則。
目前語意網建構者面臨的挑戰,是把邏輯加在網上:讓網路有使用規則做推理,選擇下一步動作及回答問題的能力。此事相當複雜,因為它同時涉及數學和工程兩方面的決策。加在網上的邏輯必須強到足以能描述物件的複雜屬性,但又不能強到讓網路代理連佯謬都列入考慮。幸好,我們要表達的資訊大多是「六角螺栓是一種機器螺栓」這類形式,只要在現有語言上加一點額外的詞彙就可行了。
開發語意網的兩個重要技術已經就位:可擴展標示語言(XML) 和資源描述架構(RDF)。XML 讓每個人都能自己創造標記來標註網頁或網頁上的章節,比如〈zip code〉或〈alma mater〉這樣的隱藏標記。網頁程式可以巧妙地使用這些標記,但程式設計師必須知道網頁作者用的每個標記到底表達什麼。簡言之,XML讓使用者賦予文件任何結構,但不規定結構含意(見「延伸閱讀1」)。
意義要靠RDF來表達,RDF把意義編入成套的三元組(triple)。每個三元組就像一個基本句子有主詞、受詞和動詞一般,可以用XML的標記寫成。在RDF中,一個文件宣告特定的事物(人、網頁或任何事物)具有某些屬性(如「是……的姐妹」、「是……的作者」),且這些屬性具有某些受詞(另一個人、另一個網頁)。這一個結構,可以輕而易舉地描述機器處理的絕大部分資訊,主詞、受詞和動詞都各用一個通用資源標幟碼(URI)來標示,而最常見的URI就是單一資源定址器(URL)。如此,任何人都能定義新概念、新動詞,只要他在網上的某個地方定下一個URI就行了。
人類語言用同一個詞就能表達好幾個稍有不同的事物,所以它顯得豐富多采,而機器則不然。假設我僱用小丑快遞公司送生日氣球給我的客戶,很不幸,該公司從我的資料庫取得地址,卻不知道我資料庫的「地址」其實是寄帳單的地址,而且許多都是郵政信箱。結果,我僱來的小丑款待了郵局裡的員工,雖然這未必是一件壞事,但顯然不是我的原意。要解決這個問題,只要給每個概念一個獨立的URI就行了。如此,“address”一詞的含義,到底是指「郵政信箱地址」、「街道地址」,還是「演說」,都可以清楚區別開來。
RDF的三元組構成了相關事物的資訊網。因為RDF用URI把資訊編碼入文件,URI確保了概念不只是文件上的字詞,而且人人都可在網上找到它單一的定義。例如,假如我們使用一個儲存人們地址的資料庫,要找出某個住在特定郵遞區號的人,我們需要知道每個資料庫裡哪個欄位儲存名字,哪個欄位儲存郵遞區號。RDF可以用URI來說明”(field 5 in database A)(is a field of type)(zip code)”,而不是用一段描述來說明每一個名詞。
知識本體
當然,事情沒那麼簡單就完了,因為兩個資料庫可能給同一個概念(如郵遞區號)下了兩個不同的標幟碼。一個要在兩個資料庫間比較或組合資訊的程式,必須知道它們兩個是指同樣的事物。理想狀況是,無論程式進入什麼資料庫,一定有辦法發現這種相同意義。
解決這一問題的辦法,是語意網的第三個基本要素,也就是稱為「知識本體」的資訊群體。哲學上,本體論是探討存在本質的理論,探討什麼類型的事物存在,並研究這類理論的一門學科。人工智慧和網路研究者借用了這一個名詞,變成他們的行話。對他們而言,知識本體指的是「詞與詞之間的關係,在形式上已定義清楚的檔案或文件」。網上典型的知識本體都有一個分類法和一組推理規則。
分類法定義物件的種類和它們之間的關係。例如,地址可以定義為一種位置,城市代碼可以定義只適用於位置……等等。以種類、子類和實體間的關係來區分,真是網上強而有力的工具。我們可以給種類指定屬性,讓它們的子類繼承其屬性,以表達實體間的關係。如果城市代碼一定屬於城市類,而且城市通常有網站,即使沒有資料庫把城市代碼和網站相連,我們也可以討論和(某個)城市代碼相關的網站。
知識本體的推理規則賦予了更強的功能。一個知識本體可以表達如下規則:「如果某個城市代碼和一個州代碼相關,而且某個地址用了那個城市代碼,那麼該地址也會有該州代碼。」比如,程式可藉此推斷出:康乃爾大學在綺色佳,也就一定在美國的紐約州,所以它的地址就應該有美國的代碼。電腦並不真正「理解」這類資訊,但它現在不僅可以更有效處理詞彙,而且提供使用者更有用和更有意義的資訊。
知識本體網頁出現後,詞彙(與其他)問題就有解決方案了。網頁上的詞彙和XML代碼的意義,可以靠指標器(pointer)指到知識本體。當然,如果我指向的知識本體把地址定義為包含郵遞區號(zip code),而你指向的知識本體卻用郵政編碼(postal code),前面所說的問題又會出現。這類混淆可以靠知識本體(或其他網路服務)提供對等關係訊息來解決,比如說,上述兩個知識本體中至少有一個擁有這項資訊:我的郵遞區號相等於你的郵政編碼。
我們前文提到派小丑去款待客戶的計畫,在表明兩個資料庫中的地址有不同定義時,問題就解決了一半。因為兩個不同的「地址」概念各有其URI,程式就不會混淆。事實上,程式需要知道的是這些概念之間的關係。這時程式可以用一個服務系統,取出第一個知識本體定義下的郵政地址名單,去掉郵政信箱和其他不適合的「地址」,把它轉換為實際地址(第二個知識本體定義下)的名單。知識本體所提供的架構和語意,使創業者較容易建立上述服務系統,而且該系統用起來簡易又合乎直覺。
知識本體增強網路功能的方式有很多。它們可以用一種簡單方式改進網上搜索的準確性,搜索程式可以僅尋找那些論及準確概念的網頁,而不是把所有使用含糊關鍵字的網頁都找出來。更高階的應用,會用知識本體把網頁上的資訊和相關知識結構及推理規則連起來。我們在網上放了一個實例(http://www.cs.umd.edu/~hendler),當你開啟這個網頁時,你會看到標題為”Dr. James A. Hendler.”的普通頁面。任何人都可以很容易找到亨德簡介的連結,並在那裡讀到他從布朗大學取得博士學位。然而,電腦程式要找到此類資訊就必須寫得非常複雜,才能猜到這個資訊可能在簡介裡,以及讀懂簡介中的英語。
對電腦來說,這個網頁連到一個提供電腦科學系資訊的知識本體網頁。比如說,教授在大學裡工作,而且通常都有博士學位。網頁上進一步的標註(普通的瀏覽器通常不顯示),是以知識本體的概念指出,亨德的博士學位得自以http://www.brown.edu/(布朗大學的網址)為URI的實體。電腦還發現亨德是某個研究計畫的成員,有個特定的電子郵件信箱等等。所有這些資訊,電腦都已經可以處理,而且能夠回答諸如「亨德博士從什麼地方獲得學位」等詢問。這類詢問目前仍需利用搜尋引擎人工找尋,然後翻動各網頁才能找出答案。
此外,有些複雜問題的答案無法在單一網頁上找到,標註使處理這種問題的程式變得更容易開發。假定你希望找到在去年貿易大會上相遇的那位庫克(Cook)女士。你不記得她的名字了,但是你記得她是你一位客戶的員工,她的兒子在你的母校念書。一個智慧型搜尋程式,可以對所有庫克的網頁進行篩選(去除諸如cooks、cooking、the Cook Islands等網頁),找到在你客戶名單上的公司上班的人,並循著他們孩子的網頁連結,追查是否有孩子在你的母校就讀。(待續)
(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)