MarcOnt/Projects/WMap/Documents/SesameWrapper
From Corrib Clan Wiki
racolo getbocl
Contents |
RDF Storage Wrapper
domleto
Use Cases
- Abstraction Layer over RDF Storage - in the future we would like to move to some other RDF Storage - but with as little modifications to the upper layer as possible
- Predefined Queries Management - in most cases one uses a list of queries, changing the parameters supplied to the query only
- Pooling Support - it is important to provide pooling over the wrapper resources
- JSP Tags Support - Sesame wrapper should provide an JSP Tag file that would make the use of the wrapper in JSP files easier.
- Simple Configuration - the configuration of the communication to the RDF Storage should be made easy (e.g. through the property file)
- Piping Support - the JSP Tag wrapper provides a simple way to pipe the output of the query to e.g. XSLT.
Proposed Architecture
The figure below depicts a general architecture RDF storage wrapper. The interaction with RDF Storage (Sesame) and semantic description component Marcin Synak has been presented.
Poposed architecture of the RDF storage wrapper
The RDF storage wrapper consist of 3 components:
- wrapper over RDF storage that provides unified way to call predefined (or provided as a String) queries. The component returns results in either RDF or N3, depending on what user has asked for.
- RDF queries storage - each query has a unique name and can accept a number of parameters (this is easy to be done with MessageFormat class - see examples)
- JSP tag wrapper - provides an easy to use tag inside the JSP files. The query results can be piped in to the XSLT (<xtags> tag library).
Example solutions
The similar solution has been created for XML:DB protocol. It is possible to call XQueries by name with parameters from JSP files and send the output to XSLT processor. The presentation and logic layer has no idea what kind of XML database is used (in fact it would be possible to use SQL database - only the content of the wrapper and queries library should be changed).
See the collection of files used in JeromeDL project.
Example files
* xmldb_query.tag * xmldb_insert.tag * xmldb.properties * DbEngine.java * XQueries.java * XmlDbCollection.java * KeyedXmlDbEnginePoolableFactory.java * XQueries collection




