Para entender las diferencias entre una base de datos y una base de conocimiento, creemos que es muy importante aclarar los conceptos de "conocimiento", "información" y "datos". Estos tres conceptos son básicos para el desarrollo de un sistema o base de información1. Íntimamente unidos a éstos, están los de "representación" vs. "proceso".
Como Bubenko & Orci (1989:364) señalan, a pesar de la existencia de innumerables estudios, conferencias e incluso departamentos enteros dedicados al estudio de sistemas basados en el conocimiento, la distinción entre conocimiento, información y datos está lejos de ser clara. Estos conceptos, básicos para las ciencias de la información, son entendidos de formas diferentes por investigadores diferentes, dependiendo de su entorno, sus necesidades y sus problemas. En general podemos distinguir los siguientes puntos de vista:
C knows k iff (1) k is true, (2) C accepts k, and (3) k is evident for C
Algunas de estas condiciones, (verdad, aceptación y evidencia) han sido cuestionadas ampliamente, pero permiten un punto de partida válido para discutir el conocimiento artificial. La discusión gira en torno a lo siguiente: para que k pueda ser aceptada por y/o evidente para C, tiene que cumplirse el que tenga algún significado para C, lo cual implica que tenemos que definir mecanismos para interpretar su significado. Por ello, si bien los parámetros estipulados son válidos, tal vez no sean suficientes.
(...) databases represent sets of definite atomic statements (facts) and knowledge bases may, in addition, represent sets of general statements and conditional statements (rules).
(Bubenko & Orci 1989:365, cursiva en el original)
(...) a collection of data structures and interpretative procedures (instances of both) which together produce an intelligent behavior in some sense.
(ibid.:365)
Esta visión se corresponde con lo que encontramos más a menudo en las bases de conocimiento: una colección de hechos y reglas mediante los cuales el sistema es capaz de extraer conocimiento que no está almacenado de forma explícita. Por tanto, para la IA, una estructura de datos que no contenga más que "hechos" no es considerada como conocimiento, sino tan sólo como una fuente potencial de información. La IA, por tanto, pone el énfasis en el comportamiento computacional, es decir el uso de los datos por parte de los procedimientos.
Podríamos estipular que, en general, el conocimiento identifica información sobre conceptos generales, mientras que los datos conforman información sobre entidades específicas. En este sentido, los datos reflejan el estado de cosas de un determinado UoD en un momento determinado, y por tanto son altamente susceptibles de modificaciones. En cambio, el conocimiento sobre cómo interpretar y usar esos datos no cambiará tan a menudo. Además, aunque el conocimiento sea complejo, su dominio es el de las generalizaciones sobre tipos, y no el de las instancias específicas, que es el dominio de los datos.
La distinción entre bases de datos y bases de conocimiento según sus contenidos la encontramos en Wong & Mylopoulos (1997:78):
[knowledge bases] include large amounts of abstract knowledge, e.g., knowledge about the relationships between the departments where an employee and his manager work, and a small amount of (less interesting) concrete knowledge, e.g., each employees department.
mientras que las bases de datos
(...) were designed mostly for concrete knowledge..., e.g. each employees department.
(ibid.:78)
En el mismo sentido se manifiesta Gio Wiederhold:
A database is a collection of data representing facts (...) A knowledge base, as opposed to a database, contains information at a higher level of abstraction.
(Wiederhold 1984:171)
Since data reflects the current state of the world at the level of instances, it will include much detail, will be voluminous, and will appear in reports which are used at lower levels of enterprise verification. Where instances change rapidly much data must be collected over time as well, if a complete historical picture is desired. Knowledge will not change as frequently. Knowledge may be complex but will deal with generalizations and hence refer to entity types rather than to entity instances.
(Wiederhold 1986:79)
Así, la aserción "Arturo Rodríguez mide 1,73m" es un dato mientras que "la media de altura de los españoles es 1,70m" es conocimiento. En cualquier caso, ambos tipos de sistemas de información pretenden modelar una realidad. Según Abrial (1974), una base de datos es
(...) a model of an evolving physical world. The state of this model, at a given instant, represents the knowledge it has acquired from the world.
(Abrial 1974:15)
Walker et al. (1987:2) también nos apunta ideas parecidas en el apartado "What is a knowledge system":
Every program contains knowledge about some problem. (...) What makes knowledge systems different from conventional programs is that they represent the knowledge in a higher-level form. Instead of encoding knowledge in low-level statements, they store it in a knowledge base of rules and facts that stay close to the way people think about a problem.
Como Codd (1990) apunta muy acertadamente, tanto una base de datos (relacional) como una base de conocimiento consiste más que nada en aseveraciones o hechos. En las bases de datos la mayoría de estas aserciones no contienen variables (por lo que no pueden componer reglas), hay muy pocos tipos de aserciones, pero un gran número de ellas para cada tipo. Por el contrario, la mayor parte de las aserciones de una base de conocimiento contienen variables dependientes en el sentido lógico, son de muchos tipos diferentes, y existen muy pocas aserciones de cada tipo (generalmente sólo una).
Podemos resumir lo expuesto diciendo que una base de conocimiento contendrá conocimiento sobre algo, y será capaz de referir ese conocimiento al mundo real (cf. Brodie & Mylopoulos 1986b). Este conocimiento es abstracto y generalizador. Los datos son concretos y describen de forma detallada entidades del mundo real. Como es de suponer los sistemas para soportar el almacenamiento de conocimiento necesitan una notación muy avanzada y precisa, pero por lo general no son capaces de hacer frente a cantidades ingentes de información, aspecto en el que las bases de datos sobresalen. Información es lo que se obtiene cuando los datos son analizados, ya sea por un agente humano o por una aplicación externa. Por tanto, de una base de datos se extrae información, mientras que ésta se encuentra explícitamente e implícitamente almacenada en una base de conocimiento.
Una interpretación en términos cognitivos de este extremo es que una KB contiene información representada de una forma más parecida a cómo los humanos la almacenamos (Walker et al. 1987). El término "conocimiento", hace referencia específica a las reglas en las que la información ha de ser usada, así como a diversos procesos cognitivos en relación con la actualización de la información contenida en un sistema. Si un sistema contiene información representada a modo de generalizaciones sobre datos y es capaz de usar esta información de forma inteligente, actualizarla según necesidades y proveer información acerca de la información que contiene (ser "consciente" de sus limitaciones), entonces es un sistema de conocimiento. Si, por el contrario, un sistema contiene una gran cantidad de datos específicos sobre un determinado universo y provee los mecanismos necesarios para recuperar y modificar esa información, ya sea por un programa o por un usuario humano2, entonces es un sistema de base de datos.
Centrándonos en el eje representación/proceso, una DB es fundamentalmente un repositorio de información pasivo: las operaciones sobre sus datos son realizadas por aplicaciones externas que han de ser invocadas de forma explícita. Por el contrario, una KB es un sistema activo de forma inherente (Albano & Attardi 1989). Las acciones que una KB lleva a cabo van desde la invocación de procedimientos cuando se accede a un determinado slot o casilla (en el caso de un esquema de representación basado en marcos), pasando por procesos deductivos o propagación de restricciones (en el caso de esquemas de redes semánticas genéricas).3
A esto se le denomina activación de procesos, disparo o triggering. Este mecanismo puede incluso acceder y modificar los hechos y reglas contenidos en su propio repositorio de datos.
A modo de ilustración, supongamos que tenemos un sistema de información capaz de procesar el input en varios idiomas sin necesidad de indicarle de qué idioma se trata. Independientemente de qué método se utilice para averiguar el idioma (estadísticos, probablemente)4, una vez determinado éste, se desencadenarían una serie de procesos particulares para procesar ese idioma concreto, que invocarían los parsers morfológicos y sintácticos adecuados.
Otro tipo de triggering usado en muchas aplicaciones que son calificadas de "inteligentes"5 no invoca procedimientos sino que accede a datos que son transferidos a un buffer y los mantiene ahí mientras exista la posibilidad de ser solicitados por el agente externo. Por ejemplo, en un sistema de información turística, si un usuario consulta la localización de un determinado organismo oficial, es muy probable que a continuación desee profundizar en los servicios que éste ofrece. Una aplicación "inteligente" sería capaz de adelantarse a esta consulta y recuperar esta información mientras el usuario consulta la localización, ganando enormemente en velocidad de acceso. La propagación de restricciones mediante mecanismos de triggering realiza el mismo tipo de acciones sólo que llevando a cabo un proceso deductivo mucho más complejo.
NOTAS
Anterior I Siguiente I Índice capítulo 4 I Índice General