All Projects → AtomGraph → Processor

AtomGraph / Processor

Licence: Apache-2.0 license
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Processor

LinkedDataHub
The Knowledge Graph notebook. Apache license.
Stars: ✭ 150 (+177.78%)
Mutual labels:  linked-data, sparql, data-driven, rdf, declarative, semantic-web, knowledge-graph, ontology-driven-development, linked-data-templates
LD-Connect
LD Connect is a Linked Data portal for IOS Press in collaboration with the STKO Lab at UC Santa Barbara.
Stars: ✭ 0 (-100%)
Mutual labels:  linked-data, sparql, rdf, semantic-web, knowledge-graph
Web Client
Generic Linked Data browser and UX component framework. Apache license.
Stars: ✭ 105 (+94.44%)
Mutual labels:  linked-data, rdf, generic, semantic-web, knowledge-graph
CSV2RDF
Streaming, transforming, SPARQL-based CSV to RDF converter. Apache license.
Stars: ✭ 48 (-11.11%)
Mutual labels:  linked-data, sparql, rdf, semantic-web, knowledge-graph
Semanticmediawiki
🔗 Semantic MediaWiki turns MediaWiki into a knowledge management platform with query and export capabilities
Stars: ✭ 359 (+564.81%)
Mutual labels:  linked-data, sparql, rdf, semantic-web, knowledge-graph
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 120 (+122.22%)
Mutual labels:  linked-data, sparql, rdf, semantic-web
Nspm
🤖 Neural SPARQL Machines for Knowledge Graph Question Answering.
Stars: ✭ 156 (+188.89%)
Mutual labels:  linked-data, sparql, rdf, knowledge-graph
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (+107.41%)
Mutual labels:  linked-data, sparql, rdf, semantic-web
semantic-python-overview
(subjective) overview of projects which are related both to python and semantic technologies (RDF, OWL, Reasoning, ...)
Stars: ✭ 406 (+651.85%)
Mutual labels:  sparql, rdf, semantic-web, knowledge-graph
Rdf4j
Eclipse RDF4J: scalable RDF for Java
Stars: ✭ 242 (+348.15%)
Mutual labels:  linked-data, sparql, rdf, semantic-web
everything
The semantic desktop search engine
Stars: ✭ 22 (-59.26%)
Mutual labels:  sparql, rdf, semantic-web, knowledge-graph
sparql-micro-service
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Stars: ✭ 22 (-59.26%)
Mutual labels:  linked-data, sparql, rdf, semantic-web
OLGA
an Ontology SDK
Stars: ✭ 36 (-33.33%)
Mutual labels:  sparql, rdf, semantic-web, knowledge-graph
awesome-ontology
A curated list of ontology things
Stars: ✭ 73 (+35.19%)
Mutual labels:  linked-data, rdf, semantic-web, knowledge-graph
Rdflib
RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.
Stars: ✭ 1,584 (+2833.33%)
Mutual labels:  linked-data, rdf, semantic-web
Topic Db
TopicDB is a topic maps-based semantic graph store (using PostgreSQL for persistence)
Stars: ✭ 164 (+203.7%)
Mutual labels:  linked-data, semantic-web, knowledge-graph
jsonld-context-parser.js
Parses JSON-LD contexts
Stars: ✭ 20 (-62.96%)
Mutual labels:  linked-data, rdf, semantic-web
mayktso
🌌 mayktso: encounters at an endpoint
Stars: ✭ 19 (-64.81%)
Mutual labels:  linked-data, rdf, semantic-web
Grafter
Linked Data & RDF Manufacturing Tools in Clojure
Stars: ✭ 174 (+222.22%)
Mutual labels:  linked-data, rdf, semantic-web
skos-play
SKOS-Play allows to print SKOS files in HTML or PDF. It also embeds xls2rdf to generate RDF from Excel.
Stars: ✭ 58 (+7.41%)
Mutual labels:  sparql, rdf, semantic-web

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 single Linked 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, see articles and presentations about AtomGraph.

For a compatible frontend framework for end-user applications, see AtomGraph Web-Client.

Getting started

For full documentation, see the wiki index.

Usage

Docker

Processor is available from Docker Hub as atomgraph/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 custom location 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, mount log4j.properties file to /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.properties.

Examples

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.

Default ontology and a local SPARQL service

The Fuseki example shows how to run a local Fuseki SPARQL service together with Processor and how to setup nginx as a reverse proxy in front of Processor. Fuseki loads RDF dataset from a file. Processor uses a built-in LDT ontology. It uses the docker-compose command.

Run the Processor container together with Fuseki and nginx container:

cd examples/fuseki

docker-compose up

After that, open one of the following URLs in the browser and you will retrieve RDF descriptions:

Alternatively you can run curl http://localhost:8080/ etc. from shell.

In this setup Processor is also available on http://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. The dataset for this example contains a second http://example.org/ base URI, which works with the rewritten example.org hostname.

Custom ontology and a remote SPARQL service

The Wikidata example example shows to run Processor with a custom LDT ontology and a remote SPARQL service. It uses the docker run command.

Run the Processor container with the Wikidata example:

cd examples/wikidata

docker-compose up

After that, open one of the following URLs in the browser and you will retrieve RDF descriptions:

Alternatively you can run curl http://localhost:8080/ etc. from shell.

Note that Wikidata's SPARQL endpoint https://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 in 500 Internal Server Error response by the Processor.

Maven

Processor is released on Maven central as com.atomgraph:processor.

Datasource

AtomGraph Processor does not include an RDF datasource. It queries RDF data on the fly from a SPARQL endpoint using SPARQL 1.1 Protocol over HTTP. SPARQL endpoints are provided by most RDF triplestores.

The easiest way to set up a SPARQL endpoint on an RDF dataset is Apache Jena Fuseki as a Docker container using our fuseki image. There is also a number of of public SPARQL endpoints.

For a commercial triplestore with SPARQL 1.1 support see Dydra.

Test suite

Processor includes a basic HTTP test suite for Linked Data Templates, SPARQL Protocol and the Graph Store Protocol.

master develop

Support

Please report issues if you've encountered a bug or have a feature request.

Commercial consulting, development, and support are available from AtomGraph.

Community

Please join the W3C Declarative Linked Data Apps Community Group to discuss and develop AtomGraph and declarative Linked Data architecture in general.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].