Está en la página 1de 17

1.

Objetivo
La presente prctica tiene como objetivo analizar las principales funcionalidades de
Protg y familiarizarse con su entorno de desarrollo. En concreto, en esta primera prctica
se analizarn las siguientes caractersticas de Protg:
-

Visin general de la herramienta


Descripcin de las diferentes ventanas y opciones
Desarrollo de un ejemplo sencillo

En las siguientes sesiones de prcticas se estudiarn el resto de funcionalidades de


Protg, prestando especial atencin al desarrollo orientado a objetos, con la definicin de
clases, subclases e instancias, la utilizacin de los mecanismos de herencia y el lenguaje de
consultas.

2. Protg
Protg es una herramienta para el desarrollo de Ontologas y Sistemas basados en el
conocimiento creada en la Universidad de Stanford. Protg est desarrollada en JAVA y
puede funcionar perfectamente bajo diferentes sistemas operativos.
Las aplicaciones desarrolladas con Protg son empleadas en resolucin de problemas y
toma de decisiones en dominios particulares. La herramienta Protg emplea una interfaz
de usuario que facilita la creacin de una estructura de frames con clases, slots e
instancias de una forma integrada.
2.1. Una vista rpida a Protg.
Al iniciar Protg se abre una ventana de aplicacin donde se selecciona el proyecto de
ontologa a construir, bien sea uno nuevo o uno ya grabado anteriormente (Figura 1).
Existen distintos tipos de proyectos al crear uno nuevo, por defecto optaremos por la
opcin de standard text files, la cual guarda el proyecto en un fichero de texto con
extensin pprj. Pulsando el botn de aceptar se pasara a la ventana principal de
Protg (Figura 2).

Figura 1. Ventana de seleccin de proyecto

Una vez abierto un nuevo proyecto aparece la ventana principal de Protg donde se
puede empezar ya a desarrollar la nueva ontologa

Figura 2. Ventana principal de Protg

3. Creacin de proyectos.
Un proyecto en Protg consiste en el desarrollo de una ontologa o estructura de
conocimiento. Los elementos que se pueden ir creando son fundamentalmente clases,
slots, formularios, instancias y consultas, aunque la herramienta es modular y permite
adicionar ms componentes de una forma sencilla. Cada uno de estos elementos dispone
de una etiqueta en la ventana principal de la herramienta, seleccionando cada una de ellas
podemos elegir el tipo de elemento concreto sobre el que se va a trabajar.

Para realizar un proyecto nuevo se puede seleccionar la opcin New del men
Project, para abrir uno ya existente se seleccionar la opcin Open del mismo
proyecto, la cual nos abrir una tpica ventana de seleccin de ficheros. Una vez iniciado
un proyecto se puede pasar ya a crear o modificar elementos del mismo como clases,
slots o dems.
Una vez realizados los cambios necesarios, o bien, de forma peridica se puede
grabar el proyecto abierto seleccionando la opcin Save del men Project.

4. Creacin de clases.
Supongamos que tenemos que representar informacin sobre documentos
adquiridos, donde distinguimos dos categoras: libro o actas. Queremos por tanto crear
una clase "Documento" y dos categoras de documento "Libro" y "Acta" como subclases
de "Documento".
1.- Seleccionamos la etiqueta clases, (por defecto ya est seleccionada)
2.- En la parte de la izquierda de la ventana seleccionar la clase Thing de la cual
colgarn las clases a crear.
3.- Pulsar el botn C que aparece en la parte inmediatamente superior de la clase.
Este botn crear una subclase sobre la clase que estemos situados.
4.- Cambiar el nombre que por defecto se ha dado a la clase por el de
Documento.
5.- Situarse sobre la clase Documento en la parte izquierda de la ventana y
repetir la operacin para crear las subclases Libro y Acta
En la parte izquierda de la ventana veremos la nueva jerarqua de clases con el resultado
de las modificaciones que hemos realizado (ver figura 3).

Figura 3. Estructura de clases creada.

5. Creacin de slots.
En general, los slots de clases superiores deben ser ms generales y los slots que definen
objetos de clases inferiores deben ser ms especficos de la clase a la que estn
describiendo. Normalmente, a medida que descendemos en el rbol de jerarqua de clases
nos encontraremos con slots que objetos anteriores no tienen. Los slots compartidos por
todas las instancias de una clase deben definirse en el objeto clase. De este modo, todas
las instancias de esta clase heredarn automticamente los slots de la clase.

Figura 4. Ejemplo de creacin de slots.

Un documento puede caracterizarse por ejemplo por un ttulo, autor, ao de edicin,


fecha de adquisicin y un modo de adquisicin.
1.- Creacin de un slot sobre una clase concreta.
1.1.- Seleccionar la clase sobre la que se van a crear los slots: Por ejemplo
Documento
1.1.- En la parte derecha de la ventana situarse sobre el elemento
Template Slots y pulsar sobre el botn C. Dicho botn crear un nuevo
slot en la clase.
1.2.- Se abrir una ventana como la de la figura 5 donde se indican las
caractersticas del slot a crear
1.3.- Indicar su nombre y tipo de datos. Por ejemplo, el slot Titulo tiene
un tipo de datos String.
2.- Repetir los mismos pasos para introducir el resto de slots.

Figura 5. Ventana de edicin de un slot.

Un libro se caracteriza por un modo de adquisicin de compra por defecto, por tanto ser
necesario modificar las caractersticas de este slot a nivel de la clase Libro.
1.- Seleccionar la clase Libro.
2.- Abrir el editor de slots: (existen dos formas de hacerlo)
5.1.- Situarse sobre el slot deseado y pulsar dos veces sobre el slot
activado (Si pregunta a que nivel se desea realizar el cambio indicar sobre el
nivel de la clase).
5.2.- Seleccionar "V" desde el men de Template Slot.
6.- Introduce "compra" en el valor por defecto del slot "Modo_adquisicin". (tipo
TEXTO).
7.- Cerrar la ventana y salvar.
Todas las instancias de libros que se creen posteriormente tendrn un valor "compra" en
el slot "Modo_adquisicin".

6. Creacin de instancias.
Si adquirimos 5 libros, tendremos que construir 5 instancias de la clase "Libro".
1.- Seleccionar la etiqueta Instances, situarse sobre la clase "Libro" en la parte
izquierda de la ventana.
2. Sobre la lista Direct Instances seleccionar la opcin C para crear una
nueva instancia.
2.- Los valores de los distintos slots en dicha instancia pueden ponerse en la parte
derecha de la ventana.
3.- Repetir los pasos anteriores para los otros 4 libros.
En la lista Direct Instances veremos el resultado obtenido de las diferentes instancias
existentes (ver figura 6).

Figura 6. Ventana de creacin de instancias.

7. Utilizacin de formularios.
Los formularios son la utilidad que ofrece Protg para la introduccin de informacin
en las diferentes instancias de nuestra estructura de conocimiento. Cada clase creada
tendr su propio formulario, el cual es creado inicialmente de forma automtica por
Protg pero que puede ser fcilmente modificado.
Para ver los formularios se debe seleccionar la etiqueta Forms tal y como se ve en la
figura 7. En la parte izquierda de la ventana se puede seleccionar la clase de la que se
quiere observar su formulario, mientras que en la parte derecha aparece la disposicin de
los slots que componen la clase. Los objetos de cada slot pueden ser desplazados y
modificados sobre dicha ventana.
La opcin Form Browser Key permite indicar como quieren mostrarse las instancias de
una clase concreta, bien por medio de su identificador interno, o bien por medio del valor
asignado a algn slot concreto. Si se modifica esta opcin, el resultado puede verse al
volver a la seccin de Instances donde ahora las instancias de una clase son nombradas
segn el valor del campo seleccionado.
La opcin Selected Widget Type permite cambiar el tipo de objeto que est asociado a
un slot para introducir su valor en el formulario. Por defecto, Protg asigna un
determinado objeto, por ejemplo un cuadro simple de texto, pero pueden ser posibles
otros ms en funcin del tipo de slot. Para modificarlo no hay ms que seleccionar el slot
correspondiente y despus seleccionar una de las opciones que nos ofrece Protg en
dicha opcin de Selected Widget Type.

Figura 7. Ventana de formularios.

EJERCICIOS
1. Implementar el ejemplo completo que se ha ido comentando a lo largo de la
prctica.
DOCUMENTO LIBRO 5 instancias (con los slots correspondientes)
ACTA 4 instancias
PERSONA USUARIO
- dni
- nombre
- direccin
- nmero carn
- fecha_caducidad_carn
TRABAJADOR
- dni
- nombre
- direccin
- categora profesional {director, investigador, auxiliar}
-

Crear las clases necesarias.


Crear los slots, aadiendo algunos nuevos con diferentes tipos de datos.
Crear las instancias.
Modificar los formularios de cada clase, mirar de seleccionar nuevos tipos de
objetos asociados a los slots que nos permita la herramienta.
Introducir valores a los slots al nivel de la jerarqua que se estime apropiado.

8. Funcionalidades de Protg.
8.1. Sistema de Objetos.
Los objetos son el elemento constructivo principal de las bases de conocimiento en
Protg. A travs de los objetos se pueden representar tanto elementos tangibles como
entidades abstractas. Los objetos se pueden relacionar entre s para capturar las
interacciones y relaciones que existen entre las cosas o conceptos que representan.
En este apartado se exponen tres de las funcionalidades ms importantes de los objetos:
- cmo utilizar objetos para representar cosas o conceptos del mundo real
- cmo relacionar objetos en una base de conocimientos
- las relaciones entre objetos determinan la herencia de propiedades de objeto
a objeto.
OBJETOS COMO CLASES O INSTANCIAS
El mundo se puede ver como una coleccin de objetos que tienen ciertas caractersticas,
partes, habilidades o relaciones con otros objetos. Un automvil puede ser un objeto con
propiedades como el color, precio o velocidad mxima; tienen componentes como
puertas, neumticos o un motor y habilidades como moverse, girar o pararse. Adems un
automvil puede interaccionar con la carretera a travs de los neumticos. Un objeto
puede ser por tanto un objeto fsico como un automvil o un grupo o clase, como una
"red de automviles" o "coches de deporte". Tambin puede ser un concepto como "fallo
del equipo".
En Protg, los objetos se definen como clases o instancias . Las clases siempre
representan objetos ms generales, un grupo o una coleccin de objetos. Una instancia es
un objeto especfico; puede ser un item particular o un evento.
Supongamos que tenemos un conjunto de vehculos que queremos clasificar en COCHES
y MOTOS. Adems tenemos informacin de 2 coches y una moto. Para ello crearemos
una clase denominada VEHICULOS y dos subclases que dependen de sta: COCHES y
MOTOS. Despus crearemos las instancias particulares de cada una de las subclases. La
relacin SUBCLASE-DE se representa mediante una lnea de trazo negro; la relacim
MIEMBRO-DE INSTANCIA-DE se representa mediante una lnea de trazo gris.

coche1
COCHES
coche2
VEHICULOS

moto1

MOTOS

Fig.8.- Estructura jerrquica de clases, subclases e instancias


PROPIEDADES DE LOS OBJETOS: SLOTS
Los slots se utilizan para representar las propiedades importantes de los objetos reales.
Cada slot describe una caracterstica del objeto. Para especificar la caracterstica se le
asigna un valor al slot.
Los slots se utilizan para describir caractersticas especficas de los objetos. Los objetos
pueden tener sus propios slots, heredar slots de clases superiores y compartir slots.
Para ver y editar los slots de un objeto hay que situarse sobre dicho objeto y observar la
lista de slots en la parte derecha de la ventana. Haciendo doble clic sobre cualquiera de
los slots obtendremos las caractersticas de dicho slot.
Los slots tambin pueden crearse en Protg de forma independiente a una clase concreta
(ver figura 4). En ese caso el slot ser creado seleccionando previamente la etiqueta slot.
Un slot creado de esta forma podr ser posteriormente empleado como slot de cualquier
clase que se cree posteriormente. Para ello al crear la clase podremos seleccionar sus
slots a travs de la lista global de slots ya existentes (pulsando el botn +).
Supongamos que las propiedades que definen a los VEHICULOS son la 'matrcula', el
'propietario' y el 'modelo'. Adems nos interesa clasificar los COCHES y MOTOS como
vehculos de locomocin y para los COCHES nos interesa saber el 'nmero de puertas'.
coche1
COCHES
VEHICULOS
matricula
propietario
modelo
tipo locomocin
color

* matricula
* propietario
* modelo
* tipo *locomocin
* color
num_puertas

MOTOS

coche2

moto1

* matricula
* propietario
* modelo
* tipo *locomocin
* color

Fig. 9.- Definicin de slots de clases y subclases

Los asteriscos (*) que aparecen al lado del nombre del slot o del valor significan que
dichos slots ( valores) se heredan de la clase en la jerarqua establecida.
Ahora le damos valores a los slots de la instancia coche2. Para ver y editar un slot
concreto hay que situarse sobre dicho slot y pulsar dos veces.

coche1
COCHES
VEHICULOS
matricula
propietario
modelo
tipo locomocin
color

* matricula
* propietario
* modelo
* tipo *locomocin
* color
num_puertas

MOTOS

coche2
* matricula
V-5544-CL
* propietario PEPE
* modelo
SEAT IBIZA
* tipo
* locomocion
* color
rojo
* num_puertas 3

moto1

* matricula
* propietario
* modelo
* tipo *locomocin
* color

Fig. 10.- Valores de slots de la instancia coche1


PROPIEDADES DE LOS SLOTS: FACETAS
En este apartado discutiremos como controlar los valores que se ponen en los slots y
cmo manejar el modo en el que los valores de los slots son heredados.
Los slots se describen en trminos de facetas. Una opcin de slot es el lugar donde se
especifica la informacin adicional concerniente al slot. Protg proporciona un conjunto
de opciones de slot por defecto para controlar el tipo y el nmero de valores que puede
tomar el slot.
Un slot puede tener distintas facetas pero no tener valor. En este caso, Protg le asigna
el valor NULL. Los tipos de opciones de slot son: Cardinality, Allowable Values,
Value Type, Constraints, Default Value, Minimum, Maximun, Template Values,
Inverse Slot.

Fig.11.- Editor de slots de Protg


Cardinality: los slots pueden contener ms de un valor. El nmero de valores
permitidos en un slot se llama cardinalidad. Los posibles valores para esta opcin de slot
son: single y multiple.
Single: el slot slo puede tener un valor. Esta es la opcin por defecto.
Multiple: el slot puede tener varios valores. Los valores se introducen en forma de
lista.
Value Type: el valor de un slot (o valores de la lista si es un campo multi-valuado) es
por defecto un cadena de caracteres (String). Los tipos de valores que puede tomar un
slot son:
Tipo
Any
Boolean
Class
Float
Instance
Integer
String
Symbol

Descripcin
Cualquiera de los siguientes tipos
Valor Lgico
Otra Clase de la base de conocimiento
Nmero real
Instancia de una clase
Nmero entero
Cadena de caracteres
Lista enumerada de valores

Ejemplos
True, False
Organization
1.0, 3.4e10, -0.3e-3
instance_00010
1, 2, -4
"John Doe"
red, blue and green

Fig.12.- Tipos de datos en Protg

Allowed Values: lmites en los valores de los slots de tipo Symbol. Nos permite indicar
la lista de valores permitidos para dicho slot.
Allowed Parents: lmites en los valores de los slots de tipo Class. Nos permite indicar
la lista de clases padre permitidas para dicho slot de tipo clase. El valor del slot debe ser
el nombre de una clase descendiente de una de las clases que aparece en dicha lista.
Allowed Classes: lmites en los valores de los slots de tipo Instance. Nos permite
indicar la lista de clases permitidas para dicho slot de tipo instancia. El valor del slot
debe ser el nombre de una instancia de una de las clases que aparece en dicha lista.
Minimum y Maximun: Cuando el tipo del slot es numrico se puede especificar un
rango para los valores que puede tomar el slot, delimitando el valor mnimo y mximo.
En la Fig.14. la especificacin de los slots es la siguiente:
Slot
matrcula

Value Type (Default)


TEXT (V-5544-CL)

modelo

Symbol (SEAT IBIZA)

num_puertas

NUMBER (3)

color
propietario

TEXT (rojo)
Instance (PEPE)

Allowed Values Range


-----SEAT IBIZA
SEAT TOLEDO
RENAULT 5
Min Value: 2
Max Value: 5
---PERSONAS

Fig.13.- Datos del ejemplo


El slot 'propietario' es de tipo Instance. Eso significa que el valor del mismo (pepe) es
una instancia de una clase (PERSONAS) que se ha especificado en el campo Allowed
Values. La especificacin de los slots como tipo Instance permite crear una "Red de
Objetos".

PERSONAS
nombre
apellidos
direccion
edad

PEPE
* nombre Jose
* apellidos Fernandez Bou
* direccion Calle .....
* edad
27

coche1
COCHES
VEHICULOS
matricula
propietario
modelo
tipo locomocin
color

* matricula
* propietario
* modelo
* tipo *locomocin
* color
num_puertas

MOTOS

coche2
* matricula
V-5544-CL
* propietario
PEPE
* modelo
SEAT IBIZA
* tipo
* locomocion
* color
rojo
* num_puertas 3

moto1

* matricula
* propietario
* modelo
* tipo *locomocin
* color

Fig. 14.- Estructura jerrquica de las clases VEHICULOS y PERSONAS

8.2. Consultas en Protg.


La opcin de consultas de Protg permite el editar, guardar y ejecutar preguntas a la
base de conocimiento. Las consultas en Protg permiten interrogar por determinadas
instancias que cumplan determinadas condiciones en base a valores de sus slots.
Seleccionando la etiqueta de queries en Protg se pasa a la ventana de consultas la
cual est dividida en tres zonas, en la parte superior izquierda es la zona de edicin de
consultas, la parte inferior izquierda es donde se permite almacenar las consultas
realizadas, mientras que en la parte derecha se visualiza el resultado de la ltima
consulta ejecutada (ver figura 15).

Fig. 15.- Ventana de consultas de Protg

CONSULTAS SENCILLAS
Para realizar un consulta se deben indicar las condiciones en la zona de edicin de la
misma. Los pasos consistiran en indicar la clase de la cual se quieren buscar
determinadas instancias, el o los slots que deben cumplir alguna condicin y finalmente
la condicin en s (ver figura 16). En el ejemplo de la figura se desea conocer las
instancias de persona con una edad superior a 25 aos.

Fig. 16.- Edicin de condiciones


La ejecucin de una consulta se realiza pulsando el botn de Find, el resultado (el
conjunto de instancias que cumplen las condiciones de la consulta) se muestra en la
parte derecha de la ventana (ver figura 17).
Las consultas pueden ser grabadas para ser ejecutadas posteriormente. Para ello se le
puede dar un nombre en el cuadro de texto Query Name y luego pulsar el botn Add
to Query Library. La consulta guardada aparecer en la lista de consultas almacenadas.

Fig. 17.- Resultado de una consulta

CONSULTAS COMPLEJAS
Si la consulta tiene ms de una condicin es posible indicar ms condiciones pulsando
en el botn More, con ello se aadir una nueva fila en la ventana de edicin de la
consulta. De igual forma si queremos eliminar alguna lnea de condicin se puede
seleccionar y posteriormente pulsar el botn Fewer.
Una consulta compleja puede ser una combinacin de consultas ms sencillas. Por
ejemplo en la figura 11 se muestra una condicin que buscara las instancias de
vehculos cuyos propietarios tienen ms de 25 aos. Para su creacin se hace uso de la
consulta creada anteriormente que devolva las personas de ms de 25 aos.

Fig. 18.- Ejemplo de condicin compleja

9. Trabajo a realizar.
1 Parte
Implementar el esquema de la figura 14 (con datos incluidos) introduciendo adems la
siguiente informacin:

Personas
JUAN
Slot
nombre
apellidos
direccion
edad

Value Type
Juan
Lopez Perez
C/ del medio, n 5
25

Range

Min Value: 1
Max Value: 100

MARIA
Slot

Value Type

Range

nombre
apellidos
direccion
edad

Maria
Borrell Almunia
C/ de la izquierda, n 3
32
Min Value: 1
Max Value: 100

LUIS
Slot
nombre
apellidos
direccion
edad

Value Type
Luis
Aznar Oreja
C/ de la derecha, n 7
58

Range

Min Value: 1
Max Value: 100

Coches
COCHE1
Slot
matrcula
modelo

Value Type
V-6543-DP
SEAT TOLEDO

num_puertas 5
color

azul

Range
SEAT IBIZA
SEAT TOLEDO
RENAULT 5
Min Value: 2
Max Value: 5
----

COCHE3
Slot
matrcula
modelo

Value Type
B-2563-ED
RENAULT 5

num_puertas 2
color

verde metalizado

Range
SEAT IBIZA
SEAT TOLEDO
RENAULT 5
Min Value: 2
Max Value: 5
----

Motos
MOTO1
Slot
matrcula
modelo
color

Value Type
Range
V-2000-A
KAWASAKI 1000 KAWASAKI 1000
VESPINO GL
negra
----

MOTO2
Slot
matrcula
modelo

Value Type
V-2001-B
VESPINO GL

color

blanca

Range
KAWASAKI 1000
VESPINO GL
----

Introducir tambin las siguientes informaciones:


"Juan es el dueo del coche3"
"Pepe es el dueo del coche1 y coche 2"
"Mara es la duea de las dos motos"
"Luis tambin es propietario del coche 3 y de la moto 1"

Qu pasos seguiras para poder indicar los usuarios habituales de


los diferentes vehculos?
Realiza sobre la estructura de objetos dichos pasos y comprueba la nueva
disposicin introduciendo la siguiente informacin:
Ej: "Juan es el usuario habitual del coche3"

2 Parte
Sobre la estructura anterior contestar a las siguientes preguntas (almacenar cada
consulta en la biblioteca de consultas de Protg):
1 Devuelve la informacin del coche1
2 Devuelve la informacin de aquellas motos de color blanco
3 Devuelve el nombre de todos los propietarios
4 Indica los vehculos cuya matrcula contiene un 2
5 Devuelve al propietario/s de la moto 1 si su nombre es Mara
6 Devuelve los propietarios de los coches con ms de 3 puertas
7 Devuelve los posibles propietarios del coche de matrcula B-2563-ED
8 Devuelve los vehculos del propietario de nombre Luis
9 Devuelve los vehculos del propietario que vive en la calle del medio
10 Indicar los vehculos del propietario de edad 58

También podría gustarte