Work-in-Progress Components for Comunica
This is a monorepository that contains various work-in-progress components for Comunica and is not intended for actual use. If you wish to learn more about Comunica or actually use it, please refer to its website. The following components reside here.
Components for membership metadata handling:
- Membership filter metadata extractor, that parses membership filters from metadata streams and stores them back in the metadata.
- Membership filter parse bus, where membership filter parsers are listening.
- Membership filter parser for Bloom filters, that parses Bloom filters into membership filter objects.
- Membership filter context preprocess actor, that creates the metadata filter storage in quest context, used to hold the extracted filters. This is the result of the link queue not having access to RDF metadata streams, so the filters need to be stored in another query-specific location.
- Membership filter-based link queue wrapper, that filters link queue output based on discovered membership filters.
Components for triple pattern cardinality estimation and join operation restarts:
- VoID description metadata extractor, that parses VoID descriptions from metadata streams and stores them back in the metadata.
- VoID description metadata accumulator, that accumulates VoID descriptions from multiple metadata. This package also includes triple pattern cardinality estimators that use available metadata at accumulation time to update estimated triple pattern cardinalities.
- Simple "adaptive" inner join actor, that allows restarting a join operation based on a set of conditions.
The project can be cloned, after which the dependencies can be installed using Yarn with:
git clone https://github.com/surilindur/comunica-components
cd comunica-components
yarn install --immutable
yarn build
The default configuration for the engine using whichever components happen to be configured in it can then be executed:
yarn comunica-sparql-components --help
There are no unit tests and nothing is guaranteed to function as one would expect it to.
This project can be set to use local Comunica, Comunica Solid and Comunica Link Traversal:
.../comunica
.../comunica-feature-solid
.../comunica-feature-link-traversal
.../comunica-components
This can be done by having the workspaces definitions in the repositories pointing at each other, for example as in this repository:
"workspaces": [
"../comunica/engines/*",
"../comunica/packages/*",
"../comunica-feature-solid-fork/engines/*",
"../comunica-feature-solid-fork/packages/*",
"../comunica-feature-link-traversal-fork/engines/*",
"../comunica-feature-link-traversal-fork/packages/*",
"packages/*",
"engines/*"
],
Afterwards, all the projects should be set up using yarn install
.
Please feel free to report any issues on the GitHub issue tracker, but do note that none of these components are intended for real use at this stage and are therefore not tested properly.
This code is copyrighted by Ghent University – imec and released under the MIT license.