You are on page 1of 146

DESARROLLO DE UN MODELO DE IMPLANTACIN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTRPRETES SEMNTICOS DEL LENGUAJE NATURAL

FREDY ANDRS RAMREZ RODAS CSAR AUGUSTO CABRERA ESPINOSA

UNIVERSIDAD TECNOLGICA DE PEREIRA FACULTAD DE INGENIERAS: ELCTRICA, ELECTRNICA, FSICA Y CIENCIAS DE LA COMPUTACIN PROGRAMA INGENIERA DE SISTEMAS Y COMPUTACIN PEREIRA, RISARALDA 2006

DESARROLLO DE UN MODELO DE IMPLANTACIN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTRPRETES SEMNTICOS DEL LENGUAJE NATURAL

FREDY ANDRS RAMREZ RODAS CSAR AUGUSTO CABRERA ESPINOSA

UNIVERSIDAD TECNOLGICA DE PEREIRA FACULTAD DE INGENIERAS: ELCTRICA, ELECTRNICA, FSICA Y CIENCIAS DE LA COMPUTACIN PROGRAMA INGENIERA DE SISTEMAS Y COMPUTACIN PEREIRA, RISARALDA 2006

DESARROLLO DE UN MODELO DE IMPLANTACIN DE AGENTES INTELIGENTES EN LA RED UNIVIRTUAL COMO INTRPRETES SEMNTICOS DEL LENGUAJE NATURAL

FREDY ANDRS RAMREZ RODAS CSAR AUGUSTO CABRERA ESPINOSA

Trabajo de grado para optar al ttulo de Ingeniero de Sistemas y Computacin

Director GILBERTO VARGAS CANO Ingeniero Electricista

UNIVERSIDAD TECNOLGICA DE PEREIRA FACULTAD DE INGENIERAS: ELCTRICA, ELECTRNICA, FSICA Y CIENCIAS DE LA COMPUTACIN PROGRAMA INGENIERA DE SISTEMAS Y COMPUTACIN PEREIRA, RISARALDA 2006 3

Nota de aceptacin:

________________________________ ________________________________ ________________________________

________________________________ Presidente del jurado

________________________________ Jurado

________________________________ Jurado

Pereira, Junio de 2006

A nuestras madres y a las personas que usen este documento para construir el futuro.

AGRADECIMIENTOS

Expresamos sinceros agradecimientos los ingenieros Gilberto Vargas y Omar Trejos por su confianza y a todas las personas que acompaaron este proceso as no fuera acadmicamente: su paciencia, colaboracin y compaa construyeron en nosotros la formacin 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 imgenes y formaron nuestro carcter y capacidad de crtica y admiracin y por supuesto a la Universidad por brindarnos la oportunidad de pasar por esta experiencia sin mayores sesgos de ndole social y econmica, esperamos que la poblacin que necesita estas oportunidades siga teniendo acceso tanto o mejor que como nosotros lo tuvimos y su calidad siga siendo mejor cada da.

vi

CONTENIDO
Pg.

CONTENIDO LISTA DE CUADROS LISTA DE FIGURAS GLOSARIO 1. DEFINICIN DEL PROBLEMA 1.1INTELIGENCIA ARTIFICIAL 1.2WEB SEMNTICA 1.3LENGUAJE NATURAL 1.4EL PROBLEMA 2. JUSTIFICACIN 3. OBJETIVOS 3.1OBJETIVO GENERAL 3.2OBJETIVOS ESPECFICOS 3.3DELIMITACIN 4. MARCO REFERENCIAL 4.1MARCO TERICO 4.1.1Agentes inteligentes. 4.1.2 Propiedades de un agente inteligente 4.1.3 Agentes BDI 4.1.4Plataformas y metodologas de desarrollo 4.1.5Representacin de los datos en Internet y Web semntica 4.1.6Reconocimiento de lenguaje natural

vii ix xi xiii 25 25 26 28 29 31 33 33 33 34 35 35 35 37 40 42 54 68

vii

4.2MARCO DE ANTECEDENTES 4.2.1Univirtual 4.2.2Plataformas de agentes inteligentes 4.2.3Web semntica 4.2.4Reconocimiento de lenguaje natural 4.2.5Arquitectura de sistemas de educacin virtual 4.3MARCO CONCEPTUAL 4.3.1Arquitectura 4.3.2Plataforma 4.3.3Sugerencias de diseo y despliegue 5. CONCLUSIONES 6. RECOMENDACIONES 7. LNEAS DE INVESTIGACIN FUTURA BIBLIOGRAFA NEXOS Anexo A. Defectos de la P.O.O. para modelar agentes. Anexo B. Prototipo Anexo C. Notas del CD

74 75 78 83 89 92 96 96 102 105 110 113 114 115 117 117 119 146

viii

LISTA DE CUADROS
Pg. Cuadro 1. Clasificacin de agentes 37

ix

LISTA DE FIGURAS
Pg. Figura 1. Arquitectura original de Web semntica Figura 2. Genealoga de Metodologas Figura 3. Pila de Web semntica Figura 4 Grafo dirigido Figura 5. Estndares SCORM Figura 6. SUMO: Suggested Upper Merged Ontology Figura 7. Arquitectura de STI Figura 8. Arquitectura de STI extendido Figura 9. Modelo de agentes fundamental Figura 10. Interaccin de componentes Figura 11. Elementos de Dublin Core Figura 12. RDF representando tablas Figura 13. RDF representando rboles Figura 14. RDF en estructuras mixtas Figura 15 Pgina Web original Figura 16. Pgina Web anotada, mostrando Location Figura 17. Pgina Web anotada, mostrando Person Figura 18. Ejecucin del agente de prueba. Figura 19. Registro de la ejecucin del agente de prueba Figura 20. Segunda ejecucin del comportamiento 27 46 54 60 86 90 94 95 100 105 107 108 108 108 139 140 141 142 145 145

xi

LISTA DE ANEXOS Pg. Anexo A. Defectos de la programacin orientada a objetos Anexo B. Prototipo Anexo C. Notas del CD 119 121 139

xii

GLOSARIO

ABIERTA, TECNOLOGA: Una tecnologa abierta es aquella que publica en su especificacin la forma de uso y cmo interacta con otras tecnologas sin restricciones legales y tanto como es posible sin restricciones tcnicas acogiendo procedimientos y formatos estandarizados o normalizados. Contrario a las tecnologas abiertas estn las tecnologas cerradas o propietarias, que especifican claramente las restricciones legales de su uso y los formatos y tecnologas soportadas que normalmente son creadas por la misma empresa que la tecnologa especificada o por empresas subsidiarias. ACL: (Access List) Es un mtodo de establecer restricciones basado en reglas explcitas que un dispositivo puede entender. Se suele usar en sistemas de seguridad. ACL: (Agent Communication Language) Lenguaje de Comunicacin de Agentes. Es una especificacin 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 caractersticas descritas en la seccin 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 extraccin de informacin. ANOTACIN: La anotacin tiene que ver con las tcnicas para describir y clasificar un documento escrito, es decir, anotacin es una forma de introducir o componer la metainformacin de un documento, sta describe generalmente los temas y subtemas de que trata dicho documento. AOP: Ver AOSE AOSE: (Agent-Oriented Software Engineering) Ingeniera de Software orientada a agentes, algunos autores la usan como AOP (Agent-Oriented Programming -Programacin orientada a agentes). Es el trmino usado para el anlisis, diseo e implementacin 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

Agentes. Es una extensin del Lenguaje Unificado de Modelado (UML) usado en la Ingeniera 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 teora sobre agentes inteligentes y un tipo de agente inteligente. BDI es un marco terico en el que se estructura un modelo de agente inteligente con caractersticas 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. CONVERSIN DE TIPOS: Cuando un lenguaje de programacin tiene que verificar el tipo de dato de un valor para hacer una operacin o el llamado de una funcin o mtodo 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 (dbilmente tipados). La conversin implcita ocurre cuando el lenguaje no puede verificar el valor desde el diseo del programa y tiene que decidir cmo interpretar cierto valor o variable, caso en el cual simplemente convierte la variable o valor a un valor que sea apropiado para la operacin que se quiere realizar (Ver Tipado fuertemente en el glosario). La conversin implcita de tipos debe ser evitada en lo posible porque puede generar comportamientos inesperados de los programas en tiempo de ejecucin. 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 fsico o de implementacin. La ltima fase de un programa es cuando es ejecutable por el PC, en este estado el programa est representado por un cdigo ensamblador especfico de la plataforma o arquitectura fsica en la cual va a ser ejecutado. Desensamblar se refiere al hecho de convertir ste cdigo ensamblador a algn cdigo fuente que es ms fcil de interpretar para cualquier programador y permite conocer los mtodos de programacin usados para crear el programa en cuestin. DOMINIO: ste trmino tiene cierta relacin con el uso que tiene en matemtica pero desde una perspectiva un poco ms flexible aplicada al anlisis y diseo de software: un Dominio de conocimiento es el conjunto de trminos y relaciones que existen sobre un tema en particular, como por ejemplo el cuidado mdico o la ingeniera aplicada, stos pueden considerarse dominios de conocimiento aunque la definicin poco precisa permite que un dominio sea ms especfico que los xiv

ejemplos propuestos, como atencin mdica en cuidados intensivos o ingeniera de software aplicada al diseo de sistemas multiagente. El criterio aparente parece ser la cantidad de informacin relacionada que deseemos incluir en nuestras operaciones o diseos. DTD: (Document Type Definition) Definicin de tipo de documento. Es un esquema de validacin propuesto inicialmente como parte del modelo de datos SGML que permite definir la estructura correcta de un documento, es decir, qu parmetros 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 tambin es un esquema de validacin para ste. EXPRESIN REGULAR: Es una cadena de caracteres que puede ser interpretada por una mquina 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 nmero o que usan ciertas letras o nmeros cierta posicin de la palabra o con algn patrn 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 trmino 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 solucin a las preguntas ms importantes que genera la informacin del sitio en una sola seccin del mismo. FIPA: (Foundation for Intelligent Physical Agents) Base para agentes inteligentes fsicos. FIPA es una organizacin cuyo fin es forjar estndares y especificaciones que unifiquen la nocin de agente inteligente y su interaccin en un ambiente abierto. GNU: (GNU is Not Unix) ste es el trmino usado para un movimiento responsable de gran parte de lo que hoy conocemos como movimiento de software libre y licenciamiento libre as como del trmino de licenciamiento privativo y su significado. GNU desde el punto de vista prctico es otra forma de decir Open Source, Software Libre o Cdigo Abierto, si bien el principal representante y fundador del movimiento GNU/Software Libre/GPL, Richard Stallman, enfatiza en pequeas diferencias filosficas de cada uno de los movimientos mencionados que los diferencian con el suyo, aunque el resultado sea muy similar. GPL: (General Public License) Licencia Pblica 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

una de muchas licencias llamadas de cdigo abierto (Open Source) o Software Libre segn lo que el referente crea ms importante, la calidad de la programacin 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 grfica de Usuario, es la parte de una aplicacin que le permite interactuar con el usuario a travs de algn dispositivo grfico, generalmente el monitor. GUIONES: (o Scripts) Un guin es un programa interpretado cuyo lenguaje es de alto nivel para interactuar con un sistema ms complejo. La programacin de guiones o scripts es ms comn 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 liberacin de recursos o monitoreo del sistema. En sistemas de agentes inteligentes los guiones son usados para especificar una tarea en un lenguaje lgico o una gramtica que analiza alguna estructura del sistema. Algunas veces los guiones tambin modelan protocolos de interaccin entre otras aplicaciones. HORN, CLUSULAS: Es una forma simplificada de escribir frmulas lgicas como un conjunto de trminos unidos por el operador 'y'. HTML: (HyperText Markup Language) Lenguaje de marcado de hipertexto. Lenguaje de marcacin o etiquetado basado en SGML con el cual se crean pginas 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. IMPLEMENTACIN: La implementacin de un sistema es la realizacin concreta de un diseo, es decir, un programa o librera que realiza las operaciones especificadas en un diseo o en la especificacin de un estndar. La implementacin de un estndar por ejemplo puede dar lugar a diferencias en algunos detalles de cmo se realizan finalmente las operaciones especificadas dependiendo del grupo que haya desarrollado la aplicacin o la librera, la plataforma en la que se ejecuta o las ambigedades que tenga la especificacin misma. JACK: Es una plataforma de agentes inteligentes comercial basada en Java que comprende muchas utilidades para el diseo, implementacin y monitoreo de sistemas multiagente. JADE: (Java Agent Development Framework) Es una plataforma de agentes xvi

inteligentes basada en Java que busca simplificar el desarrollo mientras se asegura el cumplimento de estndares a travs de un comprehensivo conjunto de servicios y agentes. JAKARTA: Extensin del Servidor Web Apache que permite escribir programas en Java y pginas Web con cdigo Java embebido conocidas como JSP para invocar los servicios de los programas Java. JAVA: Java es un lenguaje de programacin cuyo cdigo final o cdigo de mquina se genera para una mquina virtual, es decir como un computador ideal, de tal manera que si se hace una correspondencia entre las rdenes de sta mquina virtual a una mquina real, un programa escrito en Java puede ser ejecutado en cualquier tipo de computador y sistema operativo para el cul 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 ejecucin de Java, es decir la mquina virtual. JESS: (Java Expert System Shell) Librera de clases de Java que implementan un Intrprete de comandos para sistemas expertos. JRE: (Java Runtime Environment) Entorno de Ejecucin Java. Es un conjunto de utilidades del sistema operativo que permiten al mismo ejecutar programas java como si fueran nativos, cargando previamente a su ejecucin la Mquina Virtual. JSP: (Java Server Pages) Es una forma de incorporar instrucciones en Java a pginas Web para generar contenidos dinmicos e interactuar con el sistema y con aplicaciones escritas en Java. JVM: (Java Virtual Machine) Mquina virtual Java, es el nombre dado al intrprete de programas Java ms 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 mquina y un sistema operativo para la cual estn 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 Pblica. Es un modelo de licenciamiento similar al de GPL pero que permite el uso del software o librera en aplicaciones comerciales privativas aunque el cdigo fuente original sigue siendo abierto y redistribuible. GPL no permite el uso del software licenciado bajo sus trminos en aplicaciones comerciales de licencia cerrada, GPL exige que xvii

el software basado en GPL siga siendo GPL. LGPL fue una manera de hacer popular el uso de desarrollos cooperativos de cdigo abierto entre la comunidad de desarrolladores de licencias privativas. LICENCIA/LICENCIAMIENTO: La Licencia es el trmino usado para definir los trminos de uso de alguna aplicacin, 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 ms categricas 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 cdigo 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 comercializacin de software que busca aprovechar los recursos suplidos por el movimiento de software libre y enfatizar en la importancia del conocimiento sobre los recursos econmicos y polticos, as como permitir una distribucin ms 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. MQUINA DE ESTADO FINITO: Es una abstraccin que permite la especificacin de un proceso a travs de estados y transiciones en nmero limitado de estados y transiciones. Es una representacin de un sistema a travs 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 mltiples agentes que se comunican entre s y en algunas ocasiones se mueven entre diferentes plataformas -agentes mviles. MDA: (Model-Driven Architecture) Arquitectura dirigida por modelos. Es una propuesta para anlisis y diseo de sistemas, por medio de la cual se puede hacer un diseo en un modelo independiente de la plataforma y a travs de la definicin de perfiles o metamodelos de del mismo, se hace corresponder este diseo con xviii

un modelo dependiente de la plataforma por medio del cual se puede llegar a la implementacin. MIDDLEWARE: Este es un trmino usado para elementos de software que proveen una funcionalidad de servicios intermediarios entre una tecnologa y otra. Se puede ver como un conjunto de utilidades que concentran funcionalidades unificadas especficas de alto nivel o nivel intermedio de abstraccin y ocultan capas de funcionalidad de bajo nivel que pueden adoptar diferentes protocolos, codificaciones o tecnologas no unificables sin una capa intermedia. MONOTNICAS, REGLAS: En lgica una regla que preserva el conocimiento original del conjunto de axiomas y afirmaciones. En contraposicin una regla no monotnica puede inducir nuevo conocimiento e implicar invalidez del conjunto de conocimiento original. NIVEL (DE ABSTRACCIN), ALTO, MEDIO, BAJO: En computacin los trminos de alto nivel o bajo nivel se refieren al grado de abstraccin del que se est hablando, es decir, alto nivel es alto grado de abstraccin y significa que se habla de algo que los humanos podemos entender fcilmente, mientras bajo nivel es bajo nivel de abstraccin y significa muy concreto, o que est diseado ms para las mquinas que para los seres humanos (como los bits). Si hablamos de un lenguaje de alto nivel, estamos hablando de un lenguaje cuyo lxico (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 ONTOLOGA: Simplificacin de la lgica de algn dominio de conocimiento. Una ontologa lista y categoriza trminos vlidos dentro de un dominio de conocimiento y establece las relaciones que guardan entre s. OOP: (Object-Oriented Programming) Programacin Orientada a Objetos -POO en espaol. 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, LGICA: La lgica se compone en su orden de Clculo de Predicados, Lgica de Primer orden y Lgica de Orden Superior. El clculo de predicados es una lgica que evala expresiones haciendo uso de trminos y operadores sobre los trminos con las clsicas relaciones lgicas conocidas xix

(conjuncin, disyuncin y negacin) y algunas reglas de inferencia que definen la capacidad expresiva de la lgica por ellas definida. La lgica de Primer Orden incluye los cuantificadores y las funciones para empezar a incluir a los conjuntos dentro de su universo de discurso y la lgica de Orden Superior incluye cuantificadores para las funciones mismas. Cada uno de los sistemas lgicos mencionados tiene una capacidad de expresin incrementalmente mayor, es decir, lo que se puede afirmar y deducir en clculo de predicados tambin se puede afirmar y deducir en lgica de primer orden y lo mismo se cumple para la lgica 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 expresin menor la capacidad de demostrar e inferir. OSS: (Open Source Software) Tambin llamado OSS o FS, en Latinoamrica y pases hispano parlantes es llamado software de fuente abierta o cdigo abierto y SL -Software Libre- respectivamente. OSS/FS es un movimiento que busca que exista colaboracin global entre comunidades de programadores y usuarios para desarrollar al mximo las posibilidades de un programa, software o librera a travs de la liberacin 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 fenmeno 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 cdigo fuente) y generar ambientes colaborativos, de ah el trmino 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 carcter poltico del movimiento enfatizando que el movimiento promova el acceso al cdigo fuente y de ah el trmino cdigo abierto o fuente abierta, tomando como bandera la eficiencia de modelo sobre las caractersticas filosficas. 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 da los dos movimientos tienen actividades muy aparte a pesar de continuar luchando por el mismo objetivo. PDF: (Portable Document Format) Formato de Documento Porttil. 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

conceptos usados por la propuesta MDA - Model-Driven Architecture por medio de la cual se especifican dos modelos de diseo pero con uno de ellos se puede hacer correspondencia directa con el cdigo fuente. PLN: Procesamiento de Lenguaje Natural, es la disciplina en la cual se estudian los algoritmos y tcnicas para obtener el significado de las comunicaciones humanas as como analizarlo, generarlo o manipularlo. PROPIETARIA, TECNOLOGA / PROPIETARIO, SISTEMA: El trmino propietario se refiere generalmente a una tecnologa que tiene restricciones de uso muy fuertes ligadas a una empresa que explota esas restricciones y adems no se acoge a procedimientos estandarizados o normalizados por entidades o consorcios de estandarizacin. 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 slo lectura del formato o de slo escritura. La contraparte de las tecnologas propietarias son las tecnologas libres o las tecnologas 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 tecnologas. RDF: (Resource Description Framework) Marco de trabajo para descripcin de recursos. RDF es un modelo de datos o esquema sintctico que permite describir un recurso identificable mediante un URI a travs de sentencias o afirmaciones del tipo sujeto-predicad-objeto. SGML: (Single Generalized Markup Language) Lenguaje de Marcado Generalizado Estndar. Lenguaje genrico para representacin de informacin o diseo de lenguajes de representacin como HTML y XML. RSS: (Really Simple Syndication) Sindicacin Realmente Simple. Es una tecnologa que permite publicar pequeos extractos de contenidos como noticias y pronsticos del clima a manera de canales de informacin formateable de manera independiente del contenido y visibles tanto en visores especiales de RSS como en pginas Web suscritas que no crean sus propios contenidos. La versin 1.0 de RSS est basada en RDF. RULEML: Iniciativa abierta en la que se busca establecer un sistema de reglas de inferencia lgica a partir de ontologas y documentos RDF con su propio lenguaje de especificacin y ejecucin. La pgina principal de RuleML dice que ms que prototipos acadmicos ellos buscan la interoperabilidad de reglas entre estndares 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

como CLIPS, Jess, ILOG JRules, Blaze Advisor, Versata, MQWorkFlow, BizTalk, Savvion, etc. SCRIPT: Ver Guin SL: (Software Libre) Es el trmino general usado para hablar de aplicaciones, utilidades y libreras que acogen el modelo de desarrollo Libre y comunitario propuesto por el movimiento GNU o en algunas ocasiones se usa tambin para hablar de aplicaciones suscritas al movimiento OSS (Ver entradas en el glosario). TIC: Tecnologas de la Informacin y las Comunicaciones TIPADO, FUERTEMENTE: En el contexto de los lenguajes de programacin, los tipos de datos son una base de diferenciacin. Un lenguaje de programacin 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 ejecucin misma del programa verifique cada vez que se llama a una funcin o mtodo con un parmetro de ese tipo que la variable, parmetro o valor se corresponde con el tipo de dato que se espera o con la operacin que se quiere realizar. Existen lenguajes de programacin dbilmente tipados que no incluyen en su sintaxis la necesidad de especificar los tipos en sus contextos y en vez de ello implementan mtodos 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 funcin, mtodo o operacin a realizar, en estos casos se hace una conversin implcita de tipos y el valor pasado se interpreta como el valor necesitado para la operacin, lo que puede dar origen a problemas serios en la ejecucin del programa no detectables en otra etapa diferente a la del uso del mismo. TIPSTER: Es un programa pionero de extraccin de informacin creado por DARPA y liberado desde 1998. TURING, MQUINAS: Las mquinas de Turing son una representacin matemtica de las computadoras que han servido como base para estudiar la complejidad computacional y las capacidades tericas de las mismas. UML: (Unified Modelling Language) Lenguaje Unificado de Modelado. Es una notacin grfica que permite modelar un sistema de software y ver los diferentes aspectos que se deben considerar en el anlisis y diseo 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 identificacin es una generalizacin para permitir que todos los xxii

objetos del universo real y de Internet sean identificables inequvocamente. 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 pgina Web, un archivo, un servidor, etc. Los URLs son el subconjunto ms conocido de URIs. USABILIDAD: ste trmino ha venido acundose en las comunidades de diseo de contenidos Web, como la facilidad de uso de la aplicacin o sitio Web que se est diseando o publicando. Para garantizar usabilidad se acostumbra simplificar los procesos y acompaar los diseos de ayudas visuales e interactivas que guen a los usuarios hacia le finalidad perseguida, que puede ser capturar datos demogrficos/psicogrficos o inscribir cierta operacin en una base de datos. W3C: Es una organizacin sin nimo de lucro dedicada a desarrollar normalizadamente las tecnologas relacionadas con Internet, en especial con la publicacin de contenidos a travs de la World Wide Web. WWW CONSORTIUM: (Consorcio WWW) Ver W3C WWW: Telaraa mundial de informacin. Es la denominacin genrica de todas las variantes que surgen del uso de HTTP para intercambiar informacin de diferentes maneras, es decir, grficos, aplicaciones interactivas, documentos, etc.. XHTML (Extensible HTML) Es una versin de HTML conforme con las reglas sintcticas de XML. WORLD WIDE WEB: Ver WWW. XML: (eXtensible Markup Language) Lenguaje de Marcado Ampliable. Lenguaje de representacin de informacin que permite diseo de lenguajes de representacin genricos como RDF. XML conforma un base sintctica para la representacin de informacin, exige que todo documento XML o conforme tenga unas reglas sintcticas fijas, como por ejemplo que toda etiqueta tenga un comienzo y un fin definidos, que la anidacin 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 validacin de los contenidos de las etiquetas y de las estructuras de secuencia y anidacin vlidas dentro de alguna aplicacin del lenguaje, caractersticas que XML hereda de ste y ampla simplificando la sintaxis. XML-RDF: Marco de descripcin 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

RESUMEN

Internet ha evolucionado en una amalgama de tecnologas con frecuencia incompatibles pero con una base comn desde sus inicios: la representacin de la informacin. El presente proyecto busca establecer una base tcnica sobre la cual construir un sistema orientado a Internet usando las tendencias ms predominantes hoy en da: Web Semntica, Agentes Inteligentes y Reconocimiento de Lenguaje Natural como colgeno. 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 Internetoriented system using the most predominant trends nowadays: Semantic Web, Intelligent Agents and Natural Language Processing as a kind of glue.

xxiv

1. DEFINICIN DEL PROBLEMA

1.1

INTELIGENCIA ARTIFICIAL

La inteligencia artificial ha tenido un desarrollo continuo desde los orgenes de la computacin, si no se pude decir que fue el origen mismo de ella. Durante muchos aos de desarrollos muy acadmicos y experimentales la inteligencia artificial ha terminado por ser una rama de las ciencias de la computacin que agrupa un conjunto de algoritmos no convencionales, una compilacin de enfoques o paradigmas distintos a los paradigmas clsicos y deterministas de la programacin tradicional. Es as como incluimos en una bolsa con el ttulo de Inteligencia Artificial a todo algoritmo no convencional como las redes neuronales artificiales, los algoritmos genticos, la programacin funcional, algoritmos de clasificacin (clasificacin, agrupamiento o clustering en ingls) y muchos otros que seguramente se me escapan. La idea de la bolsa no significa que dichos algoritmos interacten 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 aplicacin de programas que aplican el conocimiento que el programador tiene del problema e implementa lo que el programador hara slo que de una manera ms exhaustiva y sistemtica, como slo pueden hacerlo los computadores. El concepto de agente inteligente busca abstraer y unificar la inteligencia artificial a travs de un concepto elemental y abstracto que permita un enfoque sistemtico y nico como punto de partida para abordar cualquier problema al que se le quisiera aplicar alguna de las tcnicas 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 segn el tipo de interaccin 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 da son fuente de debate en los crculos 1 RUSSEL, Stuart; NORVIG, Peter. Inteligencia Artificial, un enfoque moderno. Prentice Hall, 1995.
Pg. 5.

25

acadmicos que estudian el tema. Hoy en da el concepto de agente inteligente como herramienta terica ha cado en desuso debido a que est tan slido como concepto que se ha convertido en una robusta herramienta de diseo de programas y de plataformas de programacin distribuida, es decir, el concepto ha migrado de la academia a la industria y est madurando como paradigma futuro de la programacin. Los agentes inteligentes son ahora un concepto de diseo, de ingeniera de software que se acompaa generalmente con metodologas de diseo basadas en utilidades actuales extendidas para tal fin como el AUML (Agent UML) y con plataformas de implementacin especficas de cada metodologa. ste es uno de los grandes problemas que existen hoy en da en el diseo de plataformas de agentes inteligentes: la proliferacin de metodologas diferentes e incompatibles2.

1.2

WEB SEMNTICA

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 telaraa mundial de informacin (World Wide Web). El problema que ve Tim Berners-Lee en la manera actual de intercambiar informacin es, entre otros, que los computadores no pueden tomar decisiones basndose en la informacin contenida en los documentos (o ms concretamente en su formato) y por lo tanto no pueden hacer computacin inteligente a travs 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 adems otra serie de problemas tcnicos surgidos de la interaccin de diferentes sistemas de informacin una vez que pueden interactuar globalmente. Entre estos problemas tcnicos estn la falta de unificacin de la codificacin de los documentos y en la identificacin de los mismos, la falta de un formato fcil de entender por parte de las mquinas que auto describa su sintaxis 2 Universidad de Toronto, Canad. Agent-oriented Methodologies, 2002,
http://www.cs.toronto.edu/km/aometh/methodologies.htm

3 PALMER, Sean B. The Semantic Web: An Introduction, 2001, http://infomesh.net/2001/swintro/ 26

y posiblemente su significado, una representacin de la informacin (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 sintctico y semntico a la informacin y reducir su complejidad a dominios bien definidos, una base lgica que permita a las mquinas extraer nuevo conocimiento de los documentos publicados, reglas de prueba que garanticen la validez de las afirmaciones que las mquinas 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 automticamente por los computadores mismos. La arquitectura propuesta por Tim Berners-Lee en la XML Conference 2000 4 se puede observar en el siguiente grfico donde l expone todos los aspectos mencionados en ste prrafo.

Figura 1. Arquitectura original de Web semntica

La Web semntica es la propuesta concreta a algunos de los problemas que Tim 4 BERNERS-LEE, Tim. Semantic Web - XML2000, 2000, http://www.w3.org/2000/Talks/1206-xml2ktbl/Overview.html

27

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 informacin 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 artculos sobre el potencial de ste modelo en trminos de lo que los computadores podran hacer basndose en l, pero primero hay que disear teniendo esta meta en mente.

1.3

LENGUAJE NATURAL

El procesamiento de lenguaje natural es un problema clsico de la inteligencia artificial y sus orgenes se remontan al diseo de lenguajes de programacin y las mquinas de Turing. En resumen (ms adelante entraremos ms 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 informacin importante y puedan razonar sobre tal informacin y las relaciones que tal informacin 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 migracin a la Web semntica. Los actuales usuarios no pueden (ni quieren) migrar toda su informacin en HTML escasamente estructurado (que en su mayora ni siquiera es XHTML) a una nueva forma de publicacin. Los usuarios que van a poblar la Web Semntica sern usuarios nuevos que aprendieron a usar herramientas inteligentes de anotacin y diseo 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 interpretacin de Lenguaje Natural como estrategia de migracin de los nuevos documentos ofrece la ventaja de mostrar, sin incurrir en esfuerzos grandes por parte de los usuarios, los potenciales de la Web Semntica si bien ella no puede desplegar o ejecutar su potencial totalmente sin hacer uso de dispositivos inteligentes que interacten 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/Cataloguin g/Metadata/RDF/Applications/RSS/

28

1.4

EL PROBLEMA

Las secciones anteriores buscan exponer un panorama informtico 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 ingeniera 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 computacin evidencia una cierta inmadurez en su desarrollo, apenas natural debido a la comparativamente corta edad de sta ciencia respecto a otras ingenieras como las ingenieras civiles o las ciencias sociales por ejemplo, que llevan siglos de evolucin, desarrollo y estructuracin de sus principios y por ende de sus disciplinas elementales y sus especialidades. Las disciplinas componentes de las ciencias de la computacin, clasificadas por la IEEE, se suelen ensear en pregrado como componentes de carreras holsticas de ingeniera de sistemas y computacin que normalmente no integran bien tales disciplinas y menos an facilitan la especializacin en alguna de ellas. Puede ser a consecuencia de sta inmadurez que vemos que los enfoques vistos anteriormente no aparecen integrados para dar solucin al problema de la migracin de la actual Internet a la Web Semntica. Como vimos en la seccin Web Semntica, parece que el futuro de Internet est en el modelo expuesto por Tim Berners-Lee basado especialmente en RDF y en Ontologas, y la Web Semntica misma no puede concebirse sin pensar en programas autnomos y proactivos con fuertes capacidades de comunicacin (que es una definicin muy simplificada de Agente Inteligente) que integren en sus capacidades algoritmos o tcnicas clsicas y no convencionales (como las que llambamos anteriormente Inteligencia Artificial). El problema atacado es bsicamente cmo establecer una base para el despliegue de aplicaciones inteligentes en una Web convencional como Univirtual? y cul sera esa base?. Finalmente, y contextualizando, una plataforma de agentes inteligentes para el pblico objetivo de Univirtual debera ser una plataforma que por un lado ofrezca capacidades de publicacin orientadas a la Web Semntica con todos sus potenciales y permita la publicacin transparente de los contenidos como se ha hecho tradicionalmente pero ofreciendo servicios que exploten las nuevas 29

capacidades. ste proyecto de grado persigue hacer el anlisis preliminar del estado de arte en las tecnologas de agentes inteligentes y Web Semntica, necesario para promover tanto la publicacin convencional como el despliegue de sistemas de agentes inteligentes que aprovechen los potenciales de la nueva representacin de la informacin o publicacin Web haciendo uso de libreras y tecnologas orientadas a la interpretacin de lenguaje natural, es decir, un modelo de implantacin de agentes inteligentes como intrpretes semnticos de lenguaje natural, o en otras palabras, un modelo migrante hacia la Web Semntica basado en anlisis de lenguaje natural. El modelo propuesto tendr en consideracin las tecnologas emergentes tanto en plataformas como metodologas y ser un listado de tecnologas que copen las necesidades de un sitio con las caractersticas de Univirtual y un conjunto de estrategias de integracin de tales tecnologas.

30

2. JUSTIFICACIN

Las tecnologas relacionadas con agentes inteligentes se encuentran distribuidas en una serie de paradigmas y enfoques de trabajo que no suelen ser enteramente compatibles entre s6, si bien existen modelos, marcos de trabajo y propuestas de estandarizacin en las comunicaciones que aumentan la interoperabilidad entre algunas plataformas pero no facilitan la labor de disear los sistemas 7, por ejemplo, hay que tener en cuenta que en este escenario los intentos de estandarizacin sobrecargan los sistemas a travs de acoplamiento de interfaces y exigen que los diseadores y programadores asimilen diferentes marcos de trabajo. La opcin ms comn de plataformas para agentes inteligentes suele ser plataformas propietarias que se ajustan a algn modelo o estndar propuesto pero que son concebidas desde el diseo mismo con el conjunto de metodologas tanto para la interaccin con los usuarios como la interaccin con los diseadores y programadores. En ste nuevo horizonte de desarrollo para la ingeniera de sistemas y computacin, se habla ya desde hace algunos aos de la Ingeniera de Software Orientada a Agentes (AOSE por sus siglas en ingls) como nombre comn de las prcticas relacionadas con el diseo de sistemas multiagente y como nuevo paradigma de diseo. El anterior panorama dibuja una situacin seriamente complicada: unos estndares 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, diseadores de interfaz (modeladores del proceso pedaggico y diseadores Web), diseadores del sistema (modeladores de procesos y programadores) se encuentran trabajando en conjunto en el mismo objetivo pero sin un lenguaje comn entre ellos que permita dirimir conflictos y facilite la interaccin entre ellos. Un sistema de informacin con el volumen de usuarios y la complejidad que persigue Univirtual, slo 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.htm 7FIPA. Publicly Available Implementations of FIPA Specifications, 2006 http://www.fipa.org/resources/livesystems.html

31

de adaptarse a las necesidades de cada usuario conociendo las preferencias de cada uno y permitiendo una administracin simplificada, caractersticas que los programas clsicos orientados a objetos no pueden desempear muy bien (ver anexo A). Adems de lo anterior, las tcnicas de Web Semntica permiten que los programas (o agentes en nuestro caso) accedan a la informacin en el momento de transporte sin necesidad de crear un sistema propietario y accedan a informacin restrictiva que ayuda a los mismos a adaptarse y razonar sobre sta pero no es fcil imaginar otra manera de adquirir informacin semntica si no es aplicando tcnicas de Procesamiento de Lenguaje Natural que sera el mtodo ms expedito para lograrlo. Antes de emprender una empresa como el diseo 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 tecnologas disponibles, sus caractersticas y parmetros de seleccin, 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 publicacin de informacin en formatos que permitan a los computadores reconocer la semntica 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 prcticos y significativos para nuestras elecciones y sugerencias de implementacin (para la puesta en marcha), reconocer la visin de la Web Semntica para usarla como colgeno en el reconocimiento y representacin del lenguaje natural considerando la informacin existente y examinar algunas herramientas que deberan 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

3. OBJETIVOS

3.1

OBJETIVO GENERAL

Desarrollar un modelo de implantacin que sugiera y concilie los enfoques y tecnologas necesarias para desplegar un sistema de agentes inteligentes adaptado a las necesidades de un sitio de educacin virtual como Univirtual de la universidad tecnolgica de Pereira usando tecnologas orientadas a la Web Semntica con base en anlisis de lenguaje natural.

3.2

OBJETIVOS ESPECFICOS

Revisar el papel de los agentes inteligentes en las plataformas educativas. Revisar la arquitectura de los sistemas de tutoreo inteligente. Estudiar las necesidades de comunicacin y movilidad de agentes inteligentes en Univirtual. Estudiar las necesidades de representacin de informacin de Univirtual. Comparar plataformas de agentes inteligentes. Comparar marcos de trabajo para representacin de dominios y extraccin de informacin. Estudiar las herramientas de implementacin con que se cuenta para realizar etiquetado y clasificacin de contenidos. Proponer una metodologa de diseo y plataforma de implementacin. Articular la interaccin de las herramientas en una arquitectura general. Crear un prototipo que muestre cmo se puede hacer la integracin final de las tecnologas mencionadas.

33

3.3

DELIMITACIN

Este proyecto de grado busca establecer algunos parmetros a considerar antes de disear e implementar una plataforma de agentes inteligentes para Univirtual. Dentro del marco clsico de la Ingeniera de Software se corresponde con parte del anlisis, desde una perspectiva de alto nivel. El proyecto se desarrollar de la siguiente manera:

Estudiar alternativas de metodologas de diseo de agentes inteligentes y seleccionar una apta para el proceso. Analizar los actores del sistema, caractersticas de su interaccin y la informacin que utilizan a la luz de la metodologa seleccionada. Ilustrar el uso de la metodologa estableciendo un modelo de interaccin entre los mismos. Verificar los protocolos de interaccin y su posible correspondencia con modelos contemplados en plataformas de programacin orientada a agentes. Establecer una base de esquemas de interaccin tanto entre actores como de actores con el sistema. Hallar y comparar las plataformas que faciliten estos esquemas de interaccin. Estudiar las utilidades existentes para desarrollar los requerimientos establecidos. Proponer un modelo de implantacin basado en las consideraciones hechas en los apartes anteriores.

34

4. MARCO REFERENCIAL

4.1

MARCO TERICO

El marco terico del problema analizado est compuesto por los marcos tericos relativos a los ejes principales del tema: agentes inteligentes, representacin de datos en Internet y reconocimiento de lenguaje natural, dedicamos dos captulos al marco terico de los agente BDI que son un tipo de agente que se basa en la teora descrita en ese captulo y que son el elemento constitutivo de las dos plataformas ms populares para la implantacin de sistemas multiagente, as mismo dedicamos una seccin a las metodologas que tambin constituyen una parte importante del marco sobre el cul se disean 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 teoras de inteligencia artificial que hasta ese momento constituan un conjunto separado de disciplinas que enfocaban la computacin desde paradigmas no convencionales. La inteligencia artificial originalmente (y an en nuestros das) parece una colcha de retazos de algoritmos y mecanismos no convencionales para resolver problemas, por ejemplo, los algoritmos genticos, las redes neuronales, los lenguajes funcionales, redes de creencia, lgica difusa, etc.. El agente inteligente busca integrar todos los enfoques en una abstraccin que permita aplicar cualquiera de stos mtodos a una sola entidad que responda a unas propiedades bien definidas. El agente inteligente entonces fue concebido y clasificado originalmente segn la manera en que poda actuar, es decir, cmo se le vea desde afuera y por cmo 35

funcionaba, es decir, cmo se le poda ver desde adentro. Adems de los criterios de clasificacin mencionados el agente inteligente fue definido como: Todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o acta sobre l mediante efectores"8 Dada la anterior definicin, un agente inteligente es casi cualquier cosa que pueda percibir y actuar, es decir, a esta definicin pertenece por ejemplo un aire acondicionado, que tiene un conjunto de sensores para conocer la temperatura y unos efectores que enfran o no segn algunos parmetros, 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 definicin debido a la expectativa de la aplicacin de su definicin 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. An con las deficiencias mencionadas, cabe sealar que la definicin de Russell y Norvig tiene la propiedad fundamental que deseaban los autores: una definicin suficientemente abstracta como para que permitiera integrar los diferentes enfoques y tcnicas aplicadas en inteligencia artificial clsica, seguramente los autores intentaron evitar el atollamiento que implica tratar de definir la inteligencia adems de la idea de que si nos limitamos la aplicacin de esta definicin a programas es razonablemente acertada (los programas clsicos no tenan sensores y por lo tanto no reaccionaban al ambiente). Nos parece pues, que lo que le falta a la definicin 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 aplicacin a entidades ms generales. La clasificacin 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 correcta 9 como lo ilustra la siguiente tabla:

8 RUSSELL, Stuart; NORVIG, Peter. Op. cit., Pg. 33 9Ibid. Pg. 5 36

Cuadro 1. Clasificacin de agentes

Emulacin Pensamiento Sistemas que piensan como humanos Sistemas que actan como humanos

Formulacin Sistemas que piensan racionalmente Sistemas que actan racionalmente.

Actuacin

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

Es decir, que la definicin de un agente inteligente sera para nosotros: Cualquier entidad capaz de percibir a travs de sensores el ambiente en el cual se desempea y actuar inteligentemente sobre l con sus efectores Y la definicin entonces se complementa con lo que significara actuar inteligentemente: Emprender las acciones que le permitan de manera inmediata o a futuro obtener un beneficio en trminos de uno o varios objetivos concretos externos o internos conservando su integridad fsica y lgica La anterior definicin parece ms 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 trminos de estos ejes adems de la capacidad de percibir y actuar sobre un ambiente determinado. Valga la aclaracin de que adems del tiempo (o tal vez a consecuencia de l), algunos autores han visto la necesidad de considerar las capacidades de comunicacin 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 adems de las que se derivan directamente de la definicin de agente de Russell y Norvig (capacidad de sentir el ambiente y actuar sobre l -reactividad-, as como influenciar y ser influenciado por 37

el mismo -situacionalidad- 10, las siguientes:

4.1.2.1 La accin Una accin puede ser la inferencia o la accin fsica, es decir, la accin tiene que ver con la capacidad de tomar decisiones y realizar algo con base en tales decisiones. Desde este punto de vista, la accin 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 accin fsica (o lgica). 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 tiempo La 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 efectan acciones afecta el resultado final: no es lo mismo reaccionar inmediatamente al evento el piso se rompe que reaccionar despus de cumplir la meta recoger los platos o mejor an, no es lo mismo aspirar la casa en la noche cuando las personas duermen- que aspirar la casa en el da. 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 teoras de control.

4.1.2.3 Los objetivos o metas La accin 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 accin 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 dinmicamente compuestos por la propia inferencia del sistema, evidentemente es preferible la segunda opcin porque los programas tradicionales son equivalentes a un agente cuyo conocimiento est estrictamente en su programa, es decir, su 10 THANGARAJAH, John; PADGHAM ,Lin; HARLAND, James. Representation and Reasoning for
Goals in BDI Agents, 2001. 11 Ibid.

38

inteligencia est en el programador que lo hizo.

4.1.2.4 Internalidad/externalidad Los objetivos o estmulos que tenga un agente para actuar o pensar pueden ser obtenidos de su conocimiento interno, bien sea a travs de conocimiento incorporado inicialmente o adquirido a travs de acciones efectuadas anteriormente al momento de la decisin 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 mnimamente cuando todava no tiene ninguna experiencia no sera inteligente. Esta caracterstica, est relacionada con la autonoma que todos los autores mencionan como caracterstica fundamental de cualquier agente, as como con las capacidades de comunicacin, dado que es necesario que el agente responda a rdenes bien sea humanas o de otros agentes y es tambin necesario que las rdenes permitan que el agente busque informacin adicional necesaria para llevar a cabo la orden con relativa autonoma.

4.1.2.5 Integridad Para considerar inteligente alguna entidad, es necesario que exista alguna medida o control de su integridad, tanto lgica -es decir, coherencia de sus representaciones y acciones- como fsica, 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 fsica o que impliquen modificacin de sus creencias para mantener su integridad lgica.

4.1.2.6 Otras propiedades Existen otras propiedades usadas para la clasificacin 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 ilustracin listaremos algunas de las clasificaciones hechas por otros autores para ser exploradas en otro aparte en caso de ser necesario. 12

12 BOLVAR, Jennifer; ORREGO, Danny. Monografa anlisis del aprovechamiento de los agentes
mviles en aplicaciones diseadas para redes, 2004.

39

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 segn sean Reactivos, Proactivos o Sociales, es decir, que acten basados principalmente en estmulos 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 informacin de los modelos o representaciones del mundo que tengan esos agentes. Agentes con base en su autonoma, aprendizaje y cooperacin Segn el papel que desempeen frente a los agentes humanos, pueden existir Agentes interfaz, Agentes colaboradores, Agentes autnomos y Agentes de aprendizaje, que son respectivamente los que ocultan la complejidad y asisten a los humanos frente a una aplicacin o dominio especfico usando su capacidad de aprendizaje para recordar y reconocer el comportamiento de los humanos detrs 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 intervencin humana; agentes que proponen o ayudan a recorrer un tema para aprender reconociendo los posibles problemas que surgen para el alumno. Agentes segn su movilidad Dado un ambiente de ejecucin con capacidades de interconexin, un agente puede decidir ejecutar su cdigo slo en la mquina local (Agentes estacionarios) o transferir su ejecucin y estado a otras mquinas (Agentes mviles).

4.1.3

Agentes BDI

Uno de los ms excitantes retos de los psiclogos e investigadores de la Inteligencia Artificial es entender y describir el comportamiento de los agentes racionales. Ellos estn interesados, en particular, en describir cmo son influenciados por el ambiente externo y cmo su estado mental gua sus acciones. Es por eso que durante los ltimos aos se ha desplegado un gran esfuerzo por desarrollar lenguajes para describir tales estados mentales. Una vez definido un lenguaje como este, sera posible especificar formalmente el comportamiento de agentes que se supone que actan racionalmente, describir cmo deberan 40

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 teora encaminada en sta direccin y de fuerte aceptacin entre los diseadores de algunas de las plataformas ms aceptadas hoy en da es la de los agentes basados en Creencias, Deseos (o metas) e Intenciones o BDI por sus siglas en ingls (Reliefs, Desires, Intentions). Dado que BDI es una teora que ha venido evolucionando y que ahora es la base de las plataformas ms populares para desarrollo de sistemas multiagente la describimos brevemente en ste aparte como un marco terico del sistema bajo anlisis. BDI es una teora cognitiva de comportamiento de toma de decisiones en agentes racionales y apunta a la descripcin del comportamiento en toma de decisiones en trminos de conceptos cognitivos. Las creencias y deseos se corresponden muy de cerca con conceptos usados en otras teoras alternativas de decisin y los conceptos de intenciones son propuestos como restricciones para las alternativas sobre las cuales el agente puede decidir. BDI es tambin un marco de trabajo sobre el cual se han desarrollado plataformas de agentes inteligentes cuyo fundamento son intrpretes de un lenguaje lgico en trminos de creencias, deseos e intenciones. Dicho lenguaje intenta especificar el comportamiento de agentes racionales a travs de la descripcin de sus estados mentales. BDI representa un lenguaje lgico cuya semntica captura las propiedades y relaciones establecidas entre creencias e intenciones. La informacin parcial del estado del ambiente, el cual es representado por probabilidades cuantitativas en teora clsica de la decisin y por orden cualitativo en teora cualitativa de la decisin es ahora reducida a valores binarios. sta abstraccin sobre la informacin acerca del estado del ambiente es llamado creencias en un agente que toma decisiones. Similarmente la informacin acerca de los objetivos, lo que est representado por utilidad cuantitativa en teora clsica y por orden de preferencia cualitativo en teora de decisiones, es llamado deseos. En la semntica de la lgica BDI esta representacin 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. Una interpretacin M est definida como una tupla M=( W, E, T, <, U, B, D, I, ?)

41

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 aplicacin 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 teora) incluyeron un componente temporal. La lgica BDI es una extensin de la lgica de rbol computacional (CTL* -Computational Tree Logic), la cual es frecuentemente usada para modelar estructuras bifurcadas de tiempo con operadores modales epistmicos 14 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 metodologas de desarrollo Debido a que nuestro estudio no es estrictamente terico, es necesario tambin mencionar algunos hitos sucedidos durante los ltimos lustros en trminos prcticos que para nosotros se traducen en metodologas de ingeniera de software y arquitecturas tanto de sistemas fsicos como de diseos o arquitectura de sistemas, es decir plataformas. Los agentes inteligentes fueron durante algunos aos entidades muy acadmicas, es decir, objetos de estudio para teorizar, estudiar y respaldar con anlisis de 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 das de la semana sin festivos (reconocido como 24/7 en algunos pases), informacin permanente y personalizada para los clientes (potenciales o efectivos), capacidades de interaccin con los usuarios del sitio y ms importante an, potencial mundial de comercializacin: el mundo es el nuevo alcance del mercado. 13 DASTANI, Mehdi; HULSTIJN, Joris; VAN DER TORRE, Leendert. How to decide what to do?,
2003. 14 Un operador modal epistmico 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

La evolucin de estos sistemas ha hecho pasar a las empresas y la industria de desarrollo Web por varias etapas de las cuales la ms conocida fue aquella de los aos 90 en que cualquier negocio que se publicara en Internet esperaba tener un gran impacto y altas rentabilidades. La ilusin dur poco y las empresas despus de algunos descalabros entendieron que publicar informacin simplemente no era justificacin suficiente para los costos que acarreaba centrar su estrategia slo en Web, que se necesitaba algo ms. Por esta misma poca, los agentes inteligentes, con una fuerte base terica, diversa y slida, convergieron con las nuevas tecnologas 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 seguan discutiendo sobre las mejores formas, prcticas y tecnologas para estimular el uso de Internet. Tecnologas como XML, SOAP, Web Services y RSS fueron entrando en escena tmidamente para demostrar que la representacin del conocimiento y los protocolos especiales para aplicaciones distribuidas eran una solucin para hacer efectivas las inversiones en estos sistemas. Los agentes inteligentes aparecieron entonces como el perfecto complemento de estas nuevas tecnologas: el agente inteligente como entidad autnoma y reactiva era el modelo perfecto de aplicacin distribuida. fue esta necesidad de las grandes corporaciones de optimizar sus sistemas Web una de las tendencias ms importantes que impulsaron la pequea explosin de plataformas que vamos a describir, cada una acompaada de alguna clase de metodologa de diseo y un conjunto de utilidades ligadas (casi siempre) con un lenguaje de preferencia. Cabe aqu destacar que la mayora de los desarrollos de plataformas se basan en propuestas y experimentos de comunidades acadmicas que sustentan y proveen a esta incipiente industria de herramientas y elementos constitutivos para ensamblar sus plataformas, que surgen despus de existir cierta cantidad de elementos comunes a este tema, como la interaccin de agentes, el monitoreo de los mismos y la administracin de recursos dentro de un ambiente de ejecucin. Una plataforma se define como un conjunto de tecnologas (hardware) y subsistemas (software) que proveen funcionalidades coherentes destinadas a un uso determinado a travs de diferentes interfaces y especificaciones de patrones de uso para tales aplicaciones. Una plataforma de agentes inteligentes por lo tanto, es un conjunto de funcionalidades bsicas 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 ejecucin). 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. 43

Una plataforma de agentes es entonces, puesto en trminos fciles, un conjunto de programas o utilidades y libreras escritas con el slo propsito de facilitar la implementacin y ejecucin de sistemas de agentes. Ejemplos de plataformas son JADE (Java Agent DEvelopment Framework), que se define literalmente en su pgina 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 lder en este campo es JACK que cuenta con una metodologa que soporta sus estructuras de programacin en conceptos correspondientes de las fases de anlisis y diseo, de tal manera que aplicando la metodologa se puede llegar a un diseo 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 construccin, ejecucin e integracin de sistemas multiagente de nivel comercial usando una aproximacin basada en componentes16 Dentro de los componentes o elementos constitutivos que podemos identificar dentro de una plataforma tenemos fundamentalmente los siguientes: kernel, comunicaciones e Interfaz Grfica de Usuario (GUI por sus siglas en ingls -Graphical User Interface). El kernel o ncleo es bsicamente el conjunto de elementos de la plataforma que ejecutan las tareas fundamentales para el funcionamiento del sistema, como la creacin de agentes, la migracin 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 estn determinadas por las utilidades de sta para transmitir informacin o para migrar un agente de una arquitectura fsica a otra, tambin incluye el soporte para lenguajes de comunicacin; finalmente la GUI es simplemente una interfaz que permite realizar operaciones administrativas sobre la plataforma y observar su estado a travs de ventanas, botones y todos los elementos clsicos visuales de las aplicaciones comunes en entornos grficos como Windows, Macintosh, GNOME o KDE en GNU/Linux o CDE en Solaris. En este marco general surge un nuevo trmino de la ingeniera de software acuado durante los ltimos aos y que ahora goza de cierta popularidad aunque
15 JADE. FAQ, 2006. http://jade.tilab.com/community-faq.htm 16 The Agent Oriented Software Group. What is JACK?, 2006.

http://www.agent-

software.com/shared/products/index.html 44

ms bien por el amplio estudio de sus mtodos que por su uso extendido. Estamos hablando de la Ingeniera de Software Orientada a Agentes (AOSE por sus siglas en ingls o AOP)17. Dentro de esta nueva forma de disear sistemas -acusada de ser la natural sucesora de la Programacin Orientada a Objetos- se reconocen dos tendencias mayores de marcos metodolgicos basados en desarrollo de agentes e ingeniera del conocimiento. Basados en enfoques de arriba para abajo (top-down) y de abajo para arriba (bottom-up) refirindonos al nivel de abstraccin, es decir, del alto nivel al bajo nivel y del bajo nivel al alto nivel respectivamente. Tenemos como ejemplo del primer marco metodolgico a los agentes basados en Creencias, Deseos e Intenciones (BDI por sus siglas en ingls), ya mencionado anteriormente y considerado un enfoque basado en desarrollo de agentes. Del segundo marco metodolgico (basado en ingeniera del conocimiento) slo tenemos como ejemplo popular la metodologa Cassiopea que se basa en la definicin de roles y comportamientos, y sus interrelaciones. Para el primer marco metodolgico se tiene como base terica respectivamente la lgica del modelo BDI desarrollada por Rao y Georgeff y para el segundo la lgica basada en la teora de la intencin desarrollada por Cohen-Levesque18.

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


18 Ibid.

45

Figura 2. Genealoga de Metodologas

Para ms ilustracin sobre la explosin de metodologas ver la Figura 2, en la que se muestra una genealoga de metodologas. En dicha figura vemos como races la Orientacin a Objetos (OO), la Ingeniera de Requerimientos (RE: Requirments Engineering), la Ingeniera de conocimiento (KE: Knowledge Engineering) y finalmente un grueso de experiencias dispersas denotadas en el diagrama como P 19 .

4.1.4.1 Metodologa GAIA GAIA es una metodologa de desarrollo de software, cuya intencin es llevar sistemticamente al diseador desde una declaracin de requerimientos hasta un diseo suficientemente detallado como para implementarse directamente. En GAIA la recoleccin de requisitos es independiente del paradigma usado para 19 SUDEIKAT, Jan; et al.. Evaluation of AgentOriented Software Methodologies Examination of
the Gap Between Modeling and Platform, 2005.

46

anlisis y diseo. 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 ms concretos a los que hace referencia la metodologa son tipos de agentes, servicios y familiaridades (acquaintances en ingls). El anlisis y diseo en GAIA se compone principalmente de los modelos de roles, modelos de interaccin, modelos de agentes, modelos de servicios y modelos de familiaridades o relaciones y tales etapas se desarrollan como de costumbre con modelos incrementalmente ms detallados. GAIA usa trminos comunes con el anlisis y diseo de metodologas Orientadas a Objetos, pero introduce conceptos inherentes a la programacin 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 diseo de sistemas orientados a agentes como un proceso de diseo organizacional. En sta metodologa, la fase de anlisis se encarga de descubrir la estructura concreta del sistema con base en los conceptos abstractos mencionados y cmo stos se relacionan entre s. Es decir, durante el anlisis, el ingeniero de software descubre y declara los elementos compositivos del sistema, roles, protocolos, responsabilidades, permisos, etc. y deja escritos los modelos de anlisis necesarios para entender esta parte del desarrollo. El diseo sin embargo, no se corresponde con el diseo clsico al que estamos acostumbrados, es decir, el diseo en sta metodologa 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 diseo se conviertan en diseos suficientes para implementar el sistema en cualquier plataforma que se quiera. Es decir, el diseo en GAIA busca permitir que los modelos de anlisis permitan la aplicacin de las tcnicas convencionales de diseo (incluidas las tcnicas orientadas a objetos) para implementar finalmente el sistema 20.

4.1.4.2 Metodologa MaSE Existen otras metodologas importantes como por ejemplo Multiagent Systems Engineering (MaSE). Esta metodologa 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

metodologas tradicionales pero especializada en el paradigma de agentes distribuidos, difiere especialmente en que el diseo se encarga de definir componentes generales del sistema antes que el sistema mismo. La metodologa pasa por las etapas de diseo a nivel de dominio, diseo a nivel de agentes, diseo de componentes y diseo 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 comunicacin comn. De lo anterior deriva que MaSE se construye sobre las tcnicas tradicionales de anlisis y diseo, pero adicionndole caractersticas y cambiando un poco la semntica para capturar elementos de proactividad y comportamiento cooperativo. 21 La fase de diseo 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 colaboracin). 2. Identificar las posibles interacciones entre estos tipos de agentes. 3. Definir los protocolos de coordinacin entre ellos para cada tipo de interaccin. El diseo 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 especificacin llamado AgDL (Agent Definition Language) que se usa entre otras cosas para definir los componentes que se disean desde cero, dado que la idea de MaSE es reutilizar componentes existentes de la plataforma usada, por ejemplo usando JavaBeans. Componentes tpicos que encontramos para los agentes incluyen planificadores, algoritmos de bsqueda, mecanismos de inferencia y algoritmos de aprendizaje. Finalmente el diseo del sistema se compone tpicamente de los siguientes pasos: 1. Seleccionar los tipos de agentes que se van a necesitar. 2. Determinar el nmero de agentes de cada tipo y definir en cada caso: a) El lugar fsico o direccin de cada agente. b) Los tipos de conversaciones que cada agente podr llevar a cabo.
21 DELOACH, Scott. Op. Cit.

48

c) Cualquier otro parmetro definido en el dominio. Si bien tcnicamente no hace parte del diseo del sistema, una vez que est definido el sistema se pueden verificar ciertas propiedades de inters como seguridad y vitalidad (liveness). La definicin 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 diseo, especficamente el despliegue, en la fase de diseo del sistema y AgDL -Agent Description Languagepara especificar el diseo de componentes. stos dos lenguajes se combinan para proveer una definicin formal. MaSE no se vincula a ninguna plataforma en particular y tiene soporte de herramientas de agentes con soporte automtico para transformar modelos de anlisis en constructores de implementacin llamada AgentTool22,23. 4.1.4.3 Metodologa Tropos TROPOS es una metodologa para construir sistemas de software orientados a agentes y permite explotar toda su flexibilidad por medio de los lenguajes de programacin, 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 Ingls). Tropos se basa en dos ideas claves: la nocin 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 anlisis temprano hasta la implementacin misma. La segunda idea clave es que Tropos cubre incluso las ms tempranas fases de recoleccin y anlisis de requerimientos, lo que permite mejor comprensin del ambiente en el cual el software va a operar y las clases de interacciones que sucedern entre agentes de software y humanos. TROPOS interacta con una plataforma denominada JACK la cual posee constructores que se corresponden directamente con nociones de diseo de TROPOS y este a su vez provee heursticas 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

1. La nocin 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 anlisis temprano del entorno hasta su aplicacin a realizar. 2. Las fases de inicio tempranas del Anlisis de Requerimientos brindan un entendimiento profundo del ambiente donde el sistema como software puede operar; qu clases de interacciones ocurrirn 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 comn a varias actividades de desarrollo histricas como una base de documentacin y realizar evolucin de software sobre s. El lenguaje TROPOS para modelado conceptual esta formalizado en un metamodelo descrito con un conjunto de diagramas UML, su metodologa se compone de cinco fases que se inician con el anlisis de requerimientos tempranos y tardos; el diseo arquitectnico, el diseo detallado y la implementacin. Las fases I y II se conocen como el Anlisis de Requerimientos tempranos y tardos respectivamente y tratan de operar de un modo conceptual y metodolgico al ms alto nivel; muchas de las ideas introducidas en la fase de anlisis de requerimientos tempranos son constantemente usadas durante la fase de requerimientos tardos. 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 desempeo sus planes. Anlisis de requerimientos tempranos Se identifica el campo del dominio y se modelan los actores sociales, cmo dependen el uno del otro, definiendo claramente el estado del quin al lado del porqu, el cundo y el cmo, en todas las funcionalidades del sistema verificando por ltimo cmo la implementacin final se relaciona con las necesidades iniciales. Las intenciones son modeladas como metas, las cuales a travs de un anlisis orientado a metas se descomponen en submetas que eventualmente soportarn la evaluacin de alternativas. Anlisis de requerimientos tardos El modelo conceptual es extendido incluyendo nuevos actores los cuales representan el sistema y nuevas dependencias con otros actores del ambiente, las 50

cuales definen los requerimientos funcionales y no funcionales del sistema en s. Diseo de la arquitectura Esta etapa define la arquitectura general del sistema en trminos de subsistemas interconectados a travs 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 diseo de la arquitectura tambin define una correspondencia de actores del sistema a un conjunto de agentes de software cada uno caracterizado por capacidades especficas. Diseo detallado El diseo detallado trata de la especificacin de las capacidades y las interacciones. Para la etapa del diseo detallado se debe tener una plataforma elegida, de tal manera que los protocolos de interaccin y las capacidades de los agentes se correspondan con las estructuras sintcticas de dicha plataforma, que es uno de los fines principales de sta metodologa: llevar el diseo hasta la unin con la implementacin a travs de esta correspondencia. La documentacin de Tropos indica que sta metodologa es independiente de la plataforma elegida para la implementacin del sistema en diseo, sta es la fase de la metodologa responsable de sta caracterstica ya que en sta fase se hacen corresponder las estructuras de diseo descubiertas en las fases anteriores (protocolos de comunicacin, capacidades de agentes, tipos de agentes, etc.) con las estructuras y conceptos de implementacin 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. Implementacin La implementacin se sigue paso por paso de una manera natural a la especificacin del diseo detallado, dado que ste se desarrolla correspondiendo los conceptos de diseo (agentes, interacciones y capacidades) con construcciones y conceptos especficos 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

4.1.4.4 Plataforma JADE JADE es una plataforma de agentes inteligentes enteramente implementada en JAVA. JADE busca simplificar la implementacin de MASs a travs de un middleware (Software intermediario, ver glosario) que reclama ajustarse a las especificaciones de FIPA y a travs de un conjunto de herramientas que soportan las tareas de depuracin y despliegue. La plataforma de agentes puede estar distribuida a travs de mltiples mquinas que no necesitan tener ni siquiera el mismo sistema operativo (ya que se ejecutan en la mquina virtual de java) y la configuracin puede ser controlada a travs de una interfaz grfica remota e incluso puede ser cambiada en tiempo de ejecucin moviendo agentes de una mquina a otra. JADE requiere mnimamente la versin 1.4 del entorno de ejecucin 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 mensajera eficiente y flexible, ya que Jade maneja una cola de mensajes ACL (Agent Communication Language Lenguaje de Comunicacin de Agentes) privada para cada agente que puede ser leda a travs 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 ontologas, lenguajes de contenido definidos por el usuario y otras utilidades que permiten el intercambio de conocimiento entre agentes, adems Jade se integra con JESS (Java Expert System Shell), un intrprete de comandos (shell) de java para un lenguaje muy similar a CLIPS que permite explotar sus capacidades de razonamiento de manera directa o a travs de guiones. Jade se integra tambin con libreras LEAP que permiten el uso de Java en dispositivos porttiles. Mientras la plataforma aparece para el sistema como una sola entidad, el sistema es un sistema distribuido en s mismo, repartido en mltiples mquinas con alguna de ellas actuando como interfaz general o front end y ejecutando el Sistema de administracin (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 mquina virtual diferente y dando tiempo de ejecucin a algunos agentes. Cada ambiente de ejecucin provee un sistema de mensajera eficiente y flexible, eligiendo transparentemente el mejor medio de transporte para los mensajes, cumpliendo con los estndares propuestos por FIPA para la mensajera inter-plataforma ( es decir, entre plataformas ) y usando mecanismos propietarios para la mensajera intraplataforma ( es decir dentro del mismo ambiente de ejecucin). El modelo de ejecucin de JADE est basado en el concepto de comportamiento 52

(Behaviour) que intenta limitar la cantidad de hilos de ejecucin y que tiene sus races en lenguajes de actores. De acuerdo con el patrn de diseo de los objetos activos (Active Objects) cada agente ejecuta su propio hilo de ejecucin con el fin de soportar la autonoma y en vez de limitar la cantidad de hilos de ejecucin para un sistema de agentes, los comportamientos se ejecutan en un hilo cooperativo nico. De esta manera, JADE ejecuta un modelo de ejecucin de hilo por agente con planificacin cooperativa entre agentes. Adems de la librera de programacin de agentes y el ambiente de ejecucin, JADE incluye herramientas y un sistema de administracin del sistema de agentes que son a su vez agentes FIPA, y que slo se basan en JADE y su AMS. La consola de administracin general se llama RMA (Remote Management Agent), sta recolecta informacin de la plataforma y ejecuta comandos de la interfaz grfica 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 mensajera antes de incorporarlos a un sistema real o hacer pruebas y monitorizacin de agentes en tiempo real.

4.1.4.5 Plataforma JACK JACK es una plataforma de agentes inteligentes implementada en Java que permite la construccin, ejecucin e integracin de sistemas multiagente basndose en un enfoque orientado a componentes cuyo origen yace en la investigacin y desarrollo realizado por el equipo del Agent Oriented Software Group, compaa 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 administracin de recursos y concurrencia. JACK est compuesto por tres elementos principales: Un lenguaje de especificacin 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 clsica de Java con estructuras correspondientes a conceptos orientados a agentes. El compilador para el lenguaje de especificacin es un preprocesador que convierte las estructuras de extensin en estructuras puras de Java, stas extensiones se manejan como componentes conectables o plugins y son 53

fuertemente tipados, lo que minimiza la conversin implcita de tipos y la posibilidad de error y asegura una compilacin ms eficiente. El kernel de JACK es un conjunto de clases que proveen al sistema de la funcionalidad de orientacin a agentes, muchas de ellas se ejecutan transparentemente y soportan la infraestructura y funcionalidad subyacente que los agentes requieren y otras son usadas explcitamente en agentes escritos para JACK, heredadas y suplementadas con retrollamadas para proveer sus propias funcionalidades.

4.1.5 Representacin de los datos en Internet y Web semntica La Web Semntica es una extensin de la Web actual que busca que los computadores o dispositivos habilitados para accederla sepan el significado de los documentos o de la informacin que transporta. El origen del trmino parece remontarse a la conferencia XML Conference 2000, donde Tim Berners Lee, diseador 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 tecnologa que complementa al modelo en general. A continuacin 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.

Figura 3. Pila de Web semntica

54

4.1.5.1 Unicode: codificacin universal de texto Unicode es un conjunto o formato universal de codificacin 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 codificacin 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 proliferacin 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 especificacin es un superconjunto de todos los juegos de caracteres en uso hoy en da25.

4.1.5.2 URI: identificador uniforme de recursos URI es una cadena compacta de caracteres que identifica un recurso fsico o abstracto con una sintaxis simple y extendible como los URL que vemos a diario26. La uniformidad segn 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 interpretacin o semntica, lo que permite la introduccin de nuevos tipos de identificadores sin impactar en el uso de los tipos ya en uso, as como el reuso de los identificadores en mltiples contextos. Dentro de la especificacin la palabra recurso no est limitada a recursos fsicos ni alcanzables, es decir, un recurso tambin puede ser un ser humano, corporaciones, libros o cualquier objeto que exista en el mundo. Un recurso en el sentido usado por la especificacin tampoco es simplemente entidades concretas como pginas Web, imgenes, archivos o los objetos no alcanzables por Internet mencionados anteriormente (seres humanos, corporaciones, objetos del mundo real) sino que tambin pueden ser conceptos abstractos como operadores y operandos en una operacin matemtica, tipos de relaciones (mayor que, padre,
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

empleado, etc.) o valores numricos no necesariamente concretos como infinito, indeterminado y tambin los concretos como uno o cero, esta idea lleva la identificacin mucho ms all de los smbolos, nuestros conceptos podran ser unificados globalmente (un nico identificador para el concepto de infinito o no numrico -NIL- ) pero tambin tendramos 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 tambin acogen un estndar de nomenclatura ms bien histrica que est diseada para que el recurso siga siendo unvocamente 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 trmino URI. Los URL son un subconjunto de los URIs que incluyen el mtodo primario para alcanzar el recurso, por ejemplo un identificador de la red en la que se encuentra localizado fsicamente el recurso. Es necesario aclarar que la especificacin dice claramente que aunque histricamente se ha usado el trmino URN, ste trmino junto con URL es ms 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 especificacin para la asignacin de identificadores dentro del mismo, permitiendo un sistema de nomenclatura federado y extendible dentro del cual cada esquema permite la restriccin sintctica y semntica de cada identificador que l admite. En otras palabras, el esquema es un identificador o nombre para un mtodo 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 Semntica, 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 despus de ellos los identificadores que se referencian (El sitio Web de Univirtual, los parmetros de conexin a una base de datos y un documento de especificacin tcnica de la IETF RFC3986).

56

4.1.5.3 XML, NS y XMLSchema Por 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 propsitos y sintaxis, as como incorporar mecanismos de validacin automatizada a travs de DTDs (Document Type Definitions Definicin 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"?> <coleccin> <descripcin> Recetas para un tutorial de XML </descripcin> <receta> <ttulo>Pasta de pelo de Angel de Ajo con Filete Parmesano</ttulo> <ingrediente nombre="Filete de Carne de Vaca" cantidad="1.5" unidad="libras"/> ... <preparacin> <paso> Precalentar el horno a 350 Grados Farenheit(175 C). </paso> ... </preparacin> <comentario> Prepare la carne con antelacin y refrigere en la noche, el cido de la salsa de tomate ... </comentario> <nutricin caloras="1167" grasa="23" carbohidratos="45" protenas="32"/> </receta> <receta> ... </receta> ... </coleccin>

En el que vemos claramente que cada elemento constitutivo de una receta (al menos para el autor de este documento) est sealado dentro de una etiqueta de la forma <nombre> Contenido </nombre> o <nombre parametro='' /> y en especial obsrvese el uso de tildes con toda libertad, dado que la codificacin por defecto es UNICODE. Este es slo 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

documento de este tipo. XML no representa una forma de expresar la semntica de los documentos, pero permite dos cosas importantes en el modelo de Web Semntica: la autodescripcin y la independencia de la estructura del documento respecto a la presentacin final del mismo, que ha sido un gran problema en la Web (y uno de los principales objetos de desarrollo y estudio en la representacin del conocimiento en este contexto). La presentacin unificada de documentos en formatos XML sera un avance debido a la capacidad de stos de proveer su descripcin y sus mecanismos de validacin estndar, as como una sintaxis mnima unificada, junto con el uso de espacios de nombres (NS: Name Spaces) para separar la forma en que se presenta la informacin contenida y una serie de aplicaciones derivadas de XML mismo que mejoran las capacidades de representacin del lenguaje. Lo anterior permitira a los agentes validar sin mucho esfuerzo si un documento est bien formado, es decir, si su estructura es consistente con su propsito debido a su capacidad de autodescribirse y presentar mtodos automticos de validacin (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 informacin 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 pgina 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 migracin progresiva de HTML a lenguajes de etiquetado XML supondra un gran avance [...] para que la Web pase a ser de un espacio hiperdocumental a un espacio hiperconceptual27 XML Schema es un mtodo de validacin de la estructura y la sintaxis de un documento XML, es decir, XMLSchema permite especificar qu parmetros 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 travs de una referencia comunica su documento de validacin (que puede 27PEIS REDONDO, Eduardo; HASSAN MONTERO, Yusef; Ontologas, metadatos y agentes: recuperacin semntica de la informacin. 58

ser un DTD o un XMLSchema) y con eso es posible saber de manera automtica si el documento es consistente o invlido por su estructura, por ejemplo que un elemento que no puede ser vaco lo est, o que un elemento que se supone que debe tener nmeros contiene letras o mejor an que un elemento est anidado en otro que no puede tener subelemementos. Estas capacidades permiten la creacin de estructuras de datos adecuadas a nuestras necesidades y la validacin centralizada de las mismas.

4.1.5.4 RDF y RDFSchema RDF (Resource Description Framework) es un marco de trabajo para la representacin de informacin 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 semntica formal con una nocin rigurosamente definida de consecuenciacin (entailment) permtiendo una base para deducciones automticas bien fundadas con base en datos RDF. El desarrollo de RDF ha sido motivado por las siguientes necesidades: metadatos Web (informacin acerca de las caractersticas de cierta informacin o ciertos datos que no son parte de la informacin misma -clasificacin de contenidos, preferencias personales, descripcin de capacidades-), aplicaciones de modelos de datos abiertos (descripcin de capacidades, descripcin de procesos organizacionales, anotacin de recursos Web), hacer posible el uso de informacin procesable por mquinas 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, cooperacin entre aplicaciones, procesamiento automtico de informacin 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 semntica 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

Figura 4 Grafo dirigido

Una tripleta de stas representa una relacin 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 relacin entre el sujeto y el objeto y un documento RDF se puede considerar como una conjuncin lgica 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' lgica, 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 engaar por el ejemplo: en ninguna parte del documento citado se dice que la relacin 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 usndolos 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 relacin que ellos sostienen. Finalmente la sintaxis abstracta de RDF permite tambin que una tripleta RDF sea un nodo de otra tripleta, es decir, que una afirmacin sostenga una relacin con otra afirmacin. 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 definicin 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 propsito. RDF no provee mtodos para la definicin 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 estn soportadas sobre el concepto formal de consecuenciacin (entailment)28, que dicho en trminos simples significa que dada cierta expresin 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

las posibles combinaciones de cosas en el mundo que hacen A verdadera tambin 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 operacin de la Web semntica, debido a que no permite declarar axiomas y su capacidad de expresin slo permite inferencia sobre la herencia de propiedades, adems de que la propiedad de reificacin en virtud de la cual una asercin puede ser parte de otra asercin hace difcil el razonamiento inferencial30. El lenguaje de descripcin de vocabulario de RDF se llama RDF Schema y es una extensin semntica de RDF. Provee de mecanismos para la descripcin de grupos de recursos relacionados y las relaciones entre estos grupos, es decir, RDF Schema ejerce un control semntico sobre los documentos RDF, por ejemplo, retomando la idea de las tripletas RDF -sujeto, predicado, objeto- RDF Schema valida que en una afirmacin donde el sujeto es carn de conducir y el predicado es nombre, el objeto debera ser el nombre de una persona y no el modelo de un automvil. 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 trminos de las clases de recursos a las cuales se pueden aplicar. Por ejemplo, en RDF Schema se podra 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 definira una clase eg:Libro con un atributo eg:Autor de tipo eg:Persona. Usando el estilo RDF es fcil para otros definir propiedades adicionales cuyo dominio sea eg:Documento y cuyo rango sea eg:Persona, sin necesidad de reescribir la descripcin original de estas clases. Uno de los beneficios de este mtodo centrado en las propiedades es que permite a cualquiera extender la descripcin 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

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

4.1.5.5 Vocabularios y ontologas Las Ontologas han sido usadas como modelo de representacin de conocimiento en Inteligencia Artificial. Segn la definicin ofrecida por Gruber (1993) y posteriormente extendida por Studer, Benjamins y Fensel (1998)32 una Ontologa es una especificacin explcita y formal de una conceptualizacin Ms concretamente una ontologa es un intento de formular un esquema conceptual sobre un dominio de conocimiento de una manera rigurosa y exhaustiva; es tpicamente una estructura jerrquica de entidades o conceptos y sus relaciones, as como ciertas reglas de validacin o reglas lgicas en dicho dominio como axiomas o reglas de inferencia. La interpretacin que nosotros damos a las ontologas es una forma de restringir el alcance de algn dominio de conocimiento declarando sus trminos y restricciones semnticas, y a su vez limitar la lgica aplicable a dicho dominio. Las ontologas se pueden clasificar segn su especializacin o alcance, es decir, hay algunas de ellas llamadas Ontologas Base o Fundamentales (Foundation Ontologies) y otras llamadas ontologas de dominio. Las primeras tienen la intencin de servir de base y permitir el uso en entornos ms generalizados y de uso comn, existen autores que opinan que debido al valor comercial de estas ontologas en un futuro va a existir una competencia por cules son las ms usadas o las ms populares, de hecho no es difcil esperar que nunca existan ontologas fundamentales unificadas, as como no hay ideas filosficas o polticas unificadas, sin embargo existen organizaciones intentando definir estndares para dominios especficos, por ejemplo el PSL -Process Specification Languagecreado por la NIST -National Institute for Standards and Technology- para la definicin de procesos de manufactura industriales en la cual participan entidades como ISO TC 184, divisin de la ISO para automatizacin e integracin de procesos industriales. ste lenguaje est compuesto por un lxico, una ontologa
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; GMEZ PREZ, Asuncin, Knowledge Management through Ontologies, 1998.

62

y una gramtica33. Ya existen muchas propuestas de ontologas fundamentales como OpenCyc y ResearchCyc34 basadas en un sistema propietario con su propio lenguaje de ontologas basado en clculo de predicados de primer orden con extensiones para orden superior, desarrollado desde 1985. Otra propuesta es WordNet, diseada como red semntica y basada en principios psicolingusticos. sta ltima ha sido ampliamente usada en investigacin de procesamiento de lenguaje natural a pesar de no estar axiomatizada todava. Otras propuestas son SUMO (Suggested Upper Merged Ontology) de la IEEE y General Formal Ontology. Es importante anotar que en una presentacin de Tim Berners-Lee en el BioIT World 2005 35 recomienda que el camino a seguir es componer ontologas especializadas antes de las ontologas generales o de uso comn y siempre acogerse a las propuestas existentes tanto como se pueda antes de crear ontologas propias. SHOE -Simple HTML Ontology Extensions-, diseado antes de que se acuara el trmino "Web Semntica", fue el primer lenguaje de etiquetado para definir ontologas desarrollado para su uso en la Web. Carece de negacin y de disyunciones pero permite definir reglas de inferencia en forma de clusulas de Horn. OIL -Ontology Inference Layer- trabajo derivado de Shoe y primero basado en estndares de la W3C desarrollado a partir de RDFS a manera de extensin. OIL hereda su representacin del conocimiento de la lgica descriptiva (basada en axiomas) y de los sistemas basados en marcos (taxonoma de clases y atributos). DAML -DARPA's Agent Markup Language-, es el proyecto de lenguaje de ontologas 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 lgica descriptiva del mismo. ste ltimo ha gozado de gran popularidad pero parece que su complejidad conceptual lo hace difcil de usar en proyectos simples. OWL -Web Ontology Language- es la propuesta del W3C que finalmente se convierte en recomendacin del mismo organismo. OWL est basado en 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

DAML+OIL y tiene dos sintaxis: una para humanos y otra para mquinas. Evidentemente el propsito de OWL es la rpida adopcin del mismo, al punto incluso de que la versin original de OWL incluye una versin ligera (OWL Lite) de capacidades reducidas concentradas en las opciones ms comnmente usadas en DAML+OIL y OWL36.

4.1.5.6 Lgica y pruebas La arquitectura de la Web Semntica concebida por Tim Berners-Lee, est diseada 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 evolucin de tecnologas anteriores como ASCII y otros formatos de codificacin que pasaron a Unicode para ofrecer una base universal de codificacin, HTML y SGML que evolucionaron en XML y sus derivados para ofrecer una base sintctica 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 semntica para permitir que Internet comprenda objetos reales y conceptos. Estas tecnologas se han incorporado a la Web Semntica como elementos con algn grado de madurez y desarrollo, si bien no sin algunas crticas, que los han dejado en un estado de uso ms o menos estable. Es probable que Tim Berners-Lee y todos (o muchos) de los adeptos a la Web Semntica consideren suficiente, para el corto plazo, que las mquinas tengan cierto conocimiento sobre el significado de los datos que manipulan y puedan intercambiar dicha informacin con base en su semntica. stos objetivos son alcanzables con las primeras capas del modelo (Codificacin, Sintaxis, Referencia y Descripcin ofrecidos por Unicode, XML+NameSpaces+XML Schema, URIs y RDF+RDF Schema) pero la lgica, como la misma historia lo ha demostrado, es un asunto diferente. Dentro del concepto de diseo en capas est la complejidad y abstraccin incremental y la modularidad de los elementos. Las reglas, la lgica y las pruebas constituyen capas independientes en el modelo y por lo tanto hasta el momento slo se pueden definir ciertas caractersticas de cada una de las capas, como qu se espera de cada una y de sus funciones especficas. Las ontologas, como herramienta para describir dominios y restringir un poco la base lgica de ellos proporciona el fundamento sobre el que se erigirn las reglas
36 PEIS, Eduardo, Op. cit.

64

o la capa de reglas. Las ontologas, como esquemas ms poderosos que RDF, permiten la inferencia y el chequeo de la consistencia de la informacin o de una aplicacin dentro de ese dominio y establecer una red de significados a travs de la conversin y referenciacin cruzada entre vocabularios (metas originales de las ontologas)37. Partiendo de esa base es necesario aadir variables a la sintaxis RDF y lenguajes de reglas de propsito general que permitan preguntar y filtrar la informacin, lenguajes que sean similares a SQL y que permitan formas de demostracin o pruebas ( proof ) sin necesidad de una capa lgica completa38. En este escenario, es esencial contar con reglas monotnicas y reglas no monotnicas para los mundos cerrados (ver glosario). El estado de sta parte del modelo de Web Semntica es una abundancia en sistemas de reglas aunque con presencia de algunos formatos comunes como RuleML39. Finalmente, en una pequea disertacin40 sobre lo que es la Web Semntica y lo que no es respecto al camino por recorrer, Tim Berners-Lee deja muy en claro que la intencin de sta no es constituir un motor de inferencia, es decir, no se necesita que la Web Semntica incluya generacin de demostraciones, sino simplemente validacin de stas, es decir, que las aplicaciones de Web Semntica sean capaces de validar que cierta prueba ofrecida sea correcta con base en la informacin proporcionada y la identificacin de la fuente41. Tim Berners-Lee dice ms especficamente, que el clculo de predicados le parece peligroso para los fines de la Web Semntica, 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 Semntica debe tolerar la inconsistencia pero validar la confianza en la fuente que emite pruebas de sus afirmaciones o la informacin y poder validar dichas pruebas. En sta discusin, TBL establece que si la decisin se basa en capacidad de expresin contra computabilidad l elige capacidad de expresin que es lo que proporciona la lgica de Orden Superior y que por lo mismo no espera que el diseo de la Web semntica incluya capacidades de inferencia en Lgica de Orden superior. Para lo anterior l sugiere que la lgica de orden superior sera 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 aplicacin conforme a la Web Semntica.
37 W3c. Ontology layer goals and status, 2003. http://www.w3.org/2003/Talks/01-sweb-tbl/slide203.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

Una de las ms importantes observaciones que hace TBL es que las herramientas de representacin del conocimiento ya tienen un tiempo de desarrollo y han fallado en la intencin de volverse herramientas de uso amplio y generalizado. La razn subyacente a este hecho es que dichos sistemas estn conceptualmente o fsicamente centralizados (como estaban los sistemas de hipertexto antes de la Web), ellos exigan consistencia global, contrario a la Web Semntica que exige una especie de consistencia local con una base de prueba lgica global. Principios de la Web Semntica: 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. Ningn sistema conoce todo. Los diseos deben ser minimalistas. Actualmente existe un lenguaje llamado Notacin 3 (Notation 3) o N3 que es una extensin 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 citacin o sea hacer declaraciones de declaraciones. Para lograr estas metas N3 usa abreviacin de URIs por medio de prefijos similares a los de XML, repeticin del mismo objeto para los mismos sujetos y predicados por medio de coma ( , ), repeticin del mismo predicado para el mismo sujeto por medio de punto y coma ( ; ), las variables y la cuantificacin permiten la expresin de reglas y la gramtica es simple y consistente42.

4.1.5.7 Confianza: autenticacin y encriptacin Una finalidad paralela a la semntica 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 Semntica busca crear redes de confianza entre los usuarios de Internet y hacer que la conjugacin entre semntica y confianza permita a los computadores tomar decisiones ms 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 estn compuestas por dos problemas: autenticar y encriptar, relacionadas con la autenticidad y la integridad de la informacin respectivamente, dentro de un ambiente ms o menos incierto.
42 W3c. Notation 3 (N3) A readable RDF syntax, 2006. http://www.w3.org/DesignIssues/Notation3

66

El problema de la autenticacin 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 informacin que se est observando o manipulando, proviene de la persona u organizacin que reclama haberla proporcionado, sin embargo, el slo 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 lgicas absolutistas, que no son compatibles con la naturaleza heterognea de la Web. En vez de entrar en stas validaciones absolutistas, la Web Semntica 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 travs de ste prestigio una confianza mutua sobre sus contenidos. El problema de la integridad, proviene del trnsito de la informacin 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 travs de infraestructura de clave pblica o PKI, en la cual la clave pblica no slo 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 encriptacin es dependiente del autor que la origin por lo que cumple con el objetivo de autenticar y encriptar. Dado que la Web Semntica intenta dar a las mquinas ms conocimiento sobre la informacin, la autenticacin, la integridad y en ltima instancia la confianza se basa en un modelo ms inteligente. La idea es que las relaciones de confianza se establezcan con base en pruebas de autenticidad, es decir, que la autenticacin no slo proviene de la identificacin por medio de llaves o claves sino de pruebas lgicas que solamente el autor pueda proporcionar o que se puedan deducir del contexto en el que se proporciona la informacin. Ac es donde entra en juego la capacidad de la Web Semntica de soportar un nivel lgico fundamental: slo es necesario poder validar una prueba de autenticidad, no generar pruebas lgicas o demostraciones formales. La finalidad de la infraestructura semntica propuesta es que los agentes o los programas puedan hacer inferencias sobre la informacin (dado que la informacin contiene reglas y relaciones semnticas) y autenticar mediante la validacin de pruebas de autenticidad de las afirmaciones o de la informacin suministrada por cierta fuente 43.

43 PEIS, Eduardo, Op. cit.

67

4.1.6 Reconocimiento de lenguaje natural La comunicacin no es una de las propiedades de los agentes inteligentes reconocidas originalmente, ms bien fue una consecuencia de analizar ms detalladamente las propiedades de los agentes y las necesidades que podran tener para llevar a cabo sus tareas o metas ms eficientemente. El acto de comunicacin implica transferencia de informacin y un marco conceptual de trabajo en el cual se describan los significados de cierto intercambio de informacin. Un acto comunicativo se define como El intercambio de informacin que se lleva a cabo mediante emisin y percepcin de signos pertenecientes a un sistema convencional de stos
44

La comunicacin tiene varios usos entre agentes: Intercambio de comunicacin. Ordenar/Preguntar. Establecer relaciones de confianza o vnculos sociales. Nuestro proyecto se debe entender desde varias perspectivas: la comunicacin entre agentes inteligentes artificiales (software/hardware) y la comunicacin entre agentes inteligentes artificiales con agentes humanos. De acuerdo con la definicin 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 codificacin clsica, 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 espaol como lenguaje natural y sus smbolos. Un proceso comunicativo, es decir, intercambio de informacin a travs de smbolos, 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: Intencin: Es el proceso de decidir que se necesita comunicar un mensaje. La intencin implica el razonamiento de por qu es necesario y qu se quiere comunicar en trminos de lo que el agente reconoce internamente como metas de comunicacin.

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

68

Generacin: Es el proceso de elegir los smbolos adecuados para representar el mensaje a comunicar. Este proceso desde el punto de vista de una base de conocimiento es difcil, sin embargo, dado que la mayora de las veces una comunicacin se basa en estructuras de razonamiento sin ambigedad este proceso no resulta tan complicado, adems, parece que los humanos hemos tenido ms inters en que las mquinas entiendan lo que nosotros decimos que en que ellas nos comuniquen lo que ellas piensan. Sntesis: La sntesis ocurre con el propsito de hacer ms fcil el entendimiento del mensaje al oyente, por ejemplo, traducir las palabras a fonemas que sern dictados a un transductor que las diga. Percepcin: La percepcin trata de la traduccin de los mensajes en el medio de comunicacin a los smbolos necesarios para su anlisis e incorporacin. Anlisis: El anlisis es la interpretacin del mensaje como tal. El anlisis est compuesto por dos elementos principales: anlisis sintctico y anlisis semntico. En esta etapa sucede la incorporacin o aceptacin final del mensaje en caso de que se decida creerlo. Algunos autores denominan esta ltima parte la fase pragmtica. Estos son los procesos necesarios para que se establezca comunicacin entre dos agentes segn 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 anlisis. El anlisis como ya se dijo est compuesto a grosso modo por dos etapas: anlisis sintctico o gramatical y anlisis semntico. El anlisis gramatical tiene que ver con el agrupamiento de los smbolos en palabras y frases vlidas dentro del lenguaje en cuestin -palabras conocidas y estructuras de frases correctas. El anlisis gramatical de una frase es un proceso por medio del cual la frase se descompone en elementos reconocibles por el sistema en cuestin 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 sera una 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 anlisis semntico es la interpretacin de stas estructuras derivadas del anlisis gramatical o sintctico para corresponder las intenciones o significados de esa comunicacin con el conocimiento en la representacin del oyente, usando el
45 RUSSEL, Stuart, Op. cit. p. 692

69

mismo ejemplo el sistema identificara lo que significa trabajar, hacer y que Ana es una persona (que incluso podra ser identificada en un sistema restringido pero an as de mucha sofisticacin). Aunque el anlisis gramatical no es trivial, es un proceso del que se conocen varias tcnicas con aceptable efectividad, es el anlisis semntico donde no hay resultados aceptables y problemas muy grandes. Es claro que una caracterstica presente en muchas estructuras de lenguajes (en especial los lenguajes naturales) es la ambigedad o posible interpretacin mltiple de la misma frase o sentencia, dependiendo del contexto, del ambiente, de la situacin, etc.. El anlisis semntico es un proceso de razonamiento incierto, es decir, de probabilidades. El anlisis gramatical ofrece una estructura con posibles interpretaciones y desambiguarlas significa escoger la mejor interpretacin 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 cmo cada agente representa internamente su conocimiento), compartan el mismo contexto sobre el que se hace la comunicacin y sean por lo menos parcialmente racionales. Una gramtica es un conjunto de reglas que permiten saber qu conjunto de palabras o smbolos se corresponden con una estructura definida de un lenguaje, por ejemplo qu combinaciones de palabras pueden componer una frase en algn idioma. La semntica intenta saber qu significado tienen los smbolos que arroja un anlisis gramatical, por ejemplo en la expresin matemtica X=PI*3.5*3.5, la sintaxis indica que la expresin es una igualdad bien escrita (no tiene un doble igual y el orden entre operandos y operadores es correcto, etc.) entre el smbolo X y la expresin de multiplicacin PI*3.5*3.5, pero la semntica o significado sera evaluar la expresin para saber cunto da su clculo, es decir, qu valor tiene X (38.4845 aproximadamente si sabemos que PI significa 3,141592). Una expresin en algn idioma puede significar cierta informacin a causa de la cual ya no habra razn para emprender una accin o, al contrario, una orden para emprender o ejecutar la accin. El anlisis gramatical es un proceso complejo donde los algoritmos casi siempre hacen cosas que luego deben repetir, tanto es as que un anlisis gramatical eficiente se considera el que cumple con la siguientes reglas, que parecen triviales 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. 70

Otros problemas fundamentales relacionados con el anlisis gramatical estn en la ampliacin del diccionario y correccin de errores, es decir, cmo se interpreta una palabra desconocida, estructuras poco comunes o desconocidas del lenguaje y qu se debe hacer con ellas: cundo adicionarlas al diccionario o repositorio de frases vlidas o cundo marcarlas como un error gramatical46. Los problemas del anlisis semntico no slo tienen que ver con la desambiguacin ya mencionada, otro problema de ste tema es la incorporacin, 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 tambin tiene mucho que ver con el concepto de confianza-. El tratamiento de la ambigedad extrae informacin de evidencia sintctica, lxica y semntica 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 comnmente PLN (Procesamiento de Lenguaje Natural o NLP por sus siglas en ingls) y ha sido uno de los campos ms interesantes y donde ms investigacin se ha realizado dentro de las disciplinas de la Ingeniera de Sistemas y Computacin, entre otras cosas por la inevitable conexin de la programacin con los lenguajes, pero esta inversin no se ha correspondido con los resultados. Actualmente, el campo del PLN se aplica exitosamente a slo algunos problemas debido a muchas razones, entre otras, a la aparicin de mtodos alternativos muy cmodos para permitir la interaccin con los usuarios. Un ejemplo de estos mtodos son los formularios Web, es razonable pensar que nadie (o muy pocas personas) preferiran 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 paramtricas de un formulario y el botn de enviar la consulta para recibir una respuesta que probablemente sea ms precisa usando ste mtodo del formulario que el resultado del anlisis del texto en la caja de texto 47. Es probable que el hecho de que estas opciones hayan aparecido inicialmente se haya debido a la poca efectividad de las tcnicas de PLN. Ejemplos donde el
46 RUSSEL, Stuart, Op. cit. p. 735

47 DINI, Lucas. NLP Technologies and the Semantic Web: Risks, Opportunities and Challenges,
2003.

71

procesamiento de lenguaje natural ha sido implementado de manera satisfactoria son traduccin automatizada en dominios restringidos, acceso a bases de datos de (manera muy limitada) y la interpretacin de textos para recuperacin de informacin, categorizacin y obtencin de datos 48. Para los objetivos de este proyecto, las tcnicas pertinentes estn en la recuperacin de informacin y categorizacin de textos debido a la necesidad de obtener una representacin de textos escritos y sacar definiciones de sus contenidos. Estos dos procesos deben estar encaminados a corresponder un contenido con una declaracin o una descripcin ontolgica, es decir, que la estructura de datos que se derive de ellos quede almacenada en un formato compatible con la Web Semntica. Un concepto frecuente orientado hacia la posibilidad de interpretacin o clasificacin de documentos, en especial en el mbito cientfico, es la anotacin 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 fcilmente clasificado por las mquinas. Existen innumerables pginas Web que hablan de un proyecto de middleware unificado para anotacin cientfica desarrollado con la ayuda del departamento de energa de los Estados Unidos (DOE -Departament of Energy)49, que busca unificar la infraestructura de metadatos (suena conocido?), ofrecer servicios de anotacin cientfica, minimizar las barreras de integracin entre sistemas de anotacin cientfica y hacer seguimiento a las relaciones semnticas 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 anlisis sintctico, morfolgico y semntico de su contenido y se traduce en una estructura de documento que incluya esta informacin. Los trminos en que se habla de procesamiento de lenguaje natural son anlisis morfolgico, etiquetado de parte de la oracin (Part Of Speech Tagging o POS Tagging por sus siglas en ingls), identificacin de partes o particionamiento (Chunking en ingls), anlisis de dependencia estructural y etiquetado semntico.

4.1.6.1 Anlisis morfolgico sta etapa del anlisis se refiere a los procesos derivativos, inflexionales y composicionales en la formacin de palabras. Este es un paso fundamental en muchos procesos y aplicaciones del PLN p. ej. recuperacin de informacin. Este proceso obtiene la raz de una palabra y posibles opciones de marcado de partes
48 RUSSEL, Stuart, Op. cit. p. 731 49 DOE National Collaboratories. Scientific Annotation Middleware, 2004.

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

72

de la oracin (POS -part of speech) como si la palabra es un verbo, sustantivo, adjetivo, etc., propiedades de inflexin como gnero (masculino, femenino, neutro), nmero (plural o singular), caso (nominativo, acusativo, etc.) y posible anlisis composicional. El anlisis morfolgico se basa en un lxico disponible para el lenguaje que se est usando. Dado que las palabras tienen mucha ambigedad respecto a parte de la oracin (POS) e inflexin, con frecuencia es necesario pasar por algunos pasos de desambiguacin y esta desambiguacin morfolgica interacta con etiquetado de POS as como particionamiento (Chunking).

4.1.6.2 Etiquetado parte de la oracin (POS -part of speech) La identificacin de la correcta clase sintctica para una palabra dada en su contexto es lo que en este proyecto llamamos etiquetado de parte de la oracin, es decir, identificar las propiedades de significado de una palabra segn su lugar en la frase u oracin, es decir, en su contexto. El etiquetado de parte de la oracin identifica propiedades como la cualidad de verbo, sustantivo, nombre, etc. para una palabra dada analizando su contexto, implica tareas de desambiguacin entre mltiples etiquetas de parte de la oracin, como acertar en la etiqueta adecuada para una palabra desconocida. Las herramientas de etiquetado de parte de la oracin disponibles hoy en da se basan en reglas o en mtodos probabilsticos (o estocsticos) para desambiguar y etiquetar palabras desconocidas. Los mtodos de etiquetado basados en reglas usan patrones de contexto escritas explcitamente por humanos para inferir el significado correcto de una palabra en tales contextos. Una regla de estas dira por ejemplo, que si el anlisis morfolgico indica que la palabra est compuesta por un verbo y un sufijo ando/endo debera ser etiquetada como verbo para distinguir el papel que est jugando la palabra y discriminarla de palabras similares como Hernando que teniendo terminacin ando no juega el papel de verbo (valga la aclaracin que este ejemplo es slo ilustrativo porque sta palabra podra interpretarse como verbo bajo algn contexto). Los mtodos estocsticos usan la frecuencia o probabilidad de encontrar un significado para una palabra dado cierto conjunto de entrenamiento. Algoritmos ms avanzados usan la probabilidad de un n-grama (secuencia de n etiquetas o significados), por ejemplo la probabilidad de que cierto significado ocurra dados los n significados anteriores, un algoritmo que usa esta estrategia es el algoritmo Viterbi, que es un algoritmo de bsqueda en anchura.

73

4.1.6.3 Particionamiento El concepto de parte o pedazo ha sido introducido originalmente relacionado con las estructuras de desempeo, que refleja una subdivisin 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 ncleo, tales como frases nominales, frases preposicionales, frases adjetivas, frases adverbiales y grupos de verbos. En palabras ms simples: es la divisin de un prrafo o frase en partes ms pequeas con un significado concreto. Existen dos tcnicas complementarias de anlisis para el reconocimiento de partes: conversin de partes (chunk parsing) y conversin parcial de partes (partial parsing). Estas dos tcnicas involucran la extraccin de fragmentos de informacin lingstica, la conversin de partes usa la informacin contextual cercana para extraer informacin lingstica segura, mientras la conversin parcial se combina con la primera a travs de reglas que definen cmo combinar los resultados parciales en cascadas con el fin de asegurar ms precisin en el resultado. Otro proceso importantsimo relacionado con el particionamiento es el reconocimiento de entidades nombradas (named entities), es decir, reconocimiento de palabras que son el nombre de instituciones, compaas, expresiones de fechas, etc.. Este proceso est casi siempre acompaado de listados de nombres (empresas, ciudades, personas, etc.) o diccionarios de palabras especficas en combinacin con la definicin de patrones de expresiones regulares.

4.2

MARCO DE ANTECEDENTES

Los antecedentes del presente proyecto incluyen elementos histricos y descriptivos de Univirtual con el fin de mostrar la relativa poca edad de sta divisin del Centro de Recursos Informticos y Educativos, as como los antecedentes de las tecnologas que se consideraron con el fin de decidir la recomendacin final y hacer una posible propuesta de implementacin.

74

4.2.1 Univirtual

4.2.1.1 Historia La unidad virtual de la Universidad Tecnolgica de Pereira o Univirtual es una dependencia dedicada a desarrollar y apoyar estrategias para la integracin de las tecnologas de la informacin y las comunicaciones al desarrollo de las actividades acadmicas de la Universidad. La Unidad Virtual es una entidad de poco tiempo de vida, sta se constituy oficialmente en el ao 2003 y viene desarrollando programas de diversa ndole como soporte para los cursos que se dictan como parte del currculo de las carreras establecidas, prestar herramientas para la evaluacin y la interaccin con los estudiantes dentro de este mismo contexto de soporte a las actividades clsicas de la Universidad y durante el 2004 y 2005 ha diseado los programas de diplomado de maestro virtual y diplomado en arte latinoamericano que est en proceso de despliegue ya como proyecto de operacin comercial. Gran parte del trabajo que desarrolla Univirtual est publicado en Internet y sus contenidos son accesibles a travs 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 travs de una autenticacin simple de nombre de usuario/contrasea. La unidad virtual apenas est desarrollando sus estrategias y polticas de accin frente a sus objetivos estratgicos y esta condicin 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, metodologas y herramientas de despliegue, implementacin e interaccin que su desarrollo sugiera y observar con ello las posibles ventajas o inconvenientes que tal despliegue podra tener.

4.2.1.2 Estructura La universidad tiene tres lneas de accin que denomina docencia, investigacin y extensin, en correspondencia, la Unidad Virtual adopta las mismas lneas de accin y adiciona la lnea de comunicacin para proveer los recursos necesarios tanto humanos como fsicos y de infraestructura para cohesionar e integrar las iniciativas que surjan de las otras lneas de accin.

75

Lnea de investigacin Actualmente la lnea de investigacin se fortalece a partir de: 1. La experiencia y capacitacin del equipo de trabajo y el Comit Asesor. 2. Desarrollo del proyecto MAVA: Metodologa para la construccin de Ambientes Virtuales como apoyo a la educacin presencial en la Universidad Tecnolgica de Pereira 3. Proyecto: Diseo de instruccin en un entorno de aprendizaje abierto. Aprobado por el Centro de Investigaciones y Extensin UTP. 4. Proyecto: Gestin y administracin de objetos de aprendizaje Lnea acadmica La lnea acadmica se subdivide a su vez en rea de capacitacin y rea de soporte. El rea de capacitacin ofrece a administrativos, docentes y estudiantes, desde una perspectiva instrumental y conceptual de la educacin bajo entornos virtuales, en asocio con el CRIE y la Biblioteca, ofrece tambin programas de educacin formal al interior y exterior de la universidad, en asocio con Facultades y Escuelas y capacitacin o pasantas del equipo de trabajo de Univirtual en temticas especficas de la educacin virtual. El rea de soporte de la lnea acadmica se divide en soporte tcnico, pedaggico y legal. El rea de soporte tcnico se corresponde con los consultorios tcnicos de las aulas virtuales, ya que el apoyo tcnico con respecto a hardware y software, incluyendo plataforma tecnolgica, se realiza a travs del CRIE (Centro de Recursos Informticos y Educativos) y Divisin de Sistemas. El rea de soporte pedaggico, partir de un modelo educativo de educacin a distancia soportada en las TICs, ofrece soporte en lineamientos pedaggicos a travs de herramientas interactivas basadas en comunidad y documentos y herramientas dispuestas por Univirtual directamente como e-Publicar, Biblioteca, Imagoteca, Sitios de Inters, Bibliografa e-learning y foros, entre otros. Finalmente, el rea de soporte legal corresponde a la secretara general de la universidad respecto a derechos de autor, con base en los Estatutos de Propiedad Intelectual en la UTP. Univirtual implementa polticas internas para cualificar en caso de ser necesario y dar el aval a cualquier tipo de formacin virtual, esta formacin abarca los cursos de capacitacin ofrecido por las Vicerrectoras Acadmica y Administrativa basados en la resolucin de Rectora numero 1700 de Junio 11 de 2004. Lnea de comunicacin La lnea de comunicacin tiene dos enfoques basados en la manera de interactuar y el pblico objetivo: el enfoque comunitario y el individual. En el enfoque comunitario las herramientas no se limitan a las TICs (Tecnologas de la Informacin y las Comunicaciones), sino a herramientas comunitarias en medios clsicos (folletos, pendones, emisora UTP, comunicaciones, boletines informativos, separadores ) ms las ayudas electrnicas dispuestas por Univirtual 76

y por la Universidad para ello (Foros electrnicos, portal Web, noticias, chat, foros de reflexin, pizarrones virtuales). El enfoque individual es a travs de los contenidos y herramientas virtuales como tales (sitio Web , correo electrnico, preguntas frecuentes, sensibilizacin personalizada a profesores, estudiantes, consejos de facultad, salas de profesores, consejos acadmicos y superior). Lnea de extensin La lnea de extensin tiene proyectos de tipo acadmico (organizar y participar en congresos virtuales, conferencias y ponencias) y proyectos de operacin comercial, como ofrecer pregrados, especializaciones, diplomados y seminarios en modalidad 100% virtual, Alianzas estratgicas con Instituciones de Educacin Superior nacionales e internacionales e Integrar a la Universidad a redes de conocimiento virtual a nivel regional, nacional e internacional.

4.2.1.3 Perspectivas Hemos visto pues a travs de sta brevsima perspectiva de Univirtual (si bien justificada en su incipiente desarrollo) cmo sta dependencia representa un excelente marco de pruebas y ambiente de desarrollo de las tecnologas de agentes inteligentes y de Web Semntica debido a su carcter educativo, tecnolgico 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 travs de la participacin de los estudiantes en cursos virtuales y herramientas interactivas. Desde esta perspectiva Univirtual disea contenidos para materias dentro de pnsumes establecidos e instala los medios necesarios para que tales contenidos sean desplegados, evaluados y corregidos antes, durante y despus del desarrollo de los cursos. La otra perspectiva de Univirtual se encuentra en el marco de la extensin a travs del diseo de programas propios o en asociacin con otras instituciones. Esta perspectiva es diferente porque representa la oportunidad de disear un marco pedaggico y contenidos aptos para el despliegue de las tecnologas inteligentes. Y no hay que dejar de lado que Univirtual contempla dos escenarios fundamentales que pueden servir de base para el diseo de casos de uso: sus enfoques individuales y comunitarios, adems de las interacciones de profesores, asesores y diseadores de contenidos con el sistema.

77

4.2.2 Plataformas de agentes inteligentes Como ya hemos descrito, en esta etapa temprana del tema de los agentes inteligentes, la eleccin de la plataforma va de la mano con la eleccin de la metodologa de desarrollo por lo tanto vamos a empezar eligiendo la metodologa a usar, describindola ms en detalle y eligiendo la plataforma como tal para detallar sus capacidades. Ya hemos mencionado durante todo este trabajo el estado inmaduro de las tecnologas orientadas a agentes y sus contrapartes las metodologas. Hemos encontrado un documento50 de comparacin de metodologas de desarrollo de sistemas orientados a objetos con base en el cual haremos la eleccin de la que vamos a proponer para el desarrollo de la plataforma de informacin de Univirtual. La ingeniera de software orientada a agentes (AOSE por sus siglas en ingls), tiene varios aspecto interesantes a considerar. El ms obvio de todos es el uso del concepto de agente inteligente para crear aplicaciones ms efectivas que las tradicionales basadas en algoritmos clsicos imperativos por medio de los cuales se intenta proveer o escribir la inteligencia necesaria prevista para desarrollar las funciones de la aplicacin. El agente inteligente, busca romper el lmite impuesto por la previsin del diseador del software e intentar adaptarse a situaciones ms amplias que las previstas originalmente, as como emprender acciones por l mismo segn cierto criterio ms o menos autnomo en vez de esperar que sucedan eventos concretos que disparen sus funcionalidades. Sin embargo, como la historia de los paradigmas de programacin ha demostrado, este nuevo paradigma busca facilitar el proceso de disear y ejecutar sistemas ms complejos que los del paradigma anterior, a saber, programacin orientada a objetos, si bien este nuevo esquema de ideas sigue fuertemente respaldado por las capacidades del anterior y ha heredado muchas de sus caractersticas. La evolucin 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 altsimo nivel, es decir, con un lenguaje y conceptos muy similares a los que usamos para interactuar con otros seres humanos, casi como si escribiramos planes para que algn subalterno o equipo de trabajo los lleve a cabo pero sin juicios de valores, ni inconsistencia en el desempeo y con un volumen de informacin por concepto mucho mayor del que acostumbramos manejar en la programacin tradicional. En este sentido, la programacin
50 HOA DAM, Khanh; WINIKOFF, Michael. School of Computer Science and Information Technology, RMIT Melbourne, 2003.

78

orientada a agentes representa una avance muy grande en la simplificacin de las tareas de programacin con el slo 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 visin social de los programas y la adaptabilidad de los mismos. Desde este punto de vista, la eleccin de la metodologa 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 Metodologas Transcribimos las conclusiones de un trabajo publicado en Internet de la universidad de Ciencias de la computacin y tecnologas de la informacin RMIT de Melbourne Australia para dar una perspectiva del estado de madurez general de las metodologas ms populares51. En esta ponencia, los ponentes crean un marco de trabajo para hacer comparacin entre metodologas de desarrollo orientadas a agentes, basado en el siguiente conjunto de propiedades evaluadas para dichas metodologas: Presencia de los Conceptos y propiedades de la orientacin a agentes inteligentes (proactividad, reactividad, autonoma, concurrencia, cooperacin, protocolos, orientacin a agentes, conciencia de sitio). Mtodos de modelamiento y notacin del modelo (modelamiento esttico y dinmico, sintaxis definida, semntica definida, notacin clara, facilidad de uso, facilidad de aprendizaje, vistas diferentes, Trazabilidad, chequeo de consistencia, modularidad, reuso y modelamiento jerrquico). Proceso (requerimientos, diseo arquitectnico, diseo detallado, implementacin, pruebas y depuracin, despliegue y mantenimiento). Pragmtica (aseguramiento de la calidad, estimacin de costos, decisiones de administracin, aplicaciones reales, dominio especfico, escalabilidad y distributibilidad).

A continuacin presentamos una traduccin de la conclusin a la que llegaron los autores: Presentamos una comparacin entre tres prominentes metodologas. En general, todas ofrecen un soporte razonable de los conceptos bsicos de orientacin a agentes como autonoma, actitudes mentales, proactividad, reactividad, etc. Todos fueron considerados como claramente orientados a agentes. Adicionalmente la notacin de las tres 51
Ibid.

79

es en general buena. Respecto al proceso, todas proveen al desarrollador con ejemplos y heursticas para asistirlo desde la recoleccin de requerimientos hasta el diseo detallado. La implementacin fue soportada en cierto grado por todas las metodologas mientras las pruebas y depuracin no lo fue tanto en ninguna. Adicionalmente algunos conceptos importantes de ingeniera de software como aseguramiento de la calidad, guas de estimacin y soporte de decisiones administrativas no son soportadas por ninguna. A pesar de la uniformidad de la conclusin, insistimos, que se interpretara como una inmadurez general de ste tema, en el documento hacen pequeas diferenciaciones sobre las metodologas y en especial, proponen a Tropos como una metodologa un poco ms avanzada que las otras, por ejemplo cuando aduce que la percepcin de los encuestados fue que Tropos tiene un alto soporte para la proactividad y reactividad en el caso de los conceptos de orientacin a agentes. Otra interpretacin que hacemos acerca de la conclusin 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 metodologas no son significativas para el desarrollo del mismo. Dadas estas referencias, nosotros proponemos Tropos como metodologa de desarrollo debido a que incluye un modelo del sistema incluyendo a todos los actores del sistema en la fase de anlisis de requerimientos tempranos, esa es una de las fortalezas propuestas por los creadores de la metodologa y nos da la perspectiva de ms alto nivel, explotando al mximo el concepto de agente, adems parece un muy buen comienzo para poder visualizar los requerimientos del sistema sin sesgos de tipo tecnolgico. Otra ventaja que tiene Tropos sobre las otras metodologas es que en la fase de diseo detallado e implementacin soporta la correspondencia entre conceptos de diseo con estructuras de la plataforma sobre la cual se vaya a implementar el sistema, lo que hace el diseo independiente de la plataforma hasta stas fases, es decir, que es posible hacer una propuesta de diseo basndose en las etapas iniciales para dejar en libertad a los continuadores para elegir la plataforma final aunque nuestra intencin es dar pautas para la eleccin de la misma y dejar en manos de los continuadores la labor de mapear de la mejor manera los conceptos del diseo con las estructuras de la plataforma elegida. En caso de ser necesario migrar el modelo de diseo en un futuro, bastara con cambiar este juego de correspondencias conceptoestructura con una plataforma a otro juego de correspondencias para la nueva plataforma. Durante el desarrollo de este proyecto de grado hemos encontrado unas propuestas alternativas interesantsimas a las propuestas estudiadas pero que por 80

falta de documentacin y ninguna popularidad reciente aparente no se corresponden con el carcter prctico del mismo. Por ejemplo existe una metodologa ms o menos nueva que parece que tuvo cierta aceptacin llamada PASSI (Process for Agent Societies Specification and Implementation Proceso para especificacin e implementacin de sociedades de agentes)5253 cuya finalidad es no definir un nuevo lenguaje de modelamiento sino extender el actual UML. PASSI goza de cierta aceptacin entre los programadores del modelo Agile para dispositivos embebidos y se ayuda con una herramienta de un Plug-in para Rational Rose. Este interesantsimo modelo no nos parece que facilite el diseo de los agentes, sino que ms 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 diseo. Otra propuesta de la que no encontramos mayor informacin (de hecho slo un PDF hablaba de l) pero que a nuestro parecer es la propuesta de diseo ms robusta, se describe en un documento bajo el nombre de MALACA 54. Esta metodologa propone definir una arquitectura de componentes para el diseo y hacer uso de la especificacin MDA (Model Driven Architecture Arquitectura basada en modelos)55 de la OMG (Object Management Group Grupo de Administracin de Objetos) , por medio de la cual se hacen corresponder dos modelos a travs de transformaciones entre conceptos abstractos y concretos de dichos modelos de tal manera que sea posible disear en cualquier metodologa y escribir las transformaciones necesarias para convertirlo a un lenguaje de modelamiento ms concreto que soporte la implementacin 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 efectan transformaciones entre sus conceptos y estructuras de diseo y finalmente a travs del modelo dependiente de la plataforma a estructuras de implementacin. MALACA propone un modelo basado en componentes muy dinmico y adaptable que compone el modelo dependiente de la plataforma, pero como una arquitectura intermedia a travs de la cual se harn las transformaciones a estructuras de implementacin en cada plataforma. Las razones por las cuales MALACA es una arquitectura intermedia es porque dada la explosin de metodologas y plataformas, el slo modelo propuesto por MDA resulta inadecuado debido a la gran cantidad de correspondencias entre modelos
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 AgentOriented Design and Implementation using MDA, 2005. 55 Object Management Group. OMG Model-Driven Architecture,. http://www.omg.org/mda/

81

que habra que hacer (entre cada metodologa de diseo y cada plataforma), por medio de MALACA se haran las correspondencias directamente entre MALACA y las plataformas y de las metodologas a MALACA, lo cual para nmeros de metodologas y plataformas grandes disminuye considerablemente el esfuerzo necesario para transformar los modelos de diseo en modelos de implementacin 56 .

4.2.2.2 Plataformas En 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 implementacin 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 tecnologas Web Semntica de ser masivas. Otro factor clave para la eleccin de nuestra plataforma es la disponibilidad de documentacin y ejemplos ejecutables que nos enseen 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 prrafo anterior. JADE es una plataforma abierta, que ha participado en varios eventos internacionales llamados FIPA Interoperability test y adems 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 acadmicos en caso de desarrollos experimentales como el nuestro. JACK tambin est relacionado en el sitio Web de FIPA57 como una plataforma conforme con algunos de sus estndares. Ambas son plataformas 100% Java, aunque JACK incluye un lenguaje de especificacin de agentes que extiende la sintaxis de Java para soportar conceptos orientados a agentes. JACK es una plataforma comercial para la cual la licencia de prueba pone trminos como imposible hacer ingeniera inversa o desensamblar el cdigo, redistribuir el material o mostrar los resultados de su uso a terceros 58. JADE es completamente
56 AMOR, Mercedes, et. al. Op. cit. 57 FIPA. Publicly available implementations of FIPA Specifications, form. 2003.

http://www.fipa.org/resources/livesystems.html 58 The Agent Software Group. JACK

Registration

http://www.agent-

82

pblico, tanto la documentacin (que en JACK tambin es pblica) como el cdigo fuente. Nosotros preferimos y recomendamos usar la plataforma JADE por las siguientes razones:

Acogimiento a los estndares 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 librera de protocolos de interaccin FIPA. Licenciamiento LGPL, acceso de slo lectura al cdigo fuente, herramientas de interaccin para la comunidad de desarrolladores (listas de correo). Profusa documentacin incluyendo las herramientas y tecnologas usadas en JADE. Amplia aceptacin tanto acadmica (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 semntica Cul debe ser el papel de la Web Semntica y cmo se puede integrar en una plataforma de agentes inteligentes para la educacin Virtual?. Esa es la pregunta base para esta seccin y que intentaremos resolver segn lo que hemos ledo y analizado. La Web Semntica como propuesta original del creador de la WWW, busca principalmente ser una infraestructura sobre la cual florezca la inteligencia artificial y en especial los agentes inteligentes como nueva generacin de modelo de aplicacin. Desde este punto de vista, la infraestructura de Web lo que contiene son los elementos mnimos necesarios para un mejor conocimiento de los datos y los orgenes de los mismos por parte de las mquinas, es decir, cierta capacidad mnima para manipular mejor esa informacin y sobre todo ser flexible y
software.com/shared/extrafiles/regform.html. 59 JADE. Who is using JADE Applications and Business, 2006. http://jade.tilab.com/applicationwho.htm 60 JADE. R&D Projects, 2006. http://jade.tilab.com/application-projects.htm

83

extensible, es decir, ampliable sobre la misma base. stas caractersticas son en esencia una base que tendra 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 generacin de www y por lo tanto es de esperar que conozca las condiciones necesarias para que un medio como ste sea adoptado masivamente y tambin reconozca bien los defectos que tiene en ste momento, por eso es que se espera que la Web Semntica 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 lnea de los Web Services, que son, simplificadamente, aplicaciones que ponen a disposicin sus capacidades en la red y ejecutan remotamente los procedimientos. Nosotros creemos que las propuestas no son incompatibles, de hecho nos parecen tecnologas complementarias. Si la Web Semntica es ms una infraestructura que una tecnologa, el papel que debe jugar en cualquier aplicacin de la nueva generacin, es de colgeno o factor unificador, bien sea entre los elementos de la aplicacin como de la aplicacin con el resto de la red, es decir, un cohesionador de los elementos de la aplicacin entre ellos mismos y como lenguaje general de publicacin de contenidos y funcionalidades. Sin embargo, no se puede forzar a las aplicaciones a que usen las especificaciones de Web Semntica obligatoriamente por encima incluso de sus necesidades de rendimiento, como ejemplo, JADE usa mecanismos adaptables para la comunicacin, es decir, para comunicaciones interagente se pueden configurar los agentes para negociar el lenguaje de comunicacin a usar: se puede seleccionar entre lenguajes reglamentados por FIPA y lenguajes especficos de la plataforma, en particular, JADE usa su propio lenguaje para comunicacin dentro de la misma arquitectura, es decir dentro del mismo PC. En esta misma lnea de ideas, en Univirtual hay que valorar la utilidad que podra tener el uso de RDF y Ontologas como base de la aplicacin, pero no se debe dudar un slo segundo sobre su uso en la publicacin de funcionalidades y metainformacin de los contenidos.

4.2.3.1 Contenidos Los contenidos de Univirtual se pueden clasificar en dos categoras principales segn la finalidad: contenidos creados para la ejecucin o visualizacin individual, como descripcin de procedimientos para una clase o ejercicio, indicaciones o bibliografa, etc., y elementos de ayuda suscritos o subidos por los integrantes de la comunidad para enriquecer algn proceso de manera espontnea y colaborativa. Es decir, procesos y documentos dirigidos a individuos desde un 84

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 educacin virtual, deben existir contenidos creados con ms formalismo como capacitacin en algn rea del conocimiento, una materia de alguna carrera o contenidos de naturaleza especfica diseados para un grupo de personas con intereses predeterminados. Para estos ltimos contenidos existen una serie de estndares que giran en torno a un concepto llamado Objetos de Aprendizaje que as como las tecnologas de Web Semntica, buscan establecer normas de descripcin y modelado de procesos de aprendizaje y enseanza virtual. El principal marco de trabajo para estos objetos de aprendizaje es IEEE LOM (IEEE Learning Object Model) que es implementado como ncleo de otra serie de estndares, como IMS y SCORM. SCORM es una plataforma general que implementa una serie de procesos comunes a todas las especificaciones de educacin y entrenamiento virtual. Los procesos comunes contemplados por SCORM son:

Estructuracin de contenidos Modelamiento del proceso Empaquetamiento de contenidos, definicin y publicacin de API -Application Programming Interface o Interfaz de programacin de la aplicacin- para el entorno de ejecucin y modelamiento de datos para el entorno de ejecucin (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: panormica -overview- que contiene la descripcin general del objeto de aprendizaje, el modelo de agregacin de contenido que contiene metainformacin y etiquetas para los contenidos e informacin acerca de las relaciones entre los contenidos y el empaquetamiento, y, finalmente, un API y modelo de datos del entorno de ejecucin, que especifica cmo se enva informacin entre el sistema y el usuario, as como cules variables pueden ser cambiadas dentro de la aplicacin y cules 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 visin y el futuro del mismo. 2. Un modelo de agregacin de contenido -CAM, Content Aggregation Model-, que indica cmo crear contenidos ensamblados como partes de un nico paquete para ser movidos y reusados en diferentes plataformas. 3. Una especificacin de Entorno de Ejecucin -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 cmo los resultados de esas evaluaciones 85

son devueltos al sistema para su anlisis. Una imagen que muestra algunos de los elementos mencionados dentro de la arquitectura se muestra a continuacin61:

Figura 5. Estndares SCORM

En sta imagen podemos observar la adhesin de SCORM a estndares probados como LOM a manera de marco general de modelamiento de contenidos y CMI como estndar de empaquetamiento y envo de objetos de aprendizaje. La arquitectura de SCORM puede constituir una interfaz con la Web Semntica en el proceso de agregacin de contenido, debido a que su base es XML y metainformacin del contenido del objeto de aprendizaje. El CAM (Content Aggregation Model o modelo de agregacin de contenido) implementa conceptos
61 http://www.lsal.cmu.edu/lsal/expertise/projects/scorm/scormevolution/reportv1p02/reportv1p02.html Evolucin de SCORM hasta el 2004

86

comunes a los modelos de la IEEE, ARIADNE, Dublin Core e IMS, que son las organizaciones que han hecho los esfuerzos ms importantes por definir y estandarizar el aprendizaje electrnico62, 63. Finalmente para integrar estas tecnologas al estilo Web Semntica, hay que observar que hasta este punto usando SCORM como base arquitectnica y especificacin fundamental, alcanzamos hasta el nivel ontolgico de la pila de Web Semntica descrita en apartes anteriores con ciertas limitaciones. Un aporte interesante para hacer en este aspecto, sera usar los agentes inteligentes para imponer un marco lgico 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 bsquedas en Bases de Datos relacionales) con bsqueda sobre datos RDF que tendran que ser producidos por el sistema, basados en la metainformacin 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 diseo y proponer la infraestructura base para todas estas futuras aplicaciones o funcionalidades del sistema.

4.2.3.2 Autenticacin El otro aporte necesario para implementar completamente la pila de la Web Semntica, es incorporar mecanismos de autenticacin de los usuarios por medio de firmas digitales y cifrado de la informacin. Estos seran atributos de la autenticacin de usuarios cuando haya lugar a sta y a la manipulacin de los datos de los objetos de aprendizaje. Como ya sabemos, la cima de la pila de la Web Semntica est coronada por las redes de confianza. Un sistema multiagente en Univirtual puede implementar la calificacin de los usuarios y crear la red de confianza entre ellos con base en la evaluacin y la observacin 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 bsqueda para los usuarios concurrentes al sitio, estableciendo relaciones con base en intereses comunes y posiblemente mejorando la interaccin con los nuevos usuarios. Investigaciones y sistemas que incorporan experimentalmente estas tecnologas (autenticacin 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
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

uso de la lgica 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 Herramientas Un elemento clave es la integracin de la librera de Java Jena para el procesamiento de aplicaciones orientadas a la Web Semntica. Esta librera o marco de trabajo, tiene una implementacin de SparQL llamada ARQ y objetos que permiten el trabajo con documentos RDF/RDFS -escritura, lectura, almacenamiento y estructuracin- y escribir y generar documentos en OWL que es el lenguaje de ontologas recomendado por la W3C. Existe una herramienta que parece ser la ms popular herramienta para desarrollar ontologas de dominio especfico llamada Protg64, que presenta una interfaz grfica muy atractiva y un API que permite el uso de sus recursos para otras aplicaciones. El uso de Protg podra ser un buen punto de partida para el anlisis y verificacin de ontologas. Aunque no existe un dominio especfico en Univirtual es necesario usar ontologas generales ya estudiadas y desarrolladas como SUMO, EuroWordNet, GOLD o Dublin Core y aportar en su desarrollo posiblemente desarrollando su representacin para Protg. Sin embargo nos parece que Protg es una excelente herramienta para el desarrollo de aplicaciones basadas en conocimiento dentro de un dominio especfico en organizaciones con direccin centralizada por lo que no nos inclinamos a basar la propuesta en sta herramienta sino ms bien en usarla tangencialmente para analizar y mejorar los resultados del sistema o para generar una base sobre la cual comenzar. Existen tambin propuestas de hacer de los Web Services la interfaz pblica de los sistemas de agentes inteligentes, Podran stos basarse en recursos RDF/RDFS y OWL para extender la Web Semntica? esta es una conviccin que nosotros tenemos y que viene siendo investigada en algunas universidades e institutos. A nosotros nos gustara que esta idea fuera explotada una vez que exista suficiente informacin en la base de conocimiento que desarrollara la implementacin de este proyecto.

64 Stanford Medical Informatics. Protg ontology editor and Knowledge adquisition system, 2006. http://protege.stanford.edu/

88

4.2.4 Reconocimiento de lenguaje natural

4.2.4.1 Ontologas Un elemento de investigacin para asimilar los contenidos existentes en Univirtual es el estudio de WordNet o mejor Euro WordNet, una Ontologa de propsito general (o fundamental) basada en la lingstica del idioma Ingls 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 mltiples APIs para muchos lenguajes65 y parece ser un hito en el anlisis semntico porque aparece vinculado a otros proyectos de mltiples lenguas como Nimda66 y Global WordNet67. Hay que considerar la vinculacin de la Universidad con proyectos de esta ndole y crear una interfaz entre stos y Dublin Core o integrarlos con ontologas ms generales como SUMO de la IEEE. Recordemos que Dublin Core es la ontologa de metadatos que es base de muchos trabajos orientados a la educacin virtual como SCORM e IMS, adems que la ontologa misma parece ser una de las ontologas de propsito general de ms actividad. Un proyecto ms ambicioso y ms especializado cuyo estudio convendra mucho implementar en la universidad, en especial por el aspecto social, es GOLD (General Ontology for Linguistic Description -Ontologa General para Descripcin Lingstica), este proyecto busca crear una ontologa que permita establecer comparativos entre lenguas diferentes y as establecer un puente lingstico entre culturas. Ellos ponen un especial nfasis en el entendimiento y equiparacin de lenguas tradicionales de poblaciones nativas y de la posibilidad que esto dara a estas poblaciones de tener acceso a toda la informacin que existe en Internet -o en nuestro caso a la instruccin disponible en Univirtual. GOLD usa dos estrategias de desarrollo: desde los conceptos lingsticicos ms generales adoptados por las lenguas conocidas y desde los conceptos ms especficos de tales lenguas. stas dos estrategias tienen el fin de tener la mayor cobertura posible y simplificar el trabajo. Usa SUMO como ontologa superior o bsica y su principal atractivo es que est orientada a la Web Semntica y al anlisis lingstico general apoyando las lenguas nativas en la bsqueda 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
65 Princeton University. WordNet links to related projects. http://wordnet.princeton.edu/links 66 Maurice Gittens. The Mimida project home page, http://www.gittens.nl/SemanticNetworks.html 67 Irion Technologies, Princeton University. http://www.globalwordnet.org/ Global WordNet

2005.

Association.

89

hecho de partir del anlisis lingstico de los mismos 68.

Figura 6. SUMO: Suggested Upper Merged Ontology

Establecer la Web semntica a gran escala implica el uso generalizado de documentos Web con marcados de anotacin basada en ontologas 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 disertacin Linguistic Annotation for the Semantic Web 69, es aplicar recuperacin de informacin para extraer pedazos de informacin de los textos que en trminos generales son textos de escritura libre y sin estructuras bien definidas para, luego de tener una serie de elementos semnticos, aplicar algoritmos de agrupamiento (clustering) para su clasificacin.

4.2.4.2 Herramientas Existen importantes herramientas para efectuar PLN orientadas a la Web
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

Semntica, sin embargo no se ha llegado a consenso acerca del lenguaje de ontologas a usar. Entre los lenguajes de ontologas ms 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 implementacin que se vaya a usar finalmente. GATE70 es la herramienta recomendada para realizar las tareas de procesamiento de lenguaje natural orientadas a la Web Semntica que es incorporado en proyectos tan importantes como KIM71 que es una conocida plataforma de administracin de conocimiento en la que GATE forma la base de anlisis de lenguaje natural y ha permitido su migracin a la Web Semntica. GATE es una sigla derivada de General Architecture for Text Engineering, es decir, arquitectura general para la ingeniera de texto. GATE es denominada arquitectura porque est compuesta de tres elementos diseados para interactuar transparentemente: una arquitectura o estructura organizacional para tareas de PLN, un marco de trabajo (Framework) o librera de clases que ejecutan tales tareas y que permiten la integracin de esta arquitectura en aplicaciones de PLN y una interfaz grfica que permite y facilita operaciones de diseo y desarrollo de componentes. La arquitectura de GATE usa el desarrollo de software basado en componentes, orientacin a objetos y movilidad del cdigo, est desarrollado en Java y su licencia es LGPL. Usa Unicode para todas sus operaciones y soporta mltiples formatos de documentos como RTF, HTML, SGML, texto plano y por supuesto XML, usa una versin modificada del formato de anotacin TIPSTER y marcacin aparte (stand-off) que relaciona un documento analizado con un documento de anotacin externo a l con el fin de no alterar la sintaxis del documento original. Esta arquitectura que recomendamos viene con una serie de utilidades adicionales como ANNIE, un sistema de extraccin de informacin que usa tcnicas de mquinas de estado finito para implementar tareas que van desde tokenizacin (reconocimiento de elementos -palabras) hasta etiquetado semntico y particionamiento de frases. Incluye tambin un motor de anotacin basado en expresiones regulares llamado JAPE -Java Annotation Patterns Engine-, herramientas de medicin de la calidad de la anotacin realizada por el sistema y su desempeo (Annotation diff y Benchmarking Tool) y finalmente GUK -GATE Unicode Kit- que complementa a JAVA para soportar mejor la codificacin
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

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 cmo empacar y configurar los objetos para su instalacin y despliegue final.

4.2.5 Arquitectura de sistemas de educacin virtual La arquitectura de sistema de educacin virtual debe ser una combinacin o adaptacin de la arquitectura de sistema sugerida en el proyecto de grado INCORPORACIN DE AGENTES INTELIGENTES A LOS PROCESOS DE ENSEANZA VIRTUAL COMO BASE PARA EL DESARROLLO DE UN MODELO DE UNIVERSIDAD VIRTUAL de las Ingenieras de sistemas y computacin Carolina Moreno y Sandra Muoz, que estudia profusamente las propuestas de aprendizaje computacional, teoras pedaggicas y su implementacin por medio de Agentes Inteligentes para proponer finalmente un modelo de ITS -Intelligent Tutoring System- basado en agentes inteligentes que compondra la arquitectura interna del sistema. Esta etapa de anlisis sera especificada desde un alto nivel con el fin de ayudar en la recoleccin de requerimientos y explotando la fortaleza de la metodologa Tropos de recolectar requisitos inluyendo las necesidades de los actores y la manera en que haran las cosas en un marco ideal (antes de modelar el sistema mismo). stas son las fases de requerimientos tempranos y tardos, sin embargo, los detalles de este modelo son internos al sistema, para acoplarlo a la Web Semntica (la parte externa) se debera usar el modelo SCORM que recoge una serie de especificaciones realizadas por diferentes organizaciones dedicadas a investigar y estandarizar de los sistemas de instruccin virtual como IEEE, ADL e IMS pero desde el punto de vista externo, es decir, una especificacin base para las interfaces y los procesos de interaccin hacia afuera. Este modelo declara las caractersticas tcnicas que deben tener los contenidos para ser conformes con l. Detalla en forma particular la estructuracin de los contenidos, es decir, qu es una leccin, qu es un mdulo y qu es una clase, as como la metainformacin necesaria para describir cada uno de esos elementos; el empaquetamiento de los contenidos; formas de interactuar del contenido con el sistema de enseanza, es decir, un API del contenido y finalmente las relaciones de secuencia y ramificacin vlidos o sugeridos de los contenidos. Vemos que SCORM no incorpora ninguna especificacin sobre la arquitectura del sistema de enseanza, 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 92

de estudiante a sistema de enseanza, pero Internet y las soluciones de Software Libre y desarrollo comunitario de objetos intelectuales desvirta un poco que este modelo sea el nico modelo vlido para la educacin virtual. Es probable que el actual modelo de SCORM sea slo una consecuencia de la evolucin necesaria del proceso y ya se contemple este tipo de interaccin de las comunidades educativas. Un ejemplo de este comportamiento de desarrollo comunitario de objetos intelecuales son los populares Wikis, producto de la revolucin que ha supuesto el fenmeno del Software Libre en Internet. Un Wiki es una herramienta de software para construccin comunitaria de conocimiento basada en el principio de que los usuarios no slo usan el contenido del wiki sino que lo pulen acumulativa y colectivamente con base en los conocimientos individuales. Un fenmeno 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 rpidamente. En este proyecto sugerimos que es necesario que Univirtual se d cuenta y trabaje sobre la creacin comunitaria de contenidos acadmicos, aprovechando incluso las capacidades de investigacin que muchas veces tienen los estudiantes. Sin embargo para incorporar correctamente esta idea, es necesario considerar el aporte que nosotros deberamos hacer a la comunidad para que ella misma se enriquezca de la experiencia, esto supone, dejar de lado el carcter mercantilista de la educacin virtual y permitir que una comunidad espontnea 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 cdigo 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 caractersticas se podra lograr de dos maneras: integrando uno o varios agentes inteligentes que generen metainformacin con tcnicas de extraccin de informacin de los contenidos y la conviertan a los formatos soportados por SCORM o simplemente integrando herramientas de extraccin de informacin clsicas 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 combinacin de los dos- y Orientado a agentes. Dado que ste proyecto versa sobre Agentes Inteligentes, es la ltima opcin la que tomaremos como sugerencia por las razones expuestas en los otros captulos. 93

4.2.5.1 ITS clsico La siguiente figura ilustra la arquitectura de un ITS (Intelligent Tutoring System), como se describe en el trabajo de Sandra Muoz y Carolina Moreno en el proyecto de grado mencionado:

Figura 7. Arquitectura de STI

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 mdulo pedaggico que proponga las estrategias necesarias para que el estudiante aprenda lo que se le est enseando y seleccionar de estas estrategias, la que mejor se adecue al nivel de conocimiento del mismo. En ste esquema clsico falta incluir dnde y cmo interactan el profesor del curso, el diseador de contenidos y los expertos involucrados en ste diseo. Un factor importantsimo dentro del modelo de conocimiento constructivo predominante en 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 seran los estudiantes, los profesores de los cursos (presenciales o tutores del curso virtual), los diseadores de contenidos (que en nuestro caso sera Univirtual y sus expertos pedaggicos, del dominio o materia enseada y en usabilidad de los elementos, es decir, facilidad de uso y esttica del sitio) y los espectadores (que son los clientes potenciales de las funcionalidades del sitio).

94

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 ontolgica que coleccione descripciones semnticas 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 ontologas recomendado por el consorcio W3C apoyamos la adopcin de ste formato para las ontologas, a su vez, ste formato est basado en XML y en Unicode que son la base de la pila de la Web Semntica. Una de las propuestas a considerar para la implementacin de agentes inteligentes en Univirtual como intrpretes de lenguaje natural es el uso de los wikis (empezando con el mdulo wiki de Moodle) para construir ontologas de dominio especfico basndose en ontologas generales y en nuestro caso Dublin Core que como vimos, es la base de las propuestas unificadas orientadas a la educacin virtual como SCORM e IEEE LOM, esto puede liberar a la organizacin de la dispendiosa tarea de crear ontologas de dominio especfico de manera centralizada y hacerlo a travs del modelo constructivo de los Wikis que ha 95

demostrado dar excelentes resultados (Por ejemplo la WikiPedia72). Este uso de Internet es el uso previsto de esta tecnologa, 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 comn, reflejando la realidad y en nuestro caso el ambiente diverso de la Universidad. Para este objetivo es necesario estudiar con detenimiento la finalidad y metodologa de autenticacin de los usuarios del sistema, nosotros proponemos dejar la autenticacin de los usuarios slo con el objetivo de creacin 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 continuacin son las consecuencias naturales de las tecnologas mencionadas hasta el momento y las caractersticas analizadas hasta ahora. Como arquitectura del sistema usamos los conceptos de la metodologa recomendada Tropos y con base en tales conceptos ilustramos cmo empezara el anlisis del sistema (en el anlisis temprano est la principal fortaleza de la metodologa) 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 implementacin final y a seguidamente hacemos mencin a otros elementos que pueden enriquecer el sistema y cuya calidad de reusables haran la construccin del sistema una construccin de resultados ms inmediatos que si se construyera 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
72 Wikipedia. Home Page, 2006. http://wikipedia.org/

96

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 operacin. Los agentes interesados no estn limitados a los agentes que van a realizar el procesamiento, sino los humanos mismos que estn interesados en algn resultado de la operacin del sistema. Las intenciones son modeladas como metas, las cuales a travs de un anlisis orientado a metas se descomponen en submetas y que eventualmente darn soporte a la evaluacin de alternativas. En esta etapa se identifican solamente los actores interesados en el sistema y la manera en que interactan con el fin de capturar los requerimientos funcionales y no funcionales de la manera ms pura posible, es decir, sin sesgos de tipo tecnolgico, sin mencionar aspectos de la tecnologa subyacente que podran alterar la percepcin de lo que los usuarios o actores desean que suceda. De los anlisis en secciones anteriores llegamos a la conclusin de que los siguientes actores interesados mnimos a considerar: estudiantes, espectadores, profesores/tutores y Unidad Virtual o Univirtual. A continuacin presentamos unos actores mnimos y sus metas previstas que deberan ser tomados como base para el diseo final del sistema y extender el listado de metas si es necesario. Tambin listamos breves descripciones de las metas cuando nos pareci necesario, tales descripciones se pueden usar como guas en el diseo 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 travs de los documentos o multimedios no interactivos. Aprender un tema o tcnica: A travs de los recursos interactivos o multimedios. Encontrar ayudas: A travs de bsquedas 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 estn previstos dentro de un curso, tema o programa, as como las herramientas adicionales de interaccin con el sistema y la comunidad. 97

Aportar a la comunidad: Sugerir o crear (documentos, ejercicios, multimedios, etc.). Interesarse por temas ms avanzados.

contenidos

adicionales

4.3.1.2 Metas de espectadores: Encontrar informacin: A travs de bsquedas de informacin especializada. Conocer las funcionalidades y utilidades del sistema de educacin virtual. Usar funcionalidades y utilidades pblicas del sistema. Inscribirse en un curso o tema de estudio: Solicitar suscripcin 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 desempeo: Hacer seguimiento del nivel de aprendizaje de los estudiantes, Sugerir o elegir estrategias pedaggicas. Interactuar con los estudiantes: Resolver preguntas y dudas, Estimular a los estudiantes a continuar y mejorar. Encontrar Recursos: A travs de bsquedas de recursos almacenados y catalogados (documentos, ejercicios, multimedios, etc.). Contribuir a la comunidad: Crear o poner a disposicin nuevos recursos (documentos, ejercicios, multimedios, etc.). 4.3.1.4 Metas de Univirtual: Disear contenidos: Con base en informacin sobre demanda. Compilar objetos de aprendizaje: A travs de la compilacin de contenidos creados por la comunidad, a travs de bsqueda de objetos de aprendizaje disponibles para complementar programas o cursos. Analizar el desempeo del sistema: Establecer demanda y uso de los objetos de aprendizaje, Establecer efectividad de los objetos de aprendizaje y encontrar patrones de uso. Publicar funcionalidades y contenidos: Poner a disposicin los objetos de aprendizaje y servicios eficientemente. Administrar acceso: Definir polticas de acceso y uso de los recursos del sistema. Promover el uso de la educacin virtual.

98

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 definicin precisa y criterio claro de satisfaccin verificable por el sistema. Deduciblemente, las metas blandas son aquellas que no tienen una definicin clara o un criterio claro para determinar su satisfaccin y son tpicamente usadas para modelar los requerimientos no funcionales del sistema. A pesar de que las metas blandas no son de mucha importancia en nuestras metodologas tradicionales, en ste estadio de la disciplina de la programacin, 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 satisfaccin de los usuarios cumpliendo tales metas. En el listado de metas por agente que acabamos de mostrar, las metas blandas estn 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 ms avanzados para el actor estudiante. Tal inters es un requerimiento no funcional (no de estricto cumplimiento) y no parece tener un criterio directo para evaluar su satisfaccin. Univirtual debe generar contenidos, funcionalidades, polticas 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 polticas y funcionalidades que permita el actor Univirtual, pero los estudiantes dependen tambin de los contenidos a los que est suscrito cada uno de ellos y de su vinculacin con stos. Los profesores/tutores dependen de los contenidos a los que estn vinculados y a travs de stos dos elementos dependen de Univirtual que es quien crea y permite los contenidos y asigna las vinculaciones de los profesores con aquellos. El anterior anlisis de metas trivial, se representa en Tropos con el siguiente diagrama de Actores y dependencias.

99

Figura 9. Modelo de agentes fundamental

En ste diagrama podemos ver los elementos fundamentales de la metodologa para el modelamiento de actores: agentes, metas fuertes y blandas, los dependums y dependencias. Es necesario aclarar que las dependencias no siempre estn vinculadas con dependums, slo en ciertos casos donde es necesario transferirlos entre los actores involucrados en la dependencia en cuestin o cuando alguna meta depende directamente de la interaccin entre los agentes involucrados; as mismo los actores no siempre tienen metas blandas: el actor Univirtual por ejemplo podra no interesarle promover el uso de la educacin virtual. El anlisis de requerimientos tardos consiste en vincular los actores descubiertos en los requerimientos tempranos a travs 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 metodologa aqu consiste 100

en transferir metas o dependencias hacia un nuevo actor que es el sistema como tal, sistema a ser creado (system to be) en los trminos de Tropos, y as conformar el conjunto de metas fundamentales o ms especficas del sistema, tambin es vlido crear metas para ste que no partan directamente de metas de algn actor, sin embargo una buena costumbre es relacionar los actores con el sistema a travs de metas y recursos (Metas representadas con valos y nubes, y recursos representados con rectngulos). Esta es una de las fortalezas de esta metodologa: establecer la justificacin de las funcionalidades y la trazabilidad desde los actores mismos y vincularlos a travs de sus metas con el sistema, los autores de Tropos enuncian esto diciendo que sta metodologa 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 fcilmente si el sistema logr finalmente stas metas a travs de los planes y la implementacin. 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 semntico -en formatos RDF y OWL-. 4.3.1.5 Metas de SITEUV Ofrecer Bsquedas Semnticas: Ajustadas segn el perfil de las metas de los actores (Espectador, Estudiante, Profesor/Tutor y Espectador) y derivadas de las bsquedas mismas y del contexto de ejecucin o instancia -parmetros de sesin de usuario: hora, lugar, etc.-. Mostrar/Publicar Funcionalidades: Almacenar descripcin ontolgica 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 interaccin 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 ontolgica. Estas son unas metas fundamentales del sistema que pueden ser extendidas especificando muchas ms metas. Lo importante ac es observar que el objetivo principal de estas metas es crear, poblar y usar la base ontolgica a partir de cada elemento y cada meta de los actores descritos en el anlisis de requerimientos tempranos. Desde ac, y de manera intuitiva, se puede observar la necesidad de los agentes de extraccin de informacin y generacin de descripciones, ya que es a partir de la extraccin de informacin que se clasifican y contextualizan los contenidos. Esta conclusin, sin embargo, debera ser resultado del anlisis de 101

planes/capacidades para cumplir metas y el agrupamiento de capacidades para determinar tipos de agentes que ocurre durante la fase de diseo de la arquitectura. Hemos vislumbrado a partir de qu necesidades nacen los agentes de extraccin de datos y de generacin 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 propsito, sino que del anlisis de medios y fines surgen las capacidades necesarias para cumplir los planes que se encontraron en el resto de la etapa de anlisis 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 podramos ver sera la capacidad de recorrer los contenidos para indizarlos y analizarlos luego.

4.3.2 Plataforma Nuestra recomendacin de plataforma implica el uso de un modelo orientado a componentes, que haga uso de los recursos y libreras mencionadas para realizar la arquitectura, en especial GATE y su modelo de componentes para implementar todo lo relativo a la manipulacin de los textos desde la perspectiva del sistema y JADE como plataforma de comunicaciones y agentes. sta debe ser entonces la base para aplicaciones ms ambiciosas como la generacin automtica de contenidos o la seleccin de estrategias pedaggicas dinmicas y adaptables una vez que se logre la maestra en stos elementos, en especial de GATE, en el que cualquier aplicacin que se vaya a desarrollar con base en l, debe estar cruzada por un fuerte conocimiento de las caractersticas del dominio y lenguaje en especial que se use (suponiendo que se dominan las caractersticas del idioma o se encuentran recursos disponibles para poner a punto el sistema para nuestro idioma en particular) y cmo modificar los parmetros del sistema para que haga un reconocimiento efectivo de las entidades y las partes de la oracin que nos interesan. Vamos a enumerar una serie de tecnologas y medios que puede ser necesario conocer y que pueden ser el puente entre la arquitectura actual de Univirtual y el futuro de la misma implementando ste proyecto.

102

4.3.2.1 Moodle Moodle es una plataforma de educacin virtual en el modelo del Software Libre que soporta la creacin de objetos de aprendizaje en el formato SCORM. Dado que Moodle ya existe, se acoge al modelo de Software Libre y construccin comunitaria de contenidos y est en uso en Univirtual, nos parece interesante la idea de modificar su cdigo fuente para crear un sistema alterno que interacte 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 pginas 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 permitira 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 sera una herramienta no slo para el modelo del estudiante sino para modelar cualquier actor o persona que est interactuando con el sistema a travs de un navegador Web (que es la nica forma prevista de interaccin hasta ahora). 4.3.2.2 Servidor Web Apache Web Server es una de las aplicaciones lderes del movimiento del Software Libre, ste es una aplicacin que ha venido creciendo y demostrando una estabilidad y capacidad incomparable, as como unas extraordinarias capacidades de extensin e integracin con otras aplicaciones. El servidor (o servidores) Web es un punto inevitable para cualquier peticin 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 sera posible hacer pre y postprocesamiento a tales peticiones, como sera verificar la existencia de una descripcin del recurso solicitado, llevar estadsticas de acceso, etc.. De sta manera SITEUV tendra acceso a todos los recursos, incluso los que no se encuentran disponibles directamente en el sistema de archivos o servidores de la Universidad porque tendran que estar necesariamente referenciados dentro de Univirtual, es decir, SITEUV podra conocer incluso los URLs que apuntan a recursos de inters en Internet pero referenciados en pginas dentro del sistema y catalogar estos URLs o describirlos segn sea necesario. Existen varios mecanismos en Apache Web Server que permitiran implementar este mtodo: las acciones (action), manipuladores (handlers) y reescritores 103

(mod_rewrite) y extensiones como Jakarta73 que permite ejecucin de aplicaciones Java en el modelo de guiones del lado del servidor (JSP -Java Server Pages). Todos stos mecanismos permiten que una aplicacin externa se encargue de la gestin de las peticiones para tipos de archivo especficos (en el caso de los manipuladores), para directorios especficos (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 manipulacin de informacin interceptada corresponde a procesar la informacin antes y despus de enviarla o recibirla a los navegadores, lo que en el prrafo anterior llambamos 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 tendra acceso a cualquier recurso que sera identificado, clasificado y descrito en la base de conocimiento y en caso de no estar referenciado, se interpretara y almacenara o se encolara para su posterior anlisis. Adems de interceptar las referencias (tanto internas como externas al sitio), se podra incluir el cdigo necesario para que todas las pginas tengan el Applet observador que vigile las acciones del usuario y sugiera cursos a tomar segn el nivel o estado de nimo deducido de lo que haga el usuario en cada pgina sin reescribir ningn cdigo de la plataforma Moodle, pero s podra invocar o sugerir el uso de alguna funcionalidad que sta provea segn el caso. 4.3.2.3 Componentes Dentro de la terminologa de Tropos, Gate, o ms especficamente ANNIE (un componente de Gate para la extraccin de informacin) debera ser una capacidad de alguno o algunos de los agentes, y en caso de que el trfico 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 asncronamente 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 trminos de implementacin. Jade es una arquitectura completa en s para el desarrollo de sistemas multiagente. Jade implementa mecanismos estndares comunes a los sistemas multiagente como administracin del ciclo de vida de los agentes, mensajera interagente e intraagente, estructura normalizada de mensajes, protocolos de interaccin interagente, manipulacin de ontologas y mecanismos de seguridad y ms importante todava: 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 an, un
73 Apache Software Foundation. Apache Jakarta Project, 2005. http://jakarta.apache.org/

104

objeto general Contenido con una interfaz general para extraer su informacin en cualquier formato necesario. A continuacin mostramos un diagrama que ejemplifica la manera sugerida en que deberan interactuar los elementos mencionados anteriormente.

Figura 10. Interaccin de componentes

Dado que Moodle contiene las funcionalidades necesarias para compilar y empacar objetos de aprendizaje conformes con SCORM, el sistema en sta arquitectura slo tendra que tomar decisiones de cundo un contenido podra o debera ser incluido dentro de un objeto de aprendizaje y hacer las llamadas necesarias al API de Moodle para ejecutar esta operacin con sus respectivos parmetros. Es necesario aclarar que el usuario en ste diagrama modela todos los posibles actores del sistema.

4.3.3 Sugerencias de diseo y despliegue Dadas las recomendaciones hechas en los captulos anteriores, no queda sino 105

trazar un plan de despliegue fundamental que sirva de ruta de diseo y despliegue final del sistema.

4.3.3.1 Ontologas Univirtual debe escoger una ontologa general o fundamental sobre la cual crear las ontologas de dominio especfico. Esta organizacin ya tiene una incipiente organizacin temtica por reas del conocimiento, lo que sugiere la necesidad de una ontologa general limitada a las categoras ms generales como partida. Dentro de las posibilidades expuestas en ste proyecto de grado, estn SUMO, GOLD, EuroWordNet y Dublin Core que es la recomendacin final, basndonos en el hecho de que Dublin Core es la base de las especificaciones orientadas a la educacin y teniendo en cuenta que es una propuesta limitada a la inclusin de metadatos en otros documentos lo cual a su vez la ha hecho muy popular. Ms all de que Dublin Core sea la base ontolgica de las especificaciones educativas, las otras ontologas generales representan un ejemplo para el desarrollo de las ontologas especficas que se van a desarrollar, bien sea manualmente o usando al sistema para componerlas y adems stas ontologas se han venido usando como herramientas para la extraccin de informacin que es un elemento fundamental para la generacin y poblacin automtica de ontologas especficas. Dado que nuestro pas es un territorio multicultural de mucha riqueza, recomendamos que el equipo de desarrollo de este sistema incluya especialistas en lingstica que conozcan y aprendan a usar GOLD y EuroWordNet para recomendar procedimientos de Extraccin de Informacin y desarrollo de Ontologas para lenguas diferentes al castellano.

106

Figura 11. Elementos de Dublin Core

4.3.3.2 Migracin Dentro de la estrategia de migracin hacia la Web Semntica propuesta por Tim Berners-Lee, existe la idea de que, ya que las tripletas RDF son la representacin ms 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 representacin 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 ontolgico 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 ontolgico nos referimos a un agente, procedimiento o algoritmo 107

que para cada objeto o conjunto de objetos, extraiga la informacin relevante a su naturaleza y la ubique en uno o varios dominios contemplados en el sistema a la luz de la ontologa general escogida y establezca las relaciones con otras partes del sistema. A continuacin se ilustra cmo las tripletas RDF pueden representar todo tipo de estructura:

Figura 12. RDF representando tablas

Figura 13. RDF representando rboles

Figura 14. RDF en estructuras mixtas

108

4.3.3.3 Interfaz pblica Finalmente 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 pblica de los agentes Inteligentes, lo que resulta especialmente atractivo para nuestros propsitos, dado que el marco de la educacin virtual mencionado, con sus objetos de aprendizaje es un marco distribuido en el que los Web Services ya han aparecido como tecnologa clave y debido tambin al reto de integrar dos tendencias que algunos autores ven como las tendencias alternativas ms importantes para el futuro de Internet: Web Services y Web Semntica.

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

109

5. CONCLUSIONES

Un sistema multiagente incorpora como base un estudio detallado de las caractersticas cualitativas del dominio sobre el cual se construye y su dinmica, lo que pasado a una representacin precisa como las ontologas los hacen ms generales an que los sistemas clsicos donde el conocimiento del dominio era predominantemente esttico y dependiente de los programadores. Lo anterior implica que un sistema basado en ontologas tiene el potencial de autoenriquecerse o autocontrurse, sin ser demasiado pretensioso, una caracterstica similar a la que tena la molcula de ARN en la evolucin temprana de la vida en la tierra: una molcula capaz de autorreplicarse y modificarse. Las tecnologas mencionadas son tecnologas inmaduras en trminos de implementacin 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 estandarizacin como W3C, IETF e IEEE y acogerse, aportar o criticar sus estndares propuestos. Esta forma de trabajar as como la construccin comunitaria son mencionadas como caractersticas fundamentales de la Web 275 76, con este proyecto se apunta a la adicin de la Universidad Tecnolgica de Pereira a esta nueva tendencia como pionera en el Pas y probablemente en Latinoamrica aprovechando la experiencia adquirida durante los ltimos aos de desarrollos Web realizados por el CRIE. Internet se basa en la relatividad de las verdades y es por eso que la Web Semntica apunta a crear ontologas personalizadas en el ms avanzado estadio que sta pueda lograr. El desarrollo de un sistema multiagente de esta envergadura sin haber experimentado y reconocido las tecnologas ni las teoras en las cuales se

75

Oreilly. What is Web 2.0?. http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-isweb-20.html?page=1

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

110

basa requiere un esfuerzo significativo en trminos de investigacin y experimentacin. Lo anterior se suma a la inmadurez de tales tecnologas para crear un panorama complejo del que la academia puede sacar mucho provecho para crecer tanto en la capacidad de anlisis y evaluacin como en la ventaja tecnolgica. La educacin virtual tiene la capacidad de contemplar aspectos sociales como el acceso a la educacin para sectores sociales discriminados como son las comunidades cuya lengua nativa no es castellano y es obligacin del sector oficial explotar y mejorar estas capacidades en direccin a eliminar tales inequidades. La inclusin de lenguas diferentes al castellano en un sistema de educacin inteligente hara de la Universidad Tecnolgica de Pereira una pionera en la educacin virtual en Colombia y probablemente en Latinoamrica, reconociendo el carcter multicultural de nuestra comunidad as como en la comunidad europea reconocen este mismo fenmeno con tecnologas como EuroWordNet. Internet y la Web Semntica son fenmenos 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 tecnologas 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 interesantsimas preguntas de carcter social, como cules son los modelos matemticos de las interacciones sociales de los agentes en un ambiente de arquitecturas heterogneas? y qu parmetros hay que tener en cuenta para garantizar que la educacin virtual promueva el conocimiento de manera justa y equitativa entre la poblacin Colombiana?. La educacin 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 educacin y nivel econmico suficiente para explotar las ventajas que supone esta revolucin. Puede Colombia desarrollar el mismo modelo de 111

educacin Virtual que se estandariza en el mundo y promover realmente una educacin personalizada y econmica para quienes realmente lo necesitan?, Univirtual satisface esta necesidad de conocimiento en las comunidades econmicamente deprimidas?. Es necesario que el currculo de Ingeniera de Sistemas incluya el desarrollo (anlisis, diseo e implementacin) de sistemas multiagente en el currculo, ya que muchos proyectos de grado apuntan a ste tema, incluso cuando dentro de la carrera nunca se cursa o estudia ni las teoras, ni las metodologas, ni las tecnologas en las que se basa.

112

6. RECOMENDACIONES

ste proyecto de grado, es la continuacin del proyecto de grado de Carolina Moreno y Sandra Muoz sobre los SIT (o ITS en ingls). Nosotros despus de la investigacin y anlisis de este tema consideramos que el conjunto de estudios, anlisis 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 direccin. Nosotros consideramos que los temas centrales de este proyecto, como son, Web Semntica, 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 implementacin final del Sistema de Tutoreo Inteligente Extendido debe ser desarrollado con la asesora de expertos en educacin, lingstica y, en especial, en educacin virtual. Dada esta premisa nosotros proponemos que se desarrolle un proyecto de grado sobre implementacin de un sistema de reconocimiento de lenguaje natural y Web Semntica que sirva de base para los agentes de extraccin de informacin mencionados ac y otro proyecto de implementacin de un sistema multiagente para educacin virtual que acoja las recomendaciones hechas en ste proyecto, especialmente las tcnicas de modelado de los usuarios (modelo de estudiante, modelo pedaggico y algn otro modelo que se corresponda con un ser humano) pero que permita la adicin al anterior sobre reconocimiento de lenguaje natural. Para terminar, queremos que la Universidad emprenda la labor de poner a disposicin de la regin un sistema de educacin virtual que desarrolle la capacidad intelectual y tcnica de los sectores ms deprimidos y pobres ya que esa es la labor de la Universidad como representante de nuestro Estado de naturaleza social como lo indica la Constitucin Nacional, teniendo en cuenta tambin la existencia de etnias nativas cuya lengua no es castellano. Nos gustara tambin que la ingeniera del software que se ensea en la Universidad tuviera una perspectiva ms clara y nos enseara 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 programacin orientada a agentes.

113

7. LNEAS DE INVESTIGACIN FUTURA

Durante todo este proyecto de grado se mencionan una serie de ideas de investigacin que ya estn en curso y que sera muy importante estudiar e implementar as fuera en un contexto puramente experimental. Dentro de stas ideas est la autenticacin basada en razonamiento que es la idea que subyace a la confianza de la Web Semntica y por lo tanto un elemento para incorporar en la plataforma propuesta. Un proyecto en sta lnea que ya fue desarrollado e implementado en los mismos trminos que sugiere Tim Berner-Lee: el sistema usa lgica de orden superior para examinar pruebas lgicas aunque no implementa procedimientos de decisin. La pgina 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 Semntica 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 tamao limitado pero permanente actividad. Una fuente de artculos y ejemplos es la pgina http://trust.mindswap.org/index.shtml y su respectivo experimento Film Trust: http://trust.mindswap.org/FilmTrust. Otra idea que podra tener un gran impacto sobre el desempeo de Univirtual sera la construccin de objetos de aprendizaje basados en las discusiones sostenidas entre usuarios del sistema y documentacin suscrita por stos al sistema. Una vez que exista la base ontolgica, 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 sera capaz de describir ste conjunto (ya catalogado y representado en la base ontolgica) y sugerir la creacin de un objeto de aprendizaje. Lo anterior sera generacin dinmica de contenidos basada en construccin colectiva, sobre este tema no lemos ninguna documentacin que ilustrara el concepto ni las tcnicas que debera usar.

114

BIBLIOGRAFA

RUSSELL, Stuart, NORVIG, Peter. Inteligencia artificial, un enfoque moderno. Prentice Hall, 1992 MUOZ, Sandra, MORENO, Carolina. Incorporacin de agentes inteligentes a los procesos de enseanza virtual como base para el desarrollo de un modelo de universidad virtual. Universidad Tecnolgica de Pereira, 2003. BOLVAR, Jennifer; ORREGO, Dany. Monografa anlisis del aprovechamiento de los agentes mviles en aplicaciones diseadas para redes. Universidad Tecnolgica de Pereira, 2004. ZHONG, Ning; LIU, Jimming; YAO, Yiyu (Editors). Web Intelligence. Springer,2003

Documentos PDF incluidos en la documentacin: AMOR, Mercedes; FUENTES, Lidia; VALLECILLO, Antonio. Bridging de gap between Agent-Oriented Design and Implementation using MDA. Universidad de Mlaga, Departamento de Lenguajes y Ciencias de la Computacin, 2005. SUDEIKAT, Jan; et al.. Evaluation of AgentOriented Software Methodologies Examination of the Gap Between Modeling and Platform. University of Applied Sciences Hamburg, University of Hamburg, 2005. BENJAMINS, V. Richards; FENSEL, Dieter; GMEZ PREZ, Asuncin, Knowledge Management through Ontologies. University of Amsterdam, University of Karlsruhe, Technical University of Madrid, 1998. PEIS REDONDO, Eduardo; HASSAN MONTERO, Yusef; Ontologas, metadatos y agentes: recuperacin semntica de la informacin. 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

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

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 mtodos, no es muy til ya que la representacin de grano muy fino, operando a un nivel de abstraccin inapropiado. Un agente representado de esta manera puede parecer bastante extrao, tal vez exhibiendo un slo mtodo pblico cuya funcin es recibir mensajes de otros agentes. Por lo tanto un modelo de objetos no captura mucha informacin til acerca de los agentes y poderosos conceptos de la POO como herencia y agregacin se hacen bastante intiles como resultado de la pobreza de la representacin. Hay varias razones para este problema. Una es que el paradigma de agentes est basado en una significativamente ms fuerte nocin de encapsulacin 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 nocin clave de autonoma: 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 cmo responder a los mensajes, incluyendo, por ejemplo, negociar algn acuerdo sobre cmo se desarrollar cierta tarea. As como el modelo de comunicaciones subyacente es usualmente asncrono, no hay nocin predefinida de flujo de control desde un agente a otro: un agente puede autnomamente iniciar comportamientos internos o externos en cualquier momento, no slo cuando se le enva un mensaje. Finalmente, el estado interno de un agente, incluyendo su conocimiento, puede ser necesario representarlo en una manera que no sea fcilmente traducible a un conjunto de atributos; en cualquier caso, hacerlo constituira una desviacin prematura de implementacin. 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 comn en metodologas orientadas a objetos tales como casos de uso y diagramas de interaccin pueden 117

ser tilmente adaptados (con algunas diferencias semnticas), el modelo de Objetos, que constituye la especificacin primaria de un sistema de objetos, captura asociaciones entre clases de objetos que modelan dependencias inmensamente estticas y caminos de accesibilidad que son sumamente irrelevantes en un sistema multiagente. nicamente la relacin de instanciacin 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 fcilmente capturados. El problema esencial aqu es la uniformidad y naturaleza esttica del modelo de objetos OO. Un adecuado modelo de agentes necesita capturar estas relaciones entre agentes, su naturaleza dinmica 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 tcnicas OO para modelar sistemas multiagente. Otro asunto es la aplicabilidad de metodologas OO al proceso de analizar y disear un sistema multiagente. Las metodologas OO tpicamente consisten en un ciclo de refinamiento iterativo de identificar clases, especificando sus semnticas y relaciones y elaborando sus interfaces e implementacin. A este nivel de abstraccin, ellas parecen similares a las metodologas tpicas 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 tpicamente 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 aproximacin orientada a agentes. La uniformidad y concrecin del modelo de objetos es la base del problema; las metodologas OO proveen gua e inspiracin ms que una aproximacin directamente til al anlisis y diseo. 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

Anexo B. Prototipo Como ejemplo del modelo de implementacin propuesto, hemos decidido dejar en este documento una ilustracin de cmo integrar fcilmente las libreras y tecnologas ncleo mencionadas: Dublin Core, GATE y JADE respectivamente.

Dublin Core Dublin Core es una propuesta que ha tomado fuerza en el mbito del entrenamiento virtualizado como medio de publicacin de metadatos, es decir, datos acerca de los datos. Dublin Core no es esencialmente una ontologa y de hecho tiene representaciones en etiquetas clsicas de HTML sin muchas restricciones, lo que significa que generalmente no explota las capacidades lgicas de las ontologas como las relaciones de composicin, agregacin y cardinalidad entre elementos. A pesar de lo anterior encontramos una representacin de Dublin Core en OWL como ontologa base para ser incluida en proyectos Protg 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 Elementos ->

Instancia

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 acompaan de lineamientos precisos acerca de su uso, por ejemplo, la definicin oficial de muchos de ellos est acompaada por la definicin de esquemas de codificacin, 119

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 ontologas que son Subject (Tema), Relation (Relacin con otro recurso) y Type (Tipo). stos campos permiten (y la especificacin recomienda) el uso de codificaciones especficas de la plataforma de uso, sin embargo tambin sugieren acogerse a varios esquemas que ya existen para su uso como la clasificacin decimal de Dewey que especifica las disciplinas del conocimiento con fines de clasificacin 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 clasificacin del contenido tomando en cuenta algn criterio (como las palabras usadas en el documento, su significado potencial y el contexto en el que est disponible). El algoritmo para clasificacin usado es un algoritmo trivial y debe ser cambiado a uno ms eficiente al momento de la implementacin final que explote las capacidades de Gate para anlisis de lenguaje natural y su aplicacin tambin debe ser decisin de los implementadores finales. En el ejemplo, la clase StandAloneAnnie aplica un mtodo esttico llamado clasificacion() que recibe un documento ya anotado (que hace parte del corpus sobre el cual se ejecutaron los recursos de procesamiento). ste mtodo puede ser reemplazado por una clase depediente del origen del documento o del tipo y formato del mismo y debe implementar mtodos de clasificacin basados en agrupamiento (clustering) y estadsticas, en el prototipo solamente imprime a la salida estndar las etiquetas dc:subject y dc:type con los valores "nota" y "text/html" considerando que los ejemplos fueron tomados de una nota informativa.

GATE Gate, el elemento fundamental de la presente propuesta, como ya se ha mencionado, es una plataforma para el desarrollo e investigacin en varios campos como lingstica computacional, Procesamiento de Lenguaje Natural, extraccin de informacin y otros ms que la documentacin oficial incluye dentro del campo de la Ingeniera del Lenguaje y que se respaldan en los distintos procesos de anlisis sintctico 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

algunos archivos XML que componen la configuracin de los componentes, el ms importante de todos es ANNIE (A Nearly New Information Extraction system) que contiene un conjunto de componentes para el anlisis de lenguaje natural y anotacin, que, usando tcnicas de mquinas de estado finito, implementa tareas varias como separacin de tokens, etiquetado semntico 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 libreras y procesos normalizados por medio de los cuales la arquitectura definida se puede incluir en otras aplicaciones. Una interfaz grfica 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, orientacin a objetos y movilidad del cdigo. 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), ontologas y lxicos. Recursos de Procesamiento (Processing Resources -PRs-) que representan cualquier recurso algortmico o que realice algn procesamiento sobre los recursos de lenguaje como intrpretes, generadores, modeladores, etc. Recursos Visuales (Visual Resources -VRs-) que son los elementos que tienen participacin en la GUI o entorno de desarrollo de GATE y que generalmente son incluidos como aportes de terceras partes al sistema, por ejemplo, la edicin de proyectos al estilo Protg -Programa para la edicin y experimentacin con ontologas-. Gate por lo tanto presenta una interfaz grfica 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 desempeo en el entorno es satisfactorio, la codificacin de tal 'aplicacin' es muy directa porque lo que se hace en el entorno tiene una correspondencia con ciertas sentencias que la replican a nivel de cdigo con el fin de ser incluida como 121

componente adicional de otra aplicacin. Las aplicaciones de GATE consisten en definiciones de procesamientos en varios modelos, por ejemplo ejecucin consecutiva o condicionada de diferentes operaciones representadas por recursos de procesamiento definibles por el usuario, como un separador de tokens (tokenizer), gramticas y marcador con base en gacetas predefinidas (Gazeteer), revisor de ortografa, etc. despus de los cuales los documentos sobre los que se ejecut la aplicacin 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 aplicacin por defecto (ANNIE) sobre ellos para observar las anotaciones realizadas por el sistema y una vez hecho esto implementamos un ejemplo de ANNIE como aplicacin aparte que permite acceder a nivel de cdigo a tales anotaciones. El cdigo del programa se incluye al final de este anexo y consiste en una modificacin a un programa de ejemplo que viene incluido con la plataforma. La observacin ms importante para lograr que el programa corra exitosamente es la necesidad de inclusin de todas las libreras incluidas en GATE bajo la carpeta /lib ya que normalmente GATE usa muchas de ellas hasta en las aplicaciones ms simples y resulta un poco difcil encontrar la clase especfica 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 espaol y elementos del ambiente de ejecucin (entidades locales, sitios reconocidos, etc.). Lo cual dentro de la propuesta de implementacin debera ser sealado por el sistema o deducido naturalmente del uso dado en el sistema completo por medio de algn mtodo probabilstico o de agrupamiento o cooperativamente a travs del uso que la comunidad haga de ellos a manera de Wiki una vez que se tenga maestra en las funcionalidades de GATE a travs de sus diferentes interfaces.

JADE Finalmente JADE es considerado un middleware o interfaz intermediaria que implementa los procedimientos y utilidades necesarias para crear sistemas de agentes conformes con los lineamientos sealados por FIPA. JADE, como plataforma completa que es, consiste tanto en el marco de trabajo, es decir, las libreras que soportan la funcionalidad del sistema de agentes, un ambiente de ejecucin y una interfaz grfica que permite hacer seguimiento a los agentes que en ella se ejecutan.

122

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 comunicacin entre agentes y que permiten la especificacin 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 ejecucin cooperativa de los comportamientos que soporta, es decir, cada comportamiento debe estar escrito de tal manera que la ejecucin de su mtodo principal (Action) termine cada vez que sea llamado y d paso a los dems comportamientos para ejecutar respectivamente su mtodo Action. El control en ste modelo se hace a travs de las variables del Agente como tal y con el uso del mtodo Boolean done() que retira el comportamiento de la pila de comportamientos a ejecutar cuando cierta condicin (especificada por el programador y efectuada en el mtodo Action) se cumple. Deduciblemente un agente puede implementar varios comportamientos en la forma de objetos de la clase Behaviour, de los cuales los ms simples son OneShotBehaviour, CyclicBehaviour y Behaviour; adicionalmente existen mecanismos para combinar estos comportamientos simples en comportamientos ms complejos, stos ltimos comportamientos se implementan a travs de las clases SequentialBehaviour, ParallelBehaviour y FSMBehaviour, es decir, ejecucin secuencial, paralela y en forma de mquina 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 cclicamente 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 estn compuestos por los siguientes campos:

Sender (Origen) Lista de Receivers (Receptores) Performative (Intencin 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 (Ontologa) que especifica la semntica de los smbolos usados en el contenido. Campos de control como conversation-id, reply-with, in-reply-to, reply-by.

Entonces nuestro prototipo consiste en un agente que ejecuta un comportamiento 123

diferido (WakerBehaviour) verificando la lista de archivos en un directorio y apenas aparece un archivo con formato htm le efecta una anotacin a travs de la clase anotador basada en GATE. Cdigo Fuente y resultados A continuacin incluimos el cdigo 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 mtodo esttico pblico main (es decir ejecutable desde lnea de comandos) que efecta una anotacin sobre los documentos que se le pasen como parmetros de ejecucin en lnea de comandos, ste mtodo es usado indirectamente por la siguiente clase que es un agente que ejecuta un comportamiento cclico para revisar cierta carpeta del sistema y efectuar anotaciones sobre los documentos html que no se hayan anotado todava (es decir slo los nuevos documentos html en esta carpeta).

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

Explicacin Este cdigo fuente fue modificado y compilado usando Net Beans 5.0. Como se puede observar en el cdigo fuente, el programa es una clase principal StandAloneAnnie que es ejecutable directamente desde la lnea de comandos que inicializa GATE para ejecutar anotacin sobre los documentos pasados como parmetros en la lnea de comandos, en este caso nosotros usamos este mtodo para llamarlo directamente desde el agente de Jade que es el que finalmente se ejecuta debido a que la plataforma de ejecucin es realmente el contenedor de JADE. Para que compilara y ejecutara efectivamente, fue necesario hacerle unas pequeas modificaciones para que reconociera los archivos de inicializacin de GATE e incluir algunas clases como clases de reconocimiento de patrones que siempre es necesario incluir para que la ejecucin sea exitosa. Adems de stas adiciones, el cdigo fue modificado para permitir cambio en ciertos parmetros de los recursos de procesamiento como los lxicos, gacetas a usar o las reglas gramaticales y de anotacin que se quieren aplicar. Otros parmetros modificables son el tipo de anotaciones que se desea que queden sealados en las pginas resultantes y cmo hacerlo. Una vez que se tiene este cdigo se tiene acceso a las capacidades de GATE para efectuar marcado de los textos y experimentar con el algoritmo de clasificacin como se quiera.

Figura 15 Pgina Web original

La figura 15 muestra el texto principal de una nota informativa de Univirtual tal como se podra ver en Internet. Una vez ejecutada la clase StandAloneAnnie sobre sta, el cdigo fuente de la misma es anotado en lnea y se sealan en rojo las anotaciones que nosotros indicamos en el programa (Persona, Organizacin y 139

Lugar Person, Organization y Location en el programa) mostrando una pista con el tipo de anotacin en azul cuando el cursor esta sobre la palabra sealada como lo muestra la siguiente figura.

Figura 16. Pgina Web anotada, mostrando Location

En el siguiente caso el puntero del ratn se ubica sobre las palabras Cecilia Vlez, correctamente anotada como Persona.

140

Figura 17. Pgina 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 cdigo fuente). El comportamiento es el encargado de llamar al mtodo main de StandAloneAnnie indicandole los archivos que existen en la carpeta bajo vigilancia como si fueran parmetros de la lnea de comandos. A partir de esto se pueden hacer muchas cosas, por ejemplo que la clase de anotacin sea realmente otro agente y que tambin exista un agente que se entienda con las bases de datos a usar, eso slo lo dira la etapa de diseo detallado de Tropos o de la metodologa seleccionada para el diseo. La ejecucin del agente se realiz a travs del siguiente comando de lnea 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-regexp1.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\jaspercompiler-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\l ib\jadeTools.jar" jade.Boot -gui cace:anotador.Agente 141

En esencia el comando no es tan complejo: java classpath <carpetas y archivos .jar del programa, Gate y Jade> jade.Boot agente:clase(parmetros) [-gui] donde los ltimos parmetros, 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 parntesis el directorio del que se desea anotar las pginas Web que contenga (en nuestro caso no hay verificacin de la sintaxis). Finalmente, el interruptor gui indica a Jade que ejecute el modo grfico.

Figura 18. Ejecucin del agente de prueba.

Como vemos en la figura anterior, despus 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 grfica de Jade, que no es necesaria, pero que 142

permite realizar operaciones de experimentacin, depuracin y prueba de las capacidades de los agentes. Finalmente mostramos la consola de ejecucin del programa en la siguiente figura:

143

144

Figura 19. Registro de la ejecucin del agente de prueba

Como vemos el programa muestra algunas indicaciones antes durante y despus de la ejecucin de la aplicacin 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 ejecucin del comportamiento

145

Anexo C. Notas del CD El CD que acompaa 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 documentacin tanto de las utilidades como del marco terico que se mencionan. El instalador ejecuta cada archivo necesario para instalar las utilidades JADE y GATE en su orden. Tambin pregunta si se desea instalar Protg que es la herramienta de preferencia para disear y experimentar ontologas pero que no fue usada en la construccin del prototipo. Descripcin del contenido:

Instaladores: Archivos de instalacin del jdk1.5.0 con NetBeans 5.0, GATE 3.0, JADE 3.1 y Protg 3.2 Beta. Documentacin: Conjunto de archivos en los cuales nos basamos para desarrollar el tema del proyecto. Los documentos en la raz de esta carpeta son los documentos que fueron citados en alguna parte de ste proyecto y las subcarpetas son artculos 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.

146

You might also like