Diseño de Ontologías: Protégé OWL - Ejemplo de las Pizzas

19,470 views

Published on

Práctica de introducción a Protégé OWL 4.2 beta para la asignatura Diseño de ontologías, en el master de gestión de la información de la UPV

Published in: Education
1 Comment
9 Likes
Statistics
Notes
  • Me parecio benisimo tu aporte, y me sirvió demaciado, muchas gracias amigo
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
19,470
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
719
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Diseño de Ontologías: Protégé OWL - Ejemplo de las Pizzas

  1. 1. Protégé - OWL Ejemplo de las Pizzas Basado en los tutoriales de Matthew Horridge (CO-ODE), Holger Knublauch (Stanford Univ.)http://ontologias.blogs.upv.es y el de la web de PROTÉGÉ
  2. 2. Protégé - OWL Ejemplo de las Pizzas Basado en los tutoriales de Matthew Horridge (CO-ODE), Holger Knublauch (Stanford Univ.)http://ontologias.blogs.upv.es y el de la web de PROTÉGÉ
  3. 3. La Web SemánticaOntologías compartidas ayudan al intercambio de datos y significados entre servicios web (Image by Jim Hendler)
  4. 4. Agentes y ontologíasOntología: expresada en un leng. deformalización de ontologíasindependiente del contexto de usoVarios agentes pueden compartirconocimiento si están de acuerdo en lasemántica de una cierta ontologíaUna ontología común define el vocabulariocon el que los agentes intercambianmensajes (consultas y asertos) 3
  5. 5. Agentes y ontologíasDos agentes comparten un vocabulario no es: Compartir la misma base de conocimiento Capaces de contestar cualquier pregunta formulada con ese vocabularioQue un agente use una cierta ontologíagarantiza la consistencia pero no lacompletitud respecto a las consultas yasertos utilizando la ontología 4
  6. 6. Revisión de OWLOWL… Web Ontology Language es un estándar W3C viene en 3 sabores (lite, DL y full) – usamos OWL DL (Description Logic) DL = decidable fragmento decidible de la Lógica de Primer Orden se encuentra generalmente en sintaxis RDF/XML es por lo tanto laborioso escribirlo a mano Por eso existen herramientas para ayudarnos
  7. 7. Revisión de OWLOWL… Web Ontology Language es un estándar W3C viene en 3 sabores (lite, DL y full) – usamos OWL DL (Description Logic) DL = decidable fragmento decidible de la Lógica de Primer Orden se encuentra generalmente en sintaxis RDF/XML es por lo tanto laborioso escribirlo a mano Por eso existen herramientas para ayudarnos
  8. 8. OWL ConstructsPersona País = clase (concepto) Animal
  9. 9. OWL ConstructsPersona País Elvis Belgium Holger Paraguay Kylie = clase (concepto) Latvia S.Claus China Hai = individuo (instancia) Flipper Animal Rudolph
  10. 10. OWL Constructs enPersona vive_ País Elvis Belgium Holger vive_en Paraguay Kylie = clase (concepto) Latvia S.Claus China Hai = propiedad (relación) vive_en = individuo (instancia) tie ne _m tie asc e_n ot Flipper a ma sc ot a Animal Rudolph
  11. 11. Escenario del Ejemplo del Vino Dime qué vinos debería comprar para servir con cada plato del siguiente menú. Books AgentWine Agent Grocery Agent
  12. 12. Escenario del Ejemplo del Vino Dime qué vinos debería comprar para servir con cada plato del siguiente menú. Books AgentWine Agent Yo recomiendo Chardonney o DryRiesling Grocery Agent
  13. 13. Escenario del Ejemplo del Vino Dime qué vinos debería comprar para servir con cada plato del siguiente menú. Books AgentWine Agent Yo recomiendo Chardonney o DryRiesling Grocery Agent
  14. 14. Escenario del Ejemplo del Vino Dime qué vinos debería comprar para servir con cada plato del siguiente menú. Books AgentWine Agent Yo recomiendo Chardonney o DryRiesling Grocery Agent
  15. 15. ProtégéEs gratis, open sourceEstá basado en Java, es extendibleEs un editor de ontologías y marcode trabajo de bases de conocimientoDefine la estructura de unaontologíaDefine y administra instancias 8
  16. 16. ProtégéIntegrado con GUI y plugins: OWLWizard – Plugin para guiar paso a paso en la construcción de clases, propiedades, etc. OWLViz — Plugin para el despliegue gráfico de las jerarquías de las clases ezOWL – Plugin para el despliegue gráfico de las jerarquías de las clases, las propiedades y restricciones de cada clase JADEBean Generator — Plugin para producir clases Java a partir de la ontología, para que JADE puede utilizar y entender la ontología 9
  17. 17. InstalaciónInstalar Protégé 4.2 betaInstalar Graphviz 2.28.0 (http://www.graphviz.org)Configurar Graphviz en lasopciones de OWLViz de Protégé.
  18. 18. Ejemplo:Ontología de Pizzas
  19. 19. Ejemplo:Ontología de Pizzas
  20. 20. Ejemplo:Ontología de Pizzas
  21. 21. Ejercicio 1: Crear una nueva ontología Iniciar Protégé Ontology IRI URI (Uniform Resource Identifiers): estándar para identificar recursos (documentos, personas, cosas abstractas) y nombres de relaciones. IRI (Internationalized Resource Identifiers): URIs + caracteres alfabéticos no-latinos (Unicode en lugar de ASCII).Menú “File / Save as...” permite guardar en la ontología que se va creando, usando diversos formatos (OWL/XML).
  22. 22. Ejercicio 2: Añadir una anotación
  23. 23. Vista de las clases
  24. 24. Ejercicio 3: Crear clasesPulsar botón Classes.Pulsar botón Add:crea una nuevasubclase de la claseseleccionada (en estecaso :Thing)Crear, repitiendo esteproceso, las clases:Pizza, PizzaToppingy PizzaBase.
  25. 25. Clases DisjuntasOWL asume que las clases solapan Pizza PizzaTopping = individualUn individuo podría ser a la vez una Pizza y unPizzaTopping a la vezÉste no es el caso
  26. 26. Ejercicio 4: Clases disjuntas1. Seleccionar la clase Pizza in la jerarquía de clases.2. Hacer disjuntas las tres clases usando el botón Clases Disjuntas en la vista de descripción de clases.
  27. 27. Ejercicio 5: ‘Create Class Hierarchy’CrearFinaYCrujiente yPanGrueso comosubclases dePizzaBaseUsar la opción delmenú Tools /Create ClassHierarchy Make all primitive siblings disjoint
  28. 28. Ejercicio 6: ‘Create Class Hierarchy’Crear comosubclases dePizzaToppingAñadir Toppingcomo sufijo de todaslas subclases: Suffixall in list withÁrbol indentado portabs para entrar unajerarq. de clases. Make all new classess disjoint
  29. 29. Ejercicio 6: ‘Create Class Hierarchy’Crear como subclasesde PizzaToppingAñadir Toppingcomo sufijo de todaslas subclases: Suffixall in list withÁrbol indentado portabs para entrar unajerarq. de clases. Make all primitive siblings disjoint
  30. 30. ¿Qué tenemos?Árbol de clases disjuntasEsta separación se hereda hacia abajoen el árbol. Ej.: algo que es unTomateTopping no puede ser unaPizza porque su superclase,PizzaTopping, es disjunta de Pizza.
  31. 31. ¿Qué echamos de menos?No es un modelo enriquecido semánticamente.Aparte de es un tipo de y no es un tipo de, no hayotra información de interés.Queremos decir más cosas sobre los individuos Pizza,tal como su relación con otros individuos.Esto se puede hacer con propiedades. Pizza PizzaTopping = individual
  32. 32. Propiedades de OWLObject properties: enlazanindividuos.Datatype propertiesAnnotation properties
  33. 33. Ejercicio 7: Crearpropiedad del ObjetoPulsar el botón ObjectProperties.Pulsar el botón AddObject Property, paraañadir la propiedadtieneIngrediente
  34. 34. Ejercicio 7: Crearpropiedad del ObjetoPulsar el botón ObjectProperties.Pulsar el botón AddObject Property, paraañadir la propiedadtieneIngredientePulsar el botón Domains(intersection) paraindicar que el dominio deesta propiedad es Pizza.
  35. 35. Ejercicio 8: Crear sub-propiedadesCrear tieneTopping ytieneBase como sub-props. detieneIngredienteSeleccionar la propiedadtieneIngrediente en lajerarquía depropiedades.Pulsar el botón Addsubproperty.
  36. 36. Ejercicio 9: Crearpropiedades inversasCrear props. inversas: esIngredienteDe inversa de tieneIngrediente esBaseDe inversa de tieneBase esToppingDe inversa de tieneToppingUsar el icono Add de InverseProperties en la vistaProperties Description.
  37. 37. Tipos de Propiedades de OWL Un individuo con una propiedad funcional tendrá como mucho un individuo relacionado con él por dicha propiedadOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  38. 38. Ejercicio 10: Hacer funcional la propiedad tieneBase 1. Seleccionar la propiedad tieneBase en la jerarquía de propiedades en Object Properties. 2. Marcar el tick Functional en el Property Characteristics View.
  39. 39. Tipos de Propiedades de OWL Un individuo con una propiedad inversa funcional indica que la propiedad inversa es funcionalOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  40. 40. Tipos de Propiedades de OWL Una propiedad transitiva que relaciona un individuo a con b, y esa misma propiedad relaciona b con c, se infiere que a y c están relacionados por dichaOWL-DL no permite que las propiedades de tipo de propiedaddatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  41. 41. Ejercicio 10: Hacer transitiva la propiedad tieneIngrediente1. Seleccionar la propiedad tieneIngrediente en la jerarquía de propiedades en Object Properties.2. Marcar el tick Transitive en el Property Characteristics View.3. Seleccionar la propiedad esIngredienteDe, inversa de tieneIngrediente, marcarla como transitiva.
  42. 42. Tipos de Propiedades de OWL Una propiedad simétrica relaciona un individuo a con b, entonces b está relacionado con a por dicha propiedadOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  43. 43. Tipos de Propiedades de OWL Una propiedad asimétrica relaciona un individuo a con b, entonces b no puede estar relacionado con a por dicha propiedadOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  44. 44. Tipos de Propiedades de OWL Una propiedad reflexiva relaciona un individuo consigo mismoOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  45. 45. Tipos de Propiedades de OWL Una propiedad irreflexiva relaciona un individuo con otro individuo que no puede ser él mismoOWL-DL no permite que las propiedades de tipo dedatos sean transitivas, simétricas o tengan inversas.OWL-DL: Propiedades de tipos de datos sólo sonAllows for multiple values y Inverse Functional.
  46. 46. Dominios y Rangos de Propiedades Propiedades enlazan individuos del Dominio con individuos del Rango.
  47. 47. Ejercicio 11: Especificar Dominio y Rango de las propiedad tieneTopping1. Seleccionar la propiedad tieneTopping en la jerarquía de propiedades en Object Properties.2. Usar Add al lado de Domains (intersection) para añadir Pizza.3. Usar Add al lado de Ranges (intersection) para añadir PizzaTopping.4. Añadir a esToppingDe como Dominio PizzaTopping y como Rango Pizza
  48. 48. Ejercicio 11: Especificar Dominio y Rango de las propiedad tieneBase1. Seleccionar la propiedad tieneBase en la jerarquía de propiedades en Object Properties.2. Usar Add al lado de Domains (intersection) para añadir Pizza.3. Usar Add al lado de Ranges (intersection) para añadir PizzaBase.4. Añadir a esBaseDe como Dominio PizzaBase y como Rango Pizza
  49. 49. RestriccionesRestricciones de cuantificaciónRestricciones de cardinalidadRestricciones tieneValor
  50. 50. Restricciones Crear restricciónSe ven y se editanusando la vista dedescripción deClases.
  51. 51. Restricciones de Cuantificación Restricciones Existenciales Restricciones Universales
  52. 52. Restricciones de Cuantificación Restricciones Existenciales describen clases de individuos que participan en al menos una relación en una propiedad específica para miembros de una clase determinada. Restricciones Universales describen clases de individuos que para una determinada propiedad sólo tienen relaciones con miembros de una clase particular.
  53. 53. Ejercicio 12: Añadir restricción a la clase Pizza1. Seleccionar la clase Pizza en la jerarquía de clases.2. Pulsar Add de SubClass Of de la vista de descripción de clases.3. Pulsar el botón Class expression editor.4. Introducir la restricción (usar TAB para autocompletar): Una Pizza DEBE tener una PizzaBase 4.1. Propiedad tieneBase 4.2.Tipo de restricción (some - existenc.; only - univ.). some 4.3.Filtro para la restricción. PizzaBase Condición NECESARIA SIGNIFICADO: Restricciones especifican superclases anónimas de la clase descrita.
  54. 54. Ejercicio 13: Crearnuevos tipos de Pizza1. Crear una subclase de Pizza llamada PizzaConNombre.2. Crear una subclase de PizzaConNombre llamada PizzaMargarita.3. Añadir un comentario a la clase PizzaMargarita usando la vista Annotations: “Una pizza que sólo tiene Mozzarella y Tomate”.
  55. 55. Ejercicio 14: Crear restricción Restricción existencial (some): Una PizzaMargarita tiene al menos un MozzarellaTopping.
  56. 56. Ejercicio 15: Crear restricción Restricción existencial (some): Una PizzaMargarita tiene al menos un TomateTopping.
  57. 57. Ejercicio 16: Crearclase PizzaAmericana1. Crear un duplicado de la PizzaMargarita que será la PizzaAmericana.2. Añadir a la PizzaAmericana la restricción existencial de que tiene al menos un topping de pepperoni.
  58. 58. Ejercicio 16: Crear clasePizzaAmericana y PizzaSoho1. Crear un duplicado de la PizzaAmericana que será la PizzaAmericanaPicante.2. Añadir a la PizzaAmericanaPicante la restricción existencial de que tiene al menos un topping de pimiento jalapeño.3. Crear un duplicado de la PizzaMargarita que será la PizzaSoho.4. Añadir a la PizzaSoho las restricciones existenciales de que tiene al menos un topping de oliva y uno de parmesano.5. Usar la opción de menú Edit / Make primitive siblings disjoint, para hacer disjuntos todos los nuevos tipos de pizza.

×