stringtranslate.com

CicL

CycL, en informática e inteligencia artificial , es un lenguaje de ontología utilizado por el proyecto de inteligencia artificial Cyc de Douglas Lenat . Ramanathan V. Guha fue fundamental en el diseño de las primeras versiones del lenguaje. Existe una variante cercana de CycL llamada MELD . [1]

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 de lógica modal y cuantificación lógica de orden superior .

CycL se utiliza para representar el conocimiento almacenado en la base de conocimientos Cyc Knowledge Base, disponible en Cycorp . El código fuente escrito en CycL publicado con el sistema OpenCyc tiene licencia de software libre y de código abierto , para aumentar su utilidad en el soporte de la web semántica .

Ideas básicas

Las ideas básicas de CycL incluyen:

Constantes

Los nombres de los conceptos en Cyc se conocen como constantes . Las constantes comienzan con "#$" y distinguen entre mayúsculas y minúsculas. Existen constantes para:

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 utilizando ciertas oraciones de CycL . Los predicados se escriben antes de sus argumentos, entre paréntesis:

Por ejemplo:

(#$isa #$BillClinton #$PresidenteDeLosEstadosUnidos) \;

"Bill Clinton pertenece a la colección de presidentes estadounidenses" y

(#$genls #$Arbol-LaPlanta #$Planta) \;

"Todos los árboles son plantas".

(#$ciudadcapital #$Francia #$París) \;

"París es la capital de Francia."

Normas

Las oraciones también pueden contener variables, cadenas que comienzan con "?". Una regla importante que se afirma sobre el predicado #$isa dice

(#$implica (#$y (#$isa ?OBJ ?SUBCONJUNTO) (#$genls ?SUBCONJUNTO ?SUPERCONJUNTO)) (#$isa ?OBJ ?SUPERCONJUNTO))

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 aquel que expresa una regla acerca de un grupo o categoría en lugar de un individuo en particular:

(#$relationAllExists #$Madrebiológica #$FiloCordatos #$AnimalHembra)

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 lenguaje más amplio, si un animal determinado tiene columna vertebral, entonces habrá un vínculo desde ese animal que exprese el concepto de la "madre biológica" de ese animal. Lo que "rellena el espacio en blanco" de la madre biológica también debe poder categorizarse como un animal hembra).

Microteorías

La base de conocimiento se divide en microteorías (Mt), conjuntos de conceptos y hechos que generalmente pertenecen a un ámbito particular del conocimiento. A diferencia de la base de conocimiento en su conjunto, cada microteoría debe estar 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 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.

Véase también

Referencias

  1. ^ Guha, RV ; Lenat, Douglas B. (enero de 1991). "Cyc". Inteligencia artificial aplicada . 5 (1): 45–86. doi :10.1080/08839519108927917.