Apache Jena es un marco de trabajo (framework) Java para el desarrollo de aplicaciones de la Web Semántica. Esta provee una gran cantidad de bibliotecas de java para manejar RDF, RDFS, OWL y SPARQL de acuerdo con las recomendaciones de la W3C e incluye una máquina de inferencia basada en reglas para razonar sobre ontologías RDFS y OWL. Jena es una plataforma de código abierto que fue desarrollada originalmente por los investigadores de los Laboratorios para la Programación de la Web Semántica de HP (Hewlett Packard) en el año 2000. En el 2009, HP decidió reenfocar la actividad de desarrollo lejos del soporte directo del desarrollo de Jena y el equipo de desarrollo estuvo de acuerdo en que Jena fuera adoptado por Apache Software Foundation en noviembre del 2010.
Apache Jena Framework
Jena como marco de trabajo proporciona característica en el desarrollo de aplicaciones web semánticas como son: Amplia extensión para el acceso a la web, así como integración con varios gestores de bases de datos para la creación de modelos persistentes para el almacenamiento de ontologías en bases de datos relacionales de forma transparente.
Soporte para inferencia que incluye un amplio conjunto de razonadores para los distintos lenguajes entre los que se encuentran: Razonador OWL
Razonador DAML
Razonador de reglas RDF
Razonador genérico de reglas.
SPARQL como lenguaje de consultas
Jena Implementa el lenguaje de consultas SPARQL del inglés SPARQL Protocol and RDF Query Language, característica fundamental para el desarrollo de estos sistemas web semánticos también es importante recalcar la incorporación de bibliotecas para RDF y otros lenguajes ontológicos como OWL, DAML y RDFS.
Entre las ventajas más notables que provee Jena son los razonadores basados en instancias, lo cual es importante debido a la optimización del proceso de inferencia, que trae consigo la omisión de algunas operaciones como clasificación, realización y chequeos de consistencia de las ontologías. Esta simplificación trae consigo un aumento del rendimiento de la aplicación que vale la pena explotar en el sistema de búsqueda semántica que se pretende.
SPARQL. Se trata de un lenguaje estandarizado para la consulta de grafos RDF, normalizado por el RDF Data Access Working Group (DAWG) del Word Wide Web Consortium (W3C). Es una tecnología clave en el desarrollo de la web semántica que se constituyó como recomendación oficial del W3C el 15 de enero de 2008.
Según Apache, SPARQL es un lenguaje de consultas y un protocolo para acceder a documentos RDF diseñado por el W3C RDF Data Access Working Group (grupo de trabajo de la W3C dedicado a la actividad de la web semántica, específicamente con RDF y las formas de acceso a este).
Al igual que sucede con SQL, es necesario distinguir entre el lenguaje de consulta y el motor para el almacenamiento y recuperación de los datos. Por este motivo, existen múltiples implementaciones de SPARQL, generalmente ligados a entornos de desarrollo y plataforma tecnológicas.
Ventajas de SPARQL
Como lenguaje de consultas, SPARQL es orientado a los datos, debido a que solo es capaz de consultar la información contenida en los modelos; no hay inferencia en el propio lenguaje de consultas. No obstante, el modelo de Jena puede ser más “listo” en esto, pues proporciona la impresión de que ciertas tripletas existen creándolas a demanda, incluyendo razonamiento OWL. SPARQL toma la descripción de qué es lo que necesita la aplicación en forma de consulta, y devuelve dicha información en forma de un conjunto de ligamentos de un grafo RDF.
En un principio SPARQL únicamente incorpora funciones para la recuperación sentencias RDF. Sin embargo, algunas propuestas también incluyen operaciones para el mantenimiento (creación, modificación y borrado) de datos.