De Data a Linked Data

A continuación vamos a seguir un tutorial paso a paso para convertir un archivo de datos de una hoja de cálculo en datos relacionados como Linked Data.

1. Fichero de datos de partida

En la imagen tenemos los datos a modelar. El archivo lo podéis descargar aquí. Podemos ver como tenemos a una serie de directores y películas, todos identificados con un ID y otra columna en la que tenemos las relaciones entre ellos. Nuestro objetivo es crear un enlace semántico para que una máquina pueda conocer las relaciones y enlazarlas con entidades de fuentes externas para convertir la información en Linked Data.

2. Diagrama de entidades

En este diagrama podemos ver cómo pretendemos relacionar los datos. Cada ID del Director estará relacionado con su nombre, los ID de las películas que ha dirigido y la URI que se refiere a la misma persona en DBpedia. Por su parte, cada ID de Película estará relacionado con su título y con la URI que se refiere a la película en DBpedia.

3. Preparación del entorno

Para lograr nuestro objetivo, utilizaremos Google Refine. Ésta es una poderosa herramienta para limpiar y unificar nuestros datos en distintos formatos. Para poder exportarlos a RDF, necesitaremos instalar una extensión llamada RDF Refine. Primero descargaremos e instalaremos Google Refine desde su página de descargas (elegiremos la correspondiente a nuestro sistema operativo). Luego, procederemos a descargar RDF Refine. Extraemos la carpeta que viene comprimida y la movemos a la carpeta "extensions" situada en el directorio de instalación de Google Refine. Con esto ya tendremos preparado el entorno con el que vamos a trabajar.

Abrimos Google Refine. Comprobamos que estén marcados "Create Project" y "This Computer" y hacemos click en examinar para buscar nuestro archivo con los datos. Después pulsamos en el botón "Next".

4. Creando el proyecto

Indicamos que ignore las tres primeras líneas que no contienen datos. También que no almacene las filas ni las celdas en blanco, tal y como aparece en la siguiente imagen.

Por último, pulsamos en "Create Project" arriba a la derecha.

5. Preparando los datos

Si hacemos click en la flechita al lado del nombre de cada columna, podremos eliminar las columnas que están en blanco.

También podremos cambiar el nombre de la columna que queramos para clarificar.

6. Enlazando con DBpedia

Para enlazar los datos con fuentes externas como DBpedia, necesitamos añadir un servicio de conciliación. Esto será un enlace a una web que nos permita realizar consultas SPARQL en los datos que queremos conciliar. En el caso de DBpedia en español será http://es.dbpedia.org/sparql.

Para añadirlo, pulsamos en el botón RDF arriba a la derecha, "Add reconciliation service" y "Based on SPARQL endpoint".

Le ponemos un nombre (DBpedia), le añadimos la URL a la web de consulta SPARQL y elegimos como tipo "Virtuoso".

Ahora en la columna "Nombre Director", en el menú desplegable elegimos "Reconcile" y "Start reconciling..." para comenzar a relacionar los datos con las URI de DBpedia.

Elegimos que busque similitudes con entidades de tipo "foaf:Person" y pulsamos "Start Reconciling".

Como vemos, prácticamente no habrá encontrado ninguna coincidencia. Con la DBpedia en inglés es más eficaz, pero la española no recoge bien los acentos por ejemplo. Así que le ayudaremos a relacionar los datos.

Pulsamos en "Search for match" para cada hallazgo (porque si elegimos alguno de los que nos vienen, probablemente enlazará a una página en blanco) y buscamos el nombre del director sin acentos. Elegiremos el enlace que aparecerá de la DBpedia española (empieza por "es").

Una vez los tengamos, es posible pulsar en cada nombre para comprobar que nos lleva a la página correcta de la DBpedia en español.

Ahora añadiremos una nueva columna con los enlaces de las entidades a la DBPedia. Para ello, pulsamos en la flecha al lado de "Nombre Director" y seleccionamos "Edit column" -> "Add column based on this column...".

Le ponemos el nombre que queramos y en expresión escribiremos "cell.recon.match.id" para que reconozca los enlaces de cada director. Esto es una expresión GREL, que hace referencia al valor reconciliado de la celda en cuestión. En las expresiones GREL pueden emplearse diversas variables. Ya podemos pulsar en "OK".

Como vemos en la imagen, nos aparecerá la nueva columna.

Ahora haremos lo mismo con las películas, con la columna "Titulo Película". En este caso, elegiremos la opción "Reconcile against no particular type", ya que no reconoce la ontología "Film" de la DBpedia en español, sólo la que está en inglés.

Como en el caso de los directores, podremos conciliar los datos manualmente. Buscaremos el nombre de la película en español, sin acentos. También comprobaremos que nos lleve a los enlaces correctos de la DBpedia en español.

Una vez tengamos todas las películas enlazadas tendremos algo como lo que se muestra en la siguiente imagen.

Creamos ahora la nueva columna con las URI como ya hicimos con "Nombre Director".

7. Completando y exportando el RDF

A continuación editaremos el esqueleto del RDF para indicar la relación entre nuestras columnas. Para ello, vamos al menú "RDF" arriba a la derecha y pulsamos en "Edit RDF Skeleton".

Pulsamos en "(row index) URI" y elegimos "ID", que es el ID de los directores.

En "add rdf:type" le añadimos el tipo "foaf:person".

A continuación estableceremos las propiedades. La primera será "foaf:name" que apuntará a las celdas de "Nombre Director". Así enlazamos cada ID con su nombre.

Pulsamos en "URI DBpedia del Director cell" y arriba a la derecha indicamos que el contenido es "as a URI" para que lo trate como tal.

Le ponemos la propiedad "owl:sameAs". Así le estamos indicando que nuestro director es el mismo que el que aparece en esa URI de la DBpedia. Borramos el resto de propiedades sin definir. Nos quedará algo como lo que vemos en la siguiente imagen.

A continuación pulsamos en "Add anothe root node" abajo a la izquierda y seleccionamos "ID2" para hacer lo propio con las películas.

Le ponemos la propiedad "foaf:name" apuntando a la columna "Titulo Pelicula" y la propiedad "owl:sameAs" apuntando a la columna con las URI de DBpedia de forma similar a los directores.

Añadiremos un último "root node" para definir la relación entre los directores y las películas. Seleccionamos "DirectorID" con una propiedad que apuntará a "TituloID".

La propiedad que nos interesa es "dbpedia-owl:director" que no está definida por defecto, así que tendremos que incluir ese vocabulario. Para ello pulsamos en "+add prefix" y ponemos en prefix "dbpedia-owl" y en URI "http://dbpedia.org/ontology/". Pulsamos en "OK" y añadirá ese vocabulario para que podamos usarlo.

Ahora sí podremos definir la propiedad "dbpedia-owl:director" como indicamos en el diagrama al principio.

A continuación editaremos la "Base URI" para referenciar los distintos elementos de nuestros datos de una forma legible. Así que pulsamos en "edit" y escribimos la que queramos tomar como base, en nuestro ejemplo "http://ejemplo.org/". Es importante poner la barra "/" al final, porque si no, no quedarán bien referenciados los enlaces.

Para que cada entidad siga un patrón de referencia en la URI, tendremos que configurarlo. Para ello, pulsaremos primero en "ID URI".

Editaremos el apartado en el que pone "value", ya que esto sólo pondrá en la URI el ID. En "Expression" podríamos poner "'director/' + value". Esto indicaría en cada URI que se trata de un director y añadiría su ID. El problema es que nos pone algunas filas vacías. Para solucionarlo, pondremos una condición de que sólo haga esto en las filas que no estén vacías: "if (value == '', null, 'director/' + value)".

Tendremos ahora que hacer lo mismo con "ID2 URI" para las películas. Esta vez si bastará con poner en la expresión "'film/' + value".

No debemos olvidarnos de "DirectorID" y "TituloID".

En "DirectorID" podremos poner ahora "'director/' + value" sin problemas.

En "TituloID" pondremos lo mismo que en "ID2".

Si nos damos cuenta, "TituloID" no está configurado como URI, así que tendremos que cambiarlo. Pulsamos en "TituloID" y seleccionamos "URI" arriba a la derecha.

Ya tendremos nuestro RDF listo. Podremos ver cómo quedará en la pestaña "RDF Preview".

Por último, podremos exportarlo en el menú "Export" arriba a la derecha en formato Turtle o RDF/XML.

Con esto termina el tutorial, ya hemos convertido nuestros datos en Linked Data.

Enlace al fichero con formato Turtle. Haz click derecho en el mismo y pulsa en "Guardar enlace como".

Fuente: https://www.youtube.com/watch?v=XdpzmGxA33U

results matching ""

    No results matching ""