Comunica is a highly modular and flexible query engine platform for the Web.
As Comunica is a query engine platform, various configurations can be built for it, each leading to a different query engine.
If you just want to query, have a look at these pre-built engines:
- 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
Browser scripts of all engines in this repo are automatically built and made available via a CDN: https://github.com/rdfjs/comunica-browser
If you want to develop new features or use the (potentially unstable) in-development version, you can set up a development environment for Comunica.
This project can be setup by cloning and installing it as follows:
$ git clone email@example.com:comunica/comunica $ 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
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
-n 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
In non-production mode, these also produce long stacktraces,
which may in some cases impact performance.