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 / 5
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 / 5
Ejercicio 3: Utilizando la herramienta Protege 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 Animal Vaca Animal Oveja Animal 3. Crear las clase ProductoAnimal y las subclases Leche y Huevos 4. Definir la propiedad come con dominio Animal y rango Animal Planta 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 come.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 come. Animal (o ( come.animal) ) 8. Expresar: Los tigres comen vacas Tigre come.vaca 9. INFERENCIA: clasificar la ontología. Observar qué se deduce e intentar explicar porqué. Carnívoro 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 Carnívoro por 6 y 8 10. INFERENCIA: computar instancias. Observar qué se deduce e intentar explicar porqué. t1 y v1 Animal por subsunción t1 Carnívoro por 5 y 6 11. Expresar: La vaca es animal vegetariano Vaca Animal Vegetariano (o simplemente añadir Vaca Vegetariano) Pág. 3 / 5
12. Expresar: Las vacas locas son vacas que comen ovejas VacaLoca Vaca come.oveja 13. INFERENCIA: comprobar consistencia. Observar qué se deduce e intentar explicar porqué. VacaLoca es inconsistente porque es Vaca come.oveja come. Animal 14. Quitar Vegetariano de Vaca (11). Volver a comprobar la consistencia y explicar. VacaLoca ya no es inconsistente. 15. Volver a dejar Vaca Animal Vegetariano y modificar Vegetariano (7): Vegetariano come.planta (en vez de Animal) 16. INFERENCIA: comprobar consistencia. Observar qué se deduce e intentar explicar porqué. 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 17. Añadir que Animal es disjunto de Planta. Animal Planta Esto se puede hacer añadiendo el axioma o añadiendo la clase en disjoints 18. INFERENCIA: 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. Ejercicio 4: 1. Introducir en Protege el ejemplo de la familia del ejercicio 1 del tema Lógica de Descripciones 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, decir que hombre tiene al menos un hijo 6. Realizar consultas SPARQL Pág. 4 / 5
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) b) Mito(Yocasta) Mito(Edipo) Mito(Polinices) Mito(Tersandro) tienehijo(yocasta,edipo) tienehijo(edipo, Polinices) tienehijo(yocasta, Polinices) tienehijo(polinices, Tersandro) Parricida(Edipo) Parricida(Tersandro) c) ( tienehijo.(parricida tienehijo. 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. 5 / 5