# @comunica/actor-optimize-query-operation-assign-sources-exhaustive

> A assign-sources-exhaustive optimize-query-operation actor

Latest version **5.4.0** (published 2026-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install @comunica/actor-optimize-query-operation-assign-sources-exhaustive
pnpm add @comunica/actor-optimize-query-operation-assign-sources-exhaustive
yarn add @comunica/actor-optimize-query-operation-assign-sources-exhaustive
bun add @comunica/actor-optimize-query-operation-assign-sources-exhaustive
```

## 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.4.0 |
| Published | 2026-09-14 |
| First published | 2024-02-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 36.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 585 |
| Maintainers | joachimvh, rubensworks, rubenverborgh, dexagod, jeswr |
| Keywords | comunica, actor, optimize-query-operation, assign-sources-exhaustive |

## Links

- npm: https://www.npmjs.com/package/@comunica/actor-optimize-query-operation-assign-sources-exhaustive
- 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/actor-optimize-query-operation-assign-sources-exhaustive

## Dependencies (6)

- [@comunica/core](https://npm.io/package/@comunica/core.md) ^5.4.0
- [@comunica/types](https://npm.io/package/@comunica/types.md) ^5.4.0
- [@comunica/utils-algebra](https://npm.io/package/@comunica/utils-algebra.md) ^5.4.0
- [@comunica/context-entries](https://npm.io/package/@comunica/context-entries.md) ^5.4.0
- [@comunica/utils-query-operation](https://npm.io/package/@comunica/utils-query-operation.md) ^5.4.0
- [@comunica/bus-optimize-query-operation](https://npm.io/package/@comunica/bus-optimize-query-operation.md) ^5.4.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.4.0 (latest) — 2026-09-14
- 4.4.2-alpha.49.0 (next) — 2025-10-22
- 5.3.0 — 2026-07-10
- 5.2.3 — 2026-05-26
- 5.2.2 — 2026-05-03
- 5.2.0 — 2026-04-14
- 5.1.3 — 2026-01-30
- 5.1.0 — 2026-01-16
- 5.0.3 — 2026-01-12
- 5.0.2 — 2026-01-12
- 5.0.0 — 2026-01-08
- 4.5.0 — 2025-11-18
- 4.4.1 — 2025-09-25
- 4.4.0 — 2025-09-17
- 4.2.0 — 2025-04-29
- … 17 more at https://npm.io/package/@comunica/actor-optimize-query-operation-assign-sources-exhaustive/versions

## README

# Comunica Assign Sources Exhaustive Optimize Query Operation Actor

[![npm version](https://badge.fury.io/js/%40comunica%2Factor-optimize-query-operation-assign-sources-exhaustive.svg)](https://www.npmjs.com/package/@comunica/actor-optimize-query-operation-assign-sources-exhaustive)

An [Optimize Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-optimize-query-operation) actor
that converts every quad pattern in the query to a union of quad patterns per source.
It will similarly handle property paths.
It assumes that sources are defined in the `KeysQueryOperation.querySources` context entry.

If the `KeysQueryOperation.serviceSources` context entry exists,
SERVICE clauses will be rewritten based on those service sources.

If only a single source is being queried over, it will attempt to assign the whole query operation to the source
if the source supports such operations. Otherwise, it will fallback to the union-based approach.

This module is part of the [Comunica framework](https://github.com/comunica/comunica),
and should only be used by [developers that want to build their own query engine](https://comunica.dev/docs/modify/).

[Click here if you just want to query with Comunica](https://comunica.dev/docs/query/).

## Install

```bash
$ yarn add @comunica/actor-optimize-query-operation-assign-sources-exhaustive
```

## Configure

After installing, this package can be added to your engine's configuration as follows:
```text
{
  "@context": [
    ...
    "https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-optimize-query-operation-assign-sources-exhaustive/^1.0.0/components/context.jsonld"
  ],
  "actors": [
    ...
    {
      "@id": "urn:comunica:default:optimize-query-operation/actors#assign-sources-exhaustive",
      "@type": "ActorOptimizeQueryOperationAssignSourcesExhaustive"
    }
  ]
}
```

---
_Source: https://npm.io/package/@comunica/actor-optimize-query-operation-assign-sources-exhaustive · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
