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 rdfs:class. p2:ciudad rdfs:class. p2:capital rdf:property. p2:capital rdfs:domain p2:pais. p2:capital rdfs:range p2:ciudad. p2:madrid p2:ciudad. p2:españa p2:pais. p2:españa p2:capital p2:madrid. Pág. 1 / 9
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 rdfs:domain p2:cuadro p2:guernica rdf:property rdfs:range p2:autor p2:autor rdfs:class p2:persona p2:picasso Turtle: p2:persona rdfs:class. p2:cuadro rdfs:class. p2:picasso p2:persona. p2:autor rdf:property. p2:autor rdfs:domain p2:cuadro. p2:autor rdfs:range p2:persona. p2:guernica p2:cuadro. p2:guernica p2:autor p2:picasso. Pág. 2 / 9
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
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
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. Clasificar la taxonomía. Observar el resultado. 3. Introducir algunas instancias 4. Obtener instancias inferidas (type) 5. 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
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/> 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?c dbpprop:name?nombre. 3. Capitales de Europa que no tienen nombre, ordenadas SELECT DISTINCT?c?nombre MINUS {?c dbpprop:name?nombre. 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)?c dbpprop:name?nombre.?c dbpprop:nativename?nomnativo Pág. 6 / 9
5. Capitales de Europa y su nombre (si lo tienen), ordenadas SELECT DISTINCT?c?nombre OPTIONAL {?c dbpprop:name?nombre. 6. Capitales de Europa, su nombre (si lo tienen) y su nombre nativo (si lo tienen), ordenadas OPTIONAL {?c dbpprop:name?nombre.. OPTIONAL {?c dbpprop:nativename?nomnativo 7. Capitales de Europa y, si tienen ambos, su nombre y su nombre nativo, ordenadas OPTIONAL {?c dbpprop:name?nombre.?c dbpprop:nativename?nomnativo 8. Capitales europeas cuyo nombre contiene una e?c dbpprop:name?nombre. FILTER regex(?nombre,"e","i") 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/>?c dbpedia-owl:populationtotal?hab. FILTER (?hab >= 2000000) ORDER BY DESC(?hab) Pág. 7 / 9
10. Capitales europeas con más de 1000 km 2 (en m 2 ) (http://dbpedia.org/ontology/areatotal)?c dbpedia-owl:areatotal?area. FILTER (?area > 1000000000) 11. Capitales europeas o asiáticas con más de 1000 km 2 (en m 2 ) (http://dbpedia.org/class/yago/capitalsinasia) { UNION {?c a yago:capitalsinasia.?c dbpedia-owl:areatotal?area. FILTER (?area > 1000000000) 12. Capitales europeas con más de 1000 km 2 (en m 2 ) y capitales de Asia con más de 10 millones de habitantes {?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)?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
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 {?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