Skip to content

Commit c62c534

Browse files
committed
Update list of Comunica usages
1 parent 2bdf28c commit c62c534

3 files changed

Lines changed: 170 additions & 1 deletion

File tree

pages/docs/1_query/2_usage.md

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,92 @@ Comunica is being used in a variety of places for its querying and RDF-related c
77
Below, a couple of these uses are listed.
88
Feel free to [contact us](/ask/) if you want your use of Comunica added to this list.
99

10+
## NDE — Network of Terms
11+
12+
_Governmental_
13+
14+
The [Dutch Digital Heritage Network (NDE)](https://netwerkdigitaalerfgoed.nl/) is a Dutch government-backed programme
15+
that connects cultural heritage institutions such as libraries, archives and museums.
16+
Their [Network of Terms](https://github.com/netwerk-digitaal-erfgoed/network-of-terms) service
17+
is a live federated search engine that lets users look up terms in terminology sources
18+
(thesauri, classification systems, and reference lists) maintained by dozens of heritage institutions across the Netherlands.
19+
The query engine behind this service (`@netwerk-digitaal-erfgoed/network-of-terms-query`) uses
20+
`@comunica/query-sparql` to issue federated SPARQL queries across all participating sources in real time.
21+
Furthermore, [LD Workbench](https://github.com/netwerk-digitaal-erfgoed/ld-workbench) is an open-source pipeline tool for transforming and publishing Linked Data,
22+
developed by the [Dutch Digital Heritage Network (NDE)](https://www.netwerkdigitaalerfgoed.nl/).
23+
Each stage of the pipeline uses SPARQL queries to iterate over, filter, and construct RDF data,
24+
with Comunica powering the query execution against both local RDF files and remote SPARQL endpoints.
25+
NDE is also a founding member of the [Comunica Association](/association/).
26+
27+
## TriplyDB
28+
29+
_Commercial_
30+
31+
[TriplyDB](https://triplydb.com/) is a commercial knowledge graph platform by [Triply B.V.](https://triply.cc/)
32+
that provides storage, querying and publishing services for Linked Data.
33+
Triply integrates Comunica to power SPARQL querying, Linked Data Fragments, and Linked Data Event Streams interfaces
34+
within the platform, enabling users to work with heterogeneous Linked Data sources through a unified service.
35+
Triply has also published [Comunica-GraphQL](https://github.com/TriplyDB/Comunica-GraphQL),
36+
an open-source GraphQL API layer over Linked Data built on top of Comunica.
37+
Triply has sponsored bounties via the [Comunica Association](/association/).
38+
39+
## Inrupt
40+
41+
_Commercial_
42+
43+
[Inrupt](https://inrupt.com/) is the company co-founded by Tim Berners-Lee to bring the [Solid](https://solidproject.org/) protocol to production.
44+
Inrupt integrates Comunica into their products and services to enable authenticated querying
45+
of data stored in [Solid Pods](https://solidproject.org/users/get-a-pod) via their [query service](https://fragments.inrupt.com/),
46+
including their PodSpaces hosting platform.
47+
48+
## FRINK Open Knowledge Network
49+
50+
_Academic_
51+
52+
[RENCI](https://renci.org/) (Renaissance Computing Institute) at the University of North Carolina at Chapel Hill
53+
runs [FRINK](https://frink.renci.org/), a Federated Research Infrastructure for the NSF-funded
54+
[Open Knowledge Network (OKN)](https://www.proto-okn.net/) programme.
55+
FRINK's [interactive query page](https://frink.apps.renci.org/) allows users to select one or more OKN knowledge graphs
56+
and execute SPARQL queries across them.
57+
When multiple sources are selected, Comunica performs a client-side federated query against
58+
the Triple Pattern Fragments endpoints of each chosen graph entirely in the browser,
59+
without any server-side query processing.
60+
61+
## CoGhent — City of Ghent
62+
63+
_Governmental_
64+
65+
[CoGhent](https://coghent.github.io/) (_Collectie van de Gentenaar_, "Collection of the Ghent resident") is a
66+
[City of Ghent (Stad Gent)](https://stad.gent/) initiative that publishes the heritage collections of
67+
multiple Ghent museums — including the Design Museum Gent, Huis van Alijn, STAM, and Industriemuseum —
68+
as [Linked Data Event Streams (LDES)](https://semiceu.github.io/LinkedDataEventStreams/).
69+
Comunica is the recommended and documented tool for [querying these collections](https://coghent.github.io/runqueries.html),
70+
both directly in the browser and locally via the `@comunica/query-sparql` CLI and JavaScript API,
71+
making it the primary query interface for accessing the openly published cultural heritage data of Ghent.
72+
73+
## Sparnatural
74+
75+
_Commercial_
76+
77+
[Sparnatural](https://sparnatural.eu) ([GitHub](https://github.com/sparna-git/Sparnatural)) is an open-source visual SPARQL query builder
78+
that lets end users construct SPARQL queries through a point-and-click interface without any knowledge of SPARQL syntax.
79+
It uses [`@comunica/query-sparql-rdfjs-lite`](https://www.npmjs.com/package/@comunica/query-sparql-rdfjs-lite)
80+
to execute queries directly in the browser against RDF data loaded via the RDF/JS interface,
81+
enabling fully client-side querying with no server required.
82+
83+
## shacl-engine
84+
85+
_Open Source_
86+
87+
[shacl-engine](https://github.com/rdf-ext/shacl-engine) is a fast, streaming [SHACL](https://www.w3.org/TR/shacl/) validation engine for RDF/JS datasets.
88+
For shapes that define SPARQL-based constraints (`sh:sparql`) or target declarations (`sh:target`),
89+
the engine delegates query execution to Comunica via
90+
[`@comunica/query-sparql-rdfjs-lite`](https://www.npmjs.com/package/@comunica/query-sparql-rdfjs-lite).
91+
1092
## LDflex
1193

94+
_Academic_
95+
1296
[LDflex](https://github.com/LDflex/LDflex) is a JavaScript library provides a convenient syntax for quickly writing and executing queries in a developer-friendly way.
1397
Using the power of Comunica and JSON-LD contexts, you can write expressions like `person.friends.firstName` to get a list of your friends.
1498

@@ -17,6 +101,8 @@ Using the compact syntax of LDflex, it is very simple to query from within [Reac
17101

18102
## GraphQL-LD
19103

104+
_Academic_
105+
20106
[GraphQL-LD](https://github.com/rubensworks/graphql-ld.js) is a JavaScript library
21107
that allows Linked Data to be queried via [GraphQL](https://graphql.org/) queries and a JSON-LD context.
22108
The approach involves converting a GraphQL query and JSON-LD context to a SPARQL query,
@@ -27,42 +113,103 @@ for which [reusable React components](https://github.com/rubensworks/solid-react
27113

28114
## Quadstore
29115

116+
_Open Source_
117+
30118
[Quadstore](https://github.com/belayeng/quadstore) is a [LevelDB](https://github.com/google/leveldb)-based graph database for Node.js and the browser.
31119
[Quadstore Comunica](https://github.com/belayeng/quadstore-comunica) is a SPARQL engine on top of Quadstore that is powered by Comunica.
32120

33121
## LDkit
122+
123+
_Open Source_
124+
34125
[LDkit](https://ldkit.io) is a Linked Data query toolkit for TypeScript developers. It provides ORM-like abstraction over RDF data: you define a data source and a data schema and let LDkit handle SPARQL queries, data fetching and conversion of RDF to to JS/TS native types in background.
35126

36127
LDkit provides built-in support to query SPARQL endpoints, but it is [fully compatible with Comunica](https://ldkit.io/docs/how-to/query-with-comunica) in case you need to access other RDF data sources.
37128

38129
## RDF Parse
39130

131+
_Open Source_
132+
40133
[RDF Parse](https://github.com/rubensworks/rdf-parse.js) is a JavaScript library parses RDF based on content type or file name in a streaming manner.
41134
It supports all of the major RDF serializations.
42135
Internally, this library makes use of the `rdf-parse` bus and actors from Comunica.
43136

44137
## RDF Dereference
45138

139+
_Open Source_
140+
46141
[RDF Dereference](https://github.com/rubensworks/rdf-dereference.js) is a JavaScript library dereferences URLs to get its RDF contents.
47142
This tool is useful in situations where you have a URL, and you just need the parsed triples/quads, without having to concern yourself with determining the correct content type and picking the correct parser.
48143
Internally, this library makes use of the `rdf-dereference` bus and actors from Comunica.
49144

50145
## RDF Play
51146

147+
_Open Source_
148+
52149
[RDF Play](https://rdf-play.rubensworks.net/) is a Web-based tool for performing simple RDF operations, such as parsing, serializing and dereferencing from URLs.
53150
Internally, this library makes use of RDF parsers from the Comunica framework, which enable streaming processing of RDF.
54151

55152
## ESWC Conference 2020
56153

154+
_Academic_
155+
57156
All metadata of the [ESWC Conference (2020)](https://2020.eswc-conferences.org/) is [queryable](https://query.2020.eswc-conferences.org/)
58157
via a jQuery widget instance of Comunica.
59158
It features several example queries over a [Triple Pattern Fragments](https://linkeddatafragments.org/concept/) interface through which the ESWC 2020 metadata is published.
60159

61160
## Walder
62161

162+
_Academic_
163+
63164
[Walder](https://github.com/KNowledgeOnWebScale/walder) offers an easy way
64165
to set up a website or Web API on top of decentralized knowledge graphs.
65166
It uses Comunica for querying these knowledge graphs.
66167
hosted via Solid PODs, SPARQL endpoints, Triple Pattern Fragments interfaces, RDF files, and so on.
67168
Using content negotiation, Walder makes the data in these knowledge graphs available to clients via HTML, RDF, and JSON-LD.
68169
Users define in a configuration file which data Walder uses and how it processes this data.
170+
171+
## Comunica jQuery Widget
172+
173+
_Academic_
174+
175+
The [Comunica jQuery Widget](https://github.com/comunica/jQuery-Widget.js) is a reusable interactive SPARQL query interface for the browser.
176+
It powers the live Comunica demo at [query.comunica.dev](https://query.comunica.dev/) and can be embedded on any webpage,
177+
allowing end users to execute SPARQL queries directly in the browser against any combination of supported source types
178+
without needing a server-side component.
179+
180+
## SolidBench
181+
182+
_Academic_
183+
184+
[SolidBench](https://github.com/SolidBench/SolidBench.js) is a benchmarking suite for evaluating the performance of Solid-compatible query engines.
185+
It generates realistic social-network RDF datasets distributed across simulated Solid pods
186+
and uses Comunica SPARQL Solid as its reference query engine to execute and measure benchmark queries.
187+
188+
## JBR
189+
190+
_Academic_
191+
192+
[JBR](https://github.com/rubensworks/jbr.js) is a JavaScript-based benchmarking framework for creating and running reproducible experiments
193+
with engines such as Comunica and [LDF Server](https://github.com/LinkedDataFragments/Server.js).
194+
It covers the full provenance chain: software setup, input data generation, experiment execution, dependency tracking, result reporting, and archiving.
195+
JBR makes it straightforward to compare different Comunica configurations or measure the impact of custom modifications.
196+
197+
## Community Solid Server
198+
199+
_Academic_
200+
201+
The [Community Solid Server (CSS)](https://github.com/CommunitySolidServer/CommunitySolidServer) is the reference implementation of the
202+
[Solid protocol](https://solidproject.org/TR/protocol), developed at Ghent University.
203+
CSS uses `@comunica/query-sparql` internally to evaluate SPARQL queries and updates against its in-memory RDF data stores,
204+
making it one of the most prominent real-world deployments of Comunica in a server-side context.
205+
206+
## Koreografeye
207+
208+
_Academic_
209+
210+
[Koreografeye](https://github.com/eyereasoner/Koreografeye) is a Solid orchestration and choreography agent
211+
that uses the [EYE reasoner](https://github.com/eyereasoner/eye) to evaluate N3 policies on incoming Solid notifications.
212+
It uses Comunica ([`@comunica/query-sparql-rdfjs`](https://www.npmjs.com/package/@comunica/query-sparql-rdfjs))
213+
to issue SPARQL queries against the RDF data produced by the reasoner,
214+
allowing policies to query and transform Linked Data before dispatching further actions.
215+

pages/docs/2_modify/2_extensions.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,21 @@ provides a default configuration that adds full SPARQL query support using other
6464
## SPARQL-OTFC
6565

6666
[SPARQL-OTFC](https://github.com/Flanders-Make-vzw/sparql-otfc#readme) extends the SPARQL query language with on-the-fly computations. It enables developers to host special predicates that do not exist in a queried data source yet are computed at runtime. To the end-user asking a query, these predicates behave just like regular predicates.
67+
68+
## MCP
69+
70+
[`@comunica/mcp-sparql`](https://github.com/comunica/comunica-feature-mcp) exposes Comunica as an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server,
71+
allowing AI agents such as Claude and ChatGPT to query Linked Data and SPARQL endpoints directly.
72+
This enables AI agents to retrieve and reason over decentralized RDF knowledge graphs on the Web,
73+
significantly improving the accuracy and expressivity of their answers.
74+
Multiple variants are available, including MCP servers for HDT files, Solid data pods, and link traversal.
75+
76+
Read more about this in [our guide on MCP](/docs/query/advanced/mcp/).
77+
78+
## Incremunica
79+
80+
[Incremunica](https://github.com/maartyman/incremunica) is an incremental SPARQL query engine built on top of Comunica.
81+
It extends Comunica's actor–mediator–bus architecture to support incremental query evaluation:
82+
when RDF data sources change, only the affected parts of the query result are recomputed,
83+
making it well-suited for applications over dynamic or streaming data.
84+

pages/research.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@ The following experiments have been done with Comunica:
4141

4242
The following publications make significant use of Comunica:
4343

44+
* [**Demonstration of Link Traversal SPARQL Query Processing over the Decentralized Solid Environment**. Taelman, R., & Verborgh, R. (2024)](https://comunica.github.io/Article-EDBT2024-SolidQueryDemo/)
45+
* [**Link Traversal Query Processing over Decentralized Environments with Structural Assumptions**. Taelman, R., & Verborgh, R. (2023)](https://comunica.github.io/Article-ISWC2023-SolidQuery/) ([Learn more](/research/link_traversal/))
46+
* [**Evaluation of Link Traversal Query Execution over Decentralized Environments with Structural Assumptions**. Taelman, R., & Verborgh, R. (2023)](https://comunica.github.io/Article-EDBT2023-SolidQuery/) ([Learn more](/research/link_traversal/))
4447
* [**Optimizing Approximate Membership Metadata in Triple Pattern Fragments for Clients and Servers**. Taelman, R., Van Herwegen, J., Vander Sande, M., & Verborgh, R. (2020)](https://comunica.github.io/Article-SSWS2020-AMF/) ([Learn more](/research/amf/))
45-
* [**Discovering Data Sources in a Distributed Networkof Heritage Information**. M., de Valk, S., Meijers, E., Taelman, R., Van De Sompel, H., & Verborgh, R. (2019)](https://biblio.ugent.be/publication/8629105/file/8629106.pdf)
48+
* [**Discovering Data Sources in a Distributed Network of Heritage Information**. Vanderhaeghe, M., de Valk, S., Meijers, E., Taelman, R., Van De Sompel, H., & Verborgh, R. (2019)](https://biblio.ugent.be/publication/8629105/file/8629106.pdf)
4649
* [**Computational integrity for outsourced execution of SPARQL queries**. Morel, S (2019)](https://www.scriptiebank.be/sites/default/files/thesis/2019-10/main_0.pdf)
4750
* [**Querying heterogeneous linked building datasets with context-expanded GraphQL queries**. Werbrouck, J., Senthilvel, M., Beetz, J., & Pauwels, P. (2019)](https://biblio.ugent.be/publication/8623179/file/8623180)
4851
* [**Using an Existing Website as a Queryable Low-Cost LOD Publishing Interface**. Van de Vyvere, B., Taelman, R., Colpaert, P., & Verborgh, R. (2019, June).](https://link.springer.com/chapter/10.1007/978-3-030-32327-1_35)
4952
* [**SAD Generator: eating our own dog food to generate KGs and websites for academic events**. Heyvaert, P., Chaves-Fraga, D., Priyatna, F., Sequeda, J., & Dimou, A. (2019, June).](https://link.springer.com/chapter/10.1007/978-3-030-32327-1_19)
53+
* [**Demonstration of Comunica, a Web framework for querying heterogeneous Linked Data interfaces**. Taelman, R., Van Herwegen, J., Vander Sande, M., & Verborgh, R. (2018)](https://comunica.github.io/Article-ISWC2018-Demo/)
5054
* [**Versioned Querying with OSTRICH and Comunica in MOCHA 2018**. Taelman, R., Vander Sande, M., & Verborgh, R. (2018, June)](https://biblio.ugent.be/publication/8566999/file/8567001.pdf)
5155

5256
Also using Comunica in our work? [Let us know](/ask/#email) so we can add a reference to this list.

0 commit comments

Comments
 (0)