Representar utilizando RDF Schema el siguiente conocimiento

Anuncio
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
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 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
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 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
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.
14. Quitar Vegetariano de Vaca (11). Volver a comprobar la consistencia y explicar.
Pág. 3 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
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 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 4:
1. Introducir en Protege el siguiente conocimiento (ejercicio 1 del tema Lógica de
Descripciones del curso pasado de IA):
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 9tieneMarido.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 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 5:
Dado el siguiente fragmento de la mitología griega:
Edipo mató a su padre, se casó con su madre Yocasta, y tuvo hijos con ella, entre ellos Polinices.
Polinices tuvo hijos, entre ellos Tersandro.
a) Representar ese conocimiento en LD ALC (se sugiere una clase Mito y predicado tieneHijo)
b) Añadir que Edipo es parricida y Tersandro no lo es (por ejemplo usar clase Parricida)
Se quiere saber si Yocasta tiene un hijo parricida que a su vez tenga un hijo que no sea parricida
c) Plantear la pregunta en LD ALC
d) ¿cuál sería la respuesta si la información se guarda en Base de Datos (mundo cerrado)?
e) ¿cuál sería la respuesta si se utiliza LD?
Introducir ese conocimiento en Protege y comprobar la solución.
SOLUCIÓN:
a)
Mito(Yocasta)
Mito(Edipo)
Mito(Polinices)
Mito(Tersandro)
tieneHijo(Yocasta,Edipo)
tieneHijo(Edipo, Polinices)
tieneHijo(Yocasta, Polinices)
tieneHijo(Polinices, Tersandro)
b)
Parricida(Edipo)
¬Parricida(Tersandro)
c)
(9tieneHijo.(Parricida u 9tieneHijo.¬Parricida))(Yocasta)
d)
La respuesta sería “No”, ya que no se puede encontrar ningún valor que lo cumpla. Yocasta
tiene dos hijos: Edipo y Polinices. Edipo sí está en la lista de “parricidas”, pero su hijo
(Polinices) no está entre los “no parricidas”. Por su parte, Polinices no está en los
“parricidas”.
e)
En este caso la respuesta es “Sí”, puesto que al tratarse de “mundo abierto” considera las
diferentes alternativas posibles cuando no se dispone de información. En concreto, se pueden
dar dos casos respecto a Polinices:
• Polinices es “parricida”: entonces Yocasta tiene un hijo parricida (Polinices) que a su
vez tiene un hijo no parricida (Tersandro).
• Polinices “no es parricida”: entonces Yocasta tiene un hijo parricida (Edipo) que a su
vez tiene un hijo no parricida (Polinices)
En ambos casos Yocasta cumple los requisitos..
Pág. 6 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
Ejercicio 6:
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. 7 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
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. 8 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
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)
}
}
Pág. 9 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
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.
}
Pág. 10 / 11
UNIVERSIDAD REY JUAN CARLOS
CURSO 2013-2014
Hoja de Problemas Tema 8
Ontologías y Web Semántica
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)
Pág. 11 / 11
Descargar