1 Realizar las siguientes consultas SPARQL a la dbpedia (http

Anuncio
SISTEMAS BASADOS EN EL CONOCIMIENTO
Grado en Ingeniería Informática
Hoja de Problemas Tema 4
Web Semántica y Web de Datos
Realizar las siguientes consultas SPARQL a la dbpedia (http://dbpedia.org/snorql o
http://dbpedia.org/sparql):
1. Capitales de Europa, ordenadas
(http://dbpedia.org/class/yago/CapitalsInEurope)
PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
}
ORDER BY ?c
2. Capitales de Europa y su nombre, ordenadas
(http://dbpedia.org/property/name)
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX dbpprop: <http://dbpedia.org/property/>
SELECT DISTINCT ?c ?nombre
WHERE {
?c a yago:CapitalsInEurope.
?c dbpprop:name ?nombre.
}
ORDER BY ?c
3. Capitales de Europa que no tienen nombre, ordenadas
SELECT DISTINCT ?c ?nombre
WHERE {
?c a yago:CapitalsInEurope.
MINUS {?c dbpprop:name ?nombre.}
}
ORDER BY ?c
También:
FILTER NOT EXISTS {?c dbpprop:name ?nombre.}
4. Capitales de Europa, su nombre y su nombre nativo, ordenadas
(http://dbpedia.org/property/nativeName)
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
?c dbpprop:name ?nombre.
?c dbpprop:nativeName ?nomNativo
}
ORDER BY ?c
1
SISTEMAS BASADOS EN EL CONOCIMIENTO
Grado en Ingeniería Informática
Hoja de Problemas Tema 4
Web Semántica y Web de Datos
5. Capitales de Europa y su nombre (si lo tienen), ordenadas
SELECT DISTINCT ?c ?nombre
WHERE {
?c a yago:CapitalsInEurope.
OPTIONAL {?c dbpprop:name ?nombre}.
}
ORDER BY ?c
6. Capitales de Europa, su nombre (si lo tienen) y su nombre nativo (si lo tienen), ordenadas
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
OPTIONAL {?c dbpprop:name ?nombre.}.
OPTIONAL {?c dbpprop:nativeName ?nomNativo}
}
ORDER BY ?c
7. Capitales de Europa y, si tienen ambos, su nombre y su nombre nativo, ordenadas
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
OPTIONAL { ?c dbpprop:name ?nombre.
?c dbpprop:nativeName ?nomNativo}
}
ORDER BY ?c
8. Capitales europeas cuyo nombre contiene una “e”
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
?c dbpprop:name ?nombre.
FILTER regex(?nombre,"e","i")
}
ORDER BY ?c
9. Capitales europeas y población de más de 2.000.000 habitantes, ordenados por nº habitantes (de
mayor a menor)
(http://dbpedia.org/ontology/populationTotal)
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
?c dbpedia-owl:populationTotal ?hab.
FILTER (?hab >= 2000000)
}
ORDER BY DESC(?hab)
2
SISTEMAS BASADOS EN EL CONOCIMIENTO
Grado en Ingeniería Informática
Hoja de Problemas Tema 4
Web Semántica y Web de Datos
10. Para cada capital europea de más de 2 millones de habitantes mostrar un texto con el nombre y
los habitantes. Por ejemplo: “En Madrid hay 3500000 habitantes”
SELECT DISTINCT (CONCAT ("En ",?nombre," hay ",?hab," habitantes")) AS ?frase
WHERE {
?c a yago:CapitalsInEurope.
?c dbpprop:name ?nombre.
?c dbpedia-owl:populationTotal ?hab.
FILTER (?hab >= 2000000)
}
ORDER BY DESC(?hab)
11. Capitales europeas con más de 1000 km2 (en m2)
(http://dbpedia.org/ontology/areaTotal)
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
?c dbpedia-owl:areaTotal ?area.
FILTER (?area > 1000000000)
}
12. Capitales europeas o asiáticas con más de 1000 km2 (en m2)
(http://dbpedia.org/class/yago/CapitalsInAsia)
SELECT DISTINCT *
WHERE {
{ ?c a yago:CapitalsInEurope.}
UNION
{ ?c a yago:CapitalsInAsia.}
?c dbpedia-owl:areaTotal ?area.
FILTER (?area > 1000000000)
}
13. Capitales europeas con más de 1000 km2 (en m2) y capitales de Asia con más de 10 millones de
habitantes
SELECT DISTINCT *
WHERE {
{ ?c a yago:CapitalsInEurope.
?c dbpedia-owl:areaTotal ?area.
FILTER (?area > 1000000000)
}
UNION
{ ?lugar a yago:CapitalsInAsia.
?lugar dbpedia-owl:populationTotal ?hab.
FILTER (?hab >= 10000000)
}
}
3
SISTEMAS BASADOS EN EL CONOCIMIENTO
Grado en Ingeniería Informática
Hoja de Problemas Tema 4
Web Semántica y Web de Datos
14. Capitales europeas y población de más de 2.000.000 habitantes, de países de menos de 500.000
km2 (en m2)
(http://dbpedia.org/ontology/country)
SELECT DISTINCT *
WHERE {
?c a yago:CapitalsInEurope.
?c dbpedia-owl:populationTotal ?hab.
FILTER (?hab >= 2000000)
?c dbpedia-owl:country ?pais.
?pais dbpedia-owl:areaTotal ?area.
FILTER (?area < 500000000000)
}
15. Actores de cine que están casados entre ellos, han participado en la misma película, y tal que
uno de ellos ha nacido en un país cuya capital tiene más de 3 millones de habitantes, y el otro ha
nacido en una ciudad que tiene un equipo en la NBA
• dbpprop:spouse
• dbpedia-owl:starring (pelicula – actor)
• dbpedia-owl:birthPlace
• dbpedia-owl:Country (clase)
• dbpedia-owl:capital
• dbpedia-owl:populationTotal
• dbpprop:city (equipo - ciudad)
• yago:NationalBasketballAssociationTeams
SELECT DISTINCT ?actor1 ?actor2
WHERE {
{?actor1 dbpprop:spouse ?actor2.}
UNION
{?actor2 dbpprop:spouse ?actor1.}
?peli dbpedia-owl:starring ?actor1.
?peli dbpedia-owl:starring ?actor2.
?actor1 dbpedia-owl:birthPlace ?p1.
?p1 a dbpedia-owl:Country.
?p1 dbpedia-owl:capital ?cap.
?cap dbpedia-owl:populationTotal ?hab.
FILTER (?hab > 3000000).
?actor2 dbpedia-owl:birthPlace ?c2.
?equipo dbpprop:city ?c2.
?equipo a yago:NationalBasketballAssociationTeams.
}
16. Número de capitales europeas
SELECT (COUNT(?c) AS ?numCapitales)
WHERE {
?c a yago:CapitalsInEurope.
}
4
SISTEMAS BASADOS EN EL CONOCIMIENTO
Grado en Ingeniería Informática
Hoja de Problemas Tema 4
Web Semántica y Web de Datos
17. Número mínimo y máximo de habitantes de las capitales europeas
SELECT (MIN(?hab) AS ?minimo) (MAX(?hab) AS ?maximo)
WHERE {
?c a yago:CapitalsInEurope.
?c dbpedia-owl:populationTotal ?hab.
}
18. Tenistas ganadores de más de cinco torneos Grand Slam (Roland Garros, Wimbledon, Open
USA, Open Australia) indicando y ordenado por número de torneos ganados (mayor a menor)
• dbpedia-owl:championInSingleMale (torneo – ganador)
• dbpedia-owl:category <http://dbpedia.org/resource/Grand_Slam_(tennis)>
SELECT ?ganador (COUNT(?torneo) AS ?veces)
WHERE {
?torneo dbpedia-owl:championInSingleMale ?ganador.
?torneo dbpedia-owl:category <http://dbpedia.org/resource/Grand_Slam_(tennis)>.
}
GROUP BY ?ganador
HAVING (COUNT(?torneo) > 5)
ORDER BY DESC(?veces)
5
Descargar