# CycL

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/CycL
> Markdown URL: https://mediated.wiki/source/CycL.md
> Source: https://en.wikipedia.org/wiki/CycL
> Source revision: 1339803994
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Ontology language

For artificial intelligence project, see [Cyc](/source/Cyc).

This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "CycL" – news · newspapers · books · scholar · JSTOR (January 2021) (Learn how and when to remove this message)

**CycL** in [computer science](/source/Computer_science) and [artificial intelligence](/source/Artificial_intelligence), is an [ontology language](/source/Ontology_language) used by [Douglas Lenat](/source/Douglas_Lenat)'s [Cyc](/source/Cyc) [artificial intelligence project](/source/List_of_notable_artificial_intelligence_projects). [Ramanathan V. Guha](/source/Ramanathan_V._Guha) was instrumental in designing early versions of the language. A close CycL variant exists named *MELD*.[1]

The original version of CycL was a [frame language](/source/Frame_language), but the modern version is not. Rather, it is a [declarative language](/source/Declarative_language) based on classical [first-order logic](/source/First-order_logic), with extensions for [modal logic](/source/Modal_logic) operators and [higher-order logic](/source/Higher-order_logic) quantification.

CycL is used to represent the knowledge stored in the Cyc Knowledge Base, available from [Cycorp](/source/Cycorp). The [source code](/source/Source_code) written in CycL released with the [OpenCyc](/source/Cyc#OpenCyc) system is licensed as [free and open-source software](/source/Free_and_open-source_software), to increase its usefulness in supporting the [semantic web](/source/Semantic_web).

## Basic ideas

The basic ideas of CycL include:

- 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 [inference](/source/Inference) 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 relations](/source/Equivalence_relation)). 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](/source/Chordate)), there exists a female animal (instance of #$FemaleAnimal) which is its mother (described by the predicate #$biologicalMother).

(Or in looser English, if a given animal has a backbone, then there will be a link from that 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.

## See also

- List of [Ontology languages](/source/Ontology_language)

## References

1. **[^](#cite_ref-1)** [Guha, R.V.](/source/Ramanathan_V._Guha); [Lenat, Douglas B.](/source/Douglas_Lenat) (Fall 1990). ["Cyc: A Mid-Term Report"](https://doi.org/10.1609%2Faimag.v11i3.842). *AI Magazine*. **11** (3): 32–59. [doi](/source/Doi_(identifier)):[10.1609/aimag.v11i3.842](https://doi.org/10.1609%2Faimag.v11i3.842).

v t e Knowledge representation and reasoning Knowledge bases Cyc ConceptNet DBpedia Knowledge Graph YAGO Wikidata Reasoning systems Expert systems CLIPS Connectionist expert systems Expert systems for mortgages Legal expert systems Theorem provers CARINE E Nqthm Otter Paradox Prover9 SPASS TPS Z3 Logic programs Prolog Datalog ASP Constraint solvers Constraint Handling Rules MiniZinc OR-Tools Others Deductive classifiers Procedural reasoning systems Rule engines Ontology languages Attempto Controlled English CycL F-logic FO(.) Knowledge Interchange Format Web Ontology Language Constraint satisfaction Constraint programming Constraint logic programming Local consistency SMT solvers Automated planning Motion planning Multi-agent planning Partial-order planning Preference-based planning Reactive planning State-space planning Argumentation frameworks Backward chaining Blackboard systems Case-based reasoning Commonsense reasoning Forward chaining Model-based reasoning Inference engines Knowledge engineering Knowledge acquisition Knowledge extraction Rule-based systems Spatio-temporal reasoning Qualitative reasoning

---
Adapted from the Wikipedia article [CycL](https://en.wikipedia.org/wiki/CycL) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/CycL?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
