Instalar la API de ProtegeOWL para Eclipse

2009 Abril 1
etiquetas: , ,
by rekkeb

protegelogo

La API de ProtegeOWL nos va a permitir manejar ontologías y realizar operaciones sobre ellas de una manera muy cómoda, muy rápida y muy eficiente. Además tendremos la certeza de que todas las ontologías que diseñemos con esta API serán perfectamente válidas para Protégé. Otra ventaja, es que podremos diseñar las ontologías directamente en el entorno gráfico de Protégé y luego manipularlas desde nuestra aplicación Java.

¿El mayor incoveniente? Sin duda alguna el tamaño. Sólo la API ocupa 40 MEGAS!!! y encima son 40 megas repartidos entre 3000 ficheros .java y .class. Por tanto Eclipse tarda un rato en actualizar el workspace cada vez que limpieis el proyecto.

Esto se debe a que las dependencias en el código fuente de Protégé son muy grandes y aunque nosotros sólo vayamos a utilizar la API de ProtegeOWL, necesitamos también importar Protege-core, es decir, todo el código fuente de Protégé. Además necesitaremos añadir a nuestro proyecto las librerías necesarias para que todo el código compile, como por ejemplo la librería de Jena.

Recapitulemos. ¿Qué es lo que necesitamos para tener nuestra API de ProtégéOWL lista para utilizarla?

  • Código fuente de ProtegeOWL API
  • Código fuente de Protege-core
  • Librerías necesarias (.jar)

Todo lo que veamos en este artículo está destinado a utilizar la API de la versión 3.x de Protégé. La versión 4.0 se encuentra todavía en desarrollo y aunque ya hay manuales para probarla, seguiremos con la 3.x

Descargar el código fuente con Subversion

Lo primero que necesitamos es obtener el código fuente de Protégé-core y de Protege-OWL. Para ello nos conectaremos a su repositorio de subversion y lo descargaremos de ahí. No os voy a explicar en este post qué es subversion o cómo utilizarlo, doy por supuesto que todos tenemos un cliente de subversion configurado y operativo ;)

NOTA: Al final de la entrada, tenéis los enlaces para descargar el código fuente empaquetado en ZIP, por si preferís no usar Subversion.

ACTUALIZADO: En las últimas revisiones del repositorio parece que faltan algunas clases, por tanto os recomiendo que descarguéis la API empaquetada en ZIP, al menos hasta que arreglen o actualicen el repositorio.

Yo personalmente utilizo subversion mediante comandos en la terminal, me resulta más comodo y rápido. Por tanto todas las operaciones que realicemos para obtener las APIs, las haré mediante consola.

Vamos a crear una carpeta y dejarla configurada para que actúe bajo subversion:

svnadmin create /Users/Rekeb/Desktop/svnProtege/

Ahora en el escritorio tenemos nuestra carpeta preparada para soportar el sistema de versiones. Lo siguiente será obtener Protege-core y Protege-OWL.

Antes de empezar debemos tener en cuenta una cosa. Tanto Protege-core como Protege-OWL los obtendremos cada uno en un directorio distinto y una vez que tengamos los dos, tendremos que mezclarlos, de esta forma tendremos en una misma ruta ambas APIs. No os preocupeis, es extremadamente sencillo ya que ambos comparten la misma raiz de directorios, ahora en un momento veremos cómo lo hacemos.

Obtenemos Protege-core:

Entramos en la carpeta que hemos creado antes y creamos una nueva carpeta llamada: Protege-core. Vamos a descargar ahí todo el repositorio de Protege-core. Para ello ejecutamos el siguiente comando:

svn co http://smi-protege.stanford.edu/repos/protege/protege-core/trunk/src/ Protege-core/

Una vez descargado (tarda un rato), vamos a descargar Protege-OWL

Obtenemos Protege-OWL:

Creamos una nueva carpeta dentro de svnProtege que se llamará: Protege-OWL. Descargaremos aquí todo el código de la API de Protege-OWL. Ejecutamos el siguiente comando:

svn co http://smi-protege.stanford.edu/repos/protege/owl/trunk/src/ Protege-OWL/

En este momento ya tenemos ambos directorios con ambas APIs. Ahora sólo nos queda mezclar ambos directorios en uno solo. Si navegamos un poco por ellos vemos que ambos tienen los mismos directorios inciales:

  • ../Protege-OWL/edu/stanford/smi/protegex/…
  • ../Protege-core/edu/stanford/smi/protege/…

Simplemente tendremos que hacer que de ../edu/stanford/smi/ cuelguen ambas carpetas y todos sus subdirectorios: /protegex/..   y  /protege/..    (Copiar y pegar de toda la vida…)

Yo he trasladado todo el contenido de ../Protege-core/edu/stanford/smi/ a ../Protege-OWL/edu/stanford/smi/  y el resultado es este:

dirprotege

Esto es más largo de contar que de hacer, ya veis que es muy sencillo. Bien pues en este momento, ya tenemos nuestra API en un sólo directorio y respetando la jerarquía de directorios que necesita cada API. Por tanto el directorio Protege-core, podemos eliminarlo sino nos interesa que esté ahi. A partir de ahora nos olvidaremos del repositorio svn y utilizaremos el directorio Protege-OWL como un directorio normal.

Descargar las librerías necesarias con Subversion

A parte del código fuente, Protege necesita algunas librerías para completar todas las dependencias, estas librerías son, por ejemplo las de Jena. Si tenemos instalada la aplicación de Protege, podemos navegar hasta el directorio lib y copiarlas de ahí. Sino lo tenemos instalados, podemos descargar estas librerías de sus repositorios de SVN.

Volvemos a nuestra carpeta svnProtege y creamos dos nuevas carpetas más: lib1 y lib2. Después mezclaremos ambas carpetas en una carpeta llamada lib. Ahora veremos cómo y porqué.

Obtenemos Las librerías necesarias para Protege-core:

svn co http://smi-protege.stanford.edu/repos/protege/protege-core/trunk/lib/ lib1/

Obtenemos Las librerías necesarias para Protege-OWL:

svn co http://smi-protege.stanford.edu/repos/protege/owl/trunk/lib/ lib2/

Ahora simplemente, copiamos los .jar que hay en lib1/ a lib/ y copiamos los .jar que hay en lib2/ a lib/ .Os pedirá que sobreescribais un .jar, no hay problema es el mismo en ambos directorios.

fiuffffff Parece que ya está todo lo que necesitamos para irnos a eclipse y poder empezar a usar la API.

Configurar la API en Eclipse

Vamos a necesitar nuestras carpetas de Protege-OWL/ y lib/, las que hemos creado antes, que están dentro de svnProtege/, asi es que tenedlas a mano; pero primero abramos Eclipse.

Creamos un proyecto nuevo con las opciones comunes y las que nos interesen. (a elección de cada un@)

Lo siguiente que vamos a hacer es copiar la carpeta lib/ y Protege-OWL/ dentro del directorio de nuestro proyecto. En nuestro Workspace, Eclipse habrá creado una carpeta con el nombre que le hayamos dado al proyecto. Pues dentro de esa carpeta copiaremos la carpeta lib/ y la carpeta Protege-OWL/. Ni que decir tiene, que para realizar esta copia hemos de ir a nuestro explorador de archivos de SO, no hace falta hacerlo desde Eclipse ;)

Una vez hayamos copiado ambas carpetas, volvemos a Eclipse y Refrescamos el proyecto. Las dos carpetas nos tienen que aparecer ahora en la vista Package Explorer.

Sólo nos quedan un par de pasos más y estaremos listos.

En Eclipse, vamos a las propiedades de nuestro proyecto y vamos al Apartado Java Build Path.

Haremos lo siguiente:

  • En la pestaña Source, hacemos click en Add Folder… y buscamos la carpeta Protege-OWL que habíamos añadido al proyecto, la seleccionamos y hacemos click en OK
  • En la pestaña Libraries, añadiremos todas las librerías almacenadas en lib/. Para ello presionamos el botón Add JARs… Seleccionamos nuestro proyecto, el directorio lib/ y marcamos todos los .jar

Y listo, eso es todo, ahora simplemente os queda esperar un rato hasta termine de compilarse todo el proyecto.

NOTA: En ocasiones, al importar el nuevo código fuente de los repositorios de subversion, el proyecto es incapaz de compilar, pq no es capaz de resolver todas las dependencias. Tendremos que buscarnos un poco las castañas en esta ocasión para conseguir compilar todo de forma correcta. Eso sí, los warnings os va a ser imposible quitarlos todos, en fin…

Si los repositorios SVN no compilan o no queremos utilizar subversion:

Los repositorios SVN no siempre compilan y hay ocasiones en las que podemos solucionarlo fácilmente y otras en las que por la razón que sea han eliminado ciertas clases y sin esas clases nos va a resultar imposible compilar el proyecto. En estas ocasiones, lo mejor es descargarse el código fuente empaquetado en un fichero ZIP. Esto nos asegura que el código fuente que hay ahí dentro, está probado y funciona perfectamente ya que, normalmente, hará referencia a la última versión estable de Protégé, cuyos binarios son los que se distribuyen actualmente.

Por tanto, si el código que hemos obtenido de los repositorios SVN no compila y somo incapaces de que compile (no os preocupéis, no es culpa vuestra), descargamos los fuentes de protege comprimidos en ZIP, y llevamos a cabo las mismas operaciones que en el punto de Descargar el codigo fuente con Subversion, con el objetivo de tener una única carpeta Protege-OWL con los fuentes de Protege-core y Protege-OWL. Y seguimos los pasos mencionados anteriormente.

Las librerías necesarias (.jar) ya vienen dentro de la API empaquetada, dentro de la carpeta lib/, tanto de Protege-core como de Protege-OWL

Los fuentes comprimidos, podéis descargarlos de la página de descargas oficial de Protege | Download Protege Software

Recordad descargar los de la versión 3.x de Protege ;)

Otro método para instalar la API de Protege-OWL

El equipo de desarrollo de Protege, ha creado un wiki dónde nos dan información para instalar la API de Protege. Es un proceso algo distinto al que os describo aquí. El enlace es el siguiente:

ProtegeWiki | Compile Protege Sources in IDE

3 comentarios dejar un →
  1. 2009 Agosto 4

    Hola, estoy empezando con el proyecto fin de carrera y tengo que usar el Protege, para la instalación de la Api en el Eclipse siguiendo los pasos, pero me dan 200 errores, alguno de ellos es AbstractSingleConceptWithConceptCollectionResultTask, creo que están relación con el DIG Reasoner, pero no sé como solucionar esto, mi tutora de proyecto quiere que use Jena. Si me pueden guiar un poco.

    Gracias

    • 2009 Agosto 8

      Hola, no hace falta que instales toda la API de Protege para usar Jena. Jena es una librería que puedes descargarte de forma independiente a Protege y que te va a permitir manipular ontologías de una forma muy sencilla. De hecho la propia API de Protege utiliza Jena para realizar toda la gestión de ontologías.
      Prueba a descargarte la librería Jena y usarla en tu proyecto. En su página oficial tienes mucha documentación y ejemplos que te ayudarán a comenzar a manejar ontologías desde Java. (jena.sourceforge.net)
      Lo de los fallos en la compilación del proyecto es lo más normal. Sobre todo si te descargaste la API desde el repositorio de SVN, siempre cambian algo…
      Salu2

Referencias & Pingbacks

  1. Jess. Conocer qué reglas se están disparando. (Rules Fired) « Rekkeb's Blog

Deja un comentario

Nota: Puede usar XHTML básico en sus comentarios. Su dirección de correo electrónico nunca será publicada.

Subscripción al comentario vía RSS