CYC项目
Cyc项目1始于1984年,由当时的微电子与计算机技术公司开发。该项目最开始的目标是将上百万条知识编码成机器可用的形式,用以表示人类常识。CycL是Cyc项目专有的知识表示语言,这种知识表示语言是基于一阶关系的。1986年Douglas Lenat预测如果想要完成Cyc这样庞大的常识知识系统,这将涉及25万条规则,并将要花费350个人年才能完成。1994年,Cyc项目从该公司独立出去,并以此为基础成立了Cycorp公司。
"Cyc"名字的来源是 "encyclopedia",发音很像syke,是美国得克萨斯州奥斯丁的Cycorp公司的有效注册商标,Cycorp是一家由Douglas Lenat领导的致力于实现人工智能的公司。虽然Cyc知识库本身为Cycorp公司所有,但是该公司在开源Apache许可证的保证下提供了一个用于自动推理的公共词汇集,即OpenCyc。最近,Cyc还在一个以研究为目的的许可证保证下向人工智能研究者开放,并以ResearchCyc命名。
基本信息
- 中文名
CYC项目
- 外文名
CYC project
- 始于
1984年
- 特点
计算机技术公司开发
Cyc概述
Cyc知识库中表示的知识一般形如“每棵树都是植物”、“植物最终都会死亡”。当提出“树是否会死亡”的问题时,推理引擎可以得到正确的结论,并回答该问题。该知识库中包含了320万条人类定义的断言,涉及30万个概念,15000个谓词。这些资源都采取CycL语言来进行描述,该语言采取谓词代数描述,语法上与Lisp程序设计语言类似。
Cyc项目大部分的工作仍然是以知识工程为基础的。大部分的事实是通过手工添加到知识库中,并在这些知识基础上进行高效推理的。最近Cycorp正致力于使Cyc系统能够和最终用户用自然语言进行交流,并通过具机器学习来辅助形成知识的工作。
Cyc公司与很多公司具有相同的梦想,即采用Cyc自然语言理解工具解析整个互联网并从中抽取结构化数据。
2008年,研究人员将Cyc资源被映射到许多维基百科的文章上,这使得Cyc与类似于DBpedia、Freebase这样的数据集进行连接变得更为容易。
知识库
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))