miércoles, 30 de mayo de 2007

Varios ejemplos de aplicaciones

Hakia
Hakia es un ejemplo de buscador. Este proyecto está siendo desarrollado por un equipo multinacional con sede en Nueva York. El objetivo es que el buscador entienda la cuestión que se le plantea. Es decir, a diferencia de Google, donde las consultas se basa en palabras clave, el objetivo de Hakia es responder a preguntas como: ¿cuál es el tiempo previsto en Ourense para mañana? y me responda con una serie de enlaces que responden (o ayudan a responder) a esa pregunta.



INFOGENMED

El objetivo del sistema INFOGENMED es facilitar la recuperación homogénea de información, a través de Internet, proporcionando un acceso unificado a múltiples y diversas bases de datos relacionales remotas ya existentes.

La investigación desarrollada parte de la idea de que un conjunto de bases de datos heterogéneas forma un espacio de información único.

La arquitectura del sistema trata de facilitar al usuario el acceso a toda la información disponible, a la que se tiene acceso a través de las bases de datos registradas en el sistema, de forma intuitiva y directa.

El sistema pretende, por un lado, permitir la integración de diferentes esquemas lógicos de bases de datos relacionales, y por otro, establecer una arquitectura distribuida estándar, no condicionada a productos propietarios, que facilite la conexión de cualquier base de datos.

Como infraestructura tecnológica se propone el uso de agentes inteligentes, que dan al sistema mayor flexibilidad y eficiencia, facilitando las tareas de integración y búsquedas.


JITIK

El sistema JITIK (Just-in-Time Information and Knowledge) es un sistema basado en tecnologías de Internet y de agentes inteligentes, orientado a hacer más efectivo el flujo de información y conocimiento de las organizaciones.

Contribuye integrando las diversas fuentes y destinatarios de la información para hacer llegar información altamente personalizada a los diversos integrantes de la organización.

JITIK se incorpora como un middleware que interactúa con los sistemas existentes en la organización para obtener la información de diversas fuentes, la procesa a fin de reconocer los perfiles de usuario más relevantes para la nueva información y la distribuye a través de diversos medios (correo electrónico, SMS, Web), según las preferencias del usuario.

Hasta el momento, el proyecto ha sido desarrollado por la Cátedra de Investigación en Tecnologías de Información “Tecnologías de Conocimientos Distribuidos y Agentes Inteligentes”, dirigida por el Dr. Ramón F. Brena, profesor del Centro de Sistemas Inteligentes, así como de estudiantes de posgrado a través del desarrollo de tesis relacionadas con el sistema. El proyecto ha sido utilizado en prototipos de aplicaciones para el Campus Monterrey y se está estudiando su implementación en empresas internacionales como CEMEX.


domingo, 27 de mayo de 2007

Ontologías y agentes en la web.

Actualmente, buscar información que nos pueda resultar útil sobre algún tema en la web puede resultar complicado y tedioso. El motivo es la cantidad de información mal estructurada que puebla la red debido al uso de html, un lenguaje más de maquetación que de definición de contenido.
Por esto actualmente se está apoyando el uso de XML que nos permitiría definir ontologías del tema o temas que trata nuestro sitio web. Así, con una web donde se haya codificado el significado de la información, será posible diseñar agentes que busquen y entreguen información más relevante para el usuario.
Esto es una aproximación a la llamada Web Semántica, en la que tendrán más importancia en la búsqueda de información los significados de los conceptos que las meras palabras o etiquetas que suelen usar los buscadores.
A los agentes que aprovechan las tecnologías de la web semántica como las ontologías se les suele denominar también agentes semánticos. Debido a que todavía no existe una web semántica general, los agentes semánticos no se pueden aprovechar aún en la web, pero sí en algunas intranets corporativas o como buscadores de información o asistentes personales como el que usa el navegador Amblit Navigator, al que se le puede enseñar que desea el usuario y cuando lo desea.



















Este agente permite preguntas y órdenes en lenguaje natural, apoyándose en una ontología y un software que traduce las frases en texto libre a conceptos de la ontología.

viernes, 25 de mayo de 2007

Proyectos llevados a cabo con ontologías y agentes.

El potencial de las ontologías en todos los campos de aplicación de los agentes software es evidente, por lo que el descubrimiento de información en Internet, con los problemas que plantea no podría ser una excepción.

Los principales roles que pueden desempeñar las ontologías son:

  • Como repositorios para la organización de conocimientos e información, tanto de tipo corporativo como científico.
  • Como herramienta para la adquisición de información, en situaciones en la que un equipo de trabajo la utiliza como soporte común para la organización del dominio.
  • Como herramienta de referencia en la construcción de sistemas basados en el conocimiento, ya que la utilización consistente de los términos que supone es básica en la ingeniería del conocimiento.
  • Para permitir la reutilización del conocimiento ya existente, en la creación de nuevas aplicaciones.
  • Como base para la construcción de lenguajes de representación del conocimiento, acompañada de la formalización del cálculo que tenga lugar entre los términos.
Han sido numerosos los proyectos y experiencias que se han desarrollado en Internet, utilizando ontologías, o lo están siendo en este momento.

Uno de los más conocidos de estos proyectos es el servidor Ontolingua, fruto del KSE, que ofrece las herramientas necesarias para crear ontologías, integrarlas con otras ya existentes e incorporarlas en nuevos proyectos.

Otro enfoque diferente es el aportado por Luke, Spector y Rager (1996), que han desarrollado SHOE (Simple HTML Ontology Extensions), que es un complemento semántico a HTML, el cual refleja el contenido de la página web, y que puede ser utilizado por agentes para el descubrimiento de información. Posteriormente, SHOE ha evolucionado hacia RDF y CG, siendo más reciente la especificación OML (Ontology Markup Language).

Otro proyecto fue el llevado a cabo por Gerry M. Kierman, con el nombre de CyberStacks. Se pretendía ofrecer al usuario un listado de recursos de información en internet, organizados según una clasificación, subclases y descripciones particulares. Sin embargo, por el momento no ha integrado completamente ontologías en su servidor, y tampoco dispone de agentes capaces de aprovechar esas ontologías.

En el ámbito de la medicina, cuya necesidad de normalización y rigor semántico es crucial, debe destacarse el proyecto UMLS (Unified Medical Language System) desarrollado por la National Library of Medicine, que utiliza las ontologías como una herramienta más para la recuperación y acceso a la información biomédica.

Actualmente en AgentCities, existe un grupo de trabajo centrado en el desarrollo de Ontologías. Nuestros compañeros del grupo LIMIA nos explican en su blog un poco más de este proyecto.

También se están llevando a cabo otros proyectos como el Knowledge Sifter, que es un sistema escalable basado en agentes que permite el acceso a fuentes de información heterogéneas como pueden ser la Web, repositorios open-source, bases de datos XML y la emergente web semántica, de la cual podemos encontrar más información en el blog de nuestros compañeros del grupo LONIA.

Referencias : Agentes y ontologías para el tratamiento de información. Dr. Jesús Tramullas.

viernes, 11 de mayo de 2007

Cómo hace JADE para codificar y decodificar mensajes ACL creados a partir de una ontología.

Una vez definidas las clases que representan la ontología del dominio del problema, éstas pueden ser usadas para intercambiar mensajes entre agentes; siempre y cuando ambos utilicen la misma ontología.
Dado que los agentes se comunican mediante ACL Messages, estándar FIPA para el intercambio de mensajes entre agentes, JADE tiene que proporcionar un mecanismo que dé soporte a las ontologías para realizar la transformación entre mensajes ACL y objetos Java de fácil manipulación (nuestra ontología), y viceversa.
El siguiente gráfico muestra dicho mecanismo de soporte (JADE support for content languages and ontologies). Este mecanismo proporcionado por JADE utiliza un lenguaje de contenido (Content Language. Jade proporciona dos codecs para dos lenguajes de contenido diferentes: Lenguaje SL y Lenguaje LEAP. Éstos están disponibles en el paquete jade.content) encargado de realizar la traducción a un string según las reglas sintácticas del lenguaje, y por otro lado una ontología que realiza la validación semántica del mensaje.

En posteriores entradas se hablará más en detalle sobre los lenguajes de contenido y sobre la utilización de éstos y las ontologías, aunque se puede encontrar información detallada y ejemplos prácticos en el trabajo sobre JADE realizado en 2007 por los alumnos de la asignatura "Sistemas Multiagente" impartida por el profesor Pedro Cuesta Morales de la Escuela Superior de Ingeniería Informática de la Universidad de Vigo.

viernes, 4 de mayo de 2007

Porqué usar ontologías

Existen muchos motivos por los cuales es útil y conveniente usar ontologías. En el caso concreto de JADE, los principales motivos son los siguientes:

(Información obtenida del trabajo sobre JADE realizado en 2007 por el 5º curso de la Escuela Superior de Ingeniería Informática de la Universidad de Vigo)

  • Se buscaba uno de los principales objetivos de las ontologías, compartir el conocimiento de la estructura de la información entre los agentes. Supongamos que un grupo de sitios webs contienen información médica o proporcionan servicios médicos. Si estos sitios compartieran y publicaran la misma ontología subyacente, los agentes podrían acceder y agregar esta información para responder a preguntas y servir de datos a otras aplicaciones.
  • Otra razón importante ha sido la ventaja que ofrece la reutilización del conocimiento del dominio. Por ejemplo, muchos modelos de dominio necesitan representar la noción de tiempo. Esta representación incluye las nociones de intervalo de tiempo, puntos del tiempo,… Si un grupo de investigadores desarrollara una ontología detallada sobre esto, otros desarrolladores podrían reutilizarla en su beneficio dentro de su dominio. Esta característica permite la creación de una ontología grande integrando otras ontologías existentes.
  • La creación de un estructura explicita para nuestro dominio de aplicación facilita enormemente la adaptación a cambios en nuestro dominio. A parte de esto, estas especificaciones explícitas son útiles para los nuevos usuarios que deban aprender que significan los términos del dominio que se usa.
Uno de los principales objetivos de las ontologías es facilitar la comunicación de tal forma que dos entidades diferentes se entiendan entre si y asegurarse que hablan dentro del mismo contexto. Si no se utilizaran ontologías que aseguren el entendimiento sucedería algo como esto.