Project

General

Profile

Resolvers » History » Version 2

Paula Gearon, 04/16/2009 05:38 PM
Updated title and added links

1 2 Paula Gearon
= Resolvers and Content Handlers =
2 1 Paula Gearon
Mulgara is capable of querying any type of data source by using Resolvers. Resolvers accept and process queries against data contained in a file, a database or some other data source. In most cases, the data being queried against is not in a meaningful format (that is, it is not RDF) so the resolver must convert the data first. Whether this is done by parsing the contents of a file, or converting rows of a database, it is left up to the inner workings of the resolver.
3
4
The resolver architecture is a query layer that sits between the Mulgara transport and storage layers. All resolvers are pluggable. That is, you can write new resolvers that cater for new protocols or file types, or provide a bridge to a particular store in the storage layer.
5
6
The resolver architecture consists of three layers, which are the:
7
8
 1. Resolver API
9
 2. Resolver SPI (service provider interface)
10
 3. Content SPI
11
12
The Resolver SPI and Content SPI are of interest to developers who want to incorporate new stores or file types into the query layer, or to modify existing ones. The Resolver API is of interest to developers who want to interface with the query layer.
13
14
Queries passed to a Resolver API contain:
15
16
 * A list of variables to find
17
 * The data store URI to query from
18
 * A set of constraints to limit the number and content of triples returned
19
20
The Resolver API first checks if the data store is a Mulgara model. If it is, the query is resolved against the internal resolver set, otherwise it is resolved against the external resolver set, based on the data store's protocol (extracted from its URI). Once the constraints are resolved, they are collapsed until only the tuples containing the required variables remain. The results are passed back to the API to be passed across the transport layer.
21
22 2 Paula Gearon
Mulgara provides resolvers and content handlers for querying different types of data stores, including:
23 1 Paula Gearon
24
 * Local and remote Mulgara data stores
25 2 Paula Gearon
 * Files referenced through URLs using the file: and HTTP: protocols
26
 * [http://www.w3.org/TR/rdf-syntax-grammar/ RDF/XML] files
27
 * [http://www.w3.org/DesignIssues/Notation3 N3] files
28 1 Paula Gearon
 * MBox files
29 2 Paula Gearon
 * MP3 files
30
 * JDBC stores, through [http://www4.wiwiss.fu-berlin.de/bizer/D2RQ/spec/#specification D2RQ]
31
 * [wiki:RLog] program files
32 1 Paula Gearon
33 2 Paula Gearon
See the [wiki:ResolverTutorials MP3 Resolver Tutorial] section for information on how to develop your own resolvers.