lunes, 29 de junio de 2015

carateristicas de base de datos

Características y objetivos

Bases de datos
http://elies.rediris.es/elies9/fig4-2.gifTodos 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:
  1. 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
  2. Redundancia mínima: se trata de usar la base de datos como repositorio común de datos para distintas aplicaciones.
  3. Acceso concurrente por parte de múltiples usuarios: control de concurrencia mediante técnicas de bloqueo o cerrado de datos accedidos.
  4. 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.
  5. 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).
  6. Consultas complejas optimizadas: la optimización de consultas permite la rápida ejecución de las mismas.
  7. 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.
  8. 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.
  9. 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:
  1. El administrador de bases de datos (DBA: Database Administrator): diseña y mantiene la DB.
  2. El desarrollador de aplicaciones (programador): implementa las transacciones e interfaces.
  3. 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:
  1. responder a consultas sobre los datos que contiene, y
  2. 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:
  1. 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).
  2. 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.
  3. 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),
forall.gif (846 bytes)(x)[avestruz(x)arrow.gif (839 bytes) ave(x)],
ave(x);
– ‘Sí.’
  1. 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.
Figura 4.1
Relaciones NLI / KBMS
Para que un programa pueda ser calificado de NLI debe cumplir las dos condiciones siguientes:
  1. Un subconjunto del input o el output del sistema se realiza en lenguaje natural
  2. 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

No hay comentarios:

Publicar un comentario