ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Ontology 本体论是什么?从哲学概念到 AI、知识图谱与软件工程

Ontology 本体论是什么?从哲学概念到 AI、知识图谱与软件工程

如果你最近在接触 AI、知识图谱、Agent、RAG、语义搜索、领域建模,很可能会越来越频繁地看到一个词:

Ontology。

中文通常翻译成:本体论

在这里插入图片描述

这个词第一次看到时很容易产生误解。

很多程序员会想:

本体?什么本体?是不是某种数据结构?

其实 Ontology 最早是一个哲学概念,但进入计算机科学以后,它已经变成了一套非常实用的知识建模方法。

如果用一句工程化的话解释:

Ontology,就是对一个领域里的“世界是由什么组成的,以及这些东西之间是什么关系”进行正式定义。

它关注的不是某一条数据,而是:

  • 世界里有哪些东西?
  • 这些东西属于什么类型?
  • 它们之间有什么关系?
  • 哪些规则永远成立?
  • 哪些概念可以继承?
  • 哪些结论可以通过规则推导出来?

这也是为什么 Ontology 在知识图谱、企业知识库、医疗、金融、工业、AI Agent 等领域越来越重要。


一、Ontology 这个词到底是什么意思?

Ontology 来自哲学。

它研究的问题非常基础:

什么东西是存在的?

比如:

  • 人是不是一种实体?
  • 公司是不是一种实体?
  • 颜色算不算一种存在?
  • 时间是不是实体?
  • 一个订单和一张订单表是不是同一个东西?
  • “员工属于公司”是一种什么关系?

哲学里的 Ontology 会讨论“存在本身”。

但到了计算机科学领域,我们通常没有必要讨论这么抽象。

计算机领域里的 Ontology,更接近于:

对某个领域中的概念、关系、属性和约束进行形式化描述。

例如,我们要描述一个电商世界。

首先可以定义一些概念:

用户
商品
订单
商家
支付
物流

然后定义它们之间的关系:

用户 创建 订单
订单 包含 商品
商家 销售 商品
订单 对应 支付
订单 对应 物流

再进一步定义规则:

订单必须属于某个用户一个商品可以属于多个订单已支付订单才可以进入发货状态用户属于Person的一种

这套东西,就是一个非常基础的 Ontology。


二、Ontology 和数据库有什么区别?

这是程序员最容易产生疑问的地方。

很多人看到前面的结构会说:

这不就是数据库表设计吗?

看起来确实很像。

比如数据库可以设计:

users
products
orders
order_items
payments

但数据库和 Ontology 解决的问题并不完全一样。

数据库关注的是:

数据怎么存。

Ontology 更关注:

这个世界是什么。

这是两者最大的区别。

例如数据库里可能有:

CREATE TABLE employee (id bigint,company_id bigint,department_id bigint
);

数据库表达的是:

employee.company_id

但 Ontology 可以表达:

Employee 是 Person 的子类Employee worksFor CompanyCompany owns DepartmentEmployee belongsTo DepartmentDepartment belongsTo Company

甚至还可以进一步定义:

Manager 是 EmployeeManager manages Department如果某个人 manages Department
那么这个人一定是 Employee

所以数据库主要解决:

Storage

Ontology 更多解决:

Meaning

也就是:

语义。


三、Ontology 的核心组成

一个完整的 Ontology 通常包含几个基本元素。

1. Class:类 / 概念

Class 用来描述某一类东西。

比如:

Person
Company
Employee
Product
Order
Vehicle
Server
Database
Application

它和编程语言中的 Class 有一点像,但更接近“概念分类”。

例如:

Person├── Employee├── Customer└── Supplier

这里:

Employee is-a Person
Customer is-a Person
Supplier is-a Person

这种关系通常被称为:

is-a

也就是:

是一种。


四、Instance:实例

Class 是类型。

Instance 是具体对象。

例如:

Person

是一个 Class。

而:

张三
李四
王五

就是实例。

类似:

Company

下面可能有:

OpenAI
Microsoft
Google
Alibaba

所以:

OpenAI instanceOf Company

可以理解为:

OpenAI 是 Company 的一个实例

五、Property:属性

实体通常会有属性。

比如:

Person

可能有:

name
age
email
birthday

商品可能有:

Productname
price
weight
category

在 Ontology 中,这些通常可以表示为:

Person.name
Person.age
Product.price

但是 Ontology 真正强大的地方并不只是属性。

而是:

关系。


六、Relation:关系

关系是 Ontology 最重要的部分之一。

例如:

Person worksFor Company

意思是:

人 ——工作于——> 公司

再比如:

Company owns Product
User creates Order
Order contains Product
Server hosts Application
Application dependsOn Database

如果用图表示:

User││ creates▼
Order││ contains▼
Product

你会发现:

Ontology 天然就是一种图结构。

这也是为什么 Ontology 经常和:

Knowledge Graph

知识图谱放在一起讨论。


七、Hierarchy:继承关系

Ontology 可以定义概念之间的层级。

比如:

Entity├── Person│    ├── Employee│    └── Customer│└── Organization├── Company└── Government

如果:

Employee is-a Person

那么 Employee 会继承 Person 的很多定义。

例如:

Person hasName
Person hasBirthday

那么 Employee 自然也拥有:

hasName
hasBirthday

这和面向对象中的继承比较相似。


八、Constraint:约束

Ontology 还可以描述规则和约束。

例如:

Employee must workFor Company

或者:

Order must belongTo User

甚至可以规定数量:

Person has exactly one birthday
Order contains at least one Product

这些规则能够让系统判断:

数据是否符合这个世界的定义。

这就开始超越普通数据库 Schema 了。


九、Inference:推理

Ontology 一个非常重要的能力就是:

推理。

举个简单的例子。

我们定义:

Programmer is-a Employee
Employee is-a Person

现在系统知道:

张三 instanceOf Programmer

那么系统可以推导:

张三 instanceOf Employee

进一步推导:

张三 instanceOf Person

我们并没有手工存储后两个事实。

它们是根据 Ontology 推理得到的。


十、再看一个现实例子

假设我们在构建一个技术公司的 Ontology。

定义:

Developer is-a Employee
DBA is-a Employee
Architect is-a Employee

然后:

Employee worksFor CompanyDeveloper develops ApplicationApplication runsOn ServerApplication dependsOn DatabaseServer locatedIn DataCenter

现在有一组数据:

张三 instanceOf Developer张三 worksFor CompanyAPaymentService instanceOf Application张三 develops PaymentServicePaymentService runsOn Server01Server01 locatedIn Singapore

这时候系统就能回答很多原本需要复杂查询的问题:

张三负责什么系统?这个系统运行在哪里?哪些系统依赖数据库?哪些员工负责部署在新加坡的系统?

整个知识结构已经不再只是:

表 + 字段

而变成了:

概念 + 实体 + 关系 + 规则

十一、Ontology 和知识图谱是什么关系?

这两个概念经常一起出现,但其实不是一回事。

可以简单理解:

Ontology = 世界规则
Knowledge Graph = 世界里的事实

比如 Ontology 定义:

Person worksFor Company

这是规则。

知识图谱里则存在:

张三 worksFor Alibaba
李四 worksFor Tencent
王五 worksFor ByteDance

这些是事实。

所以一个非常经典的理解是:

Ontology 是知识图谱的 Schema。

类似数据库中的:

Schema

和:

Data

之间的关系。


十二、Ontology 和 Schema 有什么区别?

Schema 解决:

数据长什么样

Ontology 解决:

这些数据代表什么

例如 JSON Schema:

{"name": "张三","company": "OpenAI"
}

Schema 可以定义:

name: string
company: string

但 Ontology 可以定义:

Person worksFor Company

同时规定:

company 必须是 Company 类型的实体

并且 Company 还可能:

owns Product
locatedIn Country
hasEmployee Person

于是数据之间真正形成了:

语义网络。


十三、Ontology 和面向对象有什么区别?

程序员第一次看到 Ontology,经常会觉得:

这不就是面向对象建模吗?

确实有很多相似的地方。

比如都有:

Class
Property
Inheritance
Instance

但是目标完全不同。

面向对象设计主要关注:

代码如何组织

Ontology 关注:

知识如何表达

例如:

class Employee extends Person {
}

这是代码结构。

而 Ontology:

Employee SubClassOf Person

表达的是一个知识事实:

Employee 是 Person 的一种。

它不关心这个东西最终是不是 Java Class。


十四、Ontology 和 ER 图有什么区别?

ER 图也描述:

Entity
Relationship
Attribute

所以它和 Ontology 的确很像。

但 Ontology 通常具有更丰富的语义能力。

例如可以描述:

同义关系继承关系互斥关系逆关系传递关系约束逻辑推理

例如:

parentOf

可以定义逆关系:

childOf

也就是:

A parentOf B

可以推出:

B childOf A

甚至可以定义:

ancestorOf

是一个传递关系。

如果:

A ancestorOf BB ancestorOf C

则可以推导:

A ancestorOf C

这就是 Ontology 比普通 ER 模型更强的地方。


十五、技术领域的 Ontology 是什么?

如果我们专门构建一个:

软件技术领域 Ontology

可以这样设计。

最顶层:

TechnologyEntity

下面拆分:

TechnologyEntity
├── ProgrammingLanguage
├── Framework
├── Database
├── Middleware
├── CloudPlatform
├── Application
├── Server
├── Protocol
└── DeveloperTool

例如实例:

Go instanceOf ProgrammingLanguageGin instanceOf FrameworkMySQL instanceOf DatabaseRedis instanceOf MiddlewareDocker instanceOf DeveloperToolAWS instanceOf CloudPlatform

然后定义关系:

Gin writtenIn GoApplication builtWith FrameworkApplication uses DatabaseApplication deployedOn ServerServer runs DockerApplication exposes APIAPI uses Protocol

于是我们就建立了一张技术领域知识网络。


十六、再进一步:Go 技术栈 Ontology

比如:

Go
│
├── Framework
│   ├── Gin
│   ├── Echo
│   └── Fiber
│
├── ORM
│   ├── GORM
│   └── Ent
│
├── RPC
│   ├── gRPC
│   └── Connect
│
└── Tool├── Cobra└── Wire

然后定义:

Gin writtenIn GoGORM supports MySQLGORM supports PostgreSQLgRPC uses ProtocolBuffersCobra usedFor CLI

如果把这套知识持续扩大,就可以做很多有意思的事情。

比如问 AI:

有哪些 Go ORM 支持 PostgreSQL?哪些 Go Web Framework 适合 REST API?使用 Gin 的系统通常会搭配哪些 ORM?哪些技术依赖 Protocol Buffers?

这些问题就不再只是关键词搜索。

而变成了:

基于语义关系进行检索。


十七、Ontology 为什么在 AI 时代重新重要起来?

过去十几年,Ontology 在学术界和企业知识管理领域一直存在。

但最近几年随着 AI、尤其是大模型的发展,它重新受到关注。

原因非常简单。

LLM 很强,但有一个天然问题:

它知道很多知识,却缺少明确、稳定的知识结构。

LLM 的知识主要存在于参数中。

它很难天然保证:

实体唯一性关系一致性规则一致性事实可追踪知识可更新知识可验证

Ontology 正好可以补充这一部分。

所以未来越来越常见的一种架构会是:

LLM
+
Ontology
+
Knowledge Graph
+
RAG

十八、Ontology + RAG

普通 RAG 的流程通常是:

用户问题↓
Embedding↓
Vector Search↓
Document↓
LLM

这种方式很好用。

但是它有一个问题:

它主要依赖文本相似度。

例如你问:

哪个系统依赖部署在新加坡的数据库?

如果知识分散在几十份文档里:

Application → DatabaseDatabase → ServerServer → DataCenterDataCenter → Singapore

单纯 Vector Search 不一定容易找到完整链路。

如果有 Ontology 和 Knowledge Graph:

Application│
dependsOn▼
Database│
runsOn▼
Server│
locatedIn▼
Singapore

系统就可以沿关系进行查询。

这种方式通常被称为:

Graph RAG

十九、Ontology + AI Agent

Agent 时代,Ontology 可能会更加重要。

因为 Agent 不只是:

回答问题。

Agent 需要:

理解环境
理解资源
理解任务
理解工具
理解对象之间的关系

比如一个 DevOps Agent。

它需要知道:

ApplicationServerDatabaseDomainCertificateContainerDeployment

以及:

Application deployedOn ServerApplication connectsTo DatabaseDomain pointsTo ApplicationApplication runsIn ContainerContainer runsOn Server

有了这些定义以后,Agent 才真正具备某种:

世界模型。

否则 Agent 看到的可能只是:

一堆 API
一堆 JSON
一堆文本

Ontology 可以帮助 Agent 理解:

这些东西之间到底是什么关系。


二十、一个 DevOps Ontology 示例

假设企业内部维护:

Application
Server
Database
Domain
Certificate
Container

定义关系:

Application deployedOn ServerApplication connectsTo DatabaseApplication exposedBy DomainDomain protectedBy CertificateApplication runsIn ContainerContainer runsOn Server

真实数据:

NewAPI instanceOf ApplicationNewAPI deployedOn Server01NewAPI connectsTo PostgreSQL01api.example.com exposedBy NewAPINewAPI runsIn DockerContainer01

那么 AI Agent 就可以回答:

NewAPI 部署在哪?NewAPI 使用哪个数据库?Server01 挂了会影响哪些应用?这个域名对应哪个服务?哪个证书快过期?

再结合监控系统,Agent 甚至可以执行:

发现服务器异常→ 查询影响应用→ 查询应用负责人→ 查询备用节点→ 自动切换→ 通知负责人

这个时候 Ontology 已经开始成为:

AI Agent 的基础设施。


二十一、Ontology 常见技术标准

在语义 Web 领域,有几个经典标准。

RDF

RDF:

Resource Description Framework

核心思想非常简单:

用三元组描述知识。

格式:

Subject Predicate Object

例如:

张三 worksFor OpenAI

就是:

Subject: 张三Predicate: worksForObject: OpenAI

所有知识都可以拆成这种结构。


二十二、Triple 三元组

知识图谱最经典的数据结构就是:

Subject - Predicate - Object

中文可以理解成:

主语 - 谓语 - 宾语

比如:

Go createdBy Google
Gin writtenIn Go
Redis isA Database
Docker runsOn Linux

如果有十亿个这样的 Triple:

Triple
+
Triple
+
Triple

就可以形成一张巨大的知识图谱。


二十三、OWL

OWL 全称:

Web Ontology Language

它是在 RDF 基础上提供更强大的 Ontology 描述能力。

可以描述:

ClassSubClassPropertyEquivalentClassDisjointClassCardinalityInverseProperty

以及各种逻辑关系。

例如:

Developer SubClassOf EmployeeEmployee SubClassOf Person

推理系统就可以知道:

Developer SubClassOf Person

二十四、SPARQL

如果 RDF 是数据结构,

那么 SPARQL 可以理解为:

知识图谱世界里的 SQL。

SQL:

SELECT *
FROM employee
WHERE company = 'OpenAI';

SPARQL 则可以查询:

谁 worksFor OpenAI?

它查询的不是表。

而是:

图结构。

二十五、Ontology 在企业中的真正价值

Ontology 最适合的不是简单的小系统。

而是:

复杂领域。

尤其是存在大量系统、概念、术语、数据源的企业。

例如金融行业:

CustomerAccountTransactionBankAssetSecurityRiskLoan

医疗:

PatientDiseaseDrugSymptomTreatmentDoctor

制造业:

MachineComponentFactoryMaterialProcessSensor

互联网系统:

ServiceAPIDatabaseServerContainerDomainTeamDeveloper

这些领域的数据通常散落在:

数据库Excel文档WikiAPI代码日志

Ontology 的作用就是:

把这些信息统一到同一个语义体系里。


二十六、Ontology 最重要的价值其实是“统一语言”

大型企业里经常存在一个问题:

同一个概念,不同部门叫法不同。

例如:

客户用户会员消费者Account

可能实际上指的是同一种实体。

Ontology 可以定义:

Customer

作为统一概念。

不同系统:

CRM.CustomerOrder.UserMarketing.Member

都映射到:

Customer

于是多个系统之间就拥有了一套:

统一语言。

这也是企业 Ontology 最大的价值之一。


二十七、Ontology 不是越复杂越好

看到这里,有些人可能会觉得:

那是不是所有系统都应该搞 Ontology?

并不是。

如果你的系统只是:

用户订单商品

几个简单业务表,

数据库 Schema 已经完全够用了。

Ontology 更适合:

复杂领域跨系统数据大量知识关系需要语义搜索需要知识推理需要 AI Agent需要长期知识治理

如果只是一个简单 CRUD 系统,强行加入 Ontology,反而可能增加复杂度。


二十八、程序员应该如何理解 Ontology?

如果一定要用程序员熟悉的概念类比,可以这样理解:

Database Schema
+
Class Diagram
+
Knowledge Graph Schema
+
Domain Model
+
Business Rules

大概共同组成了 Ontology 的感觉。

但它又不完全等同于其中任何一个。

Ontology 最核心的问题始终是:

这个领域里的世界,究竟是由什么组成的?

以及:

这些东西之间存在什么关系?


二十九、一个极简 Ontology

例如技术世界:

Developer││ uses▼
ProgrammingLanguage││ usedBy▼
Framework││ connectsTo▼
Database

真实实例:

王小明 instanceOf Developer王小明 uses GoGin instanceOf FrameworkGin writtenIn GoGORM instanceOf ORMGORM supports MySQL

这时候我们已经拥有了一个:

小型技术知识图谱。

而定义:

Developer
ProgrammingLanguage
Framework
Database
uses
writtenIn
supports

这些概念和关系的那一层,

就是:

Ontology。


三十、未来的 AI 系统可能不只是“数据库 + LLM”

过去的软件系统通常是:

Application
+
Database

后来变成:

Application
+
Database
+
Search Engine

现在很多 AI 系统是:

Application
+
Database
+
Vector Database
+
LLM

而下一阶段很可能逐渐增加:

Application
+
Database
+
Vector Database
+
Knowledge Graph
+
Ontology
+
LLM
+
Agent

因为 LLM 负责:

理解语言
生成内容
推理任务

知识图谱负责:

存储关系
连接知识

Ontology 负责:

定义世界
定义语义
定义规则

Agent 负责:

行动

这几个东西组合起来以后,AI 系统才会越来越接近真正意义上的:

理解一个领域,并在这个领域里行动。


总结

如果只记住一句话:

Ontology 本体论,就是用一套明确、可计算的方式,定义一个领域里“有什么东西、它们是什么、它们之间有什么关系,以及哪些规则成立”。

数据库解决:

数据怎么存

知识图谱解决:

知识怎么连接

Ontology 解决:

这个世界是什么意思

而大模型解决:

如何理解和使用这些知识

从这个角度看,Ontology 并不是一个离程序员很远的哲学概念。

恰恰相反。

在这里插入图片描述

随着 LLM、RAG、Graph RAG、Knowledge Graph 和 AI Agent 的发展,Ontology 很可能重新成为 AI 基础设施里非常重要的一层。

未来真正复杂的 AI 系统,可能不仅需要一个更大的模型。

它还需要一个:

可以被机器理解的世界模型。

而 Ontology,正是构建这种世界模型的重要方法。

在这里插入图片描述

返回列表