Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
-
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).
Una vez abierto un nuevo proyecto aparece la ventana principal de Protg donde se
puede empezar ya a desarrollar la nueva ontologa
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).
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.
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).
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.
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}
-
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
* matricula
* propietario
* modelo
* tipo *locomocin
* color
num_puertas
MOTOS
coche2
moto1
* matricula
* propietario
* modelo
* tipo *locomocin
* color
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
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
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
modelo
num_puertas
NUMBER (3)
color
propietario
TEXT (rojo)
Instance (PEPE)
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
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.
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.
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
----
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