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. |