Integrating Apache Stanbol and Sling: Managing and Enhancing Content

The good thing about Open Source and the good thing about standards is that different sources can easily be integrated to create a more powerful whole. The Apache license allows software to be modified and used without limitation in any open or proprietary software product. This means you can just take Apache Stanbol either as Source-Code or as an executable program and use it very much as if you developed it yourself.

From the technical point of view Apache Stanbol offers a variety of integration hooks. The most prominent and generic one are Apache Stanbol’s RESTful webservices which allow interaction with software developed in any language and on any platform. A possibility for a much deeper and seamless integration is provided by OSGi. Both Sling and Apache Stanbol run on the Java Virtual Machine (JVM) and both adhere to the OSGi standards for modularization, as a result one can just mix and match components (“bundles” in OSGi parlance) to assemble an application fitting your needs.

Apache Sling is a Web-Framework based on the Java Content Repository (JCR). It is used as the foundation for Adobe CQ5 as well as other Content Management and e-Learning systems. Sling can be started without requiring any configuration and can be accessed via Webdav to drag-and-drop files and folders to be managed by Sling and stored in the JCR. With sling one can easily develop content-centric webapplication, see the Sling Tutorials & How-Tos to get started.

Sling-Stanbol combines the features of the full Apache Stanbol launchers with those of Sling and provides additional capabilities to easily integrate Stanbol functionality when developing with Sling. Lets first have a look at what you can do with Sling-Stanbol without doing any programming.

The screencast shows how to download Sling-Stanbol from, launch the jar on the console with java -jar upload a document with Webdav and annotate it by accessing it over the web appending the .stanbol suffix to the URI.

A feature the screencast doesn’t show is the automated meta-data generation when content of the JCR repository is modified. The sling-stanbol-jcr-observer bundle monitor the repository for changes and keeps current mete-data in a persistent metadata graph that can be queried via the Stanbol Sparql endpoint, check out the entry page of a Slin-Stanbol instance for an example query.

While this integration experiment has shown a few difficulties that are being addressed by issues raised against Sling and Stanbol a satisfactory level of integration of Sling and Stanbol Enhancer could be reached and I hope Sling-Stanbol will be used to give semantic capabilities to Sling based applications. I’m looking forward to integrate more Stanbol components to create usable and useful features.

Author: Wernher

Wernher Behrendt is senior researcher at Salzburg Research and the coordinator of the IKS project

Comments are closed.