SeRQL y SPARQL
Recuperación y organización de la información
Ejemplos de uso de SPARQL
Para dar unos ejemplos del uso de SPARQL para las búsquedas sobre RDF, tomaremos un conjunto de datos inicial. Los datos elegidos son la descripción en RDF de la tabla periódica. Un pequeño fragmento de esta descripción puede verse ahora, con las propiedades asociadas al elemento "Sodio":
<name>sodium</name>
<symbol>Na</symbol>
<atomicNumber>11</atomicNumber>
<atomicWeight>22.989770</atomicWeight>
<group rdf:resource="#group_1"/>
<period rdf:resource="#period_3"/>
<block rdf:resource="#s-block"/>
<standardState rdf:resource="#solid"/>
<color>silvery white</color>
<classification rdf:resource="#Metallic"/>
<casRegistryID>7440-23-5</casRegistryID>
</Element>
Tripletes en SPARQL
Así como RDF se compone de tripletes, también lo hace SPARQL, consistentes en sujeto-predicado-objeto, y terminadas con un punto. Los tripletes en este lenguaje representarán patrones mediante los cuales se buscarán tripletes coincidentes en los datos. Un triplete para el ejemplo anterior expresado en SPARQL sería:
Las URIs se escriben dentro de símbolos < y >, y las cadenas entre comillas simples o dobles. Es importante la especificación de los namespaces, sea mediante URIs o con la notación namespace:elemento. SPARQL especifica una serie de abreviaciones para la fácil escritura de complejos tripletes.
En el anterior patrón, todos los datos sobre el triplete buscado se dan, lo cual no es verdaderamente útil pues sólo nos permitiría ver si ese triplete existe. Para buscar más de un triplete en los datos es necesario el uso de variables.
Tanto el sujeto, predicado y objeto de un triplete pueden ser sustituidos por variables. El siguiente ejemplo muestra variables en el sujeto y el objeto.
Una variable puede asociarse a cualquier valor concreto. De este modo, el patrón anterior devolverá todo recurso RDF con una propiedad name. En SPARQL todos las posibles asociaciones se consideran, con lo que si un recurso tiene varias instancias de una propiedad, varios resultados serán devueltos para ese recurso.
Queries en SPARQL
Mostraremos un ejemplo ahora de query completa:
SELECT ?name
FROM <http://www.daml.org/2003/01/periodictable/PeriodicTable.owl>
WHERE { ?element table:name ?name. }
En la primera línea encontramos la palabra clave PREFIX. Su función es equivalente a la declaración de namespaces en XML: asocia una URI a una etiqueta, que se usará en adelante para describir el namespace. Pueden incluirse varias de estas etiquetas en una misma query.
El comienzo de la query queda marcado por la palabra clave SELECT. Semejante a su uso en SQL, sirve para definir los datos que deben ser devueltos en la respuesta. En el ejemplo tan sólo se devolverá el nombre del elemento.
La palabra clave FROM identifica los datos sobre los que se ejecutará la consulta. En este ejemplo, se limitará al RDF de la tabla periódica. Una consulta puede incluir varios FROM.
La palabra clave WHERE indica el patrón sobre el que se filtrarán los tripletes del RDF. El patrón del ejemplo es el comentado en la sección anterior.
El resultado que se obtendrá es una tabla como la siguiente:
| row | name |
|---|---|
| 1 | sodium |
| 2 | neon |
| 3 | iron |
SPARQL aporta otra serie de palabras clave que pueden ser utilizadas para refinar nuestras consultas. Consultas UNION pueden permitirnos combinar consultas alternativas. También pueden ordenarse los resultados, limitarse mediante LIMIT, o conseguir desplazamientos mediante OFFSET.
WIKI de recuperación y acceso a la información
- Página principal del WIKI
- Evaluación de buscadores web
- Sistemas de Question-Answering
- Metadatos y documentos XML/RDF para recuperación
- Lenguajes de recuperación: XML-Query, XQL y Tolog
- Lenguajes de recuperación: SeRQL y SPARQL
- Almacenamiento, consulta y recuperación: Sesame y Jena
- Modelos de recuperación
- Motores de recuperación de documentos XML/RDF
- Procesamiento del Lenguaje Natural
- Usabilidad y accesibilidad en el posicionamiento
- Clasificación supervisada
- Clasificación no supervisada: clustering y Kohonen
- Fusión de ontologías de metadatos FCA, Onions y Prompt
- Minería de textos web