desarrollo de un modelo de implantaciÓn de …cesarcabrera.info/proyectogrado/proyecto...

198
DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTÉRPRETES SEMÁNTICOS DEL LENGUAJE NATURAL FREDY ANDRÉS RAMÍREZ RODAS CÉSAR AUGUSTO CABRERA ESPINOSA 1

Upload: hoangthu

Post on 07-May-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTÉRPRETES

SEMÁNTICOS DEL LENGUAJE NATURAL

FREDY ANDRÉS RAMÍREZ RODASCÉSAR AUGUSTO CABRERA ESPINOSA

UNIVERSIDAD TECNOLÓGICA DE PEREIRAFACULTAD DE INGENIERÍAS: ELÉCTRICA, ELECTRÓNICA, FÍSICA Y

CIENCIAS DE LA COMPUTACIÓNPROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

PEREIRA, RISARALDA2006

1

Page 2: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTÉRPRETES

SEMÁNTICOS DEL LENGUAJE NATURAL

FREDY ANDRÉS RAMÍREZ RODASCÉSAR AUGUSTO CABRERA ESPINOSA

UNIVERSIDAD TECNOLÓGICA DE PEREIRAFACULTAD DE INGENIERÍAS: ELÉCTRICA, ELECTRÓNICA, FÍSICA Y

CIENCIAS DE LA COMPUTACIÓNPROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

PEREIRA, RISARALDA2006

2

Page 3: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTÉRPRETES

SEMÁNTICOS DEL LENGUAJE NATURAL

FREDY ANDRÉS RAMÍREZ RODASCÉSAR AUGUSTO CABRERA ESPINOSA

Trabajo de grado para optar al título deIngeniero de Sistemas y Computación

Director GILBERTO VARGAS CANO

Ingeniero Electricista

UNIVERSIDAD TECNOLÓGICA DE PEREIRAFACULTAD DE INGENIERÍAS: ELÉCTRICA, ELECTRÓNICA, FÍSICA Y

CIENCIAS DE LA COMPUTACIÓNPROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

PEREIRA, RISARALDA2006

3

Page 4: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Nota de aceptación:

________________________________

________________________________

________________________________

________________________________Presidente del jurado

________________________________Jurado

________________________________Jurado

Pereira, Junio de 2006

4

Page 5: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

v

A nuestras madres y a

las personas que usen

este documento para

construir el futuro.

Page 6: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

AGRADECIMIENTOS

Expresamos sinceros agradecimientos los ingenieros Gilberto Vargas y Omar Trejos por su confianza y a todas las personas que acompañaron este proceso así no fuera académicamente: su paciencia, colaboración y compañía construyeron en nosotros la formación que no quedó finalmente plasmada en este documento sino en nuestros corazones y seguramente en muchas decisiones que tomaremos en el futuro.

A todos los profesores que bien o mal plasmaron en nosotros imágenes y formaron nuestro carácter y capacidad de crítica y admiración y por supuesto a la Universidad por brindarnos la oportunidad de pasar por esta experiencia sin mayores sesgos de índole social y económica, esperamos que la población que necesita estas oportunidades siga teniendo acceso tanto o mejor que como nosotros lo tuvimos y su calidad siga siendo mejor cada día.

vi

Page 7: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

CONTENIDO

Pág.

CONTENIDO vii

LISTA DE CUADROS ix

LISTA DE FIGURAS xi

GLOSARIO xiii

1. DEFINICIÓN DEL PROBLEMA 25

1.1 INTELIGENCIA ARTIFICIAL 25

1.2 WEB SEMÁNTICA 26

1.3 LENGUAJE NATURAL 28

1.4 EL PROBLEMA 29

2. JUSTIFICACIÓN 31

3. OBJETIVOS 33

3.1 OBJETIVO GENERAL 33

3.2 OBJETIVOS ESPECÍFICOS 33

3.3 DELIMITACIÓN 34

4. MARCO REFERENCIAL 35

4.1 MARCO TEÓRICO 35

4.1.1Agentes inteligentes. 35

4.1.2 Propiedades de un agente inteligente 37

4.1.3 Agentes BDI 40

4.1.4Plataformas y metodologías de desarrollo 42

4.1.5Representación de los datos en Internet y Web semántica 54

4.1.6Reconocimiento de lenguaje natural 68

vii

Page 8: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.2 MARCO DE ANTECEDENTES 74

4.2.1Univirtual 75

4.2.2Plataformas de agentes inteligentes 78

4.2.3Web semántica 83

4.2.4Reconocimiento de lenguaje natural 89

4.2.5Arquitectura de sistemas de educación virtual 93

4.3 MARCO CONCEPTUAL 97

4.3.1Arquitectura 97

4.3.2Plataforma 103

4.3.3Sugerencias de diseño y despliegue 106

5. CONCLUSIONES 111

6. RECOMENDACIONES 114

7. LÍNEAS DE INVESTIGACIÓN FUTURA 115

BIBLIOGRAFÍA 116

ÁNEXOS 118

Anexo A. Defectos de la P.O.O. para modelar agentes. 118

Anexo B. Prototipo 120

Anexo C. Notas del CD 145

viii

Page 9: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

LISTA DE CUADROS

Pág.

Cuadro 1. Clasificación de agentes 37

ix

Page 10: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

x

Page 11: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

LISTA DE FIGURAS

Pág.

Figura 1. Arquitectura original de Web semántica 27

Figura 2. Genealogía de Metodologías 46

Figura 3. Pila de Web semántica 54

Figura 4 Grafo dirigido 60

Figura 5. Estándares SCORM 87

Figura 6. SUMO: Suggested Upper Merged Ontology 91

Figura 7. Arquitectura de STI 95

Figura 8. Arquitectura de STI extendido 96

Figura 9. Modelo de agentes fundamental 101

Figura 10. Interacción de componentes 106

Figura 11. Elementos de Dublin Core 108

Figura 12. RDF representando tablas 109

Figura 13. RDF representando árboles 109

Figura 14. RDF en estructuras mixtas 109

Figura 15 Página Web original 138

Figura 16. Página Web anotada, mostrando Location 139

Figura 17. Página Web anotada, mostrando Person 140

Figura 18. Ejecución del agente de prueba. 141

Figura 19. Registro de la ejecución del agente de prueba 144

Figura 20. Segunda ejecución del comportamiento 144

xi

Page 12: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

LISTA DE ANEXOS

Pág.

Anexo A. Defectos de la programación orientada a objetos 119Anexo B. Prototipo 121Anexo C. Notas del CD 139

xii

Page 13: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

GLOSARIO

ABIERTA, TECNOLOGÍA: Una tecnología abierta es aquella que publica en su especificación la forma de uso y cómo interactúa con otras tecnologías sin restricciones legales y tanto como es posible sin restricciones técnicas acogiendo procedimientos y formatos estandarizados o normalizados. Contrario a las tecnologías abiertas están las tecnologías cerradas o propietarias, que especifican claramente las restricciones legales de su uso y los formatos y tecnologías soportadas que normalmente son creadas por la misma empresa que la tecnología especificada o por empresas subsidiarias.

ACL: (Access List) Es un método de establecer restricciones basado en reglas explícitas que un dispositivo puede entender. Se suele usar en sistemas de seguridad.

ACL: (Agent Communication Language) Lenguaje de Comunicación de Agentes. Es una especificación de la plataforma JADE para intercambiar mensajes entre agentes del sistema.

AGENTE: En este texto generalmente se tratará como agente un programa que tiene las características descritas en la sección 4.1.1. En resumen un agente es una entidad capaz de percibir y actuar inteligentemente respecto a su ambiente.

ANNIE: (A Nearly-New Information Extraction System) Es uno de los componentes de GATE con el que se hace extracción de información.

ANOTACIÓN: La anotación tiene que ver con las técnicas para describir y clasificar un documento escrito, es decir, anotación es una forma de introducir o componer la metainformación de un documento, ésta describe generalmente los temas y subtemas de que trata dicho documento.

AOP: Ver AOSE

AOSE: (Agent-Oriented Software Engineering) Ingeniería de Software orientada a agentes, algunos autores la usan como AOP (Agent-Oriented Programming -Programación orientada a agentes). Es el término usado para el análisis, diseño e implementación de sistemas de agentes y algunos autores la proponen como la sucesora natural de la POO.

AUML: (Agents Unified Modelling Language) Lenguaje Unificado de Modelado de

xiii

Page 14: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Agentes. Es una extensión del Lenguaje Unificado de Modelado (UML) usado en la Ingeniería de Software orientada a objetos para adaptarse a las nuevas necesidades de modelado de los sistemas basados en agentes.

BDI: (Beliefs-Desire-Intention) Es una teoría sobre agentes inteligentes y un tipo de agente inteligente. BDI es un marco teórico en el que se estructura un modelo de agente inteligente con características mentales para ser social e inteligente, algunas referencias lo describen como un tipo de agente racional cuyo comportamiento es dirigido por Creencias (beliefs o estado de conocimiento), Deseos (desires o metas) e Intenciones (Intentions o acciones), de allí proviene la sigla.

CONVERSIÓN DE TIPOS: Cuando un lenguaje de programación tiene que verificar el tipo de dato de un valor para hacer una operación o el llamado de una función o método lo hace con base en la sintaxis original (cuando son lenguajes fuertemente tipados) o con base en el valor y el contexto de uso del valor (débilmente tipados). La conversión implícita ocurre cuando el lenguaje no puede verificar el valor desde el diseño del programa y tiene que decidir cómo interpretar cierto valor o variable, caso en el cual simplemente convierte la variable o valor a un valor que sea apropiado para la operación que se quiere realizar (Ver Tipado fuertemente en el glosario). La conversión implícita de tipos debe ser evitada en lo posible porque puede generar comportamientos inesperados de los programas en tiempo de ejecución.

DARPA: Defense Advanced Research Projects Agency, Agencia de proyectos avanzados de defensa. Agencia del departamento de Defensa de los Estados Unidos que ha dado origen a muchos desarrollos importantes relacionados con comunicaciones, como los protocolos TCP/IP o protocolos de Internet.

DESENSAMBLAR: Cuando se habla de programas, se habla de varias etapas en la vida del programa desde el punto de vista físico o de implementación. La última fase de un programa es cuando es ejecutable por el PC, en este estado el programa está representado por un código ensamblador específico de la plataforma o arquitectura física en la cual va a ser ejecutado. Desensamblar se refiere al hecho de convertir éste código ensamblador a algún código fuente que es más fácil de interpretar para cualquier programador y permite conocer los métodos de programación usados para crear el programa en cuestión.

DOMINIO: Éste término tiene cierta relación con el uso que tiene en matemática pero desde una perspectiva un poco más flexible aplicada al análisis y diseño de software: un Dominio de conocimiento es el conjunto de términos y relaciones que existen sobre un tema en particular, como por ejemplo el cuidado médico o la ingeniería aplicada, éstos pueden considerarse dominios de conocimiento aunque la definición poco precisa permite que un dominio sea más específico que los

xiv

Page 15: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

ejemplos propuestos, como atención médica en cuidados intensivos o ingeniería de software aplicada al diseño de sistemas multiagente. El criterio aparente parece ser la cantidad de información relacionada que deseemos incluir en nuestras operaciones o diseños.

DTD: (Document Type Definition) Definición de tipo de documento. Es un esquema de validación propuesto inicialmente como parte del modelo de datos SGML que permite definir la estructura correcta de un documento, es decir, qué parámetros pueden tener las etiquetas, que tipos de contenidos y que relaciones de anidamiento o secuencia son aceptables o correctas. Dado que XML es un subconjunto de SGML, DTD también es un esquema de validación para éste.

EXPRESIÓN REGULAR: Es una cadena de caracteres que puede ser interpretada por una máquina de estado finito. En el argot Unix/Linux es una manera de especificar un conjunto de palabras que tienen elementos comunes como letras iniciales iguales, que comienzan y terminan por cierta letra o número o que usan ciertas letras o números cierta posición de la palabra o con algún patrón como que se repita varias veces la misma letra o conjunto de letras dentro de la palabra.

FAQ: (Frecuently Asked Question) Preguntas frecuentemente preguntadas o simplemente preguntas frecuentes. FAQ es un término usual en el ámbito de Internet con el que se denomina una pregunta que es frecuente o que se espera que sea frecuente, de tal manera que haciendo un conjunto de FAQs con su respectiva respuesta se da una solución a las preguntas más importantes que genera la información del sitio en una sola sección del mismo.

FIPA: (Foundation for Intelligent Physical Agents) Base para agentes inteligentes físicos. FIPA es una organización cuyo fin es forjar estándares y especificaciones que unifiquen la noción de agente inteligente y su interacción en un ambiente abierto.

GNU: (GNU is Not Unix) Éste es el término usado para un movimiento responsable de gran parte de lo que hoy conocemos como movimiento de software libre y licenciamiento libre así como del término de licenciamiento privativo y su significado. GNU desde el punto de vista práctico es otra forma de decir Open Source, Software Libre o Código Abierto, si bien el principal representante y fundador del movimiento GNU/Software Libre/GPL, Richard Stallman, enfatiza en pequeñas diferencias filosóficas de cada uno de los movimientos mencionados que los diferencian con el suyo, aunque el resultado sea muy similar.

GPL: (General Public License) Licencia Pública General. GPL es un modelo de licenciamiento nacido en Estados Unidos cuya finalidad es permitir que es software sea modificable y redistribuible por los usuarios o clientes del mismo. Es

xv

Page 16: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

una de muchas licencias llamadas de código abierto (Open Source) o Software Libre según lo que el referente crea más importante, la calidad de la programación en el caso de OSS (Open Source Software) o las libertades de los clientes o usuarios en caso del FS (Free Software) o SL (Software Libre).

GUI: (Graphical User Interface) Interfaz gráfica de Usuario, es la parte de una aplicación que le permite interactuar con el usuario a través de algún dispositivo gráfico, generalmente el monitor.

GUIONES: (o Scripts) Un guión es un programa interpretado cuyo lenguaje es de alto nivel para interactuar con un sistema más complejo. La programación de guiones o scripts es más común en entornos de sistemas operativos, donde muchas de las tareas administrativas son llevadas a cabo por guiones que el administrador crea o cambia para lograr sus objetivos, como pueden ser liberación de recursos o monitoreo del sistema. En sistemas de agentes inteligentes los guiones son usados para especificar una tarea en un lenguaje lógico o una gramática que analiza alguna estructura del sistema. Algunas veces los guiones también modelan protocolos de interacción entre otras aplicaciones.

HORN, CLÁUSULAS: Es una forma simplificada de escribir fórmulas lógicas como un conjunto de términos unidos por el operador 'y'.

HTML: (HyperText Markup Language) Lenguaje de marcado de hipertexto. Lenguaje de marcación o etiquetado basado en SGML con el cual se crean páginas Web.

HTTP: (HyperText Transfer Protocol) Protocolo de transferencia de hipertexto. Es un protocolo cliente-servidor por medio del cual se intercambian documentos HTML y sus componentes entre los servidores y los clientes que usualmente son navegadores Web.

IMPLEMENTACIÓN: La implementación de un sistema es la realización concreta de un diseño, es decir, un programa o librería que realiza las operaciones especificadas en un diseño o en la especificación de un estándar. La implementación de un estándar por ejemplo puede dar lugar a diferencias en algunos detalles de cómo se realizan finalmente las operaciones especificadas dependiendo del grupo que haya desarrollado la aplicación o la librería, la plataforma en la que se ejecuta o las ambigüedades que tenga la especificación misma.

JACK: Es una plataforma de agentes inteligentes comercial basada en Java que comprende muchas utilidades para el diseño, implementación y monitoreo de sistemas multiagente.

JADE: (Java Agent Development Framework) Es una plataforma de agentes

xvi

Page 17: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

inteligentes basada en Java que busca simplificar el desarrollo mientras se asegura el cumplimento de estándares a través de un comprehensivo conjunto de servicios y agentes.

JAKARTA: Extensión del Servidor Web Apache que permite escribir programas en Java y páginas Web con código Java embebido conocidas como JSP para invocar los servicios de los programas Java.

JAVA: Java es un lenguaje de programación cuyo código final o código de máquina se genera para una máquina virtual, es decir como un computador ideal, de tal manera que si se hace una correspondencia entre las órdenes de ésta máquina virtual a una máquina real, un programa escrito en Java puede ser ejecutado en cualquier tipo de computador y sistema operativo para el cuál se haya hecho la correspondencia mencionada.

JDK: (Java Development Kit) Kit de desarrollo Java, conjunto de herramientas para hacer programas basados en Java. Incluye un entorno de ejecución de Java, es decir la máquina virtual.

JESS: (Java Expert System Shell) Librería de clases de Java que implementan un Intérprete de comandos para sistemas expertos.

JRE: (Java Runtime Environment) Entorno de Ejecución Java. Es un conjunto de utilidades del sistema operativo que permiten al mismo ejecutar programas java como si fueran nativos, cargando previamente a su ejecución la Máquina Virtual.

JSP: (Java Server Pages) Es una forma de incorporar instrucciones en Java a páginas Web para generar contenidos dinámicos e interactuar con el sistema y con aplicaciones escritas en Java.

JVM: (Java Virtual Machine) Máquina virtual Java, es el nombre dado al intérprete de programas Java más todo el sistema operativo que administra la memoria y procesos de los programas Java, es decir, emula sobre las plataformas soportadas (sistemas operativos y arquitecturas de hardware) una máquina y un sistema operativo para la cual están escritos los programas Java.

LENGUAJE DE MARCADO: Lenguaje que permite estructurar un documento etiquetando o marcando sus partes y dando significado a ellas, p. ej. HTML (Ver HTML).

LGLP: (Lesser General Public License) Licencia General Menos Pública. Es un modelo de licenciamiento similar al de GPL pero que permite el uso del software o librería en aplicaciones comerciales privativas aunque el código fuente original sigue siendo abierto y redistribuible. GPL no permite el uso del software licenciado bajo sus términos en aplicaciones comerciales de licencia cerrada, GPL exige que

xvii

Page 18: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

el software basado en GPL siga siendo GPL. LGPL fue una manera de hacer popular el uso de desarrollos cooperativos de código abierto entre la comunidad de desarrolladores de licencias privativas.

LICENCIA/LICENCIAMIENTO: La Licencia es el término usado para definir los términos de uso de alguna aplicación, es un contrato de uso que normalmente especifica qué es posible hacer con el programa y qué no. La palabra Licenciamiento es usada para hablar de las clases de licencias, en especial, Libre y Privativa que son las dos posiciones más categóricas en éste campo.

LICENCIAMIENTO LIBRE: El licenciamiento libre es aquel en el que las licencias especifican y enfatizan en lo que los usuarios pueden hacer con el software que han comprado y es la contraparte del licenciamiento privativo. Se dice que es libre, porque permite que los usuarios conozcan el código fuente del programa y lo modifiquen siempre y cuando se respeten los derechos de autor y se identifiquen las modificaciones hechas con su respectivo autor, así como que el propietario del software pueda hacer copias y redistribuirlas. El licenciamiento libre es un modelo nuevo de comercialización de software que busca aprovechar los recursos suplidos por el movimiento de software libre y enfatizar en la importancia del conocimiento sobre los recursos económicos y políticos, así como permitir una distribución más uniforme de las ganancias del desarrollo de software.

LICENCIAMIENTO PRIVATIVO: El licenciamiento privativo es aquel en el que las licencias especifican y enfatizan en lo que los usuarios no pueden hacer con el software que han comprado y es la contraparte del licenciamiento libre. Se dice que es privativo, porque incluye restricciones sobre las acciones del usuario que son consideradas como derechos que nunca se mencionan en licencias o contratos de compra productos diferentes al software, como por ejemplo el derecho a conocer su funcionamiento y modificarlo.

MÁQUINA DE ESTADO FINITO: Es una abstracción que permite la especificación de un proceso a través de estados y transiciones en número limitado de estados y transiciones. Es una representación de un sistema a través de lo que le debe entrar en cada uno de sus estados posibles y los resultados que se obtienen de cada entrada.

MAS.: (Multi-Agent System) Sistema Multi Agente. Es un sistema de software compuesto por múltiples agentes que se comunican entre sí y en algunas ocasiones se mueven entre diferentes plataformas -agentes móviles.

MDA: (Model-Driven Architecture) Arquitectura dirigida por modelos. Es una propuesta para análisis y diseño de sistemas, por medio de la cual se puede hacer un diseño en un modelo independiente de la plataforma y a través de la definición de perfiles o metamodelos de del mismo, se hace corresponder este diseño con

xviii

Page 19: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

un modelo dependiente de la plataforma por medio del cual se puede llegar a la implementación.

MIDDLEWARE: Este es un término usado para elementos de software que proveen una funcionalidad de servicios intermediarios entre una tecnología y otra. Se puede ver como un conjunto de utilidades que concentran funcionalidades unificadas específicas de alto nivel o nivel intermedio de abstracción y ocultan capas de funcionalidad de bajo nivel que pueden adoptar diferentes protocolos, codificaciones o tecnologías no unificables sin una capa intermedia.

MONOTÓNICAS, REGLAS: En lógica una regla que preserva el conocimiento original del conjunto de axiomas y afirmaciones. En contraposición una regla no monotónica puede inducir nuevo conocimiento e implicar invalidez del conjunto de conocimiento original.

NIVEL (DE ABSTRACCIÓN), ALTO, MEDIO, BAJO: En computación los términos de alto nivel o bajo nivel se refieren al grado de abstracción del que se está hablando, es decir, alto nivel es alto grado de abstracción y significa que se habla de algo que los humanos podemos entender fácilmente, mientras bajo nivel es bajo nivel de abstracción y significa muy concreto, o que está diseñado más para las máquinas que para los seres humanos (como los bits). Si hablamos de un lenguaje de alto nivel, estamos hablando de un lenguaje cuyo léxico (conjunto de palabras usadas) y sintaxis se corresponde con palabras y conceptos que los humanos podemos entender y solemos usar en nuestra vida cotidiana, mientras que un lenguaje de bajo nivel es un lenguaje que tiene sintaxis y significados que no son familiares para los seres humanos y que expresan muy concretamente la forma en que un computador hace las cosas internamente.

NLP: (Natural Language Processing) Procesamiento de Lenguaje Natural

ONTOLOGÍA: Simplificación de la lógica de algún dominio de conocimiento. Una ontología lista y categoriza términos válidos dentro de un dominio de conocimiento y establece las relaciones que guardan entre sí.

OOP: (Object-Oriented Programming) Programación Orientada a Objetos -POO en español. Es el paradigma predominante para desarrollo de aplicaciones y supone pensar los programas como elementos llamados Objetos que contienen parte de la funcionalidad del programa completo y que en conjunto ejecutan todo lo que se requiere del mismo.

ORDEN SUPERIOR, LÓGICA: La lógica se compone en su orden de Cálculo de Predicados, Lógica de Primer orden y Lógica de Orden Superior. El cálculo de predicados es una lógica que evalúa expresiones haciendo uso de términos y operadores sobre los términos con las clásicas relaciones lógicas conocidas

xix

Page 20: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

(conjunción, disyunción y negación) y algunas reglas de inferencia que definen la capacidad expresiva de la lógica por ellas definida. La lógica de Primer Orden incluye los cuantificadores y las funciones para empezar a incluir a los conjuntos dentro de su universo de discurso y la lógica de Orden Superior incluye cuantificadores para las funciones mismas. Cada uno de los sistemas lógicos mencionados tiene una capacidad de expresión incrementalmente mayor, es decir, lo que se puede afirmar y deducir en cálculo de predicados también se puede afirmar y deducir en lógica de primer orden y lo mismo se cumple para la lógica de orden superior respecto a la de Primer Orden si bien la capacidad de computabilidad es cada vez menor, es decir, mientras mayor el potencial de expresión menor la capacidad de demostrar e inferir.

OSS: (Open Source Software) También llamado OSS o FS, en Latinoamérica y países hispano parlantes es llamado software de fuente abierta o código abierto y SL -Software Libre- respectivamente. OSS/FS es un movimiento que busca que exista colaboración global entre comunidades de programadores y usuarios para desarrollar al máximo las posibilidades de un programa, software o librería a través de la liberación de su licencia, es decir, permitiendo que los usuarios de tales bienes puedan modificarlo y publicar sus modificaciones a la comunidad de usuarios y desarrolladores respetando los derechos de autor originales e incluyendo los propios generados por las adiciones. La diferencia entre OSS y FS radica en que el fenómeno del FS generó varias aplicaciones cuya calidad fue extraordinariamente buena, pero bajo la premisa de que lo importante era dar libertad a los usuarios (ver, modificar y distribuir el código fuente) y generar ambientes colaborativos, de ahí el término libre, sin embargo un grupo importante de usuarios y desarrolladores de este software entre los que se contaban grandes casas de software y hardware prefirieron quitar el carácter político del movimiento enfatizando que el movimiento promovía el acceso al código fuente y de ahí el término código abierto o fuente abierta, tomando como bandera la eficiencia de modelo sobre las características filosóficas. El origen de esta idea es GNU (ver entrada en el glosario) que sigue siendo la principal representante de las ideas y desarrollos del SL y en la divergencia con la idea de libertad se creó OSS cuyo énfasis es la eficiencia en vez de la libertad. Hoy en día los dos movimientos tienen actividades muy aparte a pesar de continuar luchando por el mismo objetivo.

PDF: (Portable Document Format) Formato de Documento Portátil. Éste es un formato muy popular de Internet que permite que un documento sea visto en cualquier plataforma exactamente de la misma manera. Es un formato propietario de Adobe.

PDM y PSM: (Platform Dependant Model, Platform Specific Model) Modelo dependiente de la plataforma y modelo independiente de la plataforma. Son

xx

Page 21: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

conceptos usados por la propuesta MDA - Model-Driven Architecture – por medio de la cual se especifican dos modelos de diseño pero con uno de ellos se puede hacer correspondencia directa con el código fuente.

PLN: Procesamiento de Lenguaje Natural, es la disciplina en la cual se estudian los algoritmos y técnicas para obtener el significado de las comunicaciones humanas así como analizarlo, generarlo o manipularlo.

PROPIETARIA, TECNOLOGÍA / PROPIETARIO, SISTEMA: El término propietario se refiere generalmente a una tecnología que tiene restricciones de uso muy fuertes ligadas a una empresa que explota esas restricciones y además no se acoge a procedimientos estandarizados o normalizados por entidades o consorcios de estandarización. Un ejemplo de ello son los formatos de documentos .DOC usados por el procesador de texto Word de Microsoft, éste formato está restringido legalmente a ser usado por Word o por procesadores con el permiso de Microsoft para usarlo en alguna medida, es decir, el permiso puede ser de sólo lectura del formato o de sólo escritura. La contraparte de las tecnologías propietarias son las tecnologías libres o las tecnologías abiertas que se acogen a procedimientos estandarizados y no suelen imponer restricciones legales, así como publicar la manera en que pueden ser usadas para interactuar con otras tecnologías.

RDF: (Resource Description Framework) Marco de trabajo para descripción de recursos. RDF es un modelo de datos o esquema sintáctico que permite describir un recurso identificable mediante un URI a través de sentencias o afirmaciones del tipo sujeto-predicad-objeto.

SGML: (Single Generalized Markup Language) Lenguaje de Marcado Generalizado Estándar. Lenguaje genérico para representación de información o diseño de lenguajes de representación como HTML y XML.

RSS: (Really Simple Syndication) Sindicación Realmente Simple. Es una tecnología que permite publicar pequeños extractos de contenidos como noticias y pronósticos del clima a manera de canales de información formateable de manera independiente del contenido y visibles tanto en visores especiales de RSS como en páginas Web suscritas que no crean sus propios contenidos. La versión 1.0 de RSS está basada en RDF.

RULEML: Iniciativa abierta en la que se busca establecer un sistema de reglas de inferencia lógica a partir de ontologías y documentos RDF con su propio lenguaje de especificación y ejecución. La página principal de RuleML dice que más que prototipos académicos ellos buscan la interoperabilidad de reglas entre estándares de la industria como JSR 94, SQL'99, OCL, BPMI, WSFL, XLang, XQuery, RQL, OWL, DAML-S, and ISO Prolog así como sistemas de reglas ya establecidos

xxi

Page 22: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

como CLIPS, Jess, ILOG JRules, Blaze Advisor, Versata, MQWorkFlow, BizTalk, Savvion, etc.

SCRIPT: Ver Guión

SL: (Software Libre) Es el término general usado para hablar de aplicaciones, utilidades y librerías que acogen el modelo de desarrollo Libre y comunitario propuesto por el movimiento GNU o en algunas ocasiones se usa también para hablar de aplicaciones suscritas al movimiento OSS (Ver entradas en el glosario).

TIC: Tecnologías de la Información y las Comunicaciones

TIPADO, FUERTEMENTE: En el contexto de los lenguajes de programación, los tipos de datos son una base de diferenciación. Un lenguaje de programación fuertemente tipado es aquel en el que cada variable u objeto tiene que ser declarado con su respectivo tipo de dato/objeto tanto cuando se crea o declara como en muchos de sus posibles usos, ésto permite que el compilador y la ejecución misma del programa verifique cada vez que se llama a una función o método con un parámetro de ese tipo que la variable, parámetro o valor se corresponde con el tipo de dato que se espera o con la operación que se quiere realizar. Existen lenguajes de programación débilmente tipados que no incluyen en su sintaxis la necesidad de especificar los tipos en sus contextos y en vez de ello implementan métodos de clasificar las variables y asignarles un tipo de dato apropiado para u contenido inicial, en éstos lenguajes, ni el lenguaje ni el programa final pueden verificar que las variables pasadas sean plenamente compatibles con la función, método o operación a realizar, en estos casos se hace una conversión implícita de tipos y el valor pasado se interpreta como el valor necesitado para la operación, lo que puede dar origen a problemas serios en la ejecución del programa no detectables en otra etapa diferente a la del uso del mismo.

TIPSTER: Es un programa pionero de extracción de información creado por DARPA y liberado desde 1998.

TURING, MÁQUINAS: Las máquinas de Turing son una representación matemática de las computadoras que han servido como base para estudiar la complejidad computacional y las capacidades teóricas de las mismas.

UML: (Unified Modelling Language) Lenguaje Unificado de Modelado. Es una notación gráfica que permite modelar un sistema de software y ver los diferentes aspectos que se deben considerar en el análisis y diseño del mismo.

URI: (Universal Resource Identifier) Identificador Universal de Recursos. Es una cadena de caracteres por medio de la cual se identifica cualquier recurso. Este esquema de identificación es una generalización para permitir que todos los

xxii

Page 23: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

objetos del universo real y de Internet sean identificables inequívocamente.

URL: (Universal Resource Locator) Identificador Universal de Recursos. Es una cadena de caracteres por medio de la cual se identifica un recurso de Internet, es decir, una página Web, un archivo, un servidor, etc. Los URLs son el subconjunto más conocido de URIs.

USABILIDAD: Éste término ha venido acuñándose en las comunidades de diseño de contenidos Web, como la facilidad de uso de la aplicación o sitio Web que se está diseñando o publicando. Para garantizar usabilidad se acostumbra simplificar los procesos y acompañar los diseños de ayudas visuales e interactivas que guíen a los usuarios hacia le finalidad perseguida, que puede ser capturar datos demográficos/psicográficos o inscribir cierta operación en una base de datos.

W3C: Es una organización sin ánimo de lucro dedicada a desarrollar normalizadamente las tecnologías relacionadas con Internet, en especial con la publicación de contenidos a través de la World Wide Web.

WWW CONSORTIUM: (Consorcio WWW) Ver W3C

WWW: Telaraña mundial de información. Es la denominación genérica de todas las variantes que surgen del uso de HTTP para intercambiar información de diferentes maneras, es decir, gráficos, aplicaciones interactivas, documentos, etc..

XHTML (Extensible HTML) Es una versión de HTML conforme con las reglas sintácticas de XML.

WORLD WIDE WEB: Ver WWW.

XML: (eXtensible Markup Language) Lenguaje de Marcado Ampliable. Lenguaje de representación de información que permite diseño de lenguajes de representación genéricos como RDF. XML conforma un base sintáctica para la representación de información, exige que todo documento XML o conforme tenga unas reglas sintácticas fijas, como por ejemplo que toda etiqueta tenga un comienzo y un fin definidos, que la anidación de estructuras sea coherente (no se aniden estructuras traslapadas sino anidadas de manera estricta), etc. XML es un subconjunto de SGML que incluye capacidades de validación de los contenidos de las etiquetas y de las estructuras de secuencia y anidación válidas dentro de alguna aplicación del lenguaje, características que XML hereda de éste y amplía simplificando la sintaxis.

XML-RDF: Marco de descripción de recursos en XML. Lenguaje de marcado que representa aseveraciones o declaraciones acerca de hechos, acciones o recursos. Es una forma de RDF escrita en XML. Ver RDF.

xxiii

Page 24: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

RESUMEN

Internet ha evolucionado en una amalgama de tecnologías con frecuencia incompatibles pero con una base común desde sus inicios: la representación de la información. El presente proyecto busca establecer una base técnica sobre la cual construir un sistema orientado a Internet usando las tendencias más predominantes hoy en día: Web Semántica, Agentes Inteligentes y Reconocimiento de Lenguaje Natural como colágeno.

Abstract: Internet has evolved into a mixture of Technologies which used to be, very often, incompatibles but with a common base: information representation. This project is a search for establish a technical base over the which build an Internet-oriented system using the most predominant trends nowadays: Semantic Web, Intelligent Agents and Natural Language Processing as a kind of glue.

xxiv

Page 25: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

1. DEFINICIÓN DEL PROBLEMA

1.1 INTELIGENCIA ARTIFICIAL

La inteligencia artificial ha tenido un desarrollo continuo desde los orígenes de la computación, si no se pude decir que fue el origen mismo de ella. Durante muchos años de desarrollos muy académicos y experimentales la inteligencia artificial ha terminado por ser una rama de las ciencias de la computación que agrupa un conjunto de algoritmos no convencionales, una compilación de enfoques o paradigmas distintos a los paradigmas clásicos y deterministas de la programación tradicional. Es así como incluimos en una bolsa con el título de Inteligencia Artificial a todo algoritmo no convencional como las redes neuronales artificiales, los algoritmos genéticos, la programación funcional, algoritmos de clasificación (clasificación, agrupamiento o clustering en inglés) y muchos otros que seguramente se me escapan. La idea de la bolsa no significa que dichos algoritmos interactúen o compongan nuevos tratamientos a antiguos problemas de manera conjunta, sino que cada uno individualmente o secuencialmente en el mejor de los casos atacan antiguos o nuevos problemas de manera diferente a la forma en que tradicionalmente se han atacado, es decir, con aplicación de programas que aplican el conocimiento que el programador tiene del problema e implementa lo que el programador haría sólo que de una manera más exhaustiva y sistemática, como sólo pueden hacerlo los computadores.

El concepto de agente inteligente busca abstraer y unificar la inteligencia artificial a través de un concepto elemental y abstracto que permita un enfoque sistemático y único como punto de partida para abordar cualquier problema al que se le quisiera aplicar alguna de las técnicas de inteligencia artificial ya mencionadas. Los agentes inteligentes se clasificaron originalmente con varios criterios, entre ellos la manera en que actuaban (actuar racionalmente o actuar como humanos)1 y según el tipo de interacción con el ambiente que tuvieran (agentes de reflejo simple, agentes bien informados, etc.) y se les asignaron unas propiedades generales que han venido evolucionando y que hoy en día son fuente de debate en los círculos

1 RUSSEL, Stuart; NORVIG, Peter. Inteligencia Artificial, un enfoque moderno. Prentice Hall,

1995. Pág. 5.

25

Page 26: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

académicos que estudian el tema.

Hoy en día el concepto de agente inteligente como herramienta teórica ha caído en desuso debido a que está tan sólido como concepto que se ha convertido en una robusta herramienta de diseño de programas y de plataformas de programación distribuida, es decir, el concepto ha migrado de la academia a la industria y está madurando como paradigma futuro de la programación. Los agentes inteligentes son ahora un concepto de diseño, de ingeniería de software que se acompaña generalmente con metodologías de diseño basadas en utilidades actuales extendidas para tal fin como el AUML (Agent UML) y con plataformas de implementación específicas de cada metodología. Éste es uno de los grandes problemas que existen hoy en día en el diseño de plataformas de agentes inteligentes: la proliferación de metodologías diferentes e incompatibles2.

1.2 WEB SEMÁNTICA

Tim Berners-Lee, creador del protocolo HTTP y del lenguaje de marcado de hipertexto, HTML, basado en definiciones SGML -DTD-, ha propuesto una arquitectura de intercambio de conocimiento evolucionada de éstos elementos que ya todos sabemos que componen la telaraña mundial de información (World Wide Web). El problema que ve Tim Berners-Lee en la manera actual de intercambiar información es, entre otros, que los computadores no pueden tomar decisiones basándose en la información contenida en los documentos (o más concretamente en su formato) y por lo tanto no pueden hacer computación inteligente a través de Internet3 debido, especialmente, a que los computadores desconocen el significado de las palabras usadas y las relaciones entre ellas con otras entidades reales.

Tim Berners-Lee ve además otra serie de problemas técnicos surgidos de la interacción de diferentes sistemas de información una vez que pueden interactuar globalmente. Entre estos problemas técnicos están la falta de unificación de la codificación de los documentos y en la identificación de los mismos, la falta de un

2 Universidad de Toronto, Canadá. Agent-oriented Methodologies, 2002, http://www.cs.toronto.edu/km/aometh/methodologies.htm3 PALMER, Sean B. The Semantic Web: An Introduction, 2001, http://infomesh.net/2001/swintro/

26

Page 27: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

formato fácil de entender por parte de las máquinas que auto describa su sintaxis y posiblemente su significado, una representación de la información (y no de datos aislados) expresivo y flexible que permita aseverar hechos sin coartar la libertad de identificar recursos distribuidos en la red mundial, una forma de dar contexto sintáctico y semántico a la información y reducir su complejidad a dominios bien definidos, una base lógica que permita a las máquinas extraer nuevo conocimiento de los documentos publicados, reglas de prueba que garanticen la validez de las afirmaciones que las máquinas puedan hacer y finalmente medios adecuados para asegurar confiabilidad en las fuentes de los documentos y de las aseveraciones que provengan de la red, para poder crear redes de confianza personalizadas pero recopiladas y alimentadas automáticamente por los computadores mismos. La arquitectura propuesta por Tim Berners-Lee en la XML Conference 20004 se puede observar en el siguiente gráfico donde él expone todos los aspectos mencionados en éste párrafo.

4 BERNERS-LEE, Tim. Semantic Web - XML2000, 2000, http://www.w3.org/2000/Talks/1206-xml2k-tbl/Overview.html

27

Figura 1. Arquitectura original de Web semántica

Page 28: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

La Web semántica es la propuesta concreta a algunos de los problemas que Tim Berners-Lee ve en la Internet de hoy y muchos autores coinciden conque la flexibilidad y robustez de la arquitectura propuesta es el futuro de la red y de hecho existen muchos sitios Web que ya publican información en formato RDF -como RSS 1.0 por ejemplo5-, por lo tanto las primeras tres capas del modelo son ya una realidad -tal vez un poco fragmentaria-. Son muchos los autores que han publicado artículos sobre el potencial de éste modelo en términos de lo que los computadores podrían hacer basándose en él, pero primero hay que diseñar teniendo esta meta en mente.

1.3 LENGUAJE NATURAL

El procesamiento de lenguaje natural es un problema clásico de la inteligencia artificial y sus orígenes se remontan al diseño de lenguajes de programación y las máquinas de Turing. En resumen (más adelante entraremos más en detalle), el problema del procesamiento de lenguaje natural consiste en hacer que las computadoras entiendan lo que quiere decir una frase o un texto escrito (o hablado) por un humano para otro humano, es decir, que extraigan información importante y puedan razonar sobre tal información y las relaciones que tal información tiene con los objetos reales o conceptuales a los que referencian. En el presente proyecto el lenguaje natural tiene un papel importante como estrategia de migración a la Web semántica. Los actuales usuarios no pueden (ni quieren) migrar toda su información en HTML escasamente estructurado (que en su mayoría ni siquiera es XHTML) a una nueva forma de publicación. Los usuarios que van a poblar la Web Semántica serán usuarios nuevos que aprendieron a usar herramientas inteligentes de anotación y diseño de documentos Web. Para los actuales usuarios o mejor para los actuales documentos no se ofrece otra alternativa que desaparecer para aparecer completamente nuevos en otro formato. La interpretación de Lenguaje Natural como estrategia de migración de los nuevos documentos ofrece la ventaja de mostrar, sin incurrir en esfuerzos grandes por parte de los usuarios, los potenciales de la Web Semántica si bien ella no puede desplegar o ejecutar su potencial totalmente sin hacer uso de dispositivos inteligentes que interactúen y sean proactivos con base en ella.

5 DMOZ: Open Directory Project. Open Directory - Reference: Libraries: Library and Information Science: Technical Services: Cataloguing: Metadata: RDF: Applications: RSS:, 2006, http://dmoz.org/Reference/Libraries/Library_and_Information_Science/Technical_Services/Cataloguing/Metadata/RDF/Applications/RSS/

28

Page 29: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

1.4 EL PROBLEMA

Las secciones anteriores buscan exponer un panorama informático inmaduro y fraccionario que ofrece excelentes capacidades de procesamiento e inteligencia para las computadoras y que componen los ejes principales de este proyecto de grado.

La ingeniería de sistemas está compuesta por una serie de especialidades o disciplinas recientemente clasificadas por la IEEE. Esta rama del conocimiento relacionada con las ciencias de la computación evidencia una cierta inmadurez en su desarrollo, apenas natural debido a la comparativamente corta edad de ésta ciencia respecto a otras ingenierías como las ingenierías civiles o las ciencias sociales por ejemplo, que llevan siglos de evolución, desarrollo y estructuración de sus principios y por ende de sus disciplinas elementales y sus especialidades.

Las disciplinas componentes de las ciencias de la computación, clasificadas por la IEEE, se suelen enseñar en pregrado como componentes de carreras holísticas de ingeniería de sistemas y computación que normalmente no integran bien tales disciplinas y menos aún facilitan la especialización en alguna de ellas. Puede ser a consecuencia de ésta inmadurez que vemos que los enfoques vistos anteriormente no aparecen integrados para dar solución al problema de la migración de la actual Internet a la Web Semántica.

Como vimos en la sección Web Semántica, parece que el futuro de Internet está en el modelo expuesto por Tim Berners-Lee basado especialmente en RDF y en Ontologías, y la Web Semántica misma no puede concebirse sin pensar en programas autónomos y proactivos con fuertes capacidades de comunicación (que es una definición muy simplificada de Agente Inteligente) que integren en sus capacidades algoritmos o técnicas clásicas y no convencionales (como las que llamábamos anteriormente Inteligencia Artificial). El problema atacado es básicamente ¿cómo establecer una base para el despliegue de aplicaciones inteligentes en una Web convencional como Univirtual? y ¿cuál sería esa base?. Finalmente, y contextualizando, una plataforma de agentes inteligentes para el público objetivo de Univirtual debería ser una plataforma que por un lado ofrezca capacidades de publicación orientadas a la Web Semántica con todos sus potenciales y permita la publicación transparente de los contenidos como se ha

29

Page 30: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

hecho tradicionalmente pero ofreciendo servicios que exploten las nuevas capacidades. Éste proyecto de grado persigue hacer el análisis preliminar del estado de arte en las tecnologías de agentes inteligentes y Web Semántica, necesario para promover tanto la publicación convencional como el despliegue de sistemas de agentes inteligentes que aprovechen los potenciales de la nueva representación de la información o publicación Web haciendo uso de librerías y tecnologías orientadas a la interpretación de lenguaje natural, es decir, un modelo de implantación de agentes inteligentes como intérpretes semánticos de lenguaje natural, o en otras palabras, un modelo migrante hacia la Web Semántica basado en análisis de lenguaje natural.

El modelo propuesto tendrá en consideración las tecnologías emergentes tanto en plataformas como metodologías y será un listado de tecnologías que copen las necesidades de un sitio con las características de Univirtual y un conjunto de estrategias de integración de tales tecnologías.

30

Page 31: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

2. JUSTIFICACIÓN

Las tecnologías relacionadas con agentes inteligentes se encuentran distribuidas en una serie de paradigmas y enfoques de trabajo que no suelen ser enteramente compatibles entre sí6, si bien existen modelos, marcos de trabajo y propuestas de estandarización en las comunicaciones que aumentan la interoperabilidad entre algunas plataformas pero no facilitan la labor de diseñar los sistemas7, por ejemplo, hay que tener en cuenta que en este escenario los intentos de estandarización sobrecargan los sistemas a través de acoplamiento de interfaces y exigen que los diseñadores y programadores asimilen diferentes marcos de trabajo. La opción más común de plataformas para agentes inteligentes suele ser plataformas propietarias que se ajustan a algún modelo o estándar propuesto pero que son concebidas desde el diseño mismo con el conjunto de metodologías tanto para la interacción con los usuarios como la interacción con los diseñadores y programadores. En éste nuevo horizonte de desarrollo para la ingeniería de sistemas y computación, se habla ya desde hace algunos años de la Ingeniería de Software Orientada a Agentes (AOSE por sus siglas en inglés) como nombre común de las prácticas relacionadas con el diseño de sistemas multiagente y como nuevo paradigma de diseño.

El anterior panorama dibuja una situación seriamente complicada: unos estándares emergentes y un conjunto de plataformas inconexas o con encuentros tangenciales, así como un conjunto de personas que buscan aportar y aprovechar un sistema de agentes inteligentes pero con diferentes enfoques divorciados unos de otros. Usuarios del sistema, diseñadores de interfaz (modeladores del proceso pedagógico y diseñadores Web), diseñadores del sistema (modeladores de procesos y programadores) se encuentran trabajando en conjunto en el mismo objetivo pero sin un lenguaje común entre ellos que permita dirimir conflictos y facilite la interacción entre ellos.

Un sistema de información con el volumen de usuarios y la complejidad que persigue Univirtual, sólo puede ser viable si las aplicaciones tienen la capacidad

6 Universidad de Toronto, Canadá. List of methodologies, 2002. http://www.cs.toronto.edu/km/aometh/methodologies.htm7 FIPA. Publicly Available Implementations of FIPA Specifications, 2006 http://www.fipa.org/resources/livesystems.html

31

Page 32: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

de adaptarse a las necesidades de cada usuario conociendo las preferencias de cada uno y permitiendo una administración simplificada, características que los programas clásicos orientados a objetos no pueden desempeñar muy bien (ver anexo A). Además de lo anterior, las técnicas de Web Semántica permiten que los programas (o agentes en nuestro caso) accedan a la información en el momento de transporte sin necesidad de crear un sistema propietario y accedan a información restrictiva que ayuda a los mismos a adaptarse y razonar sobre ésta pero no es fácil imaginar otra manera de adquirir información semántica si no es aplicando técnicas de Procesamiento de Lenguaje Natural que sería el método más expedito para lograrlo.

Antes de emprender una empresa como el diseño de un sistema multiagente, es necesario reconocer este panorama fragmentario e inmaduro y establecer objetivos de la comunidad subyacente o usuaria. Este proyecto busca analizar tanto las tecnologías disponibles, sus características y parámetros de selección, como la comunidad que la va a usar, a saber, la comunidad Universitaria que hace uso de Univirtual, los potenciales usuarios y las directivas de ésta. Una de las situaciones que encontramos vital para un modelo de agentes inteligentes es el almacenamiento y publicación de información en formatos que permitan a los computadores reconocer la semántica o significado de los contenidos y actuar socialmente tanto entre ellos como con los usuarios, cualquiera que sea su perspectiva, de acuerdo con la idea que siempre ha perseguido Tim Berners-Lee con sus descubrimientos.

Tenemos que emprender un recorrido sobre las ideas fundamentales de este proyecto como son agentes inteligentes y reconocimiento de lenguaje natural sin detenernos mucho en los detalles sino en aspectos prácticos y significativos para nuestras elecciones y sugerencias de implementación (para la puesta en marcha), reconocer la visión de la Web Semántica para usarla como colágeno en el reconocimiento y representación del lenguaje natural considerando la información existente y examinar algunas herramientas que deberían ser usadas para facilitar el desarrollo final del sistema y evaluar sus cualidades. Finalmente, es necesario hacer algunas consideraciones acerca del modelamiento del sistema respecto a la comunidad objetivo.

32

Page 33: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

3. OBJETIVOS

3.1 OBJETIVO GENERAL

Desarrollar un modelo de implantación que sugiera y concilie los enfoques y tecnologías necesarias para desplegar un sistema de agentes inteligentes adaptado a las necesidades de un sitio de educación virtual como Univirtual de la universidad tecnológica de Pereira usando tecnologías orientadas a la Web Semántica con base en análisis de lenguaje natural.

3.2 OBJETIVOS ESPECÍFICOS

Revisar el papel de los agentes inteligentes en las plataformas educativas. Revisar la arquitectura de los sistemas de tutoreo inteligente. Estudiar las necesidades de comunicación y movilidad de agentes inteligentes

en Univirtual. Estudiar las necesidades de representación de información de Univirtual. Comparar plataformas de agentes inteligentes. Comparar marcos de trabajo para representación de dominios y extracción de

información. Estudiar las herramientas de implementación con que se cuenta para realizar

etiquetado y clasificación de contenidos. Proponer una metodología de diseño y plataforma de implementación. Articular la interacción de las herramientas en una arquitectura general. Crear un prototipo que muestre cómo se puede hacer la integración final de las

tecnologías mencionadas.

33

Page 34: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

3.3 DELIMITACIÓN

Este proyecto de grado busca establecer algunos parámetros a considerar antes de diseñar e implementar una plataforma de agentes inteligentes para Univirtual. Dentro del marco clásico de la Ingeniería de Software se corresponde con parte del análisis, desde una perspectiva de alto nivel.

El proyecto se desarrollará de la siguiente manera:

Estudiar alternativas de metodologías de diseño de agentes inteligentes y seleccionar una apta para el proceso.

Analizar los actores del sistema, características de su interacción y la información que utilizan a la luz de la metodología seleccionada.

Ilustrar el uso de la metodología estableciendo un modelo de interacción entre los mismos.

Verificar los protocolos de interacción y su posible correspondencia con modelos contemplados en plataformas de programación orientada a agentes.

Establecer una base de esquemas de interacción tanto entre actores como de actores con el sistema.

Hallar y comparar las plataformas que faciliten estos esquemas de interacción. Estudiar las utilidades existentes para desarrollar los requerimientos

establecidos. Proponer un modelo de implantación basado en las consideraciones hechas en

los apartes anteriores.

34

Page 35: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4. MARCO REFERENCIAL

4.1 MARCO TEÓRICO

El marco teórico del problema analizado está compuesto por los marcos teóricos relativos a los ejes principales del tema: agentes inteligentes, representación de datos en Internet y reconocimiento de lenguaje natural, dedicamos dos capítulos al marco teórico de los agente BDI que son un tipo de agente que se basa en la teoría descrita en ese capítulo y que son el elemento constitutivo de las dos plataformas más populares para la implantación de sistemas multiagente, así mismo dedicamos una sección a las metodologías que también constituyen una parte importante del marco sobre el cuál se diseñan e implementan estos sistemas.

4.1.1 Agentes inteligentes.

El concepto de agente inteligente es un concepto relativamente nuevo, parece haber sido propuesto por primera vez en el libro “Artificial Intelligence a modern approach” de Peter Norvig y Stwart Russell, en el cual proponen al concepto de agente inteligente como un concepto unificador de las teorías de inteligencia artificial que hasta ese momento constituían un conjunto separado de disciplinas que enfocaban la computación desde paradigmas no convencionales. La inteligencia artificial originalmente (y aún en nuestros días) parece una colcha de retazos de algoritmos y mecanismos no convencionales para resolver problemas, por ejemplo, los algoritmos genéticos, las redes neuronales, los lenguajes funcionales, redes de creencia, lógica difusa, etc.. El agente inteligente busca integrar todos los enfoques en una abstracción que permita aplicar cualquiera de éstos métodos a una sola entidad que responda a unas propiedades bien definidas.

El agente inteligente entonces fue concebido y clasificado originalmente según la manera en que podía actuar, es decir, cómo se le veía desde afuera y por cómo

35

Page 36: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

funcionaba, es decir, cómo se le podía ver desde adentro. Además de los criterios de clasificación mencionados el agente inteligente fue definido como:

“Todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o actúa sobre él mediante efectores"8

Dada la anterior definición, un agente inteligente es casi cualquier cosa que pueda percibir y actuar, es decir, a esta definición pertenece por ejemplo un aire acondicionado, que tiene un conjunto de sensores para conocer la temperatura y unos efectores que enfrían o no según algunos parámetros, pero no creo que podamos aceptar un aire acondicionado como ejemplo de agente inteligente. Parece que los autores de la obra no se percataron de las implicaciones totales de la definición debido a la expectativa de la aplicación de su definición a los programas y dispositivos que se pudieran desarrollar con alguna clase de inteligencia, es decir, ellos pensaron en un agente, pero no necesariamente inteligente.

Aún con las deficiencias mencionadas, cabe señalar que la definición de Russell y Norvig tiene la propiedad fundamental que deseaban los autores: una definición suficientemente abstracta como para que permitiera integrar los diferentes enfoques y técnicas aplicadas en inteligencia artificial clásica, seguramente los autores intentaron evitar el atollamiento que implica tratar de definir la inteligencia además de la idea de que si nos limitamos la aplicación de esta definición a programas es razonablemente acertada (los programas clásicos no tenían sensores y por lo tanto no reaccionaban al ambiente). Nos parece pues, que lo que le falta a la definición para ser completa es incorporarle los elementos conque ellos mismos clasificaron los enfoques de otros autores para abordar la inteligencia artificial, es decir, incorporarle la inteligencia y permitirle la aplicación a entidades más generales. La clasificación mencionada se hizo teniendo como ejes cualitativos el comportamiento o conducta y el razonamiento, con las variantes de emular cosas consideradas inteligentes y hacer las cosas de manera correcta9

como lo ilustra la siguiente tabla:

8 RUSSELL, Stuart; NORVIG, Peter. Op. cit., Pág. 33

9 Ibid. Pág. 5

36

Page 37: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Cuadro 1. Clasificación de agentes

Emulación FormulaciónPensamiento Sistemas que piensan como

humanosSistemas que

piensan racionalmente

Actuación Sistemas que actúan como humanos

Sistemas que actúan racionalmente.

Fuente: RUSSELL, Stuart; NORVIG, Peter, Inteligencia Artificial, un enfoque moderno.

Es decir, que la definición de un agente inteligente sería para nosotros:

Cualquier entidad capaz de percibir a través de sensores el ambiente en el cual se desempeña y actuar inteligentemente sobre él con sus efectores

Y la definición entonces se complementa con lo que significaría actuar inteligentemente:

Emprender las acciones que le permitan de manera inmediata o a futuro obtener un beneficio en términos de uno o varios objetivos concretos externos o internos conservando su integridad física y lógica

La anterior definición parece más importante incluso que la de agente inteligente, en ésta tenemos los siguientes aspectos importantes a considerar: acciones, tiempo, objetivos, internalidad/externalidad e integridad. Es decir, nosotros consideramos que un agente inteligente debe estar descrito en términos de estos ejes además de la capacidad de percibir y actuar sobre un ambiente determinado. Valga la aclaración de que además del tiempo (o tal vez a consecuencia de él), algunos autores han visto la necesidad de considerar las capacidades de comunicación de los agentes (con sus respectivas implicaciones) así como la movilidad que pudieran necesitar como propiedades fundamentales de éstos.

4.1.2 Propiedades de un agente inteligente

Las propiedades fundamentales de un agente son además de las que se derivan directamente de la definición de agente de Russell y Norvig (capacidad de sentir el ambiente y actuar sobre él -reactividad-, así como influenciar y ser influenciado por

37

Page 38: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

el mismo -situacionalidad- 10, las siguientes:

4.1.2.1 La acciónUna acción puede ser la inferencia o la acción física, es decir, la acción tiene que ver con la capacidad de tomar decisiones y realizar algo con base en tales decisiones. Desde este punto de vista, la acción está relacionada con la manera conque el agente almacena su conocimiento, razona respecto a él y la forma conque esos razonamientos se pueden ejecutar finalmente en una acción física (o lógica). Algunos autores mencionan que la diferencia entre un programa convencional y un agente inteligente está en la persistencia de los planes, es decir, un agente debe intentar varias acciones para cumplir finalmente con sus planes y con sus metas11.

4.1.2.2 El tiempoLa inteligencia debe tener en cuenta el orden y el momento en el que pueden suceder las cosas, es decir, por lo menos tener en cuenta que el orden en el que suceden los eventos o se efectúan acciones afecta el resultado final: no es lo mismo reaccionar inmediatamente al evento “el piso se rompe” que reaccionar después de cumplir la meta “recoger los platos” o mejor aún, no es lo mismo “aspirar la casa” en la noche – cuando las personas duermen- que “aspirar la casa” en el día. El tiempo es necesario considerarlo por razones de orden y de que el resultado de varias acciones es dependiente de éste. El tiempo tiene implicaciones serias en las teorías de control.

4.1.2.3 Los objetivos o metas La acción inteligente debe estar ligada obligatoriamente a un objetivo y en el caso trivial a un objetivo trivial definido por el conocimiento integrado en el agente, es decir, una acción inteligente es disparada por la necesidad de cumplir una meta o lograr un objetivo y éstos pueden estar integrados en un programa o pueden ser dinámicamente compuestos por la propia inferencia del sistema, evidentemente es preferible la segunda opción porque los programas tradicionales son equivalentes

10 THANGARAJAH, John; PADGHAM ,Lin; HARLAND, James. Representation and Reasoning for Goals in BDI Agents, 2001.11 Ibid.

38

Page 39: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

a un agente cuyo conocimiento está estrictamente en su programa, es decir, su inteligencia está en el programador que lo hizo.

4.1.2.4 Internalidad/externalidadLos objetivos o estímulos que tenga un agente para actuar o pensar pueden ser obtenidos de su conocimiento interno, bien sea a través de conocimiento incorporado inicialmente o adquirido a través de acciones efectuadas anteriormente al momento de la decisión o puede ser ordenado externamente por otro agente externo o por el ambiente. Un agente que no incorpore la capacidad de obedecer órdenes (así las pueda objetar) o no reaccione mínimamente cuando todavía no tiene ninguna experiencia no sería inteligente. Esta característica, está relacionada con la autonomía que todos los autores mencionan como característica fundamental de cualquier agente, así como con las capacidades de comunicación, dado que es necesario que el agente responda a órdenes bien sea humanas o de otros agentes y es también necesario que las órdenes permitan que el agente busque información adicional necesaria para llevar a cabo la orden con relativa autonomía.

4.1.2.5 IntegridadPara considerar inteligente alguna entidad, es necesario que exista alguna medida o control de su integridad, tanto lógica -es decir, coherencia de sus representaciones y acciones- como física, es decir, su existencia -algo así como cierto grado de conciencia sobre sí- y capacidad de seguir alcanzando objetivos y ejecutando acciones que no pongan en riesgo su integridad física o que impliquen modificación de sus creencias para mantener su integridad lógica.

4.1.2.6 Otras propiedadesExisten otras propiedades usadas para la clasificación de los agentes pero nos parece innecesario definirlas extensivamente debido a que las anteriores propiedades nos bastan para establecer una base acerca del concepto de agente inteligente así como para los objetivos propuestos en el presente proyecto, sin embargo, y a manera de ilustración listaremos algunas de las clasificaciones hechas por otros autores para ser exploradas en otro aparte en caso de ser

39

Page 40: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

necesario. 12

Agentes con base en su reactividad:La reactividad ya la mencionamos anteriormente como parte de algunas de la propiedades descritas, sin embargo algunos autores clasifican los agentes según sean Reactivos, Proactivos o Sociales, es decir, que actúen basados principalmente en estímulos del ambiente o eventos, que busquen objetivos y los solucionen proactivamente, es decir, que creen planes y los ejecuten y finalmente agentes que tengan reglas simples para constituir una sociedad y cumplir sus objetivos como sociedad o simplemente interactuar con otros agentes y extraer información de los modelos o representaciones del mundo que tengan esos agentes.

Agentes con base en su autonomía, aprendizaje y cooperaciónSegún el papel que desempeñen frente a los agentes humanos, pueden existir Agentes interfaz, Agentes colaboradores, Agentes autónomos y Agentes de aprendizaje, que son respectivamente los que ocultan la complejidad y asisten a los humanos frente a una aplicación o dominio específico usando su capacidad de aprendizaje para recordar y reconocer el comportamiento de los humanos detrás de la interfaz; agentes capaces de colaborar entre ellos para aprender del ambiente y llevar a cabo sus metas; los que son capaces de tomar decisiones sin intervención humana; agentes que proponen o ayudan a recorrer un tema para aprender reconociendo los posibles problemas que surgen para el alumno.

Agentes según su movilidadDado un ambiente de ejecución con capacidades de interconexión, un agente puede decidir ejecutar su código sólo en la máquina local (Agentes estacionarios) o transferir su ejecución y estado a otras máquinas (Agentes móviles).

4.1.3 Agentes BDI

Uno de los más excitantes retos de los psicólogos e investigadores de la Inteligencia Artificial es entender y describir el comportamiento de los agentes

12 BOLÍVAR, Jennifer; ORREGO, Danny. Monografía análisis del aprovechamiento de los agentes móviles en aplicaciones diseñadas para redes, 2004.

40

Page 41: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

racionales. Ellos están interesados, en particular, en describir cómo son influenciados por el ambiente externo y cómo su estado mental guía sus acciones. Es por eso que durante los últimos años se ha desplegado un gran esfuerzo por desarrollar lenguajes para describir tales estados mentales. Una vez definido un lenguaje como este, sería posible especificar formalmente el comportamiento de agentes que se supone que actúan racionalmente, describir cómo deberían interactuar racionalmente con otros agentes artificiales o humanos y finalmente ayudar a los humanos a evaluar su razonamiento y decisiones sobre el ambiente externo.

Una teoría encaminada en ésta dirección y de fuerte aceptación entre los diseñadores de algunas de las plataformas más aceptadas hoy en día es la de los agentes basados en Creencias, Deseos (o metas) e Intenciones o BDI por sus siglas en inglés (Reliefs, Desires, Intentions). Dado que BDI es una teoría que ha venido evolucionando y que ahora es la base de las plataformas más populares para desarrollo de sistemas multiagente la describimos brevemente en éste aparte como un marco teórico del sistema bajo análisis.

BDI es una teoría cognitiva de comportamiento de toma de decisiones en agentes racionales y apunta a la descripción del comportamiento en toma de decisiones en términos de conceptos cognitivos. Las creencias y deseos se corresponden muy de cerca con conceptos usados en otras teorías alternativas de decisión y los conceptos de intenciones son propuestos como restricciones para las alternativas sobre las cuales el agente puede decidir.

BDI es también un marco de trabajo sobre el cual se han desarrollado plataformas de agentes inteligentes cuyo fundamento son intérpretes de un lenguaje lógico en términos de creencias, deseos e intenciones. Dicho lenguaje intenta especificar el comportamiento de agentes racionales a través de la descripción de sus estados mentales. BDI representa un lenguaje lógico cuya semántica captura las propiedades y relaciones establecidas entre creencias e intenciones.

La información parcial del estado del ambiente, el cual es representado por probabilidades cuantitativas en teoría clásica de la decisión y por orden cualitativo en teoría cualitativa de la decisión es ahora reducida a valores binarios. Ésta abstracción sobre la información acerca del estado del ambiente es llamado creencias en un agente que toma decisiones. Similarmente la información acerca de los objetivos, lo que está representado por utilidad cuantitativa en teoría clásica y por orden de preferencia cualitativo en teoría de decisiones, es llamado deseos. En la semántica de la lógica BDI esta representación binaria de las relaciones entre B, D, e I mapea cada mundo (en un instante determinado de tiempo) con un conjunto de mundos sin estructura.

41

Page 42: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Una interpretación M está definida como una tupla

M=( W, E, T, <, U, B, D, I, ?)

Donde W es un conjunto de mundos, E es un conjunto de tipos primitivos de eventos, T es un conjunto de puntos en el tiempo, < un operador binario entre puntos de tiempo, U es el universo de discurso, y ? es una aplicación de entidades de primer orden a elementos de U para cualquier mundo dado en un instante de tiempo. 13

Rao y Georgeff (autores originales de esta teoría) incluyeron un componente temporal. La lógica BDI es una extensión de la lógica de árbol computacional (CTL* -Computational Tree Logic), la cual es frecuentemente usada para modelar estructuras bifurcadas de tiempo con operadores modales epistémicos14 para creencias B, intenciones I y deseos D. Los operadores modales son usados para modelar el estado mental del agente que toma decisiones mientras que la estructura de tiempo es usada para modelar posibles eventos que pueden suceder en un instante dado de tiempo y determinan los mundos alternativos en ese instante.

4.1.4 Plataformas y metodologías de desarrollo

Debido a que nuestro estudio no es estrictamente teórico, es necesario también mencionar algunos hitos sucedidos durante los últimos lustros en términos prácticos que para nosotros se traducen en metodologías de ingeniería de software y arquitecturas tanto de sistemas físicos como de diseños o arquitectura de sistemas, es decir plataformas.

Los agentes inteligentes fueron durante algunos años entidades muy académicas, es decir, objetos de estudio para teorizar, estudiar y respaldar con análisis de

13 DASTANI, Mehdi; HULSTIJN, Joris; VAN DER TORRE, Leendert. How to decide what to do?, 2003.14 Un operador modal epistémico es un operador cuyo resultado depende temporalmente de lo

que ya se conoce de los operandos pero que se aplica con base en modalidades como

“posiblemente”, “necesariamente” o “de manera imposible”.

42

Page 43: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

sistemas, simulaciones y propuestas. Sobra hablar del significado del potencial comercial que ha surgido para las empresas y corporaciones en su presencia Web: nuevos servicios abiertos 24 horas los siete días de la semana sin festivos (reconocido como 24/7 en algunos países), información permanente y personalizada para los clientes (potenciales o efectivos), capacidades de interacción con los usuarios del sitio y más importante aún, potencial mundial de comercialización: el mundo es el nuevo alcance del mercado.

La evolución de estos sistemas ha hecho pasar a las empresas y la industria de desarrollo Web por varias etapas de las cuales la más conocida fue aquella de los años 90 en que cualquier negocio que se publicara en Internet esperaba tener un gran impacto y altas rentabilidades. La ilusión duró poco y las empresas después de algunos descalabros entendieron que publicar información simplemente no era justificación suficiente para los costos que acarreaba centrar su estrategia sólo en Web, que se necesitaba algo más. Por esta misma época, los agentes inteligentes, con una fuerte base teórica, diversa y sólida, convergieron con las nuevas tecnologías desarrolladas para solucionar la aparente falta de efectividad de los sitios Web mientras, en la trastienda, entidades comunitarias sin ánimo de lucro como la w3c y la IETF seguían discutiendo sobre las mejores formas, prácticas y tecnologías para estimular el uso de Internet. Tecnologías como XML, SOAP, Web Services y RSS fueron entrando en escena tímidamente para demostrar que la representación del conocimiento y los protocolos especiales para aplicaciones distribuidas eran una solución para hacer efectivas las inversiones en estos sistemas.

Los agentes inteligentes aparecieron entonces como el perfecto complemento de estas nuevas tecnologías: el agente inteligente como entidad autónoma y reactiva era el modelo perfecto de aplicación distribuida. fue esta necesidad de las grandes corporaciones de optimizar sus sistemas Web una de las tendencias más importantes que impulsaron la pequeña explosión de plataformas que vamos a describir, cada una acompañada de alguna clase de metodología de diseño y un conjunto de utilidades ligadas (casi siempre) con un lenguaje de preferencia. Cabe aquí destacar que la mayoría de los desarrollos de plataformas se basan en propuestas y experimentos de comunidades académicas que sustentan y proveen a esta incipiente industria de herramientas y elementos constitutivos para ensamblar sus plataformas, que surgen después de existir cierta cantidad de elementos comunes a este tema, como la interacción de agentes, el monitoreo de los mismos y la administración de recursos dentro de un ambiente de ejecución.

Una plataforma se define como un conjunto de tecnologías (hardware) y subsistemas (software) que proveen funcionalidades coherentes destinadas a un uso determinado a través de diferentes interfaces y especificaciones de patrones de uso para tales aplicaciones. Una plataforma de agentes inteligentes por lo

43

Page 44: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

tanto, es un conjunto de funcionalidades básicas sobre las cuales se accede al estado de los agentes y de sus comunicaciones, tanto para visualizarlos como para alterarlos (visualizar estados, monitorear procesos, reiniciar un agente o detener su ejecución). Fundamentalmente una plataforma de agentes debe asegurarse de la integridad de las comunicaciones, estados y conocimiento de los agentes que operan sobre ella y ofrecer utilidades de alto nivel para monitorear tales propiedades.

Una plataforma de agentes es entonces, puesto en términos fáciles, un conjunto de programas o utilidades y librerías escritas con el sólo propósito de facilitar la implementación y ejecución de sistemas de agentes. Ejemplos de plataformas son JADE (Java Agent DEvelopment Framework), que se define literalmente en su página de FAQs de la siguiente manera:

“Un marco de trabajo para desarrollar aplicaciones basadas en agentes en concordancia con las especificaciones de FIPA para sistemas multiagente interoperables.”15

Otra plataforma líder en este campo es JACK que cuenta con una metodología que soporta sus estructuras de programación en conceptos correspondientes de las fases de análisis y diseño, de tal manera que aplicando la metodología se puede llegar a un diseño cuyos objetos finales se corresponden con construcciones directas en el lenguaje de agentes propietario de JACK. JACK es definido por sus autores como:

“Un ambiente para la construcción, ejecución e integración de sistemas multiagente de nivel comercial usando una aproximación basada en componentes”16

Dentro de los componentes o elementos constitutivos que podemos identificar dentro de una plataforma tenemos fundamentalmente los siguientes: kernel, comunicaciones e Interfaz Gráfica de Usuario (GUI por sus siglas en inglés -Graphical User Interface). El kernel o núcleo es básicamente el conjunto de elementos de la plataforma que ejecutan las tareas fundamentales para el funcionamiento del sistema, como la creación de agentes, la migración de éstos entre plataformas y servicios de utilidad como el tratamiento de documentos especiales o el soporte de lenguajes declarativos; las comunicaciones de una plataforma están determinadas por las utilidades de ésta para transmitir

15 JADE. FAQ, 2006. http://jade.tilab.com/community-faq.htm16 The Agent Oriented Software Group. What is JACK?, 2006.

http://www.agent-software.com/shared/products/index.html

44

Page 45: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

información o para migrar un agente de una arquitectura física a otra, también incluye el soporte para lenguajes de comunicación; finalmente la GUI es simplemente una interfaz que permite realizar operaciones administrativas sobre la plataforma y observar su estado a través de ventanas, botones y todos los elementos clásicos visuales de las aplicaciones comunes en entornos gráficos como Windows, Macintosh, GNOME o KDE en GNU/Linux o CDE en Solaris.

En este marco general surge un nuevo término de la ingeniería de software acuñado durante los últimos años y que ahora goza de cierta popularidad aunque más bien por el amplio estudio de sus métodos que por su uso extendido. Estamos hablando de la Ingeniería de Software Orientada a Agentes (AOSE por sus siglas en inglés o AOP)17. Dentro de esta nueva forma de diseñar sistemas -acusada de ser la natural sucesora de la Programación Orientada a Objetos- se reconocen dos tendencias mayores de marcos metodológicos basados en desarrollo de agentes e ingeniería del conocimiento. Basados en enfoques de arriba para abajo (top-down) y de abajo para arriba (bottom-up) refiriéndonos al nivel de abstracción, es decir, del alto nivel al bajo nivel y del bajo nivel al alto nivel respectivamente. Tenemos como ejemplo del primer marco metodológico a los agentes basados en Creencias, Deseos e Intenciones (BDI por sus siglas en inglés), ya mencionado anteriormente y considerado un enfoque basado en desarrollo de agentes. Del segundo marco metodológico (basado en ingeniería del conocimiento) sólo tenemos como ejemplo popular la metodología Cassiopea que se basa en la definición de roles y comportamientos, y sus interrelaciones. Para el primer marco metodológico se tiene como base teórica respectivamente la lógica del modelo BDI desarrollada por Rao y Georgeff y para el segundo la lógica basada en la teoría de la intención desarrollada por Cohen-Levesque18.

17 DONCHEVA, Radi. Agent Oriented Software Engineering (AOSE) : An Introduction, 2001.18 Ibid.

45

Page 46: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Para más ilustración sobre la explosión de metodologías ver la Figura 2, en la que se muestra una genealogía de metodologías. En dicha figura vemos como raíces la Orientación a Objetos (OO), la Ingeniería de Requerimientos (RE: Requirments Engineering), la Ingeniería de conocimiento (KE: Knowledge Engineering) y finalmente un grueso de experiencias dispersas denotadas en el diagrama como P 19.

4.1.4.1 Metodología GAIAGAIA es una metodología de desarrollo de software, cuya intención es llevar sistemáticamente al diseñador desde una declaración de requerimientos hasta un diseño suficientemente detallado como para implementarse directamente. En GAIA la recolección de requisitos es independiente del paradigma usado para

19 SUDEIKAT, Jan; et al.. Evaluation of Agent–Oriented Software Methodologies – Examination of the Gap Between Modeling and Platform, 2005.

46

Figura 2. Genealogía de Metodologías

Page 47: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

análisis y diseño. GAIA permite que el ingeniero o analista incremente el nivel de detalle partiendo de conceptos abstractos como roles (o papeles), permisos, responsabilidades, protocolos, actividades, propiedades vitales y propiedades de seguridad. Ejemplos de los conceptos más concretos a los que hace referencia la metodología son tipos de agentes, servicios y familiaridades (acquaintances en inglés).

El análisis y diseño en GAIA se compone principalmente de los modelos de roles, modelos de interacción, modelos de agentes, modelos de servicios y modelos de familiaridades o relaciones y tales etapas se desarrollan como de costumbre con modelos incrementalmente más detallados.

GAIA usa términos comunes con el análisis y diseño de metodologías Orientadas a Objetos, pero introduce conceptos inherentes a la programación orientada a agentes con el fin de que el ingeniero de software pueda entender y modelar sistemas complejos. En particular GAIA estimula al desarrollador a pensar el diseño de sistemas orientados a agentes como un proceso de diseño organizacional.

En ésta metodología, la fase de análisis se encarga de descubrir la estructura concreta del sistema con base en los conceptos abstractos mencionados y cómo éstos se relacionan entre sí. Es decir, durante el análisis, el ingeniero de software descubre y declara los elementos compositivos del sistema, roles, protocolos, responsabilidades, permisos, etc. y deja escritos los modelos de análisis necesarios para entender esta parte del desarrollo. El diseño sin embargo, no se corresponde con el diseño clásico al que estamos acostumbrados, es decir, el diseño en ésta metodología de desarrollo orientada a objetos no busca llegar al nivel de detalle necesario para implementar el sistema, sino, alcanzar el nivel de detalle necesario para que los modelos de diseño se conviertan en diseños suficientes para implementar el sistema en cualquier plataforma que se quiera. Es decir, el diseño en GAIA busca permitir que los modelos de análisis permitan la aplicación de las técnicas convencionales de diseño (incluidas las técnicas orientadas a objetos) para implementar finalmente el sistema 20.

4.1.4.2 Metodología MaSEExisten otras metodologías importantes como por ejemplo Multiagent Systems Engineering (MaSE). Esta metodología es similar en muchas cosas a las

20 WOOLDRIDGE, Michael; R. JENNINGS, Nicholas; KINNY, David. The Gaia Methodology for Agent-Oriented Analysis and Design, 2000.

47

Page 48: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

metodologías tradicionales pero especializada en el paradigma de agentes distribuidos, difiere especialmente en que el diseño se encarga de definir componentes generales del sistema antes que el sistema mismo. La metodología pasa por las etapas de diseño a nivel de dominio, diseño a nivel de agentes, diseño de componentes y diseño del sistema.

A pesar de las fuertes diferencias entre agentes y objetos, MaSE permite modelar agentes como Objetos activos, es decir, como un objeto con metas y un lenguaje de comunicación común. De lo anterior deriva que MaSE se construye sobre las técnicas tradicionales de análisis y diseño, pero adicionándole características y cambiando un poco la semántica para capturar elementos de proactividad y comportamiento cooperativo. 21

La fase de diseño a nivel de dominio se compone de los siguientes pasos:1. Identificar los tipos de agentes (En este paso se acostumbra usar modelamiento

de papeles -roles-, casos de uso y diagramas de colaboración).2. Identificar las posibles interacciones entre estos tipos de agentes.3. Definir los protocolos de coordinación entre ellos para cada tipo de interacción.

El diseño a nivel de agentes define la arquitectura interna de los agentes y generalmente consiste en los siguientes pasos:1. Corresponder acciones identificadas en conversaciones de agentes con

componentes internos.2. Definir estructuras de datos identificadas en conversaciones de agentes. Estas

estructuras representan datos de entrada y salida para el agente.3. Definir estructuras de datos adicionales internas al agente que representan

flujos de datos entre componentes de la arquitectura del agente.

Una vez definida la arquitectura de los agentes, el paso siguiente es definir los componentes de los mismos. MaSE usa un lenguaje de especificación llamado AgDL (Agent Definition Language) que se usa entre otras cosas para definir los componentes que se diseñan desde cero, dado que la idea de MaSE es reutilizar componentes existentes de la plataforma usada, por ejemplo usando JavaBeans. Componentes típicos que encontramos para los agentes incluyen planificadores, algoritmos de búsqueda, mecanismos de inferencia y algoritmos de aprendizaje.

Finalmente el diseño del sistema se compone típicamente de los siguientes pasos:1. Seleccionar los tipos de agentes que se van a necesitar.2. Determinar el número de agentes de cada tipo y definir en cada caso:

a) El lugar físico o dirección de cada agente.b) Los tipos de conversaciones que cada agente podrá llevar a cabo.

21 DELOACH, Scott. Op. Cit.

48

Page 49: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

c) Cualquier otro parámetro definido en el dominio.

Si bien técnicamente no hace parte del diseño del sistema, una vez que está definido el sistema se pueden verificar ciertas propiedades de interés como seguridad y vitalidad (liveness). La definición de un sistema requiere un conjunto de herramientas formales que permitan el reuso de componentes existentes, sintetizar nuevos componentes y analizar propiedades del sistema. MaSE usa AgML -Agent Modelling Language- para especificar el diseño, específicamente el despliegue, en la fase de diseño del sistema y AgDL -Agent Description Language- para especificar el diseño de componentes. Éstos dos lenguajes se combinan para proveer una definición formal.

MaSE no se vincula a ninguna plataforma en particular y tiene soporte de herramientas de agentes con soporte automático para transformar modelos de análisis en constructores de implementación llamada AgentTool22,23.

4.1.4.3 Metodología TroposTROPOS es una metodología para construir sistemas de software orientados a agentes y permite explotar toda su flexibilidad por medio de los lenguajes de programación, especialmente Java; posee en sí nociones mentales que se basan en una arquitectura de agentes fundamentada en el marco de creencias, deseos e intenciones (Beliefs-Desires-Intentions BDI en Inglés). Tropos se basa en dos ideas claves: la noción de agente y todas las nociones mentales asociadas con el concepto (metas y planes por ejemplo), que son usadas en todas las fases de desarrollo, desde el análisis temprano hasta la implementación misma. La segunda idea clave es que Tropos cubre incluso las más tempranas fases de recolección y análisis de requerimientos, lo que permite mejor comprensión del ambiente en el cual el software va a operar y las clases de interacciones que sucederán entre agentes de software y humanos.

TROPOS interactúa con una plataforma denominada JACK la cual posee constructores que se corresponden directamente con nociones de diseño de TROPOS y este a su vez provee heurísticas de mapas conceptuales BDI para la plataforma JACK.

Las fortalezas de Tropos son en resumen las siguientes:

22 Multiagent and cooperative robotics lab. The AgentTool project, 2006.

Http://macr.cis.ksu.edu/projects/agentTool/agentool.htm

23 DELOACH, Scott A.. Multiagent Systems Engineering: A Methodology And Language for Designing Agent Systems. Air Force Institute of Technology, 1999.

49

Page 50: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

1. La noción del agente sobre si y todas sus otras nociones mentales relacionadas con su entorno (metas convenientes para él y planes para lograrlas), que son usadas durante toda la vida de desarrollo del software, desde su análisis temprano del entorno hasta su aplicación a realizar.

2. Las fases de inicio tempranas del Análisis de Requerimientos brindan un entendimiento profundo del ambiente donde el sistema como software puede operar; qué clases de interacciones ocurrirán entre él y otros tipos de agentes de software ó inclusive otros tipos de agentes como lo son los seres humanos.

TROPOS se basa en la idea mapear un sistema para sí mismo; su mundo es su ambiente, es incrementado, refinado y extendido por todas las percepciones, prevé una interfaz común a varias actividades de desarrollo históricas como una base de documentación y realizar evolución de software sobre sí.

El lenguaje TROPOS para modelado conceptual esta formalizado en un metamodelo descrito con un conjunto de diagramas UML, su metodología se compone de cinco fases que se inician con el análisis de requerimientos tempranos y tardíos; el diseño arquitectónico, el diseño detallado y la implementación.

Las fases I y II se conocen como el Análisis de Requerimientos tempranos y tardíos respectivamente y tratan de operar de un modo conceptual y metodológico al más alto nivel; muchas de las ideas introducidas en la fase de análisis de requerimientos tempranos son constantemente usadas durante la fase de requerimientos tardíos.

Los ingenieros identifican el ámbito del dominio del problema como los actores sociales que dependen el uno del otro para llevar a cabo sus metas, buscando así lograr con buen desempeño sus planes.

Análisis de requerimientos tempranosSe identifica el campo del dominio y se modelan los actores sociales, cómo dependen el uno del otro, definiendo claramente el estado del quién al lado del porqué, el cuándo y el cómo, en todas las funcionalidades del sistema verificando por último cómo la implementación final se relaciona con las necesidades iniciales.

Las intenciones son modeladas como metas, las cuales a través de un análisis orientado a metas se descomponen en submetas que eventualmente soportarán la evaluación de alternativas.

Análisis de requerimientos tardíosEl modelo conceptual es extendido incluyendo nuevos actores los cuales representan el sistema y nuevas dependencias con otros actores del ambiente, las

50

Page 51: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

cuales definen los requerimientos funcionales y no funcionales del sistema en sí.

Diseño de la arquitecturaEsta etapa define la arquitectura general del sistema en términos de subsistemas interconectados a través de flujos de datos y control. Los subsistemas son representados en el modelo como actores y las interconexiones de datos o control como dependencias. El diseño de la arquitectura también define una correspondencia de actores del sistema a un conjunto de agentes de software cada uno caracterizado por capacidades específicas.

Diseño detalladoEl diseño detallado trata de la especificación de las capacidades y las interacciones. Para la etapa del diseño detallado se debe tener una plataforma elegida, de tal manera que los protocolos de interacción y las capacidades de los agentes se correspondan con las estructuras sintácticas de dicha plataforma, que es uno de los fines principales de ésta metodología: llevar el diseño hasta la unión con la implementación a través de esta correspondencia. La documentación de Tropos indica que ésta metodología es independiente de la plataforma elegida para la implementación del sistema en diseño, ésta es la fase de la metodología responsable de ésta característica ya que en ésta fase se hacen corresponder las estructuras de diseño descubiertas en las fases anteriores (protocolos de comunicación, capacidades de agentes, tipos de agentes, etc.) con las estructuras y conceptos de implementación que soporta la plataforma a usar.

Tropos está vinculado con varias utilidades y programas completos para el desarrollo de MASs (Multi-Agent Systems o sistemas multiagente) y con la plataforma de desarrollo JACK. Tanto sus utilidades como el uso de JACK (todo se descarga como paquete completo de Internet) son liberadas bajo licenciamiento privativo (ver glosario) y son un producto comercial de la casa de Software especializado en agentes inteligentes Agent Oriented Software Group (AOS) 24.

ImplementaciónLa implementación se sigue paso por paso de una manera natural a la especificación del diseño detallado, dado que éste se desarrolla correspondiendo los conceptos de diseño (agentes, interacciones y capacidades) con construcciones y conceptos específicos de la plataforma seleccionada.

24 The agent oriented software group. JACK Intelligent agents, software agent system, 2006.

http://www.agent-software.com/shared/home/

51

Page 52: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.1.4.4 Plataforma JADEJADE es una plataforma de agentes inteligentes enteramente implementada en JAVA. JADE busca simplificar la implementación de MASs a través de un middleware (Software intermediario, ver glosario) que reclama ajustarse a las especificaciones de FIPA y a través de un conjunto de herramientas que soportan las tareas de depuración y despliegue. La plataforma de agentes puede estar distribuida a través de múltiples máquinas que no necesitan tener ni siquiera el mismo sistema operativo (ya que se ejecutan en la máquina virtual de java) y la configuración puede ser controlada a través de una interfaz gráfica remota e incluso puede ser cambiada en tiempo de ejecución moviendo agentes de una máquina a otra. JADE requiere mínimamente la versión 1.4 del entorno de ejecución Java (JRE -Java Runtime Environment) o del kit de desarrollo Java (JDK – Java Development Kit).

Jade es una plataforma liberada bajo la licencia LGPL (Lesser GPL, ver entrada del glosario). Tiene una arquitectura de comunicaciones que ofrece una mensajería eficiente y flexible, ya que Jade maneja una cola de mensajes ACL (Agent Communication Language – Lenguaje de Comunicación de Agentes) privada para cada agente que puede ser leída a través de varios modos, ha implementado el modelo completo propuesto por FIPA y todos sus elementos han sido claramente distinguidos y completamente integrados. Jade ha implementado utilidades para el manejo de ontologías, lenguajes de contenido definidos por el usuario y otras utilidades que permiten el intercambio de conocimiento entre agentes, además Jade se integra con JESS (Java Expert System Shell), un intérprete de comandos (shell) de java para un lenguaje muy similar a CLIPS que permite explotar sus capacidades de razonamiento de manera directa o a través de guiones. Jade se integra también con librerías LEAP que permiten el uso de Java en dispositivos portátiles.

Mientras la plataforma aparece para el sistema como una sola entidad, el sistema es un sistema distribuido en sí mismo, repartido en múltiples máquinas con alguna de ellas actuando como interfaz general o front end y ejecutando el Sistema de administración (AMS – Agent Management System ) y el servicio de directorio (DF – Directory Facilitator). Un sistema JADE está compuesto por uno o varios contenedores de agentes viviendo en una máquina virtual diferente y dando tiempo de ejecución a algunos agentes. Cada ambiente de ejecución provee un sistema de mensajería eficiente y flexible, eligiendo transparentemente el mejor medio de transporte para los mensajes, cumpliendo con los estándares propuestos por FIPA para la mensajería inter-plataforma ( es decir, entre plataformas ) y usando mecanismos propietarios para la mensajería intra-plataforma ( es decir dentro del mismo ambiente de ejecución).

El modelo de ejecución de JADE está basado en el concepto de comportamiento

52

Page 53: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

(Behaviour) que intenta limitar la cantidad de hilos de ejecución y que tiene sus raíces en lenguajes de actores. De acuerdo con el patrón de diseño de los objetos activos (Active Objects) cada agente ejecuta su propio hilo de ejecución con el fin de soportar la autonomía y en vez de limitar la cantidad de hilos de ejecución para un sistema de agentes, los comportamientos se ejecutan en un hilo cooperativo único. De esta manera, JADE ejecuta un modelo de ejecución de hilo por agente con planificación cooperativa entre agentes.

Además de la librería de programación de agentes y el ambiente de ejecución, JADE incluye herramientas y un sistema de administración del sistema de agentes que son a su vez agentes FIPA, y que sólo se basan en JADE y su AMS. La consola de administración general se llama RMA (Remote Management Agent), ésta recolecta información de la plataforma y ejecuta comandos de la interfaz gráfica para modificar el estado de la plataforma, es decir, crear agentes, destruirlos, monitorearlos, etc.. JADE provee un mecanismo de prueba llamado Agente Tonto o Dummy Agent, que permite hacer pruebas de modelos de mensajería antes de incorporarlos a un sistema real o hacer pruebas y monitorización de agentes en tiempo real.

4.1.4.5 Plataforma JACKJACK es una plataforma de agentes inteligentes implementada en Java que permite la construcción, ejecución e integración de sistemas multiagente basándose en un enfoque orientado a componentes cuyo origen yace en la investigación y desarrollo realizado por el equipo del Agent Oriented Software Group, compañía con base en Estados Unidos, Reino Unido y Australia principalmente.

El lenguaje de agentes JACK es un lenguaje que extiende las capacidades de Java con conceptos orientados a agentes como agentes inteligentes, capacidades, eventos, planes, bases de conocimiento y administración de recursos y concurrencia.

JACK está compuesto por tres elementos principales: Un lenguaje de especificación de agentes, un compilador de ese lenguaje y un Kernel. El lenguaje de agentes JACK es un lenguaje para describir un sistema de agentes, extendiendo la sintaxis clásica de Java con estructuras correspondientes a conceptos orientados a agentes.

El compilador para el lenguaje de especificación es un preprocesador que convierte las estructuras de extensión en estructuras puras de Java, éstas extensiones se manejan como componentes conectables o plugins y son

53

Page 54: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

fuertemente tipados, lo que minimiza la conversión implícita de tipos y la posibilidad de error y asegura una compilación más eficiente. El kernel de JACK es un conjunto de clases que proveen al sistema de la funcionalidad de orientación a agentes, muchas de ellas se ejecutan transparentemente y soportan la infraestructura y funcionalidad subyacente que los agentes requieren y otras son usadas explícitamente en agentes escritos para JACK, heredadas y suplementadas con retrollamadas para proveer sus propias funcionalidades.

4.1.5 Representación de los datos en Internet y Web semántica

La Web Semántica es una extensión de la Web actual que busca que los computadores o dispositivos habilitados para accederla sepan el significado de los documentos o de la información que transporta. El origen del término parece remontarse a la conferencia XML Conference 2000, donde Tim Berners Lee, diseñador del actual esquema de Web basado en los protocolos HTTP y HTML, propone una serie de elementos en un esquema de pila en el que cada elemento constituye una tecnología que complementa al modelo en general. A continuación veremos el diagrama expuesto por Tim Berners Lee en la conferencia mencionada e iremos explicando cada uno de los elementos y qué papel juegan en este modelo.

54

Figura 3. Pila de Web semántica

Page 55: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.1.5.1 Unicode: codificación universal de textoUnicode es un conjunto o formato “universal” de codificación para texto y caracteres escritos, es decir, en él se especifican todos los caracteres de texto escrito de los principales idiomas y lenguajes del mundo. Él especifica una forma consistente de intercambiar texto multilengua y es la base para software verdaderamente global. Unicode es la codificación por defecto de HTML y XML y eso lo hace un robusto apuntalamiento para la www y el nuevo estilo de negocios en red.

Las metas de Unicode apuntan a la estabilidad de los datos en vez de la proliferación de conjuntos de caracteres, mayor interoperabilidad global e intercambio de datos, software simplificado y costos de desarrollo reducidos.

Unicode tiene dos presentaciones, en 16 bits y en 8 bits para facilitar su uso en ambientes ASCII. La especificación es un superconjunto de todos los juegos de caracteres en uso hoy en día25.

4.1.5.2 URI: identificador uniforme de recursosURI es una cadena compacta de caracteres que identifica un recurso físico o abstracto con una sintaxis simple y extendible como los URL que vemos a diario26.

La uniformidad según el rfc3986 proviene de la propiedad que tienen estos identificadores de permitir el uso de diferentes tipos de URI dentro de un mismo contexto con la misma interpretación o semántica, lo que permite la introducción de nuevos tipos de identificadores sin impactar en el uso de los tipos ya en uso, así como el reuso de los identificadores en múltiples contextos.

Dentro de la especificación la palabra recurso no está limitada a recursos físicos ni alcanzables, es decir, un recurso también puede ser un ser humano, corporaciones, libros o cualquier objeto que exista en el mundo. Un recurso en el sentido usado por la especificación tampoco es simplemente entidades concretas como páginas Web, imágenes, archivos o los objetos no alcanzables por Internet mencionados anteriormente (seres humanos, corporaciones, objetos del mundo real) sino que también pueden ser conceptos abstractos como operadores y

25 Unicode home page. Unicode 3.0, Chapter 1, 2005. Http://www.unicode.org/book/uc20ch1.html

26 RFC.net. Uniform Resource Identifier (URI): Generis Syntax, 2005. http://rfc.net/rfc3986.html

55

Page 56: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

operandos en una operación matemática, tipos de relaciones (mayor que, padre, empleado, etc.) o valores numéricos no necesariamente concretos como infinito, indeterminado y también los concretos como uno o cero, esta idea lleva la identificación mucho más allá de los símbolos, nuestros conceptos podrían ser unificados globalmente (un único identificador para el concepto de infinito o no numérico -NIL- ) pero también tendríamos la posibilidad de crear nuestras variantes personalizadas de tales conceptos.

Los URIs pueden ser clasificados principalmente como Nombres o Localizadores (URN o URL). La diferencia entre ellos radica en que los URN también acogen un estándar de nomenclatura más bien histórica que está diseñada para que el recurso siga siendo unívocamente identificado globalmente y persista incluso cuando el recurso ha dejado de existir o no es accesible, sin embargo este nombre se ha usado indistintamente con el término URI. Los URL son un subconjunto de los URIs que incluyen el método primario para alcanzar el recurso, por ejemplo un identificador de la red en la que se encuentra localizado físicamente el recurso. Es necesario aclarar que la especificación dice claramente que aunque históricamente se ha usado el término URN, éste término junto con URL es más restrictivo y por lo tanto se debe usar en su respectivo contexto y no confundir con los URIs.

La sintaxis de un URI comienza por un nombre de esquema, que se refiere a una especificación para la asignación de identificadores dentro del mismo, permitiendo un sistema de nomenclatura federado y extendible dentro del cual cada esquema permite la restricción sintáctica y semántica de cada identificador que él admite. En otras palabras, el esquema es un identificador o nombre para un método de identificar los recursos a los que él va a relacionar o nombrar. Es evidente el papel que los URIs juegan dentro del modelo de la Web Semántica, entendiendo ésta como un objetivo globalizado: el URI es una forma de identificar los objetos y conceptos de manera uniforme y extendible.

Ejemplos de URIs son: http://univirtual.utp.edu.co/ pgsql://usu:clave@TCP(localhost:5432)/bd urn:ietf:rfc:3986

En éstos ejemplos observamos la presencia de los nombres de esquema (http, pgsql y urn) y después de ellos los identificadores que se referencian (El sitio Web de Univirtual, los parámetros de conexión a una base de datos y un documento de especificación técnica de la IETF RFC3986).

56

Page 57: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.1.5.3 XML, NS y XMLSchemaPor encima de esta base globalizada de Unicode y URIs, encontramos XML que es un metalenguaje que nos permite definir estructuras de datos personalizadas, en especial estructuras para documentos y datos con nuestros propios propósitos y sintaxis, así como incorporar mecanismos de validación automatizada a través de DTDs (Document Type Definitions – Definición de tipo de Documento) o XMLSchema.

Un documento XML que contenga un repositorio de recetas puede tener una estructura como la siguiente:

<?xml version="1.0" encoding="UTF-8"?><colección> <descripción> Recetas para un tutorial de XML </descripción> <receta> <título>Pasta de pelo de Angel de Ajo con Filete Parmesano</título> <ingrediente nombre="Filete de Carne de Vaca" cantidad="1.5" unidad="libras"/> ... <preparación> <paso> Precalentar el horno a 350 Grados Farenheit(175 C). </paso> ... </preparación> <comentario>

Prepare la carne con antelación y refrigere en la noche, el ácido de la salsa de tomate ... </comentario> <nutrición calorías="1167" grasa="23" carbohidratos="45" proteínas="32"/> </receta> <receta> ... </receta> ...</colección>

En el que vemos claramente que cada elemento constitutivo de una receta (al menos para el autor de este documento) está señalado dentro de una etiqueta de la forma “<nombre> Contenido </nombre>” o “<nombre parametro='' />” y en especial obsérvese el uso de tildes con toda libertad, dado que la codificación por defecto es UNICODE. Este es sólo un ejemplo ilustrativo que puede ser validado solamente respecto a la sintaxis del XML pero no de la estructura de la receta como documento pero nos da una idea de la claridad que puede tener un

57

Page 58: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

documento de este tipo.

XML no representa una forma de expresar la semántica de los documentos, pero permite dos cosas importantes en el modelo de Web Semántica: la autodescripción y la independencia de la estructura del documento respecto a la presentación final del mismo, que ha sido un gran problema en la Web (y uno de los principales objetos de desarrollo y estudio en la representación del conocimiento en este contexto). La presentación unificada de documentos en formatos XML sería un avance debido a la capacidad de éstos de proveer su descripción y sus mecanismos de validación estándar, así como una sintaxis mínima unificada, junto con el uso de espacios de nombres (NS: Name Spaces) para separar la forma en que se presenta la información contenida y una serie de aplicaciones derivadas de XML mismo que mejoran las capacidades de representación del lenguaje. Lo anterior permitiría a los agentes validar sin mucho esfuerzo si un documento está bien formado, es decir, si su estructura es consistente con su propósito debido a su capacidad de autodescribirse y presentar métodos automáticos de validación (incluso con validadores implementados en hardware embebidos en los dispositivos) antes de empezar a procesar el contenido mismo. Otra cualidad de XML es que la información de un documento en éste formato puede ser presentada finalmente en cualquier formato necesario ya que el documento tiene exclusivamente los datos y la estructura de los mismos independientemente de la manera de mostrarlos o presentarlos, por ejemplo, a partir del mismo documento XML (cuya estructura ya haya sido validada) un agente puede generar una página HTML (o XHTML) y así mismo, éste agente o programa puede usar el mismo documento para generar un PDF o un documento en formato de Procesador de texto (Como Open Office de Sun Microsystems o MS Word).

Eduardo Peis Redondo, Yusef Hassan, Enrique Herrera y Juan Carlos Herrera , de la Universidad de Granada escriben al respecto:

“Una migración progresiva de HTML a lenguajes de etiquetado XML supondría un gran avance [...] para que la Web pase a ser de un espacio hiperdocumental a un espacio hiperconceptual”27

XML Schema es un método de validación de la estructura y la sintaxis de un documento XML, es decir, XMLSchema permite especificar qué parámetros puede tener una etiqueta y de qué tipos, así como los contenidos de cierto elemento y el orden de anidamiento o secuencia que conforman un documento bien escrito. XML a través de una referencia comunica su documento de validación (que puede

27 PEIS REDONDO, Eduardo; HASSAN MONTERO, Yusef; Ontologías, metadatos y agentes: recuperación “semántica” de la información.

58

Page 59: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

ser un DTD o un XMLSchema) y con eso es posible saber de manera automática si el documento es consistente o inválido por su estructura, por ejemplo que un elemento que no puede ser vacío lo está, o que un elemento que se supone que debe tener números contiene letras o mejor aún que un elemento está anidado en otro que no puede tener subelemementos. Estas capacidades permiten la creación de estructuras de datos adecuadas a nuestras necesidades y la validación centralizada de las mismas.

4.1.5.4 RDF y RDFSchemaRDF (Resource Description Framework) es un marco de trabajo para la representación de información en Internet (diferente de XML que especifica son estructuras de datos y los datos mismos). Tiene una sintaxis abstracta que refleja un modelo de datos simple basado en grafos dirigidos y una semántica formal con una noción rigurosamente definida de consecuenciación (entailment) permtiendo una base para deducciones automáticas bien fundadas con base en datos RDF.

El desarrollo de RDF ha sido motivado por las siguientes necesidades: metadatos Web (información acerca de las características de cierta información o ciertos datos que no son parte de la información misma -clasificación de contenidos, preferencias personales, descripción de capacidades-), aplicaciones de modelos de datos abiertos (descripción de capacidades, descripción de procesos organizacionales, anotación de recursos Web), hacer posible el uso de información procesable por máquinas en contextos diferentes a aquellos en los cuales fue creada de manera que lo haga a la escala de Internet así como actualmente lo hace el hipertexto, cooperación entre aplicaciones, procesamiento automático de información Web por agentes de software, de esta manera RDF provee una lengua franca para estas aplicaciones. Como metas RDF busca:

Tener un modelo de datos simple. Tener una semántica formal e inferencia demostrable. Usar un vocabulario extensivo basado en URIs Usar una sintaxis basada en XML Soportar el uso de tipos de datos XMLSchema. Permitir a cualquier persona hacer afirmaciones sobre cualquier recurso.

Un documento RDF es un conjunto de tripletas ordenadas compuestas cada una por un sujeto, un predicado o propiedad y un objeto como indica el grafo dirigido de la siguiente figura.

59

Page 60: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Figura 4 Grafo dirigido

Una tripleta de éstas representa una relación entre el sujeto y el objeto considerados nodos, teniendo en cuenta que el predicado o propiedad siempre se aplica sobre el objeto. En este sentido una tripleta representa una relación entre el sujeto y el objeto y un documento RDF se puede considerar como una conjunción lógica de las aserciones o afirmaciones contenidas en el mismo, es decir, que lo que afirma un documento RDF es el conjunto de las afirmaciones que hace cada tripleta unidas por una 'y' lógica, por ejemplo, si una tripleta dice (Carro,tiene,llantas) y la otra dice (yo,tengo,llantas) el documento que contiene estas afirmaciones dice que el carro tiene llantas y que yo tengo llantas, no nos podemos dejar engañar por el ejemplo: en ninguna parte del documento citado se dice que la relación tener llantas implica ser un carro, este tipo de restricciones se especifican aparte del documento RDF en un documento RDFS. RDF explota la uniformidad de los URIs usándolos como identificadores de cualquiera de las partes de la tripleta, es decir, cualquier parte de la tripleta puede ser un URI por ejemplo un nodo puede ser un URI identificando el sujeto, el objeto o la propiedad o relación que ellos sostienen. Finalmente la sintaxis abstracta de RDF permite también que una tripleta RDF sea un nodo de otra tripleta, es decir, que una afirmación sostenga una relación con otra afirmación.

RDF no usa tipos de datos directamente, el único tipo de dato directo definido por RDF es XMLLiteral que es usado para incrustar expresiones XML dentro de un documento RDF. Para la definición de tipos de datos se referencia a sus tipos externamente identificados por URIs. Se espera que los tipos de datos definidos en XML Schema sean ampliamente usados para este propósito. RDF no provee métodos para la definición de nuevos tipos de datos, pero el uso de tipos de datos XML Schema provee un marco de trabajo adecuado para su uso en RDF.

Finalmente, las ideas sobre significado e inferencia en RDF están soportadas sobre el concepto formal de consecuenciación (entailment)28, que dicho en términos simples significa que dada cierta expresión RDF A esta implica B si todas

28 Www Consortium. RDF semantics, 2004.

http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#rdf_entail

60

Page 61: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

las posibles combinaciones de cosas en el mundo que hacen A verdadera también hacen B verdadera. Es decir, que si se puede asumir o demostrar la veracidad de A, entonces se puede inferir la veracidad de B. RDF sin embargo proporciona una base simplemente descriptiva29, es decir, no es una base aceptable para las necesidades de operación de la Web semántica, debido a que no permite declarar axiomas y su capacidad de expresión sólo permite inferencia sobre la herencia de propiedades, además de que la propiedad de reificación en virtud de la cual una aserción puede ser parte de otra aserción hace difícil el razonamiento inferencial30.

El lenguaje de descripción de vocabulario de RDF se llama RDF Schema y es una extensión semántica de RDF. Provee de mecanismos para la descripción de grupos de recursos relacionados y las relaciones entre estos grupos, es decir, RDF Schema ejerce un control semántico sobre los documentos RDF, por ejemplo, retomando la idea de las tripletas RDF -sujeto, predicado, objeto- RDF Schema valida que en una afirmación donde el sujeto es “carné de conducir” y el predicado es “nombre”, el objeto debería ser el nombre de una persona y no el modelo de un automóvil.

El sistema de clases y propiedades de RDF Schema es similar en muchas cosas a los sistemas orientados a objetos, pero con una diferencia fundamental: RDF Schema no define las propiedades partiendo de los objetos, es decir, definiendo los objetos y las propiedades que pueden tener sus instancias sino que define las propiedades desde el punto de vista de los conjuntos de objetos que las pueden incluir, o sea, definiendo las propiedades en términos de las clases de recursos a las cuales se pueden aplicar. Por ejemplo, en RDF Schema se podría definir la propiedad eg:Autor como una propiedad cuyo dominio es eg:Documento y cuyo rango es eg:Persona, mientras que en lenguajes orientados a objetos se definiría una clase eg:Libro con un atributo eg:Autor de tipo eg:Persona. Usando el estilo RDF es fácil para otros definir propiedades adicionales cuyo dominio sea eg:Documento y cuyo rango sea eg:Persona, sin necesidad de reescribir la descripción original de estas clases. Uno de los beneficios de este método centrado en las propiedades es que permite a cualquiera extender la descripción de recursos existentes, uno de los principios fundamentales de la arquitectura abierta de la Web.

RDF Schema proporciona mecanismos para validar clases de recursos, objetos, propiedades definidos en RDF por medio de relaciones entre las propiedades y los

29 Www Consortium. Resource Description Framework (RDF): Concepts and abstract syntax,

2004. http://www.w3.org/TR/rdf-concepts/

30 PEIS REDONDO, Eduardo, Op. cit.

61

Page 62: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

objetos y restricciones de dominio y rango sobre las mismas 31. Los documentos RDF suelen ser denominados (o contener la información) de las instancias y los documentos RDFS suelen ser denominados ( o contener la información) de las clases y sus relaciones.

4.1.5.5 Vocabularios y ontologíasLas Ontologías han sido usadas como modelo de representación de conocimiento en Inteligencia Artificial. Según la definición ofrecida por Gruber (1993) y posteriormente extendida por Studer, Benjamins y Fensel (1998)32 una Ontología es

“una especificación explícita y formal de una conceptualización”

Más concretamente una ontología es un intento de formular un esquema conceptual sobre un dominio de conocimiento de una manera rigurosa y exhaustiva; es típicamente una estructura jerárquica de entidades o conceptos y sus relaciones, así como ciertas reglas de validación o reglas lógicas en dicho dominio como axiomas o reglas de inferencia. La interpretación que nosotros damos a las ontologías es una forma de restringir el alcance de algún dominio de conocimiento declarando sus términos y restricciones semánticas, y a su vez limitar la lógica aplicable a dicho dominio.

Las ontologías se pueden clasificar según su especialización o alcance, es decir, hay algunas de ellas llamadas Ontologías Base o Fundamentales (Foundation Ontologies) y otras llamadas ontologías de dominio. Las primeras tienen la intención de servir de base y permitir el uso en entornos más generalizados y de uso común, existen autores que opinan que debido al valor comercial de estas ontologías en un futuro va a existir una competencia por cuáles son las más usadas o las más populares, de hecho no es difícil esperar que nunca existan ontologías fundamentales unificadas, así como no hay ideas filosóficas o políticas unificadas, sin embargo existen organizaciones intentando definir estándares para dominios específicos, por ejemplo el PSL -Process Specification Language- creado por la NIST -National Institute for Standards and Technology- para la definición de procesos de manufactura industriales en la cual participan entidades como ISO TC 184, división de la ISO para automatización e integración de

31 Www consortium. RDF Vocabulary Description Language 1.0: RDF Schema, 2004.

http://www.w3.org/TR/rdf-schema/

32 BENJAMINS, V. Richards; FENSEL, Dieter; GÓMEZ PÉREZ, Asunción, Knowledge

Management through Ontologies, 1998.

62

Page 63: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

procesos industriales. Éste lenguaje está compuesto por un léxico, una ontología y una gramática33.

Ya existen muchas propuestas de ontologías fundamentales como OpenCyc y ResearchCyc34 basadas en un sistema propietario con su propio lenguaje de ontologías basado en cálculo de predicados de primer orden con extensiones para orden superior, desarrollado desde 1985. Otra propuesta es WordNet, diseñada como red semántica y basada en principios psicolinguísticos. Ésta última ha sido ampliamente usada en investigación de procesamiento de lenguaje natural a pesar de no estar axiomatizada todavía. Otras propuestas son SUMO (Suggested Upper Merged Ontology) de la IEEE y General Formal Ontology. Es importante anotar que en una presentación de Tim Berners-Lee en el BioIT World 200535

recomienda que el camino a seguir es componer ontologías especializadas antes de las ontologías generales o de uso común y siempre acogerse a las propuestas existentes tanto como se pueda antes de crear ontologías propias.

SHOE -Simple HTML Ontology Extensions-, diseñado antes de que se acuñara el término "Web Semántica", fue el primer lenguaje de etiquetado para definir ontologías desarrollado para su uso en la Web. Carece de negación y de disyunciones pero permite definir reglas de inferencia en forma de cláusulas de Horn.

OIL -Ontology Inference Layer- trabajo derivado de Shoe y primero basado en estándares de la W3C desarrollado a partir de RDFS a manera de extensión. OIL hereda su representación del conocimiento de la lógica descriptiva (basada en axiomas) y de los sistemas basados en marcos (taxonomía de clases y atributos).

DAML -DARPA's Agent Markup Language-, es el proyecto de lenguaje de ontologías del Departamento de Defensa de los Estados Unidos. Este equipo de trabajo unió luego esfuerzos con el grupo desarrollador de OIL para crear DAML+OIL que, basado en OIL, corrige algunos de sus defectos y fortalece las capacidades de lógica descriptiva del mismo. Éste último ha gozado de gran popularidad pero parece que su complejidad conceptual lo hace difícil de usar en proyectos simples.

33 ISO. ISOTC 184, ISO/CD 18629-1. Industrial automation system and integration -- Process specification language Part 1: Overview and basic principles.34 Wikipedia. Ontology (computer Science) http://en.wikipedia.org/wiki/Ontology_

%28computer_science%29

35 W3c. Semantic web concepts, 2005. http://www.w3.org/2005/Talks/0517-boit-tbl/

63

Page 64: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

OWL -Web Ontology Language- es la propuesta del W3C que finalmente se convierte en recomendación del mismo organismo. OWL está basado en DAML+OIL y tiene dos sintaxis: una para humanos y otra para máquinas. Evidentemente el propósito de OWL es la rápida adopción del mismo, al punto incluso de que la versión original de OWL incluye una versión ligera (OWL Lite) de capacidades reducidas concentradas en las opciones más comúnmente usadas en DAML+OIL y OWL36.

4.1.5.6 Lógica y pruebasLa arquitectura de la Web Semántica concebida por Tim Berners-Lee, está diseñada con el concepto de capas de funcionalidad estricta y acumulativa como su fundamento. Las primeras capas del modelo propuesto se han venido consolidando y madurando como hemos visto durante los últimos lustros, hemos visto hasta ahora evolución de tecnologías anteriores como ASCII y otros formatos de codificación que pasaron a Unicode para ofrecer una base universal de codificación, HTML y SGML que evolucionaron en XML y sus derivados para ofrecer una base sintáctica unificada. Los URI que estuvieron desde el comienzo de la Web como concepto base pero que retoma protagonismo como elemento fundamental en la nueva arquitectura semántica para permitir que Internet comprenda objetos reales y conceptos. Estas tecnologías se han incorporado a la Web Semántica como elementos con algún grado de madurez y desarrollo, si bien no sin algunas críticas, que los han dejado en un estado de uso más o menos estable.

Es probable que Tim Berners-Lee y todos (o muchos) de los adeptos a la Web Semántica consideren suficiente, para el corto plazo, que las máquinas tengan cierto conocimiento sobre el significado de los datos que manipulan y puedan intercambiar dicha información con base en su semántica. Éstos objetivos son alcanzables con las primeras capas del modelo (Codificación, Sintaxis, Referencia y Descripción ofrecidos por Unicode, XML+NameSpaces+XML Schema, URIs y RDF+RDF Schema) pero la lógica, como la misma historia lo ha demostrado, es un asunto diferente.

Dentro del concepto de diseño en capas está la complejidad y abstracción incremental y la modularidad de los elementos. Las reglas, la lógica y las pruebas constituyen capas independientes en el modelo y por lo tanto hasta el momento sólo se pueden definir ciertas características de cada una de las capas, como qué se espera de cada una y de sus funciones específicas.

36 PEIS, Eduardo, Op. cit.

64

Page 65: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Las ontologías, como herramienta para describir dominios y restringir un poco la base lógica de ellos proporciona el fundamento sobre el que se erigirán las reglas o la capa de reglas. Las ontologías, como esquemas más poderosos que RDF, permiten la inferencia y el chequeo de la consistencia de la información o de una aplicación dentro de ese dominio y establecer una red de significados a través de la conversión y referenciación cruzada entre vocabularios (metas originales de las ontologías)37. Partiendo de esa base es necesario añadir variables a la sintaxis RDF y lenguajes de reglas de propósito general que permitan preguntar y filtrar la información, lenguajes que sean similares a SQL y que permitan formas de demostración o pruebas ( proof ) sin necesidad de una capa lógica completa38. En este escenario, es esencial contar con reglas monotónicas y reglas no monotónicas para los mundos cerrados (ver glosario). El estado de ésta parte del modelo de Web Semántica es una abundancia en sistemas de reglas aunque con presencia de algunos formatos comunes como RuleML39.

Finalmente, en una pequeña disertación40 sobre lo que es la Web Semántica y lo que no es respecto al camino por recorrer, Tim Berners-Lee deja muy en claro que la intención de ésta no es constituir un motor de inferencia, es decir, no se necesita que la Web Semántica incluya generación de demostraciones, sino simplemente validación de éstas, es decir, que las aplicaciones de Web Semántica sean capaces de validar que cierta prueba ofrecida sea correcta con base en la información proporcionada y la identificación de la fuente41. Tim Berners-Lee dice más específicamente, que el cálculo de predicados le parece peligroso para los fines de la Web Semántica, debido a la idea de mundos cerrados y al absolutismo que suele involucrar, que no se corresponde con el conocimiento globalizado, es decir, que la Web Semántica debe tolerar la inconsistencia pero validar la confianza en la fuente que emite pruebas de sus afirmaciones o la información y poder validar dichas pruebas. En ésta discusión, TBL establece que si la decisión se basa en capacidad de expresión contra computabilidad él elige capacidad de expresión que es lo que proporciona la lógica de Orden Superior y que por lo mismo no espera que el diseño de la Web semántica incluya capacidades de inferencia en Lógica de Orden superior. Para lo anterior él sugiere que la lógica de

37 W3c. Ontology layer – goals and status, 2003.

http://www.w3.org/2003/Talks/01-sweb-tbl/slide20-3.html

38 W3c. Rules layer – technology, 2003. http://www.w3.org/2003/Talks/01-sweb-tbl/slide21-3.html

39 RuleML home page. The Rule Markup Iniciative, 2006. http://www.ruleml.org/

40 W3c. Web design issues, what a semantic can represent, 1998.

http://www.w3.org/DesignIssues/RDFnot.html

41 Ibid.

65

Page 66: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

orden superior sería suficiente para expresar (no necesariamente para inferir pero por lo menos para validar) cualquier hecho, datos y resultados escritos en SHOE y a su vez, que cualquier prueba expresada en SHOE sea verificada por cualquier dispositivo o aplicación conforme a la Web Semántica.

Una de las más importantes observaciones que hace TBL es que las herramientas de representación del conocimiento ya tienen un tiempo de desarrollo y han fallado en la intención de volverse herramientas de uso amplio y generalizado. La razón subyacente a este hecho es que dichos sistemas están conceptualmente o físicamente centralizados (como estaban los sistemas de hipertexto antes de la Web), ellos exigían consistencia global, contrario a la Web Semántica que exige una especie de consistencia local con una base de prueba lógica global.

Principios de la Web Semántica: Todo es identificable por URIs. Los vocabularios pueden ser mezclados y reemplazados con el tiempo. Los documentos se autodescriben. Cualquiera puede decir cualquier cosa de cualquiera. Ningún sistema conoce todo. Los diseños deben ser minimalistas.

Actualmente existe un lenguaje llamado Notación 3 (Notation 3) o N3 que es una extensión de RDF para optimizar la expresividad de datos y reglas en el mismo lenguaje, facilitar su escritura, integrar suavemente reglas dentro de RDF y permitir citación o sea hacer declaraciones de declaraciones. Para lograr estas metas N3 usa abreviación de URIs por medio de prefijos similares a los de XML, repetición del mismo objeto para los mismos sujetos y predicados por medio de coma ( “,” ), repetición del mismo predicado para el mismo sujeto por medio de punto y coma ( “;” ), las variables y la cuantificación permiten la expresión de reglas y la gramática es simple y consistente42.

4.1.5.7 Confianza: autenticación y encriptaciónUna finalidad paralela a la semántica es la confianza. Algunos autores definen la confianza como la seguridad que se tenga sobre algo o alguien cuando se enfrenta la incertidumbre. La Web Semántica busca crear redes de confianza entre los usuarios de Internet y hacer que la conjugación entre semántica y confianza permita a los computadores tomar decisiones más o menos inteligentes o acordes a los gustos y expectativas del usuario y de una manera similar a como lo hacen los seres humanos. En éste marco, las redes de confianza están

42 W3c. Notation 3 (N3) A readable RDF syntax, 2006. http://www.w3.org/DesignIssues/Notation3

66

Page 67: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

compuestas por dos problemas: autenticar y encriptar, relacionadas con la autenticidad y la integridad de la información respectivamente, dentro de un ambiente más o menos incierto.

El problema de la autenticación proviene del hecho de que el entorno Web es eminentemente abierto, es decir, cualquiera puede publicar cualquier cosa. Lo primero es verificar que el autor de la información que se está observando o manipulando, proviene de la persona u organización que reclama haberla proporcionado, sin embargo, el sólo hecho de verificar que el autor sí es el correcto no es suficiente: es necesario establecer relaciones de confianza con esos autores, es decir, calificar qué tan adecuado son los contenidos que dicho autor genera sin entrar en validaciones lógicas absolutistas, que no son compatibles con la naturaleza heterogénea de la Web. En vez de entrar en éstas validaciones absolutistas, la Web Semántica propone que los usuarios se califiquen mutuamente y así empezar a establecer un prestigio, que no necesariamente tiene que ser global sino local a las relaciones establecidas entre los individuos y las comunidades, y a través de éste prestigio una confianza mutua sobre sus contenidos.

El problema de la integridad, proviene del tránsito de la información por el medio. Es decir, el posible cambio que pueden sufrir los documentos entre el momento en que son solicitados y en el que son recibidos. Éste problema se ha intentado solucionar con cierto grado de éxito a través de infraestructura de clave pública o PKI, en la cual la clave pública no sólo sirve para autenticar el autor sino para garantizar que el documento no se ha alterado en el camino a su destinatario. En éstos sistemas la encriptación es dependiente del autor que la originó por lo que cumple con el objetivo de autenticar y encriptar.

Dado que la Web Semántica intenta dar a las máquinas más conocimiento sobre la información, la autenticación, la integridad y en última instancia la confianza se basa en un modelo más inteligente. La idea es que las relaciones de confianza se establezcan con base en pruebas de autenticidad, es decir, que la autenticación no sólo proviene de la identificación por medio de llaves o claves sino de pruebas lógicas que solamente el autor pueda proporcionar o que se puedan deducir del contexto en el que se proporciona la información. Acá es donde entra en juego la capacidad de la Web Semántica de soportar un nivel lógico fundamental: sólo es necesario poder validar una prueba de autenticidad, no generar pruebas lógicas o demostraciones formales. La finalidad de la infraestructura semántica propuesta es que los agentes o los programas puedan hacer inferencias sobre la información (dado que la información contiene reglas y relaciones semánticas) y autenticar mediante la validación de pruebas de autenticidad de las afirmaciones o de la

67

Page 68: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

información suministrada por cierta fuente 43.

4.1.6 Reconocimiento de lenguaje natural

La comunicación no es una de las propiedades de los agentes inteligentes reconocidas originalmente, más bien fue una consecuencia de analizar más detalladamente las propiedades de los agentes y las necesidades que podrían tener para llevar a cabo sus tareas o metas más eficientemente.

El acto de comunicación implica transferencia de información y un marco conceptual de trabajo en el cual se describan los significados de cierto intercambio de información. Un acto comunicativo se define como

“El intercambio de información que se lleva a cabo mediante emisión y percepción de signos pertenecientes a un sistema convencional de éstos”

44.

La comunicación tiene varios usos entre agentes: Intercambio de comunicación. Ordenar/Preguntar. Establecer relaciones de confianza o vínculos sociales.

Nuestro proyecto se debe entender desde varias perspectivas: la comunicación entre agentes inteligentes artificiales (software/hardware) y la comunicación entre agentes inteligentes artificiales con agentes humanos. De acuerdo con la definición dada, para que entre ellos exista un acto comunicativo es necesario que por lo menos se intercambien signos de un sistema convencional y no se trata de la codificación clásica, es decir, no hablamos de los signos contemplados en ASCII, UTF o UNICODE, hablamos de los signos del lenguaje natural de los seres humanos y en particular del idioma español como lenguaje natural y sus símbolos.

Un proceso comunicativo, es decir, intercambio de información a través de símbolos, se lleva a cabo en siete etapas: tres de ellas suceden en el emisor o hablante y las cuatro restantes en el receptor u oyente:

43 PEIS, Eduardo, Op. cit.

44 RUSSEL, Stuart, Op. cit. p. 687

68

Page 69: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Intención: Es el proceso de decidir que se necesita comunicar un mensaje. La intención implica el razonamiento de por qué es necesario y qué se quiere comunicar en términos de lo que el agente reconoce internamente como metas de comunicación.

Generación: Es el proceso de elegir los símbolos adecuados para representar el mensaje a comunicar. Este proceso desde el punto de vista de una base de conocimiento es difícil, sin embargo, dado que la mayoría de las veces una comunicación se basa en estructuras de razonamiento sin ambigüedad este proceso no resulta tan complicado, además, parece que los humanos hemos tenido más interés en que las máquinas entiendan lo que nosotros decimos que en que ellas nos comuniquen lo que ellas piensan.

Síntesis: La síntesis ocurre con el propósito de hacer más fácil el entendimiento del mensaje al oyente, por ejemplo, traducir las palabras a fonemas que serán dictados a un transductor que las diga.

Percepción: La percepción trata de la traducción de los mensajes en el medio de comunicación a los símbolos necesarios para su análisis e incorporación.

Análisis: El análisis es la interpretación del mensaje como tal. El análisis está compuesto por dos elementos principales: análisis sintáctico y análisis semántico. En esta etapa sucede la incorporación o aceptación final del mensaje en caso de que se decida creerlo. Algunos autores denominan esta última parte la fase pragmática.

Estos son los procesos necesarios para que se establezca comunicación entre dos agentes según Russel y Norvig45. En ciertos ambientes alguno o varios de estos procesos pueden ser triviales o hacer parte de un sistema externo que las hace por nosotros. Las tareas que nos ocupan a nosotros principalmente son las de análisis.

El análisis como ya se dijo está compuesto a grosso modo por dos etapas: análisis sintáctico o gramatical y análisis semántico. El análisis gramatical tiene que ver con el agrupamiento de los símbolos en palabras y frases válidas dentro del lenguaje en cuestión -palabras conocidas y estructuras de frases correctas. El análisis gramatical de una frase es un proceso por medio del cual la frase se descompone en elementos reconocibles por el sistema en cuestión y una estructura por medio de la cual se establecen relaciones entre cada uno de estos elementos. Por ejemplo: en la frase “Ana hace su trabajo”, el resultado sería una

45 RUSSEL, Stuart, Op. cit. p. 692

69

Page 70: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

estructura de datos en la cual la frase completa se califica como una frase de tipo verbal compuesta por un sujeto, un verbo y un complemento cada uno de ellos almacenado en una variable que lo identifica y clasifica como tal. El análisis semántico es la interpretación de éstas estructuras derivadas del análisis gramatical o sintáctico para corresponder las intenciones o significados de esa comunicación con el conocimiento en la representación del oyente, usando el mismo ejemplo el sistema identificaría lo que significa “trabajar”, “hacer” y que “Ana” es una persona (que incluso podría ser identificada en un sistema restringido pero aún así de mucha sofisticación).

Aunque el análisis gramatical no es trivial, es un proceso del que se conocen varias técnicas con aceptable efectividad, es el análisis semántico donde no hay resultados aceptables y problemas muy grandes. Es claro que una característica presente en muchas estructuras de lenguajes (en especial los lenguajes naturales) es la ambigüedad o posible interpretación múltiple de la misma frase o sentencia, dependiendo del contexto, del ambiente, de la situación, etc.. El análisis semántico es un proceso de razonamiento incierto, es decir, de probabilidades. El análisis gramatical ofrece una estructura con posibles interpretaciones y desambiguarlas significa escoger la mejor interpretación para esa estructura.

Para que tenga sentido un acto comunicativo es necesario que los agentes entiendan el mismo lenguaje (por lo menos para el acto comunicativo, es decir, no tiene nada que ver con cómo cada agente representa internamente su conocimiento), compartan el mismo contexto sobre el que se hace la comunicación y sean por lo menos parcialmente racionales.

Una gramática es un conjunto de reglas que permiten saber qué conjunto de palabras o símbolos se corresponden con una estructura definida de un lenguaje, por ejemplo qué combinaciones de palabras pueden componer una frase en algún idioma. La semántica intenta saber qué significado tienen los símbolos que arroja un análisis gramatical, por ejemplo en la expresión matemática X=PI*3.5*3.5, la sintaxis indica que la expresión es una igualdad bien escrita (no tiene un doble igual y el orden entre operandos y operadores es correcto, etc.) entre el símbolo X y la expresión de multiplicación PI*3.5*3.5, pero la semántica o significado sería evaluar la expresión para saber cuánto da su cálculo, es decir, qué valor tiene X (38.4845 aproximadamente si sabemos que PI significa 3,141592). Una expresión en algún idioma puede significar cierta información a causa de la cual ya no habría razón para emprender una acción o, al contrario, una orden para emprender o ejecutar la acción.

El análisis gramatical es un proceso complejo donde los algoritmos casi siempre hacen cosas que luego deben repetir, tanto es así que un análisis gramatical eficiente se considera el que cumple con la siguientes reglas, que parecen triviales

70

Page 71: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

pero la experiencia con algoritmos demuestra que no lo son:

No hace dos veces lo que ya se ha hecho No haga lo que no es necesario No represente diferencias innecesarias.

Otros problemas fundamentales relacionados con el análisis gramatical están en la ampliación del diccionario y corrección de errores, es decir, cómo se interpreta una palabra desconocida, estructuras poco comunes o desconocidas del lenguaje y qué se debe hacer con ellas: cuándo adicionarlas al diccionario o repositorio de frases válidas o cuándo marcarlas como un error gramatical46.

Los problemas del análisis semántico no sólo tienen que ver con la desambiguación ya mencionada, otro problema de éste tema es la incorporación, que es definir si una vez que se sabe qué es lo que el hablante quiere expresar se puede confiar en ese mensaje como para creerlo o no, es decir, incorporarlo a nuestra base de conocimiento -esto también tiene mucho que ver con el concepto de confianza-. El tratamiento de la ambigüedad extrae información de evidencia sintáctica, léxica y semántica que tienen que ver con el uso de palabras que modifican significados, la frecuencia de uso de una palabra en un contexto y del contexto mismo de una frase respectivamente. Ahora que, para poder hablar realmente de procesamiento de lenguaje natural, hay que ser capaces de comprender el discurso, es decir, determinar qué significa un acumulado de frases como tal, meta que sigue un poco evasiva.

El reconocimiento de lenguaje natural es llamado comúnmente PLN (Procesamiento de Lenguaje Natural o NLP por sus siglas en inglés) y ha sido uno de los campos más interesantes y donde más investigación se ha realizado dentro de las disciplinas de la Ingeniería de Sistemas y Computación, entre otras cosas por la inevitable conexión de la programación con los lenguajes, pero esta inversión no se ha correspondido con los resultados. Actualmente, el campo del PLN se aplica exitosamente a sólo algunos problemas debido a muchas razones, entre otras, a la aparición de métodos alternativos muy cómodos para permitir la interacción con los usuarios. Un ejemplo de estos métodos son los formularios Web, es razonable pensar que nadie (o muy pocas personas) preferirían escribir “quiero saber el precio de un vino Merlot chileno” en una caja de texto y click en enviar, que dar click en algunas opciones paramétricas de un formulario y el botón de enviar la consulta para recibir una respuesta que probablemente sea más precisa usando éste método del formulario que el resultado del análisis del texto en la caja de texto 47.

46 RUSSEL, Stuart, Op. cit. p. 735

71

Page 72: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Es probable que el hecho de que estas opciones hayan aparecido inicialmente se haya debido a la poca efectividad de las técnicas de PLN. Ejemplos donde el procesamiento de lenguaje natural ha sido implementado de manera satisfactoria son traducción automatizada en dominios restringidos, acceso a bases de datos de (manera muy limitada) y la interpretación de textos para recuperación de información, categorización y obtención de datos 48. Para los objetivos de este proyecto, las técnicas pertinentes están en la recuperación de información y categorización de textos debido a la necesidad de obtener una representación de textos escritos y sacar definiciones de sus contenidos. Estos dos procesos deben estar encaminados a corresponder un contenido con una declaración o una descripción ontológica, es decir, que la estructura de datos que se derive de ellos quede almacenada en un formato compatible con la Web Semántica.

Un concepto frecuente orientado hacia la posibilidad de interpretación o clasificación de documentos, en especial en el ámbito científico, es la anotación de documentos, que consiste en hacer descripciones breves de los documentos o incorporar metadatos dentro del formato del documento con el fin de que éste sea fácilmente clasificado por las máquinas. Existen innumerables páginas Web que hablan de un proyecto de middleware unificado para anotación científica desarrollado con la ayuda del departamento de energía de los Estados Unidos (DOE -Departament of Energy)49, que busca unificar la infraestructura de metadatos (¿suena conocido?), ofrecer servicios de anotación científica, minimizar las barreras de integración entre sistemas de anotación científica y hacer seguimiento a las relaciones semánticas de las anotaciones en objetos de datos. Esta idea está fuertemente ligada al procesamiento de lenguaje natural, debido a que un documento puede ser muy bien anotado si se hace un análisis sintáctico, morfológico y semántico de su contenido y se traduce en una estructura de documento que incluya esta información.

Los términos en que se habla de procesamiento de lenguaje natural son análisis morfológico, etiquetado de parte de la oración (Part Of Speech Tagging o POS Tagging por sus siglas en inglés), identificación de partes o particionamiento (Chunking en inglés), análisis de dependencia estructural y etiquetado semántico.

47 DINI, Lucas. NLP Technologies and the Semantic Web: Risks, Opportunities and Challenges, 2003.48 RUSSEL, Stuart, Op. cit. p. 731

49 DOE National Collaboratories. Scientific Annotation Middleware, 2004.

http://www.doecollaboratory.org/research2/sam/homepage.html

72

Page 73: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.1.6.1 Análisis morfológicoÉsta etapa del análisis se refiere a los procesos derivativos, inflexionales y composicionales en la formación de palabras. Este es un paso fundamental en muchos procesos y aplicaciones del PLN p. ej. recuperación de información. Este proceso obtiene la raíz de una palabra y posibles opciones de marcado de partes de la oración (POS -part of speech) como si la palabra es un verbo, sustantivo, adjetivo, etc., propiedades de inflexión como género (masculino, femenino, neutro), número (plural o singular), caso (nominativo, acusativo, etc.) y posible análisis composicional.

El análisis morfológico se basa en un léxico disponible para el lenguaje que se está usando. Dado que las palabras tienen mucha ambigüedad respecto a parte de la oración (POS) e inflexión, con frecuencia es necesario pasar por algunos pasos de desambiguación y esta desambiguación morfológica interactúa con etiquetado de POS así como particionamiento (Chunking).

4.1.6.2 Etiquetado parte de la oración (POS -part of speech)La identificación de la correcta clase sintáctica para una palabra dada en su contexto es lo que en este proyecto llamamos etiquetado de parte de la oración, es decir, identificar las propiedades de significado de una palabra según su lugar en la frase u oración, es decir, en su contexto. El etiquetado de parte de la oración identifica propiedades como la cualidad de verbo, sustantivo, nombre, etc. para una palabra dada analizando su contexto, implica tareas de desambiguación entre múltiples etiquetas de parte de la oración, como acertar en la etiqueta adecuada para una palabra desconocida. Las herramientas de etiquetado de parte de la oración disponibles hoy en día se basan en reglas o en métodos probabilísticos (o estocásticos) para desambiguar y etiquetar palabras desconocidas.

Los métodos de etiquetado basados en reglas usan patrones de contexto escritas explícitamente por humanos para inferir el significado correcto de una palabra en tales contextos. Una regla de estas diría por ejemplo, que si el análisis morfológico indica que la palabra está compuesta por un verbo y un sufijo ando/endo debería ser etiquetada como verbo para distinguir el papel que está jugando la palabra y discriminarla de palabras similares como “Hernando” que teniendo terminación “ando” no juega el papel de verbo (valga la aclaración que este ejemplo es sólo ilustrativo porque ésta palabra podría interpretarse como verbo bajo algún contexto). Los métodos estocásticos usan la frecuencia o probabilidad de encontrar un significado para una palabra dado cierto conjunto de entrenamiento. Algoritmos más avanzados usan la probabilidad de un n-grama (secuencia de n etiquetas o significados), por ejemplo la probabilidad de que cierto significado

73

Page 74: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

ocurra dados los n significados anteriores, un algoritmo que usa esta estrategia es el algoritmo Viterbi, que es un algoritmo de búsqueda en anchura.

4.1.6.3 ParticionamientoEl concepto de parte o pedazo ha sido introducido originalmente relacionado con las estructuras de desempeño, que refleja una subdivisión intuitiva de frases como son usadas por un hablante, pero cuya existencia ha sido descubierta y verificada experimentalmente. Se define parte (chunk) como las partes no recursivas de las frases núcleo, tales como frases nominales, frases preposicionales, frases adjetivas, frases adverbiales y grupos de verbos. En palabras más simples: es la división de un párrafo o frase en partes más pequeñas con un significado concreto.

Existen dos técnicas complementarias de análisis para el reconocimiento de partes: conversión de partes (chunk parsing) y conversión parcial de partes (partial parsing). Estas dos técnicas involucran la extracción de fragmentos de información lingüística, la conversión de partes usa la información contextual cercana para extraer información lingüística segura, mientras la conversión parcial se combina con la primera a través de reglas que definen cómo combinar los resultados parciales en cascadas con el fin de asegurar más precisión en el resultado.

Otro proceso importantísimo relacionado con el particionamiento es el reconocimiento de entidades nombradas (named entities), es decir, reconocimiento de palabras que son el nombre de instituciones, compañías, expresiones de fechas, etc.. Este proceso está casi siempre acompañado de listados de nombres (empresas, ciudades, personas, etc.) o diccionarios de palabras específicas en combinación con la definición de patrones de expresiones regulares.

4.2 MARCO DE ANTECEDENTES

Los antecedentes del presente proyecto incluyen elementos históricos y descriptivos de Univirtual con el fin de mostrar la relativa poca edad de ésta división del Centro de Recursos Informáticos y Educativos, así como los antecedentes de las tecnologías que se consideraron con el fin de decidir la

74

Page 75: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

recomendación final y hacer una posible propuesta de implementación.

4.2.1 Univirtual

4.2.1.1 HistoriaLa unidad virtual de la Universidad Tecnológica de Pereira o Univirtual es una dependencia dedicada a desarrollar y apoyar estrategias para la integración de las tecnologías de la información y las comunicaciones al desarrollo de las actividades académicas de la Universidad.

La Unidad Virtual es una entidad de poco tiempo de vida, ésta se constituyó oficialmente en el año 2003 y viene desarrollando programas de diversa índole como soporte para los cursos que se dictan como parte del currículo de las carreras establecidas, prestar herramientas para la evaluación y la interacción con los estudiantes dentro de este mismo contexto de soporte a las actividades clásicas de la Universidad y durante el 2004 y 2005 ha diseñado los programas de diplomado de maestro virtual y diplomado en arte latinoamericano que está en proceso de despliegue ya como proyecto de operación comercial. Gran parte del trabajo que desarrolla Univirtual está publicado en Internet y sus contenidos son accesibles a través del URL http://univirtual.utp.edu.co, por medio del cual se accede a material de acceso libre y a los contenidos de cursos a través de una autenticación simple de nombre de usuario/contraseña.

La unidad virtual apenas está desarrollando sus estrategias y políticas de acción frente a sus objetivos estratégicos y esta condición nos da cierta flexibilidad para proponer modelos y herramientas de soporte de los mismos. Esperamos pues, con este proyecto de grado, usar la unidad virtual como base de ejemplos para desarrollo de una plataforma de agentes inteligentes, metodologías y herramientas de despliegue, implementación e interacción que su desarrollo sugiera y observar con ello las posibles ventajas o inconvenientes que tal despliegue podría tener.

4.2.1.2 EstructuraLa universidad tiene tres líneas de acción que denomina docencia, investigación y extensión, en correspondencia, la Unidad Virtual adopta las mismas líneas de acción y adiciona la línea de comunicación para proveer los recursos necesarios

75

Page 76: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

tanto humanos como físicos y de infraestructura para cohesionar e integrar las iniciativas que surjan de las otras líneas de acción.

Línea de investigaciónActualmente la línea de investigación se fortalece a partir de:1. La experiencia y capacitación del equipo de trabajo y el Comité Asesor.2. Desarrollo del proyecto MAVA: “Metodología para la construcción de Ambientes

Virtuales como apoyo a la educación presencial en la Universidad Tecnológica de Pereira”

3. Proyecto: “Diseño de instrucción en un entorno de aprendizaje abierto”. Aprobado por el Centro de Investigaciones y Extensión UTP.

4. Proyecto: “Gestión y administración de objetos de aprendizaje”

Línea académicaLa línea académica se subdivide a su vez en área de capacitación y área de soporte. El área de capacitación ofrece a administrativos, docentes y estudiantes, desde una perspectiva instrumental y conceptual de la educación bajo entornos virtuales, en asocio con el CRIE y la Biblioteca, ofrece también programas de educación formal al interior y exterior de la universidad, en asocio con Facultades y Escuelas y capacitación o pasantías del equipo de trabajo de Univirtual en temáticas específicas de la educación virtual.

El área de soporte de la línea académica se divide en soporte técnico, pedagógico y legal. El área de soporte técnico se corresponde con los consultorios técnicos de las aulas virtuales, ya que el apoyo técnico con respecto a hardware y software, incluyendo plataforma tecnológica, se realiza a través del CRIE (Centro de Recursos Informáticos y Educativos) y División de Sistemas. El área de soporte pedagógico, partir de un modelo educativo de educación a distancia soportada en las TICs, ofrece soporte en lineamientos pedagógicos a través de herramientas interactivas basadas en comunidad y documentos y herramientas dispuestas por Univirtual directamente como e-Publicar, Biblioteca, Imagoteca, Sitios de Interés, Bibliografía e-learning y foros, entre otros. Finalmente, el área de soporte legal corresponde a la secretaría general de la universidad respecto a derechos de autor, con base en los Estatutos de Propiedad Intelectual en la UTP. Univirtual implementa políticas internas para cualificar en caso de ser necesario y dar el aval a cualquier tipo de formación virtual, esta formación abarca los cursos de capacitación ofrecido por las Vicerrectorías Académica y Administrativa basados en la resolución de Rectoría numero 1700 de Junio 11 de 2004.

Línea de comunicaciónLa línea de comunicación tiene dos enfoques basados en la manera de interactuar y el público objetivo: el enfoque comunitario y el individual. En el enfoque

76

Page 77: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

comunitario las herramientas no se limitan a las TICs (Tecnologías de la Información y las Comunicaciones), sino a herramientas comunitarias en medios clásicos (folletos, pendones, emisora UTP, comunicaciones, boletines informativos, separadores ) más las ayudas electrónicas dispuestas por Univirtual y por la Universidad para ello (Foros electrónicos, portal Web, noticias, chat, foros de reflexión, pizarrones virtuales). El enfoque individual es a través de los contenidos y herramientas virtuales como tales (sitio Web , correo electrónico, preguntas frecuentes, sensibilización personalizada a profesores, estudiantes, consejos de facultad, salas de profesores, consejos académicos y superior).

Línea de extensiónLa línea de extensión tiene proyectos de tipo académico (organizar y participar en congresos virtuales, conferencias y ponencias) y proyectos de operación comercial, como ofrecer pregrados, especializaciones, diplomados y seminarios en modalidad 100% virtual, Alianzas estratégicas con Instituciones de Educación Superior nacionales e internacionales e Integrar a la Universidad a redes de conocimiento virtual a nivel regional, nacional e internacional.

4.2.1.3 PerspectivasHemos visto pues a través de ésta brevísima perspectiva de Univirtual (si bien justificada en su incipiente desarrollo) cómo ésta dependencia representa un excelente marco de pruebas y ambiente de desarrollo de las tecnologías de agentes inteligentes y de Web Semántica debido a su carácter educativo, tecnológico y su historia corta.

Vimos pues que Univirtual tiene dos perspectivas principales respecto a los contenidos y herramientas que despliega: la responsabilidad de dar apoyo a los programas presenciales a través de la participación de los estudiantes en cursos virtuales y herramientas interactivas. Desde esta perspectiva Univirtual diseña contenidos para materias dentro de pénsumes establecidos e instala los medios necesarios para que tales contenidos sean desplegados, evaluados y corregidos antes, durante y después del desarrollo de los cursos.

La otra perspectiva de Univirtual se encuentra en el marco de la extensión a través del diseño de programas propios o en asociación con otras instituciones. Esta perspectiva es diferente porque representa la oportunidad de diseñar un marco pedagógico y contenidos aptos para el despliegue de las tecnologías inteligentes.

Y no hay que dejar de lado que Univirtual contempla dos escenarios fundamentales que pueden servir de base para el diseño de casos de uso: sus enfoques individuales y comunitarios, además de las interacciones de profesores,

77

Page 78: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

asesores y diseñadores de contenidos con el sistema.

4.2.2 Plataformas de agentes inteligentes

Como ya hemos descrito, en esta etapa temprana del tema de los agentes inteligentes, la elección de la plataforma va de la mano con la elección de la metodología de desarrollo por lo tanto vamos a empezar eligiendo la metodología a usar, describiéndola más en detalle y eligiendo la plataforma como tal para detallar sus capacidades.

Ya hemos mencionado durante todo este trabajo el estado inmaduro de las tecnologías orientadas a agentes y sus contrapartes las metodologías. Hemos encontrado un documento50 de comparación de metodologías de desarrollo de sistemas orientados a objetos con base en el cual haremos la elección de la que vamos a proponer para el desarrollo de la plataforma de información de Univirtual.

La ingeniería de software orientada a agentes (AOSE por sus siglas en inglés), tiene varios aspecto interesantes a considerar. El más obvio de todos es el uso del concepto de agente inteligente para crear aplicaciones más efectivas que las tradicionales basadas en algoritmos clásicos imperativos por medio de los cuales se intenta proveer o escribir la inteligencia necesaria prevista para desarrollar las funciones de la aplicación. El agente inteligente, busca romper el límite impuesto por la previsión del diseñador del software e intentar adaptarse a situaciones más amplias que las previstas originalmente, así como emprender acciones por él mismo según cierto criterio más o menos autónomo en vez de esperar que sucedan eventos concretos que disparen sus funcionalidades.

Sin embargo, como la historia de los paradigmas de programación ha demostrado, este nuevo paradigma busca facilitar el proceso de diseñar y ejecutar sistemas más complejos que los del paradigma anterior, a saber, programación orientada a objetos, si bien este nuevo esquema de ideas sigue fuertemente respaldado por las capacidades del anterior y ha heredado muchas de sus características. La evolución de un paradigma de desarrollo de software pretende abordar problemas que para los programadores de los paradigmas anteriores resultan muy complejos, los agentes inteligentes ofrecen la capacidad de programar aplicaciones desde una perspectiva de altísimo nivel, es decir, con un lenguaje y conceptos muy similares a los que usamos para interactuar con otros seres humanos, casi como

50 HOA DAM, Khanh; WINIKOFF, Michael. School of Computer Science and Information

Technology, RMIT Melbourne, 2003.

78

Page 79: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

si escribiéramos planes para que algún subalterno o equipo de trabajo los lleve a cabo pero sin juicios de valores, ni inconsistencia en el desempeño y con un volumen de información por concepto mucho mayor del que acostumbramos manejar en la programación tradicional. En este sentido, la programación orientada a agentes representa una avance muy grande en la simplificación de las tareas de programación con el sólo hecho de hacer uso de los conceptos de alto nivel como metas y planes, así como el fuerte respaldo que hace este paradigma sobre la visión social de los programas y la adaptabilidad de los mismos. Desde este punto de vista, la elección de la metodología no es tan relevante como el hecho de tener una perspectiva clara del uso de dicho paradigma, el cual por el simple hecho de ser usado ya está mejorando las cosas.

4.2.2.1 MetodologíasTranscribimos las conclusiones de un trabajo publicado en Internet de la universidad de Ciencias de la computación y tecnologías de la información RMIT de Melbourne Australia para dar una perspectiva del estado de madurez general de las metodologías más populares51. En esta ponencia, los ponentes crean un marco de trabajo para hacer comparación entre metodologías de desarrollo orientadas a agentes, basado en el siguiente conjunto de propiedades evaluadas para dichas metodologías:

Presencia de los Conceptos y propiedades de la orientación a agentes inteligentes (proactividad, reactividad, autonomía, concurrencia, cooperación, protocolos, orientación a agentes, conciencia de sitio).

Métodos de modelamiento y notación del modelo (modelamiento estático y dinámico, sintaxis definida, semántica definida, notación clara, facilidad de uso, facilidad de aprendizaje, vistas diferentes, Trazabilidad, chequeo de consistencia, modularidad, reuso y modelamiento jerárquico).

Proceso (requerimientos, diseño arquitectónico, diseño detallado, implementación, pruebas y depuración, despliegue y mantenimiento).

Pragmática (aseguramiento de la calidad, estimación de costos, decisiones de administración, aplicaciones reales, dominio específico, escalabilidad y distributibilidad).

A continuación presentamos una traducción de la conclusión a la que llegaron los autores:

“Presentamos una comparación entre tres prominentes metodologías.

51 Ibid.

79

Page 80: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

En general, todas ofrecen un soporte razonable de los conceptos básicos de orientación a agentes como autonomía, actitudes mentales, proactividad, reactividad, etc. Todos fueron considerados como claramente orientados a agentes. Adicionalmente la notación de las tres es en general buena. Respecto al proceso, todas proveen al desarrollador con ejemplos y heurísticas para asistirlo desde la recolección de requerimientos hasta el diseño detallado. La implementación fue soportada en cierto grado por todas las metodologías mientras las pruebas y depuración no lo fue tanto en ninguna. Adicionalmente algunos conceptos importantes de ingeniería de software como aseguramiento de la calidad, guías de estimación y soporte de decisiones administrativas no son soportadas por ninguna“.

A pesar de la uniformidad de la conclusión, insistimos, que se interpretaría como una inmadurez general de éste tema, en el documento hacen pequeñas diferenciaciones sobre las metodologías y en especial, proponen a Tropos como una metodología un poco más avanzada que las otras, por ejemplo cuando aduce que la percepción de los encuestados fue que Tropos tiene un alto soporte para la proactividad y reactividad en el caso de los conceptos de orientación a agentes. Otra interpretación que hacemos acerca de la conclusión del documento mencionado, es que dados los objetivos de este proyecto de grado como son proponer un marco sobre el cual se implemente efectivamente la plataforma, ella indica que las diferencias entre metodologías no son significativas para el desarrollo del mismo.

Dadas estas referencias, nosotros proponemos Tropos como metodología de desarrollo debido a que incluye un modelo del sistema incluyendo a todos los actores del sistema en la fase de análisis de requerimientos tempranos, esa es una de las fortalezas propuestas por los creadores de la metodología y nos da la perspectiva de más alto nivel, explotando al máximo el concepto de agente, además parece un muy buen comienzo para poder visualizar los requerimientos del sistema sin sesgos de tipo tecnológico. Otra ventaja que tiene Tropos sobre las otras metodologías es que en la fase de diseño detallado e implementación soporta la correspondencia entre conceptos de diseño con estructuras de la plataforma sobre la cual se vaya a implementar el sistema, lo que hace el diseño independiente de la plataforma hasta éstas fases, es decir, que es posible hacer una propuesta de diseño basándose en las etapas iniciales para dejar en libertad a los continuadores para elegir la plataforma final aunque nuestra intención es dar pautas para la elección de la misma y dejar en manos de los continuadores la labor de mapear de la mejor manera los conceptos del diseño con las estructuras de la plataforma elegida. En caso de ser necesario migrar el modelo de diseño en un futuro, bastaría con cambiar este juego de correspondencias concepto-estructura con una plataforma a otro juego de correspondencias para la nueva

80

Page 81: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

plataforma.

Durante el desarrollo de este proyecto de grado hemos encontrado unas propuestas alternativas interesantísimas a las propuestas estudiadas pero que por falta de documentación y ninguna popularidad reciente aparente no se corresponden con el carácter práctico del mismo. Por ejemplo existe una metodología más o menos nueva que parece que tuvo cierta aceptación llamada PASSI (Process for Agent Societies Specification and Implementation – Proceso para especificación e implementación de sociedades de agentes)5253 cuya finalidad es no definir un nuevo lenguaje de modelamiento sino extender el actual UML. PASSI goza de cierta aceptación entre los programadores del modelo Agile para dispositivos embebidos y se ayuda con una herramienta de un Plug-in para Rational Rose. Este interesantísimo modelo no nos parece que facilite el diseño de los agentes, sino que más bien reutiliza el conocimiento de los lenguajes convencionales de modelamiento pero ya establecimos la necesidad de migrar al fuerte uso del concepto de agente inteligente como base de diseño.

Otra propuesta de la que no encontramos mayor información (de hecho sólo un PDF hablaba de él) pero que a nuestro parecer es la propuesta de diseño más robusta, se describe en un documento bajo el nombre de MALACA 54. Esta metodología propone definir una arquitectura de componentes para el diseño y hacer uso de la especificación MDA (Model Driven Architecture – Arquitectura basada en modelos)55 de la OMG (Object Management Group – Grupo de Administración de Objetos) , por medio de la cual se hacen corresponder dos modelos a través de transformaciones entre conceptos abstractos y “concretos” de dichos modelos de tal manera que sea posible diseñar en cualquier metodología y escribir las transformaciones necesarias para convertirlo a un lenguaje de modelamiento más concreto que soporte la implementación directa. En MDA se definen modelos independientes de la plataforma (PIM – Platform Independent Model) y modelos dependientes de la plataforma (PSM – Platform Specific Model) a los cuales se les debe escribir un perfil UML o metamodelo y por medio de éstos se efectúan transformaciones entre sus conceptos y estructuras de diseño y finalmente a través del modelo dependiente de la plataforma a estructuras de implementación. MALACA propone un modelo basado en componentes muy dinámico y adaptable que compone el modelo dependiente de la plataforma, pero

52 FIPA. Methodologies. http://www.fipa.org/resources/methodologies.html#Passi

53 Dipartimento di ingegneria informatica. CSAI Lab. http://www.csai.unipa.it/cossentino/passi/

54 AMOR, Mercedes; FUENTES, Lidia; VALLECILLO, Antonio. Bridging de gap between Agent-Oriented Design and Implementation using MDA, 2005.55 Object Management Group. OMG Model-Driven Architecture,. http://www.omg.org/mda/

81

Page 82: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

como una arquitectura intermedia a través de la cual se harán las transformaciones a estructuras de implementación en cada plataforma. Las razones por las cuales MALACA es una arquitectura intermedia es porque dada la explosión de metodologías y plataformas, el sólo modelo propuesto por MDA resulta inadecuado debido a la gran cantidad de correspondencias entre modelos que habría que hacer (entre cada metodología de diseño y cada plataforma), por medio de MALACA se harían las correspondencias directamente entre MALACA y las plataformas y de las metodologías a MALACA, lo cual para números de metodologías y plataformas grandes disminuye considerablemente el esfuerzo necesario para transformar los modelos de diseño en modelos de implementación 56.

4.2.2.2 PlataformasEn cuanto a la plataforma como tal, es necesario tener en cuenta el acogimiento que ésta haga de las especificaciones de FIPA, ya que este organismo ha propuesto un conjunto de especificaciones para la implementación de sistemas multiagente interoperables que ya han sido acogidos por muchas organizaciones, éste aspecto es fundamental para el futuro del proyecto, especialmente su escalabilidad e interoperabilidad con otras plataformas y para cumplir con el objetivo de las tecnologías Web Semántica de ser masivas. Otro factor clave para la elección de nuestra plataforma es la disponibilidad de documentación y ejemplos ejecutables que nos enseñen a manipular y conocer la plataforma así como el esquema de licenciamiento, dado que éste determina la extendibilidad a la que los implementadores tengan acceso.

Existe gran diferencia entre Jade y JACK, que son las plataformas candidatas descritas en apartes anteriores, precisamente en los factores mencionados en el párrafo anterior. JADE es una plataforma abierta, que ha participado en varios eventos internacionales llamados FIPA Interoperability test y además cuenta con miembros de su equipo de desarrollo en la Junta de arquitectura de FIPA y se licencia como LGPL -Lesser General Public License-. Por otro lado JACK es una herramienta comercial para la cual es necesario comprar licencia o hacer acuerdos académicos en caso de desarrollos experimentales como el nuestro. JACK también está relacionado en el sitio Web de FIPA57 como una plataforma conforme con algunos de sus estándares. Ambas son plataformas 100% Java, aunque JACK incluye un lenguaje de especificación de agentes que extiende la

56 AMOR, Mercedes, et. al. Op. cit.

57 FIPA. Publicly available implementations of FIPA Specifications, 2003.

http://www.fipa.org/resources/livesystems.html

82

Page 83: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

sintaxis de Java para soportar conceptos orientados a agentes. JACK es una plataforma comercial para la cual la licencia de prueba pone términos como imposible hacer ingeniería inversa o desensamblar el código, redistribuir el material o mostrar los resultados de su uso a terceros58. JADE es completamente público, tanto la documentación (que en JACK también es pública) como el código fuente.

Nosotros preferimos y recomendamos usar la plataforma JADE por las siguientes razones:

Acogimiento a los estándares FIPA de AMS (Agent Management System), DF (Directory Facilitator), ACC (Agent Communication Channel), MTP (Message Transport Protocol), servicio de nomenclatura o nombramiento (naming service) conforme con FIPA y transporte de peso liviano conforme con ACL (Agent Communication Language) de FIPA, así como librería de protocolos de interacción FIPA.

Licenciamiento LGPL, acceso de sólo lectura al código fuente, herramientas de interacción para la comunidad de desarrolladores (listas de correo).

Profusa documentación incluyendo las herramientas y tecnologías usadas en JADE.

Amplia aceptación tanto académica (Monads de la Universidad de Helsinski entre otros) como comercial (Telecom Italia Lab y Rockwell Automation entre otros) en el desarrollo de plataformas multiagente59,60.

4.2.3 Web semántica

¿Cuál debe ser el papel de la Web Semántica y cómo se puede integrar en una plataforma de agentes inteligentes para la educación Virtual?. Esa es la pregunta base para esta sección y que intentaremos resolver según lo que hemos leído y analizado.

La Web Semántica como propuesta original del creador de la WWW, busca principalmente ser una infraestructura sobre la cual florezca la inteligencia artificial 58 The Agent Software Group. JACK Registration form.

http://www.agent-software.com/shared/extrafiles/regform.html.

59 JADE. Who is using JADE – Applications and Business, 2006. http://jade.tilab.com/application-

who.htm

60 JADE. R&D Projects, 2006. http://jade.tilab.com/application-projects.htm

83

Page 84: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

y en especial los agentes inteligentes como nueva generación de modelo de aplicación. Desde este punto de vista, la infraestructura de Web lo que contiene son los elementos mínimos necesarios para un mejor conocimiento de los datos y los orígenes de los mismos por parte de las máquinas, es decir, cierta capacidad mínima para manipular mejor esa información y sobre todo ser flexible y extensible, es decir, ampliable sobre la misma base. Éstas características son en esencia una base que tendría la potencia expresiva necesaria para desarrollar aplicaciones medianamente inteligentes.

Nosotros tomamos como punto de partida el hecho de que Tim Berners-Lee y su grupo de trabajo diseñó la primera generación de www y por lo tanto es de esperar que conozca las condiciones necesarias para que un medio como éste sea adoptado masivamente y también reconozca bien los defectos que tiene en éste momento, por eso es que se espera que la Web Semántica tenga los factores de éxito que tuvo la www originalmente si bien existen detractores de la propuesta que optan por otra propuesta para el futuro de Internet en la línea de los Web Services, que son, simplificadamente, aplicaciones que ponen a disposición sus capacidades en la red y ejecutan remotamente los procedimientos. Nosotros creemos que las propuestas no son incompatibles, de hecho nos parecen tecnologías complementarias.

Si la Web Semántica es más una infraestructura que una tecnología, el papel que debe jugar en cualquier aplicación de la nueva generación, es de colágeno o factor unificador, bien sea entre los elementos de la aplicación como de la aplicación con el resto de la red, es decir, un cohesionador de los elementos de la aplicación entre ellos mismos y como lenguaje general de publicación de contenidos y funcionalidades. Sin embargo, no se puede forzar a las aplicaciones a que usen las especificaciones de Web Semántica obligatoriamente por encima incluso de sus necesidades de rendimiento, como ejemplo, JADE usa mecanismos adaptables para la comunicación, es decir, para comunicaciones interagente se pueden configurar los agentes para negociar el lenguaje de comunicación a usar: se puede seleccionar entre lenguajes reglamentados por FIPA y lenguajes específicos de la plataforma, en particular, JADE usa su propio lenguaje para comunicación dentro de la misma arquitectura, es decir dentro del mismo PC. En esta misma línea de ideas, en Univirtual hay que valorar la utilidad que podría tener el uso de RDF y Ontologías como base de la aplicación, pero no se debe dudar un sólo segundo sobre su uso en la publicación de funcionalidades y metainformación de los contenidos.

4.2.3.1 ContenidosLos contenidos de Univirtual se pueden clasificar en dos categorías principales

84

Page 85: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

según la finalidad: contenidos creados para la ejecución o visualización individual, como descripción de procedimientos para una clase o ejercicio, indicaciones o bibliografía, etc., y elementos de ayuda suscritos o subidos por los integrantes de la comunidad para enriquecer algún proceso de manera espontánea y colaborativa. Es decir, procesos y documentos dirigidos a individuos desde un nodo central (sea el profesor, tutor o Univirtual como tal) y procesos o documentos comunitarios alimentados y alterados por cualquier integrante de tal comunidad. Pero dado que Univirtual es un sitio de educación virtual, deben existir contenidos creados con más formalismo como capacitación en algún área del conocimiento, una materia de alguna carrera o contenidos de naturaleza específica diseñados para un grupo de personas con intereses predeterminados. Para estos últimos contenidos existen una serie de estándares que giran en torno a un concepto llamado Objetos de Aprendizaje que así como las tecnologías de Web Semántica, buscan establecer normas de descripción y modelado de procesos de aprendizaje y enseñanza virtual. El principal marco de trabajo para estos objetos de aprendizaje es IEEE LOM (IEEE Learning Object Model) que es implementado como núcleo de otra serie de estándares, como IMS y SCORM.

SCORM es una plataforma general que implementa una serie de procesos comunes a todas las especificaciones de educación y entrenamiento virtual. Los procesos comunes contemplados por SCORM son:

Estructuración de contenidos Modelamiento del proceso Empaquetamiento de contenidos, definición y publicación de API -

Application Programming Interface o Interfaz de programación de la aplicación- para el entorno de ejecución y modelamiento de datos para el entorno de ejecución (que incluye el modelo de seguimiento y entrega de contenidos y recursos).

La arquitectura de SCORM está compuesta por tres partes fundamentales en las que se especifican los procesos mencionados: panorámica -overview- que contiene la descripción general del objeto de aprendizaje, el modelo de agregación de contenido que contiene metainformación y etiquetas para los contenidos e información acerca de las relaciones entre los contenidos y el empaquetamiento, y, finalmente, un API y modelo de datos del entorno de ejecución, que especifica cómo se envía información entre el sistema y el usuario, así como cuáles variables pueden ser cambiadas dentro de la aplicación y cuáles no, así como los procedimientos de seguimiento para el progreso del estudiante.

En resumen SCORM tiene las siguientes tres partes:1. Una vista preliminar acerca del modelo, la visión y el futuro del mismo.2. Un modelo de agregación de contenido -CAM, Content Aggregation Model-, que

85

Page 86: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

indica cómo crear contenidos ensamblados como partes de un único paquete para ser movidos y reusados en diferentes plataformas.

3. Una especificación de Entorno de Ejecución -RTE, Run Time Environment- que dicta la manera en que los contenidos son desplegados al estudiante, la manera en que el estudiante es evaluado y cómo los resultados de esas evaluaciones son devueltos al sistema para su análisis.

Una imagen que muestra algunos de los elementos mencionados dentro de la arquitectura se muestra a continuación61:

En ésta imagen podemos observar la adhesión de SCORM a estándares probados como LOM a manera de marco general de modelamiento de contenidos y CMI como estándar de empaquetamiento y envío de objetos de aprendizaje.

61 http://www.lsal.cmu.edu/lsal/expertise/projects/scorm/scormevolution/reportv1p02/report-

v1p02.html Evolución de SCORM hasta el 2004

86

Figura 5. Estándares SCORM

Page 87: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

La arquitectura de SCORM puede constituir una interfaz con la Web Semántica en el proceso de agregación de contenido, debido a que su base es XML y metainformación del contenido del objeto de aprendizaje. El CAM (Content Aggregation Model o modelo de agregación de contenido) implementa conceptos comunes a los modelos de la IEEE, ARIADNE, Dublin Core e IMS, que son las organizaciones que han hecho los esfuerzos más importantes por definir y estandarizar el aprendizaje electrónico62, 63.

Finalmente para integrar estas tecnologías al estilo Web Semántica, hay que observar que hasta este punto usando SCORM como base arquitectónica y especificación fundamental, alcanzamos hasta el nivel ontológico de la pila de Web Semántica descrita en apartes anteriores con ciertas limitaciones. Un aporte interesante para hacer en este aspecto, sería usar los agentes inteligentes para imponer un marco lógico y procedimientos de prueba. Una posible base para este proceso o estas capas de la pila, es el lenguaje SparQL, lenguaje sugerido en las investigaciones del W3C que busca asimilar la experiencia con SQL (para búsquedas en Bases de Datos relacionales) con búsqueda sobre datos RDF que tendrían que ser producidos por el sistema, basados en la metainformación suscrita a un objeto de aprendizaje o cualquier otro elemento que existiera catalogado en el mismo. Sin embargo en este proyecto nos concentramos en dar la base de diseño y proponer la infraestructura base para todas estas futuras aplicaciones o funcionalidades del sistema.

4.2.3.2 AutenticaciónEl otro aporte necesario para implementar completamente la pila de la Web Semántica, es incorporar mecanismos de autenticación de los usuarios por medio de firmas digitales y cifrado de la información. Estos serían atributos de la autenticación de usuarios cuando haya lugar a ésta y a la manipulación de los datos de los objetos de aprendizaje. Como ya sabemos, la cima de la pila de la Web Semántica está coronada por las redes de confianza. Un sistema multiagente en Univirtual puede implementar la calificación de los usuarios y crear la red de confianza entre ellos con base en la evaluación y la observación que hace de los comportamientos de los integrantes de la comunidad, los contenidos suscritos y estudiados y las mutuas referencias entre ellos mismos, dando mejores opciones de búsqueda para los usuarios concurrentes al sitio, estableciendo relaciones con base en intereses comunes y posiblemente mejorando la interacción con los

62 Randall House Associates, Inc. SCORM, 2003. http://www.rhassociates.com/scorm.htm

63 Randall House Associates, Inc. ADL DoD initiative. http://www.rhassociates.com/adl.htm

87

Page 88: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

nuevos usuarios.

Investigaciones y sistemas que incorporan experimentalmente estas tecnologías (autenticación basada en razonamiento, redes de confianza y aprendizaje en red) pueden verse en http://www.rewerse.net/ y http://trust.mindswap.org/. Adicionalmente un avanzado experimento de la universidad de Princeton hace uso de la lógica de orden superior para ejecutar autenticaciones y se puede encontrar en este URL http://www.cs.princeton.edu/sip/projects/pca/.

4.2.3.3 HerramientasUn elemento clave es la integración de la librería de Java Jena para el procesamiento de aplicaciones orientadas a la Web Semántica. Esta librería o marco de trabajo, tiene una implementación de SparQL llamada ARQ y objetos que permiten el trabajo con documentos RDF/RDFS -escritura, lectura, almacenamiento y estructuración- y escribir y generar documentos en OWL que es el lenguaje de ontologías recomendado por la W3C.

Existe una herramienta que parece ser la más popular herramienta para desarrollar ontologías de dominio específico llamada Protégé64, que presenta una interfaz gráfica muy atractiva y un API que permite el uso de sus recursos para otras aplicaciones. El uso de Protégé podría ser un buen punto de partida para el análisis y verificación de ontologías. Aunque no existe un dominio específico en Univirtual es necesario usar ontologías generales ya estudiadas y desarrolladas como SUMO, EuroWordNet, GOLD o Dublin Core y aportar en su desarrollo posiblemente desarrollando su representación para Protégé. Sin embargo nos parece que Protégé es una excelente herramienta para el desarrollo de aplicaciones basadas en conocimiento dentro de un dominio específico en organizaciones con dirección centralizada por lo que no nos inclinamos a basar la propuesta en ésta herramienta sino más bien en usarla tangencialmente para analizar y mejorar los resultados del sistema o para generar una base sobre la cual comenzar.

Existen también propuestas de hacer de los Web Services la interfaz pública de los sistemas de agentes inteligentes, ¿Podrían éstos basarse en recursos RDF/RDFS y OWL para extender la Web Semántica? esta es una convicción que nosotros tenemos y que viene siendo investigada en algunas universidades e institutos. A nosotros nos gustaría que esta idea fuera explotada una vez que exista suficiente información en la base de conocimiento que desarrollaría la

64 Stanford Medical Informatics. Protégé ontology editor and Knowledge adquisition system, 2006.

http://protege.stanford.edu/

88

Page 89: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

implementación de este proyecto.

4.2.4 Reconocimiento de lenguaje natural

4.2.4.1 OntologíasUn elemento de investigación para asimilar los contenidos existentes en Univirtual es el estudio de WordNet o mejor Euro WordNet, una Ontología de propósito general (o fundamental) basada en la lingüística del idioma Inglés en el caso de la primera y de varias lenguas Europeas en el caso de la segunda. WordNet es un proyecto que viene siendo ampliamente usado y que ya cuenta con múltiples APIs para muchos lenguajes65 y parece ser un hito en el análisis semántico porque aparece vinculado a otros proyectos de múltiples lenguas como Nimda66 y Global WordNet67. Hay que considerar la vinculación de la Universidad con proyectos de esta índole y crear una interfaz entre éstos y Dublin Core o integrarlos con ontologías más generales como SUMO de la IEEE. Recordemos que Dublin Core es la ontología de metadatos que es base de muchos trabajos orientados a la educación virtual como SCORM e IMS, además que la ontología misma parece ser una de las ontologías de propósito general de más actividad. Un proyecto más ambicioso y más especializado cuyo estudio convendría mucho implementar en la universidad, en especial por el aspecto social, es GOLD (General Ontology for Linguistic Description -Ontología General para Descripción Lingüística), este proyecto busca crear una ontología que permita establecer comparativos entre lenguas diferentes y así establecer un puente lingüístico entre culturas. Ellos ponen un especial énfasis en el entendimiento y equiparación de lenguas tradicionales de poblaciones nativas y de la posibilidad que esto daría a estas poblaciones de tener acceso a toda la información que existe en Internet -o en nuestro caso a la instrucción disponible en Univirtual. GOLD usa dos estrategias de desarrollo: desde los conceptos lingüísticicos más generales adoptados por las lenguas conocidas y desde los conceptos más específicos de tales lenguas. Éstas

65 Princeton University. WordNet links to related projects. http://wordnet.princeton.edu/links

66 Maurice Gittens. The Mimida project home page, 2005.

http://www.gittens.nl/SemanticNetworks.html

67 Irion Technologies, Princeton University. Global WordNet Association.

http://www.globalwordnet.org/

89

Page 90: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

dos estrategias tienen el fin de tener la mayor cobertura posible y simplificar el trabajo. Usa SUMO como ontología superior o básica y su principal atractivo es que está orientada a la Web Semántica y al análisis lingüístico general apoyando las lenguas nativas en la búsqueda de mejorar las condiciones de culturas subvaloradas. Este proyecto es patrocinado por la National Science Foundation y Electronic Metastructure for Endangered Language Data (Emeld) entre otros y parece haber tomado un giro hacia la interoperabilidad de datos sin abandonar el hecho de partir del análisis lingüístico de los mismos 68.

Establecer la Web semántica a gran escala implica el uso generalizado de documentos Web con marcados de anotación basada en ontologías o un equivalente almacenado en una base de datos o similar. Para lograr este objetivo un plan sugerido por Paul Buitelaar and Thierry Declerck en su disertación “Linguistic Annotation for the Semantic Web” 69, es aplicar recuperación de

68 Gold Community. Gold community website, 2006. http://www.linguistics-ontology.org/

69 BUITELAAR, Paul; DECLERCK, Thierry. Linguistic Annotation for the Semantic Web, 2003.

90

Figura 6. SUMO: Suggested Upper Merged Ontology

Page 91: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

información para extraer pedazos de información de los textos que en términos generales son textos de escritura libre y sin estructuras bien definidas para, luego de tener una serie de elementos semánticos, aplicar algoritmos de agrupamiento (clustering) para su clasificación.

4.2.4.2 HerramientasExisten importantes herramientas para efectuar PLN orientadas a la Web Semántica, sin embargo no se ha llegado a consenso acerca del lenguaje de ontologías a usar. Entre los lenguajes de ontologías más populares está DAML+OIL muchas aplicaciones y herramientas lo usan. En caso de usar alguna de éstas herramientas hay que considerar la posibilidad de incorporar al sistema un conversor de DAML+OIL a OWL publicado en el URL http://www.daml.org/2003/06/owlConversion/ escrito en Perl o implementar su equivalente en Java o el lenguaje de implementación que se vaya a usar finalmente.

GATE70 es la herramienta recomendada para realizar las tareas de procesamiento de lenguaje natural orientadas a la Web Semántica que es incorporado en proyectos tan importantes como KIM71 que es una conocida plataforma de administración de conocimiento en la que GATE forma la base de análisis de lenguaje natural y ha permitido su migración a la Web Semántica. GATE es una sigla derivada de General Architecture for Text Engineering, es decir, arquitectura general para la ingeniería de texto. GATE es denominada arquitectura porque está compuesta de tres elementos diseñados para interactuar transparentemente: una arquitectura o estructura organizacional para tareas de PLN, un marco de trabajo (Framework) o librería de clases que ejecutan tales tareas y que permiten la integración de esta arquitectura en aplicaciones de PLN y una interfaz gráfica que permite y facilita operaciones de diseño y desarrollo de componentes.

La arquitectura de GATE usa el desarrollo de software basado en componentes, orientación a objetos y movilidad del código, está desarrollado en Java y su licencia es LGPL. Usa Unicode para todas sus operaciones y soporta múltiples formatos de documentos como RTF, HTML, SGML, texto plano y por supuesto XML, usa una versión modificada del formato de anotación TIPSTER y marcación aparte (stand-off) que relaciona un documento analizado con un documento de anotación externo a él con el fin de no alterar la sintaxis del documento original.

70 GATE. General Architecture for Text Engineering. http://gate.ac.uk/

71 KIM Platform. The KIM Platform for knowledge and information management, 2006.

http://www.ontotext.com/kim/index.html

91

Page 92: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Esta arquitectura que recomendamos viene con una serie de utilidades adicionales como ANNIE, un sistema de extracción de información que usa técnicas de máquinas de estado finito para implementar tareas que van desde tokenización (reconocimiento de elementos -palabras) hasta etiquetado semántico y particionamiento de frases. Incluye también un motor de anotación basado en expresiones regulares llamado JAPE -Java Annotation Patterns Engine-, herramientas de medición de la calidad de la anotación realizada por el sistema y su desempeño (Annotation diff y Benchmarking Tool) y finalmente GUK -GATE Unicode Kit- que complementa a JAVA para soportar mejor la codificación UNICODE. Todas estas herramientas y utilidades adicionales son conocidas como CREOLE (Collection of REusable Objects for Language Engineering) y conforman el marco de despliegue de las aplicaciones desarrolladas con GATE, es decir, especifican cómo empacar y configurar los objetos para su instalación y despliegue final.

4.2.5 Arquitectura de sistemas de educación virtual

La arquitectura de sistema de educación virtual debe ser una combinación o adaptación de la arquitectura de sistema sugerida en el proyecto de grado “INCORPORACIÓN DE AGENTES INTELIGENTES A LOS PROCESOS DE ENSEÑANZA VIRTUAL COMO BASE PARA EL DESARROLLO DE UN MODELO DE UNIVERSIDAD VIRTUAL” de las Ingenieras de sistemas y computación Carolina Moreno y Sandra Muñoz, que estudia profusamente las propuestas de aprendizaje computacional, teorías pedagógicas y su implementación por medio de Agentes Inteligentes para proponer finalmente un modelo de ITS -Intelligent Tutoring System- basado en agentes inteligentes que compondría la arquitectura interna del sistema. Esta etapa de análisis sería especificada desde un alto nivel con el fin de ayudar en la recolección de requerimientos y explotando la fortaleza de la metodología Tropos de recolectar requisitos inluyendo las necesidades de los actores y la manera en que harían las cosas en un marco ideal (antes de modelar el sistema mismo). Éstas son las fases de requerimientos tempranos y tardíos, sin embargo, los detalles de este modelo son internos al sistema, para acoplarlo a la Web Semántica (la parte externa) se debería usar el modelo SCORM que recoge una serie de especificaciones realizadas por diferentes organizaciones dedicadas a investigar y estandarizar de los sistemas de instrucción virtual como IEEE, ADL e IMS pero desde el punto de vista externo, es decir, una especificación base para las interfaces y los procesos de interacción hacia afuera. Este modelo declara las características técnicas que deben tener los contenidos para ser conformes con él. Detalla en forma particular la estructuración

92

Page 93: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

de los contenidos, es decir, qué es una lección, qué es un módulo y qué es una clase, así como la metainformación necesaria para describir cada uno de esos elementos; el empaquetamiento de los contenidos; formas de interactuar del contenido con el sistema de enseñanza, es decir, un API del contenido y finalmente las relaciones de secuencia y ramificación válidos o sugeridos de los contenidos. Vemos que SCORM no incorpora ninguna especificación sobre la arquitectura del sistema de enseñanza, pero sí detalla las maneras en que se ensamblan y distribuyen contenidos.

Es importante observar el hecho de que SCORM se basa en un modelo uno a uno de estudiante a sistema de enseñanza, pero Internet y las soluciones de Software Libre y desarrollo comunitario de objetos intelectuales desvirtúa un poco que este modelo sea el único modelo válido para la educación virtual. Es probable que el actual modelo de SCORM sea sólo una consecuencia de la evolución necesaria del proceso y ya se contemple este tipo de interacción de las comunidades educativas. Un ejemplo de este comportamiento de desarrollo comunitario de objetos intelecuales son los populares Wikis, producto de la revolución que ha supuesto el fenómeno del Software Libre en Internet. Un Wiki es una herramienta de software para construcción comunitaria de conocimiento basada en el principio de que los usuarios no sólo usan el contenido del wiki sino que lo pulen acumulativa y colectivamente con base en los conocimientos individuales. Un fenómeno supremamente interesante en este contexto es el de los sabotajes, que normalmente son advertidos en un tiempo muy corto dependiendo de la cantidad de usuarios del wiki y del contenido mismo (si es muy usado o no) y son enmendados muy rápidamente.

En este proyecto sugerimos que es necesario que Univirtual se dé cuenta y trabaje sobre la creación comunitaria de contenidos académicos, aprovechando incluso las capacidades de investigación que muchas veces tienen los estudiantes. Sin embargo para incorporar correctamente esta idea, es necesario considerar el aporte que nosotros deberíamos hacer a la comunidad para que ella misma se enriquezca de la experiencia, esto supone, dejar de lado el carácter mercantilista de la educación virtual y permitir que una comunidad espontánea de usuarios usen gratuitamente el sitio para poder tener una base de personas que enriquezcan los contenidos suficientemente para luego ser compilados y empaquetados como objetos de aprendizaje. Este modelo ya está integrado dentro de la herramienta Moodle -que es la herramienta que usa Univirtual-, pero tal herramienta debe ser modificada en su código fuente para llevar a cabo la última tarea mencionada: interpretar y clasificar los contenidos de los foros y los wikis dentro de un elemento autodescrito que se pueda empaquetar para conformar un objeto de aprendizaje conforme con las especificaciones SCORM.

Crear objetos con éstas características se podría lograr de dos maneras:

93

Page 94: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

integrando uno o varios agentes inteligentes que generen metainformación con técnicas de extracción de información de los contenidos y la conviertan a los formatos soportados por SCORM o simplemente integrando herramientas de extracción de información clásicas como GATE para clasificar y empaquetar dichos contenidos. Éstas dos formas de hacerlo se corresponden con los paradigmas estructurado/Orientado a Objetos -es decir una combinación de los dos- y Orientado a agentes. Dado que éste proyecto versa sobre Agentes Inteligentes, es la última opción la que tomaremos como sugerencia por las razones expuestas en los otros capítulos.

4.2.5.1 ITS clásicoLa siguiente figura ilustra la arquitectura de un ITS (Intelligent Tutoring System), como se describe en el trabajo de Sandra Muñoz y Carolina Moreno en el proyecto de grado mencionado:

La idea fundamental es que exista dentro del sistema un modelo tanto del estudiante como del experto, basados en el conocimiento de cada uno y un módulo pedagógico que proponga las estrategias necesarias para que el estudiante aprenda lo que se le está enseñando y seleccionar de estas estrategias, la que mejor se adecue al nivel de conocimiento del mismo. En éste esquema clásico falta incluir dónde y cómo interactúan el profesor del curso, el diseñador de contenidos y los expertos involucrados en éste diseño. Un factor importantísimo dentro del modelo de conocimiento constructivo predominante en

94

Figura 7. Arquitectura de STI

Page 95: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Internet, es el papel que juegan en éste modelo los espectadores, tengan o no acceso a las funcionalidades ofrecidas por la herramienta, ellos pueden ver qué se ofrece y pueden estar interesados en participar de alguna manera. Dada esta perspectiva, los actores a considerar serían los estudiantes, los profesores de los cursos (presenciales o tutores del curso virtual), los diseñadores de contenidos (que en nuestro caso sería Univirtual y sus expertos pedagógicos, del dominio o materia enseñada y en usabilidad de los elementos, es decir, facilidad de uso y estética del sitio) y los espectadores (que son los clientes potenciales de las funcionalidades del sitio).

4.2.5.2 ITS Extendido

Figura 8. Arquitectura de STI extendido

Como vemos en la figura anterior, nuestro modelo orientado a la Web necesita una base ontológica que coleccione descripciones semánticas de cada elemento accesible dentro del sistema y sea capaz de vincularlas cada vez que estos elementos sean accedidos por alguno de los actores mencionados. Dado que OWL es el lenguaje de ontologías recomendado por el consorcio W3C apoyamos

95

Page 96: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

la adopción de éste formato para las ontologías, a su vez, éste formato está basado en XML y en Unicode que son la base de la pila de la Web Semántica. Una de las propuestas a considerar para la implementación de agentes inteligentes en Univirtual como intérpretes de lenguaje natural es el uso de los wikis (empezando con el módulo wiki de Moodle) para construir ontologías de dominio específico basándose en ontologías generales y en nuestro caso Dublin Core que como vimos, es la base de las propuestas unificadas orientadas a la educación virtual como SCORM e IEEE LOM, esto puede liberar a la organización de la dispendiosa tarea de crear ontologías de dominio específico de manera centralizada y hacerlo a través del modelo constructivo de los Wikis que ha demostrado dar excelentes resultados (Por ejemplo la WikiPedia72). Este uso de Internet es el uso previsto de esta tecnología, donde todas las personas pueden hacer su aporte y el conocimiento se entrelaza haciendo posible la convivencia de todos los puntos de vista en un medio común, reflejando la realidad y en nuestro caso el ambiente diverso de la Universidad. Para este objetivo es necesario estudiar con detenimiento la finalidad y metodología de autenticación de los usuarios del sistema, nosotros proponemos dejar la autenticación de los usuarios sólo con el objetivo de creación de las redes de confianza mencionadas anteriormente, ya que el modelo constructivo de los Wikis prevé que el conocimiento es revisado por la comunidad que lo explota y tener muchos usuarios es absolutamente indispensable para que éste modelo funcione.

4.3 MARCO CONCEPTUAL

Los conceptos que se exponen a continuación son las consecuencias naturales de las tecnologías mencionadas hasta el momento y las características analizadas hasta ahora. Como arquitectura del sistema usamos los conceptos de la metodología recomendada Tropos y con base en tales conceptos ilustramos cómo empezaría el análisis del sistema (en el análisis temprano está la principal fortaleza de la metodología) a fin de respaldar un sistema cuya arquitectura sea similar a la de un ITS pero con posibilidad de ser distribuida gracias a las virtudes de la plataforma subyacente JADE. Ésta es, pues, la manera en que nosotros vemos que deben articularse las herramientas propuestas en una implementación final y a seguidamente hacemos mención a otros elementos que pueden enriquecer el sistema y cuya calidad de reusables harían la construcción del sistema una construcción de resultados más inmediatos que si se construyera

72 Wikipedia. Home Page, 2006. http://wikipedia.org/

96

Page 97: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

desde cero.

4.3.1 Arquitectura

La etapa de requerimientos tempranos ( early requirements ) consiste en analizar e identificar los principales agentes y sus intenciones en el sistema, éstos son llamados agentes interesados (stakeholders) y son modelados como agentes sociales que dependen unos de otros para alcanzar sus metas, llevar a cabo sus planes y surtir o proveer recursos para llevar a cabo la operación. Los agentes interesados no están limitados a los agentes que van a realizar el procesamiento, sino los humanos mismos que están interesados en algún resultado de la operación del sistema.

Las intenciones son modeladas como metas, las cuales a través de un análisis orientado a metas se descomponen en submetas y que eventualmente darán soporte a la evaluación de alternativas.

En esta etapa se identifican solamente los actores interesados en el sistema y la manera en que interactúan con el fin de capturar los requerimientos funcionales y no funcionales de la manera más pura posible, es decir, sin sesgos de tipo tecnológico, sin mencionar aspectos de la tecnología subyacente que podrían alterar la percepción de lo que los usuarios o actores desean que suceda. De los análisis en secciones anteriores llegamos a la conclusión de que los siguientes actores interesados mínimos a considerar: estudiantes, espectadores, profesores/tutores y Unidad Virtual o Univirtual.

A continuación presentamos unos actores mínimos y sus metas previstas que deberían ser tomados como base para el diseño final del sistema y extender el listado de metas si es necesario. También listamos breves descripciones de las metas cuando nos pareció necesario, tales descripciones se pueden usar como guías en el diseño de los planes que corresponde ejecutar para alcanzar la respectiva meta:

4.3.1.1 Metas de estudiantes: Cursar temas/cursos: Elegir los cursos, temas o programas a estudiar. Conocer un tema: A través de los documentos o multimedios no

interactivos.

97

Page 98: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Aprender un tema o técnica: A través de los recursos interactivos o multimedios.

Encontrar ayudas: A través de búsquedas de recursos o indicaciones/descripciones de uso del sistema o de los recursos.

Obtener buenas calificaciones: Observar y mejorar sus calificaciones. Interactuar con la clase, comunidad y profesor/tutor. Aprovechar el sistema: Usar tantos recursos como sea posible y estén

previstos dentro de un curso, tema o programa, así como las herramientas adicionales de interacción con el sistema y la comunidad.

Aportar a la comunidad: Sugerir o crear contenidos adicionales (documentos, ejercicios, multimedios, etc.).

Interesarse por temas más avanzados.

4.3.1.2 Metas de espectadores: Encontrar información: A través de búsquedas de información

especializada. Conocer las funcionalidades y utilidades del sistema de educación virtual. Usar funcionalidades y utilidades públicas del sistema. Inscribirse en un curso o tema de estudio: Solicitar suscripción a un curso o

tema. Interactuar con la comunidad.

4.3.1.3 Metas de profesores/tutores: Dictar/Asistir un curso: Escoger temas para un curso, Escoger ejercicios

para un tema o un curso. Asistir a los estudiantes para lograr su mejor desempeño: Hacer

seguimiento del nivel de aprendizaje de los estudiantes, Sugerir o elegir estrategias pedagógicas.

Interactuar con los estudiantes: Resolver preguntas y dudas, Estimular a los estudiantes a continuar y mejorar.

Encontrar Recursos: A través de búsquedas de recursos almacenados y catalogados (documentos, ejercicios, multimedios, etc.).

Contribuir a la comunidad: Crear o poner a disposición nuevos recursos (documentos, ejercicios, multimedios, etc.).

4.3.1.4 Metas de Univirtual: Diseñar contenidos: Con base en información sobre demanda. Compilar objetos de aprendizaje: A través de la compilación de contenidos

creados por la comunidad, a través de búsqueda de objetos de aprendizaje disponibles para complementar programas o cursos.

Analizar el desempeño del sistema: Establecer demanda y uso de los

98

Page 99: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

objetos de aprendizaje, Establecer efectividad de los objetos de aprendizaje y encontrar patrones de uso.

Publicar funcionalidades y contenidos: Poner a disposición los objetos de aprendizaje y servicios eficientemente.

Administrar acceso: Definir políticas de acceso y uso de los recursos del sistema.

Promover el uso de la educación virtual.

Tropos distingue entre dos tipos de metas: metas blandas y metas fuertes, dependiendo de la necesidad y posibilidad de que se cumplan o no. Las metas fuertes entonces, son las que componen directamente la funcionalidad del sistema o que son estrictas en su cumplimiento y que tienen una definición precisa y criterio claro de satisfacción verificable por el sistema. Deduciblemente, las metas blandas son aquellas que no tienen una definición clara o un criterio claro para determinar su satisfacción y son típicamente usadas para modelar los requerimientos no funcionales del sistema. A pesar de que las metas blandas no son de mucha importancia en nuestras metodologías tradicionales, en éste estadio de la disciplina de la programación, éstas metas componen el verdadero valor agregado de un sistema, por lo tanto, no se pueden dejar como piezas sueltas y se deben aprovechar del hecho de que los agentes inteligentes pueden implementar algoritmos que soporten bien las decisiones inciertas o ambiguas y pueden generar verdadera satisfacción de los usuarios cumpliendo tales metas.

En el listado de metas por agente que acabamos de mostrar, las metas blandas están en letra cursiva y al final del listado para distinguirlas de las metas fuertes, así como en el diagrama de actores, aquellas se representan con nubes en vez de óvalos.

Un ejemplo de metas blandas es “interesarse por temas más avanzados” para el actor “estudiante”. Tal interés es un requerimiento no funcional (no de estricto cumplimiento) y no parece tener un criterio directo para evaluar su satisfacción.

Univirtual debe generar contenidos, funcionalidades, políticas de acceso y vinculaciones de profesores/tutores y estudiantes con los cursos y/o temas. Éstos son recursos o dependums que éste actor debe generar para algunas de las dependencias encontradas. Los estudiantes y espectadores dependen de las políticas y funcionalidades que permita el actor Univirtual, pero los estudiantes dependen también de los contenidos a los que esté suscrito cada uno de ellos y de su vinculación con éstos. Los profesores/tutores dependen de los contenidos a los que están vinculados y a través de éstos dos elementos dependen de Univirtual que es quien crea y permite los contenidos y asigna las vinculaciones de los profesores con aquellos.

99

Page 100: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

El anterior análisis de metas trivial, se representa en Tropos con el siguiente diagrama de Actores y dependencias.

En éste diagrama podemos ver los elementos fundamentales de la metodología para el modelamiento de actores: agentes, metas fuertes y blandas, los dependums y dependencias. Es necesario aclarar que las dependencias no siempre están vinculadas con dependums, sólo en ciertos casos donde es necesario transferirlos entre los actores involucrados en la dependencia en cuestión o cuando alguna meta depende directamente de la interacción entre los agentes involucrados; así mismo los actores no siempre tienen metas blandas: el actor Univirtual por ejemplo podría no interesarle promover el uso de la educación virtual.

100

Figura 9. Modelo de agentes fundamental

Page 101: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

El análisis de requerimientos tardíos consiste en vincular los actores descubiertos en los requerimientos tempranos a través de sus metas con el sistema a crear. Es decir, extender el diagrama de actores de los requerimientos tempranos con el nuevo actor que compone el sistema a ser creado. La metodología aquí consiste en transferir metas o dependencias hacia un nuevo actor que es el sistema como tal, “sistema a ser creado” (system to be) en los términos de Tropos, y así conformar el conjunto de metas fundamentales o más específicas del sistema, también es válido crear metas para éste que no partan directamente de metas de algún actor, sin embargo una buena costumbre es relacionar los actores con el sistema a través de metas y recursos (Metas representadas con óvalos y nubes, y recursos representados con rectángulos). Esta es una de las fortalezas de esta metodología: establecer la justificación de las funcionalidades y la trazabilidad desde los actores mismos y vincularlos a través de sus metas con el sistema, los autores de Tropos enuncian esto diciendo que ésta metodología incluye el porqué de los requerimientos. Esta fortaleza establece una trazabilidad directa de las metas de los interesados en el sistema con las funcionalidades del mismo y permite comparar fácilmente si el sistema logró finalmente éstas metas a través de los planes y la implementación.

Vamos ahora a definir unas metas fundamentales del sistema que llamaremos SITEUV o Sistema Inteligente de Tutoreo Extendido de Univirtual, en la perspectiva de que tenga como base un sistema de almacenamiento semántico -en formatos RDF y OWL-.

4.3.1.5 Metas de SITEUV Ofrecer Búsquedas Semánticas: Ajustadas según el perfil de las metas de

los actores (Espectador, Estudiante, Profesor/Tutor y Espectador) y derivadas de las búsquedas mismas y del contexto de ejecución o instancia -parámetros de sesión de usuario: hora, lugar, etc.-.

Mostrar/Publicar Funcionalidades: Almacenar descripción ontológica de las funcionalidades y mostrar perfiladas para cada actor.

Reconocer y almacenar sesiones de usuario: Equivalente a autenticar ingreso de usuarios, recuperar preferencias y modelo de personalidad.

Componer/Crear modelos de usuarios: Interpretar la interacción de los usuarios con el sistema para estimar estado de ánimo e intereses.

Descubrir/Clasificar significado de contenidos: Marcar contenidos y guardar su índice en la base ontológica.

Estas son unas metas fundamentales del sistema que pueden ser extendidas especificando muchas más metas. Lo importante acá es observar que el objetivo principal de estas metas es crear, poblar y usar la base ontológica a partir de cada elemento y cada meta de los actores descritos en el análisis de requerimientos

101

Page 102: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

tempranos. Desde acá, y de manera intuitiva, se puede observar la necesidad de los agentes de extracción de información y generación de descripciones, ya que es a partir de la extracción de información que se clasifican y contextualizan los contenidos. Esta conclusión, sin embargo, debería ser resultado del análisis de planes/capacidades para cumplir metas y el agrupamiento de capacidades para determinar tipos de agentes que ocurre durante la fase de diseño de la arquitectura.

Hemos vislumbrado a partir de qué necesidades nacen los agentes de extracción de datos y de generación de descripciones, pero ésta es una tarea que le corresponde a los desarrolladores finales del sistema, debido a que no necesariamente éstos agentes tengan ese único propósito, sino que del análisis de medios y fines surgen las capacidades necesarias para cumplir los planes que se encontraron en el resto de la etapa de análisis de requerimientos. Del agrupamiento de tales capacidades surgen los tipos de agentes para el sistema final, por lo tanto, a esta altura no conocemos la cantidad ni funcionalidad completa de los agentes. Ejemplos de capacidades que intuitivamente podríamos ver sería la capacidad de recorrer los contenidos para indizarlos y analizarlos luego.

4.3.2 Plataforma

Nuestra recomendación de plataforma implica el uso de un modelo orientado a componentes, que haga uso de los recursos y librerías mencionadas para realizar la arquitectura, en especial GATE y su modelo de componentes para implementar todo lo relativo a la manipulación de los textos desde la perspectiva del sistema y JADE como plataforma de comunicaciones y agentes. Ésta debe ser entonces la base para aplicaciones más ambiciosas como la generación automática de contenidos o la selección de estrategias pedagógicas dinámicas y adaptables una vez que se logre la maestría en éstos elementos, en especial de GATE, en el que cualquier aplicación que se vaya a desarrollar con base en él, debe estar cruzada por un fuerte conocimiento de las características del dominio y lenguaje en especial que se use (suponiendo que se dominan las características del idioma o se encuentran recursos disponibles para poner a punto el sistema para nuestro idioma en particular) y cómo modificar los parámetros del sistema para que haga un reconocimiento efectivo de las entidades y las partes de la oración que nos interesan.

Vamos a enumerar una serie de tecnologías y medios que puede ser necesario conocer y que pueden ser el puente entre la arquitectura actual de Univirtual y el

102

Page 103: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

futuro de la misma implementando éste proyecto.

4.3.2.1 MoodleMoodle es una plataforma de educación virtual en el modelo del Software Libre que soporta la creación de objetos de aprendizaje en el formato SCORM. Dado que Moodle ya existe, se acoge al modelo de Software Libre y construcción comunitaria de contenidos y está en uso en Univirtual, nos parece interesante la idea de modificar su código fuente para crear un sistema alterno que interactúe con el servidor Web (que en este caso es Apache) para establecer las sesiones y analizar todos los recursos disponibles para los diferentes usuarios. Otro uso potencial de Moodle es la posibilidad de incorporar a todas las páginas generadas por Moodle un Applet de Java que examine el entorno del navegador Web y esté retroalimentando el sistema con comportamientos del usuario, tiempos de espera, etc., de éste modo la plataforma alterna integrada con SITEUV permitiría analizar cada usuario y generar un modelo de su comportamiento, que en la arquitectura de un ITS se corresponde con el modelo del estudiante. Claro está que si es posible generar tal Applet, éste sería una herramienta no sólo para el modelo del estudiante sino para modelar cualquier actor o persona que esté interactuando con el sistema a través de un navegador Web (que es la única forma prevista de interacción hasta ahora).

4.3.2.2 Servidor WebApache Web Server es una de las aplicaciones líderes del movimiento del Software Libre, éste es una aplicación que ha venido creciendo y demostrando una estabilidad y capacidad incomparable, así como unas extraordinarias capacidades de extensión e integración con otras aplicaciones.

El servidor (o servidores) Web es un punto inevitable para cualquier petición que se haga al sistema, por lo tanto cualquier recurso disponible en el sitio debe pasar por él (o ellos). Si fuera posible, extender el servidor Web de tal manera que SITEUV accediera a todas las peticiones hechas al mismo bajo ciertas condiciones sería posible hacer pre y postprocesamiento a tales peticiones, como sería verificar la existencia de una descripción del recurso solicitado, llevar estadísticas de acceso, etc.. De ésta manera SITEUV tendría acceso a todos los recursos, incluso los que no se encuentran disponibles directamente en el sistema de archivos o servidores de la Universidad porque tendrían que estar necesariamente referenciados dentro de Univirtual, es decir, SITEUV podría conocer incluso los URLs que apuntan a recursos de interés en Internet pero referenciados en páginas dentro del sistema y catalogar estos URLs o describirlos

103

Page 104: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

según sea necesario.

Existen varios mecanismos en Apache Web Server que permitirían implementar este método: las acciones (action), manipuladores (handlers) y reescritores (mod_rewrite) y extensiones como Jakarta73 que permite ejecución de aplicaciones Java en el modelo de guiones del lado del servidor (JSP -Java Server Pages). Todos éstos mecanismos permiten que una aplicación externa se encargue de la gestión de las peticiones para tipos de archivo específicos (en el caso de los manipuladores), para directorios específicos (en el caso de las acciones) y reescribir URLs tanto en las peticiones entrantes como las respuestas del servidor (en el caso de mod_rewrite). Ésta manipulación de información interceptada corresponde a procesar la información antes y después de enviarla o recibirla a los navegadores, lo que en el párrafo anterior llamábamos pre y post procesamiento. Si éstas acciones se delegan a SITEUV, es decir, que se configura Apache Web Server para permitir a SITEUV hacer estas tareas, se tendría acceso a cualquier recurso que sería identificado, clasificado y descrito en la base de conocimiento y en caso de no estar referenciado, se interpretaría y almacenaría o se encolaría para su posterior análisis. Además de interceptar las referencias (tanto internas como externas al sitio), se podría incluir el código necesario para que todas las páginas tengan el Applet observador que vigile las acciones del usuario y sugiera cursos a tomar según el nivel o estado de ánimo deducido de lo que haga el usuario en cada página sin reescribir ningún código de la plataforma Moodle, pero sí podría invocar o sugerir el uso de alguna funcionalidad que ésta provea según el caso.

4.3.2.3 ComponentesDentro de la terminología de Tropos, Gate, o más específicamente ANNIE (un componente de Gate para la extracción de información) debería ser una capacidad de alguno o algunos de los agentes, y en caso de que el tráfico sea demasiado y la carga computacional del sistema sea muy grande, éste componente, o el agente con esta capacidad puede ejecutarse en un servidor aparte que reporte los resultados a la base de conocimientos o asíncronamente respecto a la tarea de indizar los contenidos. Este componente puede ser usado dentro del modelo de componentes de Gate llamado Creole que su vez está basado en Java Beans.

El papel de Jade es la base de todo el sistema en términos de implementación. Jade es una arquitectura completa en sí para el desarrollo de sistemas multiagente. Jade implementa mecanismos estándares comunes a los sistemas multiagente como administración del ciclo de vida de los agentes, mensajería interagente e intraagente, estructura normalizada de mensajes, protocolos de

73 Apache Software Foundation. Apache Jakarta Project, 2005. http://jakarta.apache.org/

104

Page 105: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

interacción interagente, manipulación de ontologías y mecanismos de seguridad y más importante todavía: permite el uso de cualquier lenguaje como lenguaje de contenidos (aunque soporta de manera nativa FIPA-RDF), es decir, podemos seleccionar OWL para transferir contenidos entre los agentes o mejor aún, un objeto general Contenido con una interfaz general para extraer su información en cualquier formato necesario.

A continuación mostramos un diagrama que ejemplifica la manera sugerida en que deberían interactuar los elementos mencionados anteriormente.

Dado que Moodle contiene las funcionalidades necesarias para compilar y empacar objetos de aprendizaje conformes con SCORM, el sistema en ésta arquitectura sólo tendría que tomar decisiones de cuándo un contenido podría o debería ser incluido dentro de un objeto de aprendizaje y hacer las llamadas necesarias al API de Moodle para ejecutar esta operación con sus respectivos parámetros. Es necesario aclarar que el usuario en éste diagrama modela todos los posibles actores del sistema.

105

Figura 10. Interacción de componentes

Page 106: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.3.3 Sugerencias de diseño y despliegue

Dadas las recomendaciones hechas en los capítulos anteriores, no queda sino trazar un plan de despliegue fundamental que sirva de ruta de diseño y despliegue final del sistema.

4.3.3.1 OntologíasUnivirtual debe escoger una ontología general o fundamental sobre la cual crear las ontologías de dominio específico. Esta organización ya tiene una incipiente organización temática por áreas del conocimiento, lo que sugiere la necesidad de una ontología general limitada a las categorías más generales como partida. Dentro de las posibilidades expuestas en éste proyecto de grado, están SUMO, GOLD, EuroWordNet y Dublin Core que es la recomendación final, basándonos en el hecho de que Dublin Core es la base de las especificaciones orientadas a la educación y teniendo en cuenta que es una propuesta limitada a la inclusión de metadatos en otros documentos lo cual a su vez la ha hecho muy popular.

Más allá de que Dublin Core sea la base ontológica de las especificaciones educativas, las otras ontologías generales representan un ejemplo para el desarrollo de las ontologías específicas que se van a desarrollar, bien sea manualmente o usando al sistema para componerlas y además éstas ontologías se han venido usando como herramientas para la extracción de información que es un elemento fundamental para la generación y población automática de ontologías específicas. Dado que nuestro país es un territorio multicultural de mucha riqueza, recomendamos que el equipo de desarrollo de este sistema incluya especialistas en lingüística que conozcan y aprendan a usar GOLD y EuroWordNet para recomendar procedimientos de Extracción de Información y desarrollo de Ontologías para lenguas diferentes al castellano.

106

Page 107: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.3.3.2 MigraciónDentro de la estrategia de migración hacia la Web Semántica propuesta por Tim Berners-Lee, existe la idea de que, ya que las tripletas RDF son la representación más general y fundamental de los datos, ya que pueden representar toda clase de estructuras de datos como árboles, tablas y combinaciones de ambos (Ver figura), en especial el hecho de que las tripletas permitan la representación de tablas implica que RDF puede modelar bases de datos relacionales. Dada esta premisa, una de las tareas del equipo de desarrollo del sistema es estudiar los datos que existen en este momento almacenados en bases de datos relacionales y pasarlas por un filtro ontológico que clasifique los objetos y contenidos ya existentes, es decir, decida si tales datos son útiles para el sistema a futuro, si constituyen contenidos clasificables y no datos funcionales del sistema actual. Cuando hablamos de filtro ontológico nos referimos a un agente, procedimiento o algoritmo

107

Figura 11. Elementos de Dublin Core

Page 108: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

que para cada objeto o conjunto de objetos, extraiga la información relevante a su naturaleza y la ubique en uno o varios dominios contemplados en el sistema a la luz de la ontología general escogida y establezca las relaciones con otras partes del sistema.

A continuación se ilustra cómo las tripletas RDF pueden representar todo tipo de estructura:

108

Figura 12. RDF representando tablas

Figura 13. RDF representando árboles

Figura 14. RDF en estructuras mixtas

Page 109: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

4.3.3.3 Interfaz públicaFinalmente consideramos importante una propuesta publicada en el libro “Web Intelligence” por Joanna J. Bryson, David Martin, Sheila A McIlraith, Lynn Andrea Stein74, en la cual proponen la arquitectura de Web Services como interfaz pública de los agentes Inteligentes, lo que resulta especialmente atractivo para nuestros propósitos, dado que el marco de la educación virtual mencionado, con sus objetos de aprendizaje es un marco distribuido en el que los Web Services ya han aparecido como tecnología clave y debido también al reto de integrar dos tendencias que algunos autores ven como las tendencias alternativas más importantes para el futuro de Internet: Web Services y Web Semántica.

74 ZHONG, Ning; LIU, Jimming; YAO, Yiyu (Editors). Web Intelligence. Springer,2003. p. 37

109

Page 110: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

5. CONCLUSIONES

Un sistema multiagente incorpora como base un estudio detallado de las características cualitativas del dominio sobre el cual se construye y su dinámica, lo que pasado a una representación precisa como las ontologías los hacen más generales aún que los sistemas clásicos donde el conocimiento del dominio era predominantemente estático y dependiente de los programadores. Lo anterior implica que un sistema basado en ontologías tiene el potencial de autoenriquecerse o autocontruírse, sin ser demasiado pretensioso, una característica similar a la que tenía la molécula de ARN en la evolución temprana de la vida en la tierra: una molécula capaz de autorreplicarse y modificarse.

Las tecnologías mencionadas son tecnologías inmaduras en términos de implementación pero que ya tienen suficiente consistencia como para desarrollar sistemas robustos y de eficiencia satisfactoria.

El desarrollo exponencial de Internet implica inevitablemente que es necesario apoyar las instituciones independientes de estandarización como W3C, IETF e IEEE y acogerse, aportar o criticar sus estándares propuestos. Esta forma de trabajar así como la construcción comunitaria son mencionadas como características fundamentales de la Web 275 76, con este proyecto se apunta a la adición de la Universidad Tecnológica de Pereira a esta nueva tendencia como pionera en el País y probablemente en Latinoamérica aprovechando la experiencia adquirida durante los últimos años de desarrollos Web realizados por el CRIE.

Internet se basa en la relatividad de las verdades y es por eso que la Web Semántica apunta a crear ontologías personalizadas en el más avanzado estadio que ésta pueda lograr.

El desarrollo de un sistema multiagente de esta envergadura sin haber experimentado y reconocido las tecnologías ni las teorías en las cuales se

75 Oreilly. What is Web 2.0?. http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-

is-web-20.html?page=1

76 Web 2.0 Conference. Web 2.0 Conference, 2006. http://www.web2con.com/

110

Page 111: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

basa requiere un esfuerzo significativo en términos de investigación y experimentación. Lo anterior se suma a la inmadurez de tales tecnologías para crear un panorama complejo del que la academia puede sacar mucho provecho para crecer tanto en la capacidad de análisis y evaluación como en la ventaja tecnológica.

La educación virtual tiene la capacidad de contemplar aspectos sociales como el acceso a la educación para sectores sociales discriminados como son las comunidades cuya lengua nativa no es castellano y es obligación del sector oficial explotar y mejorar estas capacidades en dirección a eliminar tales inequidades.

La inclusión de lenguas diferentes al castellano en un sistema de educación inteligente haría de la Universidad Tecnológica de Pereira una pionera en la educación virtual en Colombia y probablemente en Latinoamérica, reconociendo el carácter multicultural de nuestra comunidad así como en la comunidad europea reconocen este mismo fenómeno con tecnologías como EuroWordNet.

Internet y la Web Semántica son fenómenos constructivos cuya fortaleza se basa en reglas de asombrosa sencillez, como RDF, que modelan cualquier estructura por compleja que pueda llegar a ser y que no pretenden establecer verdades o aseveraciones absolutas, su verdadera fortaleza consiste en permitir diferentes interpretaciones (o flexibilidad) de los mismos hechos, tal como lo hacemos naturalmente los seres humanos.

El presente trabajo es un mapa de tecnologías y sugerencias para convertir a Univirtual en un sistema de aprendizaje inteligente que apunta a la Web del futuro, sin embargo de él se desprenden interesantísimas preguntas de carácter social, como ¿cuáles son los modelos matemáticos de las interacciones sociales de los agentes en un ambiente de arquitecturas heterogéneas? y ¿qué parámetros hay que tener en cuenta para garantizar que la educación virtual promueva el conocimiento de manera justa y equitativa entre la población Colombiana?.

La educación virtual es una apuesta importante hacia el futuro siempre y cuando no se perfile como un modelo exclusivamente comercial. En el origen de Internet y la base que la hizo tan importante como lo es ahora, está la idea de comunidad libre y constructiva, pero esta idea soslaya el hecho de que ha impulsado principalmente una parte de la sociedad que tiene educación y nivel económico suficiente para explotar las ventajas que supone esta revolución. ¿Puede Colombia desarrollar el mismo modelo de

111

Page 112: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

educación Virtual que se estandariza en el mundo y promover realmente una educación personalizada y económica para quienes realmente lo necesitan?, ¿Univirtual satisface esta necesidad de conocimiento en las comunidades económicamente deprimidas?.

Es necesario que el currículo de Ingeniería de Sistemas incluya el desarrollo (análisis, diseño e implementación) de sistemas multiagente en el currículo, ya que muchos proyectos de grado apuntan a éste tema, incluso cuando dentro de la carrera nunca se cursa o estudia ni las teorías, ni las metodologías, ni las tecnologías en las que se basa.

112

Page 113: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

6. RECOMENDACIONES

Éste proyecto de grado, es la continuación del proyecto de grado de Carolina Moreno y Sandra Muñoz sobre los SIT (o ITS en inglés). Nosotros después de la investigación y análisis de este tema consideramos que el conjunto de estudios, análisis y desarrollos necesarios para implementar un sistema eficiente y de la mejor calidad, es tan grande y complejo que amerita que varios proyectos de grado se desarrollen conjuntamente en la misma dirección. Nosotros consideramos que los temas centrales de este proyecto, como son, Web Semántica, Reconocimiento de Lenguaje Natural y Sistemas Multiagente orientados al desarrollo del sistema acá propuesto dan cada uno para un proyecto de grado y que la implementación final del Sistema de Tutoreo Inteligente Extendido debe ser desarrollado con la asesoría de expertos en educación, lingüística y, en especial, en educación virtual.

Dada esta premisa nosotros proponemos que se desarrolle un proyecto de grado sobre implementación de un sistema de reconocimiento de lenguaje natural y Web Semántica que sirva de base para los agentes de extracción de información mencionados acá y otro proyecto de implementación de un sistema multiagente para educación virtual que acoja las recomendaciones hechas en éste proyecto, especialmente las técnicas de modelado de los usuarios (modelo de estudiante, modelo pedagógico y algún otro modelo que se corresponda con un ser humano) pero que permita la adición al anterior sobre reconocimiento de lenguaje natural.

Para terminar, queremos que la Universidad emprenda la labor de poner a disposición de la región un sistema de educación virtual que desarrolle la capacidad intelectual y técnica de los sectores más deprimidos y pobres ya que esa es la labor de la Universidad como representante de nuestro Estado de naturaleza social como lo indica la Constitución Nacional, teniendo en cuenta también la existencia de etnias nativas cuya lengua no es castellano.

Nos gustaría también que la ingeniería del software que se enseña en la Universidad tuviera una perspectiva más clara y nos enseñara a valorar iniciativas como MDA (Model-Driven Architecture, arquitectura dirigida por modelos) para poder contribuir al proyecto mencionado como MALACA para mejorar un poco el panorama de la programación orientada a agentes.

113

Page 114: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

7. LÍNEAS DE INVESTIGACIÓN FUTURA

Durante todo este proyecto de grado se mencionan una serie de ideas de investigación que ya están en curso y que sería muy importante estudiar e implementar así fuera en un contexto puramente experimental.

Dentro de éstas ideas está la autenticación basada en razonamiento que es la idea que subyace a la confianza de la Web Semántica y por lo tanto un elemento para incorporar en la plataforma propuesta. Un proyecto en ésta línea que ya fue desarrollado e implementado en los mismos términos que sugiere Tim Berner-Lee: el sistema usa lógica de orden superior para examinar pruebas lógicas aunque no implementa procedimientos de decisión. La página principal de éste proyecto se puede acceder en éste URL: http://www.cs.princeton.edu/sip/projects/pca/

Aunque no parece muy complejo, un sistema de redes de confianza es el objetivo final de la Web Semántica y es un serio objeto de estudio. Este proyecto es el laboratorio perfecto para implementar y evaluar sistemas de redes de confianza debido a su tamaño limitado pero permanente actividad. Una fuente de artículos y ejemplos es la página http://trust.mindswap.org/index.shtml y su respectivo experimento Film Trust: http://trust.mindswap.org/FilmTrust.

Otra idea que podría tener un gran impacto sobre el desempeño de Univirtual sería la construcción de objetos de aprendizaje basados en las discusiones sostenidas entre usuarios del sistema y documentación suscrita por éstos al sistema. Una vez que exista la base ontológica, es posible parametrizar el sistema para que detecte un conjunto de contenidos relacionados de tal manera que se correspondan con un objetivo de aprendizaje previamente establecido -o sugerido por los usuarios- y por lo tanto, el sistema sería capaz de describir éste conjunto (ya catalogado y representado en la base ontológica) y sugerir la creación de un objeto de aprendizaje. Lo anterior sería generación dinámica de contenidos basada en construcción colectiva, sobre este tema no leímos ninguna documentación que ilustrara el concepto ni las técnicas que debería usar.

114

Page 115: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

BIBLIOGRAFÍA

RUSSELL, Stuart, NORVIG, Peter. Inteligencia artificial, un enfoque moderno. Prentice Hall, 1992MUÑOZ, Sandra, MORENO, Carolina. Incorporación de agentes inteligentes a los procesos de enseñanza virtual como base para el desarrollo de un modelo de universidad virtual. Universidad Tecnológica de Pereira, 2003.BOLÍVAR, Jennifer; ORREGO, Dany. Monografía análisis del aprovechamiento de los agentes móviles en aplicaciones diseñadas para redes. Universidad Tecnológica de Pereira, 2004. ZHONG, Ning; LIU, Jimming; YAO, Yiyu (Editors). Web Intelligence. Springer,2003

Documentos PDF incluidos en la documentación:

AMOR, Mercedes; FUENTES, Lidia; VALLECILLO, Antonio. Bridging de gap between Agent-Oriented Design and Implementation using MDA. Universidad de Málaga, Departamento de Lenguajes y Ciencias de la Computación, 2005.SUDEIKAT, Jan; et al.. Evaluation of Agent–Oriented Software Methodologies – Examination of the Gap Between Modeling and Platform. University of Applied Sciences Hamburg, University of Hamburg, 2005.BENJAMINS, V. Richards; FENSEL, Dieter; GÓMEZ PÉREZ, Asunción, Knowledge Management through Ontologies. University of Amsterdam, University of Karlsruhe, Technical University of Madrid, 1998.PEIS REDONDO, Eduardo; HASSAN MONTERO, Yusef; Ontologías, metadatos y agentes: recuperación “semántica” de la información. Universidad de Granada.WOOLDRIDGE, Michael; R. JENNINGS, Nicholas; KINNY, David. The Gaia Methodology for Agent-Oriented Analysis and Design. University of Liverpool, University of Southampton Highfield, University of Melbourne, 2000.DINI, Lucas. NLP Technologies and the Semantic Web: Risks, Opportunities and Challenges. CELI, 2003.BUITELAAR, Paul; DECLERCK, Thierry. Linguistic Annotation for the Semantic Web. DFKI GmbH, Language Technology Department, 2003.

115

Page 116: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

DELOACH, Scott A.. Multiagent Systems Engineering: A Methodology And Language for Designing Agent Systems. Air Force Institute of Technology. Air Force Institute of Technology, Department of electrical and Computer Engineering, 1999.HOA DAM, Khanh; WINIKOFF, Michael. Comparing Agent-Oriented Methodologies. RMIT University Melbourne, School of Computer Science and Information Technologies, 2003.THANGARAJAH, John; PADGHAM, Lin; HARLAND, James. School of Computer Science and Information Technology, RMIT University Melbourne, 2001.MEDHI, Dastani; HULSTIJN, Joris; VAN DER TORRE, Leendert. University of Utrecht, CWI Ámsterdam, 2003.

116

Page 117: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

ÁNEXOS

Anexo A. Defectos de la P.O.O. para modelar agentes.

El primer problema tiene que ver con el modelamiento de agentes individuales o clases agentes. Si bien existen similitudes superficiales entre agentes y objetos, representar un agente como un objeto, p. ej.: como un conjunto de atributos y métodos, no es muy útil ya que la representación de grano muy fino, operando a un nivel de abstracción inapropiado. Un agente representado de esta manera puede parecer bastante extraño, tal vez exhibiendo un sólo método público cuya función es recibir mensajes de otros agentes. Por lo tanto un modelo de objetos no captura mucha información útil acerca de los agentes y poderosos conceptos de la POO como herencia y agregación se hacen bastante inútiles como resultado de la pobreza de la representación.

Hay varias razones para este problema. Una es que el paradigma de agentes está basado en una significativamente más fuerte noción de encapsulación que el paradigma de objetos. El estado interno de un agente es usualmente bastante opaco y, en ciertos sistemas, los comportamientos que un agentes desarrollará a pedido no son ni siquiera conocidos hasta que él los avisa dentro de un sistema activo. Relacionado con esto está la noción clave de autonomía: los agentes no pueden ser creados y destruidos normalmente en la manera liberal permitida en los sistemas de objetos y ellos tienen mayor libertad de determinar cómo responder a los mensajes, incluyendo, por ejemplo, negociar algún acuerdo sobre cómo se desarrollará cierta tarea. Así como el modelo de comunicaciones subyacente es usualmente asíncrono, no hay noción predefinida de flujo de control desde un agente a otro: un agente puede autónomamente iniciar comportamientos internos o externos en cualquier momento, no sólo cuando se le envía un mensaje. Finalmente, el estado interno de un agente, incluyendo su conocimiento, puede ser necesario representarlo en una manera que no sea fácilmente traducible a un conjunto de atributos; en cualquier caso, hacerlo constituiría una desviación prematura de implementación.

El segundo problema se relaciona con la potencia de los modelos de objetos para capturar adecuadamente las relaciones establecidas entre agentes en sistemas multiagente. Mientras los modelos secundarios de uso común en metodologías orientadas a objetos tales como casos de uso y diagramas de interacción pueden

117

Page 118: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

ser útilmente adaptados (con algunas diferencias semánticas), el modelo de Objetos, que constituye la especificación primaria de un sistema de objetos, captura asociaciones entre clases de objetos que modelan dependencias inmensamente estáticas y caminos de accesibilidad que son sumamente irrelevantes en un sistema multiagente. Únicamente la relación de instanciación entre clases e instancias puede ser directamente adoptada. Aspectos importantes de las relaciones entre agentes tales como su repertorio de interacciones y su grado de control o influencia sobre los otros agentes no son fácilmente capturados. El problema esencial aquí es la uniformidad y naturaleza estática del modelo de objetos OO. Un adecuado modelo de agentes necesita capturar estas relaciones entre agentes, su naturaleza dinámica y tal vez otras relaciones entre elementos del sistema agentes y no agentes incluidos los pasivos o abstractos tales como los que se modelan en GAIA como recursos.

Ambos problemas se relacionan con la capacidad de las técnicas OO para modelar sistemas multiagente. Otro asunto es la aplicabilidad de metodologías OO al proceso de analizar y diseñar un sistema multiagente. Las metodologías OO típicamente consisten en un ciclo de refinamiento iterativo de identificar clases, especificando sus semánticas y relaciones y elaborando sus interfaces e implementación. A este nivel de abstracción, ellas parecen similares a las metodologías típicas Orientadas a agentes, las cuales proceden usualmente identificando los papeles (o roles) y sus responsabilidades y metas, desarrollando una estructura organizacional y elaborando el conocimiento y comportamientos asociados con un papel o agente.

Sin embargo esta similitud desaparece en el nivel de detalle requerido por los modelos, ya que las abstracciones clave involucradas son bastante diferentes. Por ejemplo, el primer paso para identificar clases típicamente consiste en identificar cosas tangibles, papeles, organizaciones, eventos o incluso interacciones como objetos candidatos, mientras éstos necesitan ser claramente distinguidos y tratados diferentemente en una aproximación orientada a agentes. La uniformidad y concreción del modelo de objetos es la base del problema; las metodologías OO proveen guía e inspiración más que una aproximación directamente útil al análisis y diseño.

Traducido de “The Gaia Methodology for Agent-Oriented Analysis and Design”: shortcomings of OO methodologies.77

77 WOOLDRIDGE, Michael; R. JENNINGS, Nicholas; KINNY, David. The Gaia Methodology for

Agent-Oriented Analysis and Design. University of Liverpool, University of Southampton

Highfield, University of Melbourne, 2000.

118

Page 119: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Anexo B. PrototipoComo ejemplo del modelo de implementación propuesto, hemos decidido dejar en este documento una ilustración de cómo integrar fácilmente las librerías y tecnologías núcleo mencionadas: Dublin Core, GATE y JADE respectivamente.

Dublin CoreDublin Core es una propuesta que ha tomado fuerza en el ámbito del entrenamiento virtualizado como medio de publicación de metadatos, es decir, datos acerca de los datos. Dublin Core no es esencialmente una ontología y de hecho tiene representaciones en etiquetas clásicas de HTML sin muchas restricciones, lo que significa que generalmente no explota las capacidades lógicas de las ontologías como las relaciones de composición, agregación y cardinalidad entre elementos. A pesar de lo anterior encontramos una representación de Dublin Core en OWL como ontología base para ser incluida en proyectos Protégé que puede ser de utilidad a futuro.

Dublin Core está compuesto por un conjunto de elementos bien definidos que se pueden esperar de un documento que suscriba este modelo:

Acerca de -> Contenido Propiedad Intelectual

Instancia

Elementos -> Coverage Description Type Relation Source Subject Title Audience

Contributor Creator Publisher Rights

Date Format Identifier Language

Éstos elementos constituyen el esqueleto de Dublin Core, pero se acompañan de lineamientos precisos acerca de su uso, por ejemplo, la definición oficial de muchos de ellos está acompañada por la definición de esquemas de codificación,

119

Page 120: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

que consisten en conjuntos de valores predeterminados con significados precisos que se pueden usar como contenido de la etiqueta en particular usada a manera de dominio restringido y normalizado.

Hemos notado en el listado de los elementos de Dublin Core varios que pueden servir de puente con el sistema de ontologías que son Subject (Tema), Relation (Relación con otro recurso) y Type (Tipo). Éstos campos permiten (y la especificación recomienda) el uso de codificaciones específicas de la plataforma de uso, sin embargo también sugieren acogerse a varios esquemas que ya existen para su uso como la clasificación decimal de Dewey que especifica las disciplinas del conocimiento con fines de clasificación de documentos como libros en una biblioteca.

Dado lo anterior lo que hace el prototipo es adicionar una meta etiqueta Dublin Core Subject cuyo dominio es restringido a una cierta clasificación del contenido tomando en cuenta algún criterio (como las palabras usadas en el documento, su significado potencial y el contexto en el que está disponible). El algoritmo para clasificación usado es un algoritmo trivial y debe ser cambiado a uno más eficiente al momento de la implementación final que explote las capacidades de Gate para análisis de lenguaje natural y su aplicación también debe ser decisión de los implementadores finales. En el ejemplo, la clase StandAloneAnnie aplica un método estático llamado clasificacion() que recibe un documento ya anotado (que hace parte del corpus sobre el cual se ejecutaron los recursos de procesamiento). Éste método puede ser reemplazado por una clase depediente del origen del documento o del tipo y formato del mismo y debe implementar métodos de clasificación basados en agrupamiento (clustering) y estadísticas, en el prototipo solamente imprime a la salida estándar las etiquetas dc:subject y dc:type con los valores "nota" y "text/html" considerando que los ejemplos fueron tomados de una nota informativa.

GATEGate, el elemento fundamental de la presente propuesta, como ya se ha mencionado, es una plataforma para el desarrollo e investigación en varios campos como lingüística computacional, Procesamiento de Lenguaje Natural, extracción de información y otros más que la documentación oficial incluye dentro del campo de la Ingeniería del Lenguaje y que se respaldan en los distintos procesos de análisis sintáctico de textos escritos en lenguajes humanos. Gate incluye un conjunto de recursos u objetos reusables llamados CREOLE (Collection of REusable Objects for Language Engineering) en la forma de archivos .JAR y

120

Page 121: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

algunos archivos XML que componen la configuración de los componentes, el más importante de todos es ANNIE (A Nearly New Information Extraction system) que contiene un conjunto de componentes para el análisis de lenguaje natural y anotación, que, usando técnicas de máquinas de estado finito, implementa tareas varias como separación de tokens, etiquetado semántico y particionamiento de frases verbales.

La plataforma se define compuesta por tres elementos o tres formas de ver el sistema en conjunto:

Una arquitectura, es decir, una estructura organizacional para el procesamiento de lenguaje natural.

Un marco de trabajo, es decir, una serie de librerías y procesos normalizados por medio de los cuales la arquitectura definida se puede incluir en otras aplicaciones.

Una interfaz gráfica construida sobre el mismo marco de trabajo y que hace uso de la arquitectura mencionada y que en ocasiones se denomina Entorno de Desarrollo GATE.

La arquitectura para el procesamiento de lenguaje natural está implementada en Java y está basada en componentes, orientación a objetos y movilidad del código.

La arquitectura de GATE establece que existen tres tipos de recursos y todo lo que se desarrolle en ella debe corresponder a alguno de estos tres tipos de recursos:Recursos de Lenguaje (Language Resources -LRs-), entre los que se incluyen los documentos, las corporas (colecciones de documentos), ontologías y léxicos.Recursos de Procesamiento (Processing Resources -PRs-) que representan cualquier recurso algorítmico o que realice algún procesamiento sobre los recursos de lenguaje como intérpretes, generadores, modeladores, etc.Recursos Visuales (Visual Resources -VRs-) que son los elementos que tienen participación en la GUI o entorno de desarrollo de GATE y que generalmente son incluidos como aportes de terceras partes al sistema, por ejemplo, la edición de proyectos al estilo Protégé -Programa para la edición y experimentación con ontologías-.

Gate por lo tanto presenta una interfaz gráfica que cumple con algunas funciones de entorno de desarrollo en el sentido de permitir crear, evaluar y depurar 'aplicaciones' de tal manera que una vez que se tiene la seguridad de que el desempeño en el entorno es satisfactorio, la codificación de tal 'aplicación' es muy directa porque lo que se hace en el entorno tiene una correspondencia con ciertas sentencias que la replican a nivel de código con el fin de ser incluida como

121

Page 122: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

componente adicional de otra aplicación. Las aplicaciones de GATE consisten en definiciones de procesamientos en varios modelos, por ejemplo ejecución consecutiva o condicionada de diferentes operaciones representadas por recursos de procesamiento definibles por el usuario, como un separador de tokens (tokenizer), gramáticas y marcador con base en gacetas predefinidas (Gazeteer), revisor de ortografía, etc. después de los cuales los documentos sobre los que se ejecutó la aplicación quedan enriquecidos con las anotaciones que hayan realizado tales procesos o recursos de procesamiento.

De acuerdo con lo anterior nosotros escogimos algunos documentos al azar y ejecutamos la aplicación por defecto (ANNIE) sobre ellos para observar las anotaciones realizadas por el sistema y una vez hecho esto implementamos un ejemplo de ANNIE como aplicación aparte que permite acceder a nivel de código a tales anotaciones. El código del programa se incluye al final de este anexo y consiste en una modificación a un programa de ejemplo que viene incluido con la plataforma. La observación más importante para lograr que el programa corra exitosamente es la necesidad de inclusión de todas las librerías incluidas en GATE bajo la carpeta /lib ya que normalmente GATE usa muchas de ellas hasta en las aplicaciones más simples y resulta un poco difícil encontrar la clase específica que hace falta dentro de los muchos archivos .JAR que contiene.

A partir de este proceso procedimos a incluir dentro de los recursos auxiliares del programa (listados de nombres propios, ciudades, entidades, etc.) las entidades pertinentes a esta instancia, es decir, en español y elementos del ambiente de ejecución (entidades locales, sitios reconocidos, etc.). Lo cual dentro de la propuesta de implementación debería ser señalado por el sistema o deducido naturalmente del uso dado en el sistema completo por medio de algún método probabilístico o de agrupamiento o cooperativamente a través del uso que la comunidad haga de ellos a manera de Wiki una vez que se tenga maestría en las funcionalidades de GATE a través de sus diferentes interfaces.

JADEFinalmente JADE es considerado un middleware o interfaz intermediaria que implementa los procedimientos y utilidades necesarias para crear sistemas de agentes conformes con los lineamientos señalados por FIPA.

JADE, como plataforma completa que es, consiste tanto en el marco de trabajo, es decir, las librerías que soportan la funcionalidad del sistema de agentes, un ambiente de ejecución y una interfaz gráfica que permite hacer seguimiento a los agentes que en ella se ejecutan.

122

Page 123: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

El elemento fundamental de Jade es la clase Agent y complementariamente los comportamientos (clase Behaviour) con los cuales los agentes llevan a cabo sus tareas y los mensajes ACL (Clase ACLMessage y otras complementarias) que son el medio de comunicación entre agentes y que permiten la especificación de lenguajes definidos por el usuario.

Entonces un agente ejecuta un hilo único y dentro de ese hilo único implementa un mecanismo para planificar la ejecución cooperativa de los comportamientos que soporta, es decir, cada comportamiento debe estar escrito de tal manera que la ejecución de su método principal (Action) termine cada vez que sea llamado y dé paso a los demás comportamientos para ejecutar respectivamente su método Action. El control en éste modelo se hace a través de las variables del Agente como tal y con el uso del método Boolean done() que retira el comportamiento de la pila de comportamientos a ejecutar cuando cierta condición (especificada por el programador y efectuada en el método Action) se cumple. Deduciblemente un agente puede implementar varios comportamientos en la forma de objetos de la clase Behaviour, de los cuales los más simples son OneShotBehaviour, CyclicBehaviour y Behaviour; adicionalmente existen mecanismos para combinar estos comportamientos simples en comportamientos más complejos, éstos últimos comportamientos se implementan a través de las clases SequentialBehaviour, ParallelBehaviour y FSMBehaviour, es decir, ejecución secuencial, paralela y en forma de máquina de estado finito. Existen dos comportamientos de especial importancia ya implementados llamados TickerBehaviour y WakerBehaviour de los cuales el primero se ejecuta con base en un tiempo determinado cíclicamente y el segundo se ejecuta una sola vez en diferido una vez que se cumple un tiempo determinado.

Los mensajes ACL corresponden a un formato de FIPA para interoperabilidad entre agentes y están compuestos por los siguientes campos:

Sender (Origen) Lista de Receivers (Receptores) Performative (Intención comunicativa) que puede ser del tipo REQUEST,

INFORM, QUERY_IF, CFP, PROPOSE, ACCEPT_PROPOSAL, REJECT_PROPOSAL entre otros.

Content (Contenido) Language (Lenguaje) que especifica la sintaxis para interpretar el

contenido. Ontology (Ontología) que especifica la semántica de los símbolos usados

en el contenido. Campos de control como conversation-id, reply-with, in-reply-to, reply-by.

123

Page 124: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Entonces nuestro prototipo consiste en un agente que ejecuta un comportamiento diferido (WakerBehaviour) verificando la lista de archivos en un directorio y apenas aparece un archivo con formato htm le efectúa una anotación a través de la clase anotador basada en GATE.

Código Fuente y resultados

A continuación incluimos el código fuente necesario para usar algunas de las funcionalidades de GATE y de JADE como se mencionó en los apartes anteriores. La primer clase llamada StandAloneAnnie es una clase con método estático público main (es decir ejecutable desde línea de comandos) que efectúa una anotación sobre los documentos que se le pasen como parámetros de ejecución en línea de comandos, éste método es usado indirectamente por la siguiente clase que es un agente que ejecuta un comportamiento cíclico para revisar cierta carpeta del sistema y efectuar anotaciones sobre los documentos html que no se hayan anotado todavía (es decir sólo los nuevos documentos html en esta carpeta).

124

Page 125: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

125

Page 126: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

126

Page 127: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

127

Page 128: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

128

Page 129: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

129

Page 130: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

130

Page 131: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

131

Page 132: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

132

Page 133: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

133

Page 134: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Explicación

Este código fuente fue modificado y compilado usando Net Beans 5.0. Como se puede observar en el código fuente, el programa es una clase principal StandAloneAnnie que es ejecutable directamente desde la línea de comandos que inicializa GATE para ejecutar anotación sobre los documentos pasados como parámetros en la línea de comandos, en este caso nosotros usamos este método para llamarlo directamente desde el agente de Jade que es el que finalmente se ejecuta debido a que la plataforma de ejecución es realmente el contenedor de JADE. Para que compilara y ejecutara efectivamente, fue necesario hacerle unas pequeñas modificaciones para que reconociera los archivos de inicialización de GATE e incluir algunas clases como clases de reconocimiento de patrones que siempre es necesario incluir para que la ejecución sea exitosa. Además de éstas adiciones, el código fue modificado para permitir cambio en ciertos parámetros de los recursos de procesamiento como los léxicos, gacetas a usar o las reglas gramaticales y de anotación que se quieren aplicar. Otros parámetros modificables son el tipo de anotaciones que se desea que queden señalados en las páginas resultantes y cómo hacerlo. Una vez que se tiene este código se tiene acceso a las capacidades de GATE para efectuar marcado de los textos y experimentar con el algoritmo de clasificación como se quiera.

Figura 15 Página Web original

La figura 15 muestra el texto principal de una nota informativa de Univirtual tal como se podría ver en Internet. Una vez ejecutada la clase StandAloneAnnie sobre ésta, el código fuente de la misma es anotado en línea y se señalan en rojo las anotaciones que nosotros indicamos en el programa (Persona, Organización y

134

Page 135: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Lugar – Person, Organization y Location en el programa) mostrando una pista con el tipo de anotación en azul cuando el cursor esta sobre la palabra señalada como lo muestra la siguiente figura.

Figura 16. Página Web anotada, mostrando Location

En el siguiente caso el puntero del ratón se ubica sobre las palabras “Cecilia Vélez”, correctamente anotada como Persona.

135

Page 136: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Figura 17. Página Web anotada, mostrando Person

La segunda clase (Agente) es un agente Jade que llama la plataforma de Agentes y la usa para ejecutar sobre ella un comportamiento WakerBehaviour que como ya explicamos es un comportamiento que se dispara cada 10 segundos (10000 ms. como está en el código fuente). El comportamiento es el encargado de llamar al método main de StandAloneAnnie indicandole los archivos que existen en la carpeta bajo vigilancia como si fueran parámetros de la línea de comandos. A partir de esto se pueden hacer muchas cosas, por ejemplo que la clase de anotación sea realmente otro agente y que también exista un agente que se entienda con las bases de datos a usar, eso sólo lo diría la etapa de diseño detallado de Tropos o de la metodología seleccionada para el diseño.

La ejecución del agente se realizó a través del siguiente comando de línea de comandos:

java -classpath "E:\Documentos de Cesar\Proyecto de Grado\prototipo\anotador\build\classes\;C:\Archivos de programa\GATE 3.0\bin\gate.jar;C:\Archivos de programa\GATE 3.0\lib\gnu-regexp-1.0.8.jar;C:\Archivos de programa\GATE 3.0\lib\jdom.jar;C:\Archivos de programa\GATE 3.0\lib\ontotext.jar;C:\Archivos de programa\GATE 3.0\lib\jasper-compiler-jdt.jar;C:\Archivos de programa\GATE 3.0\lib\heptag.jar;e:\jade\lib\jade.jar;e:\jade\lib\Base64.jar;e:\jade\lib\iiop.jar;e:\jade\lib\jadeTools.jar" jade.Boot -gui cace:anotador.AgenteEn esencia el comando no es tan complejo:

136

Page 137: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

java –classpath <carpetas y archivos .jar del programa, Gate y Jade> jade.Boot agente:clase(parámetros) [-gui]

donde los últimos parámetros, significan “agente”: identificador local del agente, en nuestro caso “cace”, “clase” es el nombre de la clase que se quiere ejecutar, en nuestro caso anotador.Agente, dado que anotador es el paquete al que pertenecen las clases que nosotros creamos y entre paréntesis el directorio del que se desea anotar las páginas Web que contenga (en nuestro caso no hay verificación de la sintaxis). Finalmente, el interruptor –gui indica a Jade que ejecute el modo gráfico.

Figura 18. Ejecución del agente de prueba.

Como vemos en la figura anterior, después de ejecutar el comando mencionado,

la consola empieza a mostrar las indicaciones del caso (como el directorio que se

usa, el momento en que se dispara el comportamiento y algunos identificadores de

la plataforma) y arranca la interfaz gráfica de Jade, que no es necesaria, pero que

137

Page 138: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

permite realizar operaciones de experimentación, depuración y prueba de las

capacidades de los agentes.

Finalmente mostramos la consola de ejecución del programa en la siguiente figura:

138

Page 139: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

139

Page 140: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Figura 19. Registro de la ejecución del agente de prueba

Como vemos el programa muestra algunas indicaciones antes durante y después

de la ejecución de la aplicación de ANNIE a los documentos encontrados. Los

documentos anotados se guardan en una variable de clase de StandAloneAnnie

con el fin de no anotarlos cada vez que se ejecute el comportamiento como se

ilustra en la siguiente figura.

Figura 20. Segunda ejecución del comportamiento

140

Page 141: DESARROLLO DE UN MODELO DE IMPLANTACIÓN DE …cesarcabrera.info/proyectoGrado/Proyecto AIWSLN.doc  · Web viewUn ejemplo de ello son los formatos de documentos .DOC usados por el

Anexo C. Notas del CD

El CD que acompaña éste proyecto contiene todos los instaladores necesarios para hacer las pruebas de rigor de las utilidades mencionadas, con las versiones que se usaron para desarrollar el prototipo, así como la documentación tanto de las utilidades como del marco teórico que se mencionan.

El instalador ejecuta cada archivo necesario para instalar las utilidades JADE y GATE en su orden. También pregunta si se desea instalar Protègè que es la herramienta de preferencia para diseñar y experimentar ontologías pero que no fue usada en la construcción del prototipo.

Descripción del contenido:

Instaladores: Archivos de instalación del jdk1.5.0 con NetBeans 5.0, GATE 3.0, JADE 3.1 y Protégé 3.2 Beta.

Documentación: Conjunto de archivos en los cuales nos basamos para desarrollar el tema del proyecto. Los documentos en la raíz de esta carpeta son los documentos que fueron citados en alguna parte de éste proyecto y las subcarpetas son artículos y otras fuentes que no fueron directamente citados pero de los cuales se extrajeron algunas ideas.

Prototipo: Contiene los archivos fuentes del prototipo y los compilados .class en su estructura de directorios, así como el instalador de las aplicaciones y del prototipo.

141