Adaptive Information Disclosure (AID)

Partcipating in the VL-e project

Adaptive Information Disclosure (AID) header image 1

Storage

AIDA also includes components for the storage and processing of ontologies and meta-data in RDF format. Amongst these are: RepositoryWS, a service wrapper for the Sesame 1.2 RDF(S) repository (see http://openrdf.org); ThesaurusRepositoryWS, an extension of RepositoryWS to allow easier access to SKOS thesauri; various example web service clients for RepositoryWS and ThesaurusRepositoryWS that demonstrate how to invoke these web services from a Java Servlet; and a few example AJAX web applications that call the Java Servlets to access RDF storage.

The Sesame 1.2 RDF repository offers a HTTP interface and a Java API. In order to be able to integrate Sesame into workflows we created a SOAP service that gives access to the Sesame Java API. We accomodate for extensions to other RDF repositories, such as the HP Jena repository or future versions of Sesame, by implementing the Factory design pattern. This allows parallel implementations of the Repository service to coexist. The functional code of the SOAP service wrapper can be found in /AIDA/Storage/OOO/src/org/vle/aid/metadata, the web service can be found in /AIDA/Storage/OOO/src/org/vle/aid/metadata/ws and example web service clients that allow access to the operations of RepositoryWS can be found in /AIDA/Storage/OOO/src/org/vle/aid/metadata/client.

RepositoryWS allows access to operations that allow the manipulation of an RDF repository, but does not contain any specific reasoning facilities for RDF-based knowledge-representation languages such as OWL, SKOS, FOAF, etc. As an example we implemented a reasoning service for SKOS on top of RepositoryWS, ThesaurusRepositoryWS. SKOS is an RDF-based language for the representation of thesauri, one of the most widely used knowledge model types in the world today. ThesaurusRepositoryWS contains operations that allow querying for terms that represent a concept, their synonyms, broader, narrower, and related concepts, and mappings to concepts in other thesauri. The functional code of ThesaurusRepository can be found in /AIDA/Storage/OOO/src/org/vle/aid/metadata, the web service can be found in /AIDA/Storage/OOO/src/org/vle/aid/metadata/ws. Two example web service clients, ThesaurusSearch and ThesaurusBrowser, respectively meant for matching strings to concepts (i.e. searching for concepts in a thesaurus) and for looking up related concepts (i.e. traveling inside a thesaurus), can be found in /AIDA/Storage/OOO/src/org/vle/aid/thesaurus/client.

Most RDF manipulation will happen in workflows that access RepositoryWS or ThesaurusRepositoryWS. Eventually user-interaction will be needed. Examples of user-interactions are HTML web forms, AJAX web applications, or Firefox toolbars, that access RepositoryWS for querying RDF through the provided Java Servlets. Examples of these can be found in /AIDA/Strorage/OOO/web. repository.html demonstrates how to access web service clients from HTML forms. A combination between AJAX code and Java Servlets to create a web-based thesaurus browser can be found in /AIDA/Storage/OOO/src/org/vle/aid/thesaurus/client/Thesaurus.java and /AIDA/Storage/OOO/web/thesaurus. An example XUL Firefox extension for the annotation of web pages, that accesses Java Servlets can be found in /AIDA/Storage/OOO/web/firefox-extensions/aidaac. Another example annotation client, similar to the Firefox extension, but implemented as an interactive web page that demonstrates auto-completion on labels of RDF Classes and Properties can be found in /AIDA/Storage/OOO/web/AIDA.