Cyc是一個致力於將各個領域的本體及常識知識綜合地集成在一起,並在此基礎上實現知識推理的人工智能項目。其目標是使人工智能的應用能夠以類似人類推理的方式工作。這個項目是由道格拉斯·萊納特在1984年設立的,由Cycorp頁面存檔備份,存於互聯網檔案館)公司開發並維護。

該項目的一部分以OpenCyc形式發佈,OpenCyc項目以開源許可的形式向開發者和使用者提供API,可下載的數據集(特別是為語義萬維網實踐者提供了OWL版本的數據集)等。

概述

編輯

Cyc項目始於1984年,由當時的微電子與計算機技術公司開發。該項目最開始的目標是將上百萬條知識編碼成機器可用的形式,用以表示人類常識。CycL是Cyc項目專有的知識表示語言,這種知識表示語言是基於一階關係的[1]。 1986年Douglas Lenat預測如果想要完成Cyc這樣龐大的常識知識系統,這將涉及25萬條規則,並將要花費350個人年才能完成[2]。1994年,Cyc項目從該公司獨立出去,並以此為基礎成立了Cycorp頁面存檔備份,存於互聯網檔案館)公司。

"Cyc"名字的來源是"encyclopedia",發音很像syke,是美國德克薩斯州奧斯丁的Cycorp頁面存檔備份,存於互聯網檔案館)公司的有效註冊商標,Cycorp是一家由Douglas Lenat領導的致力於實現人工智能的公司。雖然Cyc知識庫本身為Cycorp公司所有,但是該公司在開源Apache許可證的保證下提供了一個用於自動推理的公共詞彙集,即OpenCyc。最近,Cyc還在一個以研究為目的的許可證保證下向人工智能研究者開放,並以ResearchCyc命名。

Cyc知識庫中表示的知識一般形如「每棵樹都是植物」、「植物最終都會死亡」。當提出「樹是否會死亡」的問題時,推理引擎可以得到正確的結論,並回答該問題。該知識庫中包含了320萬條人類定義的斷言,涉及30萬個概念,15000個謂詞。這些資源都採取CycL語言來進行描述,該語言採取謂詞代數描述,語法上與Lisp程式語言類似。

目前Cyc項目大部分的工作仍然是以知識工程為基礎的。大部分的事實是通過手工添加到知識庫中,並在這些知識基礎上進行高效推理的。最近Cycorp正致力於使Cyc系統能夠和最終用戶用自然語言進行交流,並通過機器學習來輔助形成知識的工作。

Cyc公司與很多公司具有相同的夢想,即採用Cyc自然語言理解工具解析整個互聯網並從中抽取結構化數據[3]

2008年,研究人員將Cyc資源被映射到許多維基百科的文章上[4],這使得Cyc與類似於DBpediaFreebase這樣的數據集進行連接變得更為容易。

知識庫

編輯

Cyc中的概念被稱為「常量(constants)」。常量以"#$"開頭並區分大小寫。常量主要分為以下幾類:

  • 個體,即individuals:例如#$BillClinton又如#$France。
  • 集合,即Collections:例如#$Tree-ThePlant(包含所有的樹),又如#$EquivalenceRelation(包含所有的等價關係)。集合中的個體被稱為該集合的實例(instance)。
  • 真值函數,即Truth Functions:該函數可被應用於一個或多個概念,並返回「真」或「假」。例如#$siblings表示兄弟姐妹關係,若兩個參數對應的內容為兄弟姐妹關係,則該概念返回真值。約定真值函數以小寫字母開頭,並且可以被拆分為若干個邏輯連接詞(例如#$and、#$or、#$not、#$implies)、量詞(#$forAll, #$thereExists等等)以及謂詞。
  • 函數,即Functions:用於以現有術語為基礎產生新的術語。例如#$FruitFn具有以下作用:若接收到用於描述一種(或一個集合)植物的聲明,則會返回其果實。約定函數常量以大寫字母開頭,並以「Fn」作為結尾。

Cyc中的謂詞最重要的是#$isa以及#$genls。#$isa表示某個對象是某個集合的個體(instance),#$genls表示某個集合是另外一個集合的子集合。由概念構成的事實採用CycL語言描述的「句子」表示。謂詞則寫在與其相關的對象之前,並以括號括起來: (#$isa #$BillClinton #$UnitedStatesPresident) 表示「Bill Clinton屬於美國總統集合」; (#$genls #$Tree-ThePlant #$Plant) 表示「所有的樹都是植物」; (#$capitalCity #$France #$Paris) 表示「巴黎是法國的首都」。

句子中可以包含變量,變量字符串以"?"開頭,這些句子被稱為「規則」。與#$isa謂詞有關的一條規則如下所示:

(#$implies
   (#$and
     (#$isa ?OBJ ?SUBSET)
     (#$genls ?SUBSET ?SUPERSET))
   (#$isa ?OBJ ?SUPERSET))

上面的規則可解釋為:"若OBJ為集合SUBSET中的一個實例,並且SUBSET是SUPERSET的子集,則OBJ是集合SUPERSET的一個實例。下面再給出另外一個典型的示例: (#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal) 上面的規則可解釋為:對於脊索動物(chordate)集合#$ChordataPhylum中的所有實例,都存在一個母性動物(為#$FemaleAnimal的實例)作為其母親(通過謂詞#$biologicalMother描述)。

Cyc知識庫是由許多「microtheories」(Mt)構成的,概念集合和事實集合一般與特定的Mt關聯。與整體的知識庫有所不同的是,每一個Mt相互之間並不矛盾,每一個Mt具有一個常量名,Mt常量約定以字符串"Mt"結尾。例如:#$MathMt表示包含數學知識的Mt,Mt之間可以相互繼承得到並組織成一個層次化的結構。例如#$MathMt特化到更為精細的層次便包含了如#$GeometryGMt,即有關幾何的Mt。

推理引擎

編輯

推理引擎是從知識庫中經過推理獲取答案的電腦程式。Cyc推理引擎支持一般的邏輯演繹推理,包括[5]

發佈版本

編輯

OpenCyc

編輯

OpenCyc的最近一個版本是於2009年7月發佈的OpenCyc 2.0版。OpenCyc 1.0版涵蓋了完整的Cyc本體,其中包含了47000個概念、306000個事實,主要是分類斷言,並不包含Cyc中的複雜規則。

OpenCyc的第一個版本發佈於2002年春天,該版本僅包含6000個概念、60000條事實。該知識庫是在Apache許可證保護下發佈的。Cycorp公司已表示有意採用無限制的授權形式及多種授權形式滿足其用戶的需求。CycL和SubL解釋器(允許用戶瀏覽並編輯知識庫、並具有推理功能)是免費發佈給用戶的,但是僅包含二進制文件,並不包含原始碼。OpenCyc具有針對Linux作業系統及微軟Windows作業系統的發行版。開源項目Texai[6]項目發佈了RDF版本的OpenCyc知識庫[7]

ResearchCyc

編輯

2006年,Cycorp發佈了二進制版本的ResearchCyc 1.0,這是向科研社群發佈的免費版本的Cyc(ResearchCyc在2004年經過了一整年的測試開發,並於2005年2月發佈了測試版)。ResearchCyc中除了包含OpenCyc中的分類信息外,還在知識庫中顯著增加了許多語義知識(及附加的事實),並加入了一個龐大的詞彙表、英文解析與生成工具、及用於編輯、查詢知識的Java接口。

應用

編輯

恐怖主義知識庫項目

編輯

恐怖主義綜合知識庫是一個正在開發中的Cyc應用,該應用的目標是最終創建一個包含所有恐怖組織、相關成員、領袖、其世界觀、創建者、贊助者、設施、地點、經費、目的、行為、戰術及某次特定恐怖活動事實的知識庫。該類知識以數理邏輯表示的聲明形式存儲[8]

Cyclopedia項目

編輯

Cyclopedia是一個正在開發的項目,它致力於用Cyc中的關鍵詞對Wikipedia網頁上的內容進行標註[9][10]

克利夫蘭臨床基金會項目

編輯

克利夫蘭臨床基金會採用Cyc開發了一個生物醫學信息的自然語言查詢系統[11]。該系統將查詢通過開放變量解析為CycL(高階邏輯)片斷構成的集合,隨後通過應用各種約束(如醫學領域知識、常識、語篇語用學、語法)之後,找到將這些片斷結合在一起,形成語義豐富的形式化查詢的方法[12]

對Cyc項目的批評

編輯

Cyc項目被譽為是「人工智能歷史上最有爭議的項目」之一[13],因此難免對它有批評的意見,這些意見可以概括為:

  • 系統的複雜度 - 該系統具有創建百科全書式知識庫的野心,卻手動添加所有的知識到系統中;
  • 知識表示廣泛的具體化引發的可擴展性問題,特別是以常量的形式進行;
  • 對物質概念的解釋難以令人滿意,對內在屬性和外在屬性區分不清晰;
  • 缺乏對Cyc推理引擎效率測試的有意義的標準測試及與其他類似系統的比較;
  • 目前該系統在深度和廣度上都有待完善,然而測度該系統的完備性本身就是很困難的;
  • 缺乏文檔;
  • 缺乏最新的在線培訓材料,不便於初學者學習使用該系統;
  • 缺乏對普通對象構成的本體描述的斷言。

參考文獻

編輯
  1. ^ Lenat, Douglas. Hal's Legacy: 2001's Computer as Dream and Reality. From 2001 to 2001: Common Sense and the Mind of HAL. Cycorp, Inc. [2006-09-26]. (原始內容存檔於2006-10-06). 
  2. ^ The Editors of Time-Life Books. Understanding Computers: Artificial Intelligence. Amsterdam: Time-Life Books. 1986: 84. ISBN 0-7054-0915-5. 
  3. ^ Cyc R&D. [2009-02-19]. (原始內容存檔於2009-02-20). 
  4. ^ INTEGRATING CYC AND WIKIPEDIA: Folksonomy meets rigorously defined common-sense. [2009-02-19]. (原始內容存檔於2009-03-21). 
  5. ^ cyc Inference engine. [2009-02-19]. (原始內容存檔於2009-02-20). 
  6. ^ The open source Texai project. [2020-09-25]. (原始內容存檔於2020-08-22). 
  7. ^ Texai SourceForge project files. [2010-11-23]. (原始內容存檔於2009-02-04). 
  8. ^ The Comprehensive Terrorism Knowledge Base in Cyc (PDF). [2009-02-19]. (原始內容 (PDF)存檔於2008-05-17). 
  9. ^ DBpedia and (Open-)Cyc. [2009-06-09]. (原始內容存檔於2009-07-09). 
  10. ^ Cyclopedia Sampleshowing cyc highlighted cyc concept for family. [2010-11-23]. (原始內容存檔於2010-07-09). 
  11. ^ 存档副本. [2010-11-23]. (原始內容存檔於2010-06-07). 
  12. ^ 存档副本. [2010-11-23]. (原始內容存檔於2010-12-31). 
  13. ^ Bertino, Piero & Zarri 2001,第275頁

進一步閱讀建議

編輯

外部連結

編輯