Ejercicio 1: Representar utilizando RDF Schema el siguiente

Anuncio
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 1:
Representar utilizando RDF Schema el siguiente conocimiento:
La capital de España es Madrid.
Puede utilizar un grafo o la notación Turtle. Defina las clases y propiedades que considere oportunas.
Todas las URIs creadas tendrán como base http://prueba2.curso2012/. Si lo desea puede utilizar los
siguientes prefijos y/o definir otros si es necesario.
@prefix p2: <http://prueba2.curso2012/>
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SOLUCIÓN
Turtle:
p2:Pais rdf:type rdfs:Class .
p2:Ciudad rdf:type rdfs:Class .
p2:capital rdf:type rdf:Property .
p2:capital rdfs:domain p2:Pais .
p2:capital rdfs:range p2:Ciudad .
p2:Madrid rdf:type p2:Ciudad .
p2:España rdf:type p2:Pais .
p2:España p2:capital p2:Madrid .
Pág. 1 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 2:
Representar utilizando RDF Schema el siguiente conocimiento:
Picasso pintó el Guernica.
Puede utilizar un grafo o la notación Turtle. Defina las clases y propiedades que considere oportunas.
Todas las URIs creadas tendrán como base http://prueba2.curso2012/. Si lo desea puede utilizar los
siguientes prefijos y/o definir otros si es necesario.
@prefix p2: <http://prueba2.curso2012/>
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SOLUCIÓN
rdfs:Class
rdf:type
rdfs:domain
p2:Cuadro
rdf:Property
rdfs:Class
rdf:type
p2:autor
rdf:type
rdfs:range
p2:Persona
rdf:type
rdf:type
p2:Guernica
p2:autor
p2:Picasso
Turtle:
p2:Persona rdf:type rdfs:Class .
p2:Cuadro rdf:type rdfs:Class .
p2:Picasso rdf:type p2:Persona .
p2:autor rdf:type rdf:Property .
p2:autor rdfs:domain p2:Cuadro .
p2:autor rdfs:range p2:Persona .
p2:Guernica rdf:type p2:Cuadro .
p2:Guernica p2:autor p2:Picasso .
Pág. 2 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 3:
Utilizando la herramienta Protege 3.4 realizar los siguientes pasos:
1. Crear un proyecto nuevo
• Seleccionar OWL / RDF Files
• Después OWL DL
2. Crear la clase Animal y las subclases Tigre, Vaca y Oveja
• Tigre v Animal
• Vaca v Animal
• Oveja v Animal
3. Crear las clase ProductoAnimal y las subclases Leche y Huevos
4. Definir la propiedad “come” con dominio Animal y rango Animal t Planta t
ProductoAnimal
• El rango en Protege se hace añadiendo las tres clases al rango (en vez de la fórmula)
• Otra opción: crear una clase Comida con esas tres subclases
5. Crear instancia de Tigre (p.e. t1) y Vaca (p.e. v1) e indicar que t1 come v1
6. Expresar: algo que come animales es carnívoro:
• Carnívoro ´ 9come.Animal
• Se recomienda seleccionar la opción “OWL – Preferences – DLSintaxClassDisplay”
para utilizar la notación de lógicas de descripciones vista en clase
7. Expresar: un vegetariano es algo que no come animales
• Vegetariano ´ 8come.¬Animal (o ¬(9come.Animal) )
8. Expresar: Los tigres comen vacas
• Tigre v 9come.Vaca
9. INFERENCIA 1: clasificar la ontología (activar el razonador si no lo está, menú
“Reasoning”). Observar qué se deduce y explicar.
10. INFERENCIA 2: computar instancias. Observar qué se deduce y explicar.
11. Expresar: La vaca es animal vegetariano
• Vaca v Animal u Vegetariano (o simplemente añadir Vaca v Vegetariano)
12. Expresar: Las vacas locas son vacas que comen ovejas
• VacaLoca v Vaca u 9come.Oveja
13. INFERENCIA 3: comprobar consistencia. Observar qué se deduce y explicar.
Pág. 3 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
14. Quitar Vegetariano de Vaca (11). Volver a comprobar la consistencia y explicar.
15. Volver a dejar Vaca v Animal u Vegetariano y modificar Vegetariano (7):
• Vegetariano ´ 8come.Planta (en vez de ¬Animal)
16. INFERENCIA 4: comprobar consistencia. Observar qué se deduce y explicar.
17. Añadir que Animal es disjunto de Planta.
• Animal v ¬Planta
• Esto se puede hacer añadiendo el axioma o añadiendo la clase en “disjoints”
18. INFERENCIA 5: comprobar consistencia. Observar qué se deduce y explicar.
SOLUCIÓN:
INFERENCIA 1: clasificar la ontología. Observar qué se deduce y explicar.
• Carnívoro v Animal debido a que come tiene dominio Animal. Si se añade dominio
Carnívoro o se quita el dominio Animal entonces no se deduce.
• Tigre v Carnívoro por 6 y 8
INFERENCIA 2: computar instancias. Observar qué se deduce y explicar.
• t1 y v1 ∈ Animal por subsunción
• t1 ∈ Carnívoro por 5 y 6
INFERENCIA 3: comprobar consistencia. Observar qué se deduce y explicar.
• VacaLoca es inconsistente porque es Vaca u 9come.Oveja u 8come.¬Animal
INFERENCIA 4: comprobar consistencia. Observar qué se deduce y explicar.
• Ahora VacaLoca es consistente!! porque no se dice que Oveja sea disjunto de Planta,
por tanto podría haber ovejas que fueran también plantas
INFERENCIA 5: comprobar consistencia. Observar qué se deduce e intentar explicar porqué.
• Ahora VacaLoca es inconsistente, ya que ahora Animal (y por tanto Oveja) son
disjuntos de Planta.
Pág. 4 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 4:
1. Introducir en Protege el siguiente conocimiento:
Mujer ´ Persona u Femenino
Hombre ´ Persona u ¬Mujer
Padre ´ Hombre u 9crea.Persona
Madre ´ Mujer u 9crea.Persona
Progenitor ´ Padre t Madre
Abuela ´ Madre u 9crea.Progenitor
Esposa ´ Mujer u 9tieneConyuge.Hombre
MadreSinHijas ´ Madre u 8crea.(¬Mujer)
2.
3.
4.
5.
Clasificar la taxonomía. Observar el resultado.
Introducir algunas instancias
Obtener instancias inferidas (type)
Introducir inconsistencias, por ejemplo:
• Hombre y NO Hombre
• Después de tener instancias, especificar que hombre tiene al menos un hijo
6. Realizar algunas consultas SPARQL
SOLUCIÓN:
Este ejercicio no tiene solución concreta.
Pág. 5 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 5:
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
Pág. 6 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
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)
Pág. 7 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
10. 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)
}
11. 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)
}
12. 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)
}
}
13. 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)
}
Pág. 8 / 9
UNIVERSIDAD REY JUAN CARLOS
CURSO 2014-2015
Hoja de Problemas Tema 8
Ontologías y Web Semántica
14. 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.
}
Pág. 9 / 9
Descargar