protege-owl-121017054947-phpapp02.pdf
May 1, 2018 | Author: Anonymous |
Category:
Documents
Description
Protégé - OWL Ejemplo de las Pizzas Basado en los tutoriales de Matthew Horridge (CO-ODE), Holger Knublauch (Stanford Univ.) y el de la web de PROTÃGÃhttp://ontologias.blogs.upv.es Protégé - OWL Ejemplo de las Pizzas Basado en los tutoriales de Matthew Horridge (CO-ODE), Holger Knublauch (Stanford Univ.) y el de la web de PROTÃGÃhttp://ontologias.blogs.upv.es La Web Semántica OntologÃas compartidas ayudan al intercambio de datos y significados entre servicios web (Image by Jim Hendler) 3 Agentes y ontologÃas OntologÃa: expresada en un leng. de formalización de ontologÃas independiente del contexto de uso Varios agentes pueden compartir conocimiento si están de acuerdo en la semántica de una cierta ontologÃa Una ontologÃa común define el vocabulario con el que los agentes intercambian mensajes (consultas y asertos) 4 Agentes y ontologÃas Dos agentes comparten un vocabulario no es: Compartir la misma base de conocimiento Capaces de contestar cualquier pregunta formulada con ese vocabulario Que un agente use una cierta ontologÃa garantiza la consistencia pero no la completitud respecto a las consultas y asertos utilizando la ontologÃa Revisión de OWL OWL⦠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 Revisión de OWL OWL⦠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 OWL Constructs Persona PaÃs = clase (concepto) Animal OWL Constructs Persona PaÃs = clase (concepto) Animal = individuo (instancia) Belgium Paraguay China Latvia Elvis Hai Holger Kylie S.Claus Rudolph Flipper OWL Constructs Persona PaÃs = clase (concepto) Animal = individuo (instancia) Belgium Paraguay China Latvia Elvis Hai Holger Kylie S.Claus Rudolph Flipper = propiedad (relación) vive_ en vive_en vive_en tiene_m ascota tiene_m ascota Escenario del Ejemplo del Vino Dime qué vinos deberÃa comprar para servir con cada plato del siguiente menú. Wine Agent Grocery Agent Books Agent Escenario del Ejemplo del Vino Dime qué vinos deberÃa comprar para servir con cada plato del siguiente menú. Wine Agent Grocery Agent Books Agent Yo recomiendo Chardonney o DryRiesling Escenario del Ejemplo del Vino Dime qué vinos deberÃa comprar para servir con cada plato del siguiente menú. Wine Agent Grocery Agent Books Agent Yo recomiendo Chardonney o DryRiesling Escenario del Ejemplo del Vino Dime qué vinos deberÃa comprar para servir con cada plato del siguiente menú. Wine Agent Grocery Agent Books Agent Yo recomiendo Chardonney o DryRiesling 8 Protégé Es gratis, open source Está basado en Java, es extendible Es un editor de ontologÃas y marco de trabajo de bases de conocimiento Define la estructura de una ontologÃa Define y administra instancias 9 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 Protégé Instalación Instalar Protégé 4.2 beta Instalar Graphviz 2.28.0 (http:// www.graphviz.org) Configurar Graphviz en las opciones de OWLViz de Protégé. Ejemplo: OntologÃa de Pizzas Ejemplo: OntologÃa de Pizzas Ejemplo: OntologÃa de Pizzas 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). Ejercicio 2: Añadir una anotación Vista de las clases Ejercicio 3: Crear clases Pulsar botón Classes. Pulsar botón Add: crea una nueva subclase de la clase seleccionada (en este caso :Thing) Crear, repitiendo este proceso, las clases: Pizza, PizzaTopping y PizzaBase. Clases Disjuntas OWL asume que las clases solapan Pizza PizzaTopping = individual Un individuo podrÃa ser a la vez una Pizza y un PizzaTopping a la vez Ãste no es el caso Ejercicio 4: Clases disjuntas 1. 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. Ejercicio 5: âCreate Class Hierarchyâ Crear FinaYCrujiente y PanGrueso como subclases de PizzaBase Usar la opción del menú Tools / Create Class Hierarchy Make all primitive siblings disjoint Ejercicio 6: âCreate Class Hierarchyâ Crear como subclases de PizzaTopping Añadir Topping como sufijo de todas las subclases: Suffix all in list with Ãrbol indentado por tabs para entrar una jerarq. de clases. Make all new classess disjoint Ejercicio 6: âCreate Class Hierarchyâ Make all primitive siblings disjoint Crear como subclases de PizzaTopping Añadir Topping como sufijo de todas las subclases: Suffix all in list with Ãrbol indentado por tabs para entrar una jerarq. de clases. ¿Qué tenemos? Ãrbol de clases disjuntas Esta separación se hereda hacia abajo en el árbol. Ej.: algo que es un TomateTopping no puede ser una Pizza porque su superclase, PizzaTopping, es disjunta de Pizza. ¿Qué echamos de menos? No es un modelo enriquecido semánticamente. Aparte de es un tipo de y no es un tipo de, no hay otra 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 Propiedades de OWL Object properties: enlazan individuos. Datatype properties Annotation properties Ejercicio 7: Crear propiedad del Objeto Pulsar el botón Object Properties. Pulsar el botón Add Object Property, para añadir la propiedad tieneIngrediente Ejercicio 7: Crear propiedad del Objeto Pulsar el botón Object Properties. Pulsar el botón Add Object Property, para añadir la propiedad tieneIngrediente Pulsar el botón Domains (intersection) para indicar que el dominio de esta propiedad es Pizza. Ejercicio 8: Crear sub-propiedades Crear tieneTopping y tieneBase como sub- props. de tieneIngrediente Seleccionar la propiedad tieneIngrediente en la jerarquÃa de propiedades. Pulsar el botón Add subproperty. Ejercicio 9: Crear propiedades inversas Crear props. inversas: esIngredienteDe inversa de tieneIngrediente esBaseDe inversa de tieneBase esToppingDe inversa de tieneTopping Usar el icono Add de Inverse Properties en la vista Properties Description. Tipos de Propiedades de OWL Un individuo con una propiedad funcional tendrá como mucho un individuo relacionado con él por dicha propiedad OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. 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. Tipos de Propiedades de OWL Un individuo con una propiedad inversa funcional indica que la propiedad inversa es funcional OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. Tipos de Propiedades de OWL OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. 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 dicha propiedad Ejercicio 10: Hacer transitiva la propiedad tieneIngrediente 1. 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. Tipos de Propiedades de OWL Una propiedad simétrica relaciona un individuo a con b, entonces b está relacionado con a por dicha propiedad OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. 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 propiedad OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. Tipos de Propiedades de OWL Una propiedad reflexiva relaciona un individuo consigo mismo OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. Tipos de Propiedades de OWL Una propiedad irreflexiva relaciona un individuo con otro individuo que no puede ser él mismo OWL-DL no permite que las propiedades de tipo de datos sean transitivas, simétricas o tengan inversas. OWL-DL: Propiedades de tipos de datos sólo son Allows for multiple values y Inverse Functional. Dominios y Rangos de Propiedades Propiedades enlazan individuos del Dominio con individuos del Rango. Ejercicio 11: Especificar Dominio y Rango de las propiedad tieneTopping 1. 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 Ejercicio 11: Especificar Dominio y Rango de las propiedad tieneBase 1. 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 Restricciones Restricciones de cuantificación Restricciones de cardinalidad Restricciones tieneValor Se ven y se editan usando la vista de descripción de Clases. Restricciones Crear restricción Restricciones de Cuantificación Restricciones Existenciales Restricciones Universales 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. Ejercicio 12: Añadir restricción a la clase Pizza 1. 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 4.2.Tipo de restricción (some - existenc.; only - univ.). 4.3.Filtro para la restricción. tieneBase some PizzaBase Condición NECESARIA SIGNIFICADO: Restricciones especifican superclases anónimas de la clase descrita. Ejercicio 13: Crear nuevos tipos de Pizza 1. 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â. Ejercicio 14: Crear restricción Restricción existencial (some): Una PizzaMargarita tiene al menos un MozzarellaTopping. Ejercicio 15: Crear restricción Restricción existencial (some): Una PizzaMargarita tiene al menos un TomateTopping. Ejercicio 16: Crear clase PizzaAmericana 1. 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. Ejercicio 16: Crear clase PizzaAmericana y PizzaSoho 1. 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.
Comments
Copyright © 2025 UPDOCS Inc.