-
Notifications
You must be signed in to change notification settings - Fork 7
How Processor works
AtomGraph is implemented as a processor, not unlike XSLT processor. Whereas XSLT processor transforms XML input document using stylesheet templates into output XML, AtomGraph uses RDF data from a SPARQL endpoint and a declarative ontology in order to respond to HTTP requests for Linked Data.
The processing is based on the idea that resources with the same URI pattern also share the same representation pattern and, in the case of a triplestore-backed system, the same SPARQL query pattern. The application ontology contains Linked Data Templates that map URI templates to SPARQL query templates and are used for request matching and response building. A request to an LDT server can be seen as an LDT template call.
SPIN - SPARQL Syntax by TopQuadrant is used to express SPARQL queries and their templates as RDF.
Instance data is queried either from a local file or a remote SPARQL endpoint. There is one sitemap and dataset per application, and dataset instances should be aligned with sitemap templates.
Since Linked Data is a combination of HTTP/REST and RDF, AtomGraph's main dependencies are:
- SPIN API to manipulate SPARQL queries and enable constraints. SPIN API depends on Apache Jena.
- Jersey (implementation of JAX-RS) to handle HTTP and REST
AtomGraph's implementation can be seen as a bridge between the two frameworks.