Un sistema basado en conocimiento ( KBS ) es un programa informático que razona y utiliza una base de conocimiento para resolver problemas complejos . Los sistemas basados en el conocimiento fueron el foco de los primeros investigadores de inteligencia artificial en la década de 1980. El término puede referirse a una amplia gama de sistemas. Sin embargo, todos los sistemas basados en el conocimiento tienen dos componentes definitorios: un intento de representar el conocimiento explícitamente, llamado base de conocimiento , y un sistema de razonamiento que les permite derivar nuevo conocimiento, conocido como motor de inferencia .
La base de conocimiento contiene hechos y reglas [1] específicos de un dominio sobre un dominio de problema (en lugar de conocimiento implícitamente incorporado en el código de procedimiento, como en un programa de computadora convencional). Además, el conocimiento puede estructurarse mediante una ontología de subsunción , marcos , grafos conceptuales o aseveraciones lógicas. [2]
El motor de inferencia utiliza métodos de razonamiento de propósito general para inferir nuevos conocimientos y resolver problemas en el dominio del problema. Lo más común es que emplee encadenamiento hacia adelante o hacia atrás . Otros enfoques incluyen el uso de demostración automatizada de teoremas , programación lógica , sistemas de pizarra y sistemas de reescritura de términos como las reglas de manejo de restricciones (CHR). Estos enfoques más formales se tratan en detalle en el artículo de Wikipedia sobre representación y razonamiento del conocimiento .
El término "sistema basado en el conocimiento" se utilizaba a menudo indistintamente con " sistema experto ", posiblemente porque casi todos los primeros sistemas basados en el conocimiento fueron diseñados para tareas expertas. Sin embargo, estos términos nos hablan de diferentes aspectos de un sistema:
Hoy en día, prácticamente todos los sistemas expertos están basados en el conocimiento, mientras que la arquitectura de sistemas basada en el conocimiento se utiliza en una amplia gama de tipos de sistemas diseñados para una variedad de tareas.
Los primeros sistemas basados en el conocimiento fueron principalmente sistemas expertos basados en reglas. Estos representaban hechos sobre el mundo como simples afirmaciones en una base de datos plana y usaban reglas específicas de dominio para razonar sobre estas afirmaciones y luego agregarlas. Uno de los más famosos de estos primeros sistemas fue Mycin , un programa de diagnóstico médico.
Representar el conocimiento explícitamente mediante reglas tenía varias ventajas:
¿ Más tarde , cuando? ] arquitecturas para el razonamiento basado en el conocimiento, como la arquitectura de pizarra BB1 (un sistema de pizarra ), [4] permitieron que el proceso de razonamiento en sí se viera afectado por nuevas inferencias, proporcionando razonamiento de metanivel. BB1 permitió monitorear el proceso de resolución de problemas. Se podrían combinar selectivamente diferentes tipos de resolución de problemas (por ejemplo, de arriba hacia abajo, de abajo hacia arriba y oportunista) en función del estado actual de la resolución de problemas. Esencialmente, el solucionador de problemas se estaba utilizando tanto para resolver un problema a nivel de dominio como para su propio problema de control, que podría depender del primero.
Otros ejemplos de arquitecturas de sistemas basados en el conocimiento que soportan el razonamiento a nivel meta son MRS [5] y SOAR .
En las décadas de 1980 y 1990, además de los sistemas expertos, otras aplicaciones de los sistemas basados en el conocimiento incluían el control de procesos en tiempo real, [6] sistemas de tutoría inteligentes, [7] y solucionadores de problemas para dominios específicos como el análisis de la estructura de proteínas, [ 8] diseño del sitio de construcción, [9] y diagnóstico de fallas del sistema informático. [10]
A medida que los sistemas basados en el conocimiento se volvieron más complejos, las técnicas utilizadas para representar la base de conocimiento se volvieron más sofisticadas e incluyeron lógica, sistemas de reescritura de términos, gráficos conceptuales y marcos .
Los marcos, por ejemplo, son una forma de representar el conocimiento mundial utilizando técnicas que pueden considerarse análogas a la programación orientada a objetos , específicamente clases y subclases, jerarquías y relaciones entre clases, y comportamiento [ se necesita aclaración ] de los objetos. Con la base de conocimientos más estructurada, el razonamiento ahora podría ocurrir no sólo mediante reglas independientes e inferencias lógicas, sino también basándose en interacciones dentro de la propia base de conocimientos. Por ejemplo, los procedimientos almacenados como demonios en [ se necesita aclaración ] objetos podrían activarse y replicar el comportamiento de encadenamiento de las reglas. [11]
Otro avance en la década de 1990 fue el desarrollo de sistemas de razonamiento automatizados con fines especiales llamados clasificadores . En lugar de declarar estáticamente las relaciones de subsunción en una base de conocimiento, un clasificador permite al desarrollador simplemente declarar hechos sobre el mundo y dejar que el clasificador deduzca las relaciones. De esta manera, un clasificador también puede desempeñar el papel de motor de inferencia. [12]
El más reciente [ a partir de? El avance de los sistemas basados en el conocimiento fue adoptar las tecnologías, especialmente un tipo de lógica llamada lógica de descripción , para el desarrollo de sistemas que utilizan Internet. Internet a menudo tiene que lidiar con datos complejos y no estructurados en los que no se puede confiar para que se ajusten a un modelo de datos específico. La tecnología de los sistemas basados en el conocimiento, y especialmente la capacidad de clasificar objetos según demanda, es ideal para tales sistemas. El modelo para este tipo de sistemas de Internet basados en el conocimiento se conoce como Web Semántica . [13]