%% \chapter{Implementaciones Existentes}
%% \label{cap:imp_ex}


\hyphenation{exis-ten-tes Web-VOWL}
\chapter{Comparación con Otras Herramientas}
\label{sec:comp_otras_herr}
%% \germanin{18-1-2017}{Y si ponemos un ejemplo que muestre como un modelo se puede definir en UML, se escribe en OWL y en DL? Un esquema, me parece que aclararía la relacion entre todo esto.}
%\chrisin{24-02-2017}{``Y si ponemos un ejemplo que muestre como un modelo se puede definir en UML, se escribe en OWL y en DL? Un esquema, me parece que aclararía la relacion entre todo esto.'' : Más abajo hay un capítulo con ejemplos concretos. ¿Hago un ejemplo simple acá arriba?.}

%En el campo del diseño ontológico, 
Durante el transcurso de este trabajo hemos relevado y estudiado algunas herramientas existentes que posibilitan la creación, edición y visualización de ontologías. Este análisis ha sido realizado siguiendo los lineamientos del Proceso de Visualización detallado en la sección \ref{sec:modelado asistido} y considerando principalmente, los lenguajes gráficos de modelado, el uso de razonamiento para validar modelos y, en caso que sea posible, cuán integrados trabajan los lenguajes y el razonamiento automático. %pero todas ellas poseen una integración débil o aún ninguna con un sistema de razonamiento automático. 

En este capítulo se detallan las herramientas investigadas indicando los puntos resaltados en el párrafo anterior %que consideramos más relevantes debido a su robusteza y su continuo desarrollo, estás son
y las principales diferencias de cada herramienta con nuestra propuesta. 
Las implementaciones consideradas son las siguientes: Protégé \cite{gbraun:tool:protege} y WebProtégé, VOWL \cite{gbraun:VOWL} y WebVOWL, OWLGrEd \cite{gbraun:OWLGrEd}, NORMA \cite{gbraun:NORMA:2010}, TopBraid Composer \cite{gbraun:tool:TopQuadrant2011}, NeOn toolkit \cite{gbraun:tool:neon2008hasse}, Graphol \cite{gbraun:graphol} y OntoUML \cite{gbraun:tool:Guizzardi}. Otras herramientas \cite{gbraun:GrOWL,gbraun:tool:swoop} fueron revisadas pero no serán detalladas aquí puesto que han quedado discontinuadas. 

\section{Protégé y WebProtégé}

Protégé es una plataforma libre, desarrollada por la Universidad de Stanford. Ofrece un conjunto amplio de estructuras de modelado para la creación y manipulación de ontologías, junto con interfaces con razonadores automáticos. La herramienta puede ser extendida mediante el desarrollo de \emph{plug-ins}. La edición en Protégé es principalmente textual y un escaso soporte gráfico es provisto por \emph{plug-ins} como OWLViz \cite{OWLViz_es} y SOVA \cite{SOVA_es}. De manera similar el razonamiento es completamente soportado de manera textual, pero las deducciones obtenidas por razonadores externos son limitadas a las de tipo Is-A de manera gráfica.
Otras extensiones gráficas, como por ejemplo OntoGraf \cite{OntoGraf_es} dan soporte interactivo para navegar sólo las relaciones de subclasificación, individuos, dominios y rangos de las propiedades y equivalencias en OWL. En cuanto a la integración con el razonador, es limitada y levemente soportada. Asimismo, ninguna nueva deducción a nivel textual es reflejada gráficamente usando OntoGraf. OWLViz visualiza la jerarquía de clases de ontologías OWL, las cuales pueden ser además navegadas de manera incremental, mientras que los conceptos inconsistentes y las jerarquías inferidas pueden ser visualizadas luego de razonar sobre el modelo. Por último, SOVA (Simple Ontology Visualization API) posee dos modos de visualización. Por un lado, una vista de la ontología completa como se especifica en OWL y, por otro, presenta la jerarquía de clases e individuos inferidas luego de que los servicios de razonamiento son ejecutados. 

Esta importante limitación también se presenta en la versión Web de la herramienta denominada WebProtégé \cite{DBLP:journals/semweb/TudoracheNNM13}, en la cual la interacción con razonadores es nula y tampoco se provee un soporte gráfico, siendo principalmente un repositorio de ontologías con capacidades de edición colaborativa.

En la Figura \ref{fig:protege} se puede observar la interfaz de Protégé con una ontología conocida como MUTO (Modular Unified Tagging Ontology) que se puede cargar directamente desde la URL \url{http://purl.org/muto/core#} y mostrando la descripción de una de sus clases.

\crowd{} se basa en la utilización de lenguajes gráficos para modelado conceptual para representar una ontología y el uso del razonamiento en una representación formal del modelo proveído por el usuario. Sin embargo, estos objetivos no son compartidos por Protégé y WebProtégé por lo que su soporte gráfico y de razonamiento son limitados.

\begin{landscape}
\begin{figure}[h]
  \centering
  \includegraphics[width=\linewidth]{protege.png}
  \caption{Captura de pantalla de Protégé.}
  \label{fig:protege}
\end{figure}
\end{landscape}

\section{VOWL y WebVOWL}


%\footnote{http://vowl.visualdataweb.org}, 
VOWL (``Notación Visual para Ontologías OWL'') \cite{VOWLpaper}  es básicamente un lenguaje visual para la representación de ontologías orientado al usuario. Define símbolos gráficos para los elementos de OWL que son combinados con un grafo dirigido visualmente distribuido. Se enfoca en la visualización de los esquemas de ontología (TBox), asimismo incluye recomendaciones en cómo dibujar individuos y valores de datos correspondientes al ABox de la ontología.
Este lenguaje fue implementado en dos herramientas, un \emph{plug-in} para Protégé denominado ProtégéVOWL y una aplicación Web llamada WebVOWL. Ambos realizan una representación visual, que no es editable en ese mismo lenguaje de la ontología que el usuario provee por medio de un archivo en formato OWL. La Figura \ref{fig:VOWL} muestra la interfaz de ProtégéVOWL donde, de forma automática y animada, presenta las clases de la ontología MUTO.

A pesar de su facilidad de uso y de que distribuye las primitivas automáticamente en pantalla, existen grandes diferencias con \crowd{}: Primeramente, es requisito estar familiarizado con el lenguaje OWL y las demás tecnologías de la Web Semántica para poder utilizarlo, puesto que utiliza un lenguaje visual que representa la DL y sus operadores, en vez de utilizar aquellos propios del dominio de la ingeniería de software. Segundo, tanto el \emph{plug-in} como WebVOWL, no permiten la edición de las ontologías en el mismo lenguaje gráfico, sólo la visualización de las mismas. Tercero, no se provee ningún tipo de servicios de razonamiento en la interfaz web, y en cuanto al \emph{plug-in}, sólo lo que posibilita la herramienta Protégé.

\begin{landscape}
\begin{figure}[h]
  \centering
  \includegraphics[width=.75\linewidth]{vowl.png}
  \caption{VOWL Protégé mostrando una ontología OWL.}
  \label{fig:VOWL}
\end{figure}
\end{landscape}

\section{TopBraid Composer y NeOn Toolkit}
TopBraid Composer y NeOn Toolkit son herramientas desarrolladas sobre la plataforma Eclipse para la ingeniería de ontologías. Permiten la carga y edición textual de ontologías desde archivos en formato OWL. Similar a Protégé, también muestran inferencias gráficamente, pero limitadas a relaciones Is-A. El primero, sin embargo, también provee otro formato de visualización por medio de gráficos RDF \cite{gbraun:rdf:overview:2014}, en tanto que el soporte de visualización en NeOn Toolkit es mediante el \emph{plug-in} ``OWL Ontology Visualization''. En la Figura \ref{fig:neon-toolkit} se muestra la herramienta NeOn Toolkit con la ontología FOAF (Friend of a Friend) cargada desde la URI \url{http://xmlns.com/foaf/0.1} y con el \emph{plug-in} de visualización centrado en la clase ``Agent'' mostrando sus distintas subclases.

A diferencia de \crowd{}, estas herramientas no proveen de servicios de razonamiento \emph{out-of-the-box}. Sin embargo, algunas se apoyan de \emph{plug-ins} y de la posibilidad de exportar a OWL para poder interactuar con razonadores y realizar consultas, incluso utilizan la sintaxis RDF y soportan SparQL para hacer consultas específicas solamente en cuanto a sus individuos. En cuanto a la visualización de ontologías, \crowd{} permite la edición en el mismo lenguaje gráfico y no requiere que el usuario posea conocimiento acerca de \DL{} ni de la sintaxis OWL, en contraposición con TopBraid Composer y NeOn Toolkit que se enfoca en una edición textual en archivos OWL.

\begin{landscape}
\begin{figure}[h]
  \centering
  \includegraphics[width=\linewidth]{neon-toolkit.png}
  \caption[Captura de pantalla de NeOn Toolkit.]{Captura de Pantalla de NeOn Toolkit mostrando un Agente de la ontología FOAF.}
  \label{fig:neon-toolkit}
\end{figure}
\end{landscape}

\section{OWLGrEd}
El editor de ontologías OWLGrEd \cite{DBLP:conf/bir/BarzdinsBCLS10} provee un entorno gráfico para OWL 2  %: como un entorno completo, un \emph{plug-in} ``legacy'' para Protégé y, finalmente, una versión web. Su sintaxis gráfica es innovadora y 
que, como se explica en \cite{DBLP:conf/bir/BarzdinsBCLS10}, utiliza una sintaxis gráfica de estilo similar al de los diagramas de clases UML. Dicha sintaxis consiste en un mapeo entre conceptos OWL que son similares a los de UML, por ejemplo: de clases de OWL a clases UML, de subclases OWL (\texttt{subclassOf}) a herencia UML, etc. Sin embargo, existen conceptos únicos en OWL por lo que también define una extensión de la notación UML con símbolos adicionales y expresiones textuales para abarcarlos. 
% y trabaja como un visualizador\chris{01-01-2017}{¿esto quiso decirse? chequear con la versión en inglés.}{} off-the-shelf de Protégé desde que permite importar sus ontologías para ser graficadas. Sin embargo, los axiomas inferidos en Protégé no son mostrados en OWLGrEd al exportarse.
% Además, OntoUML es también una herramienta centrada en la visualización gráfica con soporte de chequeo de satisfacibilidad simulando las especificaciones, pero este soporte lógico tampoco está integrado con el modelo gráfico.
El entorno completo es capaz de mostrar ontologías OWL y/o RDF en el lenguaje descripto, además de editarlas bajo el mismo lenguaje y guardarlas en el  formato con el que se cargó. Asimismo, otras ontologías pueden ser importadas como paquetes UML a un único proyecto. 

El \emph{plug-in} OWLGrEd permite interoperar entre Protégé y el entorno completo habilitando la capacidad de exportar el gráfico a esta última y viceversa. %A la par, en el menú contextual de OWLGrEd es posible exportar la ontología directamente a la otra herramienta. 
Sin embargo, el \emph{plug-in} no soporta las últimas versiones de Protégé, limitándose a versiones previas a la 5.0.0 beta.
En su versión online, disponible en la URL \url{http://owlgred.lumii.lv/online_visualization}, %, publicada en su sitio oficial\footnote{\url{http://owlgred.lumii.lv/online_visualization}}, 
sólo permite visualizar una ontología a partir de un archivo OWL, RDF, etc, aunque existen limitaciones de tamaño y sólo se observa la ontología directa y no las que se hacen referencia.

Finalmente, si bien OWLGrEd, ya sea en su versión de escritorio o Web, soportan un lenguaje basado en el UML estándar, no poseen ningún servicio de razonamiento integrado más allá de los provistos por Protégé, cuyas posibles nuevas inferencias no son inmediatamente graficadas. Sin embargo, la utilización de un modelado gráfico similar al utilizado por la ingeniería de software hace a la herramienta más accesible, a pesar de considerar los aspectos propios de OWL que hacen a la extensión del lenguaje. %\crowd{} no emplea un lenguaje diferente, sino que intenta respetar la misma semántica del diagrama de clases UML al momento de traducir a la lógica descriptiva. 

\section{NORMA}
NORMA es una herramienta principalmente gráfica para la visualización y edición de ontologías por medio del lenguaje ORM. Este lenguaje es gráfico y de representación en forma de diagrama cercana a la ontología de la Lógica Descriptiva. Está formalmente descripto en \cite{Halpin2005} como un modelado orientado a hechos para especificar modelos, transformaciones y consultas de un domino de negocios a nivel conceptual.

NORMA, aunque provee de un lenguaje ampliamente descripto, no posee ningún soporte de razonamiento y, además, requiere de la instalación de Visual Studio 2015 o inferior, haciendo de esta herramienta dependiente de versiones desactualizadas de esta IDE. Sin embargo, el soporte al lenguaje visual es próximo a la Lógica Descriptiva y de interés por promover la orientación a los hechos.

% En la misma dirección, VOWL explota los diagramas vinculados por nodo (``node-link diagrams'' en inglés)\chris{01-01-2017}{¿Está bien decir así, entre paréntesís cómo es en inglés?} para mostrar ontologías enfocándose en el esquema y en algunas recomendaciones en cómo indicar individuos y sus valores de datos.

\section{Eddy para Graphol}
%% Sí, ¡es SROIQ! así Figura en el paper gbraun:graphol.
Graphol \cite{gbraun:graphol} es un lenguaje visual para ontologías que posean una expresividad en sus TBoxes de tipo $\mathcal{SROIQ(D)}$. Incluso, como se describe en \cite{graphol_to_owl}, permite representar ontologías, como si fueran en OWL 2, pero por medio de una representación completamente gráfica evitando la escritura que requiere de sintaxis complejas.

La herramienta ofrecida en su sitio web\footnote{\url{http://www.dis.uniroma1.it/~graphol/}} se denomina Eddy y permite importar y exportar OWL 2 para ser graficado, y luego visualizar y editar este archivo por medio del lenguaje visual. La Figura \ref{fig:eddy en graphol} muestra al editor Eddy con una ontología de ejemplo. %% La visualización y edición sólo se ofrece sobre Graphol. 

Cabe notar que se requiere la comprensión de un nuevo lenguaje puesto que no se provee soporte para los lenguajes estándares en la industria del desarrollo de software (i.e. UML, EER, etc.). Además, no posee ningún tipo de servicio de razonamiento para determinar la consistencia o resolver consultas. A pesar de que permite la incorporación de \emph{plug-ins}, no se han encontrado ninguno que permita conectar la herramienta a tal servicio.

La posibilidad de utilizar OWL 2 como lenguaje permite la utilización de un razonador \emph{a posteriori} si la ontología exportada es previamente encapsulada en un texto OWLlink junto con las consultas. Sin embargo, esto debe realizarse por separado de forma manual, escribiendo dicho texto y ejecutando el razonador.

\begin{landscape}
\begin{figure}[h]
  \centering
  \includegraphics[width=\linewidth]{graphol.png}  
  \caption{Editor gráfico Eddy mostrando una ontología en Graphol.}
  \label{fig:eddy en graphol}
\end{figure}
\end{landscape}

\section{Menthor y OntoUML}
OntoUML \cite{gbraun:tool:Guizzardi} es una versión formal basada en patrones del lenguaje UML. Su metamodelo ha sido diseñado en conformidad con las distinciones ontológicas de una teoría bien fundada denominada Unified Foundational Ontology (UFO) propuesta en \cite{gbraun:eemcs7146:2005}. 

%% Traducción de esto:
%% OntoUML is a pattern-based and ontologically well-founded version of the Unified Modeling Language (UML). Its meta-model has been designed in compliance with the ontological distinctions of a well-grounded theory, named the Unified Foundational Ontology (UFO)

Menthor es un editor gráfico para OntoUML, que tiene la posibilidad de incluir reglas OCL (Object Constraint Language) \cite{omg14:_objec_const_languag} al modelo y también de verificar la consistencia de los diagramas por medio de un razonador denominado Alloy Analizer. También, permite exportar el modelo a una ontología en varios formato, incluyendo OWL, y utilizando varias codificaciones denominadas ``aproximaciones''.

Tanto \crowd{} como Menthor utilizan lenguajes visuales y pueden generar una representación en \DL{} de los modelos proveídos por el usuario. Sin embargo, \crowd{} se basa en lenguajes de modelado conceptual ampliamente conocidos por la ingeniería del software, como el UML, para el desarrollo de ontologías, evitando la necesidad de aprender un lenguaje nuevo. Asimismo, para la verificación de satisfacibilidad del modelo del usuario, el servicio de razonamiento de \crowd{} utiliza el programa razonador RACER \cite{gbraun:racer:HaMo01a} cuya expresividad se corresponde con la \DL{} \SHIQ{}. Sin embargo, el razonador utilizado por Menthor, Alloy Analizer, está basado en un algoritmo capaz de resolver SAT (Problema Booleano de Satisfacibilidad). Alloy Analizer recibe como entrada modelos escritos en Alloy \cite{jackson2012software}, un lenguaje para describir estructuras, basado en lógica e inspirado por el lenguaje para especificaciones de software Z \cite{DBLP:books/cu/mckeag80/AbrialSM80}, requiriendo así, una transformación del modelo para su posterior verificación de satisfacibilidad.

\section{ICOM} 

Finalmente, la más relacionada a nuestro trabajo es ICOM \cite{Fillottrani:2012:icom, DBLP:conf/dlog/FillottraniFT11, gbraun:ICOM:2007, DBLP:conf/dlog/FillottraniFT06}, considerándola como la herramienta fundacional de \crowd{}. ICOM adopta un lenguaje gráfico neutral para representar ontologías por medio de diagramas similares al UML o ER, aprovechando la ventaja de que sea claro aún para personas que no están familiarizados con los lenguajes ontológicos más clásicos. 

Según \cite{conicet:journals/semweb/FillottraniFT12}, la herramienta posee una interfaz que brinda apoyo a la ingeniería ontológica para crear modelos claros y de criterios de calidad medibles. Esto se logra por medio de la formalización interna, traduciendo los diagramas y restricciones entre modelos a una lógica basada en clases. 

En la Figura \ref{fig:icom} se presenta una captura de pantalla de la herramienta con una ontología de ejemplo. ICOM ofrece una opción para conectarse a un razonador y chequear la consistencia del modelo. 

A pesar de tener la posibilidad de utilizar servicios de razonamientos, el protocolo DIG, junto con sus limitaciones para modelar ontologías más expresivas, y las bibliotecas gráficas que utiliza, ya se encuentran discontinuados haciendo que estos aspectos críticos de la herramienta dificulten su continuidad en el desarrollo. \crowd{} está desarrollada con tecnología web para poder ser utilizada por varias personas y promover así el uso colaborativo de la misma descartando las dificultades de instalación y puesta en marcha, diferencia sustancial con ICOM la cual está escrita en Java con la intención de que sea solamente una aplicación de escritorio.

\begin{landscape}
\begin{figure}[h]
  \centering
  \includegraphics[width=\linewidth]{icom.png}
  \caption{ICOM con una ontología de ejemplo.}
  \label{fig:icom}
\end{figure}
\end{landscape}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../../tesis"
%%% TeX-PDF-mode: t
%%% coding: utf-8-unix 
%%% End: 
