本體 (資訊科學)

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

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

## 概述

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

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

## 歷史

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

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

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

二十世紀90年代初期，湯姆·格魯伯發表了一篇後來得到廣泛引用的網頁和論文《邁向知識共享型本體的設計原則》。之所以該論文獲得人們如此的青睞，那要歸功於其中格魯伯對於電腦科學術語「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 Group：澳大利亞、加拿大、英國以及美國國旗的國防部所正在共同構建的一部關於企業架構（enterprise architecture）的形式化本體。
- Linkbase：在 的基礎之上，對於生物醫學領域的一種形式化表達。
- LPL（Lawson Pattern Language，LPL）
- OBO Foundry（OBO Foundry）：生物醫學領域的一套具有互操作性的參考本體。
- 生物醫學調查本體（Ontology for Biomedical Investigations）：用於描述生物學及臨床調查研究活動的一部開放的集成化本體。
- 植物本體（Plant Ontology）：關於植物結構以及生長/發育階段等方面的本體。
- POPE（Purdue Ontology for Pharmaceutical Engineering，普渡大學製藥工程本體）
- 喬治敦大學有關蛋白質資訊資源的蛋白質本體PRO
- 程序抽象分類法（Program abstraction taxonomy）
- 蛋白質組學領域的蛋白質本體（Protein Ontology）
- SBO（Systems Biology Ontology）：描述的是生物學領域的電腦模型
- 推薦上層合併本體：一部形式化上層本體
- SWEET（Semantic Web for Earth and Environmental Terminology，地球與環境術語集語義網）
- ThoughtTreasure本體
- TIME-ITEM（Topics for Indexing Medical Education）
- WordNet：一個詞彙參考系統（Lexical reference system）。

## 本體庫

為網際網路開發各種本體的工作，已經孕育出那些具有搜索功能的，提供本體目錄（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é
- OilEd
- MediaWiki的擴展：允許在維基網頁之中標註語義數據的Semantic MediaWiki（Semantic MediaWiki，SMW）。
- OntoWiki：一個自由的開源型語義維基應用，旨在作為本體編輯器和知識獲取系統

## 延伸閱讀

- Fensel, D., van Harmelen, F., Horrocks, I., McGuinness, D. L., & Patel-Schneider, P. F. (2001). "OIL: an ontology infrastructure for the Semantic Web". In: Intelligent Systems. IEEE, 16(2): 38-45.
- Maria Golemati, Akrivi Katifori, Costas Vassilakis, George Lepouras, Constantin Halatsis (2007). "Creating an Ontology for the User Profile: Method and Applications". In: Proceedings of the First IEEE International Conference on Research Challenges in Information Science (RCIS), Morocco 2007.
- Tom Gruber 1993. "A translation approach to portable ontology specifications" . In: Knowledge Acquisition. 5: 199-199.
- Maedche, A. & Staab, S. (2001). "Ontology learning for the Semantic Web". In: Intelligent Systems. IEEE, 16(2): 72-79.
- R. Navigli, P. Velardi. Learning Domain Ontologies from Document Warehouses and Dedicated Web Sites , Computational Linguistics, 30(2), MIT Press, 2004, pp. 151-179.
- Razmerita, L., Angehrn, A., & Maedche, A. 2003. "Ontology-Based User Modeling for Knowledge Management Systems". In: Lecture Notes in Computer Science: 213-217.
- Smith, B. Ontology (Science) , in C. Eschenbach and M. Gruninger (eds.), Formal Ontology in Information Systems. Proceedings of FOIS 2008, Amsterdam/New York: ISO Press, 21-35.
- Uschold, M. & Gruninger, M. (1996). Ontologies: Principles, Methods and Applications . Knowledge Engineering Review, 11(2).
- Yudelson, M., Gavrilova, T., & Brusilovsky, P. 2005. Towards User Modeling Meta-ontology. Lecture Notes in Computer Science, 3538: 448.

## 外部連結

- What is an ontology?
- What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?
- Metadata? Thesauri? Taxonomies? Topic Maps! - Making sense of it all
- Ontology is Overrated paper by Clay Shirky
- When "Knowledge Engineers" Say "Ontology" They Mean the Opposite: "Epistemonomy"
- John Bateman's Ontology Portal
- Ontology Page by Barry Smith
- Streaming video : "How to Build an Ontology", by Barry Smith
- 理解本體 作者：叢子傑