- Notifications
You must be signed in to change notification settings - Fork7
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.
License
AtomGraph/Processor
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
AtomGraph Processor is a server of declarative, read-write Linked Data applications. If you have a triplestore with RDF data that you want to serve Linked Data from, or write RDF over a RESTful HTTP interface, AtomGraph Processor is the only component you need.
What AtomGraph Processor provides for users as out-of-the-box generic features:
- API logic in a singleLinked Data Templates ontology
- control of RDF input quality with SPARQL-based constraints
- SPARQL endpoint and Graph Store Protocol endpoint
- HTTP content negotiation and caching support
AtomGraph's direct use of semantic technologies results in extemely extensible and flexible design and leads the way towards declarative Web development. You can forget all about broken hyperlinks and concentrate on building great apps on quality data. For more details, seearticles and presentations about AtomGraph.
For a compatible frontend framework for end-user applications, seeAtomGraph Web-Client.
For full documentation, see thewiki index.
Processor is available from Docker Hub asatomgraph/processor image.It accepts the following environment variables (that become webapp context parameters):
ENDPOINT- SPARQL 1.1 Protocol endpoint
- URI
GRAPH_STORE- SPARQL 1.1 Graph Store Protocol endpoint
- URI
ONTOLOGY- Linked Data Templates ontology
- URI
AUTH_USER- SPARQL service HTTP Basic auth username
- string, optional
AUTH_PWD- SPARQL service HTTP Basic auth password
- string, optional
PREEMPTIVE_AUTH- use premptive HTTP Basic auth?
true/false, optional
If you want to have your ontologies read from a local file rather than their URIs, you can define a customlocation mapping that will be appended to the system location mapping.The mapping has to be a file in N3 format and mounted to the/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/custom-mapping.n3 path. Validate the file syntax beforehand to avoid errors.
To enable logging, mountlog4j.properties file to/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.properties.
The examples show Processor running with combinations of
- default and custom LDT ontologies
- local and remote SPARQL services
- Docker commands
However different combinations are supported as well.
TheFuseki example shows how to run a localFuseki SPARQL service together with Processor and how to setupnginx as a reverse proxy in front of Processor. Fuseki loads RDF dataset from a file. Processor uses a built-in LDT ontology.It uses thedocker-compose command.
Run the Processor container together withFuseki andnginx container:
cd examples/fusekidocker-compose upAfter that, open one of the following URLs in the browser and you will retrieve RDF descriptions:
http://localhost:8080/- root resourcehttp://localhost/- root resource where the hostname of the Processor's base URI is rewritten toexample.org
Alternatively you can runcurl http://localhost:8080/ etc. from shell.
In this setup Processor is also available onhttp://localhost/ which is the nginx host.The internal hostname rewriting is done by nginx and useful in situations when the Processor hostname is different from the application's dataset base URI and SPARQL queries do not match any triples.Thedataset for this example contains a secondhttp://example.org/ base URI, which works with the rewrittenexample.org hostname.
TheWikidata example example shows to run Processor with a custom LDT ontology and a remote SPARQL service.It uses thedocker run command.
Run the Processor container with the Wikidata example:
cd examples/wikidatadocker-compose upAfter that, open one of the following URLs in the browser and you will retrieve RDF descriptions:
http://localhost:8080/- root resourcehttp://localhost:8080/birthdays- 100 people born todayhttp://localhost:8080/birthdays?sex=http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ6581072- 100 females born todayhttp://localhost:8080/birthdays?sex=http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ6581097- 100 males born today
Alternatively you can runcurl http://localhost:8080/ etc. from shell.
Note that Wikidata's SPARQL endpointhttps://query.wikidata.org/bigdata/namespace/wdq/sparql is very popular and therefore often overloaded. An error response received by the SPARQL client from Wikidata will result in500 Internal Server Error response by the Processor.
Processor is released on Maven central ascom.atomgraph:processor.
AtomGraph Processor doesnot include an RDF datasource. It queries RDF data on the fly from a SPARQL endpoint usingSPARQL 1.1 Protocol over HTTP. SPARQL endpoints are provided by most RDFtriplestores.
The easiest way to set up a SPARQL endpoint on an RDF dataset is Apache JenaFuseki as a Docker container using ourfuseki image. There is also a number of ofpublic SPARQL endpoints.
For a commercial triplestore with SPARQL 1.1 support seeDydra.
Processor includes a basic HTTPtest suite for Linked Data Templates, SPARQL Protocol and the Graph Store Protocol.
Pleasereport issues if you've encountered a bug or have a feature request.
Commercial consulting, development, and support are available fromAtomGraph.
Please join the W3CDeclarative Linked Data Apps Community Group to discussand develop AtomGraph and declarative Linked Data architecture in general.
About
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.