本体论_(计算机)

在電腦科學和資訊科學中，**本體**是指對概念、資料和實體之間的類別、屬性和關係的表示、命名和定義，這些概念、資料和實體構成了一個、大量或所有的論域。本體提供的是特定領域之中那些存在著的物件類型或概念及其屬性和相互關係；或者說，本體就是一種特殊類型的術語集，具有結構化的特點，且更加適合於在電腦系統之中使用；或者說，本體實際上就是「對特定領域之中某套概念及其相互之間關係的形式化表達（formal representation）」。本體是人們以自己興趣領域的知識為素材，運用資訊科學的**本體論**原理而編寫出來的作品。本體一般可以用來針對該領域的屬性進行推理，亦可用於定義該領域（也就是對該領域進行建模）。此外，有時人們也會將本體稱為**本體論**。

作為一種關於現實世界或其中某個組成部分的知識表達形式，本體目前的應用領域包括（但不僅限於）：人工智慧、語意網、軟體工程、 生物醫學資訊學、圖書館學以及資訊架構。

## 概述

英文術語「_ontology_」一詞源於哲學領域，且一直以來存在著許多不同的用法。在電腦科學領域，其核心意思是指一種模型，用於描述由一套物件類型（_概念_或者說_類_）、屬性以及關係類型所構成的世界。儘管不同的本體對於這些構成成分的確切稱謂有所不同，但它們卻都是一部本體不可或缺的基本要素。一般來說，人們所普遍期望的一點就是，本體之中模型的那些特徵應當非常類似於相應的現實世界。

就電腦科學與哲學來說，二者所說的本體之間的共同之處就在於，它們都是依據某種類別體系，來表達實體、概念、事件及其屬性和相互關係。在這兩個領域當中，存在針對本體相對性（ontological relativity）的種種問題（比如，哲學領域的奎因和克里普克，電腦科學領域的索瓦和高利諾），人們已經和正在開展相當大量的工作；而且，人們也在討論關於規格化本體是否具有生命活力（比如，哲學領域之中針對基礎主義（foundationalism）的討論，人工智慧領域之中針對 Cyc 專案的討論）。二者之間的那些差別在很大程度上只是側重點的問題。與電腦科學領域的研究人員相比，哲學家們則較少關心建立固定不變的受控詞表。然而，電腦科學家們則較少參與有關首要原則的討論（比如，關於是否存在諸如不變本質（fixed essences）之類事物的討論，或者關於實體在本體論上必定比過程更為基本的討論）。

## 歷史

從歷史上來看，本體源自哲學之中稱為「形上學」的分支。形上學所關注的是現實的本質，也就是存在的本質。作為哲學的一個基本分支，形上學關注的是分析存在的各種類型或模式，且往往尤其關注共相與殊相之間的關係、本徵性質與非本徵性質之間的關係以及本質與存在之間的關係。本體論探索活動的傳統目標尤其是，為了揭示那些基本的類別或者說種類，而在關鍵之處將現實世界劃分為物件的自然類別。

二十世紀下半葉，哲學家們就如何構建本體的可行方法或途徑展開過廣泛的討論，但實際上他們自己卻並沒有真正「構建」出任何非常精細詳盡的本體。與此相比，電腦科學家們當時則正在構建著一些大型而又穩健的本體（如 WordNet 和 Cyc），但相對來說卻很少針對「如何」構建本體而進行辯論。

自二十世紀 70 年代中期以來，人工智慧（簡稱 _AI_）領域的研究人員認識到，知識的取得乃是構建強大 AI 系統的關鍵所在。AI 研究人員認為，他們可以把新的本體建立成為計算模型，從而成就特定類型的自動推理。二十世紀 80 年代，AI 領域就開始採用術語 _ontology_ 來同時指稱關於模型化世界的一種理論以及知識系統的一種組件。藉助於來自哲學本體論的靈感，一些研究人員繼而把電腦本體論視為一種應用哲學。

二十世紀 90 年代初期，湯姆・格魯伯發表了一篇後來得到廣泛參照的網頁和論文《_邁向創用 CC 型本體的設計原則_》。之所以該論文獲得人們如此的青睞，那要歸功於其中格魯伯對於電腦科學術語「_ontology_」的審慎定義。格魯伯採用這條術語來指一種對於某一_概念體系_（_概念表達_或_概念化過程_）（_conceptualization_）的_詳細說明_（_specification，明確表述_）。也就是說，就像關於特定程式的形式化規格說明（形式化規約）那樣，本體就是對那些可能相對於某一智慧型體（agent）或智慧型體群體而存在的概念和關係的一種描述。這項定義與「ontology」作為「概念定義之集合」的用法是一致的，但相對來說要顯得更為通用。不過，這個單詞在此的含義卻有別於哲學領域對它的用法。

本體往往等同於那些由各種類、類之定義以及歸類關係（subsumption relation）所構成的分類法階層，但本體並不一定僅限於此類形式。同時，本體也並不局限於保守型的定義（也就是傳統邏輯學意義上的那些定義，它們所引入和採用的僅僅是術語，而沒有添加任何有關現實世界的知識）。要明確而又詳細地說明所要表達的某個概念之時，我們需要聲明若干的公理，從而對所定義術語的那些可能解釋加以約束和限制。

在二十一世紀伊始的頭幾年，認知科學的跨學科專案一直在將這兩個領域的學者群體拉得更近。例如，有人談到「哲學領域當中的電腦化轉變」。在這種轉變當中，包括哲學家們分析電腦科學領域所編制的形式化本體（有時甚至還在工作中直接運用電腦軟體），而與此同時，電腦科學領域的研究人員也在越來越多地參照那些致力於本體論的哲學家們的研究工作（有時甚至還是後者方法的直接結果）。不過，在這兩個領域當中，依然有許多學者並未順從認知科學的這種發展趨勢，並且仍繼續相互獨立地開展著自己的工作，分別從事著各自的所關心的事情。

## 本體構成要素

就現有的各種本體而言，無論其在表達上採用的究竟是何種語言，在結構上都具有許多的相似性。如前所述，大多數本體描述的都是個體（實例）、類（概念）、屬性以及關係。在這一節當中，我們將分別依次論述本體的這些構成要素。

常見的本體構成要素包括：

* 個體（實例）：基礎的或者說「底層的」物件。
* 類：集合（sets）、概念、物件類型或者說事物的種類。
* 屬性：物件（和類）所可能具有的屬性、特徵、特性、特點和參數。
* 關係：類與個體之間的彼此關聯所可能具有的方式。
* 函式術語：在宣告當中，可用來代替具體術語的特定關系所構成的複雜結構。
* 約束（限制）：採取形式化方式所聲明的，關於接受某項斷言作為輸入而必須成立的情況的描述。。
* 規則：用於描述可以依據特定形式的某項斷言所能夠得出的邏輯推論的，if-then（前因－後果）式語句形式的聲明。
* 公理：採取特定邏輯形式的斷言（包括規則在內）所共同構成的就是其本體在相應應用領域當中所描述的整個理論。這種定義有別於產生式語法和形式邏輯當中所說的「公理」。在這些學科當中，公理之中僅僅包括那些被斷言為_先驗_知識的聲明。就這裡的用法而言，「公理」之中還包括依據公理型聲明所推導得出的理論。
* 事件 (哲學)：屬性或關係的變化。

## 領域本體與上層本體

_領域本體_（domain ontology 或者說 domain-specific ontology，即_領域特異性本體_）所建模的是某個特定領域，或者現實世界的一部分。領域本體所表達的是那些適合於該領域的那些術語的特殊含義。例如，就拿具有許多種含義的英文單詞「_card_」來說。關於撲克領域的本體可能會賦予該詞以「_打撲克_」的意思，而關於電腦硬體領域的本體則可能會賦予其「_穿孔卡片_」和「_影片卡_」的意思。

_上層本體_（upper ontology 或者說 foundation ontology，即_基礎本體_）是指一種由那些在各種各樣的領域本體之中都普遍適用的共同物件所構成的模型。其中所收錄的核心詞表，可以用來描述一套領域當中的物件。目前，存在著幾部現成可用的標準化上層本體，包括都柏林核心、通用形式化本體（General Formal Ontology，GFO）、OpenCyc/Cyc、推薦上層合併本體（Suggested Upper Merged Ontology，SUMO）以及 DOLCE （頁面存檔備份，存於網際網路檔案館）。另外，有些人認為 WordNet 屬於上層本體，但實際上它並不是一部本體：WordNet 只是由一部分類法（taxonomy）與一部受控詞表所形成的獨特組合（參見上述關於「屬性」方面的內容）。

Gellish 本體則是一個關於上層本體與領域本體彼此組合的例子。

領域本體在表達概念時採用的是非常特殊而又往往具有選擇性的方式，因而它們常常缺乏相容性。隨著那些依賴於領域本體的系統的擴充，它們往往需要將不同的領域本體合併成一部更為通用的表達形式。對於本體設計者來說，這就提出了一項富有挑戰性的難題。在同一領域內，由於文化背景、受教育程度以及意識形態的不同所造成的，對於該領域感知（perceptions）情況的不同，或者因為所採用的表達語言的不同，還可能出現不同的本體。

當前，對於那些並非依據同一部基礎本體所編制的本體的合併工作，在很大程度上還是一種手工過程，因而既耗費時間又成本高昂。那些利用同一部基礎本體所提供的一套基本元素來規定領域本體元素之含義的領域本體，則可以實現自動化的合併。目前，存在著多項針對本體合併方面的通用技術方法的研究工作，但這個方面的研究在很大程度上依然還處於理論層面。

## 本體工程

本體工程，又稱為_本體構建_、_本體編制_或_本體開發_，是一個旨在研究有關構建本體的方法和方法學的領域。本體工程研究的內容包括本體開發過程、本體生命周期、本體構建方法及方法學，以及為這些方面提供支援的工具包和語言。

本體工程旨在讓軟體應用程式、企事業單位、組織機構以及特定領域業務操作過程之中所包含的那些知識變得明確清晰。本體工程為解決語意障礙所造成的互操作性問題指出了一個方向。比如，那些與業務術語和軟體類的定義相關的障礙。本體工程實際上就是一套與特定領域之中的本體開發與編制工作相關的任務。

## 本體語言

本體一般都是採用本體語言來編制的。本體語言，又稱為「_本體論語言_」，是一種用於編制本體的形式化語言。目前，存在著許許多多此類的本體語言，既包括專有的，也包括基於標準的：

* 普通邏輯（Common logic）就是 ISO 標準 24707；這是關於一種本體語言家族的技術規範，其中的本體語言彼此之間可以準確地相互轉換。
* Cyc 專案有其自己的，基於一階謂詞演算，且具有某些高階擴充的本體語言（即 CycL）。
* Gellish 語言之中包括了關於自身擴充的規則，因而整合了一部本體和一種本體語言。
* IDEF5 是一種用於編制和維護準確的，具有可復用性的領域本體的軟體工程方法。
* 知識交換格式（Knowledge Interchange Format，KIF）是基於 S - 表達式的一種一階邏輯語法。
* 規則交換格式（Rule Interchange Format，RIF）與 F - 邏輯（F-Logic）可將各種本體和規則結合起來。
* OWL（Web Ontology Language）是一種用於編寫本體聲明（ontological statements）的語言。OWL 的發展繼承了 RDF 和 RDFS 以及一些早期的本體語言專案，包括本體推理層（Ontology Inference Layer，OIL）、DARPA 智慧型體標記式語言（DARPA Agent Markup Language，DAML）以及 DAMLplusOIL。OWL 旨在應用於全球資訊網之上；而且，其構成要素（類、屬性和個體）均被定義為 RDF 資源，並採用 URI 加以標識。

## 已公開發布的本體的例子

* 胺基酸本體：關於胺基酸及其性質的小型本體（其中，概念、屬性和關係均備有中英文名稱、同義詞及縮寫）。
* 基本形式化本體（Basic Formal Ontology）：一部設計旨在為科學技術研究工作提供支援的形式化上層本體。
* BioPAX：一部旨在促進生物學途徑（細胞過程）資料之交換和互操作性的本體。
* 細胞周期本體（Cell-Cycle Ontology，CCO）：一部用於表達細胞周期的應用本體。
* CContology：一部旨在支援線上客戶抱怨管理的電子商務本體。
* CIDOC 概念參考模型（CIDOC Conceptual Reference Model）：一部關於文化遺產的本體。
* COSMO：屬於一部基礎本體（目前版本為 OWL），其設計旨在收錄所有那些從邏輯上明確說明任何領域實體的含義之時所需的原初型概念（primitive concepts）。其旨在作為一部基礎的本體，可以用於完成其他本體或資料庫之中不同表達之間的轉換。起初，它只是 OpenCyc 和 SUMO 本體之中基本構成要素的合併產物。目前，已經採用其他的本體構成要素（類型、關係） 對其加以了補充，從而便於收錄朗文詞典定義詞彙表之中所有單詞的表達形式。
* Cyc：一部關於論域之形式化表達的基礎本體。
* 疾病本體（Disease Ontology）：在設計上旨在促進各種疾病及相關健康狀況向特定醫學代碼的對映。
* DOLCE：即語言學與認知工程描述型本體（Descriptive Ontology for Linguistic and Cognitive Engineering）。
* 都柏林核心：一部關於文件和出版方面的簡單本體。
* 基礎性核心語言學本體（Foundational, Core and Linguistic Ontologies）
* 人類解剖學方面的解剖學基礎模型（Foundational Model of Anatomy，FMA）
* 有關內科學與外科學醫學術語的 GALEN 本體（OWL-_DL_ 格式）
* 基因組學領域的基因本體（Gene Ontology,GO）
* 通用上層模型（Generalized Upper Model）：一部用於在客戶系統與自然語言技術之間發揮中介作用的，帶有語言學動機的本體。
* Gellish 英語詞典：是一部包括有詞典和分類法的本體；其中，收錄有一部上層本體和一部下層本體（lower ontology）, 側重於工程、技術以及採購方面的工業及商業應用。參見 SourceForge 的開源專案。
* GOLD：即語言描述通用本體（General Ontology for Linguistic Description）。
* IDEAS 工作群組：澳大利亞、加拿大、英國以及美國國旗的國防部所正在共同構建的一部關於企業架構（enterprise architecture）的形式化本體。
* Linkbase：在 http://www.ifomis.org/bfo/ （頁面存檔備份，存於網際網路檔案館）的基礎之上，對於生物醫學領域的一種形式化表達。
* LPL（Lawson Pattern Language，LPL）
* 開放生物醫學本體鑄造廠（OBO Foundry）：生物醫學領域的一套具有互操作性的參考本體。
* 生物醫學調查本體（Ontology for Biomedical Investigations）：用於描述生物學及臨床調查研究活動的一部開放的整合化本體。
* 植物本體（Plant Ontology）：關於植物結構以及生長 / 發育階段等方面的本體。
* POPE（Purdue Ontology for Pharmaceutical Engineering，普渡大學製藥工程本體）
* 喬治敦大學有關蛋白質資訊資源的蛋白質本體 _PRO_
* 程式抽象分類法（Program abstraction taxonomy）
* 蛋白質組學領域的蛋白質本體（Protein Ontology）
* 系統生物學本體（Systems Biology Ontology）：描述的是生物學領域的電腦模型
* 推薦上層合併本體：一部形式化上層本體
* SWEET（Semantic Web for Earth and Environmental Terminology，地球與環境術語集語意網）
* 思想財富本體
* 醫學教育標引主題（Topics for Indexing Medical Education）
* WordNet：一個詞彙參考系統（Lexical reference system）。

## 本體庫

[[0101031 SemanticMediaWiki Logo.png|thumb|300px|MediaWiki 的擴充：可在 Wiki 網頁之中標註語意資料的 **Semantic MediaWiki**（SMW）。]]
為網際網路開發各種本體的工作，已經孕育出那些具有搜尋功能的，提供本體目錄（directories）或列表的服務。此類目錄就稱為「_本體庫_」。

如下是一些採用人工方式選擇出來的本體所構成靜態庫：

* CO-ODE 專案本體庫：提供的是一些與 CO-ODE 專案相關的本體範例和本體資源連結。
* DAML 本體庫（DAML Ontology Library）之中儲存的是那些採用 DAML 格式的歷史遺留本體。
* Protege 本體庫（Protege Ontology Library）之中收錄的是一套採用 OWL 格式、基於框架的格式以及其他格式的本體。
* SchemaWeb 則是一個由採用 RDFS、OWL 以及 DAML+OIL 格式所表達的 RDF 模式（RDF schemata）而構成的目錄。

下列這些即是目錄，同時又是搜尋引擎。其中，包括用於在網際網路上搜尋良構性本體的搜尋器。

* OBO Foundry / Bioportal 是生物學和生物醫學（biomedicine）領域的一套具備互操作性的參考本體。
* OntoSelect Ontology Library（OntoSelect 本體庫）提供的是多種類似的，適用於 RDF/S、DAML 以及 OWL 本體的服務。
* Ontaria 是「一個可以搜尋和瀏覽的語意網資料目錄，且側重於 RDF 詞表以及 OWL 本體」。
* Swoogle 是一個目錄和搜尋引擎，適用於網際網路上現成可用的所有 RDF 資源，包括各種本體。

## 常用本體工具

### 本體伺服器

* CO-ODE 本體瀏覽器 （頁面存檔備份，存於網際網路檔案館）：又稱為「OWLDoc Server」，即 OWL 本體文件伺服器，用於動態生成 HTML OWLDoc 文件，功能類似於 Protégé 本體編輯器之中的 OWLDoc 外掛程式。

### 本體編輯器

用於編纂本體的軟體編輯器稱為「本體編輯器（ontology editor）」，有時又稱為「本體論編輯器」。

* Protégé
* Neon 工具箱 （頁面存檔備份，存於網際網路檔案館）
* OilEd
* MediaWiki 的擴充：允許在維基網頁之中標註語意資料的 **Semantic MediaWiki**（Semantic MediaWiki，SMW）。
* OntoWiki：一個自由的開源型語意維基應用，旨在作為本體編輯器和知識取得系統

## 參見

**相關哲學概念**
: * 人類思維字母表
* 通用表意文字
* 元語言
* 自然語意元語言

## 參考文獻

## 注釋

## 延伸閱讀

## 外部連結