CycL

from Wikipedia, the free encyclopedia
CycL
Paradigms : functional
Publishing year: 1984
Developer: Doug Lenat , Ramanathan V. Guha
Typing : dynamic
Influenced by: Lisp
Operating system : cross-platform

CycL is an ontology language in artificial intelligence that was specially developed for the knowledge database Cyc . Doug Lenat and Ramanathan V. Guha are the first developers.

The original version of CycL was a frame-based language , but the current version has moved away from it. It is a declaration language based on first-order predicate logic . It contains extensions for modal logic and higher-level predicate logic .

CycL is used in the Cyc knowledge database to represent the stored knowledge. The source code, written in CycL, is available in the OpenCyc project as open source in order to increase its usability for supporting the semantic web .

Basic ideas

CycL is based on a few basic ideas:

  • Constants are used to refer to concepts stored in the knowledge base.
  • The constants are grouped together in a hierarchy that forms specializations and generalizations.
  • General rules are created to help draw conclusions about the concepts.
  • The truth content of a CycL sentence is context-dependent . The contexts are mapped in CycL as microtheories.

Constants

The concept names are called constants in CycL. Constants begin with the prefix "# $" and are case-sensitive. There are constants for:

  • Individual : proper names like # $ BillClinton or # $ Hamburg.
  • Collection : Sets like # $ Tree-ThePlant, which contains all trees or #EquivalenceRelation, which contains all equality relationships. An element of a set is called an instance of the set.
  • TruthFunction : Functions that return a truth value. These functions represent relationships between concepts that can be either true or false. By definition, functions in CycL begin with a lowercase letter after the prefix. Such atomic functions can be combined into complex sentences using logical operations (such as # $ and, # $ or, # $ not, # $ implies, etc.), quantifiers (such as # $ forAll, # $ thereExists, etc.) and other predicates.
  • Function : Functions that create new ones from existing terms. Eg # $ FruitFn, which returns the amount of all its fruits with a plant amount as an argument. By definition, such functions start with a capital letter after the prefix and end with the string "Fn".

Specializations and generalizations

The most important and most frequently used predicates are #isa and # $ genls. The first (# $ isa) says that a given element is an instance of a set, while the second (# $ genls) says that one set is a subset of another.

Statements about concepts are called sentences in CycL . Predicates are written in front of their arguments and the entire expression is put in parentheses.

Examples:

(# $ isa # $ BillClinton # $ UnitedStatesPresident)

"Bill Clinton is one of the crowd of American presidents."

(# $ genls # $ Tree-ThePlant # $ Plant)

"All trees are plants."

(# $ capitalCity # $ France # $ Paris)

"Paris is the capital of France."

(# $ disjointWith # $ Dog # $ Cat)

"The set of all dogs and the set of all cats contain no elements in common."

regulate

Sentences can also contain variables. Variables begin with the prefix "?". An important rule about the # $ isa predicate is:

(#$implies
   (#$and
     (#$isa ?OBJEKT ?TEILMENGE)
     (#$genls ?TEILMENGE ?MENGE))
   (#$isa ?OBJEKT ?MENGE))

with the meaning "If? OBJEKT is an element of the set? PARTIAL and? PARTIAL is a subset of? QUANTITY, then? OBJECT is also an element of the set? QUANTITY."

A more complex example is a rule that makes statements about an entire group or category rather than an individual value:

(# $ relationAllExists # $ biologicalMother # $ ChordataPhylum # $ FemaleAnimal)

This statement says that for every element of the set # $ ChordataPhylum ( Chordatiere ) there is a female animal (# $ FemaleAnimal) who is its mother (# $ biologicalMother) or, to put it more simply: Every # $ ChordataPhylum has a mother.

Microtheories

The knowledge database is divided into so-called microtheories (Mt), which contain a number of concepts and statements about these concepts. Unlike the knowledge database as a whole, microtheories must not contain any contradictions.

Every microtheory has a name that is a normal constant. By definition, these names end with the string "Mt". Microtheories can inherit statements from the underlying microtheories and are therefore also organized in their own hierarchy.

Example:

(# $ genlMt # $ GeometryMt # $ MathMt)

"The micro-theory of geometry is a branch of the micro-theory of mathematics and knows all the statements from it."

swell

  • Translated from the English article with minor adjustments

Web links