• No se han encontrado resultados

4. RESULTADOS Y DISCUSIÓN

4.3 MÉTODO PARA LA SELECCIÓN DE HERRAMIENTAS DE INGENIERÍA

4.3.2 Modelo Semántico

El conocimiento se ha representado en los sistemas de información utilizando diversos formalismos. En las bases de datos se han utilizado diagramas entidad-relación para definir los conceptos y sus relaciones en un determinado universo. En programación se han utilizado gramáticas y estructuras de datos como clases y objetos. En Ingeniería del Software se ha propuesto el uso de lenguajes de modelado como UML en donde también es posible definir clases y sus relaciones. Algunas de las formas que se han utilizado para representar el conocimiento en Inteligencia Artificial son la lógica matemática y las

58

estructuras de datos. En la lógica matemática destacan los enfoques basados en lógica y los basados en reglas (Samper Zapater, 2005).

La semántica se puede explicar haciendo una comparación con la lectura de un texto; en éste hay símbolos que son interpretados por el lector de acuerdo a un modelo mental. Es decir, quien lee posee el significado de una parte del universo en su mente. Dependiendo de quien lea el mismo escrito, se podrán obtener diferentes interpretaciones. Debido a ésto, se puede decir que en el texto como tal no hay ningún conocimiento, a menos que exista alguien (o algo) que interprete su semántica. Si se desea esparcir conocimiento en documentos, se necesitará automatizar el proceso de interpretación semántica. Se requiere que se describan y representen de manera computacional los modelos mentales que se tienen sobre áreas particulares. Es aquí donde entran las ontologías, siendo herramientas muy útiles para ello, ya que intenta limitar las múltiples interpretaciones posibles a una sola (justamente, el que se quiere expresar). Ningún otro modelo como puedan ser las taxonomías, bases de datos, etc. es capaz de hacerlo. De esta forma ya no serán los humanos, sino las computadoras las que se encargarán de interpretar los distintos vocabularios (Samper Zapater, 2005).

Un lenguaje de representación del conocimiento incluye una sintaxis del lenguaje (describe la configuración que puede constituir sentencias) y semántica (determina los hechos y significado basado en las sentencias) (Samper Zapater, 2005).

Las Bases de Conocimiento son la evolución lógica de los sistemas de Bases de Datos tradicionales, en un intento de plasmar no ya cantidades ingentes de datos, sino elementos de conocimiento (normalmente en forma de hechos y reglas) así como la manera en que éste ha de ser utilizado. También se les trata de dotar de conocimiento sobre sí mismas, es decir, una Base de Conocimiento ha de "saber lo que sabe” (Moreno Ortiz, 2000).

Una Base de Datos consiste en dos partes: el esquema (estructura de los datos) y los datos que van a ser almacenados. En una Base de Conocimiento, la parte en la que aparecen los términos y relaciones puede ser comparada al esquema de las Bases de Datos y la parte de las instancias, a los datos. Sin embargo la semántica de las instancias difiere de la

59

interpretación semántica de la instancia de los datos de las Bases de Datos. La ausencia de información en las Bases de Datos es interpretada como información negativa, mientras que la ausencia de información en las instancias de la Base de Conocimiento únicamente indica una falta de conocimiento. Las Bases de Datos consideran su conocimiento como “mundo cerrado”, el cual asume que un hecho es falso a no ser que haya sido explícitamente declarado como cierto, al contrario que en la Lógica Descriptiva donde lo consideran “mundo abierto”. Esto da lugar a que las consultas en Lógica Descriptiva requieran un razonamiento no trivial, y no sea suficiente por ejemplo, con chequear instancia por instancia como en el caso de las Bases de Datos (Samper Zapater, 2005).

La principal diferencia entre ambos sistemas, se centra en que mientras que las Bases de Datos manipulan grandes y persistentes modelos de relativamente datos simples, las bases de conocimiento proveen un mayor soporte para la inferencia (encontrando respuestas sobre el modelo que no habían sido dadas explícitamente) e involucrando menor número de datos pero con una mayor complejidad (Borgida, Lenzerini, & Rosati, 2003).

Las descripciones brindadas por un modelo de Entidad Relación se podrían representar mediante ontologías usando Lógica Descriptiva, sin perder su significado. La Lógica Descriptiva puede aportar algunos beneficios como el uso de servicios de razonamiento que ayuden al correcto desarrollo y mantenimiento de modelos; además, gracias a su mayor expresividad podrían usarse para extender los modelos de bases de datos (Samper Zapater, 2005).

Los modelos semánticos tradicionales como Entidad Relación no proveen ciertas características que podrían ser útiles con el fin de representar dependencias complejas entre los datos (Baader, McGuiness, & Nardi, 2003): además de las relaciones “es un” se pueden definir otras como uniones o intersecciones entre entidades, la cardinalidad se puede realizar con más detalle, establecimiento de condiciones necesarias y suficientes, entre otras.

Debido a lo anterior, se optó por utilizar un modelo semántico para representar la base de información de las herramientas. Para ésto, se hizo uso de una ontología que comprende

60

conceptos revisados en este trabajo y que juegan un papel importante a la hora de seleccionar la herramienta más adecuada en un contexto específico.

Una ontología es un vocabulario formalmente definido para un dominio de interés particular. Las ontologías son típicamente creadas para permitir a un programa de computador inferir consecuencias lógicas acerca del dominio. Entonces, desarrollar una ontología podría ser el precursor para crear una base de datos, un sistema experto o una base de conocimiento (Protégé Wiki, 2010).

Como se ha mencionado antes, el editor OWL más ampliamente usado actualmente es Protégé, un entorno de desarrollo libre y de código abierto para la edición de ontologías, desarrollado en la Universidad de Stanford. Protégé permite un manejo óptimo de información y de validación de la ontología usando los servicios que dicha herramienta provee. Particularmente, permite manipular las clases, sus propiedades, restricciones, instancias (Aguilar & Castellanos, 2008). Debido a su estructura abierta a plugins, permite la fácil integración de componentes de edición de ontologías de propósitos especiales (Hitzler, Krötzsch, Parsia, Patel-Schneider, & Rudolph, 2012). Lo anterior es importante gracias a la flexibilidad que brinda al trabajar con ella.

Protégé incorpora dos razonadores (Fact++ y Hermit) por defecto, siendo posible añadirle algunos más, lo que, sumado a las anteriores características y otras como: la facilidad de uso, la representación gráfica de ontologías y la compatibilidad para trabajar con el lenguaje de programación Java; lo hace posiblemente la mejor elección para soportar el desarrollo de la ontología que se plantea en este trabajo.

De acuerdo a lo anterior, se construyó un modelo ontológico usando la herramienta Protégé en el cual se pueden identificar dos grandes partes: los contextos de uso y la estructura de la herramienta. En la primera se plasma lo explicado en el punto previo, en lo referente a la jerarquía mostrada de los contextos de uso identificados (ver Ilustración 3). En el segundo, se refleja la plantilla de caracterización de herramientas de ingeniería inversa, la cual también se mostró antes, y su jerarquización: se ve a la Herramienta como una estructura conformada por Elemento, Función, Aspecto, Característica (ver Anexo A).

61

Ilustración 3. Modelo Ontológico (Contextos de Uso)

Documento similar