CycL语法主要由以下几个部分构成:
常量(Constants)
常量用来表示特定的个体和集合,CycL常量都由#$(读hash-dollar)为前缀。CycL用常量来表示个体、集合、关系和属性值。
公式(Formulas)
公式用来描述参数间的关系,由圆括弧包围。例如:
(#$isa #$GeorgeWBush #$Person)
(#$likesAsFriend #$GeorgeWBush #$AlGore)
(#$BirthFn #$JacquelineKennedyOnassis)
上述前两个实例称为CycL的句子,后一个称为非原子项。
句子(Sentence)
在CycL中,句子用来形成断言(assertions,告诉Cyc某些事实)和查询(query,问Cyc某些事)。
每个句子都由真值函数开头(在参数0的位置),每个句子都返回一个真假值(true或者false)。真值函数总由小写字母开头,真值函数的类型包括谓词、逻辑连接词和量词。谓词型句子总是由一个谓词打头,并将谓词应用于其后的参数,如:
(#$isa #$GeorgeWBush #$Person)
(#$likesAsFriend #$GeorgeWBush #$AlGore)
至于逻辑连接词和量词型的真值函数我们随后再谈。
非原子项(Non-Atomic Terms)
非原子项总是由函数标示开头。函数获得其参数并得到一个新值。在CycL中,函数通常由Fn结尾。因此,非原子项总是返回一个项,它可以象其它项一样用在CycL需要使用项的地方。
复杂公式(Complex Formulas)
通过应用逻辑连接词,量词和变量,可以构成复杂的公式。
CycL中的变量是以?开头的,变量名应该是唯一的。并且没有被量词修饰的变量称为自由变量。以下是几个例子:
(#$thereExists ?PLANET
(#$and
(#$isa ?PLANET #$Planet)
(#$orbits ?PLANET #$Sun)))
该实例表明至少存在一颗行星围绕太阳转。
(#$forAll #$PERSON1
(#$implies
(#$isa ?PERSON1 #$Person)
(#$thereExist ?PERSON2
(#$and
(#$is ?PERSON2 #$Person)
(#$loves ?PERSON1 ?PERSON2)))))
该实例表明每个人总会爱至少一个人。