Ejemplos de consultas SPARQL
Estos ejemplos de consultas se pueden ejecutar en el punto de acceso SPARQL. La BVMC dispone de un tutorial de introducción a SPARQL. Para crear una aplicación que reutilice el repositorio de datos abiertos es posible utilizar la siguiente dirección http://data.cervantesvirtual.com/bvmc-lod/repositories/data.
Obras del autor Miguel de Cervantes Saavedra
Esta sentencia SPARQL devuelve las obras del autor Miguel de Cervantes Saavedra. Los autores se identifican con una URL del tipo http://data.cervantesvirtual.com/person/identificador, en concreto al autor Miguel de Cervantes le corresponde la URL http://data.cervantesvirtual.com/person/40.
PREFIX rdac: <http://rdaregistry.info/Elements/c/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?rol ?m ?label
WHERE {
<http://data.cervantesvirtual.com/person/40> ?rol ?m .
?m a rdac:Manifestation .
?m rdfs:label ?label
}
LIMIT 10
Idiomas
Esta sentencia SPARQL devuelve los idiomas ordenados por el número de manifestaciones asociadas. En el modelo FRBR, las relaciones de idioma se establecen a nivel de expresión, pero también es posible incluir una propiedad dc:language en la manifestación para incluir el idioma. Los idiomas se han definido con el vocabulario MADS/RDF y los recursos idioma se han definido con el tipo madsrdf:Language
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX madsrdf: <http://www.loc.gov/mads/rdf/v1#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?language (COUNT(?manifestation) AS ?no_manifestations) ?code
WHERE {
?language rdf:type madsrdf:Language .
?language madsrdf:code ?code .
?manifestation dc:language ?language }
GROUP BY ?language ?code
ORDER BY DESC(?no_manifestations)
Fechas de publicación
Esta sentencia devuelve las fechas de publicación del repositorio. Las fechas se han definido utilizando la ontología OWL-Time. Este vocabulario permite definir las fechas con el time:Instant. La propiedad rdam:dateOfPublication se ha utilizado para establecer la relación con los recursos de tipo data.cervantesvirtual.com/date/xxxx que representan los años en el repositorio.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX rdam: <http://rdaregistry.info/Elements/m/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?lbl (COUNT(?manifestation) AS ?no_manifestations)
WHERE {
?date rdf:type time:Instant .
?manifestation rdam:dateOfPublication ?date .
?date time:inDateTime ?description .
?description time:year ?lbl . }
GROUP BY ?lbl
ORDER BY DESC(?no_manifestations)
Ediciones y traducciones
El recurso http://data.cervantesvirtual.com/work/18605 corresponde a la obra El retablo de las maravillas que tiene asociadas diferentes ediciones a través de expresiones. La siguiente sentencia muestra las ediciones y traducciones de la obra El retablo de las maravillas disponibles en el catálogo.
PREFIX rdam: <http://rdaregistry.info/Elements/m/>
SELECT ?m ?title
WHERE {
?m rdam:workManifested <http://data.cervantesvirtual.com/work/18605> .
?m rdam:title ?title .
}
Se obtienen como resultado las siguientes ediciones de la obra El retablo de las maravillas:
Publicaciones que son continuación de otras obras
En el catálogo existen obras que son continuación de otras y están marcadas con la propiedad rdau:continuedBy. La siguiente sentencia muestra las obras que son continuación de otras obras disponibles en el repositorio.
PREFIX rdau: <http://rdaregistry.info/Elements/u/>
SELECT ?m
WHERE {
?m rdau:continuedBy ?m2
}
Obras que son suplementos de otras obras
Esta sentencia lista los suplementos de obras en el catálogo a través de la propiedad rdau:supplementTo.
PREFIX rdau: <http://rdaregistry.info/Elements/u/>
SELECT ?m
WHERE {
?m rdau:supplementTo ?m2
}
Adaptaciones de obras
Esta sentencia lista las obras que son adaptaciones de otras en el catálogo a través de la propiedad rdau:adaptationOf.
PREFIX rdau: <http://rdaregistry.info/Elements/u/>
SELECT ?m
WHERE {
?m rdau:adaptationOf ?m2
}
Roles con manifestación
Esta sentencia lista los diferentes roles que existen entre autores y manifestaciones. Es posible cambiar rdac:Manifestation por rdac:Expression o rdac:Work para obtener los roles con las entidades expresión y obra.
PREFIX rdau: <http://rdaregistry.info/Elements/u/>
PREFIX rdac: <http://rdaregistry.info/Elements/c/>
SELECT distinct ?rol
WHERE {
?author ?rol ?m .
?m a rdac:Manifestation .
?author a rdac:Person
}
Algunos ejemplos de roles devueltos por la consulta son los siguientes:
Entidad corporativa
El modelo FRBR describe la entidad Agente como tres subtipos: Persona, Entidad corporativa y Familia. La sentencia siguiente permite obtener las entidades corporativas en el repositorio.
PREFIX rdac: <http://rdaregistry.info/Elements/c/>
SELECT ?s
WHERE {
?s a rdac:CorporateBody
}
LIMIT 10