Como hacer tu blog accesible semánticamente en LinkedData. Un ejemplo sencillo y práctico.

Oct 1, 2013   //   by wpuser   //   Semántica  //  Comentarios desactivados en Como hacer tu blog accesible semánticamente en LinkedData. Un ejemplo sencillo y práctico.

Las paginas Web actuales, tienen dos formas de ser indexadas y analizadas… Una, buscando e interpretando el fichero HTML de las páginas por los humanos, a través de buscadores, que básicamente, indexan información «meta» dentro de las páginas, y leyéndolas, y otra, permitiendo que sean las propias máquinas las que lean el contenido (URI, o cualquier concepto abstracto con información) de forma automática de las páginas, lo «comprendan», y lo indexen, en los llamados buscadores semánticos, (hay varios, cada vez más), y que permiten que los contenidos relacionados estén disponibles en la nube de LinkedData, para compartirlos con el mundo, e incluso, enlazar dicha información con otros «datasets» disponibles.

Básicamente, hay dos estándares para realizar este tipo de publicaciones, que son RDF, admitida por la comunidad W3C, como el estándar semántico por excelencia, basado en tripletas (sujeto->objeto->predicado), y RDFa, (microformatos), basados en una estandarización llamada Schema, promocionada por los grandes buscadores, como Google, Yahoo y Bing.

Transformar nuestra información en tripletas semánticas no es demasiado complicado, y existen numerosas herramientas que nos permiten realizarlo, y en numerosas plataformas de programación. La ventaja de utilizar RDF es que existen numerosos vocabularios ya estándares que permiten a las máquinas entender qué es cada concepto. El mejor ejemplo es Dbpedia, que es básicamente, el contenido de la wikipedia estructurado en tripletas con vocabularios normalizados que las máquinas entienden. Por ejemplo, si buscamos en Wikipedia, «Kutxa», tendremos la siguiente información:

 kuctawikipedia

Pero si buscamos en dbpedia, la misma información, veremos que ya está «normalizada» en formato RDF, accesible y comprensible para las máquinas:

 kutxadbpedia

 Es como si el sistema fuese capaz de incluir en una Base de Datos la información de la Wikipedia, pero en vez de estar alojada en nuestros servidores, está disponible en Internet, que se convertirá en la gran Base de Datos distribuida y normalizada para todos, incluidas las máquinas.

Una vez generado el fichero .rdf, hay que publicarlo para que los buscadores semánticos o el mundo, sean capaces de reconocerlos, y aquí, también hay varias formas: o almacenarlas en una base de datos especial, que trabaja con tripletas, como Virtuoso u otras, o publicarlas como un archivo accesible desde nuestra Web, adjuntando el enlace a dicho archivo al HTML de turno, y así, ya tendremos disponible la información para el mundo. ¿Cómo hacerlo? Ver:  How to publish Linked Data on the Web

La idea de este post es mostrar cómo podemos publicar información general sobre nuestra web, y nuestros posts en una plataforma de blogs (por ejemplo, WordPress), para que sean accesibles al mundo.

Una buena manera es empezar con nosotros mismos, creando lo que llamamos un archivo «foaf«, que muestra al mundo quienes somos. FOAF es una aplicación de XML y RDF. Básicamente es un archivo XML (en realidad, RDF escrito en XML) con el cual se describen PersonasDocumentos, etc, siendo su uso en la descripción de personas el más interesante hoy por hoy.

Una de las formas más sencillas de darse a conocer en el mundo semántico es a través de una sencilla aplicación, llamada Foaf-a-matic, que en un pequeño formulario,  nos permite generar nuestro archivo .rdf con nuestra información.  Accesdemos a la páqina, rellenamos nuestros datos, y generamos nuestro fichero rdf. Todos los pasos está muy bien descritos en la página: http://www.ldodds.com/foaf/foaf-a-matic.es.html

Es interesante, si ya tenemos otros rdf que nos interesa que los buscadores infieran nuevo conocimiento sobre ellos, incorporarlos a Foaf, como «seaaAlso» si son recursos externos, o como «knows», si son personas.

 Por ejemplo, dentro del RDF que hace referencia al blog: (rtdibermatica.rdf):

<dct:contributor>
      <rdf:Description>
        <foaf:name rdf:resource=»http://rtdibermatica.com/AitorMoreno.rdf#me«></foaf:name>
        <rdfs:seeAlso rdf:resource=»http://rtdibermatica.com/AitorMoreno.rdf#me» />
        <foaf:holdsAccount rdf:resource=»http://rtdibermatica.com/AitorMoreno.rdf#me«/>
      </rdf:Description>
    </dct:contributor>

o dentro del foaf propio, hacer referencia al blog: (en AitorMoreno.rdf):

<foaf:homepage rdf:resource=»http://rtdibermatica.com«/>
<rdfs:seeAlso rdf:resource=»http://rtdibermatica.com/rtdibermatica.rdf«/>

  Podemos incrementar la información con los siguientes enlaces:

foaf:workplaceHomepage rdf:resource=»http://ibermatica.com/innovacion«/>
<foaf:workInfoHomepage rdf:resource=»http://rtdibermatica.com«/>
<schema:worksFor rdf:resource=»http://ibermatica.com/innovacion«/>
<foaf:interest rdf:resource=»http://dbpedia.org/resource/Semantic_Web«/>
<foaf:interest rdf:resource=»http://dbpedia.org/resource/Data_Mining«/>
<foaf:interest rdf:resource=»http://dbpedia.org/resource/Artificial_Intelligence«/>

 Y enlaces a las publicaciones que tiene:

 <owl:sameAs rdf:resource= «http://dblp.l3s.de/d2r/resource/authors/Aitor_Moreno«/>

Bien, ya tenemos nuestro rdf, que podemos validar si es correcto con la herramienta W3C, rdfvalidator(u otros validadores en formato y tiempo), como:

 rdfvalidator

Como ya está validado, y es correcto, sólo tenemos que subir dicho fichero a nuestro sitio web (vía FTP, o como podamos), y alojarlo como parte de nuestro blog.

Una vez subido nuestro fichero, deberíamos poder ver el archivo accediendo a su ruta desde la Web (por ejemplo, http://rtdibermatica.com/AitorMoreno.rdf), o de la forma indirecta http://rtdibermatica.com/AitorMoreno.rdf#me.

Para que los «robots» automáticos de los buscadores semánticos sean capaces de encontrar esta información, deben ser capaces de gestionarla con un tipo de negociación basada en un tipo type=»application/rdf+xml». Algunos servidores no son capaces de realizarlo, y para ello, hay que configurar un fichero, sito en la raiz de WordPress, junto con el fichero index.php, llamado .htaccess, y añadiendo la siguiente línea (esto es vital para que la negociación funcione):

# Directive to ensure *.rdf files served as appropriate content type, # if not present in main apache config AddType application/rdf+xml .rdf

Si todo está bien configurado, con la herramienta Vapour Validator, podemos ver que si introducimos nuestra URL a nuestro RDF, todo va bien:

 vapourvalidator_ok

 

Pero no es suficiente con que los buscadores ya encuentren nuestro archivo «foaf» vía nuestro directorio FTP, sino que además, es interesante que incluyamos en nuestro HTML una referencia (como si fuese un link), ha dicho archivo, para que los buscadores, cuando lean los HTML, lo encuentren y lo interpreten.

Para ello, hay que incluir en nuestra página Web, en las cabeceras del html, en la sección «meta», el siguiente enlace:

<link rel=»meta» type=»application/rdf+xml» title=»FOAF» href=»foaf.rdf» />

Desde WordPress, tenemos algunos plugins que nos permiten hacer esto. El principal que instalamos es wp-rdfa, que nos permite incluir de forma automática, después de parametrizarlo, un enlace a los rdf por cada post o página que automáticamente creemos en WordPress. Hay que configurar el plugin, y cambiar el código un poco, pero es muy sencillo: básicamente, en la función insert_foaf_meta_tag, hay que cambiar el foaf.php que viene por defecto, por el nuestro (está muy bien explicado en Semantic Web: FOAF en WordPress » InGonza.com):

function insert_foaf_meta_tag() {

echo ‘<link rel=»meta» href=»http://www.rtdibermatica.com/rtdibermatica.rdf» type=»application/rdf+xml» title=»FOAF»/>’;

}

De esta forma, tendremos en la cabecera de todas nuestras páginas por WordPress, la siguiente cabecera:

<link rel=’archives’ title=’julio 2011′ href=’http://rtdibermatica.com/?m=201107‘ />
<link rel=»meta» href=»http://www.rtdibermatica.com/rtdibermatica.rdf» type=»application/rdf+xml» title=»FOAF»/>

Otro plugin que convierte nuestros post en enlaces RDF para ser descubirtos, en formato de publicaciones de revistas y artículos de interés, que también hemos incorporado a nuestro blog es el plugin Enhanced Publication

Una vez que ya hemos incluido nuestros archivos semánticos en la red, podemos ver los servicios de indexación de distintas plataformas, como por ejemplo:

Para que nuestra información sea recogida por los numerosos robots semánticos que actúan en los buscadores, hay estrategias que ayudan a los mismos a encontrar los ficheros rdf en nuestros servidores, estrategias como Semantic Web Crawling: A Sitemap ExtensionSindice Search Engine SupportDisco – Hyperdata Browser, y más….

Por último, podemos indexar directamente nuestra información en Sindice, para que sea visible en el mundo de LinkedData.

Una vez publicada, podemos ver cómo aplicaciones de terceros, utilizan foaf como entrada ( FoafSites – W3C Wiki)

Finalmente, podremos acceder a nuestra información, vía un explorador de foaf (FoafExplorer), o Yandex (livejournal), y relacionarla con otro tipo de información (dbpedia), haciendo «queries», tipo «Selects SQL», a la web, a través de el lenguaje SPARQL (a través de JENA, por ejemplo, o de la librería Semantic Web Client Library).

Un ejemplo sencillo es utilizar Twinkle, o Triplr, con el que podemos acceder a nuestros datasets:

 sparqltwinkle

Se pueden hacer consultas del tipo («devuelve todas las tripletas de dos namespaces):

 Select * 
from <http://rtdibermatica.com/AitorMoreno.rdf>
from <http://rtdibermatica.com/rtdibermatica.rdf>
where {?x ?y ?z}

Finalmente, si no queremos usar SPARQL para realizar nuestras consultas por falta de conocimientos técnicos, podemos utilizar herramientas gráficas como Yahoo Pipes, que de una forma más sencilla, nos permitirá enlazar estos datos en la web en formato RDF, con otros datos disponibles…

A a hora de indexar nuestra información en buscadores como GoogleBot, estos buscan un fichero rdf para indexar esta información (index.rdf), que, desde WordPress se configura automáticamente en base a sus ficheros index.php y wp-rdf.php, pero que podemos generar manualmente, como se escribe en Generating RDF from data.gov – Data-gov Wiki, para mejorar el posicionamiento de nuestra web.

Si alguien tiene más interés en el modelado semántico de posts, o páginas web, o publicar datos masivos en formato LinkedData (OpenData a nivel internacional) no dudéis en poneros en contacto con I3B...

Comments are closed.