All Projects → semagrow → semagrow

semagrow / semagrow

Licence: Apache-2.0 license
A SPARQL query federator of heterogeneous data sources

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
HTML
75241 projects
shell
77523 projects
XSLT
1337 projects
CSS
56736 projects

Projects that are alternatives of or similar to semagrow

LinkedDataHub
The Knowledge Graph notebook. Apache license.
Stars: ✭ 150 (+455.56%)
Mutual labels:  linked-data, sparql, rdf, triplestore
viziquer
Tool for Search in Structured Semantic Data
Stars: ✭ 12 (-55.56%)
Mutual labels:  linked-data, sparql, rdf, triplestore
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 120 (+344.44%)
Mutual labels:  linked-data, sparql, rdf
Nspm
🤖 Neural SPARQL Machines for Knowledge Graph Question Answering.
Stars: ✭ 156 (+477.78%)
Mutual labels:  linked-data, sparql, rdf
corese
Software platform implementing and extending the standards of the Semantic Web.
Stars: ✭ 55 (+103.7%)
Mutual labels:  sparql, rdf, sparql-endpoints
sparql-proxy
SPARQL-proxy: provides cache, job control, and logging for any SPARQL endpoint
Stars: ✭ 26 (-3.7%)
Mutual labels:  sparql, rdf, sparql-endpoints
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (+314.81%)
Mutual labels:  linked-data, sparql, rdf
matcha
🍵 SPARQL-like DSL for querying in memory Linked Data Models
Stars: ✭ 18 (-33.33%)
Mutual labels:  linked-data, sparql, rdf
QuitStore
🖧 Quads in Git - Distributed Version Control for RDF Knowledge Bases
Stars: ✭ 87 (+222.22%)
Mutual labels:  sparql, rdf, sparql-endpoints
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
tentris
Tentris is a tensor-based RDF triple store with SPARQL support.
Stars: ✭ 34 (+25.93%)
Mutual labels:  sparql, rdf, triplestore
Rdf Ext
RDF library for NodeJS and the Browsers
Stars: ✭ 97 (+259.26%)
Mutual labels:  linked-data, sparql, rdf
Semanticmediawiki
🔗 Semantic MediaWiki turns MediaWiki into a knowledge management platform with query and export capabilities
Stars: ✭ 359 (+1229.63%)
Mutual labels:  linked-data, sparql, rdf
Processor
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.
Stars: ✭ 54 (+100%)
Mutual labels:  linked-data, sparql, rdf
jarql
SPARQL for JSON: Turn JSON into RDF using SPARQL syntax
Stars: ✭ 19 (-29.63%)
Mutual labels:  linked-data, sparql, rdf
Rdf4j
Eclipse RDF4J: scalable RDF for Java
Stars: ✭ 242 (+796.3%)
Mutual labels:  linked-data, sparql, rdf
CSV2RDF
Streaming, transforming, SPARQL-based CSV to RDF converter. Apache license.
Stars: ✭ 48 (+77.78%)
Mutual labels:  linked-data, sparql, rdf
sparql-micro-service
SPARQL micro-services: A lightweight approach to query Web APIs with SPARQL
Stars: ✭ 22 (-18.52%)
Mutual labels:  linked-data, sparql, rdf
trio
Datatype agnostic triple store & query engine API
Stars: ✭ 78 (+188.89%)
Mutual labels:  sparql, rdf, triplestore
SolRDF
An RDF plugin for Solr
Stars: ✭ 115 (+325.93%)
Mutual labels:  sparql, rdf, sparql-endpoints

Semagrow

GitHub license Build Status

Semagrow is a federated SPARQL query processor that allows combining, cross-indexing and, in general, making the best out of all public data, regardless of their size, update rate, and schema.

Semagrow offers a single SPARQL endpoint that serves data from remote data sources and that hides from client applications heterogeneity in both form (federating non-SPARQL endpoints) and meaning (transparently mapping queries and query results between vocabularies).

The main difference between Semagrow and most existing distributed querying solutions is that Semagrow targets the federation of heterogeneous and independently provided data sources.

In other words, Semagrow aims to offer the most efficient distributed querying solution that can be achieved without controlling the way data is distributed between sources and, in general, without having the responsibility to centrally manage the data sources of the federation.

Getting Started

Building

Building Semagrow from sources requires to have a system with JDK8 and Maven 3.1 or higher.
Optionally, you may need a PostgreSQL as a requirement for the query transformation functionality.

To build Semagrow you should type:

$ mvn clean install

in the top-level project directory. This will result in jar file in the target directory of the respective module and in a war file in the target directory of the webgui module that can be deployed to the Servlet server of your choice.

Bundled with Apache Tomcat

Moreover, Semagrow can be build pre-bundled with the Apache Tomcat servlet server. To achieve that you could issue

$ mvn clean package -P tomcat-bundle

from the top-level directory of the project. This will result in a compressed file in the target directory of the assembly module containing a fully equipped Apache Tomcat with Semagrow pre-installed. However, please note that external dependencies such as the PostgresSQL database needs to be installed and run separately.

Building a Docker image from sources

You can also test your build deployed in a docker image (Docker 18.09 or newer required for building). To do so run at the project root directory:

$ DOCKER_BUILDKIT=1 docker build -t semagrow .

The produced image will be tagged as semagrow:latest and will contain Tomcat with Semagrow deployed.

Configuration

By default, Semagrow look for its configuration files in /etc/default/semagrow and expects to find at least a repository.ttl and a metadata.ttl file in order to establish a federation of endpoints. The repository.ttl describes the configuration of the Semagrow endpoint, while the metadata.ttl describes the endpoints to be federated. The repository.ttl configuration file also defines the location of the metadata.ttl that can be changed to the desired path.

Samples of these configuration files can be found as resources of the http module

Running Semagrow

Running Semagrow from the Apache Tomcat bundle

In order to run the bundle of Apache Tomcat with SemaGrow you should

  1. uncompress the generated zip,
  2. copy the files from the resources folder to /etc/default/semagrow and
  3. run the startup.sh script located in the bin folder.

SemaGrow can be accessed at http://localhost:8080/SemaGrow/.

Running Semagrow using Docker

Semagrow has an official docker repository and official docker images are available in Docker Hub.

To run semagrow using the latest official docker image you should execute

$ docker run -d semagrow/semagrow

Howeover, you can also build your own docker image using the steps described in Section [Building](#### Building a Docker image from sources) The produced image will be tagged as semagrow and will contain Tomcat with Semagrow deployed.

To run the newly produced image you should execute

$ docker run -d semagrow

or if you want to test Semagrow with your configuration files (repository.ttl and metadata.ttl) issue

$ docker run -d -v /path/to/configuration:/etc/default/semagrow semagrow

In either case you can access Semagrow at http://<CONTAINER_IP>:8080/SemaGrow/ where <CONTAINER_IP> is the address assigned to the semagrow container and can be retrieved using docker inspect

Known issues

  • SemaGrow uses UNION instead of VALUES to implement the BindJoin operator. This fails in 4store 1.1.5 and previous versions in the presence of FILTER clauses due to an unsafe optimization by 4store.
  • When deploying in Glassfish 4 by coping the SemaGrow.war file in the autodeploy directory, Semagrow is accessible at http://DOMAIN/SemaGrow/index.jsp instead of http://DOMAIN/SemaGrow/
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].