RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
RDF y SPARQL“Aprendiendo a nadar en el diluvio de datos” (II)
Miguel A. Martınez Prieto & Javier D. FernandezDepartamento de Informatica, Universidad de Valladolid
DataWebCompresion, Indexacion y Aplicaciones
sobre Grandes Colecciones de Datoshttp://dataweb.infor.uva.es
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Indice
1 RDFConcepto y OrıgenesModelo/Lenguaje RDFRDFS
2 Un ejemplo practico: Censo 2001 RDF
3 SPARQL
4 Discusion final
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDF es ...
Framework para la Descripcion de Recursos.Pagina Web, servicio, protocolo, artıculos, libros, etc.Personas, proteınas, informacion geografica, ... ¿todo?
Modelo estandar para el intercambio de datos en laWeb.
Entendible por computadoras
Recomendacion W3C (2004)
Modelo de datos ⇒ Describir relaciones entre “recursos”(grafo)
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
¿Como habla un nino?
Nino a punto de decir su primera sentencia en RDF
Lenguaje Natural Gramatica RDFNene quiere caramelos
Sujeto Predicado Sujeto Propiedad ObjetoMama tiene caramelosMama es guapa
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Ejemplo I
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Ejemplo II. Problemas
¿Algun problema?
¿“Nacimiento” es una fecha o un lugar?“Nacimiento” o “ha nacido”, “birth”, “birth place”, ...¿Como identifico unıvocamente un recurso?...
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Modelo/Lenguaje RDF
Modelo E/RSQL = Modelo RDF
Lenguaje RDF
Recursos y Propiedades: URIs<JACINTO BENAVENTE >→ http://dbpedia.org/resource/Jacinto Benavente
nombre → http://dbpedia.org/property/name
Propiedades bien caracterizadas. Definicion deVocabularios RDF (RDFS)
dublin core: libros, bibliografıaEj: http://purl.org/dc/elements/1.1/title
foaf: personas, entidades y sus relacionesskos: categorias, divisiones...
Nuevo tipo de nodo “variable” Blank NodeMiguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Ejemplo III
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Ejemplo III+Blank Nodes
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Ejemplo III+Blank Nodes+Tipos
Finalmente:
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Formatos RDF
NTriples (N3)@PREFIX dbpediaprop: <http://dbpedia.org/property/>.@PREFIX dbpediaCat: <http://dbpedia.org/resource/Category:>.@PREFIX dcterms: <http://purl.org/dc/terms/>.
<http://dbpedia.org/resource/Jacinto Benavente> dbpediaprop:name “Jacinto Benavente” .<http://dbpedia.org/resource/Jacinto Benavente> dcterms:issue dbpediaCat:Nobel laureates in Literature .
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
Formatos RDF II
NTriples (Turtle)@PREFIX dbpediaprop: <http://dbpedia.org/property/>.@PREFIX dbpediaCat: <http://dbpedia.org/resource/Category:>.@PREFIX dcterms: <http://purl.org/dc/terms/>.
<http://dbpedia.org/resource/Jacinto Benavente> dbpediaprop:name “Jacinto Benavente” ;dcterms:issue dbpediaCat:Nobel laureates in Literature .
NTriples (XML)<?xml version=“1.0”?><rdf:RDF xmlns:dbpediaCat=“http://dbpedia.org/resource/Category:”
xmlns:dbpediaprop=“http://dbpedia.org/property/”xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:dcterms=“http://purl.org/dc/terms/”>
<rdf:Description rdf:about=“http://dbpedia.org/resource/Jacinto Benavente“><dbpediaprop:name>Jacinto Benavente</dbpediaprop:name><dcterms:issue rdf:resource=“http://dbpedia.org/resource/Category:Nobel laureates in Literature” />
</rdf:Description> </rdf:RDF>
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
¿Ası de simple?
¿Picasso no es Pintor?
¿Picasso no crea?
¿Da Vinci no pinta?
¿Que es Gernica, una ciudad?Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDFS-I
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDFS-II
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDFS-III
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDFS-Breve Resumen
Clases
rdfs:Resourcerdfs:Classrdfs:Literalrdfs:Datatyperdf:XMLLiteralrdf:Property
Propiedades
rdfs:domainrdfs:rangerdf:typerdfs:subClassOfrdfs:subPropertyOfrdfs:labelrdfs:comment
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Concepto y OrıgenesModelo/Lenguaje RDFRDFS
RDFS-IV
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Indice
1 RDF
2 Un ejemplo practico: Censo 2001 RDF
3 SPARQL
4 Discusion final
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
¿¿Un ejemplo practico??
Censo
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Indice
1 RDF
2 Un ejemplo practico: Censo 2001 RDF
3 SPARQLConceptosSintaxis basicaEjemplos SPARQL
4 Discusion final
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
El lenguaje de consulta SPARQL
SQLTablas = RDF
Grafo
Lenguaje declarativo para extraer informacion de grafos RDF
Recomendacion W3C (2004)
Se basa en el emparejamiento de patrones (graph patternmatching).
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I
¿Espanoles que han ganado el premio nobel de literatura?Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Patron basico
Ganador de premio nobel
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Emparejamiento
Ganador de premio nobel
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Patron compuesto
Espanol ganador de premio nobel
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Emparejamiento
Espanol ganador de premio nobel
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Triple Pattern
Ganador de premio nobel
SELECT ?ganadorWHERE {
?ganador dcterms:subject dbpediaCat:Nobel laurates in Literature .
}
?ganadordbpedia:Jacinto Benavente
dbpedia:Pablo Neruda
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL I. Basic Graph Pattern (BGP)
Ganador de premio nobel
SELECT ?ganadorWHERE {
?ganador dcterms:subject dbpediaCat:Nobel laurates in Literature .?ganador dbpediaprop:birthPlace “Espana” .
}
?ganadordbpedia:Jacinto Benavente
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consulta
SELECT, ASK, CONSTRUCT, DESCRIBE
ASK {?ganador dcterms:subject dbpediaCat:Nobel laurates in Literature .?ganador dbpediaprop:birthPlace “Espana” .
}
Resultado:yes
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consulta
SELECT, ASK, CONSTRUCT, DESCRIBE
CONSTRUCT <http://www.example.org/Javi> miVocab:deseoLeer ?ganador{
?ganador dcterms:subject dbpediaCat:Nobel laurates in Literature .
}
Resultado:<http://www.example.org/Javi> miVocab:deseoLeer dbpedia:Jacinto Benavente .
<http://www.example.org/Javi> miVocab:deseoLeer dbpedia:Pablo Neruda .
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consulta
SELECT, ASK, CONSTRUCT, DESCRIBE
DESCRIBE dbpedia:Pablo Neruda
Resultado:
<dbpedia:Pablo Neruda> dbpediaprop:birthPlace “Chile” .<dbpedia:Pablo Neruda> dcterms:subject dbpediaCat:Nobel laureates in Literature .· · ·<http://www.example.org/Javi> miVocab:deseoLeer dbpedia:Pablo Neruda .
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consultaSELECT, ASK, CONSTRUCT, DESCRIBE
ModificadoresORDER BY, DISTINCT, REDUCED, LIMIT, OFFSET
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT DISTINCT ?nameWHERE { ?x foaf:name ?name .}ORDER BY ?nameLIMIT 3OFFSET 1
Con nombres: “a”, “b”, “c”, “c”, “d”, “e”, “f”Resultado:
?namebcd
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consultaSELECT, ASK, CONSTRUCT, DESCRIBE
ModificadoresORDER BY, DISTINCT, REDUCED, LIMIT, OFFSET
UNION y OPTIONALSELECT ?escritorWHERE{{?escritor dcterms:subject dbpediaCat:Nobel laureates in Literature .?escritor dbpediaprop:birthPlace “Chile” .}
UNION {?escritor dcterms:subject dbpediaCat:Nobel laureates in Literature .?escritor dbpediaprop:birthPlace “Espana” .}
} ?escritordbpedia:Jacinto Benaventedbpedia:Pablo Neruda
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consulta
SELECT, ASK, CONSTRUCT, DESCRIBE
Modificadores
ORDER BY, DISTINCT, REDUCED, LIMIT, OFFSET
UNION y OPTIONAL
SELECT ?nombre ?nombreAlternativoWHERE{
?escritor dcterms:subject dbpediaCat:Nobel laureates in Literature .?escritor dbpediaprop:name ?nombre .?escritor dbpediaprop:alternativeNames ?nombreAlternativo .
}
?nombre ?nombreAlternativo“Pablo Neruda” “Neftalı Ricardo Reyes Basoalto”
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consulta
SELECT, ASK, CONSTRUCT, DESCRIBE
Modificadores
ORDER BY, DISTINCT, REDUCED, LIMIT, OFFSET
UNION y OPTIONAL
SELECT ?nombre ?nombreAlternativoWHERE{
?escritor dcterms:subject dbpediaCat:Nobel laureates in Literature .?escritor dbpediaprop:name ?nombre .OPTIONAL {?escritor dbpediaprop:alternativeNames ?nombreAlternativo .}
}
?nombre ?nombreAlternativo“Pablo Neruda” “Neftalı Ricardo Reyes Basoalto”“Jacinto Benavente”
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL
Formas de consultaSELECT, ASK, CONSTRUCT, DESCRIBE
ModificadoresORDER BY, DISTINCT, REDUCED, LIMIT, OFFSET
UNION y OPTIONALFILTER
lang, datatype, regex, isURI, isLiteral, isBlank, (aritmeticas)
d b p e d i a : Pab lo Neruda f o a f : name ” Pablo ”@ES .d b p e d i a : Pab lo Neruda f o a f : name ” Paul ”@EN .d b p e d i a : J a c i n t o B e n a v e n t e f o a f : name ” J a c i n t o ”@ES .
SELECT ?escritor ?nombreWHERE{
?escritor foaf:name ?nombre .FILTER ( lang(?nombre) = “EN” )
} ?escritor ?nombredbpedia:Pablo Neruda “Paul”@EN
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL Censo¿Nos atremos a averiguar las madres con hijos chilenos que se quejan de zonas verdes?
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL Censo. Patron
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
Ejemplo SPARQL Censo. Solucion
PREFIX c e n s o P e r s o n a :<h t t p : / / c e n s u s . l a b 2 1 6 . com/ censo /2001/ p e r s o n a#>PREFIX censoHogar :<h t t p : / / c e n s u s . l a b 2 1 6 . com/ censo /2001/ hogar#>PREFIX c e n s o V i v i e n d a :<h t t p : / / c e n s u s . l a b 2 1 6 . com/ censo /2001/ v i v i e n d a#>
s e l e c t d i s t i n c t ? p e r s o n a ? q u e j a
WHERE {? h i j o c e n s o P e r s o n a : NACI ? p a i s .? p a i s r d f s : l a b e l ”CHILE” .
? h i j o c e n s o P e r s o n a :MAD ? p e r s o n a .? p e r s o n a censoHogar :HOGAR ? hogar .? hogar censoHogar : VIVIENDA ? v i v i e n d a .? v i v i e n d a c e n s o V i v i e n d a : VERDE ? q u e j a .
}
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
ConceptosSintaxis basicaEjemplos SPARQL
SPARQL en la DBPedia
PREFIX dbpedia2: <http://dbpedia.org/property/>
SELECT ?o WHERE { ?s dbpedia2:blackboard ?o . }
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Indice
1 RDF
2 Un ejemplo practico: Censo 2001 RDF
3 SPARQL
4 Discusion final
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
¿Por que RDF/SPARQL tiene/tendra exito?
Modelo simple para describir recursos
Las sentencias parece un modo natural de hacerlo, entendible“conceptualmente” por humanos pero manejable“automaticamente” por maquinas
Vocabularios estandares utiles y no excesivamente ambiciosos
Lenguaje de consultas basado en patrones, intuitivo y potenteSQLTablas = RDF
Grafo
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Grafos
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
RDFUn ejemplo practico: Censo 2001 RDF
SPARQLDiscusion final
Esta presentacion se difunde unicamente con fines divulgativos. Lasimagenes utilizadas pueden pertenecer a terceros y por tanto son
propiedad de sus autores.
Miguel A. Martınez Prieto & Javier D. Fernandez “Aprendiendo a nadar en el diluvio de datos” (II)
Top Related