# @comunica/query-sparql

> A SPARQL query engine for querying over decentralized RDF knowledge graphs on the Web

Latest version **5.3.0** (published 2026-07-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install @comunica/query-sparql
pnpm add @comunica/query-sparql
yarn add @comunica/query-sparql
bun add @comunica/query-sparql
```

Provides the commands `comunica-sparql`, `comunica-sparql-http`, `comunica-dynamic-sparql`.

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 5.3.0 |
| Published | 2026-07-10 |
| First published | 2022-02-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 260 |
| Unpacked size | 256.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 592 |
| Maintainers | joachimvh, rubensworks, rubenverborgh, dexagod, jeswr |
| Keywords | comunica, sparql, engine, query, update, sparql engine, sparql query, sparql update, sparql 1.1, sparql 1.2 |

## Links

- npm: https://www.npmjs.com/package/@comunica/query-sparql
- Repository: https://github.com/comunica/comunica
- Homepage: https://comunica.dev/
- Issues: https://github.com/comunica/comunica/issues
- Funding: https://opencollective.com/comunica-association
- npm.io page: https://npm.io/package/@comunica/query-sparql

## Dependencies (260)

- [process](https://npm.io/package/process.md) ^0.11.10
- [@comunica/core](https://npm.io/package/@comunica/core.md) ^5.3.0
- [@comunica/types](https://npm.io/package/@comunica/types.md) ^5.3.0
- [@comunica/runner](https://npm.io/package/@comunica/runner.md) ^5.3.0
- [@comunica/runner-cli](https://npm.io/package/@comunica/runner-cli.md) ^5.3.0
- [@comunica/logger-void](https://npm.io/package/@comunica/logger-void.md) ^5.3.0
- [@comunica/mediator-all](https://npm.io/package/@comunica/mediator-all.md) ^5.3.0
- [@comunica/mediator-race](https://npm.io/package/@comunica/mediator-race.md) ^5.3.0
- [@comunica/mediator-number](https://npm.io/package/@comunica/mediator-number.md) ^5.3.0
- [@comunica/actor-http-fetch](https://npm.io/package/@comunica/actor-http-fetch.md) ^5.3.0
- [@comunica/actor-http-proxy](https://npm.io/package/@comunica/actor-http-proxy.md) ^5.3.0
- [@comunica/actor-http-retry](https://npm.io/package/@comunica/actor-http-retry.md) ^5.3.0
- [@comunica/actor-init-query](https://npm.io/package/@comunica/actor-init-query.md) ^5.3.0
- [@comunica/actor-http-wayback](https://npm.io/package/@comunica/actor-http-wayback.md) ^5.3.0
- [@comunica/actor-rdf-parse-n3](https://npm.io/package/@comunica/actor-rdf-parse-n3.md) ^5.3.0
- [@comunica/bus-http-invalidate](https://npm.io/package/@comunica/bus-http-invalidate.md) ^5.3.0
- [@comunica/bus-query-operation](https://npm.io/package/@comunica/bus-query-operation.md) ^5.3.0
- [@comunica/config-query-sparql](https://npm.io/package/@comunica/config-query-sparql.md) ^5.3.0
- [@comunica/actor-rdf-parse-html](https://npm.io/package/@comunica/actor-rdf-parse-html.md) ^5.3.0
- [@comunica/bus-function-factory](https://npm.io/package/@comunica/bus-function-factory.md) ^5.3.0
- [@comunica/actor-http-limit-rate](https://npm.io/package/@comunica/actor-http-limit-rate.md) ^5.3.0
- [@comunica/actor-http-retry-body](https://npm.io/package/@comunica/actor-http-retry-body.md) ^5.3.0
- [@comunica/actor-dereference-http](https://npm.io/package/@comunica/actor-dereference-http.md) ^5.3.0
- [@comunica/actor-rdf-metadata-all](https://npm.io/package/@comunica/actor-rdf-metadata-all.md) ^5.3.0
- [@comunica/actor-rdf-parse-jsonld](https://npm.io/package/@comunica/actor-rdf-parse-jsonld.md) ^5.3.0
- [@comunica/actor-rdf-parse-rdfxml](https://npm.io/package/@comunica/actor-rdf-parse-rdfxml.md) ^5.3.0
- [@comunica/actor-rdf-parse-shaclc](https://npm.io/package/@comunica/actor-rdf-parse-shaclc.md) ^5.3.0
- [@comunica/actor-rdf-serialize-n3](https://npm.io/package/@comunica/actor-rdf-serialize-n3.md) ^5.3.0
- [@comunica/mediator-combine-union](https://npm.io/package/@comunica/mediator-combine-union.md) ^5.3.0
- [@comunica/actor-hash-quads-murmur](https://npm.io/package/@comunica/actor-hash-quads-murmur.md) ^5.3.0
- [@comunica/actor-query-parse-sparql](https://npm.io/package/@comunica/actor-query-parse-sparql.md) ^5.3.0
- [@comunica/actor-rdf-parse-xml-rdfa](https://npm.io/package/@comunica/actor-rdf-parse-xml-rdfa.md) ^5.3.0
- [@comunica/actor-query-operation-ask](https://npm.io/package/@comunica/actor-query-operation-ask.md) ^5.3.0
- [@comunica/actor-query-operation-nop](https://npm.io/package/@comunica/actor-query-operation-nop.md) ^5.3.0
- [@comunica/actor-query-parse-graphql](https://npm.io/package/@comunica/actor-query-parse-graphql.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-hash](https://npm.io/package/@comunica/actor-rdf-join-inner-hash.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-none](https://npm.io/package/@comunica/actor-rdf-join-inner-none.md) ^5.3.0
- [@comunica/actor-rdf-join-minus-hash](https://npm.io/package/@comunica/actor-rdf-join-minus-hash.md) ^5.3.0
- [@comunica/actor-rdf-parse-html-rdfa](https://npm.io/package/@comunica/actor-rdf-parse-html-rdfa.md) ^5.3.0
- [@comunica/mediator-combine-pipeline](https://npm.io/package/@comunica/mediator-combine-pipeline.md) ^5.3.0
- [@comunica/actor-dereference-fallback](https://npm.io/package/@comunica/actor-dereference-fallback.md) ^5.3.0
- [@comunica/actor-hash-bindings-murmur](https://npm.io/package/@comunica/actor-hash-bindings-murmur.md) ^5.3.0
- [@comunica/actor-query-operation-join](https://npm.io/package/@comunica/actor-query-operation-join.md) ^5.3.0
- [@comunica/actor-rdf-serialize-jsonld](https://npm.io/package/@comunica/actor-rdf-serialize-jsonld.md) ^5.3.0
- [@comunica/actor-rdf-serialize-shaclc](https://npm.io/package/@comunica/actor-rdf-serialize-shaclc.md) ^5.3.0
- [@comunica/actor-dereference-rdf-parse](https://npm.io/package/@comunica/actor-dereference-rdf-parse.md) ^5.3.0
- [@comunica/actor-query-operation-group](https://npm.io/package/@comunica/actor-query-operation-group.md) ^5.3.0
- [@comunica/actor-query-operation-minus](https://npm.io/package/@comunica/actor-query-operation-minus.md) ^5.3.0
- [@comunica/actor-query-operation-nodes](https://npm.io/package/@comunica/actor-query-operation-nodes.md) ^5.3.0
- [@comunica/actor-query-operation-slice](https://npm.io/package/@comunica/actor-query-operation-slice.md) ^5.3.0
- [@comunica/actor-query-operation-union](https://npm.io/package/@comunica/actor-query-operation-union.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-single](https://npm.io/package/@comunica/actor-rdf-join-inner-single.md) ^5.3.0
- [@comunica/actor-rdf-parse-html-script](https://npm.io/package/@comunica/actor-rdf-parse-html-script.md) ^5.3.0
- [@comunica/actor-query-operation-extend](https://npm.io/package/@comunica/actor-query-operation-extend.md) ^5.3.0
- [@comunica/actor-query-operation-filter](https://npm.io/package/@comunica/actor-query-operation-filter.md) ^5.3.0
- [@comunica/actor-query-operation-source](https://npm.io/package/@comunica/actor-query-operation-source.md) ^5.3.0
- [@comunica/actor-query-operation-values](https://npm.io/package/@comunica/actor-query-operation-values.md) ^5.3.0
- [@comunica/actor-query-serialize-sparql](https://npm.io/package/@comunica/actor-query-serialize-sparql.md) ^5.3.0
- [@comunica/actor-rdf-join-optional-bind](https://npm.io/package/@comunica/actor-rdf-join-optional-bind.md) ^5.3.0
- [@comunica/actor-rdf-join-optional-hash](https://npm.io/package/@comunica/actor-rdf-join-optional-hash.md) ^5.3.0
- [@comunica/actor-query-operation-orderby](https://npm.io/package/@comunica/actor-query-operation-orderby.md) ^5.3.0
- [@comunica/actor-query-operation-project](https://npm.io/package/@comunica/actor-query-operation-project.md) ^5.3.0
- [@comunica/actor-function-factory-term-tz](https://npm.io/package/@comunica/actor-function-factory-term-tz.md) ^5.3.0
- [@comunica/actor-query-operation-bgp-join](https://npm.io/package/@comunica/actor-query-operation-bgp-join.md) ^5.3.0
- [@comunica/actor-query-operation-leftjoin](https://npm.io/package/@comunica/actor-query-operation-leftjoin.md) ^5.3.0
- [@comunica/actor-query-operation-path-alt](https://npm.io/package/@comunica/actor-query-operation-path-alt.md) ^5.3.0
- [@comunica/actor-query-operation-path-inv](https://npm.io/package/@comunica/actor-query-operation-path-inv.md) ^5.3.0
- [@comunica/actor-query-operation-path-nps](https://npm.io/package/@comunica/actor-query-operation-path-nps.md) ^5.3.0
- [@comunica/actor-query-operation-path-seq](https://npm.io/package/@comunica/actor-query-operation-path-seq.md) ^5.3.0
- [@comunica/actor-query-process-sequential](https://npm.io/package/@comunica/actor-query-process-sequential.md) ^5.3.0
- [@comunica/actor-rdf-parse-html-microdata](https://npm.io/package/@comunica/actor-rdf-parse-html-microdata.md) ^5.3.0
- [@comunica/actor-function-factory-term-abs](https://npm.io/package/@comunica/actor-function-factory-term-abs.md) ^5.3.0
- [@comunica/actor-function-factory-term-day](https://npm.io/package/@comunica/actor-function-factory-term-day.md) ^5.3.0
- [@comunica/actor-function-factory-term-iri](https://npm.io/package/@comunica/actor-function-factory-term-iri.md) ^5.3.0
- [@comunica/actor-function-factory-term-md5](https://npm.io/package/@comunica/actor-function-factory-term-md5.md) ^5.3.0
- [@comunica/actor-function-factory-term-not](https://npm.io/package/@comunica/actor-function-factory-term-not.md) ^5.3.0
- [@comunica/actor-function-factory-term-now](https://npm.io/package/@comunica/actor-function-factory-term-now.md) ^5.3.0
- [@comunica/actor-function-factory-term-str](https://npm.io/package/@comunica/actor-function-factory-term-str.md) ^5.3.0
- [@comunica/actor-query-operation-construct](https://npm.io/package/@comunica/actor-query-operation-construct.md) ^5.3.0
- [@comunica/actor-query-operation-from-quad](https://npm.io/package/@comunica/actor-query-operation-from-quad.md) ^5.3.0
- [@comunica/actor-query-operation-path-link](https://npm.io/package/@comunica/actor-query-operation-path-link.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-multi-bind](https://npm.io/package/@comunica/actor-rdf-join-inner-multi-bind.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-nestedloop](https://npm.io/package/@comunica/actor-rdf-join-inner-nestedloop.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-void](https://npm.io/package/@comunica/actor-rdf-metadata-extract-void.md) ^5.3.0
- [@comunica/actor-function-factory-term-ceil](https://npm.io/package/@comunica/actor-function-factory-term-ceil.md) ^5.3.0
- [@comunica/actor-function-factory-term-lang](https://npm.io/package/@comunica/actor-function-factory-term-lang.md) ^5.3.0
- [@comunica/actor-function-factory-term-rand](https://npm.io/package/@comunica/actor-function-factory-term-rand.md) ^5.3.0
- [@comunica/actor-function-factory-term-sha1](https://npm.io/package/@comunica/actor-function-factory-term-sha1.md) ^5.3.0
- [@comunica/actor-function-factory-term-uuid](https://npm.io/package/@comunica/actor-function-factory-term-uuid.md) ^5.3.0
- [@comunica/actor-function-factory-term-year](https://npm.io/package/@comunica/actor-function-factory-term-year.md) ^5.3.0
- [@comunica/actor-query-result-serialize-rdf](https://npm.io/package/@comunica/actor-query-result-serialize-rdf.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-multi-empty](https://npm.io/package/@comunica/actor-rdf-join-inner-multi-empty.md) ^5.3.0
- [@comunica/actor-rdf-metadata-primary-topic](https://npm.io/package/@comunica/actor-rdf-metadata-primary-topic.md) ^5.3.0
- [@comunica/mediator-join-coefficients-fixed](https://npm.io/package/@comunica/mediator-join-coefficients-fixed.md) ^5.3.0
- [@comunica/actor-function-factory-term-floor](https://npm.io/package/@comunica/actor-function-factory-term-floor.md) ^5.3.0
- [@comunica/actor-function-factory-term-hours](https://npm.io/package/@comunica/actor-function-factory-term-hours.md) ^5.3.0
- [@comunica/actor-function-factory-term-lcase](https://npm.io/package/@comunica/actor-function-factory-term-lcase.md) ^5.3.0
- [@comunica/actor-function-factory-term-month](https://npm.io/package/@comunica/actor-function-factory-term-month.md) ^5.3.0
- [@comunica/actor-function-factory-term-regex](https://npm.io/package/@comunica/actor-function-factory-term-regex.md) ^5.3.0
- [@comunica/actor-function-factory-term-round](https://npm.io/package/@comunica/actor-function-factory-term-round.md) ^5.3.0
- [@comunica/actor-function-factory-term-ucase](https://npm.io/package/@comunica/actor-function-factory-term-ucase.md) ^5.3.0
- [@comunica/actor-query-operation-update-drop](https://npm.io/package/@comunica/actor-query-operation-update-drop.md) ^5.3.0
- [@comunica/actor-query-operation-update-load](https://npm.io/package/@comunica/actor-query-operation-update-load.md) ^5.3.0
- [@comunica/actor-query-process-explain-query](https://npm.io/package/@comunica/actor-query-process-explain-query.md) ^5.3.0
- [@comunica/actor-query-result-serialize-json](https://npm.io/package/@comunica/actor-query-result-serialize-json.md) ^5.3.0
- [@comunica/actor-query-result-serialize-tree](https://npm.io/package/@comunica/actor-query-result-serialize-tree.md) ^5.3.0
- [@comunica/actor-query-source-identify-rdfjs](https://npm.io/package/@comunica/actor-query-source-identify-rdfjs.md) ^5.3.0
- [@comunica/actor-rdf-update-quads-hypermedia](https://npm.io/package/@comunica/actor-rdf-update-quads-hypermedia.md) ^5.3.0
- [@comunica/actor-function-factory-term-is-iri](https://npm.io/package/@comunica/actor-function-factory-term-is-iri.md) ^5.3.0
- [@comunica/actor-function-factory-term-object](https://npm.io/package/@comunica/actor-function-factory-term-object.md) ^5.3.0
- [@comunica/actor-function-factory-term-sha256](https://npm.io/package/@comunica/actor-function-factory-term-sha256.md) ^5.3.0
- [@comunica/actor-function-factory-term-sha384](https://npm.io/package/@comunica/actor-function-factory-term-sha384.md) ^5.3.0
- [@comunica/actor-function-factory-term-sha512](https://npm.io/package/@comunica/actor-function-factory-term-sha512.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-dt](https://npm.io/package/@comunica/actor-function-factory-term-str-dt.md) ^5.3.0
- [@comunica/actor-function-factory-term-triple](https://npm.io/package/@comunica/actor-function-factory-term-triple.md) ^5.3.0
- [@comunica/actor-query-operation-reduced-hash](https://npm.io/package/@comunica/actor-query-operation-reduced-hash.md) ^5.3.0
- [@comunica/actor-query-operation-update-clear](https://npm.io/package/@comunica/actor-query-operation-update-clear.md) ^5.3.0
- [@comunica/actor-query-process-explain-parsed](https://npm.io/package/@comunica/actor-query-process-explain-parsed.md) ^5.3.0
- [@comunica/actor-query-result-serialize-stats](https://npm.io/package/@comunica/actor-query-result-serialize-stats.md) ^5.3.0
- [@comunica/actor-query-result-serialize-table](https://npm.io/package/@comunica/actor-query-result-serialize-table.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-symmetrichash](https://npm.io/package/@comunica/actor-rdf-join-inner-symmetrichash.md) ^5.3.0
- [@comunica/actor-rdf-join-optional-nestedloop](https://npm.io/package/@comunica/actor-rdf-join-optional-nestedloop.md) ^5.3.0
- [@comunica/actor-rdf-update-hypermedia-sparql](https://npm.io/package/@comunica/actor-rdf-update-hypermedia-sparql.md) ^5.3.0
- [@comunica/actor-rdf-update-quads-rdfjs-store](https://npm.io/package/@comunica/actor-rdf-update-quads-rdfjs-store.md) ^5.3.0
- [@comunica/actor-function-factory-term-langdir](https://npm.io/package/@comunica/actor-function-factory-term-langdir.md) ^5.3.0
- [@comunica/actor-function-factory-term-minutes](https://npm.io/package/@comunica/actor-function-factory-term-minutes.md) ^5.3.0
- [@comunica/actor-function-factory-term-replace](https://npm.io/package/@comunica/actor-function-factory-term-replace.md) ^5.3.0
- [@comunica/actor-function-factory-term-seconds](https://npm.io/package/@comunica/actor-function-factory-term-seconds.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-len](https://npm.io/package/@comunica/actor-function-factory-term-str-len.md) ^5.3.0
- [@comunica/actor-function-factory-term-sub-str](https://npm.io/package/@comunica/actor-function-factory-term-sub-str.md) ^5.3.0
- [@comunica/actor-function-factory-term-subject](https://npm.io/package/@comunica/actor-function-factory-term-subject.md) ^5.3.0
- [@comunica/actor-query-operation-update-create](https://npm.io/package/@comunica/actor-query-operation-update-create.md) ^5.3.0
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) ^5.3.0
- [@comunica/actor-query-result-serialize-simple](https://npm.io/package/@comunica/actor-query-result-serialize-simple.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-multi-smallest](https://npm.io/package/@comunica/actor-rdf-join-inner-multi-smallest.md) ^5.3.0
- [@comunica/actor-rdf-update-hypermedia-put-ldp](https://npm.io/package/@comunica/actor-rdf-update-hypermedia-put-ldp.md) ^5.3.0
- [@comunica/actor-function-factory-expression-if](https://npm.io/package/@comunica/actor-function-factory-expression-if.md) ^5.3.0
- [@comunica/actor-function-factory-expression-in](https://npm.io/package/@comunica/actor-function-factory-expression-in.md) ^5.3.0
- [@comunica/actor-function-factory-term-addition](https://npm.io/package/@comunica/actor-function-factory-term-addition.md) ^5.3.0
- [@comunica/actor-function-factory-term-contains](https://npm.io/package/@comunica/actor-function-factory-term-contains.md) ^5.3.0
- [@comunica/actor-function-factory-term-datatype](https://npm.io/package/@comunica/actor-function-factory-term-datatype.md) ^5.3.0
- [@comunica/actor-function-factory-term-division](https://npm.io/package/@comunica/actor-function-factory-term-division.md) ^5.3.0
- [@comunica/actor-function-factory-term-equality](https://npm.io/package/@comunica/actor-function-factory-term-equality.md) ^5.3.0
- [@comunica/actor-function-factory-term-has-lang](https://npm.io/package/@comunica/actor-function-factory-term-has-lang.md) ^5.3.0
- [@comunica/actor-function-factory-term-is-blank](https://npm.io/package/@comunica/actor-function-factory-term-is-blank.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-ends](https://npm.io/package/@comunica/actor-function-factory-term-str-ends.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-lang](https://npm.io/package/@comunica/actor-function-factory-term-str-lang.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-uuid](https://npm.io/package/@comunica/actor-function-factory-term-str-uuid.md) ^5.3.0
- [@comunica/actor-function-factory-term-timezone](https://npm.io/package/@comunica/actor-function-factory-term-timezone.md) ^5.3.0
- [@comunica/actor-query-process-explain-physical](https://npm.io/package/@comunica/actor-query-process-explain-physical.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-max](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-max.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-min](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-min.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-sum](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-sum.md) ^5.3.0
- [@comunica/actor-context-preprocess-set-defaults](https://npm.io/package/@comunica/actor-context-preprocess-set-defaults.md) ^5.3.0
- [@comunica/actor-function-factory-term-is-triple](https://npm.io/package/@comunica/actor-function-factory-term-is-triple.md) ^5.3.0
- [@comunica/actor-function-factory-term-predicate](https://npm.io/package/@comunica/actor-function-factory-term-predicate.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-after](https://npm.io/package/@comunica/actor-function-factory-term-str-after.md) ^5.3.0
- [@comunica/actor-function-factory-term-inequality](https://npm.io/package/@comunica/actor-function-factory-term-inequality.md) ^5.3.0
- [@comunica/actor-function-factory-term-is-literal](https://npm.io/package/@comunica/actor-function-factory-term-is-literal.md) ^5.3.0
- [@comunica/actor-function-factory-term-is-numeric](https://npm.io/package/@comunica/actor-function-factory-term-is-numeric.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-before](https://npm.io/package/@comunica/actor-function-factory-term-str-before.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-starts](https://npm.io/package/@comunica/actor-function-factory-term-str-starts.md) ^5.3.0
- [@comunica/actor-function-factory-term-unary-plus](https://npm.io/package/@comunica/actor-function-factory-term-unary-plus.md) ^5.3.0
- [@comunica/actor-query-operation-path-one-or-more](https://npm.io/package/@comunica/actor-query-operation-path-one-or-more.md) ^5.3.0
- [@comunica/actor-query-operation-path-zero-or-one](https://npm.io/package/@comunica/actor-query-operation-path-zero-or-one.md) ^5.3.0
- [@comunica/actor-query-source-identify-hypermedia](https://npm.io/package/@comunica/actor-query-source-identify-hypermedia.md) ^5.3.0
- [@comunica/actor-query-source-identify-serialized](https://npm.io/package/@comunica/actor-query-source-identify-serialized.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-multi-bind-source](https://npm.io/package/@comunica/actor-rdf-join-inner-multi-bind-source.md) ^5.3.0
- [@comunica/actor-rdf-metadata-accumulate-pagesize](https://npm.io/package/@comunica/actor-rdf-metadata-accumulate-pagesize.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-hydra-count](https://npm.io/package/@comunica/actor-rdf-metadata-extract-hydra-count.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-count](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-count.md) ^5.3.0
- [@comunica/actor-function-factory-expression-bnode](https://npm.io/package/@comunica/actor-function-factory-expression-bnode.md) ^5.3.0
- [@comunica/actor-function-factory-expression-bound](https://npm.io/package/@comunica/actor-function-factory-expression-bound.md) ^5.3.0
- [@comunica/actor-function-factory-term-has-langdir](https://npm.io/package/@comunica/actor-function-factory-term-has-langdir.md) ^5.3.0
- [@comunica/actor-function-factory-term-langmatches](https://npm.io/package/@comunica/actor-function-factory-term-langmatches.md) ^5.3.0
- [@comunica/actor-function-factory-term-lesser-than](https://npm.io/package/@comunica/actor-function-factory-term-lesser-than.md) ^5.3.0
- [@comunica/actor-function-factory-term-str-langdir](https://npm.io/package/@comunica/actor-function-factory-term-str-langdir.md) ^5.3.0
- [@comunica/actor-function-factory-term-subtraction](https://npm.io/package/@comunica/actor-function-factory-term-subtraction.md) ^5.3.0
- [@comunica/actor-function-factory-term-unary-minus](https://npm.io/package/@comunica/actor-function-factory-term-unary-minus.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-date](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-date.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-time](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-time.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-join-bgp](https://npm.io/package/@comunica/actor-optimize-query-operation-join-bgp.md) ^5.3.0
- [@comunica/actor-query-operation-distinct-identity](https://npm.io/package/@comunica/actor-query-operation-distinct-identity.md) ^5.3.0
- [@comunica/actor-query-operation-path-zero-or-more](https://npm.io/package/@comunica/actor-query-operation-path-zero-or-more.md) ^5.3.0
- [@comunica/actor-query-result-serialize-sparql-csv](https://npm.io/package/@comunica/actor-query-result-serialize-sparql-csv.md) ^5.3.0
- [@comunica/actor-query-result-serialize-sparql-tsv](https://npm.io/package/@comunica/actor-query-result-serialize-sparql-tsv.md) ^5.3.0
- [@comunica/actor-query-result-serialize-sparql-xml](https://npm.io/package/@comunica/actor-query-result-serialize-sparql-xml.md) ^5.3.0
- [@comunica/actor-rdf-join-entries-sort-cardinality](https://npm.io/package/@comunica/actor-rdf-join-entries-sort-cardinality.md) ^5.3.0
- [@comunica/actor-rdf-join-entries-sort-selectivity](https://npm.io/package/@comunica/actor-rdf-join-entries-sort-selectivity.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-put-accepted](https://npm.io/package/@comunica/actor-rdf-metadata-extract-put-accepted.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-request-time](https://npm.io/package/@comunica/actor-rdf-metadata-extract-request-time.md) ^5.3.0
- [@comunica/actor-rdf-resolve-hypermedia-links-next](https://npm.io/package/@comunica/actor-rdf-resolve-hypermedia-links-next.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-sample](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-sample.md) ^5.3.0
- [@comunica/actor-function-factory-expression-concat](https://npm.io/package/@comunica/actor-function-factory-expression-concat.md) ^5.3.0
- [@comunica/actor-function-factory-expression-not-in](https://npm.io/package/@comunica/actor-function-factory-expression-not-in.md) ^5.3.0
- [@comunica/actor-function-factory-term-greater-than](https://npm.io/package/@comunica/actor-function-factory-term-greater-than.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-float](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-float.md) ^5.3.0
- [@comunica/actor-query-result-serialize-sparql-json](https://npm.io/package/@comunica/actor-query-result-serialize-sparql-json.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-post-accepted](https://npm.io/package/@comunica/actor-rdf-metadata-extract-post-accepted.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-average](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-average.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-double](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-double.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-string](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-string.md) ^5.3.0
- [@comunica/actor-query-operation-update-deleteinsert](https://npm.io/package/@comunica/actor-query-operation-update-deleteinsert.md) ^5.3.0
- [@comunica/actor-query-source-identify-compositefile](https://npm.io/package/@comunica/actor-query-source-identify-compositefile.md) ^5.3.0
- [@comunica/actor-rdf-metadata-accumulate-cardinality](https://npm.io/package/@comunica/actor-rdf-metadata-accumulate-cardinality.md) ^5.3.0
- [@comunica/actor-rdf-metadata-accumulate-requesttime](https://npm.io/package/@comunica/actor-rdf-metadata-accumulate-requesttime.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-hydra-controls](https://npm.io/package/@comunica/actor-rdf-metadata-extract-hydra-controls.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-hydra-pagesize](https://npm.io/package/@comunica/actor-rdf-metadata-extract-hydra-pagesize.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-sparql-service](https://npm.io/package/@comunica/actor-rdf-metadata-extract-sparql-service.md) ^5.3.0
- [@comunica/actor-context-preprocess-convert-shortcuts](https://npm.io/package/@comunica/actor-context-preprocess-convert-shortcuts.md) ^5.3.0
- [@comunica/actor-expression-evaluator-factory-default](https://npm.io/package/@comunica/actor-expression-evaluator-factory-default.md) ^5.3.0
- [@comunica/actor-function-factory-expression-coalesce](https://npm.io/package/@comunica/actor-function-factory-expression-coalesce.md) ^5.3.0
- [@comunica/actor-function-factory-term-encode-for-uri](https://npm.io/package/@comunica/actor-function-factory-term-encode-for-uri.md) ^5.3.0
- [@comunica/actor-function-factory-term-multiplication](https://npm.io/package/@comunica/actor-function-factory-term-multiplication.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-boolean](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-boolean.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-decimal](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-decimal.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-integer](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-integer.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-bgp-to-join](https://npm.io/package/@comunica/actor-optimize-query-operation-bgp-to-join.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-rewrite-add](https://npm.io/package/@comunica/actor-optimize-query-operation-rewrite-add.md) ^5.3.0
- [@comunica/actor-query-source-identify-hypermedia-qpf](https://npm.io/package/@comunica/actor-query-source-identify-hypermedia-qpf.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-server-software](https://npm.io/package/@comunica/actor-rdf-metadata-extract-server-software.md) ^5.3.0
- [@comunica/actor-function-factory-expression-same-term](https://npm.io/package/@comunica/actor-function-factory-expression-same-term.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-datetime](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-datetime.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-duration](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-duration.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-rewrite-copy](https://npm.io/package/@comunica/actor-optimize-query-operation-rewrite-copy.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-rewrite-move](https://npm.io/package/@comunica/actor-optimize-query-operation-rewrite-move.md) ^5.3.0
- [@comunica/actor-query-source-identify-hypermedia-none](https://npm.io/package/@comunica/actor-query-source-identify-hypermedia-none.md) ^5.3.0
- [@comunica/actor-function-factory-expression-extensions](https://npm.io/package/@comunica/actor-function-factory-expression-extensions.md) ^5.3.0
- [@comunica/actor-function-factory-expression-logical-or](https://npm.io/package/@comunica/actor-function-factory-expression-logical-or.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-group-sources](https://npm.io/package/@comunica/actor-optimize-query-operation-group-sources.md) ^5.3.0
- [@comunica/actor-query-operation-update-compositeupdate](https://npm.io/package/@comunica/actor-query-operation-update-compositeupdate.md) ^5.3.0
- [@comunica/actor-rdf-join-selectivity-variable-counting](https://npm.io/package/@comunica/actor-rdf-join-selectivity-variable-counting.md) ^5.3.0
- [@comunica/actor-function-factory-expression-logical-and](https://npm.io/package/@comunica/actor-function-factory-expression-logical-and.md) ^5.3.0
- [@comunica/actor-function-factory-term-lesser-than-equal](https://npm.io/package/@comunica/actor-function-factory-term-lesser-than-equal.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-join-connected](https://npm.io/package/@comunica/actor-optimize-query-operation-join-connected.md) ^5.3.0
- [@comunica/actor-query-source-identify-hypermedia-sparql](https://npm.io/package/@comunica/actor-query-source-identify-hypermedia-sparql.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-allow-http-methods](https://npm.io/package/@comunica/actor-rdf-metadata-extract-allow-http-methods.md) ^5.3.0
- [@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo](https://npm.io/package/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-group-concat](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-group-concat.md) ^5.3.0
- [@comunica/actor-context-preprocess-source-to-destination](https://npm.io/package/@comunica/actor-context-preprocess-source-to-destination.md) ^5.3.0
- [@comunica/actor-function-factory-term-greater-than-equal](https://npm.io/package/@comunica/actor-function-factory-term-greater-than-equal.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-filter-pushdown](https://npm.io/package/@comunica/actor-optimize-query-operation-filter-pushdown.md) ^5.3.0
- [@comunica/actor-query-source-dereference-link-hypermedia](https://npm.io/package/@comunica/actor-query-source-dereference-link-hypermedia.md) ^5.3.0
- [@comunica/actor-rdf-metadata-extract-patch-sparql-update](https://npm.io/package/@comunica/actor-rdf-metadata-extract-patch-sparql-update.md) ^5.3.0
- [@comunica/actor-rdf-update-hypermedia-patch-sparql-update](https://npm.io/package/@comunica/actor-rdf-update-hypermedia-patch-sparql-update.md) ^5.3.0
- [@comunica/actor-bindings-aggregator-factory-wildcard-count](https://npm.io/package/@comunica/actor-bindings-aggregator-factory-wildcard-count.md) ^5.3.0
- [@comunica/actor-query-source-dereference-link-force-sparql](https://npm.io/package/@comunica/actor-query-source-dereference-link-force-sparql.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-construct-distinct](https://npm.io/package/@comunica/actor-optimize-query-operation-construct-distinct.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-group-file-sources](https://npm.io/package/@comunica/actor-optimize-query-operation-group-file-sources.md) ^5.3.0
- [@comunica/actor-term-comparator-factory-expression-evaluator](https://npm.io/package/@comunica/actor-term-comparator-factory-expression-evaluator.md) ^5.3.0
- [@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings](https://npm.io/package/@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-day-time-duration](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-day-time-duration.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-query-source-identify](https://npm.io/package/@comunica/actor-optimize-query-operation-query-source-identify.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-query-source-skolemize](https://npm.io/package/@comunica/actor-optimize-query-operation-query-source-skolemize.md) ^5.3.0
- [@comunica/actor-function-factory-term-xsd-to-year-month-duration](https://npm.io/package/@comunica/actor-function-factory-term-xsd-to-year-month-duration.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-distinct-terms-pushdown](https://npm.io/package/@comunica/actor-optimize-query-operation-distinct-terms-pushdown.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-assign-sources-exhaustive](https://npm.io/package/@comunica/actor-optimize-query-operation-assign-sources-exhaustive.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-leftjoin-expression-pushdown](https://npm.io/package/@comunica/actor-optimize-query-operation-leftjoin-expression-pushdown.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-prune-empty-source-operations](https://npm.io/package/@comunica/actor-optimize-query-operation-prune-empty-source-operations.md) ^5.3.0
- [@comunica/actor-optimize-query-operation-describe-to-constructs-subject](https://npm.io/package/@comunica/actor-optimize-query-operation-describe-to-constructs-subject.md) ^5.3.0

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 5.3.0 (latest) — 2026-07-10
- 4.4.2-alpha.49.0 (next) — 2025-10-22
- 5.2.4 — 2026-06-19
- 5.2.3 — 2026-05-26
- 5.2.2 — 2026-05-03
- 5.2.1 — 2026-04-20
- 5.2.0 — 2026-04-14
- 5.1.3 — 2026-01-30
- 5.1.2 — 2026-01-21
- 5.1.1 — 2026-01-20
- 5.1.0 — 2026-01-16
- 5.0.5 — 2026-01-13
- 5.0.3 — 2026-01-12
- 5.0.2 — 2026-01-12
- 5.0.1 — 2026-01-08
- … 101 more at https://npm.io/package/@comunica/query-sparql/versions

## README

# Comunica SPARQL

[![npm version](https://badge.fury.io/js/%40comunica%2Fquery-sparql.svg)](https://www.npmjs.com/package/@comunica/query-sparql)
[![Docker Pulls](https://img.shields.io/docker/pulls/comunica/query-sparql.svg)](https://hub.docker.com/r/comunica/query-sparql/)

Comunica SPARQL is a SPARQL query engine for JavaScript for querying over decentralized RDF knowledge graphs on the Web.

It's main distinguishing features are the following:

* Execute [SPARQL 1.2](https://www.w3.org/TR/sparql12-query/) or [GraphQL-LD](https://github.com/rubensworks/graphql-ld.js) queries.
* Federated querying over [heterogeneous interfaces](https://comunica.dev/docs/query/advanced/source_types/), such as RDF files, SPARQL endpoints, [Triple Pattern Fragments](https://linkeddatafragments.org/), or [Solid data pods](https://inrupt.com/solid).
* High modularity enabling [easy extensions and customization](https://comunica.dev/docs/modify/).
* Runs in JavaScript using [Node.JS](http://nodejs.org/), in the browser, and via the command-line.
* Update sources using [SPARQL 1.2 Update queries](https://www.w3.org/TR/sparql12-update/).

**[Learn more about Comunica on our website](https://comunica.dev/).**

**This actor can not query over local files for security reasons, but [Comunica SPARQL file](https://github.com/comunica/comunica/tree/master/engines/query-sparql-file#readme) can.**

_Internally, this is a [Comunica module](https://comunica.dev/) that is configured with modules to execute SPARQL queries._

## Supported by

Comunica is a community-driven project, sustained by the [Comunica Association](https://comunica.dev/association/).
If you are using Comunica, [becoming a sponsor or member](https://opencollective.com/comunica-association) is a way to make Comunica sustainable in the long-term.

Our top sponsors are shown below!

<a href="https://opencollective.com/comunica-association/sponsor/0/website" target="_blank"><img src="https://opencollective.com/comunica-association/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/comunica-association/sponsor/1/website" target="_blank"><img src="https://opencollective.com/comunica-association/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/comunica-association/sponsor/2/website" target="_blank"><img src="https://opencollective.com/comunica-association/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/comunica-association/sponsor/3/website" target="_blank"><img src="https://opencollective.com/comunica-association/sponsor/3/avatar.svg"></a>

## Installation

Comunica requires [Node.JS](http://nodejs.org/) 14.0 or higher and is tested on OSX and Linux.

The easiest way to install the client is by installing it from NPM as follows:

```bash
$ [sudo] npm install -g @comunica/query-sparql
```

Alternatively, you can install from the latest GitHub sources.
For this, please refer to the README of the [Comunica monorepo](https://github.com/comunica/comunica).

## Execute SPARQL queries

This actor can be used to execute SPARQL queries from
the command line, HTTP (SPARQL protocol), within a Node.JS application, or from a browser.

### Usage from the command line

Show 100 triples from http://fragments.dbpedia.org/2015-10/en:

```bash
$ comunica-sparql https://fragments.dbpedia.org/2015-10/en "CONSTRUCT WHERE { ?s ?p ?o } LIMIT 100"
```

Show all triples from http://dbpedia.org/resource/Belgium:

```bash
$ comunica-sparql https://dbpedia.org/resource/Belgium "CONSTRUCT WHERE { ?s ?p ?o }"
```

Combine multiple sources:

```bash
$ comunica-sparql https://fragments.dbpedia.org/2015-10/en \
  file@https://dbpedia.org/resource/Belgium "CONSTRUCT WHERE { ?s ?p ?o } LIMIT 100"
```

Show the help with all options:

```bash
$ comunica-sparql --help
```

The dynamic variant of this executable is `comunica-dynamic-sparql`.
An alternative config file can be passed via the `COMUNICA_CONFIG` environment variable.

When you are working with this module in the Comunica monorepo development environment,
this command can be invoked directly as follows (when inside the `engines/query-sparql` folder):

```bash
node bin/query.js https://fragments.dbpedia.org/2016-04/en "CONSTRUCT WHERE { ?s ?p ?o } LIMIT 100"
```

Use `bin/query-dynamic.js` when running dynamically inside the Comunica monorepo development environment.

_[**Read more** about querying from the command line](https://comunica.dev/docs/query/getting_started/query_cli/)._

### Usage as a SPARQL endpoint

Start a webservice exposing https://fragments.dbpedia.org/2015-10/en via the SPARQL protocol, i.e., a _SPARQL endpoint_.

```bash
$ comunica-sparql-http https://fragments.dbpedia.org/2015/en
```

This command has a similar signature to `comunica-sparql`, minus the query input options.

Show the help with all options:

```bash
$ comunica-sparql-http --help
```

The SPARQL endpoint can only be started dynamically.
An alternative config file can be passed via the `COMUNICA_CONFIG` environment variable.

Use `bin/http.js` when running in the Comunica monorepo development environment.

_[**Read more** about setting up a SPARQL endpoint](https://comunica.dev/docs/query/getting_started/setup_endpoint/)._

### Usage within application

The easiest way to create an engine (with default config) is as follows:

```javascript
const QueryEngine = require('@comunica/query-sparql').QueryEngine;

const myEngine = new QueryEngine();
```

Alternatively, an engine can also be created dynamically with a custom config:

```javascript
const QueryEngineFactory = require('@comunica/query-sparql').QueryEngineFactory;

const myEngine = await new QueryEngineFactory().create({ configPath: 'path/to/config.json' });
```

Once you have created your query engine,
you can use it to call one of the async query methods,
such as `queryBindings` for `SELECT` queries,
`queryQuads` for `CONSTRUCT` and `DESCRIBE` queries,
`queryBoolean` for `ASK` queries,
or `queryVoid` for update queries.

All query methods have the require a query string and a context object,
with the return type depending on the query type.

For example, a `SELECT` query can be executed as follows:

```javascript
const bindingsStream = await myEngine.queryBindings(`
  SELECT ?s ?p ?o WHERE {
    ?s ?p <http://dbpedia.org/resource/Belgium>.
    ?s ?p ?o
  } LIMIT 100`, {
  sources: [ 'http://fragments.dbpedia.org/2015/en' ],
});

// Consume results as a stream (best performance)
bindingsStream.on('data', (binding) => {
  console.log(binding.toString()); // Quick way to print bindings for testing

  console.log(binding.has('s')); // Will be true

  // Obtaining values
  console.log(binding.get('s').value);
  console.log(binding.get('s').termType);
  console.log(binding.get('p').value);
  console.log(binding.get('o').value);
});
bindingsStream.on('end', () => {
  // The data-listener will not be called anymore once we get here.
});
bindingsStream.on('error', (error) => {
  console.error(error);
});

// Consume results as async iterable (easier)
for await (const binding of bindingsStream) {
  console.log(binding.toString());
}

// Consume results as an array (easier)
const bindings = await bindingsStream.toArray();
console.log(bindings[0].get('s').value);
console.log(bindings[0].get('s').termType);
```

Optionally, specific [types of sources](https://comunica.dev/docs/query/advanced/source_types/) can be specified (_otherwise, the type of source will be detected automatically_):

```javascript
const bindingsStream = await myEngine.queryBindings(`...`, {
  sources: [
    'http://fragments.dbpedia.org/2015/en',
    {
      type: 'hypermedia',
      value: 'http://fragments.dbpedia.org/2016/en'
    },
    {
      type: 'file',
      value: 'https://www.rubensworks.net/'
    },
    new N3Store(),
    {
      type: 'sparql',
      value: 'https://dbpedia.org/sparql'
    },
  ],
});
```

**Note: Some SPARQL endpoints may be recognised as a file instead of a SPARQL endpoint due to them not supporting [SPARQL Service Description](https://www.w3.org/TR/sparql11-service-description/), which may produce incorrect results. For these cases, the `sparql` type MUST be set.**

For `CONSTRUCT` and `DESCRIBE` queries,
results can be collected as follows.

```javascript
const quadStream = await myEngine.queryQuads(`
  CONSTRUCT WHERE {
    ?s ?p ?o
  } LIMIT 100`, {
  sources: ['http://fragments.dbpedia.org/2015/en'],
});

// Consume results as a stream (best performance)
quadStream.on('data', (quad) => {
    console.log(quad.subject.value);
    console.log(quad.predicate.value);
    console.log(quad.object.value);
    console.log(quad.graph.value);
});

// Consume results as asynciterable (easier)
for await (const quad of quadStream) {
  console.log(quad.subject.value);
}

// Consume results as an array (easier)
const quads = await quadStream.toArray();
console.log(quads[0].subject.value);
console.log(quads[0].predicate.value);
console.log(quads[0].object.value);
console.log(quads[0].graph.value);
```

Finally, `ASK` queries return async booleans.

```javascript
const hasMatches = await myEngine.queryAsk(`
  ASK {
    ?s ?p <http://dbpedia.org/resource/Belgium>
  }`, {
  sources: ['http://fragments.dbpedia.org/2015/en'],
})
```

_[**Read more** about querying an application](https://comunica.dev/docs/query/getting_started/query_app/)._

## Learn more

This README just shows the tip of the iceberg!
Learn more about Comunica's functionalities in the following guides:

* _[Updating from the command line](https://comunica.dev/docs/query/getting_started/update_cli/)_
* _[Updating in a JavaScript app](https://comunica.dev/docs/query/getting_started/update_app/)_
* _[Querying in a JavaScript browser app](https://comunica.dev/docs/query/getting_started/query_browser_app/)_
* _[Passing query options](https://comunica.dev/docs/query/advanced/context/)_
* _[Supported source types](https://comunica.dev/docs/query/advanced/source_types/)_
* _[Supported destination types](https://comunica.dev/docs/query/advanced/destination_types/)_
* _[Formatting results](https://comunica.dev/docs/query/advanced/result_formats/)_
* _[Supported specifications](https://comunica.dev/docs/query/advanced/specifications/)_
* _[Logging and debugging](https://comunica.dev/docs/query/advanced/logging/)_
* _[Caching](https://comunica.dev/docs/query/advanced/caching/)_
* _[Using a proxy](https://comunica.dev/docs/query/advanced/proxying/)_
* _[HTTP basic authentication](https://comunica.dev/docs/query/advanced/basic_auth/)_
* _[GraphQL-LD](https://comunica.dev/docs/query/advanced/graphql_ld/)_
* _[Docker](https://comunica.dev/docs/query/getting_started/query_docker/)_
* _[*Full documentation*](https://comunica.dev/docs/)_

---
_Source: https://npm.io/package/@comunica/query-sparql · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
