本節書摘來自華章出版社《語義網基礎教程(原書第3版)》一 書中的第1章,第1.2節,作者:(希)grigoris antoniou(荷)paul groth(荷)frank van harmelen(荷)rinke hoekstra ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
目前,網際網路上内容的格式更适合人類讀者而非計算機程式。html是(直接或借助工具)撰寫網頁的主流語言。一個理療師的典型網頁的一部分可能如下所示:

對人們而言,這些資訊以一個令人滿意的方式表達,但是對機器而言則存在問題。基于關鍵詞的搜尋會識别physiotherapy和consultation hours等詞。并且一個智能agent甚至能夠識别該中心的全體人員。但是,區分治療師和秘書則會存在困難,查找準确的咨詢時間還會碰到更大的困難(因為不得不沿着state of origin遊戲的連結來查找它們發生的時間)。
解決這些問題的語義網方法不是開發一種超級智能的agent,而是嘗試從網頁端入手。如果html能夠被更适合的語言取代,網頁就可以攜帶它們的内容。在包含為人類讀者生成的文檔格式資訊的同時,網頁還可以包含有關它們内容的資訊。
在這個方向上的第一步是可擴充标記語言(extensible markup language,xml),它允許在網頁上定義資訊的結構。在該例子中,可能存在以下資訊:
這種表達形式非常容易被機器處理。特别是,它适用于網際網路上的資訊交換,這是xml技術最重要的一個應用領域。
但是,xml依然處于文法層次,因為它描述的是資訊的結構(structure),而非資訊的含義(meaning)。語義網的基礎語言是rdf,它是一種生成有關資訊片段聲明的語言。在該例子中,這樣的聲明包括:
對于人類讀者,xml表示形式和一個rdf聲明清單的差異微不足道,但是它們本質上非常不同:xml描述的是結構而rdf生成的是資訊片段的聲明。
中繼資料(metadata)一詞的含義是:關于資料的資料。中繼資料捕獲資料的含義(meaning)部分,也就是語義網中所說的語義(semantic)一詞。
本體(ontology)一詞源于哲學。在哲學中,它被用作一個哲學子領域的名稱,即對存在的本質的研究(希臘單詞的oooi),它屬于形而上學的一個分支,以最通俗的術語而言,它關注于識别真實存在的事物的類别,以及如何描述它們。例如,世界是由具體事物構成的,這些事物根據共享的屬性可以被歸類到抽象的類别,這種觀測是一種典型的本體化任務。
但是,近些年來,本體成為被計算機科學領域引進的許多單詞之一,并且被賦予了一個與原始含義迥然不同的具體技術含義。我們現在使用“一個本體”來代替“本體”。針對我們的目标,我們将使用t. r. gruber的定義,這個定義後來由r. studer修訂:一個本體是一個概念體系的一種顯式的、形式化的歸約(an ontology is an explicit and formal specification of a conceptualization)。
通常,一個本體形式化地描述了一個論域。典型地,一個本體由一個包含術語以及術語間的聯系的有限清單組成。術語(term)指稱領域中的重要概念(concept,對象的類(class))。例如,對于一個大學領域,教職工、學生、課程、階梯教室和學科是一些重要概念。
一般地講,聯系(relationship)刻畫了類的層次性。一個層次描述了一個類c是另一個類c'的子類,僅當c中的每個對象也屬于c'。例如,所有教師都是教職工。圖1-3描述了大學領域的這樣一個層次結構。
除了子類聯系之外,本體還可能包含以下資訊:
屬性(x teaches y);
值限制(隻有教師才能授課);
不相交聲明(教師和普通教工是不相交的);
對象間邏輯關系的說明(每個院系必須至少有10位教師)。
網際網路環境下,本體提供了某個領域的一個共享的了解。該共享的了解對于克服術語上的差異必不可少。例如,一個應用中的郵編(zip code)可能與另一個應用中的郵編(postcode)一樣。另一個問題是,兩個應用可能使用相同的術語來表示不同的含義。在大學a中,course可能指的是一門學位(如計算機科學),而在大學b中則可能是一個科目(如cs 101)。這種差異可以通過将特殊的術語映射到一個共享的本體或定義本體間的直接映射來克服。無論是何種情況,都可以明顯看出本體提供了對語義互操作性的支援。
本體有助于網站的組織和導航。現在的許多網站在頁面的左邊呈現了一個術語的概念層次的頂層目錄。使用者可以點選它們來展開子目錄。
同時,本體有助于提高網際網路搜尋的準确性。搜尋引擎可以尋找指向一個本體中一個精确概念的頁面,而不是通過某些含糊的關鍵詞收集到的所有頁面。通過這種方式,網頁和查詢之間術語上的差異可以克服。
此外,網際網路搜尋可以利用一般化/特殊化資訊。如果一個查詢無法找到任何相關文檔,那麼搜尋引擎可以建議使用者使用一個更一般的查詢。甚至搜尋引擎可以預先執行這樣的查詢來降低使用者采用這一建議的響應時間。或者在獲得太多的搜尋結果時,搜尋引擎可以建議使用者使用更特殊的查詢。
人工智能(artificial intelligence,ai)領域中,開發和使用本體語言已經有很長的曆史。這是語義網研究可以依賴的基礎。目前,網際網路上最重要的本體語言包括:
rdf模式是一種詞彙表描述語言,用來描述rdf資源的屬性和類,以及這些屬性和類的泛化層次的語義。此外,屬性的定義域和值域也可以定義。
owl是一種描述屬性和類的更豐富的詞彙表描述語言,例如類之間的關系(比如不相交)、基數(比如“恰好等于1”)、相等、更加豐富的屬性類型定義、屬性的性質(比如對稱性),以及枚舉類等。
邏輯是一門研究推理的原理的學科,它可以追溯到亞裡士多德(aristotle)。一般而言,邏輯首先提供形式語言(formal language)來表達知識。其次,邏輯為我們提供廣泛了解的形式語義(well-understood formal semantics):在絕大多數邏輯中,句子的含義不需要通過對知識的操作來定義。我們常提到描述性知識:我們描述什麼是成立的,而不需要關心它如何被推斷出來。
再者,自動化的推理機能夠從給定知識中推斷(推導)出結論,因而使得隐式的知識顯式化。這些推理機已經在人工智能領域中廣泛研究。這裡有一個推導的例子。假設我們知道所有的教授都是教師,所有的教師都是教職工,而michael是一名教授。在謂詞邏輯中,這些資訊可以表述如下:
接下來,我們可以推斷出下列知識:
注意,這個例子中包含了本體中常見的知識。是以,邏輯能夠用于揭露隐式給定的本體知識。通過邏輯推理,也可以發現未知的聯系和不一緻性。
但是邏輯比本體更加寬泛。邏輯還可以被智能agent用于決策和選擇動作路線。例如,一個購物agent可能決定基于下面的規則給某位顧客一個折扣:
其中,顧客的忠誠度由存儲在企業資料庫中的資料确定。
通常,在表達能力和計算高效性之間存在一個權衡。一個邏輯的表達能力越強,它生成結論的計算代價就變得越昂貴。甚至當遇到不可計算性障礙時,生成某些結論将變得不可能。幸運的是,和語義網相關的大量知識看起來是一種相對受限的形式。例如,之前的例子包含了規則的形式“如果前提,那麼結論”,其中前提和結論是簡單的聲明,并且隻有有限個對象需要被考察。這個邏輯子集稱為horn邏輯,是易處理的并且由高效的推理工具支援。
邏輯的一個重要的優點是它能夠提供結論的解釋(explanation):推導步驟的序列是可回溯的。而且人工智能領域的研究人員已經開發出對人類友好的方式來展現解釋,通過将一個證明組織成一個自然的推導過程,并将一組底層的推導步驟歸類成人們通常認為的單個證明步驟的元步驟。最終解釋将從答案回溯到一個給定的事實和使用的推理規則的集合。
解釋對于語義網很重要,因為它們增加了使用者對語義網agent的信心(參見之前的理療師例子)。tim berners-lee提到過一個“oh yeah?”按鈕來請求解釋。
解釋對于agent之間的活動也必不可少。當一些agent有能力生成邏輯結論時,另一些則有能力驗證證明(validate proof),即檢查一個由其他agent生成的斷言是否可以被證明。這裡有一個簡單的例子。假設agent 1,代表一個線上商店,發送一條消息“你欠我80美元”(當然,不是以自然語言的形式,而是用一種形式化的、機器可處理的語言)給agent 2(代表一個人)。然後,agent 2可能會要求提供解釋,而agent 1可能響應一個如下形式的序列:
購買超過80美元商品的網際網路日志
商品傳遞證明(例如,ups的追蹤号)
使用商店術語和條件的規則:
這些事實通常将被追溯到某些網址(它們的可信性可以被agent驗證),而這些規則可能是一個共享的商業本體或者線上商店政策的一部分。
對于網際網路上有用的邏輯,它必須能和其他資料一同使用,并且還必須可以被機器處理。是以使用網際網路語言來表達邏輯知識和證明還在進行中。早期的方法工作在xml層次,但是在未來,規則和證明将需要表示在rdf和本體語言層次。
正如我們所說的,實作語義網所需的大部分技術建立在人工智能領域工作的基礎上。盡管人工智能擁有很長的曆史,但它在商業上并不是一直成功的,人們或許會擔心,最壞情況下,語義網将重蹈人工智能的覆轍:大的承諾導緻過高的期待,最終發現無法實作(至少不是在許諾的時間範圍内實作)。
這個擔心是不公平的。實作語義網願景并不依賴于人類層次的智能;事實上,正如我們嘗試解釋的那樣,語義網是以一種不同的方式來接近挑戰。人工智能的完整問題是一個深層次的科學問題,可能與實體學(解釋實體世界)或者生物學(解釋生物世界)的核心問題相當。正如所見,沒有實作過去某些時候曾許諾的在10~20年裡實作人類層次的人工智能,并沒有令人感到吃驚。
但是在語義網上,部分解決方案是可行的。即使一個智能agent不能生成一個人類使用者可以生成的所有結論,相比現在,這個agent仍然對網際網路貢獻良多。這為我們帶來了另一個差別。如果人工智能的最終目标是建立一個表達人類層次智力(或更高層次)的智能agent,語義網的目标則是輔助人類使用者參與日常線上活動。
顯而易見,語義網頻繁使用目前的人工智能技術,而人工智能技術的發展将帶來一個更好的語義網。但是不必等到人工智能取得更高層次的成就,目前的人工智能技術已經足夠在很長一段時間内實作語義網的願景。