Según la RAE, la ontología es: Las relaciones existentes entre los conceptos de un dominio o área de conocimiento”. Los conceptos ontologías en la ingeniería de software tienden a estar más cerca de la ingeniería del conocimiento, por lo que normalmente los ingenieros de software no tienen la costumbre de utilizarlo para tratar de resolver los problemas del ramo.
Es necesario que los ingenieros de software tengan la costumbre o rutina de apropiarse de las ontologías, ya que estas brindan la oportunidad de disponer de un vocabulario común, que puede contribuir a la solución recurrente de los problemas en la ingeniería de software, siendo una de las más generalizadas la dificultad de comunicación entre los integrantes de los desarrollados de software y sus clientes. La ontología es una disciplina milenaria que abarca desde el estudio de categorías liderado por Aristóteles hasta la metafísica y la ciencia que estudia la esencia y sus propiedades.
En el entorno de la inteligencia artificial, disciplina que se encarga de lograr que las computadoras realicen las tareas, que por el momento la realizan mejor los humanos, se define la ontología como las teorías que especifican o desarrollan un vocabulario relacionado con un dominio en particular. Este vocabulario define entidades, clases, propiedades, predicados y funciones, entre otros. De este surgen definiciones complementarias que son:
- Conceptualización: es el modelo abstracto de un fenómeno, que generalmente se expresa como un conjunto de conceptos (entidades, atributos, procesos), sus definiciones e interrelaciones.
- Formal: es una organización teórica de términos y relaciones usados como herramienta para el análisis de los conceptos de un dominio. • Compartida: recopila el conocimiento consensual que es aceptado por una comunidad.
- Explícita: trata sobre la especificación de los conceptos y a las restricciones sobre ellos.
La ontología como herramienta
Las ontologías son una herramienta clave en la resolución de la interoperabilidad semántica entre los sistemas de información y su uso en el contexto. Sheth (1999) afirma que la investigación sobre la nueva generación de sistemas de información debe centrarse primero en áreas específicas y luego intentar desarrollar arquitecturas más generales. Los filósofos y los desarrolladores de software tienen diferentes puntos de vista sobre las ontologías. Guarino (1998) muestra la diferencia entre ontología en el sentido filosófico y la forma en que la comunidad de inteligencia artificial usa el término.
Para la ingeniería de software, la ontología describe una realidad determinada con un vocabulario determinado, utilizando una serie de premisas que corresponden a un significado intencional del vocabulario. En el sentido filosófico, la ontología es un sistema específico de categorías que refleja una visión específica del mundo. Gruber (1992) define una ontología como la especificación explícita de una conceptualización, es decir, proporciona estructura y contenido de forma explícita que codifica las reglas implícitas en una parte de la realidad.
Estas declaraciones explícitas son independientes del propósito y alcance en el que se utilizan o reutilizan sus definiciones. Guarino (1998) amplía esta definición: una ontología es una teoría lógica que corresponde al significado pretendido de un vocabulario formal, es decir, de un comportamiento ontológico con una conceptualización específica del mundo.
Los patrones predichos del lenguaje lógico que utilizan este vocabulario están controlados por su comportamiento ontológico. Este comportamiento en la conceptualización subyacente se refleja en la ontología a través del enfoque de modelos deliberados. De esta forma, se puede decir que para un desarrollador de software existen varias ontologías, mientras que para un filósofo solo hay una, la Ontología.
Ingeniería de la ontología
Según Wikipedia, La Ingeniería ontológica “es un campo de las ciencias de la computación y ciencias de la información que estudia los métodos y metodologías para construir esquemas conceptuales (ontología): esta corresponde a la representación formal de un grupo de conceptos dentro de un dominio y de las relaciones entre esos conceptos. Una representación a gran escala de conceptos abstractos como acciones, tiempo, objetos físicos y creencias podría ser un ejemplo de ingeniería ontológica”.
La ingeniería ontológica se refiere a un conjunto de actividades relacionadas con el desarrollo de la ontología, incluyendo métodos, herramientas del lenguaje que apoyan este proceso. La investigación en este campo comenzó hace algunas décadas y recientemente ha captado mayor atención por parte de los principales desarrolladores, debido al creciente interés en áreas como la administración, los negocios, la medicina, la Red Semántica, entre otras.
Las ontologías se caracterizan por una definición de un vocabulario común además de incluir la interpretación de los conceptos básicos de un dominio específico y las relaciones entre ellos. En otras palabras, una ontología es una especificación de lo que existe en un determinado dominio, siendo una pieza fundamental de tecnologías orientadas a la Web Semántica.
Tipos de ontologías
Las ontologías se pueden clasificar desde diferentes tipos de criterios. Entre ellos están:
- Formalidad: se refiere al grado de formalismo del lenguaje utilizado para expresar la conceptualización, como:
- Muy informal
- Estructurado informal
- Semiformal
- Estrictamente formal.
- Finalidad: está relacionada con la intención de uso de la ontología, entre ellas se encuentran las de comunicación entre personas, la interoperabilidad entre sistemas y las ontologías de aprovechamiento de la ingeniería de sistemas.
- Materia: este expresa la naturaleza de los objetos que caracteriza la ontología. En cuanto a esta dimensión, las ontologías pueden ser: dominio, tarea y representación.
Por otra parte, existe otra forma de clasificar las ontologías según la cantidad y el tipo de estructura conceptual, estas son:
- Ontologías terminológicas: esta permite especificar los términos utilizados para representar el conocimiento en el universo del discurso. Suelen utilizarse para unificar vocabulario en un campo determinado.
- Ontologías de información: permite especificar la estructura de almacenamiento de la base de datos. Permite, además, poseer un ámbito para el almacenamiento estandarizado de la información.
- Ontologías de modelado del conocimiento: delimitan conceptualizaciones del conocimiento. Contienen una rica estructura interna y, a menudo, se adaptan al uso particular del conocimiento que describen.
También debido a su dependencia y relación con una tarea específica, las ontologías se clasifican en:
- Ontologías de alto nivel o genéricas: permiten describir conceptos más generales.
- Las ontologías de dominio: esta permite describir un vocabulario relacionado con un dominio genérico.
- Ontologías de tareas o técnicas básicas: sirve para describir una tarea, actividad o artilugio.
- Ontologías de aplicación: permite describir conceptos que dependen de un dominio y una tarea específicos, y generalmente son una especialización de ambos.
Componentes de las ontologías
Una ontología es una herramienta conceptual que define un vocabulario común para quienes necesitan intercambiar información dentro de un dominio en particular. Los componentes de una ontología pueden variar si se toma como punto base el dominio de interés y las necesidades que poseen los desarrolladores, algunos de estos componentes son:
- Clase o tipo: forman la base para la descripción del conocimiento en ontologías, ya que describen en detalle los conceptos del dominio. Una clase se refiere a un conjunto de objetos (física, tareas, funciones, etc.) y cada objeto es una instancia de su clase. Desde un punto de vista lógico, los objetos de una clase se pueden describir especificando las propiedades que deben cumplir para pertenecer a esta clase. Estas pueden dividirse en subclases, que son conceptos más específicos que la clase a la que pertenecen. Una clase cuyos componentes son clases se conoce como superclase o metaclase.
- Relaciones: se establecen entre conceptos de ontología para representar las interacciones entre ellos. Generalmente definido como el producto cartesiano de n conjuntos: R: C1 x C2 x… x Cn. Algunas de las relaciones más comúnmente utilizadas son:
- Ocurrencia de: mapeo de objetos a clases.
- Relaciones temporales: implican prioridad temporal.
- Relaciones topológicas: establecen relaciones espaciales entre conceptos.
- Instancias: son objetos, miembros de una clase, que no se pueden dividir sin perder su estructura y características funcionales. Estos pueden agruparse en clases.
- Propiedades o ranuras: los objetos se describen mediante una serie de características o atributos que se almacenan en las ranuras. Estos almacenan diferentes tipos de valores. Las especificaciones, rangos y restricciones para estos valores se denominan características o aspectos. Para una clase dada, las ranuras y las restricciones para ellas se heredan de las subclases y las instancias de la clase.
El especialista en desarrollo de software
TECH Universidad Tecnológica se especializa en capacitar a los mejores profesionales de todo el mundo. A través de sus más de 8000 programas ha logrado posicionarse como una de las mejores instituciones educativas virtuales. Una de sus facultades más fuertes es su Facultad de Informática, donde se ofertan programas como el Máster en Tecnología Específica de Telecomunicación y el Máster en Visual Analytics & Big Data. Sin embargo, para aquellos profesionales que buscan especializarse en el área del software, no cabe duda que su mejor elección será el Máster en Ingeniería de Software y Sistemas de Información.