1.1 项目起源(1984–1990)

Cyc项目由斯坦福大学人工智能实验室道格拉斯·莱纳特于1984年正式启动。莱纳特此前在AM(自动数学家)和Eurisko项目中积累了对知识表示机器学习结合的批判性见解,认为当时AI系统失败的根本原因在于缺乏常识。他获得美国国防部高级研究计划局(DARPA)及多家企业的资助,组建团队开始手工编码常识知识。早期阶段团队规模约10人,采用Lisp语言开发了原型知识库,到1990年已积累约100万条断言,涵盖基本的物理世界、时间和空间概念

1.2 早期发展阶段(1990–2000)

1990年后,Cyc脱离斯坦福独立运营,成立了Cycorp公司。这一时期知识库规模快速增长,从100万条断言扩展至约300万条,同时开发了专门的推理引擎和CycL语言。团队引入了“微理论”(Microtheory)机制以处理知识的一致性语境问题。1995年,Cyc实现了首次大规模的常识推理演示,能够回答类似“如果一个人被淋湿,他会做什么?”的开放域问题。1996年,Cyc系统在多个DARPA项目中承担自然语言理解任务,如MUC(消息理解会议)评测。

1.3 商业化与开源尝试(2000–2010)

进入21世纪,Cycorp试图将Cyc技术推向商业应用,推出了面向企业用户的“Cyc Enterprise”版本,但市场反响有限。高昂的人工编码成本和缺乏直观的产业场景导致营收困难。与此同时,莱纳特开始探索部分开放策略。

1.3.1 OpenCyc与ResearchCyc

2002年,Cycorp发布了OpenCyc——一个知识库子集,包含约6000个概念和60000条断言,采用LGPL许可供非商业研究使用。此后又推出了ResearchCyc,面向学术机构提供更完整的知识库访问权限(约20万断言),但需签署保密协议。这两个版本降低了研究门槛,推动了知识表示领域的二次发展。

1.3.2 后续演变与现状(2010–至今)

2010年后,Cycorp停止更新OpenCyc,转而将资源集中于封闭的商业版本和特定政府合同。知识库规模据称已超2500万条断言,但具体细节不再公开。Cyc项目逐渐淡出公众视野,但其理念深刻影响了后来的知识图谱(如Google知识图谱)和常识推理数据库(如ConceptNet)。目前Cycorp仍保持活跃,主要服务于国防与情报分析领域。

2.1 常识知识的形式化

Cyc的根本目标是将人类不假思索即可运用的常识转化为机器可操作的逻辑语句。常识在此被视为一种先天的、跨文化的底层知识,而非专家领域的深奥理论。

2.1.1 什么是“常识”

常识包含诸如“猫是动物”、“水能灭火”、“人需要呼吸”、“如果一个人站在雨中,他会变湿”等无数不言自明的事实。Cyc团队将这些事实归类为时间、空间、物质、因果、意图、社会互动等范畴。常识的一个关键特征是“默认性”——在没有反证据时,推理可依赖这些规则,但允许例外。

2.1.2 知识库规模的演进(从十万到百万断言)

1984年启动时,知识库仅有数万条手工编码断言。1990年达到约100万条,2000年突破300万条,2010年后超过2000万条。每一百万条断言的增加都需要数百人年的劳动,因为每条断言需经过专家审核、语境标注和一致性检查。规模的膨胀也带来了维护成本飙升的挑战。

2.2 完备性与一致性的权衡

Cyc追求知识的“完备性”但承认其不可能真正实现。为此设计者刻意容忍局部的不一致:在微理论机制下,同一事实在不同语境下可以是“真”或“假”。例如,在“牛顿物理”微理论下,“物体在没有外力时保持匀速直线运动”为真,而在“普通人日常推理”里,这一表述被简化为“物体会停下来”。这种设计牺牲了全局逻辑一致性,却换来了更强的表达力和可用性

2.3 与人脑常识推理的对标

Cyc并非模仿人脑神经元机制,而是模仿人类显式运用常识时的逻辑步骤。莱纳特认为,人类常识推理本质上是基于大量形式化规则的演绎与类比组合,只是这些规则通常存在于潜意识。Cyc试图将这些规则显式化,并赋予机器同样的“阅读”和“推导”能力。这种哲学与当时主流的符号AI一脉相承,与后来兴起的连接主义路径形成鲜明对比。

3.1 CycL的语法基础

CycL是一种基于一阶谓词逻辑的扩展语言,同时融入了高阶逻辑和模态操作。它使用类似Lisp的前缀表达式,便于机器解析和推理。

3.1.1 常量、变量与函数

常量以“#$”前缀标识,例如“#$Bird”、“#$Water”。变量以“?”开头,如“?X”。函数项通过嵌套列表表示,如“(#$birthPlace #$Einstein #$Ulm)”表示爱因斯坦出生于乌尔姆。CycL还支持集合、列表和数量表达式。

3.1.2 谓词与断言格式

基本断言格式为“(<谓词> <参数1> <参数2> ...)”。例如“(#$genls #$Dog #$Mammal)”表示“狗是哺乳动物”。谓词分为二元、一元甚至多元(如#$likesAsFriend需要两个参数)。CycL还包含特殊的元谓词(如#$ist用于断言真理,#$implies用于条件推断)。

3.2 高层语义结构

CycL引入了微理论和语境化机制以组织庞大知识库。

3.2.1 微理论(Microtheories)

微理论是知识库的“子世界”,每个微理论包含一组相互一致的断言,并可以继承或覆盖其他微理论的断言。例如,“#$BiologyMt”包含生物学事实,“#$DailyLifeMt”包含日常行为常识。推理引擎可以在多个微理论间切换,避免了全局矛盾。

3.2.2 语境化推理与真值条件

每个断言在Cyc中都附加一个“语境”标号,形式为“(ist <微理论> <断言>)”。查询时需指定目标微理论,系统仅在该语境下搜索并推理。例如,查询“人是否会飞?”在“#$FairyTaleMt”中可能为真,在“#$PhysicalCommonSenseMt”中为假。

3.3 类型系统与本体顶层

CycL支持丰富的知识分类体系,从最抽象的哲学范畴到下层的具体实体。

3.3.1 个体、集合与关系

类型系统分为三大类:个体(如特定的物品、人物)、集合(如“所有狗”)以及关系(如“父亲”)。集合可进一步划分为“自然类别”和“人工类别”。关系则区分了对象间的关系(如“在……之上”)和动作关系(如“吃掉”)。

3.3.2 时间、空间与因果类

Cyc提供了专门的高层本体处理时间和空间,包括时间点、时间间隔、空间坐标、方向、拓扑关系等。因果类则定义了因果关系、施动关系、使能关系等。这些本体为常识推理提供了基础框架,使机器能够理解“因为下雨所以地湿”这类简单因果链。

4.1 常识知识库的组成

Cyc知识库由本体层和实例层组成,结构类似于多层语义网络,但远为精细。

4.1.1 概念分层(Upper Ontology)

顶层本体包含约3000个最抽象的概念,如“事物”、“事件”、“关系”、“属性”、“数量”等。这些概念构成知识库的骨架,所有下层概念必须通过is-a、genls等关系嵌入该分层。例如,“狗”是“哺乳动物”的子类,“哺乳动物”又是“动物”的子类。顶层本体的设计参考了亚里士多德范畴和现代哲学分类,力求覆盖所有可能的实体类型。

4.1.2 日常知识(如进食、社交、物理常识)

在概念分层之下,存储着数以百万计的具体常识断言。例如,关于进食的知识包括“人类每天大约需要进食1-3次”、“食物可以被咀嚼并吞咽”、“未经烹饪的生肉可能含有病原体”。社交常识如“在公共场所大声喊叫会引起他人注意”、“借东西需经他人同意”。物理常识如“玻璃杯落地易碎”、“水在零度时结冰”。这些知识按微理论组织,每一类对应一个专门的微理论集合。

4.2 推理引擎

Cyc的推理引擎是知识库的大脑,能够利用断言进行多种类型的逻辑推导。

4.2.1 演绎推理与回溯

引擎支持经典的前向链接和后向链接演绎。例如,若知识库有“所有人都会死”和“苏格拉底是人”,引擎可演绎出“苏格拉底会死”。后向链接用于回答查询:给定目标断言,引擎反向搜索能够证明其真值的事实组合,并返回推导路径。回溯机制则处理条件化假设,如“如果小明买了一架飞机,那么他会需要用一个飞机库”。

4.2.2 类比推理与默认推理

类比推理让Cyc能够从已知的相似情况中推导新结论。例如,如果机器知道“鸟会飞”且“蝙蝠有翅膀”,但没有明确“蝙蝠会飞”这一断言,类比机制会临时假设蝙蝠会飞,但标记为不确定。默认推理处理常识中的例外情况:引擎默认“鸟会飞”,但若发现“企鹅是鸟且不会飞”,则会撤销该默认结论(使用非单调逻辑)。

4.2.3 查询处理与解释生成

用户可以通过CycL查询语言提交复杂问题,如“哪些动物会游泳但不会飞?”引擎在多个微理论中搜索,返回候选答案,并附上推导路径。解释生成模块将推导过程转化为自然语言式的说明,帮助人类理解机器为何得出某个结论。

4.3 知识获取与编辑工具

知识库的成长依赖于人工编码和自动化辅助。

4.3.1 人工编码与Cyclopedia

早期知识全部由Cyc领域的专家(称为“知识工程师”)手动编写,使用专门的编辑器Cyclopedia(别名“Cyc知识浏览器”)。该工具提供图形化界面展示概念之间的关系,支持断言录入、冲突检测和版本管理。每位知识工程师每天大约能编码10-20条高质量断言。

4.3.2 半自动学习与知识提取

在OpenCyc时期,团队尝试从文本语料中自动抽取常识。例如,利用语法分析从维基百科句子中提取“猫吃鱼”这类关系,再经人工校对后加入知识库。此外,还开发了“知识共享”工具,允许用户提交自己的常识断言。但半自动抽取的质量始终低于人工编码,且噪音很大。

5.1 内部应用:自然语言理解与问答

Cyc团队内部将其应用于自然语言理解系统,能够解析简单英语句子并生成合理的回答。例如,系统可以回答“如果我把钥匙放进冰箱,它还会在那里吗?”(常识:冰箱内温度低但不会使钥匙消失)。Cyc还被用于处理语境歧义,如“吃完了”中的“完”表示动作结束还是食物耗尽。这些能力在当时属于前沿。

5.2 外部合作:国防高级研究计划局(DARPA)项目

DARPA长期资助Cyc用于情报分析、战场态势推理等领域。例如在“高速知识处理”计划中,Cyc被用来从非结构化报告(如截获的电报)中抽取行动意图和因果关系。此外,Cyc还参与了“自动科学发现”项目,试图利用常识推理辅助科学家提出假设。

5.3 对知识图谱与语义网的启发

Cyc的概念分层和微理论思想为后来知识图谱的构建提供了模板。语义网的核心技术之一——OWL(Web本体语言)——在顶层设计上借鉴了CycL的许多特性,如类层次、属性约束和语境化。

5.3.1 与WordNet、SUMO的比较

WordNet是一个词汇语义网络,侧重于单词间的关系(如词义、上下位词),但缺乏严谨的逻辑形式。SUMO(建议上层合并本体)是更轻量的顶层本体,试图与Cyc兼容,但规模远小于Cyc。Cyc胜在深度,败在复杂度;WordNet胜在广度,败在形式化。

5.3.2 对开放知识网络(如Wikidata)的影响

Wikidata等当代知识库在实体关系建模上沿用了Cyc的很多思想,例如使用“微事实”表示多条断言、支持语境标注(如“根据某来源”)。OpenCyc的子集甚至被直接导入了Wikidata,作为底层常识图谱的一部分。

5.4 学术研究与争议

Cyc项目引发了长久的学术讨论,支持者视其为AI符号主义的巅峰,反对者则批评其不切实际。

5.4.1 可维护性与可扩展性批评

随着知识库膨胀,断言间的冲突呈指数级增长。每一个新断言的加入都可能导致其他微理论中的矛盾,修复需耗费大量人力。批评者(如Marvin Minsky)指出,这种“专家手写常识”的方法无法扩展到百万级以上的事实。此外,知识库的版本控制、跨团队协作也极其困难。

5.4.2 “完全常识”目标的可行性讨论

Cyc旨在实现“完全”的常识推理,但批评者认为人类常识具有开放性且随文化、时代变化,不可能通过一次性编码完成。莱纳特则回应称,Cyc并不追求绝对完美,而是达到一个“合理临界点”——当知识库足够大时,机器就能自动填充剩余缝隙。这一争论至今未休。

6.1 OpenCyc与ResearchCyc

6.1.1 OpenCyc的许可与子集

OpenCyc于2002年以LGPL许可发布,包含约6000个概念和6万条断言(正式版为“开放”版本)。它只包含顶层本体和少量常见常识,缺乏底层实例。用户可自由使用、修改,但无法商用。OpenCyc曾被集成到多个学术工具中,如作为Protégé的底层本体。

6.1.2 ResearchCyc的社区使用

ResearchCyc面向非商业研究机构提供更全面的知识库(约20万断言),且附带了完整推理引擎。其使用受限于保密协议,因此并未成为主流。一些大学(如卡内基梅隆、德克萨斯大学)用它进行自然语言处理实验,但成果难以复制。

6.2 Cycorp公司现状

截至2020年代,Cycorp仍是一家私人公司,员工约50人。主要收入来自与美国政府机构(如空军、情报部门)的合同,以及少数企业客户(如生物技术公司)。公司官网持续运营,但新知识库版本不再公开发布。莱纳特于2018年退休,公司由继任团队管理。

6.3 其他受Cyc启发的常识推理项目

数个后来项目直接受Cyc启发:ConceptNet(由Open Mind Common Sense语料构建,使用自然语言而非逻辑形式)、DBpedia(从维基百科抽取结构化知识)、NELL(卡内基梅隆的永不停止语言学习系统)。这些项目均试图以更自动化的方式获取常识,但形式化程度普遍低于Cyc。

7.1 项目成就与局限

Cyc最大的成就是首次系统性证明了“将人类常识编码为机器可理解的形式”在技术上是可行的,并积累了人类史上最大的形式化常识知识库。其微理论机制至今仍是处理知识冲突的经典方案。然而,高昂的成本、缓慢的扩展速度以及无法大规模实用化是其致命局限。Cyc更像一个壮观的学术实验,而非可广泛部署的商业产品。

7.2 与深度学习时代的常识推理对比

2010年后,深度学习在视觉、语言等领域取得突破,常识推理反而被视为其“阿喀琉斯之踵”。大语言模型(如GPT系列)能够通过统计模式“模拟”常识,但缺乏显式的逻辑保证,常产生事实性错误或荒谬回答。Cyc的方式则能提供可追溯的推理链路和确定性,但无法处理深层语义的模糊性。二者分别代表了符号主义与连接主义的典型路径。

7.3 可能的复兴路径

随着大语言模型对常识的“隐性”掌握,将Cyc的显式知识库与深度学习结合成为一个研究方向。例如,利用Cyc的微理论为大语言模型提供语境约束,或使用深度模型自动填充Cyc中的缺失断言。此外,量子计算和通量推理或能降低Cyc推理的计算复杂度。虽然Cyc本体已逐渐边缘化,但其核心思想——常识需要结构化、可解释的形式——在可信任AI日益重要的今天,仍具有潜在的复兴价值。