CycL
Encyclopedia
CycL in computer science
and artificial intelligence
is an ontology language used by Doug Lenat's Cyc
artificial intelligence project. Ramanathan V. Guha
was instrumental in the design of early versions of the language. There is a close variant of CycL known as MELD.
The original version of CycL was a frame language
, but the modern version is not. Rather, it is a declarative language based on classical first-order logic
, with extensions for modal operators
and higher order quantification
.
CycL is used to represent the knowledge stored in the Cyc Knowledge Base, available from Cycorp. The source code written in CycL released with the OpenCyc system is licensed as open source, to increase its usefulness in supporting the semantic web
.
For example:
"Bill Clinton belongs to the collection of U.S. presidents" and
"All trees are plants".
"Paris is the capital of France."
(#$implies
(#$and
(#$isa ?OBJ ?SUBSET)
(#$genls ?SUBSET ?SUPERSET))
(#$isa ?OBJ ?SUPERSET))
with the interpretation "if OBJ is an instance of the collection SUBSET and SUBSET is a subcollection of SUPERSET, then OBJ is an instance of the collection SUPERSET".
Another more complicated example is one that expresses a rule about a group or category rather than any particular individual, is:
(#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)
which means that for every instance of the collection #$ChordataPhylum (i.e. for every chordate
), there exists a female animal (instance of #$FemaleAnimal) which is its mother (described by the predicate #$biologicalMother).
(or in looser English, if you have a particular animal that has a backbone, then there will be a link from that particular animal expressing the concept of that animal's "biological Mother". The thing that "fills in the blank" for the biological Mother must also be able to be categorized as a Female Animal.)
one specialization of #$MathMt is #$GeometryGMt, the microtheory about geometry.
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
and artificial intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...
is an ontology language used by Doug Lenat's Cyc
Cyc
Cyc is an artificial intelligence project that attempts to assemble a comprehensive ontology and knowledge base of everyday common sense knowledge, with the goal of enabling AI applications to perform human-like reasoning....
artificial intelligence project. Ramanathan V. Guha
Ramanathan V. Guha
Ramanathan V. Guha is an Indian computer scientist. He graduated with B.Tech from Indian Institute of Technology Madras, MS from University of California Berkeley and...
was instrumental in the design of early versions of the language. There is a close variant of CycL known as MELD.
The original version of CycL was a frame language
Frame language
A frame language is a metalanguage. It applies the frame concept to the structuring of language properties. Frame languages are usually software languages.-Description:...
, but the modern version is not. Rather, it is a declarative language based on classical first-order logic
First-order logic
First-order logic is a formal logical system used in mathematics, philosophy, linguistics, and computer science. It goes by many names, including: first-order predicate calculus, the lower predicate calculus, quantification theory, and predicate logic...
, with extensions for modal operators
Modal logic
Modal logic is a type of formal logic that extends classical propositional and predicate logic to include operators expressing modality. Modals — words that express modalities — qualify a statement. For example, the statement "John is happy" might be qualified by saying that John is...
and higher order quantification
Higher-order logic
In mathematics and logic, a higher-order logic is a form of predicate logic that is distinguished from first-order logic by additional quantifiers and a stronger semantics...
.
CycL is used to represent the knowledge stored in the Cyc Knowledge Base, available from Cycorp. The source code written in CycL released with the OpenCyc system is licensed as open source, to increase its usefulness in supporting the semantic web
Semantic Web
The Semantic Web is a collaborative movement led by the World Wide Web Consortium that promotes common formats for data on the World Wide Web. By encouraging the inclusion of semantic content in web pages, the Semantic Web aims at converting the current web of unstructured documents into a "web of...
.
Basic Ideas
CycL has some basic ideas:- Naming the constants used to refer to information for represented concepts.
- Grouping the constants together in a generalization/specialization hierarchy (usually called categorization).
- Stating general rules that support inferenceInferenceInference is the act or process of deriving logical conclusions from premises known or assumed to be true. The conclusion drawn is also called an idiomatic. The laws of valid inference are studied in the field of logic.Human inference Inference is the act or process of deriving logical conclusions...
about the concepts. - The truth or falsity of a CycL sentence is context-relative; these contexts are represented in CycL as Microtheories.
Constants
The concept names in Cyc are known as constants. Constants start with "#$" and are case-sensitive. There are constants for:- Individual items known as individuals, such as #$BillClinton or #$France.
- Collections, such as #$Tree-ThePlant (containing all trees) or #$EquivalenceRelation (containing all equivalence relationEquivalence relationIn mathematics, an equivalence relation is a relation that, loosely speaking, partitions a set so that every element of the set is a member of one and only one cell of the partition. Two elements of the set are considered equivalent if and only if they are elements of the same cell...
s). A member of a collection is called an instance of that collection. - Truth Functions which can be applied to one or more other concepts and return either true or false. For example #$siblings is the sibling relationship, true if the two arguments are siblings. By convention, truth function constants start with a lower-case letter. Truth functions may be broken down into logical connectives (such as #$and, #$or, #$not, #$implies), quantifiers (#$forAll, #$thereExists, etc.) and predicates.
- Functions, which produce new terms from given ones. For example, #$FruitFn, when provided with an argument describing a type (or collection) of plants, will return the collection of its fruits. By convention, function constants start with an upper-case letter and end with the string "Fn".
Specialization and Generalization
The most important predicates are #$isa and #$genls. The first one (#$isa) describes that one item is an instance of some collection (i.e.: specialization), the second one (#$genls) that one collection is a subcollection of another one (i.e.: generalization). Facts about concepts are asserted using certain CycL sentences. Predicates are written before their arguments, in parentheses:For example:
- (#$isa #$BillClinton #$UnitedStatesPresident) \;
"Bill Clinton belongs to the collection of U.S. presidents" and
- (#$genls #$Tree-ThePlant #$Plant) \;
"All trees are plants".
- (#$capitalCity #$France #$Paris) \;
"Paris is the capital of France."
Rules
Sentences can also contain variables, strings starting with "?". One important rule asserted about the #$isa predicate reads(#$implies
(#$and
(#$isa ?OBJ ?SUBSET)
(#$genls ?SUBSET ?SUPERSET))
(#$isa ?OBJ ?SUPERSET))
with the interpretation "if OBJ is an instance of the collection SUBSET and SUBSET is a subcollection of SUPERSET, then OBJ is an instance of the collection SUPERSET".
Another more complicated example is one that expresses a rule about a group or category rather than any particular individual, is:
(#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)
which means that for every instance of the collection #$ChordataPhylum (i.e. for every chordate
Chordate
Chordates are animals which are either vertebrates or one of several closely related invertebrates. They are united by having, for at least some period of their life cycle, a notochord, a hollow dorsal nerve cord, pharyngeal slits, an endostyle, and a post-anal tail...
), there exists a female animal (instance of #$FemaleAnimal) which is its mother (described by the predicate #$biologicalMother).
(or in looser English, if you have a particular animal that has a backbone, then there will be a link from that particular animal expressing the concept of that animal's "biological Mother". The thing that "fills in the blank" for the biological Mother must also be able to be categorized as a Female Animal.)
Microtheories
The knowledge base is divided into microtheories (Mt), collections of concepts and facts typically pertaining to one particular realm of knowledge. Unlike the knowledge base as a whole, each microtheory is required to be free from contradictions. Each microtheory has a name which is a regular constant; microtheory constants contain the string "Mt" by convention. An example is #$MathMt, the microtheory containing mathematical knowledge. The microtheories can inherit from each other and are organized in a hierarchy:one specialization of #$MathMt is #$GeometryGMt, the microtheory about geometry.