<?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>2009-07-01T03:33:14-04:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.dotclear.net/" />
  
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2009-07-01T03:33:14-04:00</sy:updateBase>
  
  <items>
  <rdf:Seq>
    <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2009/07/01/46-buscadores-semanticos-comprender-para-encontrar-parte-1" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2009/06/10/45-bing-el-nuevo-navegador-semantico-de-microsoft" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2008/06/23/43-tienen-los-agentes-inteligentes-creencias-intenciones-y-deseos" />
  <rdf:li rdf:resource="http://www.wshoy.sidar.org/index.php?2008/06/16/42-lista-de-buscadores-semanticos" />
  <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:Seq>
  </items>
</channel>

<item rdf:about="http://www.wshoy.sidar.org/index.php?2009/07/01/46-buscadores-semanticos-comprender-para-encontrar-parte-1">
  <title>BUSCADORES SEMÁNTICOS: COMPRENDER PARA ENCONTRAR (Parte 1)</title>
  <link>http://www.wshoy.sidar.org/index.php?2009/07/01/46-buscadores-semanticos-comprender-para-encontrar-parte-1</link>
  <dc:date>2009-07-01T03:33:14-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>En este artículo se definen conceptos como búsqueda semántica y buscador semántico y se exponen ejemplos de las ventajas de los buscadores semánticos con respecto a los buscadores convencionales, basados en el uso de palabras clave para encontrar información y mostrarla al usuario. El interés industrial y comercial de las búsquedas semánticas se manifiesta tanto en la aparición de numerosos buscadores semánticos como en la utilización de técnicas semánticas para complementar las búsquedas convencionales (en Google, por ejemplo).</description>
  <content:encoded><![CDATA[En este artículo se definen conceptos como <em><strong>búsqueda semántica</strong></em> y <em><strong>buscador semántico</strong></em> y se exponen ejemplos de las ventajas de los buscadores semánticos con respecto a los buscadores convencionales, basados en el uso de palabras clave para encontrar información y mostrarla al usuario. El interés industrial y comercial de las búsquedas semánticas se manifiesta tanto en la aparición de numerosos buscadores semánticos como en la utilización de técnicas semánticas para complementar las búsquedas convencionales (en Google, por ejemplo). <p>En mi artículo anterior hablé del nuevo buscador semántico de Microsoft. En este artículo definiré precisamente conceptos como "búsqueda semántica" y "buscador semántico" y expondré ejemplos de sus ventajas con respecto a los buscadores convencionales, así como de sus limitaciones actuales.</p>

<p>Muchos de los buscadores actuales se basan en palabras clave. Es decir, el usuario introduce las palabras relevantes de su búsqueda ("Albert Einstein" y "Nobel", p. ej.), y la aplicación devuelve todos los documentos que contienen esas palabras. En el apartado 3.2 de <em>El futuro de la Web</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 encontrarse una exposición de las desventajas de esos buscadores. Dos son las más importantes: 
<ol>
 <li><strong>Escasa precisión o relevancia en los resultados</strong> (se devuelven muchos documentos poco relevantes para la búsqueda: la presencia de una palabra clave en un documento no implica necesariamente que éste sea relevante). </li> <p></p>
 <li><strong>Excesiva sensibilidad al vocabulario empleado en las búsquedas </strong>(y, por tanto, imposibilidad de obtener a la primera todos los resultados relevantes disponibles: muchos documentos de interés pueden no incluir las palabras clave, pero sí sinónimos, hipónimos o hiperónimos de ellas). </li>
</ol>
</p> 

<p>Un estudio de David Hawking y de varios investigadores evaluó 20 buscadores convencionales (basados en palabras clave) usando 54 búsquedas. El porcentaje de resultados relevantes después de inspeccionar las 20 primeras páginas web devueltas fue del 0,5% para el mejor buscador (Northern Light), y Google fue el segundo buscador más preciso. Así pues, la popularidad de los buscadores basados en palabras clave no tiene mucho que ver con su precisión, sino con la paciencia de buey de los usuarios. Así las cosas, <strong>las búsquedas semánticas serían una vacuna para el contagioso virus de la falta de relevancia en los resultados</strong>. </p>

<p>Una búsqueda semántica es una consulta en la que se tiene en cuenta el contexto, y por tanto el significado, de aquello por lo que se pregunta (y no solamente las palabras de la consulta), con el objetivo de evitar la ambigüedades tanto de las consultas como del texto de los documentos donde se busca. Por ejemplo, una búsqueda semántica con las palabras "descubridor" y "penicilina" devolvería documentos sobre Alexander Fleming, aunque en ellos no aparecieran esos dos términos, porque identificaría los conceptos que estructuran la búsqueda (la penicilina es un producto del cual se desea averiguar su descubridor o, dicho más formalmente, <em>Medicina(Penicilina) tieneInventor Persona(Alexander Fleming)</em>).  El fin último de las búsquedas semánticas radica en que los usuarios puedan formular <strong>búsquedas más precisas y expresivas</strong>, que originen resultados relevantes para el usuario con la mínima intervención de éste.</p>

<p>Normalmente, se admite que las búsquedas semánticas se basan en técnicas para extraer información mediante la utilización de ontologías (véase  <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>) o metadatos. El uso de ontologías permite definir formalmente los dominios de interés (teorías científicas, por ejemplo) con la suficiente riqueza expresiva para que los usuarios pueden especificar sus búsquedas con bastante detalle, ya sea antes de ejecutar la consulta o durante su ejecución.</p>

<p>Desde un punto de vista técnico, <strong>un buscador semántico es una aplicación que <em>comprende</em> las búsquedas de los usuarios y los textos de los documentos de la web mediante el uso de algoritmos que simulan comprensión o entendimiento</strong>, y que a partir de éstos proporciona resultados correctos sin que el usuario tenga que abrir el documento e inspeccionarlo por sí mismo. Un buscador de este tipo reconoce el contexto correcto para las palabras o sentencias de búsqueda. Google o Yahoo no son buscadores semánticos, pues se basan fundamentalmente en algoritmos que generan estadísticas a partir de palabras y enlaces, y no en algoritmos cognitivos que capturen el conocimiento implícito en las palabras y su contexto. Por ejemplo, una búsqueda como "¿Quién fue Urano?" en cualquiera de esos buscadores devolverá resultados afines al séptimo planeta del Sistema Solar, cuando está claro que el propósito de la búsqueda es encontrar información sobre el dios primordial del cielo en la mitología griega.</p>

<p>Los buscadores semánticos no siempre pueden acertar a la primera el significado de una palabra polisémica. Por tanto, deben disponer de medios de desambiguación para conocer el sentido exacto que tiene la palabra en la búsqueda.  Por ejemplo, un buscador semántico que utilize internamente ontologías con conceptos informáticos y medios de transporte deberá disponer de herramientas para determinar a qué se refiere el usuario cuando hace una consulta con la palabra <em>bus</em>, que puede significar autobús o "sistema digital que transfiere datos entre los componentes de un computador o computadores". Para ello, puede escoger el significado más probable, preguntar al usuario para que elija entre varias opciones (como hace el buscador Hakia, que presenta las opciones extrayéndolas de su ontología) o usar las demás palabras de la búsqueda para inferir el significado exacto de <em>bus</em> en ese contexto (p. ej., en una consulta como "¿A qué hora sale este viernes el bus para Soria desde Madrid?").</p>

<p>Como un buscador semántico se basa en algoritmos que simulan la comprensión de las palabras y, por ende, establecen relaciones entre ellas, pueden realizar búsquedas de interés para el usuario aunque en los documentos devueltos no figuren las palabras o expresiones de búsqueda. Por ejemplo, un buscador semántico en que se introdujera la palabra "marsupial" mostraría documentos donde aparecerían términos como éstos: canguro, koala, satanelo de Nueva Guinea, monito del monte, rata canguro, zarigüeya, tlacuache, demonio de Tasmania. Como demuestra este ejemplo, las búsquedas semánticas son muy superiores a las basadas en palabras clave: uno puede encontrar documentos de interés que jamás encontraría buscando con palabras clave. Además, si uno buscara información sobre distintas especies de marsupiales, no necesitaría formular la consulta de distintas maneras, con el nombre de cada especie, para obtener la información deseada.</p>

<p>La falta de estructura y de anotaciones semánticas en los recursos de la web (documentos Word, PDF, páginas HTML, etc.) obliga a que los buscadores semánticos analicen mediante algoritmos cognitivos los recursos, palabra a palabra y oración a oración, para asignar las palabras y oraciones a conceptos ontológicos. Estos algoritmos son lentos y requieren supervisión humana. De ahí que los buscadores semánticos no cubran por ahora tantos recursos de la web como los convencionales, que emplean algoritmos estadísticos, mucho más rápidos y completamente automatizados. Esta limitación desaparecerá cuando se vayan mejorando los algoritmos cognitivos o en cuanto los "islotes semánticos" se unan para formar la web semántica o, al menos, "continentes semánticos".</p>

<p>"Nunca existirá la web semántica –oigo a lo lejos–. Es tan imposible que funcione como las máquinas voladoras de Leonardo da Vinci." Tengo dos objeciones contra esa opinión. Una: el pesimismo no tiene futuro. Dos: hubo un tiempo, no lejano, en que se pensaba que la interoperabilidad sintáctica era imposible salvo con enormes inversiones, y casi todos apostaron a que no habría un único caballo ganador en la carrera de los lenguajes de intercambio de datos. Se equivocaron. Y algunos perdieron hasta la camisa.</p>

<p>A falta de la web semántica, algunos ya se han puesto al tajo. Existen buscadores semánticos que trabajan ya estructurando la información a la que luego se accede mediante búsquedas, pues resulta posible obtener cierto nivel de conocimiento semántico a partir de la estructura de los datos. Por ejemplo, Freebase (<a href="http://www.freebase.com/" hreflang="es">http://www.freebase.com/</a>), un buscador social, utiliza RDF para definir su estructura de datos como una serie de nodos y un conjunto de enlaces que establecen relaciones entre los nodos. Freebase tiene una gran colección de vocabularios codificados mediante RDF(S), con los cuales expresa un amplio rango de dominios y áreas de interés.</p>

<p align="center"><a href="http://wshoy.sidar.org/images/BuscSeman/Freebase_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/BuscSeman/Freebase_min.JPG" alt="Freebase: una base de datos social y un buscador."/></a></p><br /></p>

<p>Según la documentación oficial de Freebase, lo que diferencia a Freebase de otras bases de datos es que cualquier asunto puede ir acompañado de muchas clases distintas de información. El ejemplo que dan es muy claro: "Por ejemplo, Arnold Schwarzenegger podría aparecer como actor en una base de datos de películas, como gobernador en una base de datos de política y como Mr. Universo en una base de datos de culturistas. En Freebase, solamente hay un tema sobre Arnold Schwarzenegger, que contiene información sobre las tres facetas de su vida pública. El tema unificado actúa como un centro de información, por lo que es fácil encontrar información sobre él y aportarla, independientemente de qué clase de información es".</p>

<p align="center"><a href="http://wshoy.sidar.org/images/BuscSeman/Freebase2_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/BuscSeman/Freebase2_min.JPG" alt="En Freebase, al acceder a Luis Buñuel se acceden a todos los aspectos de su vida."/></a></p><br /></p>

<p>En principio, los buscadores semánticos podrían evitar las páginas basura, que proliferan en la web como malas hierbas en un campo abandonado. Como tienen en cuenta el contexto de las palabras o frases de los documentos, podrían descartar esas páginas enseguida. Por ejemplo, una página web que incluya la frase "web semántica" rodeada de frases sobre cómo aumentar la potencia sexual, juguetes eróticos y sexo fácil en algún país lejano de costumbres relajadas sería eliminada de cualquier búsqueda sobre la web semántica o tendría una relevancia muy baja; pues el contexto de estas últimas frases (sexo) no tiene ninguna relación con la web semántica.</p>
<p>Que un buscador permita introducir preguntas en lenguaje natural ("¿Qué tiempo hace ahora en Viena?") y las responda correctamente no significa necesariamente que sea un buscador semántico: puede que solamente traduzca las preguntas en lenguaje natural a consultas sobre una base de datos.</p>

<p>Por el momento, casi todos los buscadores semánticos permiten solamente búsquedas en inglés, aunque se están ampliando para que admitan otros lenguajes. Aparte del predominio del inglés, la causa de eso se debe también a las dificultades inherentes a reflejar el <strong>conocimiento de los lenguajes naturales</strong> en estructuras de datos que permitan búsquedas rápidas y escalables (matrices, listas, pilas, colas, árboles, grafos, etc.). Por ejemplo, el buscador Hakia utiliza un vocabulario en forma de ontología que incluye unos 100.000 sentidos de palabras inglesas, y ese número continuará aumentando según se perfeccione la aplicación. Confeccionar cualquier vocabulario de ese tamaño es una empresa lenta, tediosa y muy cara, y que debe ser realizada por un equipo bien coordinado de especialistas en lingüística.</p>

<p>Se equivocará quien piense que, teniendo una ontología de sentidos de palabras en inglés, resulta sencilla su conversión a una ontología en otro idioma: la conversión de ontologías lingüísticas de un idioma a otro es un proceso muy complejo y que requiere la supervisión constante de un equipo de traductores. Por poner un ejemplo, si queremos pasar de una ontología lingüística en español a una en alemán, debemos considerar todas las posibles traducciones al alemán de cada palabra española; en caso contrario, los resultados de las búsquedas en alemán estarán más limitados que los de las búsquedas en español. Una palabra española sencilla y sin ambigüedades como "automóvil" puede traducirse en alemán como "Auto", "Wagen", "Kraftwagen", "Kraftfahrzeug", "Automobil", "Motorfahrzeug" o "KFZ" (seguro que hay más traducciones, pero hasta ahí llega mi alemán básico). </p>

<p>En una búsqueda interlinguística español-alemán de tipo semántico, todas estas palabras deberían tenerse en cuenta para encontrar todos los documentos relevantes cuando alguien escriba "automóvil" en el buscador. (Las búsquedas interlinguísticas son aquellas en que se traduce una búsqueda en un lenguaje a otro lenguaje, y los resultados se traducen de nuevo al primer lenguaje. Google está trabajando para añadir a su buscador esta clase de búsquedas, que permitirán, entre otras muchas cosas, que un hispanohablante puede reservar entradas en museos y cines en Tokio, aunque la información de horarios y venta de entradas no esté disponible en español.)</p>


<p>Es probable que los buscadores semánticos cambien la manera en que se busca y se muestra la información y que supongan un gran cambio para los usuarios ocasionales. Considérense, por ejemplo, las interfaces que aparecen en las siguientes capturas de pantalla, procedentes de Mnemo (<a href="http://www.mnemo.org/" hreflang="es">http://www.mnemo.org/</a>)
Kart00 (<a href="http://www.kartoo.com/" hreflang="es">http://www.kartoo.com/</a>) y  KoolTorch (<a href=" http://www.kooltorch.com/" hreflang="es"> http://www.kooltorch.com/</a>).</p>


<p align="center"><a href="http://wshoy.sidar.org/images/BuscSeman/Mnemo_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/BuscSeman/Mnemo_min.JPG" alt="Interfaz de Mnemo. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta."/></a></p><br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/BuscSeman/Kart00_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/BuscSeman/Kart00_min.JPG" alt="Interfaz de Kart00. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta."/></a></p><br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/BuscSeman/KoolTorch_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/BuscSeman/KoolTorch_min.JPG" alt="Interfaz de KoolTorch. Quizás los navegadores semánticos del futuro tengan interfaces similares a ésta."/></a></p><br /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2009/06/10/45-bing-el-nuevo-navegador-semantico-de-microsoft">
  <title>BING: EL NUEVO BUSCADOR SEMÁNTICO DE MICROSOFT</title>
  <link>http://www.wshoy.sidar.org/index.php?2009/06/10/45-bing-el-nuevo-navegador-semantico-de-microsoft</link>
  <dc:date>2009-06-10T04:18:18-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>Las tecnologías semánticas se utilizan cada vez más en las grandes empresas, y un ejemplo de ello lo constituye el nuevo buscador de Microsoft: Bing. Poco a poco, se va alcanzando una masa crítica industrial y de usuarios que seguramente permitirá el paso de "islotes semánticos" a la Web semántica, del mismo modo que unas cuantas páginas HTML y una infinidad de archivos de distintos formatos ("islotes sintácticos") acabaron formando la Web actual.</description>
  <content:encoded><![CDATA[Las tecnologías semánticas se utilizan cada vez más en las grandes empresas, y un ejemplo de ello lo constituye el nuevo buscador de Microsoft: Bing. Poco a poco, se va alcanzando una masa crítica industrial y de usuarios que seguramente permitirá el paso de "islotes semánticos" a la Web semántica, del mismo modo que unas cuantas páginas HTML y una infinidad de archivos de distintos formatos ("islotes sintácticos") acabaron formando la Web actual. <p>En mayo de este año, Microsoft anunció el lanzamiento de <strong>Bing</strong> (<a href="http://www.bing.com" hreflang="es">www.bing.com</a>), un nuevo buscador basado en tecnologías semánticas. Este buscador está disponible en forma de versión definitiva para Estados Unidos, y existe una versión beta para Europa a la que se le irán añadiendo progresivamente algunas funciones de la versión estadounidense. Por el momento, consultas como "¿Quién fue la mujer de Salvador Dalí?" o "¿Cuándo murió Hermann Minkowski?" obtienen la respuesta correcta en la versión estadounidense, pero todavía no en la europea.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Bing_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Bing_min.JPG" alt="Interfaz minimalista de Bing. No todas las funciones están disponibles por ahora para la versión europea del navegador. "/></a></p><br /></p>

<p>Parte de las tecnologías semánticas que usa Bing provienen de Powerset, empresa especializada en búsquedas semánticas mediante lenguaje natural y que fue adquirida en agosto de 2008 por Microsoft. El primer producto de Powerset es un buscador en lenguaje natural para la Wikipedia (<a href="http://www.powerset.com" hreflang="es">www.powerset.com</a>). En el cuadro de búsqueda se pueden introducir palabras, frases y preguntas. Los resultados del buscador de Powerset son bastante precisos, y en algunos casos incluso puede responder directamente ciertas preguntas. Por ejemplo, si introducimos las preguntas "When did Julio Cortázar die?" (¿Cuándo murió Julio Cortázar?), "Where did Julio Cortázar die?" (¿Dónde murió?) y "Was Julio Cortázar married?" (¿Estuvo casado?), descubriremos que el escritor argentino murió el 12 de febrero de 1984 en París y que estuvo casado tres veces: primero con Aurora Bernárdez, luego con Ugné Karvelis y finalmente con Carol Dunlop (según varias biografías del escritor, nunca contrajo matrimonio con Ugné Karvelis, pero supongo que esa información estará mal en la Wikipedia en inglés). Si preguntamos "What did Julio Cortázar write?" averiguaremos que escribió, entre otros libros, <em>Rayuela</em>, <em>Las armas secretas</em>, <em>Final del juego</em>, <em>Fantomas contra los vampiros internacionales</em> y <em>Bestiario</em>.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Powerset_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Powerset_min.JPG" alt="Ejemplo de consulta en Powerset: ¿dónde murió Julio Cortázar? En este caso, la respuesta es directa."/></a></p><br /></p>

<p>Si, por ejemplo, preguntamos cómo murió Ernest Hemingway ("How did Ernest Hemingway died?"), el buscador de Powerset responde directamente que la causa de la muerte fue suicidio -era de esperar esa muerte en un hombre que afirmó: "Cazo y pesco porque me gusta matar, porque si no matara animales me suicidaría"- y muestra una imagen que no invita a disfrutar de la vida, precisamente.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Powerset2_min.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Powerset2_max.JPG" alt="Ejemplo de consulta en Powerset: ¿cómo murió Ernest Hemingway? En este caso, la respuesta es directa."/></a></p><br /></p>

<p>Según Microsoft, Bing combina tecnología de búsqueda semántica y minería de datos. Por necesidad, esta minería de datos es muy rápida: cuando se realiza una búsqueda por palabras clave hay que determinar los conceptos relacionados con estas palabras (por ejemplo, sinónimos), buscar también recursos de la web con esos conceptos y determinar su pertinencia para los resultados de la búsqueda.</p>

<p>El nuevo buscador usa ontologías para identificar conceptos y asociaciones entre ellos relacionados con una consulta del usuario. Siguiendo el ejemplo que puse en <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>, Bing puede <em>entender</em> que "memoria USB", "pen drive", "memoria flash USB" y "lápiz USB" son términos relacionados y que designan un mismo dispositivo. </p>

<p>Según declara Microsoft, Bing no es un sistema completo de búsqueda semántica por cuestiones de velocidad: analizar el contenido completo de todos los recursos de la web haría que la obtención de resultados fuera muy lenta. Con todo, es probable que el desarrollo de nuevos algoritmos o el perfeccionamiento de los actuales haga posible búsquedas semánticas completas en tiempos muy reducidos. </p>

<p>La aparición de este buscador es una buena noticia, porque es un paso más hacia la Web semántica (por el momento, sólo existen "islotes semánticos") y a la popularización de las tecnologías semánticas (véase, por ejemplo, <a href=" http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas" hreflang="es"> http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas</a>). Cada vez hay más grandes empresas que utilizan ontologías y lenguajes formales para manejar los datos que almacenan en sus servidores y centros de datos y para navegar por ellos. Bing también obligará a la empresa Google a que utilice más y mejores tecnologías semánticas en su buscador: la efectividad de la publicidad, así como los ingresos derivados de ésta, será mucho mayor con el uso de tecnologías semánticas que <em>entiendan</em> el significado de las búsquedas y que, por ende, permitan encontrar exacta y rápidamente lo que el usuario busca. </p>

<p>Por el momento, Google usa algoritmos semánticos que detectan relaciones y conceptos relacionados con las palabras clave que introduce el usuario, y los utiliza para sugerir búsquedas relacionadas con las palabras clave introducidas. En la captura de pantalla siguiente puede verse cómo la consulta "corriente filosófica" da lugar a sugerencias de búsquedas relacionadas con el idealismo, el empirismo, el racionalismo, el positivismo, la filosofía de John Locke, de Heidegger, etc. Aunque no hay mucha información sobre estos algoritmos semánticos, supongo que usan taxonomías u ontologías para determinar qué clasificación asignar a los contenidos más importantes de las páginas, y luego determinan mediante reglas de clasificación si las palabras clave de búsqueda corresponden a conceptos y relaciones de esas taxonomías u ontologías. Además, supongo también que la exactitud de las búsquedas relacionadas se va comprobando y refinando teniendo en cuenta qué proporción de usuarios las selecciona.<br /></p>

<p align="center"><a href="http://wshoy.sidar.org/images/Google_max.JPG" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Google_min.JPG" alt="Google incorpora un sistema de búsquedas relacionadas basado en tecnologías semátnicas."/></a></p><br /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas">
  <title>El proyecto europeo STASIS: acercando las tecnologías semánticas a las empresas</title>
  <link>http://www.wshoy.sidar.org/index.php?2009/05/11/44-el-proyecto-europeo-stasis-acercando-las-tecnologias-semanticas-a-las-empresas</link>
  <dc:date>2009-05-11T04:49:11-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>En este artículo se presenta el proyecto europeo STASIS, cuyo objetivo es acercar las tecnologías semánticas (ontologías, por ejemplo) a las empresas mediante herramientas sencillas, así como dar a conocer las ventajas económicas y las nuevas oportunidades de negocio que estas tecnologías ofrecen.</description>
  <content:encoded><![CDATA[En este artículo se presenta el proyecto europeo STASIS, cuyo objetivo es acercar las tecnologías semánticas (ontologías, por ejemplo) a las empresas mediante herramientas sencillas, así como dar a conocer las ventajas económicas y las nuevas oportunidades de negocio que estas tecnologías ofrecen. <p>En este artículo quiero difundir el proyecto STASIS (<em>Software for Ambient Semantic Interoperable Systems</em>), en el cual he colaborado y en el que trabaja el Departamento de Tecnologías de la Información de AIDIMA. Es un proyecto subvencionado por el Sexto Programa Marco de la Unión Europea y pone en práctica algunas de las tecnologías semánticas que he comentado en anteriores artículos. El proyecto empezó en septiembre de 2006 y terminará en agosto de 2009; tiene un presupuesto de 4 millones de €uros. Al final del proyecto se harán públicos sus resultados. <br /></p>

<p>En STASIS participan doce socios, pertenecientes a empresas comerciales (TIE, Porthus, iSoft), a universidades (Universidades de Oldenburg, Modena & Reggio Emilia y Tsinghua) y a varias organizaciones (AIDIMA, Mariner, Shanghai Sunline, Foton, TANET, ZF y Friedrichshafen AG). <br /></p>

<p>La motivación para STASIS se resume en la siguiente frase: "Si tengo información en mi formato y está integrada en mis sistemas, quiero dedicar el mínimo esfuerzo a convertirlo en cualquier otro formato (estandarizado o no) para realizar negocios electrónicos con cualquier otra parte". <br /></p>

<p>Actualmente, muchas empresas tienen que hacer negocios electrónicos con otras empresas o entidades (administraciones públicas, universidades, etc.) y para ello necesitan intercambios distintos tipos de información (facturas, albaranes, pedidos, devoluciones, archivos CAD, etc.). El coste de estos negocios electrónicos corresponde principalmente a los problemas de interoperabilidad; es decir, a la dificultad de intercambiar información entre distintas partes en un formato común que los sistemas de información de cada parte puedan “entender”. <br /></p>

<p>Sin un formato común ni ninguna aplicación que actué de puente (un "traductor sintáctico", por así llamarlo), el sistema de información de una empresa no comprenderá que el campo "Cantidad" de una factura electrónica de otra empresa corresponde al campo "Unidades" que este sistema maneja. El sistema puede reconocer "Unidades" en un pedido (reconocimiento sintáctico), pero cómo desconoce su significado (semántica) no puede hacer nada con esa información. En consecuencia, los sistemas de información de ambas empresas no pueden intercambiar mensajes (facturas, pedidos, albaranes, etc.) automáticamente. En el comercio electrónico, la falta de semántica causa hasta el 60% del coste de integración de los sistemas de información. <br /></p>
<p align="center"><a href="http://wshoy.sidar.org/images/Imagen1stasis_max.jpg" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen1stasis_min.jpg" alt="Problemas de la falta de interoperabilidad"/></a></p>
<br />

<p>Si los sistemas de información gestionan y manipulan información no demasiado compleja, pueden utilizarse aplicaciones <em>puente</em> que transformen los documentos de una empresa a documentos de la otra (por ejemplo, "Unidades" pasaría a "Cantidad"), y viceversa. El problema de estas aplicaciones puente es que son costosas y requieren un conocimiento exacto del significado de la información que se va a intercambiar –hay que embeber en la aplicación la semántica que falta en los sistemas de información–. <p>Además, si hay muchos sistemas de información, cada uno con su propio formato, las aplicaciones puente se vuelven inmanejables y desproporcionadas en coste. <br /></p>
<p>Existen formatos estandarizados como XML o EDI (véase <a href="http://www.javahispano.org/tutorials.item.action?id=55" hreflang="es">http://www.javahispano.org/tutorials.item.action?id=55</a>) para el intercambio de información, pero son bastante complejos y caros, amén de exigir especialistas en ellos. Además, el conocimiento exacto del significado de los conceptos de una cierta área de conocimiento (genética, por ejemplo) solamente lo tienen los usuarios de ese conceptos (genetistas, verbigracia), y no los especialistas en formatos estandarizados. <br /></p>
<p>STASIS trata de resolver los problemas de interoperabilidad creando herramientas que cualquier empresa, ya sea grande o pequeña, pueda utilizar para crear correspondencias basadas en semántica, pero evitando las complicaciones técnicas de ésta (creación de ontologías, dominio de lenguajes lógicos, p. ej.). En lugar de concertarse en la sintaxis, STASIS se concentra en identificar entidades o conceptos semánticos y en establecer equivalencias o conversiones entre ellas. Por ejemplo, tres conceptos como "Calle", "Código postal" y "Ciudad" pueden agruparse en una entidad semántica llamada "Dirección", que a su vez puede asociarse a la definición formal de dirección en una ontología. <br /></p>
<p align="center"><a href="http://wshoy.sidar.org/images/Imagen2stasis_max.jpg" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen2stasis_min.jpg" alt="Ejemplo de relaciones entre conceptos"/></a></p>

<p>El proceso de asociación entre conceptos se realiza mediante ontologías, en las que pueden definirse los conceptos como clases y pueden establecerse relaciones entre ellos (véase <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>). Asimismo, los conceptos pueden enlazarse con estructuras sintácticas. Por ejemplo, la clase de una ontología "Memoria USB" puede enlazarse al campo "USB flash memory" de una base de datos de una empresa, al campo "Pendrive" de la BD de otra empresa, al campo "Memory stick" de la BD de una tercera empresa…<br /></p>

<p>Las aplicaciones desarrolladas en STASIS permiten identificar entidades semánticas utilizados en una organización y luego relacionarlas semiautomáticamente con los conceptos utilizados en otra, considerando el significado de cada concepto y no sólo su sintaxis. Por ejemplo, en la figura de abajo, las herramientas de STASIS permitirían establecer relaciones entre los conceptos de dos bases de datos pertenecientes a distintas organizaciones. <br /></p>
<p align="center"><a href="http://wshoy.sidar.org/images/Imagen3stasis_max.jpg" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen3stasis_min.jpg" alt="Relaciones entre conceptos"/></a></p>
<p>Todas las entidades semánticas y sus relaciones creados en STASIS se almacenan en un repositorio distribuido entre iguales o <em>peer-to-peer</em>, lo cual permite compartir reutilizar esos conceptos y relaciones. Hasta el momento, se ha conseguido que las aplicaciones de STASIS sean lo bastante “inteligentes” para proponer relaciones entre conceptos mediante el análisis y la reutilización de relaciones ya establecidas. <br /></p>

<p>Las herramientas de STASIS se están probando en Europa y China en el sector de la automoción y del mobiliario porque ambos sectores se caracterizan por utilizar infraestructuras de comunicaciones y formatos de datos incompatibles entre sí. Esto aumenta los costes de hacer negocios electrónicos con otras empresas (proveedores, distribuidores, clientes) y ralentiza el lanzamiento de nuevos productos. Actualmente, STASIS ya permite a los participantes comerciales del proyecto construir comunidades abiertas donde se define y se comparte la semántica de la información intercambiada en sus dominios. <br /></p>
<p align="center"><a href="http://wshoy.sidar.org/images/Imagen4stasis_max.jpg" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/Imagen4stasis_min.jpg" alt="Oportunidades de negocio que ofrece STASIS"/></a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2008/06/23/43-tienen-los-agentes-inteligentes-creencias-intenciones-y-deseos">
  <title>¿TIENEN LOS AGENTES INTELIGENTES CREENCIAS, INTENCIONES Y DESEOS?</title>
  <link>http://www.wshoy.sidar.org/index.php?2008/06/23/43-tienen-los-agentes-inteligentes-creencias-intenciones-y-deseos</link>
  <dc:date>2008-06-23T06:46:41-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>Cuando se describen agentes de software, suelen utilizarse modelos que emplean conceptos como "creencia", "deseo" o "intención". También cuando se habla de ellos suelen usarse expresiones como "El agente de viajes desea que su cliente haga el viaje con pocos transbordos". En este artículo veremos la utilidad de los modelos basados en creencias, deseos e intenciones para describir entidades de software que realmente no tienen esos estados mentales. ¿O tal vez sí?</description>
  <content:encoded><![CDATA[<p>Cuando se describen agentes de software, suelen utilizarse modelos que emplean conceptos como "creencia", "deseo" o "intención". También cuando se habla de ellos suelen usarse expresiones como "El agente de viajes desea que su cliente haga el viaje con pocos transbordos". En este artículo veremos la utilidad de los modelos basados en creencias, deseos e intenciones para describir entidades de software que realmente no tienen esos estados mentales. ¿O tal vez sí?</p> <p>Los agentes inteligentes son agentes de software con la capacidad de tomar decisiones racionales cuando se les presenta una elección. Si un agente inteligente tiene un objetivo (buscar información sobre física cuántica, por caso), tomará decisiones para seguir el curso de acciones que le conducirá a cumplir el objetivo. Una decisión racional sería, por ejemplo, buscar en la base de datos de tesis doctorales del Instituto Max Planck. </p>

<p>Cuando se habla de agentes inteligentes o de sistemas multiagente suelen usarse términos como "creencia", "deseo" o "intención". Éstos proceden del modelo <strong>Creencia-Deseo-Intención</strong> (CDI o, en inglés, BDI: Belief-Desire-Intention), que describe los agentes inteligentes mediante nociones cognitivas como las anteriores. El modelo CDI se basa parcialmente en las ideas del filósofo estadounidense Daniel Clement Dennett, quien defiende el enfoque intencional para explicar el comportamiento humano. En opinión de este filósofo, el comportamiento humano puede explicarse e incluso predecirse basándose en conceptos de intenciones (<em>intencionales</em>): creer, temer, querer, desear, esperar… Dennet utiliza el término sistema intencional para referirse a entidades "cuyo comportamiento puede predecirse por el método de atribuir creencias, deseos y perspicacia racional".</p>

<p>El modelo CDI también se basa en la teoría del razonamiento práctico, propuesta por el filósofo estadounidense Michael Bratman. Esta teoría define un marco psicológico de sentido común para entender el comportamiento humano mediante creencias, deseos e intenciones, concebidos como planes parciales para realizar acciones concretas. A diferencia del razonamiento puramente lógico, el razonamiento práctico se orienta hacia las acciones (¿qué debemos hacer para conseguir algo?). Es innegable que el razonamiento humano es práctico, pues casi todas las situaciones con las que nos enfrentamos en la vida ordinaria requieren soluciones prácticas: en un viaje, nadie se plantea utilizar las ecuaciones de Euler-Lagrange del cálculo variacional para hallar el camino más corto entre dos ciudades. Lo práctico es consultar un mapa de carreteras o preguntar en una estación de trenes. </p>

<p>Según Bratman, el razonamiento práctico se basa en dos procesos: a) decidir qué objetivos deben conseguirse (proceso de decisión o elección); b) elegir un plan para conseguirlos (proceso de búsqueda de medios para alcanzar el objetivo). Por ejemplo, cuando una persona cambia de trabajo es porque ha decidido previamente que quiere más dinero, menor distancia al trabajo, mayor categoría laboral, etc.; y que, para conseguir sus deseos, debe irse a otra empresa. </p>

<p>En el modelo CDI, los agentes inteligentes se consideran sistemas intencionales.  Es decir, su comportamiento se explica considerándolos agentes racionales cuyas acciones están determinadas por sus deseos y creencias. Del mismo modo que decimos "Elena trabaja en una multinacional porque quiere ganar mucho dinero", podemos decir "El agente de compras trabaja con diversos proveedores en Internet porque quiere precios bajos" o "El robot evita los obstáculos porque quiere llegar lo antes posible a su destino". Más adelante abordaré si es legítimo asignar conceptos intencionales a los agentes. </p><p></p>

<p align="center"><a href="http://wshoy.sidar.org/images/DeseosAgentes/DeseosAgentes1_max.jpg" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/DeseosAgentes/DeseosAgentes1_min.jpg" width="350" height="280" alt="Esquema del modelo CDI" /></a></p>
<br />

<p>En el modelo CDI, las <strong>creencias</strong> representan el conocimiento que el agente tiene sobre el estado actual de su entorno, de sí mismo y de otros agentes. Se utiliza el término <em>creencia</em> en lugar de <em>conocimiento</em> porque las creencias de un agente pueden ser erróneas. Por ejemplo, si consideramos un agente para jugar al ajedrez, la posición de cada pieza es una creencia del agente. Tanto los agentes inteligentes como los humanos toman, para cumplir sus objetivos, decisiones basadas en sus creencias sobre el mundo; es decir, en las informaciones que sobre él tienen ("El cielo es azul", "El colesterol es malo para la salud", "Cuando no se ven las isóbaras, es que las cosas no están claras", "El cerebro es un órgano maravilloso: empieza a trabajar en el momento en que usted despierta por la mañana y no se detiene hasta que llega a la oficina", etc.). </p>

<p>En un agente CDI, la racionalidad resulta imprescindible. Imagine que encarga a un agente comprar en Internet la película <em>Chelsea Girls</em>. Si el agente tiene como objetivo comprar la película al precio más barato posible y <em>cree</em> que puede conseguirlo en Amazon.com, comprarlo en Amazon sería una decisión inteligente. Si el agente decidiera comprarla en cualquier parte, en contra de su objetivo o de sus creencias, su decisión no sería inteligente o, por mejor decir, sería irracional. </p>

<p>Los humanos y los agentes inteligentes tienen una gran flexibilidad en sus creencias: si descubren que son erróneas o incompletas pueden cambiarlas. Unos y otros disponen de reglas de inferencia que les permiten revisar sus creencias cuando se encuentran ante situaciones que contradicen las antiguas. Veamos un ejemplo: durante muchos siglos, los europeos creyeron que todos los cisnes eran blancos.  Cuando se encontraron cisnes así en Australia –bastante violentos, todo sea dicho de paso–, los europeos cambiaron enseguida esa creencia errónea y modificaron sus libros de lógica, ricos en expresiones como "Todos los cisnes son blancos". (Hay excepciones a la flexibilidad de las creencias humanas, claro. Piénsese, por ejemplo, en <em>La sociedad de la Tierra plana</em>: la tozudez humana puede vencer holgadamente a cualquier conjunto de pruebas empíricas.). </p>

<p>Aparte de la mayor complejidad de las creencias humanas frente a las de los agentes, ambas difieren también en su codificación. Las humanas se codifican en nuestras redes neuronales; dependiendo de los estímulos externos, se generan más o menos dentritas (conexiones sinápticas) entre las neuronas. En los agentes inteligentes, las creencias se codifican mediante lenguajes lógicos y ontologías. Por ejemplo, la ausencia de una persona puede codificarse como la creencia (<em>Luis estaEnCasa ausente</em>), donde <em>ausente</em> es una constante que significa que la persona no está en casa o no está a la vista del agente y <em>Luis</em> es una instancia de una clase <em>Persona</em>.  Usar lenguajes lógicos y ontologías limita la riqueza expresiva de las creencias. </p>

<p>Los <strong>deseos</strong> de modelo CDI, también llamados metas u objetivos, representan determinados estados que el agente quiere producir en su entorno, en sí mismo o en otros agentes. Corresponden a tareas que el agente debe realizar y que se consideran lógicamente consistentes entre sí: "buscar vuelo a Munich", "ganar a las cartas", "conseguir tablas en la partida", "encontrar el precio más barato". Un deseo como "quiero agua caliente" es inconsistente con el de "quiero agua fría"; como sucede con "quiero congelar la patata" y "quiero freír la patata", si sólo hay una. En lenguaje lógico, los deseos se expresan con expresiones como (conseguir (agua tieneTemperatura 20)) o (comprobar ((Luis estaEnCasa ausente) Y (luz esta apagada))). </p>


<p>En el modelo CDI, las <strong>intenciones</strong> son deseos que el agente se compromete a realizar (no todos los deseos pueden cumplirse, como bien sabemos los humanos). Son deseos muy intensos y limitados a los aspectos del entorno sobre los cuales el agente tiene algún grado de control. Un agente sólo tiene intenciones que considera posibles y que cree que puede lograr actuando de cierta manera. </p>

<p>Los agentes no necesitan considerar todos los posibles efectos secundarios de sus intenciones. Por ejemplo, consideremos un agente que pasea por Soria en invierno y tiene como objetivo llegar lo antes posible a una determinada calle. De repente se encuentra que el río Duero le impide el paso. Si decide cruzarlo nadando, enseguida se encontrará empapado. Aunque el agente decida llegar como sea a su destino lo antes posible y, por tanto, esté dispuesto a mojarse y pasar frío, eso no significa que el agente desee sumergirse en aguas heladas. Que el agente se moje no es una intención: si no lo consigue, no lo volverá a intentar. </p>

<p>Las intenciones dan lugar a cursos de acción –<strong>planes</strong>– que el agente sigue en un intento de cumplir sus intenciones. Cuando un agente tiene una intención, su actividad se centra en ella. La influencia de la teoría de Bratman sobre el razonamiento práctico en el modelo CDI resulta bien visible ahora: las salidas del proceso de decisión son las intenciones; y las salidas del proceso de búsqueda de medios para alcanzar su objetivo son los planes, que se ejecutan mediante <strong>acciones</strong>. Éstas provocan consecuencias que pueden cambiar las creencias, deseos, intenciones, planes y acciones del agente. Si las acciones del plan no le permiten conseguir su intención, intentará otro plan. </p>

<p>Si consideramos un agente con un deseo como (conseguir (Ana beber agua), una intención podría intentarse con el siguiente plan:  </p>

<pre>
(ir nevera)
(buscar botellaAgua)
(sacar botellaAgua)
(botellaAgua llevarA Ana)
(botellaAgua entregarA Ana)
</pre>


<p>Como ejemplo de arquitectura de agentes inteligentes basada en el modelo CDI se puede citar JAM (<a href="http://www.marcush.net/IRS/irs_downloads.html" hreflang="es">http://www.marcush.net/IRS/irs_downloads.html</a>). En esta arquitectura, las creencias, deseos e intenciones de los agentes se representan explícitamente en el código del agente; y las intenciones del agente se determinan dinámicamente mientras se ejecuta, de acuerdo con las creencias, deseos e intenciones programados. </p>

<p>En JAM, las creencias del agente se representan como hechos (FACTS) que se almacenan en un fichero de texto. Por ejempo, he aquí las creencias que podría tener un agente robot: </p>
<pre>
FACTS:
   // creencias del agente
   FACT nombre_robot "Ivan";
   FACT id_robot "03536D";
   FACT estado_robot "Correcto";
   FACT posicion_robot 10000 10000 0;
   FACT lugar_robot "Habitacion3";
   FACT objeto_encontrado "Falso";
   FACT objeto_entregado "Falso";
   FACT destino "Habitacion4";
</pre>
 
<p>He aquí un ejemplo de intenciones (llamados GOALS en JAM) y planes (cursos de acción para intentar cumplir las intenciones) para el agente robot en JAM: </p>
<pre>
PLAN: {
NAME: "Plan05"
GOAL: ACHIEVE recoger_destornillador
CONTEXT:
    FACT localizado "destornillador" $X;
    FACT localizado "robot" $X;
    FACT localizado "caja_herramientas" $Y;
BODY:
   EXECUTE print "Coge el destornillador en" $X “.\n”;
   ASSERT coger "destornillador";
   ACHIEVE localizado "robot" $Y;
   EXECUTE print "Deja el destornillador en" $Y ".\n";
   RETRACT coger "destornillador";
   ASSERT depositar "destornillador";
}
</pre>
<br />

<p>Con ASSERT se añaden nuevos hechos al conocimiento del agente. Con RETRACT se borran. CONTEXT especifica las situaciones para las cuales los planes son válidos. </p>


<p>Algunos autores creen incorrecto utilizar términos como creencias o intenciones aplicadas a agentes, pues son estados mentales que los programas o las máquinas no pueden tener. Para algunos, asignar a un agente palabras como "quiere" o "desea" es una forma de animismo (reconozco que definir persona como "aquel programa de computadora capaz de superar la prueba de Turing" me parece animismo en estado puro, adaptado a los tiempos modernos). Acierten o no, lo cierto es que resulta útil emplear conceptos intencionales porque facilitan entender la estructura de los agentes y su comportamiento. </p>

<p>En el campo de los agentes, los conceptos intencionales son metáforas y abstracciones que proporcionan maneras sencillas y familiares de describir, explicar y predecir el comportamiento de los agentes. El lenguaje cotidiano usa muchas metáforas ("Carlos <em>funciona</em> muy bien en el trabajo",  "Carmen se encuentra en el <em>otoño de su vida</em>", "Sujete la <em>pata </em>de la mesa", "Dele a la <em>luz</em>", "Respete mis <em>canas</em>", "El televisor se <em>niega</em> a funcionar"), así que no es extraño que suceda lo mismo en el lenguaje informático y en el científico ("Conecte el <em>ratón</em> del ordenador", "El agente se <em>comporta</em> de manera errática", "El sistema ha <em>caído</em>", "<em>Descargue</em> un archivo de Internet", "El fotón <em>sabe</em> por qué rendija pasar"). Las abstracciones han resultado también muy provechosas en la informática: los módulos, los tipos de datos abstractos, las clases y los agentes son abstracciones que nos evitan trabajar con código máquina o con lenguaje ensamblador. </p>


<p>El investigador Yoav Shoham –que acuñó el término "programación orientada a agentes" en 1989 y ha intentado entenderlo desde entonces– pone el ejemplo de una computadora para explicar la utilidad del enfoque intencional en la informática: aunque puede conseguirse una descripción técnica de la computadora y de su sistema operativo, sería inapropiado recurrir a esas descripciones para explicar por qué aparece un menú cuando pulsamos un cierto icono con el ratón. Cualquier computadora es demasiado complicada para explicar cada operación que podemos realizar con ella. </p>

<p>Shoham también contrasta el ejemplo de la computadora con el de un interruptor de la luz. Aunque admite que el interruptor es un sistema que puede describirse muy bien con nociones intencionales ("El interruptor transmite corriente cuando cree que nosotros queremos que la transmita, y no en otros casos; apretar el interruptor es simplemente una manera de comunicar nuestros deseos"), reconoce que esa descripción es absurda y quizás infantil.  A la pregunta "¿Por qué aceptamos la descripción intencional de la computadora y rechazamos la del interruptor?", Shoham responde: "La descripción intencional del interruptor no nos dice nada, porque esencialmente entendemos el mecanismo lo bastante para tener una descripción mecanicista y más simple de su comportamiento". </p>

<p align="center"><a href="http://www.wshoy.sidar.org/images/DeseosAgentes/DeseoAgentes2_max.jpg" title="Ampliar imagen"><img src="http://www.wshoy.sidar.org/images/DeseosAgentes/DeseoAgentes2_min.jpg" width="350" height="280" alt="No siempre son útiles los modelos intencionales" /></a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.wshoy.sidar.org/index.php?2008/06/16/42-lista-de-buscadores-semanticos">
  <title>Lista de buscadores semánticos.</title>
  <link>http://www.wshoy.sidar.org/index.php?2008/06/16/42-lista-de-buscadores-semanticos</link>
  <dc:date>2008-06-16T18:41:17-04:00</dc:date>
  <dc:language>es</dc:language>
  <dc:creator>Emmanuelle</dc:creator>
  <dc:subject>Aplicaciones prácticas</dc:subject>
  <description>Una pequeña nota para tener como referencia aquí­ una interesante lista de buscadores semánticos en español.

Se encuentra en: http://www.javi.it/semantic.html Página de lo más inaccesible, pero en fi­n, qué se le va a hacer, lamentablemente la mayorí­a de la gente interesada por la semántica no...</description>
  <content:encoded><![CDATA[ Una pequeña nota para tener como referencia aquí­ una interesante lista de buscadores semánticos en español.

Se encuentra en: <a href="http://www.javi.it/semantic.html">http://www.javi.it/semantic.html</a> Página de lo más inaccesible, pero en fi­n, qué se le va a hacer, lamentablemente la mayorí­a de la gente interesada por la semántica no es consciente de la importancia de la accesibilidad :-(

El apunte me lo ha pasado Martí­n Baldassarre :-)

Y eso es todo... Bueno, añado que en la lista no aparece, porque aún no se ha publicado el buscador semántico desarrollado por la Fundación Sidar y cuya beta espero poder anunciar tras el verano.
   <div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a href="http://www.flock.com/blogged-with-flock" style="color: #999; font-weight: bold;" target="_new" title="Flock Browser">Flock Browser</a></div><!-- technorati tags begin --><p style="font-size:10px;text-align:right;">Tags: <a href="http://technorati.com/tag/buscador" rel="tag">buscador</a>, <a href="http://technorati.com/tag/listas" rel="tag">listas</a>, <a href="http://technorati.com/tag/%20sem%C3%A1ntica" rel="tag"> semÃ¡ntica</a></p><!-- technorati tags end -->]]></content:encoded>
</item>
<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/ejemplo-agente-fisico_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/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/objetos-y-agentes_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/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/ejemplo-agente-semantico-amblit-navigator_max.png" title="Ampliar imagen"><img src="http://wshoy.sidar.org/images/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>

</rdf:RDF>
