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. Existe 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 basicas
CycL tiene algunas ideas básicas:
- Nombrar las constantes utilizadas para referirse a la información de los conceptos representados.
- Agrupar las constantes en una jerarquía de generalización / especialización (generalmente llamada categorización).
- Declarar reglas generales que apoyen la inferencia sobre los conceptos.
- La verdad o falsedad de una oración CycL es relativa al contexto; estos contextos se representan en CycL como Microteorías.
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 individuos , como # $ BillClinton o # $ France.
- Colecciones , como # $ Tree-ThePlant (que contiene todos los árboles) o # $ EquivalenceRelation (que contiene todas las relaciones de equivalencia ). Un miembro de una colección se denomina instancia de esa colección.
- Verdad Funciones que se pueden aplicar a uno o más conceptos y devuelven verdadero o falso. Por ejemplo, # $ hermanos es la relación entre hermanos, verdadero si los dos argumentos son hermanos. Por convención, las constantes de la función de verdad comienzan con una letra minúscula. Las funciones de verdad se pueden dividir en conectivos lógicos (como # $ y, # $ o, # $ no, # $ implica), cuantificadores (# $ para todos, # $ existe, etc.) y predicados.
- Funciones , que producen nuevos términos a partir de determinados. Por ejemplo, # $ FruitFn, cuando se le proporciona un argumento que describe un tipo (o colección) de plantas, devolverá la colección de sus frutos. Por convención, las constantes de función 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 conceptos se afirman usando ciertas oraciones CycL . Los predicados se escriben antes de sus argumentos, entre paréntesis:
Por ejemplo:
- (# $ isa # $ BillClinton # $ Presidente de los Estados Unidos) \;
"Bill Clinton pertenece a la colección de presidentes de Estados Unidos" y
- (# $ genls # $ Tree-ThePlant # $ Plant) \;
"Todos los árboles son plantas".
- (# $ capitalCity # $ 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 lee
(# $ implica (# $ y (# $ 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 cualquier individuo en particular, es:
(# $ relaciónAllExists # $ BiológicaMadre # $ ChordataPhylum # $ HembraAnimal)
lo que significa que para cada instancia de la colección # $ ChordataPhylum (es decir, para cada cordado ), existe una hembra (instancia de # $ FemaleAnimal) que es su madre (descrita por el predicado # $ BiologicalMother).
(o en un inglés más flexible, si tienes un animal en particular que tiene una columna vertebral, entonces habrá un vínculo de ese animal en particular que expresa el concepto de la "madre biológica" de ese animal. Lo que "llena el espacio en blanco" para el La madre también debe poder ser categorizada como animal hembra).
Microteorías
La base de conocimientos se divide en microteorías (Mt), colecciones de conceptos y hechos que suelen pertenecer a un ámbito de conocimiento en particular. 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; Las constantes de microteoría contienen la cadena "Mt" por convención. Un ejemplo es # $ MathMt, la microteoría que contiene el conocimiento matemático. Las microteorías pueden heredarse unas de otras y están organizadas en una jerarquía:
una especialización de # $ MathMt es # $ GeometryGMt, la microteoría sobre geometría.
Ver también
Referencias
- RV Guha; Douglas B. Lenat. "CYC: un informe de mitad de período". Revista AI , otoño de 1990, 11 (3): 32–59.