4 Methodology
4.1 Intersection Classification System
4.1.1 Classification Criteria
Lenguajes de descripción de ontologías
Los lenguajes de representación de ontologías están especialmente diseñados para definirlas. Estos lenguajes han recibido una atención considerable desde el surgimien- to de las redes semánticas en internet. Algunos de los lenguajes de descripción de ontologías son: SHOE, Oil, DAML, DAML+Oil y OWL cuya definición se basa en RDF y RDF-S.
Shoe (Simple HTML Ontology Extension), desarrollado por la universidad de Maryland fue el primer lenguaje de representación de ontologías creado para la web
semántica. Su implementación extiende el lenguaje HTML estándar para permitir anotaciones semánticas a las páginas web.
Oil (Ontology inference layer), resultado del proyecto On-To-Knowledge, respalda- do por la Unión Europea, que tuvo la participación de varias universidades europeas. Oil posee una semántica formal basada en la descripción lógica.
DAML (DARPA agent markup language) desarrollado por el Defense Advanced Research Projects Agency (DARPA). La meta era desarrollar un lenguaje estándar extendiendo RDF/RDF-S.
DAML+Oil, es la unión de los lenguajes DAML y Oil realizada en el 2001. Este lenguaje sirvió como punto de partida al Web Ontology Working Group (WebOnt) del consorcio (W3C) para definir un nuevo lenguaje de descripción de ontologías para la web semántica.
OWL (Web Ontology Language) fue el resultado del grupo de trabajo de ontolo- gías para la web (ahora cerrado). OWL facilita la interpretación del contenido web descrito por XML y RDF o RDF-S proveyendo el vocabulario adicional basado en descripciones lógicas. OWL tiene tres subconjuntos del lenguaje, cuya complejidad es ascendente: OWL-Lite, OWL-DL y OWL-Full. Actualmente esta definido por un conjunto de recomendaciones del W3C, publicado el 10 de febrero de 2004.
El uso de OWL se debe a que mantiene la expresividad del modelo lógico de la on- tología sin sacrificar la eficacia computacional. Además en la actualidad es el lenguaje que posee mayor capacidad expresiva y tiene una sintaxis abstracta (independiente de cualquier representación computacional).
Herramientas de ingeniería de ontologías
Hoy en día, existen varias herramientas de ingeniería de ontologías, que soportan la Web Semántica. Estas herramientas pueden clasificarse en tres grandes grupos: editores de ontologías y metadatos, plugins y APIs, y máquinas de inferencia.
Las máquinas de inferencia son herramientas de software que tienen la habilidad de inferir nuevos datos o asociaciones a partir de otros datos. Este software esta formado por un conjunto reducido de primitivas (clases y propiedades) descritas utilizando un lenguaje de descripción de ontologías (RDF u OWL). Algunos ejemplos de máquinas de inferencia para la Web Semántica son: JESS, Jena, FaCT, Pellet y RACER.
Jess (http://www.jessrules.com/) es un motor de reglas desarrollado para la
plataforma Java. Para utilizarlo, se especifica la lógica en forma de reglas utilizando uno de dos formatos: el lenguaje de reglas de Jess o XML.
Jena (http://jena.sourceforge.net/) es un framework escrito en Java para la
creación de aplicaciones web semánticas. Proporciona un entorno de programación para OWL e incluye un motor basado en reglas de inferencia. El framework de je- na incluye: el API RDF, lectura y escritura de RDF en RDF/XML, el API OWL, almacenamiento persistente y, un motor de consultas SPARQL.
FaCT (http://code.google.com/p/factplusplus/) es un razonador DL, que so-
Pellet (http://clarkparsia.com/pellet) es un razonador implementado en Java
que proporciona servicios de razonamiento estándar para ontologías escritas en OWL. Racer (http://www.racer-systems.com/) es un motor de razonamiento para edi-
tores de ontología como Protégé.
En este apartado describiremos un pequeño conjunto de aplicaciones que son es- pecialmente notables para la investigación realizada.
OilEd (http://oiled.man.ac.uk) es un editor para el lenguaje DAML+Oil, desa-
rrollado por la universidad de Manchester y distribuido bajo la licencia GPL. No provee soporte para un método de desarrollo de ontologías específico, tampoco per- mite integración de ontologías o versionamiento. Realiza un chequeo de consistencia de la ontología gracias a la ayuda del razonador FaCT. La visualización de la jerarquía de clases es posible gracia al plugin OilViz.
OntoEdites un editor de ontologías desarrollado para el proyecto On-To-Knowledge, cuyo principio de construcción fue “desarrollar métodos y herramientas que utili- cen todo el poder de las ontologías para facilitar la administración del conocimien- to”(Davies et al. 2002).
Esta herramienta implementa un proceso de desarrollo de ontologías que consta de tres etapas — especificar requerimientos, refinamiento de la ontología y evaluación — similar a cualquier método de desarrollo de ontologías. El modelo conceptual de la ontología se almacena en un repositorio SESAME.
Protégé Ontology Editor (http://protege.stanford.edu/) es el editor de ontolo-
gías más utilizado en la actualidad con una comunidad de usuarios grande (más de 50.000). Fue el primer editor en utilizar una arquitectura de plugins para extender su funcionalidad y desarrollar un paradigma para el modelado. Además, soporta los lenguajes estándar actuales para describir ontologías RDF(S) y OWL.
Esta aplicación permite describir la ontología de forma declarativa, es decir, definir de manera explícita las clases individuales y la jerarquía establecida entre ellas. Fue desarrollada por el grupo Stanford Medical Informatics (SMI) de la Universidad de Stanford y se la puede descargar libremente bajo los términos de la licencia GNU.
Protégé esta escrito en Java y posee un entorno flexible plug-and-play. El sitio oficial de la aplicación provee más de 50 plugins clasificados por categoría: para visualización, para importar/exportar, para inferencia/validación, etc. Algunos de los más utilizados son: Protégé OWLViz Plugin (visualización), Protégé Prompt Tab Plugin (mantenimiento), Protégé WordNet Tab Plugin (anotación), Protégé OWL API (manipular elementos), y Protégé OWL Reasoning API (inferencia).
Para la implementación de la ontología se eligió Protégé por su portabilidad entre diversas plataformas, su extenso uso y abundante documentación. Esta herramienta posee una interfaz gráfica que facilita el desarrollo de la ontología sin tener que preocuparse por la sintaxis del lenguaje de definición de ontologías escogido (OWL). La codificación en Protégé del modelo conceptual, desarrollado en el apartado anterior, se realizó de la siguiente manera:
Definición de los conceptos
Para la especificación de los conceptos de la jerarquía utilizaremos la pestaña Clas- ses de Protégé. Debemos especificar el nombre de la clase, la superclase (clase padre), y las clases disjuntas (ubicadas en el mismo nivel jerárquico).
Figura 3.14: Definición de clases en Protégé
Definición de las relaciones entre clases
Definimos las relaciones entre clases utilizando la pestaña Object Properties de Protégé. Para cada relación se debe anotar: el nombre, el dominio y el rango; así:
Figura 3.16: Definición de relaciones en Protégé
Definición de atributos
Al definir los atributos, cuya función es describir los conceptos, utilizamos la pesta- ña Data Properties. Para cada atributo se debe especificar: el nombre, tipo de valor, cardinalidad, clase a la que pertenece y valores por defecto.
Definición de axiomas
En la definición de axiomas se utilizan las relaciones y las clases existentes en la ontología cuantificándolas de forma universal y existencial.
Figura 3.18: Definición de axiomas de la clase Asignatura
La figura anterior muestra la definición de los axiomas que pertenecen a la clase asignatura:
Uno existencial: Algunas asignaturas tienen una guía didáctica. Otro universal: Toda asignatura tiene objetivos.
Figura 3.19: Definición de axiomas de la clase Guía didáctica
La figura anterior refleja la creación de los axiomas para la claseguía didáctica. En este caso fue necesaria la inclusión de nueve axiomas de tipo existencial y uno de tipo universal.
Declaración de instancias
Se definen las instancias pertenecientes a cada clase (o concepto) con sus respectivos atributos.
Figura 3.20: Declaración de instancias de la clase Asignatura
La figura anterior muestra los tres paneles en los que se divideProtégéal realizar la creación de instancias de una clase: class browser, instance browser e individual editor. En el primero se escoge la clase de la cual se van a crear las instancias y, en el segundo se realiza el proceso de creación.
Figura 3.21: Atributos de la instancia de la clase Asignatura
que se muestran los atributos y relaciones de la instancia de la clase a los cuales se les debe asignar un valor determinado.
Figura 3.22: Diagrama de clases de la ontología OntoWikiUTPL
Finalmente, la figura anterior muestra el diagrama de clases de OntoWikiUTPL, generado gracias al plugin TGViz de Protégé.
Definición de consultas
A continuación se muestran los resultados de dos consultas realizadas sobre el dominio de la ontología; la primera busca todas las definiciones que contengan la palabra conjunto y la segunda busca los ejemplos que se refieran al concepto conjunto.
La figura anterior ilustra el proceso de creación de la consulta que nos permiti- rá buscar la palabra conjunto dentro de todas las instancias de la clase definición utilizando para ello el atributo texto definido para esta clase.
Figura 3.24: Búsqueda de datos de la primera consulta
El resultado de esta búsqueda se muestra en la figura anterior. El panel search resultsexhibe todas las instancias que continen la palabra conjunto.
Figura 3.25: Propiedades de las clases obtenidas en la búsqueda
La figura anterior, de caracter meramente explicativo, demuestra que en la instancia Definición4 de la clase definición se encuentra la palabra conjunto.