CicL
CycL en informática e inteligencia artificial es un lenguaje de ontología utilizado por el proyecto de inteligencia artificial Cyc de Doug Lenat. Ramanathan V. Guha jugó un papel decisivo en el diseño de las primeras versiones del idioma. Hay una variante cercana de CycL conocida como MELD.
La versión original de CycL era un lenguaje de marcos, pero la versión moderna no lo es. Más bien, es un lenguaje declarativo basado en la lógica clásica de primer orden, con extensiones para operadores modales y cuantificación de orden superior.
CycL se utiliza para representar el conocimiento almacenado en la Base de conocimientos de Cyc, disponible en Cycorp. El código fuente escrito en CycL publicado con el sistema OpenCyc tiene licencia de código abierto para aumentar su utilidad en el soporte de la web semántica.
Ideas básicas
CycL tiene algunas ideas básicas:
- Nombrando las constantes utilizadas para referirse a la información para conceptos representados.
- Agrupar las constantes en una jerarquía de generalización y especialización (generalmente llamada categorización).
- Establecer reglas generales que apoyen la inferencia sobre los conceptos.
- La verdad o falsedad de una frase CycL es relativa al contexto; estos contextos están representados en CycL como Microteorias.
Constantes
Los nombres de los conceptos en Cyc se conocen como constantes. Las constantes comienzan con "#$" y distinguen entre mayúsculas y minúsculas. Hay constantes para:
- Artículos individuales conocidos como particulares, como #$BillClinton o #$France.
- Colecciones, como #$Tree-ThePlant (contiene todos los árboles) o #$EquivalenciaRelación (contiene todas las relaciones de equivalencia). Un miembro de una colección se llama ejemplo de esa colección.
- Funciones de la verdad que se puede aplicar a uno o más conceptos y devolver sea verdadero o falso. Por ejemplo, #$siblings es la relación de hermanos, verdadera si los dos argumentos son hermanos. Por convención, las constantes de la función de la verdad comienzan con una carta de menor tamaño. Las funciones de la verdad pueden dividirse en conectores lógicos (como #$and, #$or, #$not, #$implies), cuantificadores (#$forAll, #$thereExists, etc.) y predicados.
- Funciones, que producen nuevos términos de los dados. Por ejemplo, #$FruitFn, cuando se proporciona con un argumento que describe un tipo (o colección) de plantas, devolverá la colección de sus frutos. Por convención, las constantes de las funciones comienzan con una letra mayúscula y terminan con la cadena "Fn".
Especialización y generalización
Los predicados más importantes son #$isa y #$genls. El primero (#$isa) describe que un elemento es una instancia de alguna colección (es decir, especialización), el segundo (#$genls) que una colección es una subcolección de otra (es decir, generalización). Los hechos sobre los conceptos se afirman usando ciertas oraciones de CycL. Los predicados se escriben antes de sus argumentos, entre paréntesis:
Por ejemplo:
- (#$isa #$BillClinton #$UnitedStatesPresident) ;
"Bill Clinton pertenece a la colección de presidentes de Estados Unidos" y
- (#$genls #$Tree-ThePlant #$Plant) ;
"Todos los árboles son plantas".
- (#$capital Ciudad #$France #$Paris) ;
"París es la capital de Francia."
Reglas
Las oraciones también pueden contener variables, cadenas que comienzan con "?". Una regla importante afirmada sobre el predicado #$isa dice
(#$implies (#$and (#$isa?OBJ ?SUBSET) (#$genls?SUBSET ?SUPERSET) (#$isa?OBJ ?SUPERSET)
con la interpretación "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 es el que expresa una regla sobre un grupo o categoría en lugar de un individuo en particular, es:
(#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)
lo que significa que para cada instancia de la colección #$ChordataPhylum (es decir, para cada cordado), existe un animal hembra (instancia de #$FemaleAnimal) que es su madre (descrita por el predicado #$biologicalMother).
(o en un inglés más amplio, si tienes un animal en particular que tiene columna vertebral, entonces habrá un enlace de ese animal en particular que exprese el concepto de la 'madre biológica' de ese animal. Lo que 'llena el espacio en blanco' para la madre biológica también debe poder clasificarse como un animal hembra).
Microteorías
La base de conocimiento se divide en microteorías (Mt), colecciones de conceptos y hechos típicamente pertenecientes a un ámbito particular de conocimiento. A diferencia de la base de conocimientos en su conjunto, se requiere que cada microteoría esté libre de contradicciones. Cada microteoría tiene un nombre que es una constante regular; constantes de microteoría contienen la cadena "Mt" por convención. Un ejemplo es #$MathMt, la microteoría que contiene conocimiento matemático. Las microteorías pueden heredar unas de otras y están organizadas en una jerarquía:
una especialización de #$MathMt es #$GeometryGMt, la microteoría sobre la geometría.
Contenido relacionado
Yahoo! vida en internet
XML de Java
ASDL