<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://www.wshoy.sidar.org/index.php">
  <title>Web Semántica Hoy</title>
  <description><![CDATA[]]></description>
  <link>http://www.wshoy.sidar.org/index.php</link>
  <dc:language>es</dc:language>
  <dc:creator></dc:creator>
  <dc:rights></dc:rights>
  <dc:date>2008-03-03T03:40:46-05:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.dotclear.net/" />
  
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2008-03-03T03:40:46-05:00</sy:updateBase>
  
  <items>
  <rdf:Seq>
    <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2008/03/03/40-de-donde-vienen-los-agentes-de-software" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/08/05/36-tabulator-un-navegador-para-la-web-semantica-parte-ii" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/07/18/35-tabulator-un-navegador-para-la-web-semantica-1" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/07/15/34-web-semantica-hoy-parte-del-planeta-rdf" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/04/06/33-trackbacks-cerrados" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/04/03/32-etiquetas-meta-ficheros-rdf-microformatos-3-sabores-de-la-web-semaacutentica" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2006/03/03/31-blogak-20" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven" />
  </rdf:Seq>
  </items>
</channel>

<item rdf:about="http://www.wshoy.sidar.org/index.php?2008/03/03/40-de-donde-vienen-los-agentes-de-software">
  <title>¿DE DÓNDE VIENEN LOS AGENTES DE SOFTWARE?</title>
  <link>http://www.wshoy.sidar.org/index.php?2008/03/03/40-de-donde-vienen-los-agentes-de-software</link>
  <dc:date>2008-03-03T03:40:46-05:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Miguel Ángel Abián</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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.</description>
  <content:encoded><![CDATA[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. <p>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".<br /></p>

<p>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.<br /></p>

<p>Las relaciones y las diferencias entre los objetos y los agentes se detallan en <a href="http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos" hreflang="es">http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos</a>. La ingeniería de software tiende a adoptar enfoques un tanto totalitarios: todo es un actor, todo es un objeto…<br /></p>

<p>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.<br /></p>

<p>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 <em>Homo sapiens sapiens</em>: en el gran libro de la evolución quedan muchas páginas por escribir.<br /></p>

<p>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.<br /></p>

<p>Tal y como se menciona en <a href="http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos" hreflang="es">http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos</a>, 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 <strong><em>inteligencia social</em></strong>, 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.<br /></p>

<p>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?<br /></p>

<p>Gran parte de las propiedades y ventajas de los sistemas multiagente proceden de los sistemas de IA distribuida. Veamos algunas de ellas:<br /></p>

<ul>
 <li><strong>Modularidad.</strong> Según el <em>Dictionary of Object Technologies: The Definitive Desk Referente</em>, 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 <a href="http://www.javahispano.org/tutorials.item.action?id=25" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=25 </a> o <a href="http://www.javahispano.org/contenidos/es/orientacion_a_objetos_11/" hreflang="es">http://www.javahispano.org/contenidos/es/orientacion_a_objetos_11/</a>.)</li><p>

 <li><strong>Bajo acoplamiento. </strong>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). </li><p>

 <li><strong>Fiabilidad.</strong> Que un agente del sistema deje de funcionar no implica que los demás lo hagan. </li><p>

 <li><strong>Eficacia. </strong> 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). </li><p>

 <li><strong>Flexibilidad.</strong> Se pueden añadir y eliminar agentes dinámicamente, y éstos pueden tener diseños e implementaciones muy distintas. </li><p>

 <li><strong>Independencia de la plataforma.</strong> Los agentes pueden funcionar en distintas plataformas. Esta independencia está relacionada con el bajo acoplamiento de los sistemas multiagente. </li><p>

 <li><strong>Velocidad. </strong>Como los agentes que cooperan entre sí se ejecutan concurrentemente, aumenta la velocidad de ejecución del sistema en conjunto. </li><p>

 <li><strong>Redundancia. </strong>La utilización de agentes redundantes (es decir, que desempeñan una misma tarea) mejora la tolerancia a fallos del sistema.  </li><p>

 <li><strong>Escalabilidad. </strong>El sistema mantiene su eficacia cuando aumenta significativamente el número de usuarios del sistema. </li><p>
</ul>

<p>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. <br /></p>

<p>¿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"… <br /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos">
  <title>LOS HABITANTES DE LA WEB SEMÁNTICA: AGENTES, AGENTES INTELIGENTES Y AGENTES SEMÁNTICOS</title>
  <link>http://www.wshoy.sidar.org/index.php?2007/05/08/38-los-trabajadores-de-la-web-semantica-agentes-agentes-inteligentes-y-agentes-semanticos</link>
  <dc:date>2007-05-08T05:39:37-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Miguel Ángel Abián</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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.</description>
  <content:encoded><![CDATA[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. <p> 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.<br /></p>

<p>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 <em>Mars Pathfinder</em> –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.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Agentes2/ejemplo-agente-fisico_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Agentes2/ejemplo-agente-fisico_min.png" alt="Ejemplo de agente físico" /></a></p>  

<p>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.<br /></p>

<p>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):<br /></p>

<ul>
 <li><strong>Persistencia:</strong> 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.</li><p>
  <li><strong>Autonomía:</strong> 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.</li><p>
  <li><strong>Reactividad:</strong> 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.</li><p>
  <li><strong>Proactividad:</strong> 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.</li><p>
  <li><strong>Habilidad social:</strong> 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.</li><p>
</ul>

<p>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.<br /></p>

<p>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 <a href="http://www.javahispano.org/tutorials.item.action?id=25" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=25</a> y <a href="http://www.javahispano.org/tutorials.item.action?id=33" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=33</a>). 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.<br /></p>

<p>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 <em>Power, Corruption and Lies</em> 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).<br /></p>

<p>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 <em>dispararFlecha</em> de un objeto <em>arcoOlímpico</em> 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 <em>dispararFlecha</em> (volviéndolo privado, p. ej.), siempre que eso favoreciera sus objetivos.<br /></p>

<p>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.<br /></p>

<p>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 <em>calcularIVA</em> 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.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Agentes2/objetos-y-agentes_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Agentes2/objetos-y-agentes_min.png" alt="Diferencias entre agentes y objetos" /></a></p>  

<p><br /></p>

<p>Suele usarse el término <strong><em>agente inteligente</em></strong> 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 <em>inteligencia</em> 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.<br /></p>

<p>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.<br /></p>

<p>Algunas personas usan <em>agente inteligente</em> 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 <em>bot</em> (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 <em>arañas</em>.<br /></p> 

<p>Los agentes inteligentes suelen relacionarse con los <em><strong>sistemas expertos</strong></em>. 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.<br /></p> 

<p>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. <br /></p> 

<p>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 (<a href="http://ksl-web.stanford.edu/projects/guardian/" hreflang="es">http://ksl-web.stanford.edu/projects/guardian/</a>) 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.<br /></p> 

<p><br /></p> 

<p>Los <strong><em>sistemas multiagente</em></strong> 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.<br /></p> 

<p>Las enormes posibilidades de los sistemas multiagente se vislumbran en <em>Robocup Rescue</em> (puede encontrarlo en <a href="http://www.rescuesystem.org/robocuprescue/" hreflang="es">http://www.rescuesystem.org/robocuprescue/</a>), 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 <em>Robocup Rescue</em> 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 <em>Robocup Rescue</em> es ingente, por cuanto maneja situaciones como rescatar personas atrapadas en edificios en ruinas, en llamas o inundados. <em>RoboCup Rescue</em> 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. <br /></p> 

<p>Existen muchas plataformas para crear agentes e interconectarlos: IBM Aglets, ZEUS, JADE (<em>Java Agent Development Framework</em>), ABLE, MadKit, JATLite (<em>Java Agent Template Lite</em>), 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 (<a href="http://www.agentbuilder.com/Documentation/product.html" hreflang="es">http://www.agentbuilder.com/Documentation/product.html</a>). 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. <br /></p> 

<p>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, <a href="http://www.javahispano.org/articles.article.action?id=55" hreflang="es">http://www.javahispano.org/articles.article.action?id=55</a>), 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… <br /></p>

<p> <br /></p>

<p>Los <em><strong>agentes semánticos</strong></em> 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 <a href="http://www.javahispano.org/tutorials.item.action?id=55" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=55</a>. 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 (<a href="http://www.amblit.com/products/AmblitNavigator.html" hreflang="es">http://www.amblit.com/products/AmblitNavigator.html</a>) incluye un asistente (<em>Intelligent Personal Agent</em>) al que se le puede enseñar qué desea el usuario y cuándo lo desea. <br /></p>

<p>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 <em>Les 400 coups</em>". 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 <a href="http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven" hreflang="es">http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven</a>). <br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Agentes2/ejemplo-agente-semantico-amblit-navigator_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Agentes2/ejemplo-agente-semantico-amblit-navigator_min.png" alt="Ejemplo de agente semántico del tipo agente personal" /></a></p>  

<p><br /></p>

<p>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. <br /></p>

<p>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. <br /></p>

<p>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).<br /></p>
<p>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 <a href="http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza" hreflang="es">http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza</a>). 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".<br /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza">
  <title>LA WEB SEMÁNTICA: ADEMÁS DE METADATOS (ONTOLOGÍAS), LÓGICA Y CONFIANZA</title>
  <link>http://www.wshoy.sidar.org/index.php?2007/01/30/37-la-web-semantica-metadatos-ontologias-logica-y-confianza</link>
  <dc:date>2007-01-30T03:59:09-05:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Miguel Ángel Abián</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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.</description>
  <content:encoded><![CDATA[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. <p>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.<br /></p>

<p>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 <em>String</em> equivale a describir los datos que son válidos para ese campo (una fecha de tipo <em>Date</em>, vaya por caso, no sería válida en ese campo).<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen1Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen1Metadatos_min.png" alt="Ejemplo de metadatos en un artículo científico" /></a></p>

<p>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.<br /></p>

<p>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. <br /></p>


<p>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 <em>Second Life</em>, 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.<br /></p>

<p>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? <br /></p>
<p>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.<br /></p>

<p>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 <a href="http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven" hreflang="es">http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven </a>  y <a href="http://www.javahispano.org/tutorials.item.action?id=55" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=55 </a>). En la siguiente figura se muestra, como ejemplo, una ontología sobre música. Louis Armstrong es una instancia de la clase Intérprete.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen3Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen3Metadatos_min.png" alt="Ejemplo de una ontología musical" /></a></p>
<br />


<p>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.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen2Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen2Metadatos_min.png" alt="Así será el futuro de la Web" /></a></p>

<br />


<p>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 <em>Persona</em>, <em>Perro</em>, <em>Mamífero</em>, <em>Rabia</em> y <em>Enfermedad</em>, y las relaciones entre ellas (por ejemplo, un <em>Perro</em> es un <em>Mamífero</em>). Para construir una ontología se puede usar cualquier editor de ontologías, como Protégé (<a href="http://protege.stanford.edu" hreflang="es">http://protege.stanford.edu</a>) o OilEd (<a href="http://oiled.man.ac.uk/download.shtml" hreflang="es">http://oiled.man.ac.uk/download.shtml</a>). Para hacer anotaciones semánticas a partir de ontologías pueden emplearse herramientas como Annotea (<a href="http://www.w3.org/2001/Annotea/" hreflang="es">http://www.w3.org/2001/Annotea/</a>) u OntoMat Annotizer (<a href="http://annotation.semanticweb.org/ontomat/index.html" hreflang="es">http://annotation.semanticweb.org/ontomat/index.html</a>).<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen4Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen4Metadatos_min.png" alt="Ejemplo de ontología" /></a></p>


<p>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 (<a href="http://www.javahispano.org/tutorials.item.action?id=25" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=25</a>), diríamos –por ejemplo–, que Fido es una instancia de <em>Perro</em>. 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 <em>Rabia</em> 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."<br /></p>

<p>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 <strong>no estriba en la mera presencia de metadatos</strong>, sino en la combinación de metadatos con la lógica y la confianza en la información.<br /></p>
<br />


<p>La <strong><ins>lógica</ins></strong>, 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 <em>Perro</em>, y ésta es una subclase de <em>Mamífero</em>. Por lo tanto, lo más adecuado sería vacunarlo cuanto antes.<br /></p>

<p>Consideremos la siguientes sentencias en OWL (un lenguaje lógico de ontologías).<br /></p>

<code>
Class(a:taxista complete intersectionOf(a:persona restriction(a:conduce someValuesFrom (a:taxi))))<br />
Class(a:conductor complete intersectionOf(a:persona restriction(a:conduce someValuesFrom (a:vehiculo))))<br />
Class(a:taxi partial a:vehiculo)<br />
</code>

<p>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.<br /></p>

<p>Veamos otro de sentencias escritas en OWL, que ahora contienen instancias (<em>individuals</em>), no sólo clases: <br /></p>

<code>
Individual(a:Blanquita type(owl:Thing) value(a:es_mascota_de a:Miguel))<br />
Individual(a:Miguel type(owl:Thing))<br />
ObjectProperty(a:tiene_mascota domain(a:persona) range(a:animal))<br />
ObjectProperty(a:es_mascota_de inverseOf(a:tiene_mascota))<br />
</code>


<p>Teniendo en cuenta que <em>es_mascota_de</em> está definida como propiedad inversa de <em>tiene_mascota</em> y las restricciones de dominios y rangos para <em>tiene_mascota</em>, 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).  <br /></p>

<p>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. <br /></p>

<p>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 <em>Perro</em>, <em>Perro</em> es subclase de <em>Mamífero</em>, 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. <br /></p>
<br />


<p>Una deducción es cierta si se basa en datos fiables. Es aquí donde entra en juego una palabra mencionada ya antes: la <strong><ins>confianza</ins></strong>. En la figura de la Web semántica podemos ver que la capa de confianza (<em>Trust</em>) ocupa el lugar superior. <br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen5Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen5Metadatos_min.png" alt="Estructura de capas de la Web semántica" /></a></p>


<p>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. <br /></p>

<p>En la Web semántica, la confianza afecta a las siguientes áreas: <br /></p>

<ol>
 <li> <strong>Certificación:</strong> 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.</li><p>

 <li>	<strong>Credibilidad:</strong> 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. <br> 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).</li><p>

 <li><strong>Abuso de confianza:</strong> 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. <br/>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.</li><p>

 <li><strong>Revelación de secretos:</strong> 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.</li><p>

</ol> <p>

<p>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:<br /></p>

<code> meta name="keywords" contents="ontologías, web semántica, OWL, RDF" </code>

<p>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.<br /></p>

<p>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).<br /></p>

<p>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. <strong>Este proceso de valoración ya se está dando con buscadores como Google</strong>, 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). <br /></p>

<p>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 <em>El juego lúgubre</em>?" 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.<br /></p>

<p>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. <br /></p>

<p>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: "<strong>¡Calculemos!</strong>". <br /></p>

<p>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). <br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Imagen6Metadatos.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen6Metadatos_min.png" alt="Ejemplo de inferencia a partir de afirmaciones. Si estuvieran acreditadas, un agente podría dar a Pilar acceso a la intranet de la empresa"/></a></p>
<br />


<p>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. <br /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/08/05/36-tabulator-un-navegador-para-la-web-semantica-parte-ii">
  <title>Tabulator: un navegador para la Web Semántica - Parte II</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/08/05/36-tabulator-un-navegador-para-la-web-semantica-parte-ii</link>
  <dc:date>2006-08-05T19:37:01-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>inkel</dc:creator>
  <dc:subject>Herramientas</dc:subject>
  <description>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.</description>
  <content:encoded><![CDATA[<p>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.</p> <p>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 <a href="http://flickr.com/photos/inkel/" hreflang="en" lang="en">Flickr</a>, agregarle información geográfica obtenida gracias a <a href="http://earth.google.com/" hreflang="en" lang="en">Google Earth</a> (no tengo <acronym title="Global Positioning System" lang="en">GPS</acronym>) y luego subí la información a mi sitio. El contenido del archivo es el siguiente:</p>

<pre>&lt;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"
    &gt;

    &lt;foaf:Image rdf:about="http://static.flickr.com/78/207671826_49a7bb854e_m.jpg"&gt;
        &lt;dc:title&gt;Laburando&lt;/dc:title&gt;
        &lt;rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/207671826/" /&gt;
        &lt;geo:lat&gt;-34.595680&lt;/geo:lat&gt;
        &lt;geo:long&gt;-58.597090&lt;/geo:long&gt;
    &lt;/foaf:Image&gt;
    
    &lt;foaf:Image rdf:about="http://static.flickr.com/65/202397299_4a24210570_m.jpg"&gt;
        &lt;dc:title&gt;Tango&lt;/dc:title&gt;
        &lt;rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/202397299/" /&gt;
        &lt;geo:lat&gt;-34.559817&lt;/geo:lat&gt;
        &lt;geo:long&gt;-58.449780&lt;/geo:long&gt;
    &lt;/foaf:Image&gt;
    
    &lt;foaf:Image rdf:about="http://static.flickr.com/72/196691698_d55d983c12_m.jpg"&gt;
        &lt;dc:title&gt;Concurso de reflejos!&lt;/dc:title&gt;
        &lt;rdfs:seeAlso rdf:resource="http://flickr.com/photos/inkel/196691698/" /&gt;
        &lt;geo:lat&gt;-34.582577&lt;/geo:lat&gt;
        &lt;geo:long&gt;-58.418267&lt;/geo:long&gt;
    &lt;/foaf:Image&gt;
    
&lt;/rdf:RDF&gt;</pre>

<p>Para visualizar estos datos, lo primero que debemos hacernos es abrir <a href="http://dig.csail.mit.edu/2005/ajar/ajaw/tab.html" hreflang="en" lang="en">Tabulator</a> y decirle que cargue la información que se encuentra en <code><a href="http://f14web.com.ar/inkel/2006/08/05/tabulator-example.rdf" type="application/rdf+xml">http://f14web.com.ar/inkel/2006/08/05/tabulator-example.rdf</a></code>. Una vez cargada la información, nos encontraremos con lo siguiente:</p>

<p><img src="http://static.flickr.com/89/207708704_fe210f40e4_o.png" style="margin:auto auto;width:718px;height:219px;" alt="loaded" /></p>

<p>Lo que debemos hacer ahora es desplegar la información sobre las <code>foaf:Image</code> que se encuentran en el archivo, haciendo click sobre el botón para visualizar información (<img src="http://dig.csail.mit.edu/2005/ajar/ajaw/icons/tbl-expand-trans.png" style="width:12px;height:12px" alt="expand" />), y luego hacer lo mismo para la foto titulada <em>Tango</em>. Al visualizarse ésta información, presionar ALT y hacer un click sobre <code lang="en">latitude</code> y <code lang="en">longitud</code>, con lo que obtendremos lo siguiente:</p>

<p><img src="http://static.flickr.com/95/207698092_799a3f899b_o.png" style="margin:auto auto;width:576px;height:493px;" alt="data" /></p>

<p>&iexcl;Y llegamos a la parte tan esperada! Ahora seleccionamos la pestaña <span lang="en">Map</span> y presionamos el botón <code lang="en">View and Save Current Query</code> 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:</p>

<p><img src="http://static.flickr.com/90/207698217_4d280aebc6_o.png" style="margin:auto auto;width:755px;height:541px;" alt="mapa" /></p>

<p>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:</p>

<p><img src="http://static.flickr.com/69/207698192_5d3b7744e8_o.png" style="margin:auto auto;width:648px;height:481px;" alt="detail" /></p>

<p>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.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/07/18/35-tabulator-un-navegador-para-la-web-semantica-1">
  <title>Tabulator: un navegador para la Web Semántica - Parte I</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/07/18/35-tabulator-un-navegador-para-la-web-semantica-1</link>
  <dc:date>2006-07-18T01:16:47-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>inkel</dc:creator>
  <dc:subject>Herramientas</dc:subject>
  <description>¿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?</description>
  <content:encoded><![CDATA[<p>¿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?</p> <p>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 <a href="http://www.getfirefox.com/" hreflang="en" lang="en">Firefox</a> y <a href="http://www.opera.com/">Opera</a>. 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 <acronym title="World Wide Web" lang="en">WWW</acronym>, <a href="http://www.w3.org/People/Berners-Lee/" hreflang="en" lang="en">Tim Berners-Lee</a> desarrolló una página que, utilizando <acronym title="Asyncronous JavaScript And XML" lang="en">AJAX</acronym> y los conceptos de la Web Semántica, nos proporciona un prototipo de cómo podría ser un navegador para la <acronym title="Web Semántica">WS</acronym>: <a href="http://dig.csail.mit.edu/2005/ajar/ajaw/tab.html" lang="en" hreflang="en" title="Tabulator: Async Javascript and Semantic Web">Tabulator</a>.</p>

<p>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:</p>

<ul>
    <li><strong>Firefox</strong>: único navegador con el que se ha probado en su totalidad. Si bien hay que realizar un <a href="http://dig.csail.mit.edu/2005/ajar/ajaw/Help.html#Security" hreflang="en">ajuste de las reglas de seguridad</a> del navegador para navegar recursos remotos, las mismas no transforman al sistema en inseguro.</li>
    <li><strong>Opera</strong>: no ha sido probada plenamente, y no funciona con recursos remotos, por lo que se desarrolló un <span lang="en">widget</span> para Opera 9.</li>
    <li><strong>Safari</strong>: presenta errores extraños, por lo que no recomiendo que lo utilicen, al menos, no de momento.</li>
    <li><strong>Internet Explorer</strong>: 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.</li>
</ul>

<p>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 <em>cosas</em> y no documentos. Por supuesto que algunas de éstas cosas son documentos, pero Tabulator primero los considera una <em>cosa</em> 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.</p>

<p>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 <acronym title="Resource Description Framework" lang="en">RDF</acronym>. 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 <em>protocolo de migajas de pan</em>.</p>

<h4>Protocolo de Migajas de Pan</h4>

<p>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 <em>migaja</em>. 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 <a href="http://www.foaf-project.org/" hreflang="en"><acronym title="Friend-of-a-Friend" lang="en">FOAF</acronym></a>, y funciona así: el documento <code>?d1</code> hace una referencia a la <em>cosa</em> referenciada por <code>?x</code> en el documento <code>?d2</code> cuando:</p>

<pre>?d1 log:says { ?y foaf:mbox_sha1sum ?s. ?y rdfs:seeAlso ?d2}.
?d2 log:says { ?x foaf:mbox_sha1sum ?s }.</pre>

<p>Si el proveedor de información de <code>?d1</code> deja esa información, el consumidor, luego de haber leido <code>?d1</code> y deseando incrementar la información de <code>?y</code> busca en el documento referenciado por <code>rdfs:seeAlso</code>, y encuentra en <code>?d2</code> la referencia a algo con el mismo valor de <code>foaf:mbox_sha1sum</code> 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.</p>

<p>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 (<img src="http://dig.csail.mit.edu/2005/ajar/ajaw/icons/16dot-blue.gif" alt="enlace valido" />).</p>

<p>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!</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/07/15/34-web-semantica-hoy-parte-del-planeta-rdf">
  <title>Web Semántica Hoy, parte del Planeta RDF</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/07/15/34-web-semantica-hoy-parte-del-planeta-rdf</link>
  <dc:date>2006-07-15T08:54:04-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>inkel</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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...</description>
  <content:encoded><![CDATA[ <p>Desde hace unos días este <span lang="en">weblog</span> forma parte del agregador de noticias sobre Web Semántica por excelencia: <a href="http://planetrdf.com/" hreflang="en" lang="en">Planet RDF</a>. En este sitio se pueden encontrar casí todas las noticias que se escriben en <a href="http://journal.dajobe.org/journal/2003/07/semblogs/" hreflang="en">diversos sitios</a>. 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.</p>

<p>La Web Semántica está dejando de ser un <em>proyecto de laboratorio</em> 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 <a href="mailto:inkel.ar+wshoy@gmail.com">casilla personal</a>. ¡Los espero a todos!</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/04/06/33-trackbacks-cerrados">
  <title>Trackbacks cerrados</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/04/06/33-trackbacks-cerrados</link>
  <dc:date>2006-04-06T12:45:54-04:00</dc:date>
  <dc:language>fr</dc:language>
  <dc:creator>Vincent Tabard</dc:creator>
  <dc:subject>Aplicaciones prácticas</dc:subject>
  <description>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...</description>
  <content:encoded><![CDATA[ <p>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.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/04/03/32-etiquetas-meta-ficheros-rdf-microformatos-3-sabores-de-la-web-semaacutentica">
  <title>Etiquetas meta, ficheros RDF, microformatos: 3 sabores de la Web Semántica</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/04/03/32-etiquetas-meta-ficheros-rdf-microformatos-3-sabores-de-la-web-semaacutentica</link>
  <dc:date>2006-04-03T12:10:19-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Gonzalo</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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 &lt;head&gt; y &lt;/head&gt; 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 &lt;body&gt; y &lt;/body&gt; 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).</description>
  <content:encoded><![CDATA[<p>Hace algunos meses, apareci&oacute; <a href="www.webposible.com/utilidades/dublincore-metadata-gen/" xml:lang="en">Dublin Core Metadata <abbr title="Generator">Gen</abbr></a>, una aplicaci&oacute;n desarrollada en <acronym title="eXtensible HyperText Markup Language" xml:lang="en">XHTML</acronym> y <span xml:lang="en">Javascript</span> que genera tres formas de representar metadatos usando los elementos de la Iniciativa de Metadatos de <span xml:lang="en">Dublin Core</span> (<acronym title="Dublin Core Metadata Initiative" xml:lang="en">DCMI</acronym>):</p>

<ul>
	<li>Los cl&aacute;sicos elementos <code xml:lang="en">meta</code> que aparecen entre las etiquetas <code xml:lang="en">&lt;head&gt;</code> y <code xml:lang="en">&lt;/head&gt;</code> de un documento <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>.</li>
	<li>El contenido de un fichero <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>, el ya conocido est&aacute;ndar del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> basado en la sint&aacute;xis de <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym>. Una forma de representar el contenido sem&aacute;ntico de forma comprensible para las m&aacute;quinas.</li>

	<li>Microformatos, otra forma de representar informaci&oacute;n sem&aacute;ntica cuyo objetivo principal es ser &uacute;til a las personas y no a las m&aacute;quinas (o mejor dicho a los agentes de <span xml:lang="en">software</span>). Esta informaci&oacute;n aparece entre las etiquetas <code xml:lang="en">&lt;body&gt;</code> y <code xml:lang="en">&lt;/body&gt;</code> de un documento <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym></li>

</ul>
<p>Cada uno de estos tipos de informaci&oacute;n sem&aacute;ntica tiene sus caracter&iacute;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).</p> <h3>Las etiquetas <code xml:lang="en">meta</code>: ventajas e inconvenientes</h3>
<p>Entre las <strong>virtudes</strong> que caracterizan a las etiquetas <code xml:lang="en">meta</code>, se encuentran:</p>

<ul>
	<li>Aparecieron en las primeras especificaciones oficiales de <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>.</li>
	<li>Las etiquetas <code xml:lang="en">meta</code> son ampliamente conocidas, y su uso est&aacute; muy extendido.</li>
	<li>Como consecuencia del punto anterior, los agentes de software, como los buscadores, las conocen perfectamente.</li>

	<li>El n&uacute;mero de etiquetas <code xml:lang="en">meta</code> es pr&aacute;cticamente ilimitado. Por un lado tenemos las cl&aacute;sicas, como <code>&lt;link rel="author" content="Alejandro Gonzalo Bravo Garc&iacute;a"&gt;</code>, pero se pueden usar tambi&eacute;n otras etiquetas <code xml:lang="en">meta</code> usando perfiles y esquemas, como podemos leer en <a href="http://www.wshoy.sidar.org/index.php?2005/08/01/25-metadatos-geograficos-2-empleandolos-en-ficheros-acronym-titlehypertext-markup-language-langen-xml-langenhtml-acronym-acronym-titleextensible-hypertext-markup-language-langen-xml-langenxhtml-acronym-y-acronym-titleresource">Metadatos geogr&aacute;ficos (2): Emple&aacute;ndolos en ficheros <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>, <acronym title="eXtensible Hyper Text Markup Language" xml:lang="en">XHTML</acronym> y <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym></a>.</li>	
	<li>Como consecuencia del punto anterior, su uso se puede considerar que entra dentro de los "est&aacute;ndares".</li>

</ul>
<p>Pero no todas son ventajas, veamos algunos <strong>inconvenientes</strong>:</p>
<ul>
	<li>Se ha abusado del uso de etiquetas <code xml:lang="en">meta</code>, y no siempre con prop&oacute;sitos correctos. La consecuencia: una buena parte de los buscadores ignoran estas etiquetas.</li>
	<li>Otra consecuencia del punto anterior es que en la actualidad no se utilizan demasiado, por ejemplo es raro encontrarse con elementos <code xml:lang="en">meta</code> en los <acronym title="Content Management System">CMS</acronym> m&aacute;s habituales. Aunque siempre se pueden a&ntilde;adir <span xml:lang="en">plugins</span> que cumplan esa funci&oacute;n.</li>

	<li>Los valores de estas etiquetas son <em>invisibles</em> a los usuarios. Siempre se puede mirar el c&oacute;digo fuente, o ver las propiedades de la p&aacute;gina web, pero sinceramente no es muy habitual.</li>
</ul>

<h3>Ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>: ventajas e inconvenientes</h3>
<p>Comenzamos con las <strong>ventajas</strong>...</p>

<ul>
	<li>Es un est&aacute;ndar del <acronym title="World Wide Web Consortium" xml:lang="en">W3C</acronym> con todo lo que &eacute;sto significa.</li>
	<li>
		<p>Seg&uacute;n podemos leer en la propia especificaci&oacute;n...</p>
		<blockquote cite="http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm#intro">

		<p><span xml:lang="en">Resource Description Framework</span> (<acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>) [Infraestructura para la Descripci&oacute;n de Recursos] es una base para procesar metadatos; proporciona interoperabilidad entre aplicaciones que intercambian informaci&oacute;n legible por m&aacute;quina en la Web. <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> destaca por la facilidad para habilitar el procesamiento automatizado de los recursos Web. <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> puede utilizarse en distintas &aacute;reas de aplicaci&oacute;n; por ejemplo: en <em>recuperaci&oacute;n de recursos</em> para proporcionar mejores prestaciones a los motores de b&uacute;squeda, en <em>catalogaci&oacute;n </em>para describir el contenido y las relaciones de contenido disponibles en un sitio Web, una p&aacute;gina Web, o una biblioteca digital particular, por los <em>agentes de <span xml:lang="en">software</span> inteligentes</em> para facilitar el intercambio y para compartir conocimiento; en la <em>calificaci&oacute;n de contenido</em>, en la descripci&oacute;n de <em>colecciones de p&aacute;ginas</em> que representan un "documento" l&oacute;gico individual, para describir los <em>derechos de propiedad intelectual</em> de las p&aacute;ginas web, y para expresar las <em>preferencias de privacidad </em>de un usuario, as&iacute; como las <em>pol&iacute;ticas de privacidad</em> de un sitio Web. <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> junto con las<em> firmas digitales </em>ser&aacute; la clave para construir el "Web de confianza" para el comercio electr&oacute;nico, la cooperaci&oacute;n y otras aplicaciones.</p>
		</blockquote>

		<cite><span xml:lang="en">Resource Description Framework (<acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>) Model and Syntax Specification</span>, traducido por Eva M&eacute;ndez</cite>
		<p>De aqu&iacute; podemos extraer que tiene un potencial inmenso, desde el punto de vista t&eacute;cnico (interoperabilidad entre aplicaciones y procesamiento automatizado de recursos) y muchos &aacute;mbitos de aplicaci&oacute;n.</p>
	</li>

	<li>Para su contenido se pueden usar infinidad de <code xml:lang="en">namespaces</code>, cada uno de ellos con sus correspondientes elementos, como por ejemplo <a href="http://www.dublincore.org/" xml:lang="en" hreflang="en">Dublin Core</a>, <a href="http://www.foaf-project.org/" hreflang="en"><acronym title="Friend Of A Friend" xml:lang="en">FOAF</acronym></a>, <a href="http://www.adobe.com/products/xmp/main.html" hreflang="en"><acronym title="Extensible Metadata Platform" xml:lang="en">XMP</acronym></a>, <a href="http://ramonantonio.net/doac/" hreflang="en"><acronym title="Description of a Career" xml:lang="en">DOAC</acronym></a>...</li>
	
</ul>
<p>Y seguimos con los <strong>inconvenientes</strong>...</p>

<ul>
	<li>Si bien es cierto que <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> <span xml:lang="en">Site Summary</span> ha tenido una enorme difusi&oacute;n, no podemos decir lo mismo de <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>.</li>
	<li>Requiere m&aacute;s conocimientos t&eacute;nicos para poder usarlo (no es tan sencillo como las etiquetas <code xml:lang="en">meta</code>).</li>

	<li>Los buscadores actualmente suelen ignorar este tipo de metadatos cuando est&aacute;n fuera de un documento <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>, aunque tambi&eacute;n pueden aparecer dentro del propio documento entre comentarios, como ocurre por ejemplo con las licencias <a href="http://www.creativecommons.org/" xml:lang="en" hreflang="en">Creative Commons</a>.</li>
	<li>Actualmente no abundan agentes de software que aprovechen las capacidades de <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> (o al menos no hay tantos como nos gustar&iacute;a).</li>
	<li>En general la informaci&oacute;n contenida en ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> no se muestra a las personas. Aunque siempre nos podemos encontrar con agradables excepciones, como la herramienta para visualizar informes <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> obtenidos al hacer una revisi&oacute;n autom&aacute;tica con <a href="http://www.sidar.org/hera/" title="Utilidad para revisar la accesibilidad de las páginas web">HERA</a> y que podemos ver en funcionamiento en <a href="http://www.sidar.org/informes/" title="Funcionamiento del script PHP creado por Carlos Benavidez para facilitar la visualización de los informes en formato RDF generados por HERA">Informes Hera</a>.</li>

</ul>

<h3>Microformatos: ventajas e inconvenientes</h3>
<p>Veamos primero sus <strong>puntos fuertes</strong>:</p>
<ul>
	<li>Las personas obtienen f&aacute;cilmente la informaci&oacute;n contenida en los microformatos: es su principio b&aacute;sico. &iquest;D&oacute;nde puedo encontrar microformatos? Seguramente los hayas visto, aunque no te hayas dado cuenta. Los puedes encontrar, por ejemplo, en <a href="http://www.webposible.org/guru-web/">Gur&uacute; Web</a>, donde se utilizan microformatos generados con <a href="www.webposible.com/utilidades/dublincore-metadata-gen/" xml:lang="en">Dublin Core Metadata <abbr title="Generator">Gen</abbr></a> (tambi&eacute;n se usan los elementos <code xml:lang="en">meta</code> y los ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>, aunque tendr&aacute;s que ver el c&oacute;digo fuente para comprobarlo).</li>

	<li>A pesar del poco tiempo de vida, ha tenido bastante difusi&oacute;n.</li>
	<li>Existen multitud de microformatos con diferentes aplicaciones (consultar el listado <a href="http://www.microformats.org/wiki/Main_Page" xml:lang="en" hreflang="en">Microformats Wiki</a>), y cada vez van saliendo m&aacute;s.</li>
</ul>
<p>Y ahora sus <strong>puntos menos fuertes</strong>...</p>
<ul>
	<li>Es bastante reciente, y todav&iacute;a no est&aacute; muy asentado.</li>

	<li>La informaci&oacute;n no es interpretada con tanta facilidad como los ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> o las etiquetas <code xml:lang="en">meta</code>. Pero el hecho de usar f&oacute;rmulas est&aacute;ndar para codificar los microformatos, deber&iacute;a minimizar esta dificultad a los buscadores.</li>
	<li>Aunque existe <a href="http://gmpg.org/xmdp/" hreflang="en"><abbr title="XHTML Meta Data Profiles" xml:lang="en">XMDP&trade;</abbr></a> para crear pefiles para los microformatos, no est&aacute;n tan formalmente definidos como los perfiles para las las etiquetas <code xml:lang="en">meta</code> &oacute; los <code xml:lang="en">namespaces</code>. Adem&aacute;s en el caso de los microformatos la relaci&oacute;n entre los elementos del perfil y los microformatos no es tan exacta e inequivoca como en los perfiles o esquemas para las etiquetas <code xml:lang="en">meta</code> &oacute; los <code xml:lang="en">namespaces</code>.</li>

	<li>Los microformatos son menos potentes, desde el punto de vista sem&aacute;ntico, que otras formas de definir metadatos (como los mencionados ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>). 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&oacute;n es m&aacute;s limitado.</li>	
</ul>

<h3>&iquest;M&aacute;s informaci&oacute;n sem&aacute;ntica en <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>? &iquest;C&oacute;mo? &iquest;D&oacute;nde?</h3>

<p>Por lo visto antes, parece que la &uacute;nica forma de incluir informaci&oacute;n sem&aacute;ntica es mediante metadatos, ya sea en etiquetas <code xml:lang="en">meta</code>, ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> &oacute; microformatos. Pero no es as&iacute;. Como podemos leer en la ayuda de <a href="http://www.sidar.org/hera/" title="Utilidad para revisar la accesibilidad de las páginas web">HERA</a>, al revisar la <a href="http://www.discapnet.es/web_accesible/wcag10/WAI-WEBCONTENT-19990505_es.html#tech-use-metadata" title="13.2 Proporcione metadatos para añadir información semántica a las páginas y sitios. [Prioridad 2]">pauta 13.2</a></p>
<blockquote cite="http://http://www.sidar.org/hera/">
<p>Son contenedores de metadatos, el elemento "<code xml:lang="en">title</code>", el elemento "<code xml:lang="en">address</code>", el elemento "<code xml:lang="en">meta</code>", la declaración de tipo de documento (DTD), el elemento "<code xml:lang="en">link</code>" y los elementos "<code xml:lang="en">del</code>" e "<code xml:lang="en">ins</code>", así como los atributos "<code xml:lang="en">title</code>" y "<code xml:lang="en">cite</code>".</p>
</blockquote>
<p><cite>Ayuda de <a href="http://www.sidar.org/hera/" title="Utilidad para revisar la accesibilidad de las páginas web">HERA</a>, al revisar la pauta 13.2</cite></p>
<p>Para ampliar informaci&oacute;n, podemos leer el art&iacute;culo de Emmanuelle titulado <a href="http://www.bitacoras.sidar.org/emmanuelle/index.php?2005/10/23/16--">Navegaci&oacute;n Sem&aacute;ntica o Meta Navegaci&oacute;n</a></p>

<h3><code xml:lang="en">meta</code>, <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>, microformatos,... &iquest;qu&eacute; metadatos son los mejores?</h3>

<p>Como era de esperar, la respuesta es <strong>depende</strong>. En funci&oacute;n de las caracter&iacute;sticas de cada tipo de metadatos, ser&aacute; m&aacute;s apropiado para unos desarrolladores o u otros. Igualmente depende tambi&eacute;n de d&oacute;nde queramos utilizarlos y porqu&eacute;.</p>
<p>Desde mi punto de vista, si queremos algo sencillo, lo mejor es usar <code xml:lang="en">meta</code>. Con unos conocimientos un poco m&aacute;s avanzados se pueden usar elementos de perfiles &oacute; esquemas muy potentes y vers&aacute;tiles (como por ejemplo <a href="http://www.dublincore.org/" xml:lang="en" hreflang="en">Dublin Core</a>). Si queremos usar unos metadatos m&aacute;s formales, aun a riesgo de que no se aproveche todo lo que se podr&iacute;a (al menos actualmente), creo que es una buena idea vincular en un documento web un fichero <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> externo. Aunque si no contamos con una aplicaci&oacute;n que los genere de forma sencilla, como por ejemplo <a href="http://www.ldodds.com/foaf/foaf-a-matic.es.html"><acronym title="Friend Of A Friend" xml:lang="en">FOAF</acronym>-a-Matic</a> (traducido por <a href="http://f14web.com.ar/inkel/">inkel</a> al espa&ntilde;ol), puede ser algo m&aacute;s complicado y requiere conocimientos de <acronym title="eXtensible Markup Language" xml:lang="en">XML</acronym> y <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>.</p>

<p> Si tienes algunas dudas, en el art&iacute;culo <a href="http://www.wshoy.sidar.org/index.php?2005/08/01/25-metadatos-geograficos-2-empleandolos-en-ficheros-acronym-titlehypertext-markup-language-langen-xml-langenhtml-acronym-acronym-titleextensible-hypertext-markup-language-langen-xml-langenxhtml-acronym-y-acronym-titleresource">Metadatos geogr&aacute;ficos (2): Emple&aacute;ndolos en ficheros <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym>, <acronym title="eXtensible Hyper Text Markup Language" xml:lang="en">XHTML</acronym> y <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym></a> se explican algunos conceptos b&aacute;sicos.</p>
<p>En el caso de que la prioridad sea facilitar a las personas la percepci&oacute;n de ciertos metadatos, una buena opci&oacute;n es usar microformatos. Algunos son muy sencillos de codificar (el ejemplo m&aacute;s claro es <a href="http://www.microformats.org/wiki/rel-tag" xml:lang="en" hreflang="en">rel-tag</a>, para que <a href="http://www.technorati.com/" xml:lang="en" hreflang="en">technorati</a> catalogue  mejor los art&iacute;culos de las bit&aacute;coras), y no requieren grandes conocimientos: con saber un poco de <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym> basta. Adem&aacute;s puedes encontrar herramientas bastante &uacute;tiles, como por ejemplo <a href="http://tantek.com/microformats/hcard-creator.html" xml:lang="en" hreflang="en">hCard Creator</a>, 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 &uacute;tiles. Pero su existencia y uso no resta importancia a los metadatos codificados m&aacute;s formalmente (si has pensado en <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> sumamos 10 puntos en tu marcador, je je).</p>

<p></p>
<h3>Elementos <code xml:lang="en">meta</code>, ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym>, microformatos,... tres formas de mostrar metadatos generados con <span xml:lang="en">Dublin Core Metadata <abbr title="Generator">Gen</abbr></span></h3>
<p>Volvamos otra vez a <a href="www.webposible.com/utilidades/dublincore-metadata-gen/" xml:lang="en">Dublin Core Metadata <abbr title="Generator">Gen</abbr></a>, la herramienta que present&aacute;bamos al principio de este art&iacute;culo. Y recordemos que era capaz de generar metadatos de <span xml:lang="en">Dublin Core</span> de tres formas distintas:</p>

<ul>	
	<li>Elementos <code xml:lang="en">meta</code></li>
	<li>Ficheros <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym></li>
	<li>Microformatos <span xml:lang="en">Dublin Core</span></li>
</ul>
<p>Tres opciones a elegir, y todos generados de una forma sencilla: algunos inconvenientes que hemos mencionado antes como la complejidad para generarlos, desaparecen. S&oacute;lo tenemos que utilizar los metadatos que m&aacute;s nos interesen... s&oacute;los o en compa&ntilde;&iacute;a de otros metadatos generados por la misma herramienta (si recuerdas que en <a href="http://www.webposible.org/guru-web/">Gur&uacute; Web</a> se utilizaban a la vez los tres metadatos, tienes diez puntos m&aacute;s en tu marcador, je je).</p>

<h3>Experimento pr&aacute;ctico: comparar la popularidad en los buscadores de los tres metadatos</h3>
<p>Desde aqu&iacute; planteo un peque&ntilde;o experimento pr&aacute;ctico para los lectores de Web Sem&aacute;ntica Hoy: comparar la popularidad de los tres metadatos en los buscadores m&aacute;s habituales. &iquest;C&oacute;mo? Generando metadatos sobre alg&uacute;n recurso que no tenga muchos resultados en los buscadores (&iquest;una palabra inventada, tal vez?), colocarlos en diferentes p&aacute;ginas webs y tras unos d&iacute;as comparar qu&eacute; documentos est&aacute;n mejor posicionados en algunos buscadores. El ganar esta peque&ntilde;a competici&oacute;n no signifique que tal o cu&aacute;l metadato sea mejor que los otros, sino que es reconocido con m&aacute;s facilidad por los buscadores (hay otras formas de compararlos, aunque quiz&aacute;s no sean tan sencillas).</p>

<p>Desde luego en la competici&oacute;n no todos tienen las mismas probabilidades de "ganar" (en mi opini&oacute;n <acronym title="Resource Description Framework" xml:lang="en">RDF</acronym> parte con desventaja), y el &eacute;xito puede venir condicionado por otros elementos externos, como por ejemplo el elemento <code xml:lang="en">title</code>, o los t&iacute;tulos y contenido,... por tanto habr&iacute;a que ser equitativo y partir de tres documentos <acronym title="Hyper Text Markup Language" xml:lang="en">HTML</acronym> id&eacute;nticos... salvo en los metadatos.</p>
<p>No olvid&eacute;is compartir los resultados en los comentarios.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2006/03/03/31-blogak-20">
  <title>Blogak 2.0</title>
  <link>http://www.wshoy.sidar.org/index.php?2006/03/03/31-blogak-20</link>
  <dc:date>2006-03-03T18:43:16-05:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Fran García</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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....</description>
  <content:encoded><![CDATA[ <p>La <a href="http://www.deusto.es" hreflang="es">Universidad de Deusto de Bilbao</a> ha organizado para el próximo 6 de Abril, unas jornadas sobre la web 2.0: <a href="http://www.blogak.org" hreflang="es">Blogak 2.0</a>. En ellas se <a href="http://www.blogak.org/2006/03/03/temas-de-las-jornadas-blogak-2-0" hreflang="es">tratarán temas relacionados</a> con <a href="http://es.wikipedia.org/wiki/Blog" hreflang="es">blogs</a>, <a href="http://es.wikipedia.org/wiki/Wiki" hreflang="es">wikis</a>, <a href="http://es.wikipedia.org/wiki/RSS" hreflang="es">sindicación de contenidos</a>, folksonomias y <a href="http://es.wikipedia.org/wiki/Web_sem%C3%A1ntica" hreflang="es">web semántica</a>, entre otros.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven">
  <title>ONTOLOGÍAS: QUÉ SON Y PARA QUÉ SIRVEN</title>
  <link>http://www.wshoy.sidar.org/index.php?2005/12/09/30-ontologias-que-son-y-para-que-sirven</link>
  <dc:date>2005-12-09T02:31:56-05:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Miguel Ángel Abián</dc:creator>
  <dc:subject>Web Semántica</dc:subject>
  <description>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.</description>
  <content:encoded><![CDATA[<p>Este texto explica muy brevemente una tecnología imprescindible para conseguir la <strong>Web semántica</strong>: 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 &#8211;páginas HTML, documentos PDF, vídeos, archivos de sonido&#8211; mediante ontologías (esto es, mediante el significado de las palabras), no mediante palabras clave.</p> <p>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).<br /></p>

<p>Si desea más información sobre ontologías o sobre la Web semántica, puede consultar el trabajo <em>La Web del futuro</em> (<a href="http://www.javahispano.org/tutorials.item.action?id=55" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=55</a>). Puede encontrar una introducción a la Web actual (estructura, protocolos, etc.) en la primera parte de <em>Java y las redes</em> (<a href="http://www.javahispano.org/tutorials.item.action?id=45" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=45</a>).</p>
<br />

<p>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 <em>Homo sapiens</em>; 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".</p>


<p>Así como la Ontología &#8211;nótese la mayúscula inicial&#8211; 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 <em>Venta</em>, <em>Compra</em>, <em>Transferencia</em>, <em>Pago</em>, etc.; y relaciones como &#8220;Una Transferencia corresponde a una Venta o a una Compra&#8221;, &#8220;Un Pago corresponde a una o varias Transferencias&#8221;, etc.</p>


<p>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 <a href="http://www.snomed.org/" hreflang="es">http://www.snomed.org/</a> se puede encontrar una ontología médica (SNOMED). WordNet (<a href="http://wordnet.princeton.edu/perl/webwn" hreflang="es">http://wordnet.princeton.edu/perl/webwn</a>) 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 <a href="http://www.unspsc.org/" hreflang="es">http://www.unspsc.org/</a> se describe una ontología de carácter general desarrollada por las Naciones Unidas (es un vocabulario para servicios y productos).</p>
<br />

<p>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.</p>

<p>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: <strong>de dominio</strong> y <strong>de nombre</strong>. 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 <em>Trabajador</em> en una base de datos (BD) puede corresponder a un trabajador cualificado, mientras que otra BD puede usar <em>Trabajador</em> 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.</p>


<p>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 <em>Trabajador</em> para el mismo concepto que otra usa <em>Empleado</em>. 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.

<p align="center"><a href="http://www.webposible.com/imagenes/miguel-angel-abian/problema-sinonimos.gif" title="Ampliar imagen"><img src="http://www.webposible.com/imagenes/miguel-angel-abian/problema-sinonimos-p.gif" width="235" height="177" alt="Problema sinónimos: El mismo concepto del mundo real se traduce en varios términos en distintos sistemas" /></a></p>

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, <em>Conductor</em> 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, <em>Conductor</em> 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 (<em>Conductor</em>) 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 <em>Conductor</em> no guarda ninguna relación con el de otra.</p>


<p>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 <em>Enterprise Ontology</em> (EO) define así Venta: &#8220;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&#8221;. Las ontologías sencillas suelen representarse como una jerarquía de conceptos relacionados y ordenados.</p>
<br />

<p>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:</p>

<pre>&lt;owl:Class rdf:ID="Mapa"&gt;
   &lt;rdfs:subClassOf&gt; 
      &lt;owl:Restriction&gt;
         &lt;owl:onProperty rdf:resource="#tieneEscalaPredeterminada"/&gt;
         &lt;owl:maxCardinality 
            rdf:datatype="&amp;xsd;nonNegativeInteger"&gt; 1
         &lt;/owl:maxCardinality&gt; 
      &lt;/owl:Restriction&gt;
   &lt;/rdfs:subClassOf&gt; 
&lt;/owl:Class&gt;

&lt;owl:ObjectProperty rdf:ID="tieneEscala"&gt;
   &lt;rdfs:domain rdf:resource="#Mapa"/&gt; 
   &lt;rdfs:range rdf:resource="#Escala"/&gt; 
&lt;/owl:ObjectProperty&gt;

&lt;owl:ObjectProperty rdf:ID="tieneEscalaPredeterminada"&gt; 
   &lt;rdfs:subPropertyOf rdf:resource="#tieneEscala"/&gt;
&lt;/owl:ObjectProperty&gt;</pre>

<br />


<p>Este fragmento define que las entidades <em>Mapa</em> tienen una propiedad llamada <em>tieneEscala</em>, que a su vez tiene una subpropiedad llamada <em>tieneEscalaPredeterminada,</em> y que un <em>Mapa</em> no puede tener más de una escala predeterminada.
<br /></p>


<p>Las ontologías se usan para <strong>favorecer la comunicación entre personas</strong>, <strong>organizaciones y aplicaciones,</strong> <strong>lograr la interoperabilidad entre sistemas informáticos</strong>, <strong>razonar automáticamente</strong> y para <strong>la ingeniería de software</strong>.</p>

<br />

<p>Las ontologías <strong>favorecen la comunicación entre personas, organizaciones y aplicaciones</strong> 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. <br /></p>


<p>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. <br /></p>


<p>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 (<em>e-marketplaces</em>). 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 <em>verá</em> a muchos fabricantes y vendedores del dispositivo y, por ende, perderá muchas oportunidades de negocio. <br /></p>

<p>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. <br /></p>

<p>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 <em>Visita</em>, con relaciones "hijas" como <em>VisitaFeria</em>, <em>VisitaEmpresa</em>, 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.</p>
<br />

<p>Las ontologías también sirven para <strong>conseguir que los sistemas interoperen</strong>. 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.</p>
<br />

<p>Las ontologías resultan muy útiles para <strong>facilitar el razonamiento automático</strong>, 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.</p>

<p align="center"><a href="http://www.webposible.com/imagenes/miguel-angel-abian/ejemplo-razonamiento-automatico-rio-duero.gif" title="Ampliar imagen"><img src="http://www.webposible.com/imagenes/miguel-angel-abian/ejemplo-razonamiento-automatico-rio-duero-p.gif" width="235" height="177" alt="Ejemplo de razonamiento automático" /></a></p>


<p>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. <br />
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 &#8211;y cuáles no&#8211; 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.<br /></p>


<p>El razonamiento automático también se usa para establecer relaciones entre ontologías (por ejemplo, <em>Producto</em> en la ontología O1 es <em>Materia Prima</em> 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.).</p>

<p align="center"><a href="http://www.webposible.com/imagenes/miguel-angel-abian/bases-datos-federadas.gif" title="Ampliar imagen"><img src="http://www.webposible.com/imagenes/miguel-angel-abian/bases-datos-federadas-p.gif" width="235" height="177" alt="Descripción de una base de datos federada" /></a></p>
<br />

<p>En la <strong>ingeniería del software,</strong> 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.</p>]]></content:encoded>
</item>

</rdf:RDF>
