Sesame is an RDF framework with support for RDF Schema inferencing. Its main features include querying in three languages (SeRQL, RDQL, RQL), parsing and writing in several serialization syntaxes, support for MySQL, PostgreSQL, Oracle and SQL server as well as in-memory. It can be deployed as an RDF database, with persistence in an RDBMS, or as a Java library for embedded use in applications. We will demonstrate the numerous features of the Sesame framework in several scenarios.
The aim of this demonstration is to make RDF tool developers aware of the possibilities of Sesame as a framework for use in combination with their own tools. Therefore, the demo will focus on the middleware capabilities of Sesame, such as expressive querying and easy API access.
In figure 1, the overall architecture of the Sesame framework is shown. The foundation of the system is the Storage And Inference Layer (SAIL). This SAIL is an API that abstracts from the storage device used (in-memory storage, disk-based storage, RDBMS) and takes care of inferencing. On top of that we find the functional modules which implement the various high-level tasks, such as querying in SeRQL, RQL, or RDQL, adding/removing statements, etc.
From a user perspective the Access APIs are the most important component. These APIs provide high-level access functionality to client applications, either locally or remote (over HTTP or RMI). The Repository API provides access for querying, storing files and extracting RDF in different serialization formats. The Graph API provides a Java object model representing RDF graphs, that allows the user to do fine-grained manipulation of RDF in their application.
As we will show in the demonstration, the Sesame architecture is very flexible: it allows deployment in a wide variety of settings, as a remote database server or an embedded component in a desktop application.
The demonstration will consist of a remote Sesame server serving aggregated RDF/FOAF data, and several client interfaces that make use of this information in a variety of ways. Flexible deployment of a Sesame repository with RDF data of the audience' choice will also be possible.
One client interface to be demonstrated is the FOAF explorer. The FOAF explorer is a web-based graphical interface that allows the user to navigate and search FOAF profiles. The backend for the explorer is a Sesame server that contains aggregated FOAF profiles crawled (or 'scuttered') from the Web. Using the FOAF explorer, the user can query the remote server for FOAF profiles, and visualize these FOAF profiles and navigate to other profiles based on 'foaf:knows' or 'rdfs:seeAlso' relations.
To demonstrate the capabilities of Sesame as an inferencing and querying platform, the demo will also demonstrate the evaluation of several complex SeRQL queries directly on the repository. The use of optional path expressions and graph transformation will be demonstrated through query examples.
Finally, the use of Sesame's access APIs for fast manipulation of RDF data will be demonstrated by use of a small web-based editor of RDF data that communicates directly with the Sesame repository. The use scenario will be the updating of several foaf relations in the remote repository.
A significant part of the demonstration will be the use of the SeRQL query language. SeRQL is a language that combines features from several predecessor languages (such as N3, RQL and RDQL) and adds some unique features of its own. The features that will be demonstrated include:
Several example queries will be explained to the audience and then executed live to see the result. Also, the client interfaces mentioned previously use SeRQL "under the hood" through Sesame remote access API. Upon request this will be shown in detail.
Sesame has been succesfully used in a variety of research and commercial projects. We briefly name a few of these projects:
Other use cases and projects may be found on the website and community forum of Sesame.
The Sesame framework is available under the terms of the GNU Lesser General Public License (LGPL), and can be downloaded from openRDF.org. The FOAF explorer interface is currently under development but will be available from the same website.