miércoles, 25 de marzo de 2009

Agentes Semánticos

Un agente es todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o actúa en tal ambiente por medio de efectores. Los agentes humanos tienen ojos, oídos y otros órganos que le sirven de sensores, así como manos, piernas, boca y otras partes de su cuerpo que le sirven de efectores. En el caso de agentes robóticos, los sensores son sustituidos por cámaras infrarrojas y los efectores son reemplazados mediante motores. En el caso de un agente de software, sus percepciones y acciones vienen a ser una cadena de bits codificados. En este contexto, un agente inteligente es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado. En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, de tender a maximizar un resultado esperado. Este concepto de racionalidad es más general y por ello más adecuado que inteligencia, la cual sugiere entendimiento, para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en llamarlos agentes racionales. Un agente inteligente puede ser una entidad física o virtual. Si bien el término agente racional se refiere a agentes artificiales en el campo de la inteligencia artificial, también puede considerarse agentes racionales a los animales incluido el hombre.

De esta manera se considera que un agente racional es aquel que hace lo correcto, lo correcto se afirma cuando el agente alcanza el mejor desempeño. El agente racional puede medir su propio desempeño, a modo de autoevaluación, pero es una tarea no recomendable. El término “medición del desempeño” se aplica al cómo es el criterio que sirve para definir qué tan exitoso ha sido un agente. Desde luego que no existe una medida fija que se pueda aplicar por igual a todos los agentes porque sus respuestas van a ser subjetivas, entonces una verdadera medición de desempeño la pueden realizar observadores externos. En este punto es menester señalar que no se debe confundir omnisciencia con racionalidad. Un agente omnisciente es aquel que sabe el resultado real que producirán sus acciones, y su conducta es congruente con ello.

En general, se acepta que un agente es cualquier sistema capaz de percibir cambios en su entorno, de representar de algún modo la información sobre el estado actual de sus objetivos y de actuar sobre su entorno basándose en éstos y en experiencias pasadas. Cuando se consideran entornos virtuales, entre los cuales se considera a la Web, los intranets, etc., se habla de agentes del software; en entornos físicos, los agentes pueden ser animales, personas, robots o autómatas. El término “agente” describe una abstracción del software, una idea o concepto, similar a los métodos, funciones y objetos en la programación orientada a objetos. El concepto de agente proporciona una forma conveniente y poderosa de describir una compleja entidad de software, que es capaz de actuar con cierto grado de autonomía, para cumplir tareas en representación de las personas. Pero a diferencia de los objetos, que son definidos por métodos y atributos, un agente es definido por su propio comportamiento. Varios autores han propuesto diferentes definiciones de agentes, estos incluyen generalmente conceptos como: (1) Persistencia. El código no es ejecutado bajo demanda sino que se ejecuta continuamente y decide por sí mismo cuándo debería llevar a cabo alguna actividad. (2) Autonomía. Los agentes tienen la capacidad de seleccionar tareas, priorizarlas, tomar decisiones sin intervención humana. (3) Capacidad o habilidad social. Los agentes son capaces de tomar otros componentes, a través de la coordinación y comunicación, tales que puedan colaborar en una tarea. (4) Reactividad. Los agentes perciben el contexto en el cual operan y reaccionan a éste apropiadamente.

En el dinámico mundo de la Web, el lenguaje de marcado constituía desde el principio una herramienta destinada no solamente para la presentación de documentos, de hecho, esa fue una consecuencia desafortunada de su popularidad; este lenguaje buscaba ser un útil para la representación de contenidos. Con el tiempo el creador de la Web Tim Berners-Lee junto con otros autores desarrollaron una idea nueva mucho más flexible y desde cierto punto de vista más simple que la Web tradicional, ésta idea fue la Web semántica. La idea fundamental de la Web semántica fue avanzar más sobre la idea original de representar la estructura de un documento pero de paso corregir algunos de los problemas que surgieron durante la transformación por uso del lenguaje de marcado. La Web semántica recupera la capacidad de los lenguajes de marcado para establecer elementos claros, bloques de elementos y relaciones entre componentes de un objeto tanto en su sintaxis como en su semántica, es decir, en el significado y relaciones de significado de los mismos. Esta propuesta establece una serie de capas tales que, como todos los esquemas en capas, cada uno aporta una funcionalidad estrictamente definida para un objetivo final. La Web semántica se propone entonces como pila de capas a saber: codificación e identificación, sintaxis, representación de información, ontología, reglas lógicas, prueba y confianza. Existen múltiples representaciones de esta pila, pero todas tienen las capas mencionadas y sus significados son los mismos con alguna que otra variante que incluye una o dos capas más. Por encima de las capas de codificación e identificación y paralelamente a las otras capas hay un último elemento de seguridad que suele estar compuesto por encriptación y firma digital. La visión de la Web semántica permite un mayor grado de expresividad en las aplicaciones Web, ya que en estas aplicaciones no solo se codifican datos, si no que también se introduce conocimiento. Este conocimiento adicional proporciona información extra que seguramente no es útil al que navega por la aplicación, pero si que resulta bastante útil para que las computadoras sean capaces de extraer conocimiento de una forma más simple y estandarizada, por tanto mejorando ampliamente los resultados de la búsqueda en la Web.

La Web semántica busca darle a las computadoras la flexibilidad necesaria para que las aplicaciones tengan cierta capacidad de deducción sobre lo que están transportando y para garantizar que los orígenes de los contenidos y los contenidos mismos sean confiables, validando tanto la autenticidad de las fuentes como la veracidad de parte de los contenidos. Esta propuesta no busca de ninguna manera crear un marco lógico único, sino ser suficientemente flexible como para representar todas las lógicas y preferencias humanas posibles y permitir que los humanos validen que los orígenes y contenidos se adaptan a lo que ellos prefieren. Por encima de esta infraestructura se espera que existan aplicaciones casi inteligentes, que conozcan mucho acerca de sus usuarios y sean capaces de proponerle opciones una vez que están en conocimiento de los temas de preferencia y de lo que Internet tiene para ofrecer teniendo estas preferencias alineadas con los datos personales importantes de la persona, como la fecha de cumpleaños, enfermedades que sufra o citas que tenga planificadas.

Los agentes semánticos son agentes que usan tecnologías de la Web semántica para cumplir sus objetivos. Debido a que todavía no existe una Web semántica, no hay agentes semánticos que puedan aprovechar sus posibilidades. Existen, sin embargo, agentes semánticos que operan sobre dominios muy específicos; y también hay algunos agentes semánticos que actúan como buscadores de información o como asistentes personales. Por ejemplo, el navegador “Amblit” incluye un asistente denominado “agente personal inteligente” al que se le puede enseñar lo qué desea el usuario y cuándo lo desea. Este agente admite preguntas, en el supuesto caso de un dominio local, como las siguientes: ¿Cuál es la cotización de ENTEL? ¿Qué tiempo hará en Santa Cruz la próxima semana? ¿Cuál es el número de teléfono de Ana Maura Pacheco? También se le pueden dar órdenes del tipo “Búscame un mapa de Bolivia” o “Averigua dónde puedo encontrar la película ‘Inteligencia Artificial’ de Spielberg”. Para entender miles de sentencias en lenguaje natural, el agente semántico de Amblit se apoya en una ontología y en un software de comprensión del lenguaje natural. Este software “traduce” las preguntas u ordenes en texto libre a conceptos de la ontología.

Los agentes del software serán parte de la Web semántica, pero no estarán restringidos a ella. Cada vez se usan más en aplicaciones de todo tipo: comercio electrónico, sistemas de telecomunicaciones, control de procesos industriales, búsqueda de información, control del tráfico aéreo, reingeniería de procesos, gestión de agendas, organización de correos electrónicos, etc. Puede que en el futuro no exista la Web semántica o que sólo se desarrollen “islotes” semánticos. Sea como fuere, los agentes se encuentran presentes en el mundo de las nuevas tecnologías para quedarse.

Guillermo Choque Aspiazu
Diciembre 8 de 2008

No hay comentarios: