# rdfstore-js frontend

## About

rdfstore-js is a project that tries to build a RDF Store with support for the SPARQL query language entirely in JavaScript. The overall goal is to provide infrastructure that will make easier to use RDF and other semantic technologies as the data layer for complex web applications.

This page demoes a simple HTML frontend on top of the store that can be used to manipulate RDF graphs retrieved from the web and stored locally in rdfstore-js.

start frontend

## Things to try

You can use the the store and the frontend to store data retrieved from the whole web of linked data.
Some examples:

- Retrieve information from a product annotated with RDFa browse run example
- Load RDF data from DBPedia browse run example
- Extract meta-data from a social network like Flickr browse run example

## Usage

The frontend is built using the following libraries:

- jQuery 1.4.2
- jQuery template
- jQuery UI
- Knockout JS 1.2.1

Additionally, it uses a modified version of RDFQuery to parse RDFa and RDF/XML serializations of RDF.
In order to use it, add the JavaScript and CSS files to you HTML and start the frontend passing as parameters a RDFStore-js instance and a target HTML DOM node:

        new rdfstore_frontend('#target',store);

## Notes

The functionality of the store library has been extended for this demo. Some of the differences are:

- Capacity to parse RDFa and RDF/XML documents using a modified version of RDFQuery

The store has been designed to be modular and it can be configured to use different network transports and additional parsers. The order of precedence for different media types when performing content negotiation can also be configured:

          rdfstore.create({"communication": {
                             "parsers": {
                               "text/html" :           rdfstore_frontend.rdfaParser,
                               "application/rdf+xml":  rdfstore_frontend.rdfParser
                             },
                            "precedences": ["application/rdf+xml", "text/html"] }
                          },

                          function(err, store) {

                            // use the store
          });

The code for the proxy and the modified version of RDFQuery are included in the frontend code repository.