OWL Protege
OWL Protege
OWL Protege
1. Objetivos.......................................................................................................................3
2. Metodología..................................................................................................................3
3. OWL .............................................................................................................................3
3.1 Introducción.......................................................................................................... 3
4. Conclusiones...............................................................................................................19
5. Bibliografía.................................................................................................................21
2
1. Objetivos
2. Metodología
3. OWL
3.1 Introducción
Las ontologías se usan para capturar el conocimiento sobre algún dominio de interés.
Una ontología describe los conceptos en el dominio y también las relaciones que pueden
mantenerse entre esos conceptos. Diferentes lenguajes de ontologías proporcionan
distintas utilidades para manejarlos. El mas reciente desarrollo en materia de lenguajes
de ontologías es el OWL del World Wide Web Consortium (W3C). Como Protege,
OWL hace posible describir conceptos pero también proporciona utilidades para
manejarlos. Tiene una rica gama de operadores – por ejemplo and, or y la negación. Se
basa en un modelo lógico diferente lo que hace posible a los conceptos ser definidos así
como ser descritos. Los conceptos complejos pueden ser además en definiciones o
conceptos mas simples. Además, el modelo lógico permite el uso de un razonador, el
cual puede comprobar (o no) todos los enunciados y definiciones en la ontología para
ver que son consistentes y puede reconocer cuáles conceptos encajan con qué
definiciones. El razonador puede además ayudar a mantener la jerarquía de una manera
correcta. Esto es particularmente útil cuando se manejan aquellos casos en que las clases
pueden tener mas de una clase padre.
El plugin de OWL es una de las posibles extensiones que se ofrece para el programa
Protege, visto en prácticas. Dicho plugin ha facilitado y creado nuevas vías para poder
construir una web semántica de contenidos, muchas veces necesitada de la
realimentación de los usuarios. Además, el que Protege sea de código abierto permite
3
que sea fácil integrar componentes a medida para crear aplicaciones. Este aspecto es
realmente importante por dos motivos: Primero, porque al ser de código abierto, mucha
gente podrá interesarse por el código y entenderlo mejor. Y segundo, porque permite
una particularización de la herramienta y la posibilidad de adecuarla con extensiones
útiles para cada caso.
OWL Lite, adecuado para aquellos usuarios que necesiten una clasificación
jerárquica y funcionalidades restringidas. Por ejemplo, mientras que el OWL
Lite soporta la restricción de cardinalidad, solo permite valores de cardinalidad
de 0 ó 1. Puede ser mas simple para proporcionar una herramienta de apoyo para
OWL Lite que pueda proporcionar una ruta de migración rápida para los
tesauros y otras taxonomías.
OWL DL, adecuado para aquellos usuarios que quieren la mayor expresividad
sin perder la funcionalidad computacional (todas las implicaciones se pueden
computar) y decidible (todas las computaciones acabaran en un tiempo finito)
sobre los sistemas de razonamiento. OWL DL incluye todas las construcciones
del lenguaje OWL con las restricciones, tal como separación de tipos (una clase
no puede ser una propiedad ni un individuo, así como una propiedad no puede
ser una clase o un individuo). OWL DL se llama así debido a que utiliza
descripciones lógicas (descriptions logics DL). Las descripciones lógicas son un
campo de búsqueda que ha estudiado un fragmento particular que es decidible de
lógica de primer orden. OWL DL fue diseñado para soportar la descripción
lógica existente y tener unas propiedades computacionales deseables para los
sistemas de razonamiento.
4
permite a una ontología que aumente el significado del vocabulario predefinido.
De esta manera, es improbable que cualquier programa de razonamiento sea
capaz de soportar cada funcionalidad de OWL Full.
Muchos de los elementos de una ontología de OWL incluyen las clases, sus
propiedades, las instancias de las clases y las relaciones entre dichas instancias. En el
presente apartado, abordaremos cada uno de estos elementos, incluyendo algunos
ejemplos de su sintaxis.
Algunas veces convendrá enfatizar la distinción entre una clase como un objeto y una
clase como un contenedor de elementos. Por ello se llamará al conjunto de individuos
que son miembros de una clase la extensión de la clase.
Class
Los conceptos mas básicos deben corresponder a las clases que son las raíces de la
taxonomia en árbol. Cada miembro del mundo OWL es un miembro de la clase
owl:Thing (análogo a como veíamos en Protege con el :thing). Por ello se asume que
cada clase creada por el usuario es implícitamente una subclase de owl:thing. El
dominio de las clases raíz es definido cuando se declara una clase con nombre. OWL
también define la clase vacía, owl:Nothing.
<owl:Class rdf:ID=”Recetas”/>
<owl:Class rdf:ID=”Region”/>
5
<owl:Class rdf:ID=”Comestibles”/>
Mediante esta declaración del ejemplo se habría creado tres clases (Recetas, Región y
Comestibles) para el caso de un ejemplo de ontología culinaria.
Para poder crear subclases dentro de una clase creada se útiliza el constructor
taxonómico de clases “rdfs:subClassof”, como vemos en la ampliación del ejemplo
anterior de un elemento que es subclase de Comestibles:
<owl:Class rdf:ID=”Lacteos”>
<rdfs:subClassof rdf:resource”#Comestibles” />
….
</owl:class>
3.3.1.2 Individuos
Además de las clases, se puede ser capaz de describir a sus miembros. Se piensa en
estos individuos en el universo de las cosas. Un individuo se presenta minimamente
cuando se declara siendo un miembro de la clase.
6
3.3.1.3 Diseño para su uso
Hay muchas cuestiones acerca de la distinción entre una clase y un individuo en OWL.
Una clase es simplemente un nombre y una colección de propiedades que describe un
conjunto de individuos. Los individuos son los miembros de dichos conjuntos.
Las propiedades permiten declarar hechos generales sobre los miembros de las clases y
hechos específicos sobre los individuos.
Una propiedad es una relación binaria. Se pueden distinguir entre dos tipos de
propiedades:
- propiedades de tipos de datos, que son relaciones entre instancias de las clases
y los literales de RDF y los tipos de datos del esquema de XML (ya que OWL útiliza la
mayoría de los tipos de datos del esquema XML, y se exige que todos los razonadores
soporten el xsd:integer y el xsd:string como tipos de datos).
- propiedades de objeto, que son las relaciones entre las instancias de dos clases.
Cuando definimos una propiedad hay varias formas de restringir la relación. El dominio
y el rango pueden ser especificados. La propiedad puede ser definida para ser la
7
especialización (subpropiedad) de una propiedad existente. Si estudiamos el ejemplo de
las comidas:
<owl:ObjectProperty rdf:ID=”plato”>
<rdfs:domain rdf:resource=”#comida”>
<rdfs:range rdf:resource=”#primer plato”>
</owl:ObjectProperty>
Las propiedades, como las clases, pueden crearse siguiendo una jerarquía. Veamos el
siguiente ejemplo:
<owl:Class rdf:ID=”ColorVino”>
<rdfs:subClassOf rdf:resource=”#DescriptorVino”/>
<owl:ObjectProperty rdf:ID=”tienedescriptorvino”>
<rdfs:domain rdf:resource=”#vino”>
<rdfs:range rdf:resource=”#descriptorvino”>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID=”tienecolor”>
<rdfs:subPropertyOf rdf:resource=”tienedescriptorvino”/>
<rdfs:range rdf:resource=”#ColorVino”>
</owl:ObjectProperty>
Las propiedades de la clase DescriptorVino relaciona los vinos con su color y sus
componentes, como el gusto, el sabor, el cuerpo, etc. Tiene color es una subpropiedad
de “tienedescriptorvino”, cuyo rango está restringido a ColorVino. La relación
rdfs:subPropertyOf en este caso significa que cualquier cosa con la propiedad
“tienecolor” con un valor X también tiene una propiedad “tienevinodescriptor” con
valor X.
TransitiveProperty
8
“Region” y tenemos dos elementos de tipo “Region”: uno llamado “Valencia” con
la propiedad “estaen” con valor “ComunidadValenciana” y el otro llamado
“ComunidadValenciana” con la propiedad “estaen” con valor “España”, podemos
decir que Valencia estará tanto en la Comunidad Valenciana como en España,
puesto que la propiedad “estaen” es transitiva.
SymetricProperty
FunctionalProperty
inverseOf
Al igual que en los objetos con Protege, la propiedad inverseOf permite crear una
relación entre elementos. Por ejemplo, un cocinero tendría una propiedad “cocinaplato”,
mientras que un plato tendría la propiedad “platococinadopor” mediante el cual se
podría establecer la relación entre el plato y el cocinero que lo hizo.
InverseFunctionalProperty
Es similar al caso de inverseOf, con la diferencia de que implica que en un rango solo
puede existir un identificador único para cada elemento del dominio.
9
Existen tres tipos de restricciones de propiedades:
- Cardinalidad
Esta restricción permite establecer la cantidad exacta del numero de elementos que hay
en una relación.
- hasValue
hasValue permite especificar las clases basadas en la existencia de una valores de una
propiedad particular. De tal manera, un individuo será un miembro de una clase
mientras al menos uno de los valores de sus propiedades sea igual al del campo
hasValue.
Las extensiones de clases de OWL son conjuntos de individuos que son miembros de la
clase. OWL proporciona los medios para manipular las extensiones de la clase
utilizando una serie de operadores:
Una clase intersección se forma combinando dos o mas clases. Por ejemplo,
consideremos la intersección de dos clases llamada “Mamíferos” y “Carnívoros”.
Mediante dicha intersección tendríamos una clase en la cual se contendrían aquellos
mamíferos que son carnívoros. Además, la semántica de una clase intersección significa
que la clase anónima que se ha creado es tanto una subclase de “Mamiferos” como de
“Carnívoros”.
Una clase unión se crea combinando dos o mas clases. Por ejemplo, consideremos el
ejemplo de las Clases “Carnívoro” y “Herbívoro” a las cuales hemos realizado una
10
unión. La clase resultante contendrá a los individuos que pertenecen a cualquiera (o a
ambas) clases.
Una clase complemento es creada seleccionado aquellos individuos del dominio que no
pertenecen a una determinada clase. Si por ejemplo, se realiza un complemento a la
clase “Mamífero”, se obtendrá una clase en la cual no se contendrán individuos que
pertenecieran a dicha clase.
A continuación vamos a comentar dos utilidades que sirven de ayuda a la hora de crear
ontologías consistentes: Los tests de ontologías y el clasificador.
Protege-OWL proporciona un marco de pruebas que contiene varios tests que pueden
ejecutarse sobre una ontología que se está editando. Estos tests van desde los tests para
comprobar que las características de una propiedad se corresponde correctamente con la
característica inversa de su propiedad, hasta los tests OWL-DL, los cuales son
diseñados para encontrar construcciones como meta clases que puedan pertenecer a
OWL-Full.
El clasificador
11
3.4 Herramientas – Grupos relacionados con OWL
Antes de comentar lo relacionado con OWL haremos una pequeña introducción a otras
tecnologías para el desarrollo de ontologías de los cuales OWL ha tenido influencias:
12
URI
Por otro lado, RDF Schema es un vocabulario RDF que nos permite describir recursos
mediante una orientación a objetos similar a la de muchos lenguajes de programación
como Java. Para ello, proporciona un mecanismo para definir clases, objetos y
propiedades; relaciones entre clases y propiedades; y restricciones de dominio y rango
sobre las propiedades.
Con RDF Schema podemos describir jerarquías de clases, tales como ontologías
simples, sobre las que poder realizar consultas y razonamiento automático. Aun así,
RDF Schema no es lo suficientemente expresivo para representar ontologías de la
complejidad de una web semántica, por ejemplo.
DAML+OIL
13
Además OWL útiliza URIs para fijar nombres y la infraestructura para descripciones en
la Web proporcionada por RDF para agregar las siguientes capacidades a las ontologías:
- Apertura y extensibilidad
- Herramientas para la administración de sitios Web. Los sitios Web grandes pueden
administrarse de forma dinámica de acuerdo a categorías de contenido, personalizadas
para los administradores del sitio.
14
3.4.3 Ejemplo Comics OWL
-imagen Pestañas:
-imagen Clases:
15
-imagen Propiedades:
-imagen Rango:
16
-imagen Disjoint:
-imagen Instancias:
-imagen Restricciones:
17
-Ver código OWL generado:
18
-Debemos además, seleccionar el fichero OWL que deseamos importar:
4. Conclusiones
De todas maneras, OWL tiene una potencialidad en auge, ya que el desarrollo de Webs
semánticas está creciendo y la situación actual del sector está fijada por la
interconectividad de los metadatos y la gestión remota a través de la red. Es por ello que
las funcionalidades que ofrece OWL lo hacen un recurso optimo para utilizarlo como
aplicaciones de creación de contenidos o herramientas para administración de sitios
Web.
Si bien es cierto que la integración con Protégé hace que su uso sea más amigable, hay
ciertas funcionalidades que resultan ser muy complejas, sobre todo en cuanto se intenta
crear clases complejas utilizando las relaciones de unión, intersección y
complementación.
Otro aspecto que resulta bastante útil si comentamos la complejidad que se introduce
con las clases complejas comentadas en el párrafo anterior, es la posibilidad de
disponer con la herramienta de OWL de un marco de pruebas para poder comprobar si
las ontologías están bien construidas. Además, recurriendo a un clasificador se puede
19
enriquecer la propia ontología, creando relaciones o reestructurando la ontología para
que aporte un mayor conocimiento.
-A nuestro entender está creciendo bastante el uso de las Ontologías esto se refleja al
observar que el numero de resultados obtenidos con el buscador de Ontologías Swoogle
cada vez es mayor.
-Comentar que esto crece! , del 18 al 21 de Julio ISOCO organiza una conferencia sobre
Protégé, nada más y nada menos que en Madrid.
-Observamos que el realizar una Ontología no es un proceso fácil. Lleva tiempo y detrás
hay un estudio laborioso.
-Comentar que este plugin junto con la versión de Protégé son Betas eso quiere decir
que todavía esta todo por probar. Esto lo hemos experimentado al comprobar que la
importación de protégé a OWL nos ha fallado.
-Hemos considerado muy interesantes los numerosos manuales que hay al respecto,
además de existir la posibilidad de descargar las ontologías existentes para ver los casos
prácticos.
20
5. Bibliografía
-W3C working group .OWL Web Ontology Language Guide.
<http://www.w3.org/TR/owl-guide/> versión on-line [Fecha Consulta :22-05-05]
21
Whistler, BC, Canada (2004) - An introduction for users and domain modelers.
<http://protege.stanford.edu/plugins/owl/publications/KRMed2004-protege-owl.pdf>
[Fecha Consulta :22-05-05]
- Oficina Española del W3C. Documento traducido al Español por Carlos Iglesias
Moro. Preguntas frecuentes sobre el Lenguaje de Ontologías Web (OWL) del W3C.
<http://www.w3c.es/Traducciones/es/SW/2005/owlfaq>.[Fecha Consulta :22-05-05]
-W3C. El Consorcio World Wide Web publica las Recomendaciones RDF y OWL.
<http://www.w3c.es/Prensa/2004/nota040210.html>.[Fecha Consulta :22-05-05]
22