The Syntax of CycL

CycL is a formal language whose syntax derives from first-order predicate calculus (the language of formal logic) and from Lisp. In order to express common sense knowledge, however, it goes far beyond first order logic. The vocabulary of CycL consists of terms. The set of terms can be divided into constants, non-atomic terms (NATs), variables, and a few other types of objects. Terms are combined into meaningful CycL expressions, which are used to make assertions in the CYC knowledge base.

This document will be sloppy with respect to the distinction between the formal language CycL and the datastructures used to represent CycL expressions in the CYC KB. Of course these are two separate things, but for explanatory purposes it is useful to overload the vocabulary.