Publicado el 4 de Septiembre del 2018
515 visualizaciones desde el 4 de Septiembre del 2018
3,3 MB
64 paginas
Creado hace 8a (13/11/2015)
Contenido
#LDR_MRA15
• Datos enlazados (linked data)
• DBpedia del español
• Paquetes R
2
¿Qué son?
DATOS ENLAZADOS
(LINKED DATA)
Terminología
#LDR_MRA15
Bla, bla, bla, RDF, bla, bla,
blaaa, SPARQL, bla, bla, bla,
Semantic Web, bla, bla, bla,
bla, bla, bla, Linked Data,
bla, bla Open Data, bla, bla,
bla, blaaaaaa, bla, bla,
blaaa, bla, bla, Ontologías,
blaaa, blaaa, bla..
4
Terminología
#LDR_MRA15
5
Terminología
#LDR_MRA15
6
Datos Business?
#LDR_MRA15
7
Datos RDF: Datos con sentido
#LDR_MRA15
8
Datos con semántica
#LDR_MRA15
• Semántica porque
– Enlaza con datos de una (o varias) ontologías
• Una ontología es un modelo matemático que permite
– Razonar Crear nuevos datos
– Preguntar si algo existe o una afirmación es cierta
• Sin enlaces a ontologías no hay semántica
9
Datos con semántica
#LDR_MRA15
• Ejemplo: “Cervantes escribió el Quijote”
http://dbpedia.org/ontology/Writer
rdfs:subClassOf
rdf:type
http://dbpedia.org/ontology/Artist
http://es.dbpedia.org/resource/Miguel_de_Cervantes
dbpedia:alias
dbpedia:author
http://es.dbpedia.org/resource/Don_Quijote_de_la_Mancha
“Cervantes”
rdfs:label
rdfs:label
“Miguel de Cervantes”@es
“Don Quijote de la Mancha”@es
10
Datos con semántica
• Razono: “Cervantes es un artista”
#LDR_MRA15
http://dbpedia.org/ontology/Writer
rdfs:subClassOf
rdf:type
http://dbpedia.org/ontology/Artist
http://es.dbpedia.org/resource/Miguel_de_Cervantes
rdf:type
dbpedia:alias
dbpedia:author
http://es.dbpedia.org/resource/Don_Quijote_de_la_Mancha
“Cervantes”
rdfs:label
rdfs:label
“Miguel de Cervantes”@es
“Don Quijote de la Mancha”@es
11
Datos con semántica
• Añado más enlaces y datos
#LDR_MRA15
dbpedia:thumbnail
http://upload.wikimedia.org/Wikipedia/commons/thumbd...
dbpedia:literaryGenre
http://es.dbpedia.org/resource/Novela_de_aventuras
http://es.dbpedia.org/Yann_Martel
dbpedia:author
http://es.dbpedia.org/resource/La_vida_de_Pi
dbpedia:literaryGenreOf
12
Datos con semántica
• Añado más enlaces y datos
#LDR_MRA15
13
Datos con semántica
• Añado más enlaces y datos
#LDR_MRA15
14
Datos con semántica
• Conjunto de datos (dataset)
#LDR_MRA15
15
El núcleo de la LOD cloud
DBPEDIA
DBpedia, núcleo de Linked Data
#LDR_MRA15
2007
25 datasets
17
.
g
n
p
d
u
o
l
c
-
d
o
l
/
8
0
-
0
1
-
7
0
0
2
/
s
n
o
i
s
r
e
v
/
t
e
n
d
u
o
l
c
-
d
o
l
/
/
:
p
t
t
h
.
DBpedia, núcleo de Linked Data
#LDR_MRA15
2010
203 datasets
18
l
.
.
g
n
p
d
e
r
o
o
c
_
d
u
o
l
c
-
d
o
l
/
9
1
-
9
0
-
1
1
0
2
/
s
n
o
i
s
r
e
v
/
t
e
n
d
u
o
l
c
-
d
o
l
/
/
:
p
t
t
h
DBpedia, núcleo de Linked Data
#LDR_MRA15
2011
295 datasets
19
.
g
n
p
d
u
o
l
c
-
d
o
l
/
9
1
-
9
0
-
1
1
0
2
/
s
n
o
i
s
r
e
v
/
t
e
n
d
u
o
l
c
-
d
o
l
/
/
:
p
t
t
h
.
DBpedia, núcleo de Linked Data
#LDR_MRA15
2014
570 datasets
20
El núcleo de los datos semánticos del español
DBPEDIA DEL ESPAÑOL
esDBpedia
• La no inglesa más grande
#LDR_MRA15
22
esDBpedia
#LDR_MRA15
• Centro de la Linked Open Data (LOD) cloud del
idioma español
23
De xx.wikipedia.org a xx.dbpedia.org
#LDR_MRA15
g
n
i
r
e
d
n
e
R
RDF
Triple
store
24
Hasta aquí… ¿bien?...
#LDR_MRA15
25
Dame
DATOS, DATOS, DATOS
¿Qué datos tiene DBpedia?
#LDR_MRA15
• DBpedia (idioma inglés). Datos septiembre 2014
• Cosas (entradas Wikipedia): 4.58 millones
– Clasificadas en la ontología DBpedia: 4.22
1.445.000 personas 735.000 lugares
241.000 organizaciones 123.000 discos 87.000 películas…
• DBpedias de 125 idiomas
• Enlaces:
25.2 millones a imágenes 29.8 millones a páginas web externas
50.0 millones a otros RDF datasets 80,9 millones a categorías Wikipedia
41.2 millones a categorías YAGO
• Tripletas (triples)
3000 millones de triples (583 millones de la versión inglesa)
(No están todos en el EP)
27
La ontología DBpedia
#LDR_MRA15
• Es una ontología OWL
– ¡Ojo!, común a todos los idiomas
– Varias versiones. La última tiene:
• 685 clases
• 2679 propiedades
– 1600 DBpediaDatatypeProperty
– 1079 DBpediaObjectProperty
• Equivalencias con schema.org
– 47 owl:equivalentClass
– 35 owl:equivalentProperty
28
Ver las clases y propiedades
#LDR_MRA15
http://mappings.dbpedia.org/server/ontology/classes
http://mappings.dbpedia.org/server/ontology/classes/BullFighter
http://mappings.dbpedia.org/index.php/OntologyProperty:DebutTeam
29
Sacando datos a un dataset de linked data
SPARQL
Sacando datos del EP
#LDR_MRA15
• EP = EndPoint
• “El EP” de esDBpedia
http://es.dbpedia.org/sparql
31
Sacando datos del EP
#LDR_MRA15
• La consulta
(“la query”)
– Sintaxis similar a
SQL
(bases de datos
tradicionales)
32
Sacando datos del EP
#LDR_MRA15
• Formatos de
salida
– Por omisión HTML
– Otros formatos
• JSON
• CSV
• RDF
• …
33
Sacando datos del EP
#LDR_MRA15
• Ejemplo “zero”
– Número de instancias de cada clase
de la ontología DBpedia
SELECT ?class
(COUNT(?s) AS ?count)
WHERE {
?s a ?class .
filter (strstarts(str(?class),
"http://dbpedia.org/ontology"
))
}
GROUP BY ?class
ORDER BY DESC(?count)
34
¡¡Alto ahí!!. SPARQuéeel?????
#LDR_MRA15
35
Aprende SPARQL
#LDR_MRA15
36
Aprende SPARQL
• A base de ejemplos
– En el wiki de esDBpedia
#LDR_MRA15
37
Aprende SPARQL
• A base de ejemplos
– En el wiki de esDBpedia
#LDR_MRA15
38
Queries “duras”
#LDR_MRA15
• Hay queries que necesitan mucho tiempo de cálculo
• Son rechazadas por el EP
• Ejemplo
– Número de instancias de cada propiedad de la ontología DBpedia
SELECT ?p (COUNT(?s) AS ?count) WHERE {
•
Esta suele rechazarse por ser muy pesada
?s ?p ?o .
filter (strstarts(str(?p), "http://dbpedia.org/ontology"))
} GROUP BY ?p ORDER BY DESC(?count)
39
Más datasets
• The Data hub
– Filtra por
• Tags
– lod
– format-rdf
• Formats
– api/sparql
#LDR_MRA15
40
Hasta aquí… ¿bien?...
#LDR_MRA15
41
Hasta aquí… ¿bien?...
#LDR_MRA15
42
Hasta aquí… ¿bien?...
#LDR_MRA15
43
¡¡Por fin!!
USANDO R
#LDR_MRA15
Package SPARQL
library(SPARQL)
endpoint <- "http://es.dbpedia.org/sparql"
query <-
'
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?torero ?cantante WHERE{
?torero rdf:type dbpedia-owl:BullFighter .
?torero dbpedia-owl:spouse ?cantante .
?cantante dcterms:subject
<http://es.dbpedia.org/resource/Categoría:Cantantes_de_coplas>
}
'
reslist <- SPARQL(endpoint,query)
df <- reslist$results
df
45
#LDR_MRA15
Package SPARQL
• Uso de argmento ns
– Para reducir tamaño de resultado
#continuación…
nss <- c("esdbres", "http://es.dbpedia.org/resource/")
reslist <- SPARQL(endpoint,query, ns = nss)
df <- reslist$results
df
46
Múltiples maneras de preguntar
#LDR_MRA15
• Científicos españoles
Forma1
SELECT ?person WHERE{
?person dcterms:subject
resultado: 66 científicos
<http://es.dbpedia.org/resource/Categoría:Científicos_de_España>
}
Forma2
resultado: 143 científicos
PREFIX esdbpr: <http://es.dbpedia.org/resource/>
SELECT ?person WHERE{
?person rdf:type
?person dbpedia-owl:country
dbpedia-owl:Scientist .
esdbpr:España .
}
47
Múltiples maneras de preguntar
#LDR_MRA15
• Desde SPARQL EP: Científicos españoles
– UNION
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX esdbpr: <http://es.dbpedia.org/resource/>
SELECT ?person WHERE{
resultado: 209 = 66 + 143
{
}
?person dcterms:subject
<http://es.dbpedia.org/resource/Categoría:Científicos_de_España>
UNION
{
?person rdf:type
?person dbpedia-owl:country
dbpedia-owl:Scientist .
esdbpr:España .
}
}
48
Múltiples maneras de preguntar
#LDR_MRA15
• Desde SPARQL EP: Científicos españoles
– UNION
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX esdbpr: <http://es.dbpedia.org/resource/>
SELECT DISTINCT ?person WHERE{
(había 9 duplicados)
resultado: 200
{
}
?person dcterms:subject
<http://es.dbpedia.org/resource/Categoría:Científicos_de_España>
UNION
{
?person rdf:type
?person dbpedia-owl:country
dbpedia-owl:Scientist .
esdbpr:España .
}
}
49
Múltiples maneras de preguntar
#LDR_MRA15
• Desde R: Científicos españoles
library(SPARQL)
endpoint <- "http://es.dbpedia.org/sparql"
nss <- c("esdbres", "http://es.dbpedia.org/resource/")
queryF1 <-
'
SELECT ?person WHERE{
?person dcterms:subject
<http://es.dbpedia.org/resource/Categoría:Científicos_de_España>
}
'
queryF2 <-
'
PREFIX esdbpr: <http://es.dbpedia.org/resource/>
SELECT ?person WHERE{
?person rdf:type
?person dbpedia-owl:country
dbpedia-owl:Scientist .
esdbpr:España .
}
'
reslistF1 <- SPARQL(endpoint,queryF1, ns = nss)
reslistF2 <- SPARQL(endpoint,queryF2, ns = nss)
#Devuelve los 9 comunes a las dos queries
intersect (t(reslistF1$results), #Si devuelve una única columna “se lía” y necesita t()
50
t(reslistF2$results))
#LDR_MRA15
Siguiendo la pista
• Ejemplo: Políticos
• Veo la página de Rajoy en Wikipedia
• Veo qué nombre de recurso tiene
– “Mariano_Rajoy”
• Busco sus datos en esDBpedia
– http://es.dbpedia.org/resource/Mariano_Rajoy
– Veo properties
• occupation
• party
• …
51
Siguiendo la pista
#LDR_MRA15
• Ejemplo: Políticos
• Obteniendo los datos de Rajoy en esDBpedia
library(SPARQL)
endpoint <- "http://es.dbpedia.org/sparql"
nss <- c("esdbres", "http://es.dbpedia.org/resource/")
query <-
'
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esdbr: <http://es.dbpedia.org/resource/>
select * where{
esdbr:Mariano_Rajoy ?p ?v
}
'
reslist <- SPARQL(endpoint,query, ns = nss) #Salen 550 datos
head(reslist$results)
52
Siguiendo la pista
• Ejemplo: Políticos
• Políticos y su partido político
library(SPARQL)
endpoint <- "http://es.dbpedia.org/sparql"
nss <- c("esdbres", "http://es.dbpedia.org/resource/")
query <-
'
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esdbr: <http://es.dbpedia.org/resource/>
select ?uri ?par where{
?uri dbo:occupation esdbr:Político .
?uri dbo:party ?par
}
ORDER BY ?par
'
reslist <-
Comentarios de: Desde cero la web de Datos (0)
No hay comentarios