# CycL

CycL En ciencias de la computación e inteligencia artificial, CycL es un lenguaje ontológico usado por el proyecto de inteligencia artificial de Doug Lenat conocido como Cyc. La participación de Ramanathan V. Guha fue decisiva en el diseño de este lenguaje. Hay una variante cerrada de CycL conocida como MELD.
Es un lenguaje está basado en cálculo de predicados que tiene una sintaxis similar a Lisp.
CycL se utiliza para representar el conocimiento almacenado en la Base de datos de conocimiento general conocida como Cyc, disponible en Cycorp Inc.Existe una versión de CycL con licencia de código abierto conocida como OpenCyc, cuyo fin es servir de apoyo a la web semántica.

## Ideas básicas

CycL se basa en las siguientes ideas básicas:
* Los conceptos se representan utilizando nombres de constantes
* Las constantes se agrupan formando generalizaciones que se ordenan de forma jerárquica (categorización)
* Se expresan reglas generales que definan las inferencias sobre los conceptos.
* La verdad o falsedad de una sentencia CycL es relativa al contexto, estos contextos son representados en CycL como microteorías.

## Constantes

Los conceptos en Cyc se conocen como constantes. Las constantes empiezan con "#$" distinguiéndose entre mayúsculas y minúsculas. Hay constantes para:
* Items individuales conocidos como individuos, tales como #$LinusTorvalds o #$Colombia.
* Colecciones tales como #$Tree-ThePlant (conteniendo todos los árboles) o #$EquivalenceRelation (conteniendo todas las Relaciones de equivalencia). Un miembro de una colección es llamado una instancia de dicha colección.
* Las funciones de verificación pueden ser aplicadas a uno o más conceptos y retornan verdadero o falso. Por ejemplo #$siblings (hermanos) es la relación de hermandad y es verdadera si los dos argumentos son hermanos. Las funciones de verificación pueden ser divididas en conectoras lógicas (#$and, #$or, #$not, #$implies), cuantificadores (#$forAll, #$thereExists, etc.) y predicados (como en el ejemplo de la hermandad).
* Hay funciones que producen nuevos términos a partir de otros términos introducidos. Por ejemplo #$FruitFn a la cual, cuando se le provee un argumento que describe un tipo o colección de plantas, retorna los frutos de estas plantas. Por convención, las funciones constantes empiezan con mayúsculas y terminan en "Fn".

## Especialización y generalización

Los predicados más importantes son #$isa y #$genls. El primero (#$isa) describe que un objeto es una instancia de alguna colección (es decir una especialización), el segundo (#$genls) que una colección es una ocurrencia de otra (una generalización). Los hechos y datos acerca de los conceptos se afirman usando determinadas sentencias de Cycl. Los predicados se escriben antes de que sus argumentos, entre paréntesis:
Ejemplos:
"Bill Clinton pertenece a la colección de los presidentes de EE.UU."
"Todos los árboles son plantas".
"Madrid es la capital de España."

## Reglas

Las sentencias también pueden contener variables, estas son las cadenas de texto que comienzan con "?". Esto influye de forma importante sobre lo que el predicado #$isa interpreta:
Esto se interpreta como "si OBJ es una instancia de la colección SUBSET y SUBSET es una subcolección de SUPERSET, entonces OBJ es una instancia de la colección SUPERSET".
Otro ejemplo más complicado sería el que expresa una regla sobre un grupo o categoría en lugar de un individuo en particular, es:
Lo que significa que por cada ocurrencia de la colección #$ChordataPhylum (es decir, para todos los cordados), existe una hembra (es decir #$FemaleAnimal) que es la madre de dicha ocurrencia (descrita por el predicado #$biologicalMother).

## Microteorías

La base de conocimiento está dividida en microteorías (Mt), colecciones de conceptos y hechos generalmente pertenecientes a un ámbito particular de conocimiento. A diferencia de la base de conocimientos como un todo, es necesario que cada microteoría esté libre de contradicciones. Cada microteoría tiene un nombre que es una constante regular; Las constantes de microteoría contienen la cadena "MT" por convención. Un ejemplo es #$MathMt, es decir la microteoría de conocimientos matemáticos. Las microteorías se organizan de manera jerárquica, heredando sus propiedades de un nivel al inferior:
Una ocurrencia de $#MathMt es #$GeometryGMt, es decir la microteoría acerca de la geometría.
Véase: Inteligencia artificial, Lógica, WordNet, Web semántica, Cyc, Representación del conocimiento

## Bibliografía

* R.V. Guha; Douglas B. Lenat. «CYC: A Mid-Term Report». AI Magazine, otoño 1990 (en inglés) 11 (3): 32-59. La referencia utiliza el parámetro obsoleto |coautores= (ayuda)
* Freedman, David H. (1996). «Capítulo 2: Los padres fundadores». Hacedores de cerebros. (url con vista previa restringida). Editorial Andres Bello. pp. 64-80. ISBN 956-13-1324-3.