Características y objetivos
Bases de datos
Todos los conceptos referentes a las bases
de datos están hoy muy claros y definidos formalmente, al contrario que los de
las bases de conocimiento. La tecnología de gestión de bases de datos se halla
en una etapa muy madura. Las bases de datos han evolucionado durante los
pasados 30 años desde sistemas de archivos rudimentarios hasta sistemas
gestores de complejas estructuras de datos que ofrecen un gran número de
posibilidades. Los principales objetivos de un DBMS son los siguientes:
- Independencia lógica y física de los datos: se refiere a la capacidad de
modificar una definición de esquema en un nivel de la arquitectura sin que
esta modificación afecte al nivel inmediatamente superior. Para ello un
registro externo en un esquema externo no tiene por qué ser igual a su
registro correspondiente en el esquema conceptual.6
- Redundancia mínima: se trata de usar la base de
datos como repositorio común de datos para distintas aplicaciones.
- Acceso concurrente por parte de múltiples
usuarios: control de concurrencia mediante técnicas de bloqueo o cerrado
de datos accedidos.
- Distribución espacial de los datos: la independencia lógica y
física facilita la posibilidad de sistemas de bases de datos distribuidas.
Los datos pueden encontrarse en otra habitación, otro edificio e incluso
otro país. El usuario no tiene por qué preocuparse de la localización
espacial de los datos a los que accede.
- Integridad de los datos: se refiere a las medidas de
seguridad que impiden que se introduzcan datos erróneos. Esto puede
suceder tanto por motivos físicos (defectos de hardware,
actualización incompleta debido a causas externas), como de operación
(introducción de datos incoherentes).
- Consultas complejas optimizadas: la optimización de consultas
permite la rápida ejecución de las mismas.
- Seguridad de acceso y auditoría: se refiere al derecho de
acceso a los datos contenidos en la base de datos por parte de personas y
organismos. El sistema de auditoría mantiene el control de acceso a la
base de datos, con el objeto de saber qué o quién realizó una determinada
modificación y en qué momento.
- Respaldo y recuperación: se refiere a la capacidad de
un sistema de base de datos de recuperar su estado en un momento previo a
la pérdida de datos.
- Acceso a través de lenguajes de programación
estándar: se
refiere a la posibilidad ya mencionada de acceder a los datos de una base
de datos mediante lenguajes de programación ajenos al sistema de base de
datos propiamente dicho.
Una base de datos típica
conlleva la existencia de tres tipos de usuario con relación a su diseño,
desarrollo y uso:
- El administrador de bases de datos (DBA: Database
Administrator): diseña y mantiene la DB.
- El desarrollador de aplicaciones (programador):
implementa las transacciones e interfaces.
- Los usuarios finales: consultan y editan los
datos de la DB mediante un lenguaje de consulta de alto nivel.
No cabe duda de que la
parte más importante es la llevada a cabo por el DBA. A él le corresponde la
elección de un determinado modelo de datos y el diseño de la DB. La etapa de
diseño es la más importante, ya que es ahí donde se refleja la semántica7 de la información contenida en la DB
a través del denominado esquema conceptual. Nos detendremos sobre
este tema cuando estudiemos el modelado de datos.
En general, podemos
decir que el propósito de una base de datos es doble:
- responder a consultas sobre los datos que contiene,
y
- ejecutar transacciones
Una consulta (query)
se expresa como una expresión lógica sobre los objetos y relaciones definidos
en el esquema conceptual; el resultado es la identificación de un subconjunto
lógico de la base de datos. Una transacción consiste en un
número de consultas y operaciones de modificación o actualización sobre un
subesquema. Las transacciones son atómicas8 por definición: todos los pasos de
una transacción han de ser debidamente ejecutados y confirmados como requisito
previo para que la transacción pueda ser llevada a cabo en su conjunto, en caso
contrario ha de ser invalidada.
Para llevar a cabo estas
tareas, el DBA tiene a su disposición la principal herramienta de una base de
datos, el sistema gestor de bases de datos (DBMS). A través de éste se realizan
todas las operaciones con los datos (consultas y transacciones), de forma que
al DBA no le atañe la manera en que los datos se encuentran almacenados físicamente,
pudiéndose concentrar en los aspectos conceptuales en cuanto a diseño,
desarrollo y mantenimiento. Un DBMS típico integra los siguientes componentes:
- Un lenguaje de definición de datos (DDL: Data
Definition Language).
- Un lenguaje de manipulación de datos (DML: Data
Manipulation Language)
- Un lenguaje de consulta (QL: Query Language).
- De forma accesoria, pero ya casi obligada, los
DBMS modernos añaden un interfaz de usuario gráfico (GUI: Graphical User
Interface).
- consultas mediante ejemplo (posiblemente
gráficas) ((G)QBE: (Graphical) Query By Example)
El QL por excelencia es
el llamado Structured Query Language (SQL), que, aun con
muchas modificaciones y adiciones, es un estándar de las DBMS relacionales
(RDBMS: Relational Database Management System). Hoy en día, sin
embargo, con la llegada de las DBMS orientadas a objetos (ODBMS: Object
Database Management System), otros estándar de consulta se han hecho
necesarios; así ha nacido otro estándar, OQL (Object Query Language),
como resultado de una de las primeras implementaciones de ODBMSs (O2,
de O2 Technologies). Además, una base de datos puede ser
consultada y modificada mediante técnicas "externas", es decir,
mediante lenguajes de programación de propósito general, típicamente de tercera
generación (3GL). Hoy en día, estas técnicas se hallan muy avanzadas,
existiendo estándares que simplifican el acceso a diferentes DBMSs de forma
transparente, tales como ODBC (Open Database Connectivity), que
garantizan el acceso a los datos de bases, posiblemente remotas, de distintas
compañías.
Por lo que a la representación
de información léxica se refiere, los sistemas de bases de datos tradicionales
presentan serios problemas reconocidos por muchos autores (cf. Ide et al. 1995). En general, las bases de datos no fueron
pensadas para almacenar información compleja, sino grandes cantidades de
información relativamente simple. Como ya hemos mencionado, los datos
contenidos en una DB han de ser por definición atómicos. Esto es necesario para
un correcto tratamiento de los mismos, pero por otra parte entorpece la visión
de conjunto, esto es, dificulta el tratamiento "inteligente" de
entidades complejas.
Este gran inconveniente
se hizo evidente una vez superada la fase de dificultades puramente técnicas.
Cuando las bases de datos comenzaron a ser utilizadas para otras tareas que no
fuesen el guardar los datos correspondientes a una compañía de seguros o una
entidad bancaria. Entonces se planteó la necesidad de prestar mayor atención al
diseño lógico de la DB, en vez de al nivel físico9. Esta etapa se halla fuertemente
influenciada por la investigación en IA, como veremos a continuación.
Bases de conocimiento
La representación del conocimiento,
entendido en los términos que presentamos anteriormente, es un problema central
en el más vasto campo de la Inteligencia Artificial, en cuanto que esta
disciplina tiene como principal objetivo el desarrollo de sistemas "inteligentes"
que sean capaces de reproducir lo más fehacientemente posible los mecanismos
intelectuales comunes en los humanos, de forma destacada, la comprensión del
lenguaje natural, el aprendizaje (acumulación de experiencia), el razonamiento
lógico, la resolución de problemas y el reconocimiento de patrones (p. ej. en
visión robótica). Una definición representativa de lo que comúnmente se
entiende por "Inteligencia Artificial" es la de Barr y Feigenbaum (1981:4):
Artificial Intelligence (AI) is the part
of computer science concerned with designing intelligent computer systems, that
is, systems that exhibit the characteristics we associate with intelligence in
human behavior - understanding language, learning, reasoning, solving problems,
and so on.
Las técnicas comunes en
IA consisten por tanto en el estudio minucioso de la actividad o comportamiento
que se desea emular, en primer lugar y después, y sobre todo, su implementación
en algún tipo de autómata.
El paradigma actual de
"inteligencia", en contraste con el anterior, basado principalmente
en técnicas heurísticas de búsqueda (Goldstein & Papert 1977), acentúa la necesidad de conocimiento
experto para la realización de tareas inteligentes (Mylopoulos & Levesque 1984). La idea es que lo central para nuestra
actividad mental normal es un gran repositorio de conocimiento experto sobre
muy diferentes materias específicas y sobre el mundo en general. Por tanto, es
evidente que si nuestro objetivo es replicar esquemas mentales humanos en un
autómata, éste deberá poseer un repositorio parecido de información del que
pueda hacer uso, mediante diversos dispositivos, para el manejo inteligente de
esa información. En suma, la posesión de conocimiento es absolutamente
indispensable para la realización de una tarea "inteligente".
Sin embargo, como
venimos diciendo, esto no fue siempre así. De hecho, podemos distinguir cuatro
fases o "categorías históricas" (Barr & Feigenbaum 1981) en el estudio del lenguaje natural por
parte de los investigadores de IA:
- Los primeros programas que se realizaron poseían
un conocimiento del lenguaje prácticamente nulo, y estaban limitados a un
dominio muy concreto. Simplemente analizaban el input en busca de palabras
clave o de patrones relacionados con alguno de los temas que
"conocían" . El output era formado a través de reglas de
dominio específico llamadas heuristics, de forma que hacían
creer que entendían lo que se les estaba diciendo. El mejor representante
de estos programas, es sin duda el Eliza de Weizenbaum
(Weizenbaum 1976), que intentaba simular un consultorio
psicológico. El usuario introduce su problema o preocupación y Eliza
responde o intenta extraer más información (que guarda para usarla cuando
la conversación llega a un punto muerto); también hace uso de un buen número
de frases comodín y regala al "paciente" con sus consejos. Otros
programas de estas características son BASEBALL (Green et al. 1963) o STUDENT (Bobrow 1968).
- Otros programas parecidos fueron los basados
en texto. Éstos, de los cuales destacamos PROTO-SYNTHEX-I (Simmons et
al. 1966) almacenaban el texto mismo en su base
de datos, por lo que no estaban ceñidos a un dominio particular. Sin
embargo, al igual que los anteriores, no poseían capacidades deductivas de
ningún tipo, ni podían analizar el contenido semántico del input; se
encontraban restringidos a responder con el material textual que
previamente se les había introducido.
- En tercer lugar encontramos los sistemas
de lógica limitada. Estos sistemas ofrecían (limitadas) capacidades
deductivas, ya que eran capaces de producir información no almacenada
explícitamente en la base de datos. Además, llevaban a cabo una cierta
interpretación semántica, al traducir frases de insumo en lenguaje natural
a la notación lógica interna de la base de conocimiento. Usando el cálculo
de predicados, eran capaces de hacer inferencias del tipo:
– ‘¿Es un avestruz un
ave?’
avestruz(x),
(x)[avestruz(x) ave(x)],
ave(x);
– ‘Sí.’
- El último tipo son los sistemas de que venimos
hablando, los basados en el conocimiento, cuyo desarrollo está
íntimamente ligado a la investigación de IA sobre representación del
conocimiento. Estos sistemas intentan almacenar una gran cantidad de
información para usarla de modos diferentes con el objeto de
"entender" el lenguaje natural, generarlo, deducir, etc. Se
basan en la idea básica, ya mencionada de que para la resolución de un
problema complejo dentro de un determinado ámbito, es preciso un
conocimiento experto sobre ese ámbito.
Como esta evolución
implica, los sistemas de lenguaje natural de IA hoy día están casi
exclusivamente basados en el conocimiento. Éste, por otra parte, necesita ser
estructurado y debidamente modelado para poder almacenarlo bajo una notación
apropiada como repositorio de información. De hecho, podemos afirmar que la
representación de conocimiento es el hilo conductor de los diferentes campos
que abarca la IA (McCalla & Cercone 1983).
A este repositorio de
información estructurada que se usa para resolver tareas que requieren
conocimiento experto se le conoce como base de conocimiento. Este
concepto, necesita de una definición más formal . Por ejemplo, dicho así -
"repositorio de información estructurada" - cabría pensar que una
enciclopedia impresa, estructurada en artículos, es una base de conocimiento;
sin embargo una KB tiene que poseer otras facultades.
Sin embargo, en lo que
respecta a las bases de conocimiento, no existen estándares ni definiciones. En
general se supone que un KBMS, a diferencia de un DBMS, debe ofrecer estas dos
posibilidades fundamentales (Mylopoulos 1986):
- Mecanismos de razonamiento: el KBMS debe ser
capaz de extraer conclusiones lógicas a partir de la información y reglas
que contiene.
- Mecanismos de explicación que permitan al
usuario del KBMS averiguar el estado del mecanismo de razonamiento,
obtener consejo, y justificación de una determinada conclusión obtenida
por el mecanismo de razonamiento
A partir de estos
requerimientos deberíamos establecer alguna tipología de KBMSs atendiendo no a
su arquitectura (no existen arquitecturas genéricas estándar), sino a su
funcionalidad. Lo que caracteriza a los sistemas de representación de
conocimiento es que se han desarrollado en diversos ámbitos con propósitos
específicos. Mientras que un mismo sistema de bases de datos se puede utilizar
para múltiple propósitos, los KBMS no son por lo general de propósito general.
(Jarke et al. 1989) presentan la siguiente tipología de
aplicaciones de IA en las que las bases de conocimiento son utilizadas:
- Sistemas expertos
- Sistemas de procesamiento de lenguaje natural
- Sistemas de visión robótica
- Entornos de desarrollo
Son los segundos los que
nos interesan, aunque en realidad la mayoría de los sistemas de IA toman la
forma de sistemas expertos. Las relaciones entre el procesamiento del lenguaje
natural y los KBMS han estado siempre motivadas por los intereses de los investigadores
en IA, no por los de lingüistas o lexicógrafos. La aplicación de sistemas
basados en el conocimiento a la TA es muy novedosa, y, según pensamos, los
clásicos sistemas de KBMS no se adaptan a las necesidades de este tipo de
aplicaciones, al no conceder la importancia necesaria a la información
detallada en general ni a los aspectos procedimentales. El interés de los
investigadores de IA por el lenguaje natural está centrado casi exclusivamente
en la comunicación hombre-máquina, por tanto su objetivo es la construcción de
interfaces en lenguaje natural que faciliten esta interacción. Éstos son los
denominados interfaces de lenguaje natural (NLI: Natural Language Interfaces).
De hecho, el interés por
los sistemas de NLP basados en el conocimiento surgió a raíz de la necesidad de
construir interfaces en lenguaje natural para sistemas expertos. Estos sistemas
son alimentados con toda la información disponible sobre un determinado tema
muy específico, por ejemplo diagnósticos médicos, sistemas de ingeniería.
Después, mediante un interfaz apropiado que acepta un conjunto de estructuras
sintácticas y elementos léxicos específico, son capaces de responder
adecuadamente a consultas complejas relacionando la información que poseen.
Las tareas para las que
estos sistemas se desarrollan son, casi por definición, complejas (Walker et
al. 1987). Por tanto, un sistema experto es un
sistema computacional capaz de representar y razonar sobre un dominio
determinado que precisa de gran cantidad de conocimiento, tal como la
aeronáutica o la medicina. Se puede distinguir de otros tipos de aplicaciones
de IA en que (Jackson 1986):
- trabaja con temas complejos que normalmente
requieren una considerable cantidad de experiencia humana;
- debe ser una herramienta práctica y útil; para
ello debe ofrecer un alto rendimiento en cuanto a velocidad de ejecución y
fiabilidad;
- debe ser capaz de explicar y justificar sus
soluciones y consejos para convencer al usuario de lo correcto de su
razonamiento.
Los sistemas expertos
son el tipo de aplicación de IA que mejores resultados ha conseguido. Estos
sistemas son usados hoy en día en un amplio abanico de dominios y han probado
ser altamente fiables. Por ello sería deseable la disponibilidad de interfaces
en lenguaje natural que facilitasen la comunicación con el sistema por parte de
usuarios no expertos en computación (médicos, biólogos, ingenieros). Existen
tres modos de ver la relación entre un NLI y el KBMS. La primera es la
construcción de un NLI para manejar un KBMS. La segunda construir un KBMS para
implementar un NLI. La tercera construir un NLI (soportado por el KBMS) para
sistemas basados en el conocimiento. Estas relaciones quedan expuestas en la Figura
4.1.
Relaciones NLI / KBMS
Para que un programa
pueda ser calificado de NLI debe cumplir las dos condiciones siguientes:
- Un subconjunto del input o el output del sistema
se realiza en lenguaje natural
- El procesamiento del input (generación del
output) se basa en conocimiento de tipo sintáctico, semántico y/o
pragmático.
Los tres modos
anteriormente citados de usar el lenguaje natural en IA reflejan a nuestro
parecer tres estadios de investigación, superando una primera fase en que se
pretendía un análisis extremadamente simplista del lenguaje. Tras observar la
enorme complejidad que éste conlleva, se hizo obvia la necesidad de tratar el
lenguaje humano como un objeto de estudio en sí mismo, para poder siquiera
pensar en usarlo como medio de interacción hombre-máquina. En esta etapa se
empezaron a plantear cuestiones que los lingüistas han estado estudiando desde
mucho tiempo atrás. Un KBMS para NLI habrá de integrar los siguientes tipos de
conocimiento (Jarke et al.1989):
- Conocimiento lingüístico.
- Conocimiento conceptual.
- Conocimiento inferencial.
- Conocimiento del usuario.
La Figura resume
las fuentes de conocimiento lingüístico necesario para el desarrollo de NLIs
según la IA. Este cuadro revela cómo los investigadores de IA contemplan el
estudio del lenguaje natural.
Conocimiento requerido por un NLI
Finalmente, en IA se
señalan algunas características necesarias en una KB para el procesamiento de
lenguaje natural:
- Representación de conocimiento: el sistema de representación10 debería ser un esquema híbrido
que contuviese subesquemas basados en marcos (frames), hechos de
base de datos y reglas de deducción. Las distintas unidades de
conocimiento codificadas en uno de estos esquemas tendrán que ser
agregadas a los esquemas híbridos de una fuente de conocimiento
(lingüístico, conceptual, etc.), que a su vez tendrá que ser agregada a la
base de conocimiento global.
- Organización del conocimiento: el KBMS deberá organizar al
menos dos bases de conocimiento en el caso de un sistema basado en NLI: la
KB del lenguaje natural (NL KB) y la KB a la que el NLI proporciona acceso
mediante lenguaje natural. A su vez, la NLKB habrá de estar organizada distinguiendo:
conocimiento de entorno, conocimiento específico de trabajo y conocimiento
específico de diálogo (ver Figura 4.1)
- Entorno de integración: el KBMS deberá proporcionar
un entorno que permita la entrada de datos para las distintas KBs. Este
aspecto de adquisición de conocimiento se puede realizar mediante el NLI
una vez se haya construido parcialmente. Lo ideal para crear la base de
conocimiento de lenguaje natural es el trabajo conjunto de expertos en los
dos campos: la lingüística y la IA.
Como observamos, las
diferencias de descripción detallada de bases de datos y bases de conocimiento
son abismales. Las bases de datos son sistemas muy bien establecidos en donde
todo lo que puede o no puede llevar a cabo el sistema y cómo llevarlo a cabo
está perfectamente establecido. El trabajo en bases de conocimiento se
encuentra aún en una fase germinal, y por lo general se trata de sistemas
específicos para necesidades específicas. La literatura en torno a las bases de
conocimiento es aún altamente programática, intentando sentar las bases de lo
que se supone que estos sistemas serán capaces de hacer. No es extraño
encontrar aserciones contradictorias en distintos autores con distintos fines.
Incluso así, en el siguiente apartado intentaremos mostrar cuáles son las
definiciones formales y arquitecturas que se han propuesto hasta ahora. Ni que
decir tiene que el entorno de bases de datos se encuentra totalmente
establecido. Comenzamos pues por exponer la arquitectura general de bases de
datos.
POR:
SERGIO
PACOHUANCA TICONA
avestruz(x),
(x)[avestruz(x) ave(x)],
ave(x);
– ‘Sí.’
Relaciones NLI / KBMS
Conocimiento requerido por un NLI