0% encontró este documento útil (0 votos)
135 vistas58 páginas

Protege Owl 121017054947 Phpapp02 PDF

El documento presenta una introducción a la ontología de pizzas creada en Protégé. Explica cómo se crearon las clases Pizza, PizzaTopping y PizzaBase y cómo se organizaron en una jerarquía de clases disjuntas. También describe la creación de propiedades objetivas como tieneIngrediente y sus subpropiedades tieneTopping y tieneBase para definir las relaciones entre pizzas e ingredientes.

Cargado por

Carlos Sanchez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
135 vistas58 páginas

Protege Owl 121017054947 Phpapp02 PDF

El documento presenta una introducción a la ontología de pizzas creada en Protégé. Explica cómo se crearon las clases Pizza, PizzaTopping y PizzaBase y cómo se organizaron en una jerarquía de clases disjuntas. También describe la creación de propiedades objetivas como tieneIngrediente y sus subpropiedades tieneTopping y tieneBase para definir las relaciones entre pizzas e ingredientes.

Cargado por

Carlos Sanchez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 58

Protg - OWL

Ejemplo de las Pizzas

http://ontologias.blogs.upv.es

Basado en los tutoriales de


Matthew Horridge (CO-ODE),
Holger Knublauch (Stanford Univ.)
y el de la web de PROTG

Protg - OWL
Ejemplo de las Pizzas

http://ontologias.blogs.upv.es

Basado en los tutoriales de


Matthew Horridge (CO-ODE),
Holger Knublauch (Stanford Univ.)
y el de la web de PROTG

La Web Semntica
Ontologas compartidas ayudan al intercambio
de datos y significados entre servicios web

(Image by Jim Hendler)

Agentes y
ontologas
Ontologa: expresada en un leng. de
formalizacin de ontologas
independiente del contexto de uso
Varios agentes pueden compartir
conocimiento si estn de acuerdo en la
semntica de una cierta ontologa
Una ontologa comn define el vocabulario
con el que los agentes intercambian
mensajes (consultas y asertos)
3

Agentes y
ontologas
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 ontologa
garantiza la consistencia pero no la
completitud respecto a las consultas y
asertos utilizando la ontologa

Revisin de OWL
OWL
Web Ontology Language
es un estndar W3C
viene en 3 sabores (lite, DL y full)
usamos OWL DL (Description Logic)
DL = decidable fragmento decidible de la Lgica de Primer Orden

se encuentra generalmente en sintaxis RDF/XML


es por lo tanto laborioso escribirlo a mano
Por eso existen herramientas para ayudarnos

Revisin de OWL
OWL
Web Ontology Language
es un estndar W3C
viene en 3 sabores (lite, DL y full)
usamos OWL DL (Description Logic)
DL = decidable fragmento decidible de la Lgica 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

Pas

= clase (concepto)

Animal

OWL Constructs
Persona

Pas
Elvis

Belgium

Holger

Paraguay
Kylie

= clase (concepto)

Latvia

S.Claus

China
Hai

= individuo (instancia)
Flipper

Animal
Rudolph

OWL Constructs
en
vive_

Persona

Pas

Elvis

Belgium

vive_en

Holger

Paraguay

Kylie

= clase (concepto)

Latvia

S.Claus

China
Hai

vive_en

n
tie
a
ot
sc
ma
e_

a
ot
asc
_m

ne

tie

= individuo (instancia)

Flipper

Animal
Rudolph

= propiedad (relacin)

Escenario del
Ejemplo del Vino
Dime qu vinos debera
comprar para servir con cada
plato del siguiente men.

Books Agent

Wine Agent

Grocery Agent

Escenario del
Ejemplo del Vino
Dime qu vinos debera
comprar para servir con cada
plato del siguiente men.

Books Agent

Wine Agent
Yo recomiendo
Chardonney o
DryRiesling

Grocery Agent

Escenario del
Ejemplo del Vino
Dime qu vinos debera
comprar para servir con cada
plato del siguiente men.

Books Agent

Wine Agent
Yo recomiendo
Chardonney o
DryRiesling

Grocery Agent

Escenario del
Ejemplo del Vino
Dime qu vinos debera
comprar para servir con cada
plato del siguiente men.

Books Agent

Wine Agent
Yo recomiendo
Chardonney o
DryRiesling

Grocery Agent

Protg
Es gratis, open source
Est basado en Java, es extendible
Es un editor de ontologas y marco
de trabajo de bases de conocimiento
Define la estructura de una
ontologa
Define y administra instancias
8

Protg
Integrado con GUI y plugins:
OWLWizard Plugin para guiar paso a paso
en la construccin de clases, propiedades, etc.
OWLViz Plugin para el despliegue grfico de
las jerarquas de las clases
ezOWL Plugin para el despliegue grfico de
las jerarquas de las clases, las propiedades y
restricciones de cada clase
JADEBean Generator Plugin para producir
clases Java a partir de la ontologa, para que
JADE puede utilizar y entender la ontologa
9

Instalacin
Instalar Protg 4.2 beta
Instalar Graphviz 2.28.0 (http://
www.graphviz.org)
Configurar Graphviz en las
opciones de OWLViz de Protg.

Ejemplo:
Ontologa de Pizzas

Ejemplo:
Ontologa de Pizzas

Ejemplo:
Ontologa de Pizzas

Ejercicio 1: Crear
una nueva ontologa
Iniciar Protg
Ontology IRI
URI (Uniform Resource
Identifiers): estndar para
identificar recursos
(documentos, personas,
cosas abstractas) y
nombres de relaciones.
IRI (Internationalized
Resource Identifiers):
URIs + caracteres
alfabticos no-latinos
(Unicode en lugar de
ASCII).

Men File / Save as... permite guardar en la ontologa que se va creando,


usando diversos formatos (OWL/XML).

Ejercicio 2: Aadir
una anotacin

Vista de las clases

Ejercicio 3:
Crear clases

Pulsar botn Classes.


Pulsar botn 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 podra 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
jerarqua de clases.
2. Hacer disjuntas las tres clases
usando el botn Clases Disjuntas
en la vista de descripcin de
clases.

Ejercicio 5: Create
Class Hierarchy
Crear
FinaYCrujiente y
PanGrueso como
subclases de
PizzaBase
Usar la opcin del
men Tools /
Create Class
Hierarchy
Make all primitive siblings disjoint

Ejercicio 6: Create
Class Hierarchy
Crear como
subclases de
PizzaTopping

Aadir 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
Crear como subclases
de PizzaTopping
Aadir Topping
como sufijo de todas
las subclases: Suffix
all in list with
rbol indentado por
tabs para entrar una
jerarq. de clases.
Make all primitive siblings disjoint

Qu tenemos?
rbol de clases disjuntas
Esta separacin 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 semnticamente.
Aparte de es un tipo de y no es un tipo de, no hay
otra informacin de inters.
Queremos decir ms cosas sobre los individuos Pizza,
tal como su relacin 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 botn Object
Properties.
Pulsar el botn Add
Object Property, para
aadir la propiedad
tieneIngrediente

Ejercicio 7: Crear
propiedad del Objeto
Pulsar el botn Object
Properties.
Pulsar el botn Add
Object Property, para
aadir la propiedad
tieneIngrediente
Pulsar el botn Domains
(intersection) para
indicar que el dominio de
esta propiedad es Pizza.

Ejercicio 8: Crear
sub-propiedades
Crear tieneTopping y
tieneBase como subprops. de
tieneIngrediente
Seleccionar la propiedad
tieneIngrediente en la
jerarqua de
propiedades.
Pulsar el botn 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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo son
Allows for multiple values y Inverse Functional.

Ejercicio 10: Hacer funcional


la propiedad tieneBase
1. Seleccionar la propiedad tieneBase
en la jerarqua 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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo son
Allows for multiple values y Inverse Functional.

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 estn
relacionados por dicha
OWL-DL no permite que las propiedades de tipo de
propiedad
datos sean transitivas, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo son
Allows for multiple values y Inverse Functional.

Ejercicio 10: Hacer


transitiva la propiedad
tieneIngrediente
1. Seleccionar la propiedad tieneIngrediente
en la jerarqua 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 simtrica
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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo son
Allows for multiple values y Inverse Functional.

Tipos de
Propiedades de OWL
Una propiedad asimtrica
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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo 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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo 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, simtricas o tengan inversas.
OWL-DL: Propiedades de tipos de datos slo 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 jerarqua de propiedades en
Object Properties.
2. Usar Add al lado de Domains
(intersection) para aadir Pizza.
3. Usar Add al lado de Ranges
(intersection) para aadir
PizzaTopping.
4. Aadir 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 jerarqua de propiedades en Object
Properties.
2. Usar Add al lado de Domains
(intersection) para aadir Pizza.
3. Usar Add al lado de Ranges
(intersection) para aadir PizzaBase.
4. Aadir a esBaseDe como Dominio
PizzaBase y como Rango Pizza

Restricciones
Restricciones de cuantificacin
Restricciones de cardinalidad
Restricciones tieneValor

Restricciones
Crear restriccin

Se ven y se editan
usando la vista de
descripcin de
Clases.

Restricciones de
Cuantificacin
Restricciones Existenciales
Restricciones Universales

Restricciones de
Cuantificacin
Restricciones Existenciales
describen clases de individuos que participan en al
menos una relacin en una propiedad especfica para
miembros de una clase determinada.

Restricciones Universales
describen clases de individuos que para una determinada
propiedad slo tienen relaciones con miembros de una
clase particular.

Ejercicio 12: Aadir


restriccin a la clase Pizza
1. Seleccionar la clase Pizza en la jerarqua de clases.
2. Pulsar Add de SubClass Of de la vista de descripcin de clases.
3. Pulsar el botn Class expression editor.
4. Introducir la restriccin (usar TAB para autocompletar): Una
Pizza DEBE tener una PizzaBase
4.1. Propiedad

tieneBase

4.2.Tipo de restriccin (some - existenc.; only - univ.).


4.3.Filtro para la restriccin.

PizzaBase

Condicin NECESARIA
SIGNIFICADO: Restricciones especifican
superclases annimas de la clase descrita.

some

Ejercicio 13: Crear


nuevos tipos de Pizza
1. Crear una subclase de Pizza llamada
PizzaConNombre.
2. Crear una subclase de PizzaConNombre
llamada PizzaMargarita.
3. Aadir un comentario a la clase
PizzaMargarita usando la vista
Annotations: Una pizza que slo tiene
Mozzarella y Tomate.

Ejercicio 14: Crear


restriccin
Restriccin existencial (some):
Una PizzaMargarita tiene al
menos un MozzarellaTopping.

Ejercicio 15: Crear


restriccin
Restriccin 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. Aadir a la PizzaAmericana la
restriccin 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.

Aadir a la PizzaAmericanaPicante la restriccin


existencial de que tiene al menos un topping de pimiento
jalapeo.

3.

Crear un duplicado de la PizzaMargarita que ser la


PizzaSoho.

4.

Aadir a la PizzaSoho las restricciones existenciales de que


tiene al menos un topping de oliva y uno de parmesano.

5.

Usar la opcin de men Edit / Make primitive siblings


disjoint, para hacer disjuntos todos los nuevos tipos de
pizza.

También podría gustarte