Desarrollo Orientado a la Semántica
Introducción
 
La Web Semántica ha sido en México tópico de investigación y desarrollo los últimos años, así como un buzzword en el ámbito global. En el dominio de las tecnologías de la información y comunicación ha propiciado el surgimiento de nuevos estándares y aplicaciones diseñadas para hacer realidad la visión de Tim Berners-Lee de una red extendida de datos que puedan ser entendidos y procesados directa o indirectamente por máquinas. Más aún, los principios fundamentales de la Web Semántica han ayudado al surgimiento de nuevos paradigmas de desarrollo de software, como el Desarrollo Orientado a la Semántica.
 
¿Qué es la Semántica?
 
Conceptualmente, la semántica es la manera en que percibimos y entendemos el mundo que nos rodea. Esta forma de percepción se basa en la descripción de los objetos del mundo en base a las relaciones que tienen con otros objetos y representa un vocabulario común en los canales de la comunicación humana. Algunas características de la semántica son:
 
  • Constituye un vocabulario consensado.
  • Los objetos nuevos se relacionan con los existentes.
  • Si no se conoce nada acerca de un objeto, éste no existe en la semántica.
  • Genera conocimiento.
  • Es contextual, es decir, está influenciada por el entorno.
 
De la Web a la Web Semántica
 
Puede entenderse mejor la historia de la Web y su evolución si se analiza la propuesta inicial de Tim Berners-Lee para administrar la información relacionada con los experimentos del CERN en los años 90 (figura 1). A grandes rasgos, la idea de Berners-Lee era crear un sistema soportado por una red de computadoras, que permitiera relacionar objetos de información mediante una “telaraña” para que estos fueran fácilmente ubicados y accedidos por cualquier investigador, desde cualquier computadora del CERN.
 
Tim Berners-Lee estableció que el objetivo inicial de la Web era lograr administrar el conocimiento generado en el centro, que se perdía cada que un investigador salía del mismo y se tenía que re-aprender cada que un nuevo investigador ingresaba [1]. Con este objetivo, a lo largo de los años la Web ha evolucionado hasta convertirse en lo que es hoy: cientos de páginas referenciadas con contenidos textuales y multimedia; redes sociales para interactuar con personas de todo el mundo; modernos navegadores con plugins y aplicaciones para hacer infinidad de tareas.
 
Sin embargo, aunque parte del objetivo inicial de la Web se ha cumplido, hasta hace poco no era completamente como lo planteaba Berners-Lee en su propuesta, ya que la única manera de relacionar los objetos de información (en este caso las páginas Web) eran los enlaces de hipertexto y no existía una manera de entender las relaciones conceptuales o jerárquicas entre toda la información existente. Un ejemplo claro de las complicaciones de este esquema sin semántica es la búsqueda de información.


Figura 1. Propuesta de Tim-Berners Lee para la gestión de información en el CERN (1990)
 
Debido a que las computadoras no entienden el contenido de las páginas Web, las búsquedas actualmente se realizan, en su mayoría, por coincidencia de palabras. Por tanto, una búsqueda de “vuelos a México mañana por la mañana” devolverá seguramente resultados de agencias de viajes ofreciendo vuelos, del clima de mañana en la ciudad más cercana, de información turística de México, noticias, etc. Los resultados obligarán al interesado a leer y filtrar información adicional para conseguir lo que busca. Si por el contrario, la Web estuviera estructurada de manera que los buscadores entendieran el significado de la búsqueda, los resultados esperados serían, por ejemplo, ofertas de vuelos a la ciudad de México el día posterior al actual entre las 6a.m. y las 11 a.m.
 
Ante esta situación, Berners-Lee creó la iniciativa de la Web Semántica y definió a esta como “una red extendida de datos que puedan ser entendidos y procesados directa o indirectamente por máquinas”. El objetivo de la iniciativa es dotar a la Web de los mecanismos necesarios para poder agregar significado a la información, mediante relaciones con más semántica que las del hipertexto. Estas relaciones permitirán programar sistemas y agentes de software capaces de entender la información, organizarla y razonar en torno a ella para generar nueva información útil a los humanos.
 
Los estándares de la Web Semántica
 
La implementación de la Web Semántica ha sido un trabajo duro a manos del World Wide Web Consortium (W3C) presidido actualmente por el mismo Berners-Lee. La W3C ha desarrollado un conjunto de estándares y lenguajes para administrar el conocimiento existente en la Web, estos estándares y lenguajes son: RDF, OWL y SPARQL.
 
RDF
 
RDF es un modelo estandarizado, diseñado para el intercambio de datos en la Web, que incluye características que facilitan la integración de datos de diferentes orígenes, debido a que la información es almacenada mediante de grafos dirigidos y etiquetados, que pueden ser conectados entre sí a través de relaciones simples. Por ejemplo, si se quisiera representar el hecho de que Hasdai Pacheco es una persona que vive en la ciudad de México, estudió en CENIDET y trabaja para INFOTEC, podría hacerse mediante el grafo de la figura 2.


Figura 2. Grafo representando hechos (información) sobre una persona.
 
Adicionalmente, RDF permite la descripción de información acerca de un objeto en forma de tripletas, que es una estructura simple que abstrae un grafo [2]. Cada tripleta puede considerarse como un vector de tres componentes: sujeto, propiedad y objeto, donde la propiedad es la relación existente entre el sujeto y el objeto. Siguiendo este concepto, la figura 2 puede representarse en tripletas como se muestra en la tabla 1.
 

Tabla 1. Tripletas de un grafo representando hechos (información) sobre una persona.
 
Como puede observarse, la representación en forma de tripletas es una manera conveniente para almacenar la información en tablas de una base de datos relacional. Cabe mencionar que la ejemplificación descrita del uso de RDF es para fines de entendimiento, pues RDF aplica conceptos adicionales como las URIs, recursos, clases, tipos de datos, nodos, entre otros más.
 
OWL
 
OWL es un lenguaje para definir e instanciar ontologías [3] Web, pensado para usarse cuando la información de un dominio de conocimiento será procesada tanto por aplicaciones como por humanos. Puede usarse para representar el significado de los términos de los vocabularios usados en documentos Web, así como las relaciones que existen entre dichos términos. OWL define más construcciones que RDF para dotar de significado a los objetos representados, como por ejemplo: relaciones de restricción, intersección y equivalencia entre clases, además de tipos de propiedades. Podría verse a OWL como una capa enriquecida de RDF (aunque estrictamente no sea así).
 
SPARQL
 
La idea de la Web Semántica, como se ha comentado en párrafos anteriores es lograr que las computadoras entiendan el contenido y relaciones entre la información para lograr, entre otras cosas, la recuperación de información de manera adecuada. SPARQL es el lenguaje de consulta de información utilizado en la Web Semántica. A diferencia de los lenguajes SQL, SPARQL basa sus consultas en búsquedas de patrones sobre grafos en lugar de búsquedas de campos de información. Del mismo modo, el resultado de las consultas es un subgrafo en lugar de un conjunto de tuplas.
 
La situación actual de la Web Semántica
 
Actualmente, los estándares RDF, OWL y SPARQL son maduros y gracias a ello la Web está siendo finalmente semantizada. Empresas como Facebook y Google utilizan ya información generada en formato RDF con OWL para describir las relaciones entre dicha información. Esto les permite, de primera instancia, extraer información útil para reforzar sus estrategias de publicidad, que han probado ser muy efectivas al explotar la información de los usuarios, sus gustos, hábitos y relaciones familiares, laborales o sentimentales.
 
El problema ahora es que la información representada de manera semántica utiliza las definiciones propias de cada empresa y es prácticamente imposible relacionarla de manera correcta, ya que se cuenta con silos de grafos distribuidos en toda la red. Es por ello que ha surgido la iniciativa de Linked Data, para enlazar toda la información disponible en los grafos de la Web y construir un único grafo que representa todo el conocimiento almacenado en la red.
 
El desarrollo Orientado a la Semántica
 
Los mecanismos desarrollados para representar conocimiento, principalmente los de la Web Semántica, evidencian las limitantes de algunos de los paradigmas de desarrollo de software actuales. Estas limitantes están relacionadas principalmente con los lenguajes que usan estructuras de datos predefinidas y el uso de la orientación a objetos con herencia múltiple restringida o no permitida. Por otro lado, las bases de datos relacionales, que son aún de las más utilizadas para persistir la información en los sistemas de software, no cuentan con la flexibilidad para modelar escenarios donde la naturaleza y estructura de los datos cambia constantemente y requiere recuperarse con un alto nivel de desagregación. 
 
Dada esta problemática, INFOTEC ha creado el Desarrollo Orientado a la Semántica. El Desarrollo Orientado a la Semántica es un framework que pone en práctica las ideas y estándares de la Web Semántica dentro del proceso de desarrollo de software. Es decir, toma como punto de partida el conocimiento de un dominio capturado en una ontología para generar de manera automática la arquitectura y funcionalidad básica de un sistema de software cuyos objetos son persistentes de manera nativa en formato RDF. 
 
Lo anterior permite contar con un mecanismo acelerado de construcción semiautomática de aplicaciones, permitiendo responder de manera rápida a los requerimientos cambiantes de cada proyecto de desarrollo y facilitando el mantenimiento de las aplicaciones.
 
Componentes del Framework
 
El framework de Desarrollo Orientado a la Semántica de INFOTEC es llamado SemanticWebBuilder Platform (SWB Platform) y su esquema conceptual se muestra en la figura 3. 


Figura 3. Esquema conceptual de SWB Platform.
 
SWB Platform proporciona a los desarrolladores los siguientes elementos:
 
Una metodología definida de desarrollo
 
La metodología de Desarrollo Orientado a la Semántica reutiliza muchos aspectos de las metodologías de desarrollo orientado a objetos, pues considera las fases del proceso tradicional de desarrollo de software basado en etapas [4], aunque las etapas se llevan a cabo de manera distinta e incluso generan documentación distinta a la que se genera en el desarrollo tradicional orientado a objetos. Se aplica en un contexto iterativo (figura 4), en el cual se refina el conocimiento del dominio mediante una ontología.


Figura 4. Metodología de Desarrollo Orientado a la Semántica
 
En cada iteración del proceso, el tiempo de vida del ciclo se acorta y el conocimiento del dominio se consolida. El sistema madura a medida que el conocimiento lo hace y ambos convergen de manera cada vez más acelerada hacia el dominio de la solución, es decir, hacia el sistema de software que cumple con los requisitos especificados. También en cada iteración se considera la intervención del experto en las actividades que son cruciales para la validación del proceso, siendo la más fuerte la definición del conocimiento relativo al dominio de la aplicación, puesto que la idea del desarrollo orientado a la semántica es precisamente centrar los esfuerzos en explicitar el conocimiento asociado al desarrollo más que en el desarrollo mismo.
 
Aunque la metodología presentada en la figura 4 tiene de primera vista cierta similitud con el modelo de espiral de Boehm [5], es de notarse que en el detalle de las etapas de modelado y desarrollo tiene claras distinciones, tanto conceptuales como funcionales, respecto a éste y respecto a los paradigmas de desarrollo tradicional. Conceptualmente hablando, la entrada de la metodología de desarrollo orientado a la semántica no es un conjunto de objetos entendibles sólo por un ingeniero de software, sino que es un conjunto de conceptos más cercanos al lenguaje humano, cercanos a quien conoce el dominio del problema. La salida, por otra parte, no es un diagrama conceptual acotado a los términos de la programación orientada a objetos, sino la base de una aplicación semántica que puede ser extendida para construir un sistema de información altamente complejo, el cual considera e implementa desde su inicio la persistencia y exposición de datos en RDF. 
 
Entre la entrada y la salida de la metodología existe un mecanismo de transformación y una plataforma compuesta por herramientas y utilerías para manejo de información semántica, que permite lograr el éxito en la aplicación del framework. 
 
Una ontología para desarrollo de Software
 
Para construir SWB Platform fue definida una ontología de alto nivel que sirve para modelar los requerimientos de sistemas de información. Esta ontología, desarrollada en lenguaje OWL, contiene una jerarquía básica que define un conjunto de clases y propiedades que ayudan en la generación de código. La ontología puede ser extendida para describir dominios específicos y por consecuencia, acelerar el desarrollo de nuevas ontologías mediante el reúso de los conceptos definidos.
 
La ontología de SWB Platform define una extensión a las clases básicas de OWL para describir conceptos como página Web, sitio Web, usuario, rol, dispositivo, entre otros. Del mismo modo define una extensión a OWL para crear comportamientos genéricos aplicables a los conceptos, tales como la capacidad de ser activado/desactivado, indexado, descrito, entre otros comportamientos.
 
Un mecanismo para la generación automática de código
 
El mecanismo de generación de código desarrollado para la Programación Orientada a la Semántica mediante SWB Platform (figura 5) utiliza la ontología base y un conjunto de reglas de transformación para escribir el código, en lenguaje Java, que administra la información descrita en el modelo del sistema, así como sus comportamientos.
 
Cuando se ejecuta este generador de código, cada clase, propiedad y comportamiento en la ontología son mapeados a su correspondencia en una clase, variable miembro o interfaz en el lenguaje Java, conservando las relaciones de herencia definidas, mediante el uso de objetos de encapsulamiento sobre el lenguaje OWL. Los objetos de encapsulamiento se encargan de delegar la persistencia de la información en formato RDF dentro de distintos sistemas de persistencia y bases de datos.


Figura 5. Funcionamiento del mecanismo de generación de código de SWB Platform.
 
Un API y un conjunto de utilerías para el desarrollo acelerado
 
Para lograr la generación de código y el desarrollo de aplicaciones partiendo de ontologías, se desarrolló un API base y un conjunto de paquetes de código con funciones comunes, probadas y consistentes, que permiten desarrollar nuevas funciones, nuevos generadores de código y nuevos sistemas de persistencia partiendo de las ideas del framework propuesto por INFOTEC. Entre las funciones de esta API se encuentran los métodos del sistema de persistencia y caché de objetos, el manejo transparente de almacenamiento en RDF con distintos almacenes de tripletas, la conexión a bases de datos SQL y NoSQL, el manejo de información de componentes tipo portlet, entre otras.
 
El uso del API, después de la generación de código proporciona una capa de abstracción adicional que ayuda a los desarrolladores a manipular la información de los objetos con métodos sencillos, permitiendo que se enfoquen en la funcionalidad específica de las aplicaciones más que en la definición de los esquemas de almacenamiento y recuperación de la información.
 
Caso de éxito del Desarrollo Orientado a la Semántica
 
Un caso de éxito de la aplicación del framework de Desarrollo Orientado a la Semántica es la suite de productos Open Source SemanticWebBuilder, cuya arquitectura general se muestra en la figura 6. La suite cuenta con los siguientes productos:
 
  • SWB Platform: Plataforma que permite el desarrollo acelerado de aplicaciones mediante modelos ontológicos.
  • SWB Portal: Portalizador y administrador de contenidos semánticos para la construcción de sitios y aplicaciones Web.
  • SWB Process: Herramienta BPM para el desarrollo de procesos de flujo de negocio basados en modelos semánticos y portalizable al conjugarse con SWB Portal.
  • SWB Social: Herramienta que permite la descentralización de la publicación, seguimiento y monitoreo en los diferentes medios sociales de una forma segura, inteligente y accesible.
  • SWB Strategy: Producto basado en la metodología Balanced Scorecard para la Planeación Estratégica organizacional, que facilita la automatización de la gestión de metas, objetivos, indicadores y otros elementos que componen los mapas de procesos de negocio, así como el seguimiento de los avances y cumplimiento de los mismos.
  • CONORG: Repositorio de conocimiento que permite registrar, documentar, relacionar y explotar mediante contextos, el aprendizaje organizacional.
  • INFOTANK: Juego donde los jugadores demuestran sus habilidades de programación, lógica y estrategia para derrotar a sus oponentes. La idea es detectar talento y habilidades de creatividad, análisis y resolución de problemas, para campos como inteligencia artificial, desarrollo semántico y seguridad. En 2015 INFOTANK dará de qué hablar pues se planea un concurso nacional.
 
Toda la suite de productos fue desarrollada con el uso del framework SWB Platform descrito en este artículo y como consecuencia, se han generado ontologías específicas para los dominios involucrados. Varios de los productos son utilizados por dependencias del Gobierno Federal para implementar sus portales y aplicaciones estratégicas.

 


Figura 6. Estructura general de la familia de productos SemanticWebBuilder.


Como resultado de la aplicación del framework en la suite SemanticWebBuilder, se ha validado la utilidad y efectividad del Desarrollo Orientado a la Semántica en ambientes productivos. Del mismo modo, se ha consolidado una plataforma tecnológica mexicana para la creación de sistemas en iniciativas de Open Data y Linked Data.

Tanto el framework como la plataforma han sido difundidas a nivel nacional e internacional y están a disposición bajo el esquema de código abierto para que estudiantes, investigadores o empresas puedan aprovechar las funciones y ventajas, desarrollar aplicaciones y contribuir a las iniciativas de la Web Semántica y principalmente comiencen a programar con los nuevos paradigmas que los modelos tecnológicos impulsan día con día.

[1] http://www.w3.org/History/1989/proposal.html.
[2] http://www.w3.org/TR/rdf-concepts/ .

[3] Una ontología es la representación de una conceptualización de un dominio. 
[4] Metodologías como el modelo de desarrollo en cascada, el modelo iterativo, el modelo de espiral, entre otros.
[5] ACM SigSoft Software Engineering Notes. vol. 2, pp. 22-42 (1986).


(Artículo publicado originalmente en la revista Develop Network No. 7 (primera parte) y 8 (segunda parte) en sus ediciones abril y mayo 2015) 

Por Ebenezer Hasdaí Pacheco
M.C. Consultor especialista en la Gerencia de Desarrollo de Nuevos Productos y Servicios de INFOTEC.
 


Comments

 

 

INICIA SESIÓN
Regístrate aquí
VIDEOS
JAVIER SOLÍS GONZÁLEZ

GALERÍA

¡ÉCHALE UN OJO A LAS IMÁGENES!

AQUÍ PODRÁS ENCONTRAR TODOS NUESTROS WALLPAPERS, INFOGRAFÍAS, ESQUEMAS Y MÁS.

LO MÁS VISTO