Antes de meterse de lleno en el caso de uso que se propone en esta entrada, es importante presentar una pequeña introducción sobre qué es la web semántica, también llamada Web 3.0 o Linked Data. Según la definición dada por la W3C:

La Web Semántica es una Web extendida, dotada de mayor significado en la que cualquier usuario en Internet podrá encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una información mejor definida. Al dotar a la Web de más significado y, por lo tanto, de más semántica, se pueden obtener soluciones a problemas habituales en la búsqueda de información gracias a la utilización de una infraestructura común, mediante la cual, es posible compartir, procesar y transferir información de forma sencilla. Esta Web extendida y basada en el significado, se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semántica en la que, en ocasiones, el acceso a la información se convierte en una tarea difícil y frustrante.

Pero, ¿para que sirve en realidad este nuevo paradigma de Linked Data?¿Es realmente útil y necesario? Bien, posiblemente todos somos conscientes del cambio que ha experimentado nuestra forma de comunicarnos, trabajamos y hacemos negocios desde que la Web se introdujo en nuestro día a día. La comunicación prácticamente con todo el mundo en cualquier momento y a bajo coste es posible hoy en día. Podemos realizar transacciones económicas a través de Internet. Tenemos acceso a infinidad de recursos, independientemente de nuestra situación geográfica e idioma. Indudablemente, todos estos factores han contribuido al éxito de la Web. Sin embargo, al mismo tiempo, estos factores que han propiciado el éxito de la Web, también han originado sus principales problemas: sobrecarga de información y heterogeneidad de fuentes de información con el consiguiente problema de interoperabilidad.

Es precisamente en este punto donde aparece la web semántica, naciendo con el objetivo de ayudar a resolver estos dos importantes problemas permitiendo a los usuarios delegar tareas en software. Gracias a la semántica en la Web, el software es capaz de procesar su contenido, razonar con este, combinarlo y realizar deducciones lógicas para resolver problemas cotidianos automáticamente. Pero, ¿como funciona esta Web 3.0? Para ello se propone un simple caso de uso. Supongamos, por ejemplo, que un usuario necesita encontrar todos los vuelos a Berlín para mañana por la mañana. Si la web tuviera la capacidad de construir una base de conocimiento sobre las preferencias de los usuarios y que, a través de una combinación entre su capacidad de conocimiento y la información disponible en Internet, fuese capaz de atender de forma exacta las demandas de información por parte de los usuarios en relación, como por ejemplo reserva de hoteles, médicos, libros, etc., los resultados obtenidos al consultar los vuelos a Berlín serían exactos.

No obstante, la realidad es otra. En la Figura 1 se muestran los resultados inexactos que se obtendrían con el uso de cualquier buscador actual, el cual ofrecería información muy variada sobre Berlín pero que posiblemente no tendrá nada que ver con lo que realmente buscaba el usuario. De esta forma, el siguiente paso que debería llevar a cabo el usuario sería realizar una búsqueda manual  entre esas opciones que aparecen, con la consiguiente dificultad y pérdida de tiempo.

fig1

Figura 1

Con la incorporación de semántica a la Web los resultados de la búsqueda deberían ser exactos. Por ejemplo, en la Figura 2 se muestran los resultados obtenidos mediante un buscador semántico. Como se puede observar esta vez los resultados sí que ofrecen información exacta sobre la búsqueda del usuario: la información geográfica desde la que el usuario envía su pregunta es detectada de forma automática sin necesidad de especificar el punto de partida del viaje, así como el hecho de que elementos como «mañana» adquirirían significado, convirtiéndose en un día concreto en función de un «hoy». Algo semejante ocurría con el concepto de «mañana», el cual sería interpretado como un momento determinado del día.

fig2

Figura 2

De esta forma, la manera en la que se procesará esta información no sólo se realizará en términos de entrada y salida de parámetros sino en términos relacionados por su semántica. De esta forma la Web Semántica como infraestructura basada en metadatos aporta un camino para razonar en la Web, extendiendo así sus capacidades. No obstante, no se trata de una inteligencia artificial mágica que permita a las máquinas entender las palabras de los usuarios sino sólo consiste en la habilidad de una máquina para resolver problemas bien definidos, a través de operaciones bien definidas que se llevarán a cabo sobre datos existentes bien definidos.

Respecto los mecanismos que dan vida a la Web Semántica, destacan principalmente los siguientes:

  • RDF: Proporciona información descriptiva simple sobre los recursos que se encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios, colecciones personales de música, fotos, eventos, etc.
  • SPARQL: Lenguaje de consulta sobre RDF, que permite hacer búsquedas sobre los recursos de la Web Semántica utilizando distintas fuentes datos.
  • OWL: Mecanismo para desarrollar temas o vocabularios específicos en los que asociar esos recursos. Lo que hace OWL es proporcionar un lenguaje para definir ontologías estructuradas que pueden ser utilizadas a través de diferentes sistemas. Las ontologías, que se encargan de definir los términos utilizados para describir y representar un área de conocimiento, son utilizadas por los usuarios, las bases de datos y las aplicaciones que necesitan compartir información específica, es decir, en un campo determinado como puede ser el de las finanzas, medicina, deporte, etc. Las ontologías incluyen definiciones de conceptos básicos en un campo determinado y la relación entre ellos.

Tras esta introducción a la Web Semántica, vamos a ver como podemos aprovechar su potencial en nuestro campo de trabajo. Una primera utilidad que se ha desarrollado es la incorporación de información variada sobre eventos en el entorno de virtualización de la Smart City: CITISIM. Para ello se han empleado los datos proporcionados por la iniciativa «Opendata Cáceres» del Ayuntamiento de Cáceres. Entre los diferentes tipos de datos que ofrece esta iniciativa acerca de la ciudad de Cáceres, nosotros nos quedaremos para este caso de uso con aquellos relacionados con la Semana Santa y sus eventos, la procesiones.

Entre toda la información ofrecida acerca de las procesiones que tienen lugar en esta ciudad durante la Semana Santa, nos quedaremos con aquellos datos que tienen que ver con la localización de los diferentes pasos que componen una determinada procesión. Aunque el objetivo final será el de representar en tiempo real estas ubicaciones en CITISIM, de momento este primer caso de uso se limitará a la representación de las diferentes rutas.

Para ello, se ha implementado un cliente que se encargará de recuperar de la base de conocimiento toda la información necesaria para la representación. En el siguiente fragmento se muestra una consulta SPARQL donde se consultan todos los pasos y procesiones que tienen lugar en Cáceres ordenados por fecha.

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX om: <http://opendata.caceres.es/def/ontomunicipio#&gt;

select ?URI ?time ?label ?comment ?itineraPaso where{
?URI om:itineraPaso ?itineraPaso .
OPTIONAL{ ?URI time:at ?time .} .
OPTIONAL{ ?URI rdfs:comment ?comment .} .
OPTIONAL{ ?itineraPaso rdfs:label ?label .} .
}
ORDER BY ASC(?time)

Una vez que este cliente ha recuperado toda la información necesaria de la base de conocimiento, debe procesarla y parsearla a formato OpenStreetMap (osm) con el que trabaja el sistema de virtualización CITISIM. En la Figura 3 se muestra el resultado de representar la ruta de una de las procesiones. En este enlace se muestra en el servidor el resultado de la virtualización.

fig3

Figura 3

Nótese que aunque se hayan empleado los datos proporcionados por esta iniciativa, el caso de uso aquí propuesto podría extrapolarse a cualquier ciudad que proporcione información sobre procesiones o cualquier otro tipo de evento. La tarea de adaptación sería nula o prácticamente nula gracias al uso de las ontologías, lo cual permite estandarizar los datos y ahorrar grandes cantidades de tiempo y esfuerzo en el desarrollo.

El trabajo futuro que queda pendiente para las próximas iteracciones es el siguiente:

  • Integración de este servicio en el middleware semántico Dharma.
  • Desarrollo un servicio basado en Scone que permita, a partir de la información relativa a la ciudad y al evento o eventos que están teniendo lugar en un momento dado, diseñar los planes y rutas de evacuación necesarios en el caso de que se haya producido algún tipo de incidente.

De esta forma el esquema del servicio final que se pretende conseguir es el mostrado en la Figura 4.

fig4

Figura 4