Need help with comunica?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

194 Stars 30 Forks Other 1.3K Commits 81 Opened issues


📬 A knowledge graph querying framework for JavaScript

Services available


Need anything else?

Contributors list


A knowledge graph querying framework for JavaScript
Flexible SPARQL and GraphQL over decentralized RDF on the Web.

Build Status Coverage Status DOI Gitter chat

Learn more about Comunica on our website.

Query with Comunica

Read one of our guides to get started with querying:

Or jump right into one of the available query engines: * Comunica SPARQL: SPARQL/GraphQL querying from JavaScript applications or the CLI (Browser-ready via a CDN) * Comunica SPARQL File: Library to query over local RDF files * Comunica SPARQL RDFJS: Library to query over in-memory RDFJS-compliant sources. * Comunica SPARQL HDT: Library to query over local HDT files

Modify or Extending Comunica

Read one of our guides to get started with modifying Comunica, or have a look at some examples:


Interested in contributing? Have a look at our contribution guide.

Development Setup


This repository should be used by Comunica module developers as it contains multiple Comunica modules that can be composed. This repository is managed as a monorepo using Lerna.

If you want to develop new features or use the (potentially unstable) in-development version, you can set up a development environment for Comunica.

Comunica requires Node.JS 8.0 or higher and the Yarn package manager. Comunica is tested on OSX, Linux and Windows.

This project can be setup by cloning and installing it as follows:

$ git clone
$ cd comunica
$ yarn install


npm install
is not supported at the moment, as this project makes use of Yarn's workspaces functionality

This will install the dependencies of all modules, and bootstrap the Lerna monorepo. After that, all Comunica packages are available in the

folder and can be used in a development environment, such as querying with Comunica SPARQL (

Furthermore, this will add pre-commit hooks to build, lint and test. These hooks can temporarily be disabled at your own risk by adding the

flag to the commit command.


If you want to do benchmarking with Comunica in Node.js, make sure to run Node.js in production mode as follows:

> NODE_ENV=production node packages/some-package/bin/some-bin.js

The reason for this is that Comunica extensively generates internal

objects. In non-production mode, these also produce long stacktraces, which may in some cases impact performance.


If you are using or extending Comunica as part of a scientific publication, we would appreciate a citation of our article.

  author    = {Taelman, Ruben and Van Herwegen, Joachim and Vander Sande, Miel and Verborgh, Ruben},
  title     = {Comunica: a Modular SPARQL Query Engine for the Web},
  booktitle = {Proceedings of the 17th International Semantic Web Conference},
  year      = {2018},
  month     = oct,
  url       = {}


This code is copyrighted by Ghent University – imec and released under the MIT license.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.