Mostrando entradas con la etiqueta Web semántica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Web semántica. Mostrar todas las entradas

sábado, 23 de junio de 2007

Introducción a SparQL

¿Qué es?

SPARQL (Simple Protocol and RDF Query Language) es un lenguaje de recuperación basado en RDF. Se trata de una recomendación para crear un lenguaje de consulta dentro de la Web semántica que está ya implementada en muchos lenguajes y bases de datos. Desde 2005 está en proceso de estandarización por el W3C.

Con SPARQL los desarrolladores y usuarios finales pueden representar y utilizar los resultados obtenidos en las búsquedas a través de una gran variedad de información como son datos personales, redes sociales y metadatos sobre recursos digitales como música e imágenes. Es de utilidad para la recuperación y organización de información.

SPARQL consiste en tres especificaciones complementarias, que contienen diferentes partes de su funcionalidad. SPARQL lo forman un lenguaje de consultas, un formato para las respuestas, y un medio para el transporte de consultas y respuestas:
  • SPARQL Query Language: Núcleo de SPARQL. Explica la sintaxis para la composición de sentencias y su concordancia. (Espec.: http://www.w3.org/TR/rdf-sparql-query/)
  • SPARQL Protocol: Formato utilizado para la devolución de los resultados de las búsquedas (queries SELECT o ASK), a partir de un esquema de XML. (Espec.: http://www.w3.org/TR/rdf-sparql-protocol/)
  • SPARQL Query XML Results Format: Describe el acceso remoto de datos y la transmisión de consultas de los clientes a los procesadores. Utiliza WSDL para definir protocolos remotos para la consulta de bases de datos basadas en RDF. (Espec: http://www.w3.org/TR/rdf-sparql-XMLres/)
Las consultas SPARQL cubren tres objetivos:
  • Extraer información en forma de URIs y literales.
  • Extraer sub-estructuras RDF.
  • Construir nuevas estructuras RDF partiendo de resultados de consultas.
Una limitación de la actual especificación es que únicamente se permiten consultas de lectura. Así pues sólo se pueden leer informaciones y comparar datos. En resumen SPARQL es una vía rápida para localizar información específica. Por último apuntar que existen varias implementaciones (Python, PHP, Java), pero destaca Jena Semantic Web Toolkit para plataforma Java sobre las demás.

¿Cómo funciona? : Anatomía de una consulta sencilla SPARQL

Como ejemplo podemos tomar el modelo de bloggers.rdf de PlanetRDF. Es bastante directo, con los vocabularios de FOAF y de Dublin Core para proporcionar un nombre, un título del blog con URL, y un canal RSS con los últimos posts de cada blogger. El siguiente gráfico muestra la estructura gráfo básica para un solo contribuidor. El modelo completo repite simplemente esta estructura para cada blog que agreguemos.


Ahora una consulta muy simple de SPARQL sobre el modelo de bloggers. La pregunta, en inglés, dice “encontrar el URL del blog de la persona nombrada Jon Foobar”:

PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar" .
?contributor foaf:weblog ?url .
}

Existen numerosas herramientas online de uso SparQL, como son validadores, formularios de consulta, etc. Algunas páginas interesantes son http://sparql.org/ y http://dannyayers.com/code/sparql-editor.
Una aplicación con GUI que utiliza Jena es Twinkle, que facilita enormemente la utilización de SPARQL. Además es gratuita y de libre distribución.
(http://www.ldodds.com/projects/twinkle/)

Vista de Twinkle

jueves, 21 de junio de 2007

FOAF : descripción de personas en Internet

¿Qué es?

El nombre FOAF es el acrónimo de la frase Friendof a Friend (Amigo de un Amigo), que es un proyecto experimental y un vocabulario que encaja en lo que se denomina web semántica. FOAF sirve para describir Personas, Documentos, etc., siendo su uso en la descripción de personas el más interesante hoy por hoy. Así pues hoy por hoy FOAF es una manera de describirse a uno mismo utilizando para ello RDF con sintaxis XML. Cuando hablamos de describir no estamos hablando de los atributos físicos de la persona, sino de datos más profundos: a quien conoce, de quien es amigo y de quien no, cuales son sus proyectos actuales y cuales los pasados, etc. Todo, o casi todo, puede ser definido en un archivo FOAF. La adopción de XML como lenguaje de representación de FOAF permite al software procesar estas descripciones, tal vez como parte de un motor de búsqueda automatizado, para descubrir información acerca suyo y de las comunidades de las cuales es miembro. Los campos contemplados por la especificación de FOAF son los siguientes, agrupados por áreas. Como se puede ver son bastante descriptivos y su utilización es trivial:






















¿Cómo funciona?


FOAF-a-matic es una simple aplicación de Javascript que nos permite crear una descripción FOAF de nosotros mismos.

Un ejemplo de fichero FOAF generado con la herramienta FOAF-a-Matic:

<?xml version="1.0" standalone="yes"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"

xmlns:admin="http://webns.net/mvcb/">

<foaf:Person>

<foaf:name>Gustavo Adolfo Bécquer</foaf:name>

<foaf:givenname>Gustavo Adolfo</foaf:givenname>

<foaf:family_name>Bécquer</foaf:family_name>

<foaf:nick>arcoe</foaf:nick>

                  <foaf:mbox rdf:resource="mailto:becquer@romanticos.com"/>

<foaf:homepage rdf:resource="http://www.arcoeland.org"/>

<foaf:workplaceHomepage rdf:resource="http://www.romanticos.com"/>

<foaf:knows>

                   <foaf:Person>
                        <foaf:name>Mariano José de Larra</foaf:name>
                        <foaf:mbox rdf:resource="mailto:larra@romanticos.com"/>
                   </foaf:Person>
              </foaf:knows>

</foaf:Person>

</rdf:RDF>




En el código de descripción FOAF de Gustavo Adolfo Bécquer, podemos observar algunos datos suyos, más una relación de “conoce a” Mariano José de Larra.

Todas aquellas personas que tienen su descripción en formato FOAF pueden publicarlo en Internet para hacer esta información disponible a todo el mundo.

El proyecto Foaf-project (http://www.foaf-project.org) reúne multitud de aplicaciones que utilizan descripciones FOAF con diferentes propósitos extrayendo información.

Existen otras redes comerciales que parten de descripciones de personas igual que lo hace FOAF. Un ejemplo es Neurona.com, una comunidad virtual gratuita que nace con el objetivo de promover el reencuentro de antiguos compañeros de estudios y trabajo y posibilitar la creación de una Red de contactos personales y profesionales que ayude a sus miembros a encontrar nuevas oportunidades a través de sus contactos.