• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Tuesday, 09 Mar 2010 16:01

En este último artículo sobre Hakia se profundiza en las ventajas de red de Google frente a Hakia y se trata la innovadora herramienta de Hakia para la publicidad web (CONTEXTA). También se expone la utilidad de Hakia, y en general de cualquier buscador semántico, para evitar el tráfico oportunista que muchas páginas web consiguen usando palabras equívocas.

Desde un punto de vista técnico, los expertos distinguen entre ventajas de red directas e indirectas. Sin entrar en detalles, diré que las primeras corresponden a situaciones en que el valor de un bien o servicio se incrementa inmediatamente cuando crece el número de nodos con los que puede comunicarse, como sucede con el caso del correo electrónico o del estándar XML (elimina los problemas de interoperabilidad sintáctica en el intercambio de documentos). Otro ejemplo de ventaja de red directa está asociada al servicio de anuncios contextuales AdSense de Google, que emplea la tecnología del buscador para saber qué anuncios son relevantes para un sitio web de pequeño tamaño y publicarlos. A medida que AdSense ha ido atrayendo anunciantes, se ha vuelto más valioso para más sitios web, que se han suscrito al servicio, y ha atraído más anunciantes. Y así sucesivamente…

Las ventajas indirectas de red son efectos secundarios positivos de que muchas personas empleen un mismo bien o servicio; pueden corresponder a efectos en los que interviene el mercado o la existencia de bienes o servicios complementarios.

Algunos ejemplos de estas últimas ventajas son las economías de escala (a medida que se incrementa el número de usuarios de una red se reduce el precio del producto o servicio), el aprendizaje de los usuarios (si los usuarios expertos de una red comparten su conocimiento con los nuevos usuarios la red se expandirá rápidamente) o su reticencia a cambiar por otros los bienes o servicios con los que se han familiarizado. En el caso del software, las ventajas indirectas de red hacen que el número de usuarios de un sistema operativo determine que los fabricantes de hardware saquen o no al mercado dispositivos compatibles con él (servicios complementarios); del mismo modo, las empresas de programación desarrollan aplicaciones que funcionan en los sistemas operativos más populares. En el caso de las consolas de videojuegos, los ventajas indirectas de red ocasionan que las más populares tengan disponible un mayor número de juegos (servicios complementarios), así como un mayor número de revistas y sitios web dedicados a ellos (aprendizaje de los usuarios)

El buscador Google tiene como principales ventajas de red el gran número de usuarios (que hace, por ejemplo, que muchas empresas se anuncien en él y, por tanto, que atraiga a más usuarios), la capacidad de aprendizaje de éstos (unida a su inercia, que hace difícil que cambien a otros buscadores) y el valor de una marca muy conocida y bien valorada, tanto en el círculo de los usuarios como en los mercados financieros. En los últimos años, el valor de la marca de Google ha superado al de empresas como General Electric, Microsoft, Coca-Cola, IBM o Marlboro (las quiebras y los rescates estatales no son buenos para las marcas: por eso el valor de las marcas de los bancos estadounidenses y británicos ha caído en picado y no las considero). Este valor percibido de la marca Google acarrea que los medios de comunicación informen de sus novedades, que sus usuarios sean leales a la marca y que muchos de ellos adopten cualquier herramienta que saque al mercado (Gmail, Google Maps, teléfonos móviles, etc.). De hecho, esas herramientas han sido posibles por las ventajas de red indirectas del buscador.

Con todo, Hakia sí puede competir con Google en cuanto a calidad de los resultados, y dicha calidad resulta muy importante para los usuarios: cuando Google comenzó apenas proporcionaba más de unos cientos de resultados para búsquedas que hoy devolverían millones o cientos de miles y Yahoo! era prácticamente sinónimo de buscador. Áquél ganó la batalla a éste dando resultados más precisos y rápidos en las búsquedas; es decir, siendo el mejor en lo que querían los usuarios: ¿de qué sirve tener una interfaz gráfica muy conseguida o un maravilloso servicio de atención al cliente, si lo que quieren los consumidores del servicio es velocidad en las búsquedas? Google emplea un enfoque horizontal; intenta estar en todos los sectores, como si mediante el sabelotodo rectángulo blanco horizontal bajo seis letras de colores llamativos pudiera accederse a toda la información del mundo. Este enfoque puede coexistir perfectamente con buscadores especializados en sectores concretos y que proporcionen respuestas precisas y fiables, como hace Hakia en el campo de la salud (http://health.hakia.com/).

La clave para que un buscador sea rentable a largo plazo es la publicidad. La inclusión de enlaces patrocionados en los resultados de Google, ha hecho que la compañía gane miles de millones de dólares. Un buscador semántico como Hakia puede hacer que la publicidad mostrada al usuario se adecue más a la que puede interesarle. La empresa Hakia ya está cambiando la publicidad web con herramientas comerciales como CONTEXTA, que permite analizar páginas web y obtener palabras claves que representan el significado de la página con sus correspondientes puntuaciones.

Si CONTEXTA conquista un nicho significativo del mercado publicitario, basar el posicionamiento web en buscadores que usan palabras clave como Google o Yahoo! estará en poco tiempo tan obsoleto como medir audiencias de televisores en blanco y negro. Por el momento, el popular blog ReadWriteWeb utiliza CONTEXTA configurado de manera que compara sobre la marcha el contenido semántico de cada post con los criterios establecidos por los patrocinadores, con el objetivo de mostrar anuncios relevantes para los lectores. Los patrocinadores de ReadWriteWeb han proporcionado previamente algunas frases que definen sus productos o servicios.

Las tres capas de CONTEXTA. Mediante ellas, un artículo sobre la literatura beat puede relacionarse con anuncios de literatura.


Además, Hakia puede reducir el tráfico oportunista que muchas páginas consiguen insertando textos que en realidad no tienen nada que ver con el contenido de las páginas, y muchos usuarios y organizaciones estarían dispuestos a pagar por un buscador que les evite perder su tiempo y que garantice que sus resultados son fiables. Por ejemplo, en http://www.pauklein.com/experimento-captar-trafico-oportunista/ se puede ver un interesante ejemplo, debidamente cuantificado, sobre el tráfico oportunista a través de Google que se genera al incluir en un blog de marketing la letra y el nombre de una canción de Billie The Vision And The Dancers tan pegadiza como efímeramente popular en España.

Este tráfico existe solamente porque Google es un buscador convencional basado en palabras clave, no un buscador semántico, y cualquiera puede engañarlo incluyendo en su página web palabras que estén de moda o sean populares. Si Hakia estuviera ya disponible en español, detectaría que las palabras como "Estrella", "Damm", "Formentera" o "Mediterráneamente" no guardan ninguna relación de semejanza con los conceptos designados por términos como "marketing online" o "posicionamiento en internet", y por lo tanto no mostaría el post "Anuncio Estrella Damm Formentera 2009 Mediterráneamente" cuando alguien buscara información sobre marketing (consideraría que el sitio web donde se encuentra es de poca fiabilidad) o le asignaría una posición muy baja en la lista de resultados.

Este experimento no funcionaría con un buscador semántico.


A los usuarios nos interesa que buscadores como Hakia o Bing compitan con Google. Cuando una compañía domina un mercado, la necesidad de inversión en mejorar sus productos disminuye o desaparece, y los usuarios se encuentran con productos fosilizados o con prácticas comerciales leoninas. Algunas empresas parecen pensar "¿Para qué tratar bien al cliente, si estamos solos en el mercado y nadie puede ni siquiera arañar nuestra cuota de mercado?" o, más crudamente, "Pague y calle: no hay nadie más que pueda ayudarle".

En mi opinión, nos hemos acostumbrado a tratar los buscadores como si fueran máquinas de refrescos: se introducen unas palabras clave, se pulsa un botón y se recogen los resultados (con la salvedad de que a veces uno pide una lata de Coca-Cola y obtiene una botella de Don Perignon; y otras veces, un vaso de agua fétida y aherrumbrada). En realidad, deberíamos considerarlos bibliotecarios especializados a los que convendría formular preguntas detalladas y precisas. Un ejemplo: si uno introduce las frases "En este mundo vil, nada es gratuito. Todo se expía: el bien, como el mal, se paga tarde o temprano. El bien mucho más caro, lógicamente" en un buscador, debería obtener resultados que informaran sobre la biografía de su autor, sobre su obra, sobre el estilo renqueante de su prosa, sobre su influencia en otros escritores, etc. Actualmente, lo que uno obtiene en Google son unos 5.400 resultados, de los cuales solamente unos 10 guardan relación con el autor, y sólo 3 informan sobre éste, de manera muy incompleta y sin dar fuentes reconocidas o de prestigio.

Hakia es por ahora un escaparate de lo que el futuro nos deparará en cuanto a búsquedas semánticas. Un precioso escaparate, dicho sea de paso.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Thursday, 21 Jan 2010 09:53
En este artículo y en el próximo se analizan las limitaciones actuales de Hakia y se compara este buscador semántico con Google, teniendo en cuenta tanto las ventajas competitivas y de red de éste como los beneficios que Hakia aporta a usuarios y anunciantes (especialización, fiabilidad de los resultados, mayor adecuación de los anuncios a los usuarios). La empresa Hakia ya ha desarrollado con la tecnología de su buscador una herramienta (CONTEXTA) que está modificando la publicidad web.

Pese a las innovadores tecnologías que incorpora el buscador semántico Hakia, es todavía incapaz de responder a preguntas complejas o que exijan inferencias. Consultas como "¿Qué físico estadounidense trabajó en el proyecto Manhattan, en la electrodinámica cuántica y en la física de partículas?", "¿Cuántos políticos españoles fueron acusados de corrupción entre 1990 y 1995?", "¿Qué pensador italiano fue acusado de actuar en connivencia con un demonio que habitaba en el espacio bajo sus uñas?" o "¿Qué actor trabajó en las películas Novecento y Uno de los nuestros?" quedarán sin respuesta. Otra limitación de Hakia es que todavía no cubre toda la web, porque el proceso de indexar mediante QDEX los recursos de la web es lento. Piénsese, vaya por caso, que hasta ahora Powerset (a href="http://www.powerset.com" hreflang="es">http://www.powerset.com) ha indexado solamente los contenidos de la Wikipedia, que en general poseen una estructura bien definida.

Peter Norvig, director de investigación de Google y coautor del clásico libro Artificial Intelligence: A Modern Approach ( http://aima.cs.berkeley.edu/) es escéptico con respecto a la rapidez de los algoritmos semánticos. Como explica en una entrevista en Forbes, en su tesis doctoral en 1978 intentó desarrollar un algoritmo semántico para analizar textos, que tardaba dos semanas en analizar cada sentencia de texto. "El resultado era una especie de oso bailarín —afirma—. Era sorprendente que pudiera danzar, pero no esperábamos que fuera una estrella en el ballet de Moscú." Google se ha centrado en combinar varias técnicas de búsqueda y en aprender de todas. No sin razón, Hal R. Varian, economista en jefe de Google, afirmó una vez: "La fuente de la ventaja competitiva de Google es aprender haciendo". De todos modos, Norvig reconoce que el enfoque pragmático de Google, basado en seguir muchas líneas de investigación para mejorar las búsquedas, debe prestar especial atención a las tecnologías semánticas: "Es improbable [que Google sea vulnerable a empresas que se arriesguen a construir desde cero búsquedas basadas en el significado]. Pero hasta las empresas de automóviles tienen que preocuparse por las máquinas antigravedad".

El último comentario no debería pasar desapercibido, pues la empresa Google tiene algunas patentes concedidas o en trámite relacionadas con búsquedas semánticas, como la patentes estadounidense 7636714 (Determining query term synonyms within query context) y 7249121 (Identification of semantic units from within a search query). Google no olvida que su buscador constituye la prueba viviente de que en Internet llegar el primero no garantiza nada, como sucedió con la energía eléctrica o el ferrocarril: rara vez los pioneros de una tecnología alcanzan la lejana tierra de los negocios de éxito. Tampoco olvida que lo que hizo en su momento a buscadores mucho más populares puede ocurrirle también su principal servicio.

Algunos críticos afirman que es un error que Hakia tenga como objetivo cubrir la mayor parte de información fiable de la web es un error. Según ellos, sería mucho mejor centrarse en dominios específicos (medicina, lingüística, física, matémática, etc.) como hace Wolfram|Alpha (http://www.wolframalpha.com/). En mi opinión, esa crítica no es válida: aunque el objetivo final de Hakia sea cubrir gran parte de la web, el buscador, como se basa internamente en una ontología, está ya de por sí restringido a dominios específicos. Considero que emplear ontologías —que siempre recogen información sobre dominios específicos, no generales— no constituye una desventaja de los buscadores semánticos. (Para saber más sobre ontologías, puede consultar el documento http://www.javahispano.org/tutorials.item.action?id=55 o bien el artículo http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven.). Antes al contrario: es la especialización de estos buscadores lo que desean los usuarios. Nadie quiere revisar decenas o cientos de resultado de Google (señor Googlebot: ya sabe, lo dicho en los dos artículos anteriores) para descubrir que las páginas que le interesan son tres o cuatro.

Las limitaciones de Hakia no deben ocultarnos que juega al juego más difícil: construir dinámicamente estructuras de datos semánticos para toda la web y luego realizar consultas en lenguaje natural sobre ellas. Por ahora, las búsquedas en Hakia suelen dar resultados más relevantes que las de otros buscadores, pero la diferencia no es excesiva. A medida que las ontologías de OntoSem crezcan, que se vayan indexando con QDEX más recursos de la web y que se mejore la inferencia automática, podremos ver las verdaderas posibilidades de Hakia.

Competir con Google resulta una tarea muy dura: este buscador registra más de 8.000 millones de páginas y tiene miles de servidores por todo el planeta. La gran infraestructura de Google le proporciona una gran ventaja competitiva frente a sus competidores, pues la barrera de entrada para los competidores es muy alta: compra e instalación de los servidores, mantenimiento, instalación de sistemas de refrigeración, coste de la energía consumida… No sorprende, en consecuencia, que Google tenga gran parte de sus servidores en países o estados con tarifas eléctricas bajas ni que haya solicitado permiso a las autoridades de Estados Unidos para comprar y vender energía por medio de Google Energy (enero de 2009).

Además, Google también presenta otro obstáculo para sus competidores: las ventajas de red. Una ventaja de red o externalidad de red es el efecto positivo que el consumidor de un servicio o bien causa en el valor del producto para otras personas. En otras palabras: se habla de una ventaja de red cuando cada nuevo usuario incrementa la utilidad o valor de un producto o servicio a medida que aumenta el número de usuarios que lo utilizan. Por tanto, cualquier ventaja de red hace que el valor de un producto o servicio para un usuario no dependa únicamente de sí mismo (de su calidad técnica o de su aspecto, vaya por caso), sino también del tamaño de la comunidad de usuarios del bien o servicio.

Por ejemplo, los teléfonos y los aparatos de fax se volvieron más útiles, y por consiguiente más valiosos, a medida que aumentaba el número de usuarios: con pocos usuarios, no resultaban muy útiles (uno no podía comunicarse con mucha gente), pero la situación cambió cuando su uso se popularizó. Cuantos más miembros pertenecían a la red de usuarios del teléfono, más valor tenía para un no miembro sumarse a ella. Algunas de las primeras empresas de telefonía móvil o celular regalaban teléfonos a sus nuevos usuarios porque sabían que sólo ofertas aparentemente tan poco rentables como ésa acabarían generando ventajas de red para sus dispositivos.

Actualmente, los coches eléctricos no se benefician de ventajas de red: no existe una infraestructura de estaciones de recarga de las baterías y los usuarios tienen problemas para cambiar una batería agotada por otra recargada. Sin embargo, a medida que aumente el número de usuarios de estos coches, surgirán estaciones de recarga por todas partes, y el usuario podrá recargar en muchos sitios distintos. Este hecho hará que más gente se sienta atraída por los vehículos eléctricos, y aún volverá más atractiva su compra. Podemos ver claramente las ventajas de red en el mundo del software: MS-DOS, Windows y Office se volvieron más valiosos y más valorados por lo usuarios a medida que aumentaba el número de éstos. Además, el conocimiento adquirido por sus usuarios disminuye la posibilidad de que cambien a otros sistemas operativos o aplicaciones, porque tal cosa exigiría costes y esfuerzos adicionales.

Lo mismo sucede con el teclado QWERTY, patentando en 1860 y creado para disminuir el número de pulsaciones de los usuarios (cuando algunas combinaciones de teclas se pulsaban demasiado rápidamente, chocaban y la máquina de escribir se atacaba). La ventaja de red de este teclado —decenas de millones de personas han invertido tiempo o dinero, o ambas cosas, en aprenderlo— ha hecho imposible que otros teclados mucho más ergonómicos y eficaces en cuanto a velocidad, como el teclado simplificado Dvorak, hayan triunfado en el mercado: la gente no quiere renunciar a sus conocimientos del teclado QWERTY y empezar de cero con otros, aun cuando sean mejores desde un punto de visto objetivo. Si una tecnología de hace 150 años sigue vigente, y posiblemente continuará así durante mucho tiempo, es porque sus ventajas de red han vencido a su ineficacia.

En el ámbito cultural, también hay equivalentes del teclado QWERTY. La ortografía del español apenas ha variado en los dos últimos siglos porque su popularización mediante instituciones como la RAE y mediante el sistema educativo le ha conferido una ventaja de red que hace que muchos lingüistas y hablantes se opongan a una nueva ortografía o a modificaciones sustanciales de la actual. Aunque se han propuesto y se proponen muchas ortografías más racionales —más fonéticas; es decir, una en que los los grafemas escritos correspondan a los fonemas de la lengua—, ninguna ha prosperado. Por así decirlo, la ventaja de red de la ortografía actual ha aplastado toda innovación en ella, y no resulta probable que leamos "En ún lugár de La Máncha de cuyo nónbre nó ciéro acordárme, nó á múcho tiénpo ce bibía ún idálgo de los de lánza en astilléro, adárga antígua, rrozín fláco i gálgo corrédor”, de Migél de Zerbántes i Saabédra. En el francés y el inglés ocurre el mismo fenómeno, si bien son lenguas con un desajuste mucho mayor entre la ortografía y la fonética (hay grafemas en francés que seguramente fueron pronunciadas por última vez por algún centurión romano).

(A veces, confiar demasiado en las ventajas de red pueden llevar a resultados funestos o tragicómicos. Por ejemplo, muchas empresas punto com creyeron que era decisivo para su supervivencia crecer como fuera para asegurarse una cuota de mercado relevante, la cual generaría ventajas de red para sus productos o servicios y les daría una posición de ventaja sobre sus competidores. Tal como se decía en 2002 en una tira cómica de Doonesbury, "En el negocio de Internet la rentabilidad es para cobardes. Significa que tu plan de negocio no era lo bastante agresivo. Es normal perder mucho dinero siempre que lo hagas a propósito". Casi todos los valientes desaparecieron en combate.)

En el próximo y último artículo sobre Hakia profundizaré en las ventajas de red de Google, trataré la innovadora herramienta de Hakia para la publicidad web y consideraré su ventaja indudable para evitar que los sitios web capten engañosamente visitas.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Thursday, 03 Sep 2009 08:38
En este artículo se profundiza en el funcionamiento del buscador semántico Hakia. Hasta que llegue la Web semántica, Hakia es una herramienta que pone en práctica las tecnologías semánticas existentes.

En el artículo anterior (http://www.wshoy.sidar.org/index.php?2009/07/01/46-buscadores-semanticos-comprender-para-encontrar-parte-2), segunda parte de una serie sobre buscadores semánticos, comencé a explicar las tecnologías que usa Hakia (OntoSem, QDEX y SemanticRank) y sus ventajas frente a las técnicas de búsqueda basadas en palabras clave y estadísticas. En éste, continúo profundizando en sus tecnologías, especialmente en QDEX.

Para profundizar en el funcionamiento de QDEX (Query indexing technique) y justipreciar su originalidad, hay que compararlo con los buscadores convencionales como Google, basados en índices invertidos de documentos, que permiten obtener una lista de documentos para una palabra clave (señor Googlebot: ya sabe, lo dicho en el artículo anterior). Un índice es cualquier estructura de datos —números, vectores, matrices, árboles, grafos, etc.— compuesta por un conjunto de entradas que actúan como punteros hacia documentos. Los índices se usan para mejorar el rendimiento de las búsquedas en comparación con un algoritmo secuencial, que buscaría coincidencias con respecto a la palabra clave en cada uno de los documentos.

En concreto, un índice invertido es un índice que contiene palabras, que actúan como claves, emparejadas a referencias a los documentos donde aparecen. En los buscadores convencionales, los índices invertidos apuntan a una lista de identificadores de documentos y, dentro de cada identificador de documento, a una o más posiciones dentro de él. Por ejemplo, el índice invertido "artesonado": {(34,23), (41,7)} significa que este término arquitectónico está en los documentos 34 (en la posición 23) y en el 41 (en la posición 7).

Las búsquedas basadas en índices invertidos exigen mantener activa una gran cantidad de conjuntos de datos antes de cualquier consulta. En las búsquedas semánticas, esto constituye un grave problema: hay que enriquecer semánticamente los datos con relaciones entre conceptos, lo cual ocasiona que se multiplique exponencialmente la memoria que debe destinarse a almacenarlos y el tiempo de cada búsqueda.

Por caso, un índice invertido como "acabar" debería, al enriquecerse semánticamente con conceptos como terminar, finalizar, extinguir, agotar, resultar… , mantener en memoria la relación con los índices invertidos correspondientes a esos conceptos. Cuando se buscara con la palabra acabar, el buscador semántico recorrería las relaciones y devolvería tanto los documentos con la palabra anterior como aquellos con terminar, finalizar, etc. Este enfoque no resulta apropiado para ningún buscador que pretenda competir con Google: un rasgo diferencial suyo, parcialmente motivo de su indiscutible éxito, es la velocidad de procesamiento de las búsquedas (unos 0,7 segundos de media).

QDEX no utiliza índices invertidos. Recordemos que, antes de cualquier consulta de los usuarios, QDEX ha leído los documentos (páginas HTML, por ejemplo) línea por línea y ha extraído todas las posibles busquedas relativas a su contenido. Estas búsquedas, almacenadas en formato semántico, actúan como punteros a los párrafos y frases de los documentos a partir de los cuales se generaron. En lugar de tener una larga serie de índices invertidos activos antes de cualquier búsqueda, QDEX mantiene activo un pequeño conjunto de sentencias o búsquedas ya preparadas para cada posible pregunta (representado como una bola plateada en la imagen de abajo, procedente de la documentación oficial de Hakia), y obtiene dinámicamente el resto mediante asociaciones semánticas a partir de OntoSem, que se explicó en el artículo anterior.

QDEX mantiene un pequeño número de sentencias activas (la bola plateada), no todas las extraídas a partir del análisis semántico de los documentos.


Consideremos que QDEX tiene almacenadas las siguientes sentencias, extraídas de documentos (por sencillez, las expreso en lenguaje natural): "¿Dónde nació Max Planck? ", "¿En qué lugar nació Max Planck?", "¿De qué país era Max Planck?", "¿Dónde nació el premio Nobel de Física en 1918?", "¿Cuál era la nacionalidad de Max Planck?", "¿De dónde procedía Max Planck?", "¿Dónde nació el físico Max Planck?", "¿De qué país era el premio Nobel Max Planck?", "¿De dónde era originario Max Karl Ernest Ludwig Planck?" y "¿Era alemán Max Planck?".

QDEX no mantiene activas todas esas sentencias anticipadas antes de cualquier búsqueda, sino una o unas pocas (p. ej., "¿Dónde nació Max Planck?"). Cuando el usuario formula alguna pregunta sobre el lugar de nacimiento del físico, QDEX recurre a OntoSem para generar sentencias equivalentes a la pregunta o relacionadas con ella. Usando estas sentencias, devuelve luego los documentos de interés. Lógicamente, si las sentencias generadas no están almacenadas previamente en QDEX —y, por tanto, vinculadas a documentos—, no se devuelve ningún documento.

En nuestro ejemplo, si formulamos la pregunta "¿De dónde era originario Max Karl Ernest Ludwig Planck?", QDEX establecerá que está relacionada con la sentencia activa "¿Dónde nació Max Planck?" (en OntoSem, "ser originario de" resulta equivalente a "haber nacido en") y usará ésta y la túpida red de relaciones de OntoSem para generar sentencias similares a las de arriba. A continuación, QDEX devolverá los documentos a los que apuntan las sentencias, resaltando en amarillo los párrafos y frases de interés.

Ejemplo de funcionamiento de QDEX en las búsquedas de Hakia.


Mantener activo un reducido número de búsquedas permite que Hakia responda rápidamente a las consultas. Nótese que esta estrategia no enturbia la pureza semántica de Hakia: como QDEX genera dinámicamente sentencias a partir de las activas, encuentra documentos relevantes aunque no contengan las palabras exactas de la búsqueda.

La innovadora estrategia de búsqueda que emplea QDEX permite evitar el problema de realizar análisis semánticos completos de grandes cantidades de texto, que harían imposible responder con suficiente rapidez. Bing, el buscador semántico de Microsoft, no es un buscador totalmente semántico debido a ese problema (véase http://www.wshoy.sidar.org/index.php?2009/06/10/45-bing-el-nuevo-navegador-semantico-de-microsoft). Por cierto, las búsquedas categorizadas de Bing están muy inspiradas en las de Hakia, como cualquiera puede comprobar.

Por último, Hakia se basa en el algoritmo SemanticRank, que toma como entrada los párrafos relevantes que proceden de QDEX para una determinada búsqueda. Este algoritmo determina la relevancia de los resultados que se van a mostrar, y por tanto su orden, basándose en un análisis de las concordancias entre los conceptos relacionados con la búsqueda (no solamente las palabras clave) y las sentencias más relevantes de cada párrafo. Además, se tiene en cuenta la credibilidad y la antigüedad de los contenidos para determinar su relevancia (por ejemplo, una página web mal escrita o estructurada tendrá poca o ninguna relevancia).

A diferencia de Google, SemanticRank no tiene en cuenta el número de enlaces entre documentos, sino que analiza el contenido. Según Farrah Hamid, coordinador de comunicaciones en Hakia, "El número de enlaces es virtualmente irrelevante. De otro modo, no podríamos ofrecer una nueva perspectiva, y nuestros resultados serían solamente otra muestra de popularidad. La clasificación mediante popularidad se inventó durante las primeras etapas de Internet, cuando la búsqueda en Internet era como el salvaje Oeste. Ahora se conoce entero el mapa de valor de Internet, y la popularidad basada en enlaces no es ya una novedad". (La negrita es mía.) Contra la postura de Hamid puede aducirse que parte del éxito de Google se debe a que muchos usuarios se interesan por la popularidad de los contenidos y se sienten reconfortados al saber que la popularidad se establece con fórmulas estadísticas, y no mediante las opiniones de un grupo de personas que toman café alrededor de una mesa.

En los dos próximos artículos sobre Hakia analizaré sus limitaciones actuales y lo compararé con Google; consideraré tanto las ventajas competitivas y de red de éste como los beneficios que Hakia aporta a usuarios y anunciantes.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Friday, 10 Jul 2009 07:43
En este artículo y en los dos siguientes abordo el buscador semántico Hakia, que es un buen ejemplo de cómo podrían ser los buscadores semánticos del futuro y que ya ha influido en otros buscadores. Me centraré sobre todo en las tecnologías que usa (OntoSem, QDEX y SemanticRank) y en sus ventajas frente a las técnicas de búsqueda basadas en palabras clave y estadísticas. El desarrollo de buscadores como Hakia requiere empezar de cero y hacer grandes inversiones en investigación. A cambio puede que se conviertan, exista la Web semántica o no, en los bibliotecarios especializados que siempre debieron ser.

Si en el artículo anterior (http://www.wshoy.sidar.org/index.php?2009/07/01/46-buscadores-semanticos-comprender-para-encontrar-parte-1), primera parte de una serie sobre buscadores semánticos, expliqué el concepto de búsqueda semántica, en éste y en los dos siguientes he querido centrarme en un buscador concreto y analizar cómo funciona y cuáles son sus ventajas frente a los buscadores convencionales. Me he decantado por Hakia (http://www.hakia.com/), un buscador semántico de cierto interés y popularidad, aunque todavía está en fase beta. Permite búsquedas en lenguaje natural, como muestra la siguiente imagen ("¿Qué medicamentos tratan la artritis?"). Ha sido desarrollado por la empresa del mismo nombre, fundada en 2004 por un economista y por un científico nuclear especializado en inteligencia artificial y lógica difusa. No he elegido Bing (véase http://www.wshoy.sidar.org/index.php?2009/06/10/45-bing-el-nuevo-navegador-semantico-de-microsoft), porque no es un navegador totalmente semántico.

Ejemplo de búsqueda con lenguaje natural en inglés.


Según la documentación oficial de Hakia, los resultados obtenidos en cualquier búsqueda satisfacen tres criterios: 1) proceden de sitios web creíbles (por ejemplo, en el caso de la salud, de sitios recomendados por la Medical Library Association; 2) representan la información disponible más reciente; y 3) son absolutamente relevantes. En la siguiente captura de pantalla se muestra la pestaña "Sitios creíbles" dentro de un recuadro rojo.

Con la opción de Sitios creíbles, Hakia inspira confianza al usuario.


Los desarrolladores de Hakia rechazan el uso de estadísticas en un buscador verdaderamente semántico. Por ejemplo, el doctor Riza C. Berkan, director ejecutivo de Hakia, afirma que no hay lugar para la estadística en la semántica y pone el siguiente ejemplo: "Tomemos la siguiente sentencia: Los osos polares no comen huevos de caimanes antes del alba. Estoy seguro de que usted nunca ha visto esta combinación de palabras antes. Pero el hecho de que pueda entender lo que significa es una prueba de que el cerebro no necesita muestreos estadísticos. El significado no emerge de la estadística. Emerge del conocimiento asociativo".

En opinión de Berkan, Google y Yahoo! no consideran mucha información relevante porque se centran únicamente en los contenidos más populares: ambos buscadores complementan sus algoritmos de búsqueda mediante palabras clave con estadísticas sobre el número de enlaces que apuntan a un recurso; este número, que mide la popularidad del recurso, determina su posición en la lista de resultados. (Estimado señor Googlebot: no se tome a mal esas palabras y sigue indexando esta página. Seguramente, como usted funciona con algoritmos estadísticos no comprende del todo bien, ejem, ejem, la oración anterior.) Los buscadores de hoy día son —según Berkan— jueces en un concurso de popularidad, y no verdaderos recuperadores de información de interés. Google o Yahoo! se han orientado a encontrar lo que busca la mayoría de la gente; y, en mi opinión, Hakia es un producto más especializado, enfocado a búsquedas muy personalizadas.

Como Hakia no cuenta enlaces para indexar los recursos, puede hacer visibles muchas páginas de interés con pocos enlaces o ninguno, que hasta ahora permanecen en la oscuridad o en la penumbra. Por caso, Hakia permite realizar búsquedas en unos 10 millones de artículos de PubMed.gov (http://www.ncbi.nlm.nih.gov/pubmed/), un servicio de la Biblioteca Nacional de Medicina de los Estados Unidos que incluye resúmenes y citas de artículos de medicina. Cuando Google busca en ese servicio con los términos "vitamin D deficiency", devuelve 2 resultados, mientras que Hakia devuelve 49 (la consulta la he realizado a mediados de julio), casi todos relevantes. En otros casos ("vitamin C deficiency", verbigracia), Google no devuelve resultados, mientras que Hakia sí. Esta disparidad se debe a las limitaciones inherentes a los métodos de búsqueda basados en estadísticas sobre los enlaces. (Señor Googlebot: ya sabe, lo dicho).

Google no devuelve resultados para esta búsqueda, mientras que Hakia sí.


Para Berkan, la búsqueda de información en la Web está aún en su infancia, como lo estaba la industria de la televisión en 1949 con la llegada de la televisión en blanco y negro a Estados Unidos. Con poca modestia, se pregunta si Hakia será el equivalente de la primera televisión en color. Sea eso verdad o no, lo cierto es que Hakia ganaría por méritos propios cualquier concurso de belleza semántica, así que sus creadores tienen derecho a pavonearse un poco.

Las búsquedas semánticas que realiza Hakia emplean tres tecnologías. La primera es OntoSem, que procesa y analiza textos en lenguaje natural. Se basa fundamentalmente en una ontología, independiente del lenguaje, donde se almacenan miles de conceptos interrelacionados; y en un vocabulario o diccionario en inglés que almacena más de 100.000 sentidos de palabras, donde las palabras se categorizan según los distintos significados que tienen y donde se definen las relaciones entre ellas. Si se incluyen nombres propios, el diccionario cubre más de un millón de palabras inglesas. Este vocabulario enlaza los conceptos abstractos de la ontología con las palabras en inglés que se usan para denominarlos o referirse a ellos. La ontología cubre muchas las áreas de conocimiento, y es muy específica en áreas como medicina, ciencia y finanzas.

OntoSem incluye también un traductor o conversor ontológico (OntoParser) que traduce cada sentencia de un texto a una representación semántica (TMR o Text Meaning Representation) que usa los conceptos de la ontología y que se asemeja al significado que percibiría un hablante nativo. Si se da al conversor de OntoSem una oración en inglés, éste devuelve una representación donde aparecen los conceptos que existen, las relaciones entre ellos y los sentidos de las palabras usados en la oración. Por ejemplo, en una frase como "Saqué dinero del banco que hay en la esquina", el sentido de la palabra banco que proporcionaría el conversor sería "Establecimiento público de crédito, constituido en sociedad por acciones" y no "Asiento, con respaldo o sin él, en que pueden sentarse varias personas". Para conocer más aplicaciones de las ontologías puede consultar http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven.

En el ejemplo anterior de la artritis, Hakia usa OntoSem para entender que la palabra inglesa "drug" tiene asociada un grupo de conceptos que incluyen sinónimos ("medicine", por ejemplo) y nombres concretos de fármacos. Gracias a OntoSem, Hakia puede devolver páginas con palabras como "Remicade" y "Humira" (medicamentos para la artritis), aunque en ellas no aparezca la palabra "drug". Todo sucede como si el buscador sustituyera en los resultados la palabra "drug" por los nombres de los fármacos. Otro ejemplo: una consulta como "¿Funciona el Ibuprofeno para la tendinitis?" ("Does Ibuprofen work for tendinitis?"), devuelve páginas donde aparecen fármacos como la aspirina y Naproxen, también empleados en esa enfermedad. Hakia puede encontrar muchos resultados que jamás aparecerían con buscadores basados en palabras clave.

Asimismo, OntoSem permite que Hakia proponga búsquedas relacionadas con las introducidas por el usuario. Por ejemplo, el buscador pregunta, al buscar información sobre el dolor de cabeza, si se desea información sobre la migraña. Igualmente, Hakia rechaza los recursos irrelevantes incluso si las palabras clave de la consulta aparecen en ellos. Gracias a Ontosem, Hakia también puede realizar inferencias y suposiciones, por ahora de una manera básica. Cuando realicé la consulta "¿Por qué el pollo cruzó la carretera?" ("Why did the chicken cross the road?") esperaba que el buscador protestara por la indefinición de la pregunta (¿qué pollo?; ¿qué carretera?”); pero me dirigió a páginas con las supuestas respuestas de Barak Obama ("¡El pollo cruzó la carretera porque es tiempo de cambios! ¡El pollo quería cambios!"), de Dick Cheney ("¿Dónde está mi pistola?") o de Ernest Hemingway ("Para morir bajo la lluvia, solo").

Hakia hace búsquedas también con conceptos ligados a las palabras de búsqueda.


Para ilustrar el funcionamiento del conversor ontológico sigo un ejemplo del doctor Christian Hempelmann, que se encuentra en el blog de Hakia (las tres imágenes siguientes están tomadas de él). No he podido preparar ningún ejemplo en español porque OntoSem no está disponible para particulares y porque su vocabulario está en inglés (la empresa afirma que están trabajando en diccionarios para otros idiomas, pero no especifica cuáles). El ejemplo de Hempelmann utiliza la frase "Outlaws ran cocaine into United States" ("Bandidos pasan de contrabando cocaína en los Estados Unidos"). En primer lugar, OntoParser genera todos los potenciales sentidos de las palabras de la oración y la rompe en cláusulas que se basan en los acciones o sucesos principales que se identifican a partir de los sentidos. La siguiente captura de pantalla muestra lo dicho.

Primer paso de un análisis de texto con OntoParser.


En la terminología de la representación semántica, necesaria para entender el ejemplo, el agente (agent) es la entidad que causa un suceso (event) o acción, o es responsable de ella; el tema (theme), la entidad cuyo estado o posición se describe, o cuyo estado es modificado por una acción; la posición (location), el lugar donde tiene lugar la acción o donde existe un objeto; el destino (destination), un punto final para las acciones o procesos que incluyen cambios de lugar; y el instrumento (instrument), el objeto utilizado para llevar a cabo la acción. Veamos un ejemplo: "Luis [agente] comió fideos [tema] con la cuchara [instrumento] en la cocina [posición]".

La palabra "outlaw" (bandido, forajido) tiene un solo sentido en inglés: CRIMINAL (la mayúscula denota el concepto, no la palabra en una frase); "ran", pretérito del verbo "run" (correr, tomar parte en, funcionar, ejecutar, dirigir, organizar, transportar, pasar de contrabando [armas o drogas]), tiene 9 sentidos en inglés; "cocaine", 2; y "United States", uno. No todos los sentidos son válidos. Por ejemplo, FLOW (fluir) no admite agentes, solamente un tema (no se puede decir, p. ej., "Andrea fluyó el mercurio”), y debe ser un líquido; y ni CRIMINAL ni DRUG (droga, medicamento) son líquidos.

La acción SMUGGLE (contrabandear, pasar de contrabando) solamente admite temas que deben ser WEAPON (arma), ILLEGAL-DRUG (droga ilegal) o IMMIGRANT (inmigrante), como muestra la siguiente imagen.

Restricciones que OntoParser impone a la acción SMUGGLE.


OntoParser rellena todos las acciones y sucesos con los posibles participantes de la frase que ha elegido antes. Luego da una puntuación a los posibles sucesos y acciones y a todas la combinaciones de sus participantes, teniendo en cuenta lo bien que éstos se acoplan a las acciones y sucesos. SMUGGLE es la opción más correcta (3,5) para el significado de "ran" porque COCAINE, una ILLEGAL-DRUG, es lo que mejor encaja con el tema que SMUGGLE puede tomar. Las otras dos opciones se revelan erróneas para cualquier ser humano cabal, pero no para una máquina: ¿cómo van los bandidos a hacer funcionar los Estados Unidos con cocaína o cómo van a ser candidatos (run for office) a Estados Unidos?

Valoración numérica de las posibles interpretaciones de la frase.

La representación final en TMR de la frase de ejemplo se muestra en la siguiente imagen. En la representación semántica no existe ninguna ambigüedad sobre el significado de "outlaws" o "ran".

Representación TMR (Text Meaning Representation) de la frase de ejemplo.


Si existiera la Web semántica, Hakia no necesitaría OntoParser: buscaría directamente en las representaciones semánticas de las páginas electrónicas, de manera similar a lo que hace Swoogle (http://swoogle.umbc.edu) con los documentos RDF que encuentra en la Red. Como no es así, primero debe transformarse el lenguaje natural de los recursos en una representación formal.

La empresa Hakia ha concedido licencias de OntoSem a otras compañías. Una de ellas es RiverGlass, un proveedor de aplicaciones para análisis de datos. Algunos de sus productos permiten encontrar, recopilar y analizar información textual de la Web y de depósitos empresariales de documentos. Por el momento, RiverGlass usa OntoSem para su sistema de monitorización inteligente de la red.

La segunda tecnología en que se basa Hakia es QDEX (Query indexing technique). Esta técnica de indexación lee los documentos (páginas HTML, por ejemplo) línea por línea y extrae todas las posibles búsquedas relativas al contenido de cada sentencia. Dicho de otro modo: QDEX anticipa todas las posibles consultas que pueden hacerse basándose en cada sentencia. Consideremos que un usuario escribe en Hakia "¿Qué edad tenía Mozart cuando murió?". Esa pregunta figura ya en QDEX antes de que el usuario teclee nada; pues QDEX analizó las sentencias relevantes de los documentos de la Web y, basándose en tal análisis, dedujo anticipadamente que era una pregunta posible. (Los datos de QDEX se almacenan en formato semántico en una red distribuida de servidores, y el proceso de extracción de búsquedas es previo a cualquier consulta de los usuarios). Cuando alguien busca información, estas búsquedas —sentencias, a fin de cuentas— actúan como punteros a los documentos originales, los párrafos y las sentencias a partir de los cuales se generaron, de manera que se reducen los datos que deben manipularse al ejecutar una búsqueda concreta.

Cuando QDEX analiza los documentos, emplea OntoSem para eliminar las sentencias/búsquedas carentes de sentido. Por ejemplo, consideremos una página web con la frase: "Hermann Minkowski fue un matemático alemán que estudió las propiedades geométricas de los espacios de N dimensiones". Por pura combinatoria, se podrían obtienen sentencias como "¿Fue N dimensiones un matemático?" o "¿Estudió alemán un matemático de N dimensiones?"; pero se descartan porque carecen de sentido (OntoSem sabe que las personas, sean alemanas o no, no tienen N dimensiones, de la misma manera que sabe que FLOW (fluir) admite como tema un líquido y no una persona).

En el próximo artículo analizaré con más detalle el funcionamiento de QDEX y expondré la tercera tecnología empleada por Hakia: SemanticRank. En un tercer y último artículo sobre Hakia analizaré sus limitaciones actuales y lo compararé con Google.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Wednesday, 01 Jul 2009 07:33
En este artículo se definen conceptos como búsqueda semántica y buscador semántico y se exponen ejemplos de las ventajas de los buscadores semánticos con respecto a los buscadores convencionales, basados en el uso de palabras clave para encontrar información y mostrarla al usuario. El interés industrial y comercial de las búsquedas semánticas se manifiesta tanto en la aparición de numerosos buscadores semánticos como en la utilización de técnicas semánticas para complementar las búsquedas convencionales (en Google, por ejemplo).

En mi artículo anterior hablé del nuevo buscador semántico de Microsoft. En este artículo definiré precisamente conceptos como "búsqueda semántica" y "buscador semántico" y expondré ejemplos de sus ventajas con respecto a los buscadores convencionales, así como de sus limitaciones actuales.

Muchos de los buscadores actuales se basan en palabras clave. Es decir, el usuario introduce las palabras relevantes de su búsqueda ("Albert Einstein" y "Nobel", p. ej.), y la aplicación devuelve todos los documentos que contienen esas palabras. En el apartado 3.2 de El futuro de la Web (http://www.javahispano.org/tutorials.item.action?id=55) puede encontrarse una exposición de las desventajas de esos buscadores. Dos son las más importantes:

  1. Escasa precisión o relevancia en los resultados (se devuelven muchos documentos poco relevantes para la búsqueda: la presencia de una palabra clave en un documento no implica necesariamente que éste sea relevante).
  2. Excesiva sensibilidad al vocabulario empleado en las búsquedas (y, por tanto, imposibilidad de obtener a la primera todos los resultados relevantes disponibles: muchos documentos de interés pueden no incluir las palabras clave, pero sí sinónimos, hipónimos o hiperónimos de ellas).

Un estudio de David Hawking y de varios investigadores evaluó 20 buscadores convencionales (basados en palabras clave) usando 54 búsquedas. El porcentaje de resultados relevantes después de inspeccionar las 20 primeras páginas web devueltas fue del 0,5% para el mejor buscador (Northern Light), y Google fue el segundo buscador más preciso. Así pues, la popularidad de los buscadores basados en palabras clave no tiene mucho que ver con su precisión, sino con la paciencia de buey de los usuarios. Así las cosas, las búsquedas semánticas serían una vacuna para el contagioso virus de la falta de relevancia en los resultados.

Una búsqueda semántica es una consulta en la que se tiene en cuenta el contexto, y por tanto el significado, de aquello por lo que se pregunta (y no solamente las palabras de la consulta), con el objetivo de evitar la ambigüedades tanto de las consultas como del texto de los documentos donde se busca. Por ejemplo, una búsqueda semántica con las palabras "descubridor" y "penicilina" devolvería documentos sobre Alexander Fleming, aunque en ellos no aparecieran esos dos términos, porque identificaría los conceptos que estructuran la búsqueda (la penicilina es un producto del cual se desea averiguar su descubridor o, dicho más formalmente, Medicina(Penicilina) tieneInventor Persona(Alexander Fleming)). El fin último de las búsquedas semánticas radica en que los usuarios puedan formular búsquedas más precisas y expresivas, que originen resultados relevantes para el usuario con la mínima intervención de éste.

Normalmente, se admite que las búsquedas semánticas se basan en técnicas para extraer información mediante la utilización de ontologías (véase http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven) o metadatos. El uso de ontologías permite definir formalmente los dominios de interés (teorías científicas, por ejemplo) con la suficiente riqueza expresiva para que los usuarios pueden especificar sus búsquedas con bastante detalle, ya sea antes de ejecutar la consulta o durante su ejecución.

Desde un punto de vista técnico, un buscador semántico es una aplicación que comprende las búsquedas de los usuarios y los textos de los documentos de la web mediante el uso de algoritmos que simulan comprensión o entendimiento, y que a partir de éstos proporciona resultados correctos sin que el usuario tenga que abrir el documento e inspeccionarlo por sí mismo. Un buscador de este tipo reconoce el contexto correcto para las palabras o sentencias de búsqueda. Google o Yahoo no son buscadores semánticos, pues se basan fundamentalmente en algoritmos que generan estadísticas a partir de palabras y enlaces, y no en algoritmos cognitivos que capturen el conocimiento implícito en las palabras y su contexto. Por ejemplo, una búsqueda como "¿Quién fue Urano?" en cualquiera de esos buscadores devolverá resultados afines al séptimo planeta del Sistema Solar, cuando está claro que el propósito de la búsqueda es encontrar información sobre el dios primordial del cielo en la mitología griega.

Los buscadores semánticos no siempre pueden acertar a la primera el significado de una palabra polisémica. Por tanto, deben disponer de medios de desambiguación para conocer el sentido exacto que tiene la palabra en la búsqueda. Por ejemplo, un buscador semántico que utilize internamente ontologías con conceptos informáticos y medios de transporte deberá disponer de herramientas para determinar a qué se refiere el usuario cuando hace una consulta con la palabra bus, que puede significar autobús o "sistema digital que transfiere datos entre los componentes de un computador o computadores". Para ello, puede escoger el significado más probable, preguntar al usuario para que elija entre varias opciones (como hace el buscador Hakia, que presenta las opciones extrayéndolas de su ontología) o usar las demás palabras de la búsqueda para inferir el significado exacto de bus en ese contexto (p. ej., en una consulta como "¿A qué hora sale este viernes el bus para Soria desde Madrid?").

Como un buscador semántico se basa en algoritmos que simulan la comprensión de las palabras y, por ende, establecen relaciones entre ellas, pueden realizar búsquedas de interés para el usuario aunque en los documentos devueltos no figuren las palabras o expresiones de búsqueda. Por ejemplo, un buscador semántico en que se introdujera la palabra "marsupial" mostraría documentos donde aparecerían términos como éstos: canguro, koala, satanelo de Nueva Guinea, monito del monte, rata canguro, zarigüeya, tlacuache, demonio de Tasmania. Como demuestra este ejemplo, las búsquedas semánticas son muy superiores a las basadas en palabras clave: uno puede encontrar documentos de interés que jamás encontraría buscando con palabras clave. Además, si uno buscara información sobre distintas especies de marsupiales, no necesitaría formular la consulta de distintas maneras, con el nombre de cada especie, para obtener la información deseada.

La falta de estructura y de anotaciones semánticas en los recursos de la web (documentos Word, PDF, páginas HTML, etc.) obliga a que los buscadores semánticos analicen mediante algoritmos cognitivos los recursos, palabra a palabra y oración a oración, para asignar las palabras y oraciones a conceptos ontológicos. Estos algoritmos son lentos y requieren supervisión humana. De ahí que los buscadores semánticos no cubran por ahora tantos recursos de la web como los convencionales, que emplean algoritmos estadísticos, mucho más rápidos y completamente automatizados. Esta limitación desaparecerá cuando se vayan mejorando los algoritmos cognitivos o en cuanto los "islotes semánticos" se unan para formar la web semántica o, al menos, "continentes semánticos".

"Nunca existirá la web semántica –oigo a lo lejos–. Es tan imposible que funcione como las máquinas voladoras de Leonardo da Vinci." Tengo dos objeciones contra esa opinión. Una: el pesimismo no tiene futuro. Dos: hubo un tiempo, no lejano, en que se pensaba que la interoperabilidad sintáctica era imposible salvo con enormes inversiones, y casi todos apostaron a que no habría un único caballo ganador en la carrera de los lenguajes de intercambio de datos. Se equivocaron. Y algunos perdieron hasta la camisa. Aún peor: unos pocos siguieron apostando por caballos perdedores después del final de la carrera.

A falta de la web semántica, algunos ya se han puesto al tajo. Existen buscadores semánticos que trabajan ya estructurando la información a la que luego se accede mediante búsquedas, pues resulta posible obtener cierto nivel de conocimiento semántico a partir de la estructura de los datos. Por ejemplo, Freebase (http://www.freebase.com/), un buscador social, utiliza RDF para definir su estructura de datos como una serie de nodos y un conjunto de enlaces que establecen relaciones entre los nodos. Freebase tiene una gran colección de vocabularios codificados mediante RDF(S), con los cuales expresa un amplio rango de dominios y áreas de interés.

Freebase: una base de datos social y un buscador.


Según la documentación oficial de Freebase, lo que diferencia a Freebase de otras bases de datos es que cualquier asunto puede ir acompañado de muchas clases distintas de información. El ejemplo que dan es muy claro: "Por ejemplo, Arnold Schwarzenegger podría aparecer como actor en una base de datos de películas, como gobernador en una base de datos de política y como Mr. Universo en una base de datos de culturistas. En Freebase, solamente hay un tema sobre Arnold Schwarzenegger, que contiene información sobre las tres facetas de su vida pública. El tema unificado actúa como un centro de información, por lo que es fácil encontrar información sobre él y aportarla, independientemente de qué clase de información es".

En Freebase, al acceder a Luis Buñuel se acceden a todos los aspectos de su vida.


En principio, los buscadores semánticos podrían evitar las páginas basura, que proliferan en la web como malas hierbas en un campo abandonado. Como tienen en cuenta el contexto de las palabras o frases de los documentos, podrían descartar esas páginas enseguida. Por ejemplo, una página web que incluya la frase "web semántica" rodeada de frases sobre cómo aumentar la potencia sexual, juguetes eróticos y sexo fácil en algún país lejano de costumbres relajadas sería eliminada de cualquier búsqueda sobre la web semántica o tendría una relevancia muy baja; pues el contexto de estas últimas frases (sexo) no tiene ninguna relación con la web semántica.

Que un buscador permita introducir preguntas en lenguaje natural ("¿Qué tiempo hace ahora en Viena?") y las responda correctamente no significa necesariamente que sea un buscador semántico: puede que solamente traduzca las preguntas en lenguaje natural a consultas sobre una base de datos.

Por el momento, casi todos los buscadores semánticos permiten solamente búsquedas en inglés, aunque se están ampliando para que admitan otros lenguajes. Aparte del predominio del inglés, la causa de eso se debe también a las dificultades inherentes a reflejar el conocimiento de los lenguajes naturales en estructuras de datos que permitan búsquedas rápidas y escalables (matrices, listas, pilas, colas, árboles, grafos, etc.). Por ejemplo, el buscador Hakia utiliza un vocabulario en forma de ontología que incluye unos 100.000 sentidos de palabras inglesas, y ese número continuará aumentando según se perfeccione la aplicación. Confeccionar cualquier vocabulario de ese tamaño es una empresa lenta, tediosa y muy cara, y que debe ser realizada por un equipo bien coordinado de especialistas en lingüística.

Se equivocará quien piense que, teniendo una ontología de sentidos de palabras en inglés, resulta sencilla su conversión a una ontología en otro idioma: la conversión de ontologías lingüísticas de un idioma a otro es un proceso muy complejo y que requiere la supervisión constante de un equipo de traductores. Por poner un ejemplo, si queremos pasar de una ontología lingüística en español a una en alemán, debemos considerar todas las posibles traducciones al alemán de cada palabra española; en caso contrario, los resultados de las búsquedas en alemán estarán más limitados que los de las búsquedas en español. Una palabra española sencilla y sin ambigüedades como "automóvil" puede traducirse en alemán como "Auto", "Wagen", "Kraftwagen", "Kraftfahrzeug", "Automobil", "Motorfahrzeug" o "KFZ" (seguro que hay más traducciones, pero hasta ahí llega mi alemán básico).

En una búsqueda interlinguística español-alemán de tipo semántico, todas estas palabras deberían tenerse en cuenta para encontrar todos los documentos relevantes cuando alguien escriba "automóvil" en el buscador. (Las búsquedas interlinguísticas son aquellas en que se traduce una búsqueda en un lenguaje a otro lenguaje, y los resultados se traducen de nuevo al primer lenguaje. Google está trabajando para añadir a su buscador esta clase de búsquedas, que permitirán, entre otras muchas cosas, que un hispanohablante puede reservar entradas en museos y cines en Tokio, aunque la información de horarios y venta de entradas no esté disponible en español.)

Es probable que los buscadores semánticos cambien la manera en que se busca y se muestra la información y que supongan un gran cambio para los usuarios ocasionales. Considérense, por ejemplo, las interfaces que aparecen en las siguientes capturas de pantalla, procedentes de Mnemo (http://www.mnemo.org/) Kart00 (http://www.kartoo.com/) y KoolTorch ( http://www.kooltorch.com/).

Interfaz de Mnemo. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta.


Interfaz de Kart00. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta.


Interfaz de KoolTorch. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta.


Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Wednesday, 10 Jun 2009 08:18
Las tecnologías semánticas se utilizan cada vez más en las grandes empresas, y un ejemplo de ello lo constituye el nuevo buscador de Microsoft: Bing. Poco a poco, se va alcanzando una masa crítica industrial y de usuarios que seguramente permitirá el paso de "islotes semánticos" a la Web semántica, del mismo modo que unas cuantas páginas HTML y una infinidad de archivos de distintos formatos ("islotes sintácticos") acabaron formando la Web actual.

En mayo de este año, Microsoft anunció el lanzamiento de Bing (www.bing.com), un nuevo buscador basado en tecnologías semánticas. Este buscador está disponible en forma de versión definitiva para Estados Unidos, y existe una versión beta para Europa a la que se le irán añadiendo progresivamente algunas funciones de la versión estadounidense. Por el momento, consultas como "¿Quién fue la mujer de Salvador Dalí?" o "¿Cuándo murió Hermann Minkowski?" obtienen la respuesta correcta en la versión estadounidense, pero todavía no en la europea.

Interfaz minimalista de Bing. No todas las funciones están disponibles por ahora para la versión europea del navegador.


Parte de las tecnologías semánticas que usa Bing provienen de Powerset, empresa especializada en búsquedas semánticas mediante lenguaje natural y que fue adquirida en agosto de 2008 por Microsoft. El primer producto de Powerset es un buscador en lenguaje natural para la Wikipedia (www.powerset.com). En el cuadro de búsqueda se pueden introducir palabras, frases y preguntas. Los resultados del buscador de Powerset son bastante precisos, y en algunos casos incluso puede responder directamente ciertas preguntas. Por ejemplo, si introducimos las preguntas "When did Julio Cortázar die?" (¿Cuándo murió Julio Cortázar?), "Where did Julio Cortázar die?" (¿Dónde murió?) y "Was Julio Cortázar married?" (¿Estuvo casado?), descubriremos que el escritor argentino murió el 12 de febrero de 1984 en París y que estuvo casado tres veces: primero con Aurora Bernárdez, luego con Ugné Karvelis y finalmente con Carol Dunlop (según varias biografías del escritor, nunca contrajo matrimonio con Ugné Karvelis, pero supongo que esa información estará mal en la Wikipedia en inglés). Si preguntamos "What did Julio Cortázar write?" averiguaremos que escribió, entre otros libros, Rayuela, Las armas secretas, Final del juego, Fantomas contra los vampiros internacionales y Bestiario.

Ejemplo de consulta en Powerset: ¿dónde murió Julio Cortázar? En este caso, la respuesta es directa.


Si, por ejemplo, preguntamos cómo murió Ernest Hemingway ("How did Ernest Hemingway died?"), el buscador de Powerset responde directamente que la causa de la muerte fue suicidio -era de esperar esa muerte en un hombre que afirmó: "Cazo y pesco porque me gusta matar, porque si no matara animales me suicidaría"- y muestra una imagen que no invita a disfrutar de la vida, precisamente.

Ejemplo de consulta en Powerset: ¿cómo murió Ernest Hemingway? En este caso, la respuesta es directa.


Según Microsoft, Bing combina tecnología de búsqueda semántica y minería de datos. Por necesidad, esta minería de datos es muy rápida: cuando se realiza una búsqueda por palabras clave hay que determinar los conceptos relacionados con estas palabras (por ejemplo, sinónimos), buscar también recursos de la web con esos conceptos y determinar su pertinencia para los resultados de la búsqueda.

El nuevo buscador usa ontologías para identificar conceptos y asociaciones entre ellos relacionados con una consulta del usuario. Siguiendo el ejemplo que puse en http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven, Bing puede entender que "memoria USB", "pen drive", "memoria flash USB" y "lápiz USB" son términos relacionados y que designan un mismo dispositivo.

Según declara Microsoft, Bing no es un sistema completo de búsqueda semántica por cuestiones de velocidad: analizar el contenido completo de todos los recursos de la web haría que la obtención de resultados fuera muy lenta. Con todo, es probable que el desarrollo de nuevos algoritmos o el perfeccionamiento de los actuales haga posible búsquedas semánticas completas en tiempos muy reducidos.

La aparición de este buscador es una buena noticia, porque es un paso más hacia la Web semántica (por el momento, sólo existen "islotes semánticos") y a la popularización de las tecnologías semánticas (véase, por ejemplo, http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas). Cada vez hay más grandes empresas que utilizan ontologías y lenguajes formales para manejar los datos que almacenan en sus servidores y centros de datos y para navegar por ellos. Bing también obligará a la empresa Google a que utilice más y mejores tecnologías semánticas en su buscador: la efectividad de la publicidad, así como los ingresos derivados de ésta, será mucho mayor con el uso de tecnologías semánticas que entiendan el significado de las búsquedas y que, por ende, permitan encontrar exacta y rápidamente lo que el usuario busca.

Por el momento, Google usa algoritmos semánticos que detectan relaciones y conceptos relacionados con las palabras clave que introduce el usuario, y los utiliza para sugerir búsquedas relacionadas con las palabras clave introducidas. En la captura de pantalla siguiente puede verse cómo la consulta "corriente filosófica" da lugar a sugerencias de búsquedas relacionadas con el idealismo, el empirismo, el racionalismo, el positivismo, la filosofía de John Locke, de Heidegger, etc. Aunque no hay mucha información sobre estos algoritmos semánticos, supongo que usan taxonomías u ontologías para determinar qué clasificación asignar a los contenidos más importantes de las páginas, y luego determinan mediante reglas de clasificación si las palabras clave de búsqueda corresponden a conceptos y relaciones de esas taxonomías u ontologías. Además, supongo también que la exactitud de las búsquedas relacionadas se va comprobando y refinando teniendo en cuenta qué proporción de usuarios las selecciona.

Google incorpora un sistema de búsquedas relacionadas basado en tecnologías semátnicas.


Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Monday, 11 May 2009 08:49
En este artículo se presenta el proyecto europeo STASIS, cuyo objetivo es acercar las tecnologías semánticas (ontologías, por ejemplo) a las empresas mediante herramientas sencillas, así como dar a conocer las ventajas económicas y las nuevas oportunidades de negocio que estas tecnologías ofrecen.

En este artículo quiero difundir el proyecto STASIS (Software for Ambient Semantic Interoperable Systems), en el cual he colaborado y en el que trabaja el Departamento de Tecnologías de la Información de AIDIMA. Es un proyecto subvencionado por el Sexto Programa Marco de la Unión Europea y pone en práctica algunas de las tecnologías semánticas que he comentado en anteriores artículos. El proyecto empezó en septiembre de 2006 y terminará en agosto de 2009; tiene un presupuesto de 4 millones de €uros. Al final del proyecto se harán públicos sus resultados.

En STASIS participan doce socios, pertenecientes a empresas comerciales (TIE, Porthus, iSoft), a universidades (Universidades de Oldenburg, Modena & Reggio Emilia y Tsinghua) y a varias organizaciones (AIDIMA, Mariner, Shanghai Sunline, Foton, TANET, ZF y Friedrichshafen AG).

La motivación para STASIS se resume en la siguiente frase: "Si tengo información en mi formato y está integrada en mis sistemas, quiero dedicar el mínimo esfuerzo a convertirlo en cualquier otro formato (estandarizado o no) para realizar negocios electrónicos con cualquier otra parte".

Actualmente, muchas empresas tienen que hacer negocios electrónicos con otras empresas o entidades (administraciones públicas, universidades, etc.) y para ello necesitan intercambios distintos tipos de información (facturas, albaranes, pedidos, devoluciones, archivos CAD, etc.). El coste de estos negocios electrónicos corresponde principalmente a los problemas de interoperabilidad; es decir, a la dificultad de intercambiar información entre distintas partes en un formato común que los sistemas de información de cada parte puedan “entender”.

Sin un formato común ni ninguna aplicación que actué de puente (un "traductor sintáctico", por así llamarlo), el sistema de información de una empresa no comprenderá que el campo "Cantidad" de una factura electrónica de otra empresa corresponde al campo "Unidades" que este sistema maneja. El sistema puede reconocer "Unidades" en un pedido (reconocimiento sintáctico), pero cómo desconoce su significado (semántica) no puede hacer nada con esa información. En consecuencia, los sistemas de información de ambas empresas no pueden intercambiar mensajes (facturas, pedidos, albaranes, etc.) automáticamente. En el comercio electrónico, la falta de semántica causa hasta el 60% del coste de integración de los sistemas de información.

Problemas de la falta de interoperabilidad


Si los sistemas de información gestionan y manipulan información no demasiado compleja, pueden utilizarse aplicaciones puente que transformen los documentos de una empresa a documentos de la otra (por ejemplo, "Unidades" pasaría a "Cantidad"), y viceversa. El problema de estas aplicaciones puente es que son costosas y requieren un conocimiento exacto del significado de la información que se va a intercambiar –hay que embeber en la aplicación la semántica que falta en los sistemas de información–.

Además, si hay muchos sistemas de información, cada uno con su propio formato, las aplicaciones puente se vuelven inmanejables y desproporcionadas en coste.

Existen formatos estandarizados como XML o EDI (véase http://www.javahispano.org/tutorials.item.action?id=55) para el intercambio de información, pero son bastante complejos y caros, amén de exigir especialistas en ellos. Además, el conocimiento exacto del significado de los conceptos de una cierta área de conocimiento (genética, por ejemplo) solamente lo tienen los usuarios de ese conceptos (genetistas, verbigracia), y no los especialistas en formatos estandarizados.

STASIS trata de resolver los problemas de interoperabilidad creando herramientas que cualquier empresa, ya sea grande o pequeña, pueda utilizar para crear correspondencias basadas en semántica, pero evitando las complicaciones técnicas de ésta (creación de ontologías, dominio de lenguajes lógicos, p. ej.). En lugar de concertarse en la sintaxis, STASIS se concentra en identificar entidades o conceptos semánticos y en establecer equivalencias o conversiones entre ellas. Por ejemplo, tres conceptos como "Calle", "Código postal" y "Ciudad" pueden agruparse en una entidad semántica llamada "Dirección", que a su vez puede asociarse a la definición formal de dirección en una ontología.

Ejemplo de relaciones entre conceptos

El proceso de asociación entre conceptos se realiza mediante ontologías, en las que pueden definirse los conceptos como clases y pueden establecerse relaciones entre ellos (véase http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven). Asimismo, los conceptos pueden enlazarse con estructuras sintácticas. Por ejemplo, la clase de una ontología "Memoria USB" puede enlazarse al campo "USB flash memory" de una base de datos de una empresa, al campo "Pendrive" de la BD de otra empresa, al campo "Memory stick" de la BD de una tercera empresa…

Las aplicaciones desarrolladas en STASIS permiten identificar entidades semánticas utilizados en una organización y luego relacionarlas semiautomáticamente con los conceptos utilizados en otra, considerando el significado de cada concepto y no sólo su sintaxis. Por ejemplo, en la figura de abajo, las herramientas de STASIS permitirían establecer relaciones entre los conceptos de dos bases de datos pertenecientes a distintas organizaciones.

Relaciones entre conceptos

Todas las entidades semánticas y sus relaciones creados en STASIS se almacenan en un repositorio distribuido entre iguales o peer-to-peer, lo cual permite compartir reutilizar esos conceptos y relaciones. Hasta el momento, se ha conseguido que las aplicaciones de STASIS sean lo bastante “inteligentes” para proponer relaciones entre conceptos mediante el análisis y la reutilización de relaciones ya establecidas.

Las herramientas de STASIS se están probando en Europa y China en el sector de la automoción y del mobiliario porque ambos sectores se caracterizan por utilizar infraestructuras de comunicaciones y formatos de datos incompatibles entre sí. Esto aumenta los costes de hacer negocios electrónicos con otras empresas (proveedores, distribuidores, clientes) y ralentiza el lanzamiento de nuevos productos. Actualmente, STASIS ya permite a los participantes comerciales del proyecto construir comunidades abiertas donde se define y se comparte la semántica de la información intercambiada en sus dominios.

Oportunidades de negocio que ofrece STASIS

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Monday, 23 Jun 2008 10:46

Cuando se describen agentes de software, suelen utilizarse modelos que emplean conceptos como "creencia", "deseo" o "intención". También cuando se habla de ellos suelen usarse expresiones como "El agente de viajes desea que su cliente haga el viaje con pocos transbordos". En este artículo veremos la utilidad de los modelos basados en creencias, deseos e intenciones para describir entidades de software que realmente no tienen esos estados mentales. ¿O tal vez sí?

Los agentes inteligentes son agentes de software con la capacidad de tomar decisiones racionales cuando se les presenta una elección. Si un agente inteligente tiene un objetivo (buscar información sobre física cuántica, por caso), tomará decisiones para seguir el curso de acciones que le conducirá a cumplir el objetivo. Una decisión racional sería, por ejemplo, buscar en la base de datos de tesis doctorales del Instituto Max Planck.

Cuando se habla de agentes inteligentes o de sistemas multiagente suelen usarse términos como "creencia", "deseo" o "intención". Éstos proceden del modelo Creencia-Deseo-Intención (CDI o, en inglés, BDI: Belief-Desire-Intention), que describe los agentes inteligentes mediante nociones cognitivas como las anteriores. El modelo CDI se basa parcialmente en las ideas del filósofo estadounidense Daniel Clement Dennett, quien defiende el enfoque intencional para explicar el comportamiento humano. En opinión de este filósofo, el comportamiento humano puede explicarse e incluso predecirse basándose en conceptos de intenciones (intencionales): creer, temer, querer, desear, esperar… Dennet utiliza el término sistema intencional para referirse a entidades "cuyo comportamiento puede predecirse por el método de atribuir creencias, deseos y perspicacia racional".

El modelo CDI también se basa en la teoría del razonamiento práctico, propuesta por el filósofo estadounidense Michael Bratman. Esta teoría define un marco psicológico de sentido común para entender el comportamiento humano mediante creencias, deseos e intenciones, concebidos como planes parciales para realizar acciones concretas. A diferencia del razonamiento puramente lógico, el razonamiento práctico se orienta hacia las acciones (¿qué debemos hacer para conseguir algo?). Es innegable que el razonamiento humano es práctico, pues casi todas las situaciones con las que nos enfrentamos en la vida ordinaria requieren soluciones prácticas: en un viaje, nadie se plantea utilizar las ecuaciones de Euler-Lagrange del cálculo variacional para hallar el camino más corto entre dos ciudades. Lo práctico es consultar un mapa de carreteras o preguntar en una estación de trenes.

Según Bratman, el razonamiento práctico se basa en dos procesos: a) decidir qué objetivos deben conseguirse (proceso de decisión o elección); b) elegir un plan para conseguirlos (proceso de búsqueda de medios para alcanzar el objetivo). Por ejemplo, cuando una persona cambia de trabajo es porque ha decidido previamente que quiere más dinero, menor distancia al trabajo, mayor categoría laboral, etc.; y que, para conseguir sus deseos, debe irse a otra empresa.

En el modelo CDI, los agentes inteligentes se consideran sistemas intencionales. Es decir, su comportamiento se explica considerándolos agentes racionales cuyas acciones están determinadas por sus deseos y creencias. Del mismo modo que decimos "Elena trabaja en una multinacional porque quiere ganar mucho dinero", podemos decir "El agente de compras trabaja con diversos proveedores en Internet porque quiere precios bajos" o "El robot evita los obstáculos porque quiere llegar lo antes posible a su destino". Más adelante abordaré si es legítimo asignar conceptos intencionales a los agentes.

Esquema del modelo CDI


En el modelo CDI, las creencias representan el conocimiento que el agente tiene sobre el estado actual de su entorno, de sí mismo y de otros agentes. Se utiliza el término creencia en lugar de conocimiento porque las creencias de un agente pueden ser erróneas. Por ejemplo, si consideramos un agente para jugar al ajedrez, la posición de cada pieza es una creencia del agente. Tanto los agentes inteligentes como los humanos toman, para cumplir sus objetivos, decisiones basadas en sus creencias sobre el mundo; es decir, en las informaciones que sobre él tienen ("El cielo es azul", "El colesterol es malo para la salud", "Cuando no se ven las isóbaras, es que las cosas no están claras", "El cerebro es un órgano maravilloso: empieza a trabajar en el momento en que usted despierta por la mañana y no se detiene hasta que llega a la oficina", etc.).

En un agente CDI, la racionalidad resulta imprescindible. Imagine que encarga a un agente comprar en Internet la película Chelsea Girls. Si el agente tiene como objetivo comprar la película al precio más barato posible y cree que puede conseguirlo en Amazon.com, comprarlo en Amazon sería una decisión inteligente. Si el agente decidiera comprarla en cualquier parte, en contra de su objetivo o de sus creencias, su decisión no sería inteligente o, por mejor decir, sería irracional.

Los humanos y los agentes inteligentes tienen una gran flexibilidad en sus creencias: si descubren que son erróneas o incompletas pueden cambiarlas. Unos y otros disponen de reglas de inferencia que les permiten revisar sus creencias cuando se encuentran ante situaciones que contradicen las antiguas. Veamos un ejemplo: durante muchos siglos, los europeos creyeron que todos los cisnes eran blancos. Cuando se encontraron cisnes así en Australia –bastante violentos, todo sea dicho de paso–, los europeos cambiaron enseguida esa creencia errónea y modificaron sus libros de lógica, ricos en expresiones como "Todos los cisnes son blancos". (Hay excepciones a la flexibilidad de las creencias humanas, claro. Piénsese, por ejemplo, en La sociedad de la Tierra plana: la tozudez humana puede vencer holgadamente a cualquier conjunto de pruebas empíricas.).

Aparte de la mayor complejidad de las creencias humanas frente a las de los agentes, ambas difieren también en su codificación. Las humanas se codifican en nuestras redes neuronales; dependiendo de los estímulos externos, se generan más o menos dentritas (conexiones sinápticas) entre las neuronas. En los agentes inteligentes, las creencias se codifican mediante lenguajes lógicos y ontologías. Por ejemplo, la ausencia de una persona puede codificarse como la creencia (Luis estaEnCasa ausente), donde ausente es una constante que significa que la persona no está en casa o no está a la vista del agente y Luis es una instancia de una clase Persona. Usar lenguajes lógicos y ontologías limita la riqueza expresiva de las creencias.

Los deseos de modelo CDI, también llamados metas u objetivos, representan determinados estados que el agente quiere producir en su entorno, en sí mismo o en otros agentes. Corresponden a tareas que el agente debe realizar y que se consideran lógicamente consistentes entre sí: "buscar vuelo a Munich", "ganar a las cartas", "conseguir tablas en la partida", "encontrar el precio más barato". Un deseo como "quiero agua caliente" es inconsistente con el de "quiero agua fría"; como sucede con "quiero congelar la patata" y "quiero freír la patata", si sólo hay una. En lenguaje lógico, los deseos se expresan con expresiones como (conseguir (agua tieneTemperatura 20)) o (comprobar ((Luis estaEnCasa ausente) Y (luz esta apagada))).

En el modelo CDI, las intenciones son deseos que el agente se compromete a realizar (no todos los deseos pueden cumplirse, como bien sabemos los humanos). Son deseos muy intensos y limitados a los aspectos del entorno sobre los cuales el agente tiene algún grado de control. Un agente sólo tiene intenciones que considera posibles y que cree que puede lograr actuando de cierta manera.

Los agentes no necesitan considerar todos los posibles efectos secundarios de sus intenciones. Por ejemplo, consideremos un agente que pasea por Soria en invierno y tiene como objetivo llegar lo antes posible a una determinada calle. De repente se encuentra que el río Duero le impide el paso. Si decide cruzarlo nadando, enseguida se encontrará empapado. Aunque el agente decida llegar como sea a su destino lo antes posible y, por tanto, esté dispuesto a mojarse y pasar frío, eso no significa que el agente desee sumergirse en aguas heladas. Que el agente se moje no es una intención: si no lo consigue, no lo volverá a intentar.

Las intenciones dan lugar a cursos de acción –planes– que el agente sigue en un intento de cumplir sus intenciones. Cuando un agente tiene una intención, su actividad se centra en ella. La influencia de la teoría de Bratman sobre el razonamiento práctico en el modelo CDI resulta bien visible ahora: las salidas del proceso de decisión son las intenciones; y las salidas del proceso de búsqueda de medios para alcanzar su objetivo son los planes, que se ejecutan mediante acciones. Éstas provocan consecuencias que pueden cambiar las creencias, deseos, intenciones, planes y acciones del agente. Si las acciones del plan no le permiten conseguir su intención, intentará otro plan.

Si consideramos un agente con un deseo como (conseguir (Ana beber agua), una intención podría intentarse con el siguiente plan:

(ir nevera)
(buscar botellaAgua)
(sacar botellaAgua)
(botellaAgua llevarA Ana)
(botellaAgua entregarA Ana)

Como ejemplo de arquitectura de agentes inteligentes basada en el modelo CDI se puede citar JAM (http://www.marcush.net/IRS/irs_downloads.html). En esta arquitectura, las creencias, deseos e intenciones de los agentes se representan explícitamente en el código del agente; y las intenciones del agente se determinan dinámicamente mientras se ejecuta, de acuerdo con las creencias, deseos e intenciones programados.

En JAM, las creencias del agente se representan como hechos (FACTS) que se almacenan en un fichero de texto. Por ejempo, he aquí las creencias que podría tener un agente robot:

FACTS:
   // creencias del agente
   FACT nombre_robot "Ivan";
   FACT id_robot "03536D";
   FACT estado_robot "Correcto";
   FACT posicion_robot 10000 10000 0;
   FACT lugar_robot "Habitacion3";
   FACT objeto_encontrado "Falso";
   FACT objeto_entregado "Falso";
   FACT destino "Habitacion4";

He aquí un ejemplo de intenciones (llamados GOALS en JAM) y planes (cursos de acción para intentar cumplir las intenciones) para el agente robot en JAM:

PLAN: {
NAME: "Plan05"
GOAL: ACHIEVE recoger_destornillador
CONTEXT:
    FACT localizado "destornillador" $X;
    FACT localizado "robot" $X;
    FACT localizado "caja_herramientas" $Y;
BODY:
   EXECUTE print "Coge el destornillador en" $X “.\n”;
   ASSERT coger "destornillador";
   ACHIEVE localizado "robot" $Y;
   EXECUTE print "Deja el destornillador en" $Y ".\n";
   RETRACT coger "destornillador";
   ASSERT depositar "destornillador";
}

Con ASSERT se añaden nuevos hechos al conocimiento del agente. Con RETRACT se borran. CONTEXT especifica las situaciones para las cuales los planes son válidos.

Algunos autores creen incorrecto utilizar términos como creencias o intenciones aplicadas a agentes, pues son estados mentales que los programas o las máquinas no pueden tener. Para algunos, asignar a un agente palabras como "quiere" o "desea" es una forma de animismo (reconozco que definir persona como "aquel programa de computadora capaz de superar la prueba de Turing" me parece animismo en estado puro, adaptado a los tiempos modernos). Acierten o no, lo cierto es que resulta útil emplear conceptos intencionales porque facilitan entender la estructura de los agentes y su comportamiento.

En el campo de los agentes, los conceptos intencionales son metáforas y abstracciones que proporcionan maneras sencillas y familiares de describir, explicar y predecir el comportamiento de los agentes. El lenguaje cotidiano usa muchas metáforas ("Carlos funciona muy bien en el trabajo", "Carmen se encuentra en el otoño de su vida", "Sujete la pata de la mesa", "Dele a la luz", "Respete mis canas", "El televisor se niega a funcionar"), así que no es extraño que suceda lo mismo en el lenguaje informático y en el científico ("Conecte el ratón del ordenador", "El agente se comporta de manera errática", "El sistema ha caído", "Descargue un archivo de Internet", "El fotón sabe por qué rendija pasar"). Las abstracciones han resultado también muy provechosas en la informática: los módulos, los tipos de datos abstractos, las clases y los agentes son abstracciones que nos evitan trabajar con código máquina o con lenguaje ensamblador.

El investigador Yoav Shoham –que acuñó el término "programación orientada a agentes" en 1989 y ha intentado entenderlo desde entonces– pone el ejemplo de una computadora para explicar la utilidad del enfoque intencional en la informática: aunque puede conseguirse una descripción técnica de la computadora y de su sistema operativo, sería inapropiado recurrir a esas descripciones para explicar por qué aparece un menú cuando pulsamos un cierto icono con el ratón. Cualquier computadora es demasiado complicada para explicar cada operación que podemos realizar con ella.

Shoham también contrasta el ejemplo de la computadora con el de un interruptor de la luz. Aunque admite que el interruptor es un sistema que puede describirse muy bien con nociones intencionales ("El interruptor transmite corriente cuando cree que nosotros queremos que la transmita, y no en otros casos; apretar el interruptor es simplemente una manera de comunicar nuestros deseos"), reconoce que esa descripción es absurda y quizás infantil. A la pregunta "¿Por qué aceptamos la descripción intencional de la computadora y rechazamos la del interruptor?", Shoham responde: "La descripción intencional del interruptor no nos dice nada, porque esencialmente entendemos el mecanismo lo bastante para tener una descripción mecanicista y más simple de su comportamiento".

No siempre son útiles los modelos intencionales

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Monday, 16 Jun 2008 22:41
Una pequeña nota para tener como referencia aquí­ una interesante lista de buscadores semánticos en español. Se encuentra en: http://www.javi.it/semantic.html Página de lo más inaccesible, pero en fi­n, qué se le va a hacer, lamentablemente la mayorí­a de la gente interesada por la semántica no es consciente de la importancia de la accesibilidad :-( El apunte me lo ha pasado Martí­n Baldassarre :-) Y eso es todo... Bueno, añado que en la lista no aparece, porque aún no se ha publicado el buscador semántico desarrollado por la Fundación Sidar y cuya beta espero poder anunciar tras el verano.
Blogged with the Flock Browser

Tags: buscador, listas, semántica

Author: "Emmanuelle" Tags: "Aplicaciones prácticas"
Send by mail Print  Save  Delicious 
Date: Monday, 03 Mar 2008 08:40
Los agentes de software serán parte de la Web semántica, pero no está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 haya "islotes" semánticos. Sea como fuere, los agentes están aquí para quedarse. En este artículo veremos de dónde viene la tecnología de agentes.

Cada vez más, se necesitan programas o aplicaciones flexibles, que sean capaces de anticiparse a las necesidades de los usuarios de sistemas informáticos y de adaptarse a ellas. Los agentes son una solución a esa necesidad. Un agente de software es una entidad autónoma de software que puede interaccionar con su entorno. James Hendler considera que los agentes de software no difieren mucho de los agentes humanos: "… los agentes podrían encontrar posibles maneras de cumplir las necesidades de los usuarios y ofrecer al usuario elecciones para su realización. Del mismo modo que un agente de viajes podría darle una lista de varios vuelos que usted podría coger, o una elección entre volar o coger un tren, un agente de la Web podría ofrecer una lista de posibles maneras de obtener lo que necesita en la Web".

Los agentes proceden de los campos de la inteligencia artificial (IA) y de la ingeniería del software (en particular, de la orientación a objetos). Desde un punto de vista conceptual los agentes proceden del modelo de actores concurrentes que propusieron Carl Hewitt, Peter Bishop y Richard Steiger en 1973. Los actores, directos predecesores de los agentes, fueron definidos por Hewitt en 1977 como "objetos autocontenidos, interactivos y que se ejecutan concurrentemente, que poseen estado interno y capacidad de comunicarse" y como "agentes computacionales que tienen una dirección de correo y un comportamiento". Los actores se comunican mediante un intercambio de mensajes y llevan a cabo sus acciones concurrentemente (es decir, sus acciones pueden ejecutarse en paralelo, sin secuencias fijadas de antemano). La principal diferencia entre los actores y los agentes es que estos últimos suelen tener restricciones relacionadas con metas o propósitos.

Las relaciones y las diferencias entre los objetos y los agentes se detallan en http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos. La ingeniería de software tiende a adoptar enfoques un tanto totalitarios: todo es un actor, todo es un objeto…

Hay una fuerte relación entre los agentes y la IA: provienen del campo de la inteligencia artificial distribuida (IAD), que estudia métodos y técnicas para la resolución de problemas mediante la cooperación de diversas entidades distribuidas, autónomas e inteligentes. En la IAD se entremezclan dos disciplinas: la IA y los sistemas distribuidos. Un sistema distribuido es, según George Coulouris, "un sistema en el que los componentes de hardware y/o software localizados en computadores en red se comunican y coordinan sus acciones intercambiando mensajes". Aunque usted no supiera qué es un sistema distribuido, seguro que ha usado alguno. Si no fuera así, no estaría leyendo esto, pues Internet y la World Wide Web son sistemas distribuidos.

En la IAD, la colaboración de unas entidades con otras produce comportamientos colectivos que resuelven problemas que serían irresolubles si se abordaran individualmente o que proporcionan soluciones eficaces en cuanto a tiempo, velocidad o calidad. Un ejemplo de inteligencia "natural" distribuida nos la proporciona una colonia de termitas: la colaboración entre ninfas, obreras, soldados y la reina permite la supervivencia de la colonia. Las termitas por separado no podrían sobrevivir (los soldados no pueden alimentarse por sí solos, la reina apenas puede moverse y las obreras no pueden defenderse); pero su cooperación les ha permitido existir desde hace millones de años en este planeta. Quién sabe, quizás sobrevivan al Homo sapiens sapiens: en el gran libro de la evolución quedan muchas páginas por escribir.

La IAD consta de tres grandes ramas de investigación: los sistemas multiagente (que estudian sistemas en que un conjunto de agentes cooperan, coordinan y se comunican para conseguir un objetivo común), la solución distribuida de problemas (que estudia la solución de problemas mediante procesamientos descentralizados) y la inteligencia artificial en paralelo (que desarrolla métodos y algoritmos paralelos de IA). Dentro de la IAD, los agentes provienen de los sistemas multiagente, que son grupos de agentes autónomos, generalmente heterogéneos e independientes, que colaboran entre sí para conseguir ciertos objetivos; esta colaboración implica que cooperen, se coordinen y negocien unos con otros. En un sistema multiagente no hay un control global del sistema ni existe un lugar donde esté toda la información.

Tal y como se menciona en http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos, no es imprescindible que los agentes del sistema distribuido sean inteligentes (esto es, que tengan algún tipo de inteligencia artificial); la propia "inteligencia" puede obtenerse de la cooperación entre agentes "tontos". Este tipo de inteligencia se denomina inteligencia social, y es la empleada en los partidos de fútbol entre robots. En estos partidos, cada robot persigue dos metas bien simples: marcar gol y esquivar a los jugadores del equipo contrario. La combinación de los comportamientos individuales para lograr dichos objetivos hace emerger un comportamiento social semejante al de cualquier equipo de fútbol humano, salvo en la celebración de los goles. Las colonias de termitas, mencionadas antes, son ejemplos biológicos de inteligencia social –al igual que las colonias de hormigas o de abejas–. En las colonias, cada individuo tiene unas metas individuales, programadas genéticamente, más complejas que las de los robots futbolistas.

Los sistemas multiagente se enfrentan a varias preguntas: ¿qué lenguajes deben usar los agentes para comunicarse?, ¿cómo deben coordinarse los agentes para que consigan los objetivos del sistema?, ¿cómo pueden los agentes resolver los conflictos (de intereses, p. ej.) que pueden surgir mientras colaboran?, ¿qué relaciones sociales surgen en una comunidad de agentes?

Gran parte de las propiedades y ventajas de los sistemas multiagente proceden de los sistemas de IA distribuida. Veamos algunas de ellas:

  • Modularidad. Según el Dictionary of Object Technologies: The Definitive Desk Referente, la modularidad es "la descomposición lógica de las cosas (por ejemplo, responsabilidades y software) en agrupaciones simples, pequeñas (p. ej., requisitos y clases, respectivamente), que aumentan las posibilidades de lograr las metas de la ingeniería de software". La programación modular simplifica el desarrollo de sistemas de software y reduce su coste. (Si quiere saber por qué la modularidad ganó la II Guerra Mundial puede consultar http://www.javahispano.org/tutorials.item.action?id=25 o http://www.javahispano.org/contenidos/es/orientacion_a_objetos_11/.)
  • Bajo acoplamiento. Suele utilizarse el término acoplamiento para designar la dependencia entre módulos o componentes de un sistema. En un sistema de software de bajo acoplamiento, cada componente depende lo mínimo posible de los otros. En estos sistemas, los componentes pueden comunicarse a pesar de tener diseños e implementaciones muy distintas. Por el contrario, en un sistema de acoplamiento fuerte, los componentes están diseñados para trabajar estrechamente con otros y dependen fuertemente unos de otros. Por ejemplo, el controlador de una impresora tiene un acoplamiento muy fuerte con la plataforma en que se ejecuta: pasar de un PC a un Mac requeriría programar de nuevo el controlador. El bajo acoplamiento de los sistemas multiagente se traduce en flexibilidad (si hay que modificar algún agente, los cambios apenas repercutirán en el resto de los agentes) e interoperabilidad (los agentes pueden trabajar juntos aunque hayan sido diseñados y programados independientemente).
  • Fiabilidad. Que un agente del sistema deje de funcionar no implica que los demás lo hagan.
  • Eficacia. Las funciones del sistema se pueden dividir en tareas repartidas entre los agentes, con lo cual se consigue paralelismo (los agentes trabajan a la vez en distintas máquinas).
  • Flexibilidad. Se pueden añadir y eliminar agentes dinámicamente, y éstos pueden tener diseños e implementaciones muy distintas.
  • Independencia de la plataforma. Los agentes pueden funcionar en distintas plataformas. Esta independencia está relacionada con el bajo acoplamiento de los sistemas multiagente.
  • Velocidad. Como los agentes que cooperan entre sí se ejecutan concurrentemente, aumenta la velocidad de ejecución del sistema en conjunto.
  • Redundancia. La utilización de agentes redundantes (es decir, que desempeñan una misma tarea) mejora la tolerancia a fallos del sistema.
  • Escalabilidad. El sistema mantiene su eficacia cuando aumenta significativamente el número de usuarios del sistema.

Si bien los agentes proceden del campo de la IA y forman un subcampo relevante de ella, cada vez más en continua expansión, la IA no termina en los agentes. Los agentes no resuelven todos los problemas a los que se enfrenta la IA. A saber: comprensión automática de textos en lenguaje natural, traducción de textos, reconocimiento y síntesis automáticas del habla, construcción de sistemas capaces de pensar de manera original o creativa, introducción del sentido común en máquinas, fabricación de sistemas de reconocimiento de rostros o de formas… Dirá el escéptico: "¿No debería la IA resolver todos esos problemas antes de anunciar lo listos que son los agentes?". Pobre escéptico, porque con esa exigencia jamás habría visto un agente en su vida (ni en varias vidas, si cree en la reencarnación). Dudo mucho que algún lector llegue a ver una máquina que hable así espontáneamente: "Sé que últimamente he tomado muy malas decisiones, pero puedo asegurarle que mi trabajo se normalizará. Todavía tengo gran entusiasmo y confianza en la misión, y quiero ayudarle". Hasta el momento, los agentes inteligentes trabajan en dominios muy limitados (la Web, bases de datos, colecciones de documentos, correo electrónico) y realizan tareas muy sencillas. Así, necesitan muy poca inteligencia y no tienen que enfrentarse a muchos de los problemas de la IA aún sin solución.

¿Adónde van los agentes? Por ahora, a todas partes: cada vez hay más aplicaciones comerciales y académicas basadas en ellos. Si al final son sustituidos por otra tecnología (basada en "siervos", por ejemplo), puede estar seguro de que oiremos frases como éstas: "Todo es un siervo", "La tecnología de siervos aumentará la productividad de las empresas", "Los siervos abren la puerta a una nueva era de tecnología", "Con los siervos, los usuarios no perderán el tiempo en tareas repetitivas"…

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Tuesday, 08 May 2007 09:39
Como sucede con toda nueva rama del conocimiento, existe bastante confusión en cuanto al vocabulario de las tecnologías semánticas. En este artículo me centro en explicar qué se entiende por agente, agente inteligente y agente semántico, términos que aparecen casi siempre que se habla de la Web semántica. A fin de resaltar las semejanzas y diferencias entre ellos, usaré definiciones y ejemplos.

Si consultamos el diccionario de la Real Academia Española, veremos que agente significa "Persona que obra con poder de otra". Si actualizamos un poco la definición ("Programa o máquina que obra con poder de una persona o de otro programa o máquina"), tendremos una primera idea de lo que se entiende por agente en ingeniería.

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 (la Web, intranets, etc.), se habla de agentes de software; en entornos físicos, los agentes pueden ser animales, personas, robots o autómatas. Por ejemplo, el vehículo Mars Pathfinder –que recorrió la aherrumbrada superficie de Marte durante varios meses de 1997– era un agente en un entorno físico bastante agresivo para la vida humana.

Ejemplo de agente físico

En lo que sigue consideraré únicamente agentes de software, no robots ni autómatas. Según Michael Wooldridge, un agente es un sistema de software capaz de actuar autónoma y flexiblemente en un entorno cambiante. Para Gerhard Weiss, un agente es una entidad computacional que percibe y actúa autónomamente en su entorno. Ambas definiciones coinciden en que los agentes gozan de cierta libertad de actuación en su entorno; es decir, no se limitan a efectuar ciertas tareas siempre de la misma forma, sino que tienen sus propias “ideas” sobre cómo alcanzar sus objetivos. Perdóneme el lector o la lectora por personificar a los agentes: les entristece mucho que los traten como programas o subrutinas.

Según Jeffrey Bradshaw, las principales características de los agentes son éstas (no todas son obligatorias y algunas pueden darse en mayor o menor grado):

  • Persistencia: El código de un agente se ejecuta continuamente, no cuando el usuario lo decide, y decide por sí mismo cuando deje ejecutar alguna acción. Los agentes siempre permanecen activos: se ejecutan en un bucle infinito y observan su entorno, actualizan su estado y determinan qué acciones realizar. Se comportan como buitres (siempre mirando, siempre esperando a que llegue el turno de actuar), pero sin sus siniestras intenciones.
  • Autonomía: Un agente puede tomar decisiones sin la intervención humana o de otros agentes. Es decir, para cumplir sus objetivos, un agente controla sus propias acciones.
  • Reactividad: Un agente es capaz de percibir su entorno y mantener un vínculo constante con él, de modo que puede responder adecuadamente a los cambios. Los agentes más reactivos tienen en cuenta la posibilidad de que se produzcan fallos o de que las cosas no vayan como se esperaba.
  • Proactividad: Un agente no actúa dirigido solamente por los sucesos que se producen en su entorno, sino que también toma iniciativas para lograr sus objetivos. Es decir, los agentes reconocen y utilizan las oportunidades que se les presentan. Las iniciativas pueden proceder de experiencias pasadas, pues los agentes aprenden del pasado.
  • Habilidad social: Un agente constituye una entidad social integrada en una sociedad, en la cual hay tareas, recursos y papeles que se distribuyen entre los agentes. Algunos objetivos sólo se pueden conseguir mediante la colaboración con otros agentes o con humanos.

Como los agentes son programas, ¿debemos concluir que los programas son también agentes? Para contestar a la pregunta, consideremos un programa conversor de euros a francos suizos. El programa funciona así: cada vez que un usuario ejecuta el programa, éste se conecta por Internet a los mercados de divisas, extrae el tipo de cambio –que fluctúa constantemente– y lo presenta por pantalla. El programa es, en cierto sentido, consciente de su entorno porque devuelve una salida (un tipo de cambio) tras recibir una entrada (la ejecución del programa) y porque se conecta a los mercados de divisas. Sin embargo, no es un agente: su salida actual no afecta a sus futuras salidas; dicho de otro modo, no tiene “memoria” de sus actos ni puede aprender de ellos. Además, el programa carece de persistencia: sólo permanece activo un tiempo muy breve; una vez que devuelve el tipo de cambio, se vuelve inactivo. Vemos, en definitiva, que no todos los programas son agentes.

Muchas personas piensan que los agentes no son más que objetos con algunas funciones añadidas; según ellos "un agente es un objeto que… [aquí añaden sus características favoritas]". Otros van más lejos: afirman que la única diferencia entre ellos radica en que "agente" es una palabra de moda, como en su día lo fue "objeto". (Si desea saber más sobre objetos, clases y la programación orientada a objetos, puede consultar http://www.javahispano.org/tutorials.item.action?id=25 y http://www.javahispano.org/tutorials.item.action?id=33). Existen ciertas semejanzas entre objetos y agentes: en primer lugar, se caracterizan por su estado y por su comportamiento; en segundo, se comunican entre sí mediante mensajes.

Con todo, también hay diferencias entre unos y otros. Primera: los objetos no tienen ningún control sobre sus acciones, que están determinadas desde su creación; por el contrario, los agentes las controlan para cumplir sus objetivos. Éstos pueden tener un comportamiento impredecible. Por ejemplo, si se pide a un agente que compre algún CD barato en alguna tienda, cualquier resultado es posible: el agente podría volver con Power, Corruption and Lies de New Order o con un CD de cantos hindúes del siglo V antes de Cristo, o sin nada. A diferencia de los objetos, los agentes pueden decir "no" (es más, algunos gozan con eso).

Segunda diferencia: los agentes gozan de más autonomía y flexibilidad que los objetos, tan esclavos ellos. Como las clases definen los métodos y atributos como públicos o privados, los objetos (instancias de las clases) no pueden cambiar la visibilidad de métodos y atributos. Si el método dispararFlecha de un objeto arcoOlímpico es público, el objeto no puede impedir que otros objetos lo usen. Un agente, en cambio, sí podría impedir que otros agentes usaran su dispararFlecha (volviéndolo privado, p. ej.), siempre que eso favoreciera sus objetivos.

Tercera diferencia: tal como se mencionó antes, los agentes siempre están activos (vigilan su entorno, actualizan su estado y determinan qué acciones son apropiadas); los objetos vienen a ser muertos a tiempo casi completo, porque sólo “viven” (están activos) cuando sus métodos son llamados por otros objetos.

Cuarta y última diferencia: los objetos jamás se equivocan (en todo caso, se equivocan quienes los programan), mientras que los agentes puede tomar decisiones equivocadas e incluso aprender de sus errores pasados. Si un objeto tiene un método calcularIVA que aplica un porcentaje equivocado (14% en lugar de 16%, verbigracia), el objeto nunca aprenderá nada de ese error, pues ya nació –mejor dicho, se instanció– con él.

Diferencias entre agentes y objetos


Suele usarse el término agente inteligente para referirse a agentes dotados de cierta inteligencia artificial y que, por tanto, gozan de un alto grado de autonomía, reactividad, proactividad y habilidad social. El concepto de inteligencia resulta sumamente escurridizo: algunos investigadores piensan que las máquinas nunca alcanzarán una inteligencia como la humana. En apoyo de esta opinión acude este hecho: el sentido común resulta más difícil de reproducir que cualquier habilidad técnica. Otros investigadores piensan en la inteligencia como un fenómeno emergente (los fenómenos emergentes son propiedades de un sistema complejo que no pueden reducirse a las propiedades de sus partes constituyentes). En consecuencia, piensan que la inteligencia podría alcanzarse, en principio, a partir de partes constituyentes no biológicas. Para no entrar en discusiones que llevan ocupando a los filósofos desde hace siglos, empleo el término inteligencia para denotar la capacidad de adaptarse al medio y de aprender (es decir, descubrir información). Hasta el más escéptico en cuanto a las posibilidades de la inteligencia artificial coincidirá conmigo en que existen ya programas que permiten descubrir información mediante asociaciones y búsqueda de patrones.

Según Barbara Hayes-Roth, los agentes inteligentes realizan continuamente tres funciones: perciben las condiciones cambiantes del entorno; actúan para modificar las condiciones del entorno; y razonan para interpretar percepciones, resolver problemas, extraer inferencias y determinar acciones.

Algunas personas usan agente inteligente como sinónimo de agente, cuando en realidad un agente no tiene por qué tener "inteligencia" (piénsese en un cliente de correo, p. ej.). Otras reservan agente inteligente para los agentes que contienen planificaciones, calendarios, reglas, etc. Se suele emplear el término bot (abreviatura de robot) para los agentes que, siguiendo reglas estrictas e invariables, realizan tareas repetitivas: buscar productos, rellenar cuestionarios, mostrar noticias sobre un determinado asunto… Los bots usados por los buscadores de información –Google, Yahoo, MSN Search– para construir sus bases de datos se denominan arañas.

Los agentes inteligentes suelen relacionarse con los sistemas expertos. Un sistema experto es un programa que intenta imitar el comportamiento de un experto en un dominio concreto. Por ejemplo, un sistema experto en medicina podría, a partir de los síntomas del enfermo, emitir diagnósticos. Los agentes difieren de los sistemas expertos en dos aspectos esenciales: primero, éstos no interaccionan con el entorno; segundo, los agentes suelen desarrollarse con la intención de colaborar con otros agentes, mientras que los sistemas expertos no colaboran ni intercambian información entre ellos.

Dar una clasificación completa de los agentes es tarea harto compleja; pues cada autor suele proponer su propia clasificación, a menudo tan discutible como cualquier otra. Los agentes pueden clasificarse según su movilidad (estáticos, dinámicos), según si son deliberativos (contienen modelos simbólicos de su entorno y reglas de razonamiento) o reactivos (no poseen modelos simbólicos de su entorno y, por tanto, actúan siguiendo el esquema estímulo-respuesta), según las tareas que desempeñan, las características que predominan, etc. Hyacinth S. Nwana clasifica así los agentes: agentes colaboradores, agentes de interfaz, agentes móviles, agentes de información, agentes reactivos, agentes híbridos y sistemas heterogéneos de agentes.

Si consideramos como criterio de clasificación las tareas que desempeñan los agentes, existen muchos tipos de agentes. Los más conocidos están vinculados al comercio electrónico: los agentes de compra comparativa se encargan de localizar mercancías al mejor precio posible; los de subasta permiten a los usuarios pujar por una mercancía o bien; los de negociación automatizan los procesos de negociación habituales en las transacciones comerciales. En general, en casi cualquier dominio pueden usarse agentes. Por ejemplo, el proyecto Guardian (http://ksl-web.stanford.edu/projects/guardian/) desarrolló un agente inteligente para monitorizar a los pacientes de las unidades de cuidados intensivos. Este agente permite, entre otras cosas, controlar constantemente el estado de los pacientes, definir los tratamientos y cuidados necesarios a corto y largo plazo, así como diagnosticar posibles enfermedades y complicaciones. Debido a lo delicado de su tarea, el agente reacciona rápidamente a cualquier modificación del estado del paciente.


Los sistemas multiagente son sistemas distribuidos de software formados por un conjunto de agentes autónomos (nodos) que trabajan juntos para resolver problemas. Asignándose tareas unos a otros y colaborando, los agentes pueden solucionar problemas que serían irresolubles para un agente aislado. En un sistema multiagente no hay un control global del sistema ni un lugar donde esté toda la información. La "inteligencia" de un sistema multiagente puede obtenerse de dos maneras. En primer lugar, mediante el uso de agentes inteligentes para el sistema. En segundo lugar, usando agentes reactivos (como expliqué antes, son aquellos que reaccionan siguiendo el esquema conductista: estímulo-respuesta). En este caso, la inteligencia colectiva del sistema es un fenómeno emergente.

Las enormes posibilidades de los sistemas multiagente se vislumbran en Robocup Rescue (puede encontrarlo en http://www.rescuesystem.org/robocuprescue/), un sistema multiagente que simula la respuesta de los equipos de rescate a cualquier desastre natural (un terremoto, por ejemplo). La simulación consiste en la reconstrucción fotográfica de un desastre y, luego, en manejar un conjunto de agentes inteligentes (que hacen el papel de víctimas, policías, bomberos, etc.) en ese entorno. El objetivo de Robocup Rescue consiste, por un lado, en reducir al mínimo los daños en el mundo virtual que sufre el desastre; y, por otro, en sacar de la simulación conclusiones que puedan aplicarse en el mundo real a la coordinación de equipos de rescate. La complejidad de Robocup Rescue es ingente, por cuanto maneja situaciones como rescatar personas atrapadas en edificios en ruinas, en llamas o inundados. RoboCup Rescue es también una competición: los participantes construyen sus propios agentes y compiten por reducir al mínimo los efectos de los desastres naturales.

Existen muchas plataformas para crear agentes e interconectarlos: IBM Aglets, ZEUS, JADE (Java Agent Development Framework), ABLE, MadKit, JATLite (Java Agent Template Lite), Grasshopper, AgentBuilder, FIPA-OS, Concordia, Gossip, FarGo, Voyager. Si usted no tiene experiencia en agentes y desea probar alguna plataforma, le recomiendo empezar con AgentBuilder (http://www.agentbuilder.com/Documentation/product.html). Es un conjunto integrado de herramientas que permite desarrollar agentes inteligentes y aplicaciones basadas en ellos, sin necesidad de programar (la versión PRO permite desarrollar también aplicaciones multiagente). Recomiendo esta solución comercial porque me parece una de las más sencillas y rápidas para quien carezca de experiencia en el desarrollo de agentes. JADE y ABLE son más potentes que AgentBuilder, pero también son más complejas de usar.

ZEUS (http://labs.bt.com/projects/agents/zeus/) es una herramienta para desarrollar sistemas multiagente. Es una herramienta educativa y no necesita conocimientos de programación. Tanto las ontologías como los agentes se crean mediante asistentes visuales, como sucede con AgentBuilder. Al final del proceso de creación de los agentes, ZEUS genera código fuente escrito en Java. Como Java es un lenguaje multiplataforma (véase, por ejemplo, http://www.javahispano.org/articles.article.action?id=55), el código compilado puede ejecutarse en las plataformas más habituales (una plataforma es una combinación de hardware y software que permite ejecutar aplicaciones; por ejemplo, Microsoft Windows/Intel x86 es la plataforma más común). En consecuencia, con ZEUS pueden construirse sistemas multiagente donde un agente "viva" (perdón, resida) en un PC con Linux, otro en un Macinstosh con Mac OS X, un tercero en una estación de trabajo UNIX…


Los agentes semánticos son agentes que usan tecnologías de la Web semántica (RDF/RDFS, OWL, ontologías) para cumplir sus objetivos. Puede obtener una descripción de tales tecnologías en http://www.javahispano.org/tutorials.item.action?id=55. 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 (intranets de empresas, por ejemplo); 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 Navigator (http://www.amblit.com/products/AmblitNavigator.html) incluye un asistente (Intelligent Personal Agent) al que se le puede enseñar qué desea el usuario y cuándo lo desea.

Este agente admite preguntas como las siguientes: ¿Cuál es la cotización de Endesa? ¿Qué tiempo hará en París la próxima semana? ¿Cuál es el número de teléfono de María Senso Huertas? También se le pueden dar órdenes del tipo "Búscame un mapa de Hannover" o "Averigua dónde puedo encontrar la película Les 400 coups". 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 (puede encontrar más información sobre ontologías en http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven).

Ejemplo de agente semántico del tipo agente personal


Para mostrar las posibilidades de los agentes semánticos, considero el siguiente ejemplo: Heliodoro Gómez ha puesto en marcha una tienda de lámparas en su barrio. Se acerca la hora de hacer el primer pago fraccionado del IRPF y no sabé qué impreso usar ni cómo calcular el rendimiento neto empresarial. Preocupado por hacer mal las cosas y recibir luego una simpática carta de Hacienda, Heliodoro ha decidido usar un agente semántico para encontrar un asesor contable y fiscal. Para ello, se conecta a la Web semántica y elige un agente personal que parece fiable.

Escribe en un cuadro de texto "Busco asesor contable y fiscal (cerca de la calle Arboleda, en Soria). Quiero que sea barato y bueno", y el agente se pone en marcha. Primero obtiene una lista de todos los asesores que están a menos de dos kilómetros de la calle Arboleda; luego, para comprobar la calidad de cada uno, investiga si tienen reclamaciones de clientes, quejas ante los colegios profesionales o denuncias. A continuación, busca los que tienen tarifas bajas. Finalmente, selecciona a dos asesores y se los propone a Heliodoro.

A éste no le gusta ninguno de los dos. Uno no es todo lo barato que Heliodoro desearía, y el otro no puede atenderle hasta dentro de dos semanas (está de viaje de novios). Decepcionado con los resultados, Heliodoro escribe a su agente semántico: "Mira otras opciones". El agente repite el trabajo que había hecho, pero no encuentra más asesores que cumplan las condiciones del usuario. Entonces prepara una lista de los asesores cercanos a la calle Arboleda y de buena reputación, independientemente de que sean caros o baratos; acto seguido, contacta con los agentes semánticos de esos asesores para intentar negociar una reducción de las tarifas que aplican. Sólo uno acepta la reducción. Tras una rápida negociación entre agentes, la reducción se fija en un 20% (con la condición de que el cliente pagará cada trimestre de asesoría por anticipado y al contado).

El agente muestra a Heliodoro los datos del asesor elegido y la tarifa que ha quedado establecida. Heliodoro desconfía de la tarifa, porque le parece demasiado barata, y le pregunta a su agente: ¿Cómo has negociado la tarifa? ¿Cómo sabes que ese asesor es bueno? El agente, dotado de paciencia infinita, le proporciona pruebas de todo (para saber más sobre estas pruebas, puede consultar http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza). Contento por ahorrarse un dinerillo, Heliodoro cierra su agente personal y se levanta del ordenador. Mientras se prepara un café, piensa en la Web semántica: "Es buena idea esto de la nueva Web. ¡Y pensar que hace diez años parecía ciencia-ficción! Hasta me están cayendo simpáticos los bichos esos, los agentes".

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Tuesday, 30 Jan 2007 08:59
El esqueleto de la Web semántica se compondrá de metadatos asociados a los documentos y archivos de la Web actual. Sin embargo, las verdaderas capacidades de la Web sólo se conseguirán aplicando lógica y confianza a los metadatos. La lógica permitirá extraer automáticamente conclusiones de la información almacenada y hacer búsquedas de información muy especializadas. La confianza hará que los usuarios de la Web obtengan respuestas fiables a sus consultas y que no desconfíen de los agentes inteligentes y de sus acciones. Mediante firmas y certificados digitales se protegerá a los usuarios de posibles usos malintencionados de la información que proporcionen a los agentes.

Son muchos los que piensan que la Web semántica será una colección de recursos (documentos, imágenes, archivos de audio, de vídeo, etc.) que incluirán metadatos. Esta creencia no es del todo correcta, pues alcanzar el verdadero potencial de la Web semántica precisará ir más allá de los metadatos.

Para entender mejor las limitaciones de los metadatos, debemos antes comprender bien qué son. Etimológicamente, "metadato" significa "dato sobre datos". Los metadatos se encuentran a la vista de todo el mundo: los códigos de barras –que describen datos sobre el producto: precio, código...– son metadatos. El catálogo de una editorial es un metadato porque describe sus libros y revistas. En una revista científica, por ejemplo, las palabras del resumen de cualquier artículo son metadatos. El esquema de una base de datos es otro ejemplo de metadatos. Decir que el campo "Autor" de una base de datos es un dato de tipo String equivale a describir los datos que son válidos para ese campo (una fecha de tipo Date, vaya por caso, no sería válida en ese campo).

Ejemplo de metadatos en un artículo científico

En general, los metadatos describen el contenido, la calidad, la condición o el origen de los datos, aunque pueden describir cualquier característica de éstos. En otras palabras, enriquecen semánticamente los datos, pues hacen más fácil su interpretación, así como la del contexto en que pertenecen.

Una de las funciones más conocidas de los metadatos es su uso para mejorar la búsqueda de información, aunque esta función aún no se emplea en todo su potencial. Hoy no existe ningún buscador comercial que "entienda" que Miguel de Cervantes fue un "escritor español". Por lo tanto, un buscador en que se busque información mediante las palabras clave "escritor español", no devolverá ningún resultado que contenga "Miguel de Cervantes" o que tenga un enlace a una página relacionada con este escritor.

Consideremos otro ejemplo: si introduce en Google el texto "Quiero averiguar qué tiendas del mueble fabrican sillones en Soria o alrededores" (sin comillas), comprobará que la búsqueda genera unas respuestas inútiles, que no tienen nada que ver con la intención del usuario. Los metadatos pueden usarse para proporcionar búsquedas más precisas. Si los documentos y disposiciones de las administraciones públicas, vaya por caso, se anotaran semánticamente con metadatos, sería posible acceder a la página de su ayuntamiento, activar el servicio de consultas y escribir en un área de texto preguntas como “Me voy a cambiar de domicilio, ¿qué tramites debo seguir?”. A continuación, el servicio de consultas mostraría la respuesta (acuda al ayuntamiento para cambiar el empadronamiento, renueve el DNI con la dirección nueva, etc.) e incluso podría mostrar una lista de preguntas similares de otros usuarios, con sus correspondientes respuestas. (Si es usted aficionado o aficionada a mundos virtuales como Second Life, imagínese a un sensual avatar respondiendo a la consulta y moviéndose seductoramente por la pantalla: tratar con la administración podría ser hasta divertido.) Actualmente, toda la información sobre esos tramites está en la Web, pero se halla desperdigada entre muchas páginas web, documentos en Word, en PDF, etc. Se necesita una persona para que vaya consultando esas páginas y documentos y para que vaya recopilando la información de interés. Anotando con metadatos los textos, un buscador podría recopilar por nosotros la información buscada.

El ejemplo propuesto resulta muy simple, pero hay infinidad de búsquedas más complejas en que los metadatos serían muy útiles para buscar información. Imagine, por ejemplo, consultas como éstas: ¿Qué pasos debe seguir una empresa para solicitar deducciones por I+D? ¿Qué requisitos se necesitan para opositar a profesor de secundaria en Pontevedra? ¿Dónde hay monumentos visigodos en Castilla y León? ¿Qué rutas turísticas puedo seguir en Asturias? ¿En qué proyectos europeos participa la empresa AIDIMA?

Desarrollaré sólo un caso: imagine una empresa multinacional de consultoría –con oficinas en más de 50 países y con más de 13.000 empleados– que desea recibir respuestas a preguntas como "¿Qué empleados tienen experiencia en modelado empresarial?", "¿Qué empleados podemos usar para el contrato con la empresa LogicHouse, que necesita implantar un sistema distribuido basado en J2EE, RMI y CORBA?". Como es de esperar, buscar esa información entre los currículos de miles de empleados precisaría semanas o meses, y consumiría el tiempo de muchas personas. Anotando con metadatos cada currículo, un buscador semántico podría contestar a esas preguntas muy rápidamente.

La Web semántica tendrá su base en los metadatos. Las ontologías actuarán como metadatos, y los recursos de la red se marcarán con instancias de las ontologías. (Para saber más sobre ontologías, véase http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven y http://www.javahispano.org/tutorials.item.action?id=55 ). En la siguiente figura se muestra, como ejemplo, una ontología sobre música. Louis Armstrong es una instancia de la clase Intérprete.

Ejemplo de una ontología musical


Mediante el uso de ontologías como forma de añadir metadatos a los recursos de la Web actual, la Web semántica se parecerá, muy simplificadamente, a la figura a continuación.

Así será el futuro de la Web


Para ver cómo se "marcan" con metadatos los recursos de la web (es decir, cómo se anotan semánticamente), consideremos un documento tan simple que sólo contiene una frase: "Luis tiene un perro llamado Fido". Usando las tecnologías de la Web semántica, es posible construir una ontología con las clases Persona, Perro, Mamífero, Rabia y Enfermedad, y las relaciones entre ellas (por ejemplo, un Perro es un Mamífero). Para construir una ontología se puede usar cualquier editor de ontologías, como Protégé (http://protege.stanford.edu) o OilEd (http://oiled.man.ac.uk/download.shtml). Para hacer anotaciones semánticas a partir de ontologías pueden emplearse herramientas como Annotea (http://www.w3.org/2001/Annotea/) u OntoMat Annotizer (http://annotation.semanticweb.org/ontomat/index.html).

Ejemplo de ontología

Las palabras del documento "Luis" y "Fido" pueden asociarse a las clases de la ontología. Si utilizamos el lenguaje de la orientación a objetos (http://www.javahispano.org/tutorials.item.action?id=25), diríamos –por ejemplo–, que Fido es una instancia de Perro. Esta asociación es un tipo de metadatos, pues proporcionan información adicional sobre la información del documento. Incluso se podría vincular a cada clase de la ontología una página web donde estuviera su definición. Así, la página asociada a Rabia diría algo así: "La rabia (hidrofobia) (Código CIE-9-MC: 071) es una enfermedad viral infecciosa que afecta al sistema nervioso de los seres humanos y otros mamíferos. Las personas contraen la enfermedad por la mordedura de un animal rabioso. Cualquier animal silvestre como un mapache, zorrillo, zorro, coyote o murciélago puede tener rabia y transmitirla a los seres humanos."

Aunque los metadatos anteriores pueden aclarar el sentido en que se usan los conceptos a las personas que lean el documento (en este caso, "rabia" se usa en el sentido médico, y no como "emoción primaria intensa y paroxística)", la utilidad de éstos resulta muy limitada. La potencia de la Web semántica no estriba en la mera presencia de metadatos, sino en la combinación de metadatos con la lógica y la confianza en la información.


La lógica, disciplina que estudia los principios del razonamiento, es más general que los metadatos o las ontologías y permite descubrir conocimientos y relaciones ocultos entre marañas de datos. Un motor de inferencias o razonador (programa que genera deducciones siguiendo reglas lógicas) que procese los metadatos del documento anterior deducirá automáticamente que Fido puede contraer la rabia, pues Fido es una instancia de la clase Perro, y ésta es una subclase de Mamífero. Por lo tanto, lo más adecuado sería vacunarlo cuanto antes.

Consideremos la siguientes sentencias en OWL (un lenguaje lógico de ontologías).

Class(a:taxista complete intersectionOf(a:persona restriction(a:conduce someValuesFrom (a:taxi))))
Class(a:conductor complete intersectionOf(a:persona restriction(a:conduce someValuesFrom (a:vehiculo))))
Class(a:taxi partial a:vehiculo)

Un razonador deducirá de lo anterior que, como un taxista es una persona que conduce un taxi y un taxi es un vehículo, un taxista, por conducir un vehículo, debe ser un conductor.

Veamos otro de sentencias escritas en OWL, que ahora contienen instancias (individuals), no sólo clases:

Individual(a:Blanquita type(owl:Thing) value(a:es_mascota_de a:Miguel))
Individual(a:Miguel type(owl:Thing))
ObjectProperty(a:tiene_mascota domain(a:persona) range(a:animal))
ObjectProperty(a:es_mascota_de inverseOf(a:tiene_mascota))

Teniendo en cuenta que es_mascota_de está definida como propiedad inversa de tiene_mascota y las restricciones de dominios y rangos para tiene_mascota, un razonador podrá deducir que –como Blanquita es la mascota de Miguel y éste es una persona y sólo las personas pueden tener mascotas– Blanquita debe ser un animal, y obrar en consecuencia (no permitiendo, por ejemplo, que a Blanquita se le asigne por error un número de seguridad social).

Para la Web semántica, la gran ventaja de la lógica reside en que proporciona explicaciones para las deducciones. Éstas son muy importantes para la Web semántica porque los agentes inteligentes de la nueva Web las usarán para tomar decisiones, ejecutar acciones y colaborar entre ellos (para que las deducciones sean válidas, deben basarse en afirmaciones fiables; volveré más adelante sobre este asunto). Por caso, un agente que reciba una reclamación de otro podrá comprobar por sí mismo la información del segundo y verificar que la reclamación es válida. Así, las deducciones aumentarán la confianza del usuario en los agentes de la Web semántica.

Consideremos, en el ejemplo de Fido, que el agente inteligente de su propietario solicita una vacunación antirrábica al agente de un veterinario. El segundo agente preguntaría al primero por el motivo de su petición (no todos los animales pueden sufrir la rabia). Acto seguido, el primero enviaría los metadatos (Fido es instancia de la clase Perro, Perro es subclase de Mamífero, etc.); y el segundo usaría sus reglas de inferencia para deducir que la petición de la vacuna antirrábica para Fido es válida. En consecuencia, el agente del veterinario asignaría una fecha y un día para la vacunación y lo anotaría en la agenda electrónica del veterinario.


Una deducción es cierta si se basa en datos fiables. Es aquí donde entra en juego una palabra mencionada ya antes: la confianza. En la figura de la Web semántica podemos ver que la capa de confianza (Trust) ocupa el lugar superior.

Estructura de capas de la Web semántica

La confianza es un concepto que aparece a menudo cuando se consideran sistemas de software o comercio electrónico. Cuando decimos “Confío en una afirmación o un documento”, queremos decir que confiamos en su verdad; cuando decimos “Confío en un programa o en un agente”, tratamos de expresar que confiamos en que funcionan correctamente.

En la Web semántica, la confianza afecta a las siguientes áreas:

  1. Certificación: cuando un agente trabaja con agentes que pertenecen a otras organizaciones, debe confiar en alguna "autoridad de confianza" que autentifique esos agentes. De la misma manera que hay empresas independientes que certifican que una página web pertenece a una empresa (piénsese en el candado amarillo de muchas páginas), deberá haber empresas que certifiquen que un agente de la Web semántica ha sido verdaderamente desarrollado por una compañía.
  2. Credibilidad: cuando un agente proporciona información a un usuario o a otro agente, ¿hasta qué punto es correcta? La información puede ser poco fiable porque las fuentes de información no lo sean, porque no estén actualizadas o porque los algoritmos internos del agente tengan defectos.
    La poca fiabilidad de algunas fuentes de información salta a la vista. Por ejemplo, los foros de bolsa suelen estar plagados de falsedades y de opiniones basadas en sueños imposibles y corazonadas (algunas noticias económicas, también). ¿Qué fiabilidad se le debería dar a la frase "Al inversor que compró acciones de Terra Lycos a 157 euros yo le diría, con la mano en el corazón, que ha hecho una buena inversión"? Esta frase –merecedora de ser inscrita en mármol funerario para que sirva de ejemplo a las generaciones venideras– la pronunció Joaquín Agut, presidente de Terra, en mayo de 2001. Es un claro ejemplo de que, a veces, la información puede merecer poco crédito porque su emisor carece de neutralidad o tiene motivos para proporcionar información no del todo veraz o exacta (los resultados de Terra no justificaban su precio en absoluto, pero reconocerlo hubiera perjudicado los intereses de la compañía y de algunas agencias de bolsa).
  3. Abuso de confianza: cuando un usuario o una organización proporcionan información a un agente de un tercero, es posible que ésta se emplee para los propósitos del propietario del agente, y no en beneficio de aquéllos. En el mejor de los casos, el uso de un agente así puede resultar inútil para quien lo usa; en el peor, puede resultar contraproducente e incluso perjudicial.
    Si una empresa, vaya por caso, proporciona a un agente malicioso información sobre sus clientes y proveedores creyendo que éste le ayudará a planificar sus compras y ventas, podría encontrarse con la desagradable sorpresa de que los datos vayan a parar directamente a la competencia. Otro ejemplo: consideremos un agente "espía" que haya sido diseñado para obtener diseños de circuitos electrónicos. El agente, disfrazado de piel de cordero, simulará ser un comprobador de circuitos (programa que verifica que un circuito está bien diseñado), pero enviará a un tercero los diseños que se supone que debe probar.
  4. Revelación de secretos: para cumplir sus objetivos, los agentes pueden revelar a terceros información delicada sobre el usuario o la organización que los usan, ya sea por accidente, por defectos en su algoritmos o por no haber considerado la confidencialidad en su diseño. Por ejemplo, un agente que esté buscando una hipoteca para su usuario podría revelar a los agentes bancarios información sobre los ingresos de éste o sobre su solvencia. La potencia de los agentes radica en trabajar en un mundo abierto, pero esto también presenta inconvenientes. En la Web semántica, los agentes deberán estar sujetos a políticas de seguridad que garanticen que no transfieran datos confidenciales.

La inclusión de metadatos, aunque primitivos, ha fracasado en la Web ordinaria por falta de confianza: las palabras que aparecían en los campos META de las páginas HTML no solían describir el contenido real de éstas. He aquí un ejemplo del uso de los campos META en una página web:

meta name="keywords" contents="ontologías, web semántica, OWL, RDF"

Como no había ninguna organización que controlara que las palabras descriptivas de los campos META correspondían al contenido de las páginas web, los creadores de las páginas solían incluir en ellos palabras populares o atractivas (algunos lo siguen haciendo), pero que no describían bien sus páginas. Algunos buscadores clasificaban las páginas web según las palabras clave de los campos META, pero los resultados decepcionaban a los usuarios. Al final, la picardía de algunos erradicó la utilidad de los campos META. Los buscadores más populares del momento (Google, Yahoo) no tienen en cuenta estos campos.

En la Web semántica, como sucede en la Web actual, no todas las fuentes de información serán de confianza, y habrá algunas más fiables que otras. Para evitar extraer conclusiones de datos erróneos, falsos o malintencionados, la Web semántica necesitará disponer de mecanismos de confianza y credibilidad (firmas digitales, certificados de terceras partes, recomendaciones, agencias de calificación).

No debemos imaginar que habrá una inmensa burocracia encargada de asignar cierta calificación de confianza a cada documento que se publique. En algunos casos, los propios usuarios podrán valorar la fiabilidad de los documentos. Este proceso de valoración ya se está dando con buscadores como Google, cuyas búsquedas ordenan los resultados por el número de enlaces al resultado. Cada vez que un usuario coloca en un recurso suyo un enlace a otro recurso, hace que éste sea más relevante en las búsquedas e, indirectamente, le concede cierta fiabilidad. Por tanto, cuantos más enlaces apuntan a un recurso, más confianza se puede tener en él. En otros casos, será imprescindible la existencia de autoridades de certificación (p. ej., cuando se trabaje con agentes bancarios o de subastas).

Cuando uno haga una pregunta a la Web semántica, ésta proporcionará información sobre cuán fiable es la respuesta basándose en deducciones y en la fiabilidad de las fuentes consultadas, e incluso podrá adjuntar una prueba lógica (reglas de inferencia aplicadas a afirmaciones) de cómo ha generado la respuesta. Una consulta como "¿De qué pintor es El juego lúgubre?" obtendría la respuesta "Salvador Dalí"; si el usuario preguntara por la fiabilidad de la respuesta, obtendría una lista de las fuentes en que se basa la contestación (pinacotecas, catálogos oficiales, biografías, exposiciones) y un "calificación de fiabilidad" basada en el prestigio y reconocimiento de esas fuentes de información. En el caso de un cuadro de autenticidad dudosa –dicho sea de paso, Dalí tenía cierta tendencia a estampar, previo pago, su firma en lienzos y litografías en blanco–, el buscador presentaría una calificación de fiabilidad (un 65%, por ejemplo) basándose en la calidad de las fuentes consultadas.

Debido a la evolución, los cerebros humanos –excepto en algunos casos excepcionales– no están muy bien dotados para la lógica: formular silogismos era menos útil que correr rápidamente o tener brazos fuertes. Por este motivo, disponer de pruebas lógicas para búsquedas o preguntas será más útil para los agentes que para nosotros: podrán verificar por sí mismos las respuestas dadas por otros agentes a sus preguntas, mediante pruebas y mediante comprobaciones de la confianza que merecen las afirmaciones en que se sustentan las deducciones.

Desde un punto de vista teórico, las discusiones y disputas entre agentes no tendrán cabida, del mismo modo que las disputas entre personas carecerían de sentido si la humanidad hubiera adoptado el quimérico lenguaje artificial –lógico y perfecto– propuesto por Leibniz en el siglo XVII: "Una vez conseguido el lenguaje lógico perfecto –cada palabra, un concepto; cada concepto, una palabra–, se acabarán las discusiones; bastará que los interlocutores se sienten en los extremos de la mesa y sacando sus plumas digan: "¡Calculemos!".

En la figura inferior podemos ver un ejemplo de inferencia en el cual, a partir de las afirmaciones de Rosa y Juan, puede deducirse que Pilar tiene permisos de acceso a la intranet de Muebles 110. Si esas afirmaciones fueran "de confianza" (si estuviesen certificadas por la propia empresa, p. ej.), un agente podría deducir de manera fiable que Pilar debe tener acceso a la intranet; e incluso podría dárselo si ella no lo tuviera (por ejemplo, en el caso de que acabara de llegar a la compañía).

Ejemplo de inferencia a partir de afirmaciones. Si estuvieran acreditadas, un agente podría dar a Pilar acceso a la intranet de la empresa


En conclusión, el largo camino hacia la Web semántica no pasa solamente por los metadatos. Se precisa además una cualidad muy apreciada en el mundo de los seres de carne y hueso: confianza. Cuanto más complejas son las herramientas que creamos para facilitarnos las cosas, tanto más nos vemos reflejadas en ellas.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Sunday, 06 Aug 2006 00:37

Si para muestra hace falta un botón, aquí el esperado ejemplo de uso de Tabulator. En ésta oportunidad, visualización de información geográfica, probablemente el ejemplo que más me ha gustado de momento.

En ésta ocasión decidí que, en vez de basarme en un ejemplo de los que vienen por defecto, voy a crear mi propio ejemplo, por lo tanto tomé algunas fotos que tengo en Flickr, agregarle información geográfica obtenida gracias a Google Earth (no tengo GPS) y luego subí la información a mi sitio. El contenido del archivo es el siguiente:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xml:lang="es-AR"
    >

    <foaf:Image rdf:about="http://static.flickr.com/78/207671826_49a7bb854e_m.jpg">
        <dc:title>Laburando</dc:title>
        <rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/207671826/" />
        <geo:lat>-34.595680</geo:lat>
        <geo:long>-58.597090</geo:long>
    </foaf:Image>
    
    <foaf:Image rdf:about="http://static.flickr.com/65/202397299_4a24210570_m.jpg">
        <dc:title>Tango</dc:title>
        <rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/202397299/" />
        <geo:lat>-34.559817</geo:lat>
        <geo:long>-58.449780</geo:long>
    </foaf:Image>
    
    <foaf:Image rdf:about="http://static.flickr.com/72/196691698_d55d983c12_m.jpg">
        <dc:title>Concurso de reflejos!</dc:title>
        <rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/196691698/" />
        <geo:lat>-34.582577</geo:lat>
        <geo:long>-58.418267</geo:long>
    </foaf:Image>
    
</rdf:RDF>

Para visualizar estos datos, lo primero que debemos hacernos es abrir Tabulator y decirle que cargue la información que se encuentra en http://f14web.com.ar/inkel/2006/08/05/tabulator-example.rdf. Una vez cargada la información, nos encontraremos con lo siguiente:

loaded

Lo que debemos hacer ahora es desplegar la información sobre las foaf:Image que se encuentran en el archivo, haciendo click sobre el botón para visualizar información (expand), y luego hacer lo mismo para la foto titulada Tango. Al visualizarse ésta información, presionar ALT y hacer un click sobre latitude y longitud, con lo que obtendremos lo siguiente:

data

¡Y llegamos a la parte tan esperada! Ahora seleccionamos la pestaña Map y presionamos el botón View and Save Current Query y veremos dos cosas: la primera, triste, es que no existen mapas de la Argentina (flojo Google ahí). La segunda, más interesante, son los 3 globos que indican que existe información en el mapa:

mapa

Eso es todo lo que tuvimos que hacer para visualizar la información geográfica que se encontraba en el archivo. Por supuesto la parte más laboriosa es recopilar estos datos, pero solo tenemos que automatizar este proceso, dado que la visualización ya está resuelta. Para visualizar cada foto, debemos presionar el globo correspondiente, y veremos la información asociada:

detail

Queda pendiente averiguar como agregar títulos y descripciones a cada imagen, pero no puede ser muy dificil :). Espero encuentren este ejemplo de utilidad, y como siempre, escucho sus comentarios.

Author: "inkel" Tags: "Herramientas"
Send by mail Print  Save  Delicious 
Date: Tuesday, 18 Jul 2006 06:16

¿De manos de quién más sino el mismo Tim Berners-Lee podía surgir un prototipo de navegador para la Web Semántica?

Con el creciente desarrollo de la web los usuarios nos vimos beneficiados por la segunda Guerra de Navegadores, donde, en una opinión plenamente personal, se destacan principalmente Firefox y Opera. Si bien sus capacidades son por todos ampliamente conocidas, han sido diseñados para la web actual y, a pesar de contar con algunas herramientas, no se adaptan correctamente a la Web Semántica en su instalación más simple. Tal vez por esta razón el padre de la WWW, Tim Berners-Lee desarrolló una página que, utilizando AJAX y los conceptos de la Web Semántica, nos proporciona un prototipo de cómo podría ser un navegador para la WS: Tabulator.

Antes de continuar, y debido a que es mucho más interesante ir siguiendo su funcionamiento a lo largo del articulo, veamos la compatibilidad con los diversos navegadores disponibles:

  • Firefox: único navegador con el que se ha probado en su totalidad. Si bien hay que realizar un ajuste de las reglas de seguridad del navegador para navegar recursos remotos, las mismas no transforman al sistema en inseguro.
  • Opera: no ha sido probada plenamente, y no funciona con recursos remotos, por lo que se desarrolló un widget para Opera 9.
  • Safari: presenta errores extraños, por lo que no recomiendo que lo utilicen, al menos, no de momento.
  • Internet Explorer: no funciona en este navegador, aunque están viendo el por qué. No se si ha sido probado con la versión 7.0, aunque de todos modos no lo recomiendo.

Pasemos ahora a la descripción de lo que podemos hacer con Tabulator. Para comenzar, digamos que es un navegador particular, en el sentido de que navega cosas y no documentos. Por supuesto que algunas de éstas cosas son documentos, pero Tabulator primero los considera una cosa y luego un documento. Es importante hacer esta distinción, dado que hasta el momento todos los navegadores solo navegan documentos: una página web, una imagen.

Por otra parte, Tabulator navega por estos recursos de manera escalable, es decir, no solo permite navegar por más de una cosa por vez, sino que, además, no es necesario cargar en memoria y luego navegar toda una base de conocimiento en RDF. Esto se ajusta a la perfección a una de las ideas de la WS, que es poder definir información parcialmente incompleta, e ir tomando la información complementaria a medida que la necesitamos. Para esto utiliza un protocolo llamado protocolo de migajas de pan.

Protocolo de Migajas de Pan

Un protocolo de migajas de pan es aquel en el cual la información se deja incompleta para luego ser incrementada, dejando un enlace a la siguiente migaja. Cualquier similitud con Hansel & Gretel, no es pura coincidencia. Si el proveedor deja un enlace al complemento de información indicando el tipo de la misma, el consumidor puede actuar en consecuencia y de antemano para discernir que fragmentos de información son necesarios. Un ejemplo de este protocolo es el de enlaces FOAF, y funciona así: el documento ?d1 hace una referencia a la cosa referenciada por ?x en el documento ?d2 cuando:

?d1 log:says { ?y foaf:mbox_sha1sum ?s. ?y rdfs:seeAlso ?d2}.
?d2 log:says { ?x foaf:mbox_sha1sum ?s }.

Si el proveedor de información de ?d1 deja esa información, el consumidor, luego de haber leido ?d1 y deseando incrementar la información de ?y busca en el documento referenciado por rdfs:seeAlso, y encuentra en ?d2 la referencia a algo con el mismo valor de foaf:mbox_sha1sum y deduce que es la misma cosa. En este caso el protocolo asume que solo una persona (o entidad) es identificado por una dirección de email univoca, de ahí la validez de la suma SHA1.

Si bien esto es claramente más complejo que un simple enlace, Tabulator puede utilizar ambos. Los enlaces que pueden ser seguidos son representados por puntos azules (enlace valido).

Con esto finalizamos esta primera parte sobre Tabulator. En el transcurso de los siguientes días nos adentraremos en ejemplos de utilización y otras funcionalidades. ¡Espero lo disfruten y me dejen sus comentarios!

Author: "inkel" Tags: "Herramientas"
Send by mail Print  Save  Delicious 
Date: Saturday, 15 Jul 2006 13:54

Desde hace unos días este weblog forma parte del agregador de noticias sobre Web Semántica por excelencia: Planet RDF. En este sitio se pueden encontrar casí todas las noticias que se escriben en diversos sitios. Este es un paso importante en la difusión de la Web Semántica en español puesto que los principales autores de noticias relacionadas se encuentran listados.

La Web Semántica está dejando de ser un proyecto de laboratorio para transformarse día a día en una realidad, y a través de sitios como Web Semántica Hoy tenemos la posibildad de hacer llegar ésta realidad a todos aquellos que no hablan inglés. Mi intención es a partir de ahora comenzar a difundir las noticias que vayan surgiendo, e instar a todos aquellos que desarrollen proyectos o realicen investigaciones a compartir con nosotros sus dudas y logros y entre todos crear una comunidad en nuestro idioma, con nuestros códigos y cultura. Quienes compartan ésta visión o quieran hacerme llegar sus proyectos, pueden contactarse conmigo dejando su comentario aquí o a mi casilla personal. ¡Los espero a todos!

Author: "inkel" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Thursday, 06 Apr 2006 17:45

Ya no es posible hacer trackbacks en Web Semántica Hoy. Hemos elegido cerrarlos mas bien qué moderarlos, porqué la tarea habria sido demasiado grande. Los comentarios serán moderados automaticamente, con una liste de palabras "prohibidas" (como Xanax, Viagra...). Es con decepción que anunciamos esta elección.

Author: "Vincent Tabard" Tags: "Aplicaciones prácticas"
Send by mail Print  Save  Delicious 
Date: Monday, 03 Apr 2006 17:10

Hace algunos meses, apareció Dublin Core Metadata Gen, una aplicación desarrollada en XHTML y Javascript que genera tres formas de representar metadatos usando los elementos de la Iniciativa de Metadatos de Dublin Core (DCMI):

  • Los clásicos elementos meta que aparecen entre las etiquetas <head> y </head> de un documento HTML.
  • El contenido de un fichero RDF, el ya conocido estándar del W3C basado en la sintáxis de XML. Una forma de representar el contenido semántico de forma comprensible para las máquinas.
  • Microformatos, otra forma de representar información semántica cuyo objetivo principal es ser útil a las personas y no a las máquinas (o mejor dicho a los agentes de software). Esta información aparece entre las etiquetas <body> y </body> de un documento HTML

Cada uno de estos tipos de información semántica tiene sus características, que podemos simplificar en una incompleta lista de ventajas e inconvenientes. Espero que los comentarios de los lectores completen esta lista (Emmanuelle ya lo ha hecho, y muy bien, gracias).

Las etiquetas meta: ventajas e inconvenientes

Entre las virtudes que caracterizan a las etiquetas meta, se encuentran:

  • Aparecieron en las primeras especificaciones oficiales de HTML.
  • Las etiquetas meta son ampliamente conocidas, y su uso está muy extendido.
  • Como consecuencia del punto anterior, los agentes de software, como los buscadores, las conocen perfectamente.
  • El número de etiquetas meta es prácticamente ilimitado. Por un lado tenemos las clásicas, como <link rel="author" content="Alejandro Gonzalo Bravo García">, pero se pueden usar también otras etiquetas meta usando perfiles y esquemas, como podemos leer en Metadatos geográficos (2): Empleándolos en ficheros HTML, XHTML y RDF.
  • Como consecuencia del punto anterior, su uso se puede considerar que entra dentro de los "estándares".

Pero no todas son ventajas, veamos algunos inconvenientes:

  • Se ha abusado del uso de etiquetas meta, y no siempre con propósitos correctos. La consecuencia: una buena parte de los buscadores ignoran estas etiquetas.
  • Otra consecuencia del punto anterior es que en la actualidad no se utilizan demasiado, por ejemplo es raro encontrarse con elementos meta en los CMS más habituales. Aunque siempre se pueden añadir plugins que cumplan esa función.
  • Los valores de estas etiquetas son invisibles a los usuarios. Siempre se puede mirar el código fuente, o ver las propiedades de la página web, pero sinceramente no es muy habitual.

Ficheros RDF: ventajas e inconvenientes

Comenzamos con las ventajas...

  • Es un estándar del W3C con todo lo que ésto significa.
  • Según podemos leer en la propia especificación...

    Resource Description Framework (RDF) [Infraestructura para la Descripción de Recursos] es una base para procesar metadatos; proporciona interoperabilidad entre aplicaciones que intercambian información legible por máquina en la Web. RDF destaca por la facilidad para habilitar el procesamiento automatizado de los recursos Web. RDF puede utilizarse en distintas áreas de aplicación; por ejemplo: en recuperación de recursos para proporcionar mejores prestaciones a los motores de búsqueda, en catalogación para describir el contenido y las relaciones de contenido disponibles en un sitio Web, una página Web, o una biblioteca digital particular, por los agentes de software inteligentes para facilitar el intercambio y para compartir conocimiento; en la calificación de contenido, en la descripción de colecciones de páginas que representan un "documento" lógico individual, para describir los derechos de propiedad intelectual de las páginas web, y para expresar las preferencias de privacidad de un usuario, así como las políticas de privacidad de un sitio Web. RDF junto con las firmas digitales será la clave para construir el "Web de confianza" para el comercio electrónico, la cooperación y otras aplicaciones.

    Resource Description Framework (RDF) Model and Syntax Specification, traducido por Eva Méndez

    De aquí podemos extraer que tiene un potencial inmenso, desde el punto de vista técnico (interoperabilidad entre aplicaciones y procesamiento automatizado de recursos) y muchos ámbitos de aplicación.

  • Para su contenido se pueden usar infinidad de namespaces, cada uno de ellos con sus correspondientes elementos, como por ejemplo Dublin Core, FOAF, XMP, DOAC...

Y seguimos con los inconvenientes...

  • Si bien es cierto que RDF Site Summary ha tenido una enorme difusión, no podemos decir lo mismo de RDF.
  • Requiere más conocimientos ténicos para poder usarlo (no es tan sencillo como las etiquetas meta).
  • Los buscadores actualmente suelen ignorar este tipo de metadatos cuando están fuera de un documento HTML, aunque también pueden aparecer dentro del propio documento entre comentarios, como ocurre por ejemplo con las licencias Creative Commons.
  • Actualmente no abundan agentes de software que aprovechen las capacidades de RDF (o al menos no hay tantos como nos gustaría).
  • En general la información contenida en ficheros RDF no se muestra a las personas. Aunque siempre nos podemos encontrar con agradables excepciones, como la herramienta para visualizar informes RDF obtenidos al hacer una revisión automática con HERA y que podemos ver en funcionamiento en Informes Hera.

Microformatos: ventajas e inconvenientes

Veamos primero sus puntos fuertes:

  • Las personas obtienen fácilmente la información contenida en los microformatos: es su principio básico. ¿Dónde puedo encontrar microformatos? Seguramente los hayas visto, aunque no te hayas dado cuenta. Los puedes encontrar, por ejemplo, en Gurú Web, donde se utilizan microformatos generados con Dublin Core Metadata Gen (también se usan los elementos meta y los ficheros RDF, aunque tendrás que ver el código fuente para comprobarlo).
  • A pesar del poco tiempo de vida, ha tenido bastante difusión.
  • Existen multitud de microformatos con diferentes aplicaciones (consultar el listado Microformats Wiki), y cada vez van saliendo más.

Y ahora sus puntos menos fuertes...

  • Es bastante reciente, y todavía no está muy asentado.
  • La información no es interpretada con tanta facilidad como los ficheros RDF o las etiquetas meta. Pero el hecho de usar fórmulas estándar para codificar los microformatos, debería minimizar esta dificultad a los buscadores.
  • Aunque existe XMDP™ para crear pefiles para los microformatos, no están tan formalmente definidos como los perfiles para las las etiquetas meta ó los namespaces. Además en el caso de los microformatos la relación entre los elementos del perfil y los microformatos no es tan exacta e inequivoca como en los perfiles o esquemas para las etiquetas meta ó los namespaces.
  • Los microformatos son menos potentes, desde el punto de vista semántico, que otras formas de definir metadatos (como los mencionados ficheros RDF). Por ejemplo, no tienen la capacidad de definir formalmente relaciones complejas que puedan servir para que los agentes de software realicen inferencias o deducciones. Su campo de actuación es más limitado.

¿Más información semántica en HTML? ¿Cómo? ¿Dónde?

Por lo visto antes, parece que la única forma de incluir información semántica es mediante metadatos, ya sea en etiquetas meta, ficheros RDF ó microformatos. Pero no es así. Como podemos leer en la ayuda de HERA, al revisar la pauta 13.2

Son contenedores de metadatos, el elemento "title", el elemento "address", el elemento "meta", la declaración de tipo de documento (DTD), el elemento "link" y los elementos "del" e "ins", así como los atributos "title" y "cite".

Ayuda de HERA, al revisar la pauta 13.2

Para ampliar información, podemos leer el artículo de Emmanuelle titulado Navegación Semántica o Meta Navegación

meta, RDF, microformatos,... ¿qué metadatos son los mejores?

Como era de esperar, la respuesta es depende. En función de las características de cada tipo de metadatos, será más apropiado para unos desarrolladores o u otros. Igualmente depende también de dónde queramos utilizarlos y porqué.

Desde mi punto de vista, si queremos algo sencillo, lo mejor es usar meta. Con unos conocimientos un poco más avanzados se pueden usar elementos de perfiles ó esquemas muy potentes y versátiles (como por ejemplo Dublin Core). Si queremos usar unos metadatos más formales, aun a riesgo de que no se aproveche todo lo que se podría (al menos actualmente), creo que es una buena idea vincular en un documento web un fichero RDF externo. Aunque si no contamos con una aplicación que los genere de forma sencilla, como por ejemplo FOAF-a-Matic (traducido por inkel al español), puede ser algo más complicado y requiere conocimientos de XML y RDF.

Si tienes algunas dudas, en el artículo Metadatos geográficos (2): Empleándolos en ficheros HTML, XHTML y RDF se explican algunos conceptos básicos.

En el caso de que la prioridad sea facilitar a las personas la percepción de ciertos metadatos, una buena opción es usar microformatos. Algunos son muy sencillos de codificar (el ejemplo más claro es rel-tag, para que technorati catalogue mejor los artículos de las bitácoras), y no requieren grandes conocimientos: con saber un poco de HTML basta. Además puedes encontrar herramientas bastante útiles, como por ejemplo hCard Creator, para hacer tarjetas de visitas virtuales. Es muy interesante contar con la posibilidad de poder usar este tipo de microformatos, sobre todo teniendo en cuenta que algunos soy muy útiles. Pero su existencia y uso no resta importancia a los metadatos codificados más formalmente (si has pensado en RDF sumamos 10 puntos en tu marcador, je je).

Elementos meta, ficheros RDF, microformatos,... tres formas de mostrar metadatos generados con Dublin Core Metadata Gen

Volvamos otra vez a Dublin Core Metadata Gen, la herramienta que presentábamos al principio de este artículo. Y recordemos que era capaz de generar metadatos de Dublin Core de tres formas distintas:

  • Elementos meta
  • Ficheros RDF
  • Microformatos Dublin Core

Tres opciones a elegir, y todos generados de una forma sencilla: algunos inconvenientes que hemos mencionado antes como la complejidad para generarlos, desaparecen. Sólo tenemos que utilizar los metadatos que más nos interesen... sólos o en compañía de otros metadatos generados por la misma herramienta (si recuerdas que en Gurú Web se utilizaban a la vez los tres metadatos, tienes diez puntos más en tu marcador, je je).

Experimento práctico: comparar la popularidad en los buscadores de los tres metadatos

Desde aquí planteo un pequeño experimento práctico para los lectores de Web Semántica Hoy: comparar la popularidad de los tres metadatos en los buscadores más habituales. ¿Cómo? Generando metadatos sobre algún recurso que no tenga muchos resultados en los buscadores (¿una palabra inventada, tal vez?), colocarlos en diferentes páginas webs y tras unos días comparar qué documentos están mejor posicionados en algunos buscadores. El ganar esta pequeña competición no signifique que tal o cuál metadato sea mejor que los otros, sino que es reconocido con más facilidad por los buscadores (hay otras formas de compararlos, aunque quizás no sean tan sencillas).

Desde luego en la competición no todos tienen las mismas probabilidades de "ganar" (en mi opinión RDF parte con desventaja), y el éxito puede venir condicionado por otros elementos externos, como por ejemplo el elemento title, o los títulos y contenido,... por tanto habría que ser equitativo y partir de tres documentos HTML idénticos... salvo en los metadatos.

No olvidéis compartir los resultados en los comentarios.

Author: "Gonzalo" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Friday, 03 Mar 2006 23:43

La Universidad de Deusto de Bilbao ha organizado para el próximo 6 de Abril, unas jornadas sobre la web 2.0: Blogak 2.0. En ellas se tratarán temas relacionados con blogs, wikis, sindicación de contenidos, folksonomias y web semántica, entre otros.

Author: "Fran García" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Friday, 09 Dec 2005 07:31

Este texto explica muy brevemente una tecnología imprescindible para conseguir la Web semántica: las ontologías. Por razones de brevedad me centro sobre todo en las aplicaciones de las ontologías, dentro y fuera de la Web semántica. En el fondo, la Web semántica busca catalogar la información de los recursos web –páginas HTML, documentos PDF, vídeos, archivos de sonido– mediante ontologías (esto es, mediante el significado de las palabras), no mediante palabras clave.

Con las ontologías, los usuarios organizarán la información de manera que los agentes de software podrán interpretar el significado y, por tanto, podrán buscar e integrar datos mucho mejor que ahora. Gracias al conocimiento almacenado en las ontologías, las aplicaciones podrán extraer automáticamente datos de las páginas web, procesarlos y sacar conclusiones de ellos, así como tomar decisiones y negociar con otros agentes o personas. Por ejemplo, un agente inteligente que busque un vino que satisfaga las preferencias de un usuario, usará las ontologías vinícolas para elegir el vino (color, sabor, olor, embotellado) y empleará las ontologías empresariales para encargarlo a alguna tienda y regatear en el precio (siempre que se pueda). Otro ejemplo: mediante las ontologías, un agente encargado de comprar viviendas se podrá comunicar con agentes hipotecarios (de entidades bancarias) y con agentes inmobiliarios (de empresas constructoras e inmobiliarias).

Si desea más información sobre ontologías o sobre la Web semántica, puede consultar el trabajo La Web del futuro (http://www.javahispano.org/tutorials.item.action?id=55). Puede encontrar una introducción a la Web actual (estructura, protocolos, etc.) en la primera parte de Java y las redes (http://www.javahispano.org/tutorials.item.action?id=45).


Las ontologías proceden del campo de la Inteligencia Artificial; son vocabularios comunes para las personas y aplicaciones que trabajan en un dominio. Según el Grupo de Trabajo en Ontologías del consorcio W3C, una ontología define los términos que se usan para describir y representar un cierto dominio. Uso la palabra "dominio" para denotar un área específica de interés (el río Duero, por ejemplo) o un área de conocimiento (física, aeronáutica, medicina, contabilidad, fabricación de productos, etc.) Toda ontología representa cierta visión del mundo con respecto a un dominio. Por ejemplo, una ontología que defina "ser humano" como "espécimen vivo o muerto correspondiente a la especie Homo sapiens; primate bípedo que pertenece a la familia de los homínidos, como los chimpancés, gorilas y orangutanes" expresa una visión del mundo totalmente distinta a la de una ontología que lo defina como "sujeto consciente y libre, centro y vértice de todo lo que existe; todos tienen la misma dignidad, pues han sido creados a imagen y semejanza de Dios".

Así como la Ontología –nótese la mayúscula inicial– estudia los tipos de objetos que pueblan la realidad (así como sus propiedades y relaciones), las ontologías catalogan y definen los tipos de cosas que existen en un cierto dominio, así como sus relaciones y propiedades. Por ejemplo, una ontología del mundo empresarial usará conceptos como Venta, Compra, Transferencia, Pago, etc.; y relaciones como “Una Transferencia corresponde a una Venta o a una Compra”, “Un Pago corresponde a una o varias Transferencias”, etc.

Existen ontologías específicas (de términos médicos, empresariales, aeronáuticos, etc.) y ontologías de carácter general (proporcionan terminologías útiles para varios campos). En http://www.snomed.org/ se puede encontrar una ontología médica (SNOMED). WordNet (http://wordnet.princeton.edu/perl/webwn) es una ontología lingüística en línea que organiza los nombres, verbos y adjetivos del idioma inglés en grupos de sinónimos. En http://www.unspsc.org/ se describe una ontología de carácter general desarrollada por las Naciones Unidas (es un vocabulario para servicios y productos).


Cualquier persona tiene en su cabeza ontologías mediante las que representa y entiende el mundo que lo rodea. Estas ontologías no son explícitas, en el sentido de que no se detallan en un documento ni se organizan de forma jerárquica o matemática. Todos usamos ontologías en las que Automóvil representa un medio de transporte y tiene cuatro ruedas. ¿Formalizamos este tipo de ontologías? No, sería innecesario: los automóviles son tan habituales que todos compartimos la información de lo que son. Lo mismo sucede cuando pensamos en el dominio familiar: sabemos que una familia se compone de varios miembros, que un hijo no puede tener más de un padre y una madre biológicos, que los padres tienen o han tenido padres... No necesitamos explicitar este conocimiento, pues forma parte de lo que todo el mundo sabe. Sin embargo, cuando se tratan términos poco comunes o cuando se quiere que estos términos sean procesados por máquinas, se precisa explicitar las ontologías; esto es, desarrollarlas en un documento o darles una forma que sea inteligible para las máquinas.

Las máquinas carecen de las ontologías con las que nosotros contamos para entender el mundo y comunicarse entre ellas; por eso necesitan ontologías explícitas. En cuanto dos sistemas de información (sistemas ERP, bases de datos, bases de conocimiento) intentan comunicarse, aparecen problemas semánticos que dificultan o imposibilitan la comunicación entre ellos (no considero aquí los problemas técnicos de conexión o envío de datos). Los problemas semánticos son de dos tipos: de dominio y de nombre. Los conflictos de dominio aparecen cuando conceptos similares en cuanto a significado, pero no idénticos, se representan en distintos dominios. Por ejemplo, el concepto representado por Trabajador en una base de datos (BD) puede corresponder a un trabajador cualificado, mientras que otra BD puede usar Trabajador para cualquier trabajador, sea o no cualificado. Ambos conceptos están muy vinculados, pero no son equivalentes ni deberían mezclarse. Usando ontologías, podría especificarse que el primer concepto corresponde a una especialización del segundo; y un sistema de razonamiento automático basado en ontologías impediría, por ejemplo, que se contratara para tareas cualificadas a trabajadores no cualificados.

Los conflictos de nombre son de dos tipos: sinónimos y homónimos. Los sinónimos ocurren cuando los sistemas usan distintos nombres para referirse al mismo concepto. Por ejemplo, una BD puede usar Trabajador para el mismo concepto que otra usa Empleado. En ese caso, se podría usar una ontología que definiera como idénticos los dos términos. Así, las aplicaciones que manejaran esas bases de datos sabrían como llevar datos de una a otra.

Problema sinónimos: El mismo concepto del mundo real se traduce en varios términos en distintos sistemas

Los homónimos surgen cuando los sistemas usan el mismo nombre para representar cosas distintas. Por ejemplo, en una aplicación de una compañía de seguros, Conductor representa a una persona que tiene contratada una póliza particular con la compañía; mientras que, en una aplicación de una compañía de taxis, Conductor representa a un trabajador que conduce un taxi de la compañía. Como es de suponer, si se intentara integrar automáticamente ambas aplicaciones basándose en que ambas usan el mismo término (Conductor) para significar lo mismo, se produciría el desastre más absoluto: al dar de baja a un conductor de taxi se le quitaría su póliza de seguros, con lo que no podría conducir ni su propio coche (al menos, no legalmente); y, al dar de alta a un asegurado, se le daría de alta como taxista, aunque no tuviera la licencia de taxista. Sólo una ontología explícita le puede comunicar a una aplicación que su Conductor no guarda ninguna relación con el de otra.

Las ontologías explícitas se pueden expresar de muchas maneras. Como mínimo, deben incluir un vocabulario de términos, con la definición de cada uno. Por ejemplo, la ontología empresarial Enterprise Ontology (EO) define así Venta: “Una Venta es un acuerdo entre dos Entidades Legales para el intercambio de un Producto por un Precio de Venta. Normalmente, el Producto es un bien o servicio y el Precio de Venta es monetario, aunque se incluyen otras posibilidades”. Las ontologías sencillas suelen representarse como una jerarquía de conceptos relacionados y ordenados.


Dependiendo del grado de formalidad, las ontologías explícitas se clasifican en informales, semi-informales, semi-formales y formales. Las primeras se expresan directamente en cualquier lenguaje natural. Las segundas se expresan en una forma estructurada y restringida de algún lenguaje natural. Las terceras se expresan en lenguajes estructurados, como RDF. Por último, las ontologías formales definen los términos mediante lenguajes lógico-matemáticos cuyos símbolos se definen exactamente y sin ambigüedades; en consecuencia, estas ontologías permiten emplear teoremas y demostraciones. Los dos últimos tipos de ontologías permiten que las aplicaciones puedan usar las definiciones de los conceptos del dominio y sus relaciones. Así como los tres primeros tipos de ontologías pueden contener términos ambiguos o inconsistentes, las ontologías formales no los permiten. Preguntas tan capciosas como "El único barbero de una ciudad afeita a todos los hombres que no se afeitan a sí mismos. ¿Quién lo afeita a él?"o "¿A qué conjunto pertenece el conjunto de los conjuntos que no se incluyen a sí mismos?" no pueden representarse en una ontología formal. A continuación figura un fragmento de una ontología formal (la expreso con la sintaxis XML de OWL DL). Corresponde a un dominio cartográfico:

<owl:Class rdf:ID="Mapa">
   <rdfs:subClassOf> 
      <owl:Restriction>
         <owl:onProperty rdf:resource="#tieneEscalaPredeterminada"/>
         <owl:maxCardinality 
            rdf:datatype="&xsd;nonNegativeInteger"> 1
         </owl:maxCardinality> 
      </owl:Restriction>
   </rdfs:subClassOf> 
</owl:Class>

<owl:ObjectProperty rdf:ID="tieneEscala">
   <rdfs:domain rdf:resource="#Mapa"/> 
   <rdfs:range rdf:resource="#Escala"/> 
</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="tieneEscalaPredeterminada"> 
   <rdfs:subPropertyOf rdf:resource="#tieneEscala"/>
</owl:ObjectProperty>

Este fragmento define que las entidades Mapa tienen una propiedad llamada tieneEscala, que a su vez tiene una subpropiedad llamada tieneEscalaPredeterminada, y que un Mapa no puede tener más de una escala predeterminada.

Las ontologías se usan para favorecer la comunicación entre personas, organizaciones y aplicaciones, lograr la interoperabilidad entre sistemas informáticos, razonar automáticamente y para la ingeniería de software.


Las ontologías favorecen la comunicación entre personas, organizaciones y aplicaciones porque proporcionan una comprensión común de un dominio, de modo que se eliminan confusiones conceptuales y terminológicas. Los problemas derivados de la falta de comprensión común entre personas revisten una gran importancia en la ciencia y en la tecnología. Por ejemplo, hasta hace muy poco (septiembre de 2005) no existía un consenso general sobre la nomenclatura y clasificación de las neuronas corticales. Por lo tanto, al estudiar enfermedades como la esquizofrenia, la depresión, el trastorno bipolar y el Alzheimer, los médicos no se ponían de acuerdo sobre qué tipos de neuronas estaban afectadas. Pese a todas las investigaciones relacionadas con el cerebro, no había unanimidad a la hora de clasificar las neuronas corticales. La situación era sorprendente, tanto más cuanto que las investigaciones sobre la corteza cerebral comenzaron hace unos cien años, con el premio Nobel español Santiago Ramón y Cajal. El resultado final de dicha falta de entendimiento común durante cien años ha sido un gran retraso en las investigaciones sobre el cerebro, así como una bibliografía científica confusa y a veces contradictoria.

En los campos de la Inteligencia Artificial, la Teoría de Decisiones y la Teoría de Sistemas Distribuidos (campos muy relacionados con la Web semántica), sucede algo parecido: los investigadores de un campo no pueden leer fácilmente los resultados de los investigadores de los otros, pues se usan diferentes perspectivas y términos para las mismas ideas y conceptos. Construyendo una ontología común para los tres campos, las investigaciones de un campo serían inmediatamente aplicables a los otros.

El mundo empresarial no es tampoco ajeno a los problemas derivados de la falta de un entendimiento común: algunas empresas usan el término "recursos" para lo que son "máquinas" para otras empresas. Para otras, en cambio, los "recursos" son las "materias primas" que usan. Mediante las ontologías, se favorece la gestión de contenidos, la integración de la cadena de suministro y de la cadena de valor, así como la estandarización de la información de los mercados electrónicos (e-marketplaces). Esta estandarización resulta imperiosa para el comercio electrónico automático: si cada vendedor llama o clasifica de una manera a sus productos, resulta muy difícil automatizar las operaciones electrónicas. Por ejemplo, si un agente inteligente quiere comprar una memoria USB para un usuario o una empresa, deberá tener en cuenta que "memoria USB", "pen drive", "memoria flash USB" y "lápiz USB" designan un mismo dispositivo. En caso contrario, la aplicación no verá a muchos fabricantes y vendedores del dispositivo y, por ende, perderá muchas oportunidades de negocio.

Las ontologías favorecen también la comunicación entre aplicaciones y la comprensión común de la información entre ellas. Las ontologías serán imprescindibles en la Web semántica y en los futuros sistemas de gestión empresarial porque permitirán que las aplicaciones estén de acuerdo en los términos que usan cuando se comunican. Mediante ellas, será mucho más fácil recuperar información relacionada temáticamente, aun cuando no existan enlaces directos entre las páginas web. Por ejemplo, una ontología puede usarse para especificar que las termitas son un tipo de isóptero. De este modo, un buscador que use esa ontología mostrará páginas web sobre termitas cuando un usuario busque información sobre los isópteros.

Del mismo modo, si en una intranet empresarial se quisiese encontrar información sobre las ferias que ha visitado el director de la compañía, resultaría muy útil disponer de una ontología que incluyera una relación Visita, con relaciones "hijas" como VisitaFeria, VisitaEmpresa, etc. Clasificando los documentos con esa ontología, una búsqueda en la intranet mostraría enseguida los documentos relacionados con las visitas del director a ferias. Sin la ontología, la búsqueda se haría mediante palabras clave como "visita", "feria" y el nombre del director, lo que arrojaría una gran cantidad de resultados (muchos inútiles), que deberían ser evaluados, para determinar su pertinencia, por una o más personas.


Las ontologías también sirven para conseguir que los sistemas interoperen. Dos sistemas son interoperables si pueden trabajar conjuntamente de una forma automática, sin esfuerzo por parte del usuario. Por ejemplo, dos teléfonos móviles de distintos fabricantes y abonados a diferentes compañías telefónicas interoperan para que los usuarios puedan hablar entre sí. En el campo de la informática, las ontologías sirven para traducir los términos usados por una aplicación a otra (las aplicaciones pueden estar escritas en distintos lenguajes de programación). Consideremos una aplicación empresarial que usa el término "materia prima" y otra que emplea "suministro": ambas no podrían trabajar juntas. Para lograr que interoperen, una ontología haría de traductora entre ambas (la ontología podría usar el término "recurso"). La ontología actuaría como puente entre ambas, como una especie de lengua común. Vaya por caso, si se quiere que cuatro aplicaciones (A1, A2, A3 y A4) interoperen se necesitan seis aplicaciones que actúen de "traductores" (A1-A2, A1-A3, A1-A4, A2-A3, A2-A4, A3-A4); con una ontología común (O), sólo se necesitarían cuatro "traductores" (A1-O, A2-O, A3-O, A4-O). Según aumenta el número de aplicaciones que deben interoperar, más necesario se hace emplear ontologías traductoras.


Las ontologías resultan muy útiles para facilitar el razonamiento automático, es decir, sin intervención humana. Partiendo de unas reglas de inferencia, un motor de razonamiento puede usar los datos de las ontologías para inferir conclusiones de ellos. Por ejemplo, si establecemos estas reglas: "Todos los ríos desembocan en un mar, en un océano o en un lago" y "Si el curso de un río termina en una población, esa población está junto al mar, océano o lago donde desemboca", las máquinas pueden hacer deducciones como la mostrada en la siguiente figura.

Ejemplo de razonamiento automático

Una de las aplicaciones más importante del razonamiento automático es la validación de datos. Consideremos, por ejemplo, una base de conocimiento que almacene hechos sobre una consultora: "El proyecto Hospital Universitario comprende las tareas A1, A2 y A3", "Luis trabaja en la tarea A1", etc. Si los hechos se almacenaran mediante una ontología formal, se podrían imponer reglas (axiomas) como "Un empleado no puede trabajar en tareas de proyectos donde no participa" o "La suma semanal de horas trabajadas por un empleado no puede diferir de la suma semanal de horas empleada en cada tarea que tiene asignada"; reglas que servirían para verificar los hechos que se van almacenando y detectar incoherencias.
Otro ejemplo: suponga una pizzería que venda, entre otros tipos, pizzas vegetarianas. Si la pizzería usara una ontología que definiera qué ingredientes son vegetarianos –y cuáles no– y estableciera una regla como "Las pizzas vegetarianas no llevan ingredientes cárnicos", la aplicación de contabilidad podría detectar, en el momento del cobro, cualquier venta en la que, por error, se hubiera añadido pollo o jamón a una pizza vegetariana.

El razonamiento automático también se usa para establecer relaciones entre ontologías (por ejemplo, Producto en la ontología O1 es Materia Prima en la ontología O2), para descubrir relaciones ocultas o inesperadas entre los datos y para integrar esquemas de bases de datos. La integración de esquemas de bases de datos resulta imprescindible cuando se trabaja con bases de datos federadas, que son vistas unificadas de bases de datos independientes. Estas bases de datos aparentan ser una sola base de datos, pero se componen de información extraída de bases de datos independientes, que pueden estar alejadas miles de kilómetros. Una BD federada aparenta ser una BD normal y corriente, pero no tiene existencia física: es una vista lógica. Las bases de datos federadas son muy importantes en la Web, pues dan una vista común de los datos procedentes de fuentes muy distintas (agencias de noticias, portales, foros, periódicos y revistas electrónicos, etc.).

Descripción de una base de datos federada


En la ingeniería del software, las ontologías ayudan a la especificación de los sistemas de software. Como la falta de un entendimiento común conduce a dificultades en identificar los requisitos y especificaciones del sistema que se busca desarrollar, las ontologías facilitan el acuerdo entre desarrolladores y usuarios.

Author: "Miguel Ángel Abián" Tags: "Web Semántica"
Send by mail Print  Save  Delicious 
Date: Monday, 28 Nov 2005 05:18
Cómo integrar "Flickr" y "43 Places" en nuestro "blog"

Cómo integrar "Flickr" y "43 Places" en nuestro "blog" - Emmanuelle Gutiérrez y Restrepo: cuaderno de bitácora

He publicado hace un rato esta entrada en mi cuaderno de bitácora. En él explico los pasos necesarios para establecer una sinergia entre estos servicios (flickr y 43things) en nuestro "blog", las cosas que deberemos corregir en el código que se nos indica si queremos mantener una mínima accesibilidad y, aquellas que no tendremos más remedio que soportar hasta que estos servicios entre un poco más a considerar la importancia de ser accesibles para todos.

También sugiero algunos cambios que seguramente se darán y que apuntan a la utilización de SVG como lenguaje estándar y susceptible de generar contenidos accesibles que es, indicando algunos ejemplos de aplicaciones ya existentes.

Y una noticia de interés para todos: Un nuevo trabajo de Inkel (Leandro Mariano López) que permite mejorar el sistema de búsqueda y localización de las fotos que tengamos almacenadas en Flickr. Espero que él mismo escriba aquí alguna entrada explicando todo con detalle.

(Intento publicar esto desde Flock, pero parece que no voy a tener suerte hoy :( Bueno, se publicó con pero con fallos en los caracteres extendidos, creo que debido a que Flock publica en UTF8 y este cuaderno debe estar configurado en ISO)

Technorati Tags: semantic, sinergic, blog, flickr, 43things, svg, emmanuelle, pragmatic, flock

Author: "Emmanuelle" Tags: "Aplicaciones prácticas"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader