stringtranslate.com

Marco (inteligencia artificial)

Los marcos son una estructura de datos de inteligencia artificial que se utiliza para dividir el conocimiento en subestructuras representando " situaciones estereotipadas ". Fueron propuestos por Marvin Minsky en su artículo de 1974 "Un marco para representar el conocimiento". Los marcos son la estructura de datos principal utilizada en los lenguajes de marcos de inteligencia artificial; se almacenan como ontologías de conjuntos .

Los marcos también son una parte importante de los esquemas de razonamiento y representación del conocimiento . Originalmente se derivaron de redes semánticas y, por lo tanto, son parte de representaciones de conocimiento basadas en estructuras. Según Artificial Intelligence: A Modern Approach de Russell y Norvig , las representaciones estructurales reúnen "[...]hechos sobre objetos y tipos de eventos particulares y organizan los tipos en una gran jerarquía taxonómica análoga a una taxonomía biológica ".

Estructura del marco

El marco contiene información sobre cómo utilizarlo, qué esperar a continuación y qué hacer cuando no se cumplan estas expectativas. Parte de la información del marco generalmente no cambia, mientras que otra información, almacenada en "terminales", suele cambiar. Los terminales pueden considerarse variables. Los marcos de nivel superior contienen información que siempre es cierta sobre el problema en cuestión; sin embargo, los terminales no tienen por qué serlo. Su valor podría cambiar con la nueva información encontrada. Diferentes marcos pueden compartir los mismos terminales.

Cada pieza de información sobre un fotograma en particular se guarda en una ranura. La información puede contener:

Características y ventajas

Los terminales de un marco ya están llenos de valores predeterminados, que se basan en cómo funciona la mente humana. Por ejemplo, cuando a una persona se le dice "un niño patea una pelota", la mayoría de la gente visualizará una pelota en particular (como una pelota de fútbol familiar ) en lugar de imaginar una pelota abstracta sin atributos.

Una fortaleza particular de las representaciones de conocimiento basadas en marcos es que, a diferencia de las redes semánticas, permiten excepciones en casos particulares. Esto da a los marcos un grado de flexibilidad que permite que las representaciones reflejen los fenómenos del mundo real con mayor precisión.

Al igual que las redes semánticas , los marcos se pueden consultar mediante activación de difusión. Siguiendo las reglas de herencia, cualquier valor asignado a una ranura que sea heredada por subtramas se actualizará (IF-ADDED) a las ranuras correspondientes en las subtramas y cualquier instancia nueva de una trama en particular presentará ese nuevo valor como predeterminado.

Debido a que los marcos se basan en estructuras, es posible generar una red semántica dado un conjunto de marcos aunque carezca de arcos explícitos. En general, faltan referencias a Noam Chomsky y su gramática generativa de 1950 en la obra de Minsky .

Las estructuras simplificadas de los marcos permiten un razonamiento analógico sencillo, una característica muy apreciada en cualquier agente inteligente. Los adjuntos de procedimiento proporcionados por los marcos también permiten un grado de flexibilidad que genera una representación más realista y brinda una posibilidad natural para las aplicaciones de programación.

Ejemplo

Vale la pena destacar aquí el sencillo razonamiento analógico (comparación) que se puede hacer entre un niño y un mono simplemente teniendo ranuras con nombres similares.

Observe también que Alex, una instancia de un niño, hereda valores predeterminados como "Sexo" del objeto padre más general Niño, pero el niño también puede tener diferentes valores de instancia en forma de excepciones como el número de piernas.

Lenguaje de marco

Un lenguaje marco es una tecnología utilizada para la representación del conocimiento en inteligencia artificial . Son similares a las jerarquías de clases en los lenguajes orientados a objetos, aunque sus objetivos de diseño fundamentales son diferentes. Los marcos se centran en la representación explícita e intuitiva del conocimiento, mientras que los objetos se centran en la encapsulación y el ocultamiento de información . Los marcos se originaron en la investigación de la IA y los objetos principalmente en la ingeniería de software . Sin embargo, en la práctica, las técnicas y capacidades de los lenguajes orientados a marcos y a objetos se superponen significativamente.

Ejemplo

Un ejemplo simple de conceptos modelados en un lenguaje marco es la ontología Friend of A Friend (FOAF) definida como parte de la Web Semántica como base para las redes sociales y los sistemas de calendario. El marco principal en este ejemplo simple es una Persona . Los espacios de ejemplo son el correo electrónico de la persona , la página de inicio, el teléfono, etc. Los intereses de cada persona se pueden representar mediante marcos adicionales que describen el espacio de los dominios de negocios y entretenimiento. La tragamonedas sabe vincular a cada persona con otras personas. Los valores predeterminados para los intereses de una persona se pueden inferir a partir de la red de personas de las que es amiga. [1]

Implementaciones

Los primeros lenguajes basados ​​en marcos se desarrollaron a medida para proyectos de investigación específicos y no se empaquetaron como herramientas para ser reutilizadas por otros investigadores. Al igual que con los motores de inferencia de sistemas expertos , los investigadores pronto se dieron cuenta de los beneficios de extraer parte de la infraestructura central y desarrollar lenguajes marco de propósito general que no estuvieran acoplados a aplicaciones específicas. Uno de los primeros lenguajes marco de propósito general fue KRL. [2] Uno de los primeros lenguajes marco más influyentes fue KL-ONE . [3] KL-ONE generó varios lenguajes Frame posteriores. Uno de los sucesores de KL-ONE más utilizado fue el lenguaje Loom desarrollado por Robert MacGregor en el Instituto de Ciencias de la Información . [4]

En la década de 1980 la Inteligencia Artificial generó un gran interés en el mundo empresarial impulsado por los sistemas expertos. Esto llevó al desarrollo de muchos productos comerciales para el desarrollo de sistemas basados ​​en el conocimiento. Estos primeros productos generalmente se desarrollaron en Lisp e integraron construcciones como reglas IF-THEN para el razonamiento lógico con jerarquías de marcos para representar datos. Una de las más conocidas de estas primeras herramientas de base de conocimientos de Lisp fue el entorno de ingeniería del conocimiento (KEE) de Intellicorp . KEE proporcionó un lenguaje Frame completo con herencia múltiple, ranuras, activadores, valores predeterminados y un motor de reglas que admitía encadenamiento hacia adelante y hacia atrás. Como ocurre con la mayoría de las primeras versiones comerciales del software de inteligencia artificial, KEE se implementó originalmente en Lisp en plataformas de máquinas Lisp , pero finalmente se transfirió a PC y estaciones de trabajo Unix. [5]

La agenda de investigación de la Web Semántica generó un interés renovado en la clasificación automática y los lenguajes de marco. Un ejemplo es el estándar Web Ontology Language (OWL) para describir información en Internet. OWL es un estándar para proporcionar una capa semántica sobre Internet. El objetivo es que, en lugar de organizar la web utilizando palabras clave como lo hacen hoy en día la mayoría de las aplicaciones (por ejemplo, Google), la web pueda organizarse mediante conceptos organizados en una ontología.

El propio nombre del lenguaje OWL proporciona un buen ejemplo del valor de una Web Semántica. Si uno buscara "OWL" en Internet hoy en día, la mayoría de las páginas recuperadas estarían sobre el pájaro Owl en lugar del OWL estándar . Con una Web Semántica sería posible especificar el concepto "Lenguaje de Ontología Web" y el usuario no tendría que preocuparse por las diversas siglas o sinónimos posibles como parte de la búsqueda. Del mismo modo, el usuario no tendría que preocuparse de que los homónimos llenen los resultados de búsqueda con datos irrelevantes, como información sobre aves rapaces, como en este sencillo ejemplo.

Además de OWL, varios estándares y tecnologías que son relevantes para la Web Semántica y fueron influenciados por los lenguajes Frame incluyen OIL y DAML . La herramienta de software Protege Open Source de la Universidad de Stanford proporciona una capacidad de edición de ontologías basada en OWL y tiene todas las capacidades de un clasificador. Sin embargo, dejó de admitir marcos explícitamente a partir de la versión 3.5 (que se mantiene para aquellos que prefieren la orientación del marco), siendo la versión actual en 2017 la 5. La justificación para pasar de marcos explícitos es que OWL DL es más expresivo y "estándar de la industria". [6]

Comparación de marcos y objetos.

Los lenguajes marco tienen una superposición significativa con los lenguajes orientados a objetos . Las terminologías y los objetivos de las dos comunidades eran diferentes, pero a medida que pasaban del mundo académico y los laboratorios al mundo comercial, los desarrolladores tendían a no preocuparse por cuestiones filosóficas y se centraban principalmente en capacidades específicas, tomando lo mejor de cada campo independientemente de dónde estuviera la idea. comenzó. Lo que ambos paradigmas tienen en común es el deseo de reducir la distancia entre los conceptos del mundo real y su implementación en el software. Como tal, ambos paradigmas llegaron a la idea de representar los objetos de software primarios en taxonomías comenzando con tipos muy generales y progresando hacia tipos más específicos.

La siguiente tabla ilustra la correlación entre la terminología estándar de las comunidades de lenguaje marco y orientado a objetos:

La principal diferencia entre los dos paradigmas estaba en el grado en que la encapsulación se consideraba un requisito importante. Para el paradigma orientado a objetos, la encapsulación era uno de los requisitos críticos, si no el más importante. El deseo de reducir las posibles interacciones entre los componentes del software y, por tanto, gestionar grandes sistemas complejos fue un impulsor clave de la tecnología orientada a objetos. Para el campo del lenguaje marco, este requisito era menos crítico que el deseo de proporcionar una amplia gama de herramientas posibles para representar reglas, restricciones y lógica de programación. En el mundo orientado a objetos todo está controlado por los métodos y la visibilidad de los métodos. Entonces, por ejemplo, el acceso al valor de los datos de una propiedad de objeto debe realizarse mediante un método de acceso. Este método controla aspectos como la validación del tipo de datos y las restricciones sobre el valor que se recupera o establece en la propiedad. En los lenguajes Frame, estos mismos tipos de restricciones se pueden manejar de múltiples maneras. Se podrían definir disparadores para que se activen antes o después de que se establezca o recupere un valor. Se podrían definir reglas que gestionaran los mismos tipos de restricciones. Las propias ranuras podrían aumentarse con información adicional (llamadas "facetas" en algunos idiomas) nuevamente con el mismo tipo de información de restricción.

El otro diferenciador principal entre los lenguajes frame y OO era la herencia múltiple (permitir que un frame o clase tenga dos o más superclases). Para los lenguajes marco, la herencia múltiple era un requisito. Esto se deriva del deseo de modelar el mundo como lo hacen los humanos; las conceptualizaciones humanas del mundo rara vez caen en taxonomías rígidamente definidas y no superpuestas. Para muchos lenguajes OO, especialmente en los últimos años de OO, la herencia única era fuertemente deseada o requerida. La herencia múltiple se vio como un posible paso en la fase de análisis para modelar un dominio, pero algo que debería eliminarse en las fases de diseño e implementación en nombre de mantener la encapsulación y la modularidad . [7]

Aunque los primeros lenguajes de marcos como KRL no incluían el paso de mensajes , impulsados ​​por las demandas de los desarrolladores, la mayoría de los lenguajes de marcos posteriores (por ejemplo, Loom, KEE) incluían la capacidad de definir mensajes en marcos. [8]

En el lado orientado a objetos, también han surgido estándares que proporcionan esencialmente la funcionalidad equivalente que proporcionaban los lenguajes de marco, aunque en un formato diferente y todos estandarizados en bibliotecas de objetos. Por ejemplo, el Grupo de Gestión de Objetos ha estandarizado especificaciones para capacidades tales como asociar datos de prueba y restricciones con objetos (análogas a los usos comunes de facetas en Frames y restricciones en lenguajes de Frame como Loom) y para integrar motores de reglas. [9] [10]

Historia

Los primeros trabajos sobre Frames se inspiraron en investigaciones psicológicas que se remontan a la década de 1930 y que indicaban que las personas utilizan conocimientos estereotipados almacenados para interpretar y actuar en nuevas situaciones cognitivas. [11] El término Marco fue utilizado por primera vez por Marvin Minsky como paradigma para comprender el razonamiento visual y el procesamiento del lenguaje natural. [12] En estos y muchos otros tipos de problemas, el espacio potencial de solución incluso para el problema más pequeño es enorme. Por ejemplo, extraer los fonemas de una secuencia de audio sin procesar o detectar los bordes de un objeto. Cosas que parecen triviales para los humanos son en realidad bastante complejas. De hecho, probablemente no se entendió completamente cuán difíciles eran en realidad hasta que los investigadores de IA comenzaron a investigar la complejidad de lograr que las computadoras los resolvieran.

La noción inicial de Frames o Scripts, como también se les llamaba, es que establecerían el contexto de un problema y, al hacerlo, reducirían automáticamente de manera significativa el posible espacio de búsqueda. La idea también fue adoptada por Schank y Abelson, quienes la utilizaron para ilustrar cómo un sistema de inteligencia artificial podría procesar interacciones humanas comunes, como pedir una comida en un restaurante. [13] Estas interacciones se estandarizaron como Marcos con ranuras que almacenaban información relevante sobre cada Marco. Las ranuras son análogas a las propiedades de los objetos en el modelado orientado a objetos y a las relaciones en los modelos entidad-relación. Las ranuras a menudo tenían valores predeterminados, pero también requerían un mayor refinamiento como parte de la ejecución de cada instancia del escenario. Es decir, la ejecución de una tarea como hacer un pedido en un restaurante se controlaba comenzando con una instancia básica de Frame y luego instanciando y refinando varios valores según fuera apropiado. Esencialmente, el marco abstracto representaba una clase de objeto y las instancias del marco eran una instancia de objeto. En este trabajo inicial, el énfasis estaba principalmente en las descripciones de datos estáticos del Marco. Se desarrollaron varios mecanismos para definir el rango de una ranura, los valores predeterminados, etc. Sin embargo, incluso en estos primeros sistemas existían capacidades de procedimiento. Una técnica común era utilizar "disparadores" (similar al concepto de disparadores de la base de datos ) adjuntos a las ranuras. Un disparador es simplemente un código de procedimiento que se adjunta a una ranura. El disparador podría activarse antes y/o después de que se accediera o modificara un valor de ranura.

Al igual que con las clases de objetos, los marcos se organizaron en jerarquías de subsunción . Por ejemplo, un marco básico podría ser realizar pedidos en un restaurante. Un ejemplo de eso sería que Joe va a Dairy Queen. Una especialización (esencialmente una subclase ) del marco de restaurante sería un marco para realizar pedidos en un restaurante elegante. El marco de restaurante elegante heredaría todos los valores predeterminados del marco de restaurante pero también agregaría más espacios o cambiaría uno o más de los valores predeterminados (por ejemplo, rango de precios esperado) para el marco especializado. [14] [15]

Idiomas

Gran parte de las primeras investigaciones sobre el lenguaje Frame (por ejemplo, Schank y Abelson) habían sido impulsadas por hallazgos de la psicología experimental e intentos de diseñar herramientas de representación del conocimiento que correspondieran a los patrones que se pensaba que los humanos usaban para funcionar en las tareas diarias. Estos investigadores estaban menos interesados ​​en la formalidad matemática porque creían que tales formalismos no eran necesariamente buenos modelos de la forma en que el ser humano promedio conceptualiza el mundo. La forma en que los humanos usan el lenguaje, por ejemplo, a menudo está lejos de ser verdaderamente lógica.

De manera similar, en lingüística, Charles J. Fillmore a mediados de la década de 1970 comenzó a trabajar en su teoría de la semántica de marcos , que luego conduciría a recursos computacionales como FrameNet . [16] La semántica de marcos fue motivada por reflexiones sobre el lenguaje humano y la cognición humana.

Por otro lado , investigadores como Ron Brachman querían brindar a los investigadores de IA el formalismo matemático y el poder computacional asociados con la lógica. Su objetivo era mapear las clases, espacios, restricciones y reglas de Frame en un lenguaje Frame para establecer la teoría y la lógica. Uno de los beneficios de este enfoque es que la validación e incluso la creación de los modelos podrían automatizarse utilizando demostradores de teoremas y otras capacidades de razonamiento automatizado. El inconveniente fue que podría resultar más difícil especificar inicialmente el modelo en un lenguaje con una semántica formal.

Esta evolución también ilustra una división clásica en la investigación de la IA conocida como " limpios versus desaliñados ". Los "pulcros" eran investigadores que valoraban más la precisión matemática y el formalismo que podían lograrse mediante la lógica de primer orden y la teoría de conjuntos . Los "desaliñados" estaban más interesados ​​en modelar el conocimiento en representaciones que fueran intuitivas y psicológicamente significativas para los humanos. [17]

El más notable de los enfoques más formales fue el lenguaje KL-ONE . [18] KL-ONE luego generó varios lenguajes Frame posteriores. La semántica formal de lenguajes como KL-ONE les dio a estos lenguajes marco un nuevo tipo de capacidad de razonamiento automatizado conocido como clasificador . El clasificador es un motor que analiza las diversas declaraciones en el lenguaje marco: la definición de conjuntos, subconjuntos, relaciones, etc. El clasificador puede entonces deducir automáticamente varias relaciones adicionales y puede detectar cuando algunas partes de un modelo son inconsistentes entre sí. De esta manera, muchas de las tareas que normalmente se ejecutarían mediante encadenamiento hacia adelante o hacia atrás en un motor de inferencia pueden ser realizadas por el clasificador. [19]

Esta tecnología es especialmente valiosa al tratar con Internet. Es un resultado interesante que el formalismo de lenguajes como KL-ONE puede ser más útil al tratar con datos altamente informales y no estructurados que se encuentran en Internet. En Internet simplemente no es factible exigir que todos los sistemas se estandaricen en un modelo de datos. Es inevitable que la terminología se utilice en múltiples formas inconsistentes. La capacidad de clasificación automática del motor clasificador proporciona a los desarrolladores de IA una potente caja de herramientas para ayudar a poner orden y coherencia en una recopilación de datos muy inconsistente (es decir, Internet). La visión de una Internet mejorada, donde las páginas estén ordenadas no sólo por palabras clave de texto sino también por clasificación de conceptos, se conoce como Web Semántica . La tecnología de clasificación desarrollada originalmente para los lenguajes Frame es un habilitador clave de la Web Semántica. [20] [21] La división entre "limpios y desaliñados" también surgió en la investigación de la Web Semántica, culminando con la creación de la comunidad Linking Open Data ; su enfoque estaba en exponer datos en la Web en lugar de modelarlos.

Ver también

Referencias

  1. ^ "FOAF". websemántica.org . Archivado desde el original el 10 de febrero de 2013 . Consultado el 7 de junio de 2014 .
  2. ^ Bobrow, director general; Terry Winogrado (1977). "Una descripción general de KRL: un lenguaje de representación del conocimiento". Ciencia cognitiva . 1 : 3–46. doi : 10.1207/s15516709cog0101_2 .
  3. ^ Brachman, Ron (1978). "Un paradigma estructural para representar el conocimiento". Informe técnico de Bolt, Beranek y Neumann (3605).}
  4. ^ MacGregor, Robert (junio de 1991). "Uso de un clasificador de descripciones para mejorar la representación del conocimiento". Experto IEEE . 6 (3): 41–46. doi : 10.1109/64.87683. S2CID  29575443.
  5. ^ Mettrey, William (1987). "Una evaluación de herramientas para construir grandes sistemas basados ​​en el conocimiento". Revista AI . 8 (4). Archivado desde el original el 10 de noviembre de 2013 . Consultado el 9 de diciembre de 2013 .
  6. ^ Horridge, Mateo. "Tutorial de Protégé OWL Una guía paso a paso para modelar en OWL utilizando las populares herramientas de Protégé OWL". Universidad de Mánchester . Universidad de Manchester. Archivado desde el original el 13 de diciembre de 2013 . Consultado el 9 de diciembre de 2013 .
  7. ^ "El lenguaje de modelado unificado". estrategiasesenciales.com . Estrategias esenciales Inc. 1999 . Consultado el 10 de diciembre de 2013 . Según la experiencia de su autor, casi todos los ejemplos que parecen requerir herencia múltiple o jerarquías de tipos múltiples se pueden resolver atacando el modelo desde una dirección diferente.
  8. ^ Mettrey, William (1987). "Una evaluación de herramientas para construir grandes sistemas basados ​​en el conocimiento". Revista AI . 8 (4). Archivado desde el original el 10 de noviembre de 2013 . Consultado el 9 de diciembre de 2013 .
  9. ^ Macgregor, Robert (13 de agosto de 1999). "Retrospectiva sobre el telar". isi.edu . Instituto de Ciencias de la Información. Archivado desde el original el 25 de octubre de 2013 . Consultado el 10 de diciembre de 2013 .
  10. ^ "Dios mío, especificaciones formales". Dios mío.org . Grupo de administración de objetos . Consultado el 10 de diciembre de 2013 .
  11. ^ Bartlett, FC (1932). Recordando: un estudio en psicología experimental y social . Cambridge, Inglaterra: Cambridge University Press. doi :10.1086/399084. S2CID  7992164.
  12. ^ Minsky, Marvin (1975). "Un marco para representar el conocimiento" (PDF) . En Pat Winston (ed.). La psicología de la visión por computadora . Nueva York: McGraw Hill. págs. 211–277.
  13. ^ Schank, Roger; RP Abelson (1977). Guiones, planes, metas y comprensión. Hillsdale, Nueva Jersey: Lawrence Erlbaum. doi :10.4324/9780203781036. ISBN 9781134919666.
  14. ^ Feigenbaum, Eduardo; Avron Barr (1 de septiembre de 1986). El manual de inteligencia artificial, volumen III. Addison-Wesley. págs. 216-222. ISBN 978-0201118117.
  15. ^ Bobrow, director general; Terry Winogrado (1977). "Una descripción general de KRL: un lenguaje de representación del conocimiento". Ciencia cognitiva . 1 : 3–46. doi : 10.1207/s15516709cog0101_2 .
  16. ^ Lakoff, George (18 de febrero de 2014). "Charles Fillmore, descubridor de la semántica de marcos, muere en ciencia ficción a los 84 años: descubrió cómo funciona el marco". El Correo Huffington . Consultado el 7 de marzo de 2014 .
  17. ^ Crevier, Daniel (1993). IA: la tumultuosa búsqueda de la inteligencia artificial . Nueva York: Libros básicos. pag. 168.ISBN 978-0-465-02997-6.
  18. ^ Brachman, Ron (1978). "Un paradigma estructural para representar el conocimiento". Informe técnico de Bolt, Beranek y Neumann (3605).[ enlace muerto ]
  19. ^ MacGregor, Robert (junio de 1991). "Uso de un clasificador de descripciones para mejorar la representación del conocimiento". Experto IEEE . 6 (3): 41–46. doi : 10.1109/64.87683. S2CID  29575443.
  20. ^ Berners-Lee, Tim; James Hendler; Ora Lassila (17 de mayo de 2001). "La Web Semántica Una nueva forma de contenido Web que sea significativo para las computadoras desatará una revolución de nuevas posibilidades". Científico americano . 284 (5): 34–43. doi : 10.1038/scientificamerican0501-34. Archivado desde el original el 24 de abril de 2013.
  21. ^ Horridge, Mateo. "Tutorial de Protégé OWL Una guía paso a paso para modelar en OWL utilizando las populares herramientas de Protégé OWL". Universidad de Mánchester . Universidad de Manchester. Archivado desde el original el 13 de diciembre de 2013 . Consultado el 9 de diciembre de 2013 .

Bibliografía

enlaces externos