SWIP: Semantic web in the pocket

This web page is dedicated to experiments with semantic web technology under the Android platform

We ambition to contribute abolishing the wall between the information stored in a phone information system and the (semantic) web. We want to this with the following characteristics:

For that purpose we are experimenting step-by-step. The tools presented here are research prototypes not currently suitable for everyday use. They are offered as debug-signed applications that can be deployed manually under the Android platform (note that the sources are available here RDFProvider, RDFContentResolver, RDFServer, RDFBrowser). They have been tested on an HTC Tattoo (but the support for Calendar is provided by HTC instead of Android).

NOTE that this page is about a project that has been abandonned since long
In order to use these applications you must follow the instructions.
The code can be retrieved from https://gitlab.inria.fr/moex/swip.

Please be sure that you have read our Data policy.

SWIP components

This page presents components of the SWIP architecture:

The global architecture featuring interaction with these components is described by:

A more comprehensive description of the architecture is available in: [David 2010c, David 2012a, Rosoiu 2015a]

RDFContentProvider: sharing RDF between applications

RDFContentProviders is a refinement of the Android ContentProvider allowing any application to expose its data as RDF. The interface allows for inspecting available content providers and the ontologies for which they can deliver information.

Pikoid implements RDFContentProvider. We have implemented RDFBrowser as a client for RDFContentProvider allowing to browse RDF applications like linked data. We have also encapsulated several native Android applications (Contact, Calendar) in a AndroidRDFProvider so that it is possible to get RDF out of them.

Screendump of Pikoid calling RDFBrowser and RDFBrowser inspecting data provided by RDFContentProviders:

RDFContentResolver-1.1.apk (to be installed first, it is the service allowing connection to RDF providers)
All sources (necessary for developing RDFContentProviders). They can also be retrieved from https://gitlab.inria.fr/moex/swip.

Pikoid: RDF image annotations

Pikoid is a lightweight tool for annotating pictures on the go. For that purpose, Pikoid uses all the resources of the platform (map for places, calendar for events, contact for people).

It is able to store and expose these annotations in RDF.

Download: Pikoid-1.1.apk

RDFServer: sharing RDF on the web

RDFServer allows a user to expose his data on the web as RDF. It has a user interface which allows one to start or stop the server in order to allow other users to access his data (such as Contacts, Calendar).

It uses Androjena, a port of Jena under Android, to parse the file using Jena.

RDFServer will only work for Android versions above 2.1.

Download: RDFServer-1.1.apk

ASAP: Alignment server for the android platform

We developed a lightweight version of the Alignment API implementation. It allows for connecting to Alignment servers, retrieving and manipulating alignments. It uses Jena for parsing EDOAL alignments so Jena libraries should be added (included in our package).

This version comes as a library available with the Alignment API starting with the version 4.2 of the API. It is further documented here.

ASAP is a simple use of the Alignment server for the Android platform. It main goal is to allow querying Android data accross ontologies.

In a first stage, ASAP will provide the following functionalities:

The diagram below shows how a client application can obtain the ontologies used by other applications by using their RDFContentProvider interface. It can then ask the alignment server for an alignement that will be used for linking information of both applications.

The challenge will be to remain lightweight so ASAP will not be a full Alignment server but can connect to such servers to obtain alignments.

Related resources

Many interesting projects could be used for going further:


Jérôme David and Jérôme Euzenat
30/04/2012 (updated 2020-10-14)