Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ldp:contains links not being followed #121

Closed
smessie opened this issue Nov 13, 2023 · 9 comments · Fixed by comunica/comunica#1299
Closed

ldp:contains links not being followed #121

smessie opened this issue Nov 13, 2023 · 9 comments · Fixed by comunica/comunica#1299
Labels

Comments

@smessie
Copy link

smessie commented Nov 13, 2023

Issue type:

  • 🐛 Bug

Description:

Link traversal is not performed. It only requests the link that is provided in the context's sources, even though it should follow other links as that document contains ldp:contains triples.

The code in my Web client app:

import {QueryEngine} from "@comunica/query-sparql-link-traversal-solid";

const engine = new QueryEngine();

const query = `
    PREFIX ldes: <https://w3id.org/ldes#>
    PREFIX tree: <https://w3id.org/tree#>
    PREFIX ldp: <http://www.w3.org/ns/ldp#>
    PREFIX dc: <http://purl.org/dc/terms/>
    
    SELECT ?member ?dateTime
    WHERE {
      <${ldesUrl}> a ldes:EventStream;
                   tree:view ?view.
      ?view a tree:Node;
            tree:relation ?relation.
      ?relation a ?relationType;
                tree:node ?node.
      ?node a ldp:BasicContainer;
            ldp:contains ?member.
      ?member a ldp:Resource;
              dc:modified ?dateTime.
      FILTER (?node = <${fragmentUri}>).
    }`;
const bindings = await engine.queryBindings(query, {sources: [ldesUrl], fetch: customFetch, lenient: false});

With this the query being executed after filling in the javascript variables (printed via console log to make sure that the query is what I think it is):

    PREFIX ldes: <https://w3id.org/ldes#>
    PREFIX tree: <https://w3id.org/tree#>
    PREFIX ldp: <http://www.w3.org/ns/ldp#>
    PREFIX dc: <http://purl.org/dc/terms/>
    
    SELECT ?member ?dateTime
    WHERE {
      <http://localhost:3000/researcher-test/ldesinldp/#EventStream> a ldes:EventStream;
                   tree:view ?view.
      ?view a tree:Node;
            tree:relation ?relation.
      ?relation a ?relationType;
                tree:node ?node.
      ?node a ldp:BasicContainer;
            ldp:contains ?member.
      ?member a ldp:Resource;
              dc:modified ?dateTime.
      FILTER (?node = <http://localhost:3000/researcher-test/ldesinldp/1693558885201/>).
    }

The content of http://localhost:3000/researcher-test/ldesinldp/#EventStream:

<> a <https://w3id.org/tree#Node>, ldp:Container, ldp:BasicContainer, ldp:Resource;
    <https://w3id.org/tree#relation> _:b8_b61_b58_b55_b52_b49_b46_b43_b40_b37_b34_b26_b21_e_b00;
    <https://w3id.org/tree#viewDescription> <#ViewDescription>;
    ldp:inbox <1693558885201/>;
    dc:modified "2023-09-08T12:28:12.000Z"^^xsd:dateTime.
_:b8_b61_b58_b55_b52_b49_b46_b43_b40_b37_b34_b26_b21_e_b00 a <https://w3id.org/tree#GreaterThanOrEqualToRelation>;
    <https://w3id.org/tree#path> dc:created;
    <https://w3id.org/tree#value> "2023-09-01T09:01:25.201Z"^^xsd:dateTime;
    <https://w3id.org/tree#node> <1693558885201/>.
<#ViewDescription> a <https://w3id.org/tree#ViewDescription>;
    <http://www.w3.org/ns/dcat#servesDataset> <#EventStream>;
    <http://www.w3.org/ns/dcat#endpointURL> <>;
    <https://w3id.org/ldes#managedBy> <#LDESinLDPClient>.
<1693558885201/> a ldp:Container, ldp:BasicContainer, ldp:Resource;
    dc:modified "2023-11-09T08:15:43.000Z"^^xsd:dateTime.
<#EventStream> a <https://w3id.org/ldes#EventStream>;
    <https://w3id.org/tree#view> <>.
<#LDESinLDPClient> a <https://w3id.org/ldes#LDESinLDPClient>;
    <https://w3id.org/ldes#bucketizeStrategy> <#BucketizeStrategy>.
<#BucketizeStrategy> a <https://w3id.org/ldes#BucketizeStrategy>;
    <https://w3id.org/tree#path> dc:created;
    <https://w3id.org/ldes#bucketType> <https://w3id.org/ldes#timestampFragmentation>.
<> posix:mtime 1694176092;
    ldp:contains <1693558885201/>.
<1693558885201/> posix:mtime 1699517743.

Content of http://localhost:3000/researcher-test/ldesinldp/1693558885201/:

@prefix dc: <http://purl.org/dc/terms/>.
@prefix ldp: <http://www.w3.org/ns/ldp#>.
@prefix posix: <http://www.w3.org/ns/posix/stat#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

<> a ldp:Container, ldp:BasicContainer, ldp:Resource;
    dc:modified "2023-11-09T08:15:43.000Z"^^xsd:dateTime.
<7a6f00f1-b72e-4202-bff4-0365de5431f9> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<dbd5725e-413f-4213-b8bc-c2e77d8b0445> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<mattermost-example> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-10-31T14:31:18.000Z"^^xsd:dateTime.
<spec-example> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-10-31T14:29:14.000Z"^^xsd:dateTime.
<18252ab4-e48b-4830-8843-e68d4d5084f5> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-10-30T09:24:20.000Z"^^xsd:dateTime.
<fd2144a3-b4ec-4408-aa61-61101b9f88c0> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<unknown-type> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-11-09T08:15:43.000Z"^^xsd:dateTime.
<6d98e184-d5b6-4ab4-b5d2-2d467711db0b> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-10-30T09:24:20.000Z"^^xsd:dateTime.
<ee255622-352d-400b-a45d-d17e95a9bcd9> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<ae92b258-4a5a-4066-b97f-e64353e9574c> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<0a61ee82-d11c-40a4-b7c0-e72ec9aa6a6c> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<2e5ad3e8-c8ce-4cb5-9255-02c88b4953ae> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-09-05T10:55:45.000Z"^^xsd:dateTime.
<optionals> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-11-08T09:11:43.000Z"^^xsd:dateTime.
<b9527304-f1bc-435f-b488-bd441db63806> a ldp:Resource, <http://www.w3.org/ns/iana/media-types/application/ld+json#Resource>;
    dc:modified "2023-10-06T12:42:04.000Z"^^xsd:dateTime.
<> posix:mtime 1699517743;
    ldp:contains <7a6f00f1-b72e-4202-bff4-0365de5431f9>, <dbd5725e-413f-4213-b8bc-c2e77d8b0445>, <mattermost-example>, <spec-example>, <18252ab4-e48b-4830-8843-e68d4d5084f5>, <fd2144a3-b4ec-4408-aa61-61101b9f88c0>, <unknown-type>, <6d98e184-d5b6-4ab4-b5d2-2d467711db0b>, <ee255622-352d-400b-a45d-d17e95a9bcd9>, <ae92b258-4a5a-4066-b97f-e64353e9574c>, <0a61ee82-d11c-40a4-b7c0-e72ec9aa6a6c>, <2e5ad3e8-c8ce-4cb5-9255-02c88b4953ae>, <optionals>, <b9527304-f1bc-435f-b488-bd441db63806>.
<7a6f00f1-b72e-4202-bff4-0365de5431f9> posix:mtime 1693911345;
    posix:size 933.
<dbd5725e-413f-4213-b8bc-c2e77d8b0445> posix:mtime 1693911345;
    posix:size 935.
<mattermost-example> posix:mtime 1698762678;
    posix:size 900.
<spec-example> posix:mtime 1698762554;
    posix:size 1140.
<18252ab4-e48b-4830-8843-e68d4d5084f5> posix:mtime 1698657860;
    posix:size 1009.
<fd2144a3-b4ec-4408-aa61-61101b9f88c0> posix:mtime 1693911345;
    posix:size 935.
<unknown-type> posix:mtime 1699517743;
    posix:size 1290.
<6d98e184-d5b6-4ab4-b5d2-2d467711db0b> posix:mtime 1698657860;
    posix:size 1219.
<ee255622-352d-400b-a45d-d17e95a9bcd9> posix:mtime 1693911345;
    posix:size 935.
<ae92b258-4a5a-4066-b97f-e64353e9574c> posix:mtime 1693911345;
    posix:size 935.
<0a61ee82-d11c-40a4-b7c0-e72ec9aa6a6c> posix:mtime 1693911345;
    posix:size 933.
<2e5ad3e8-c8ce-4cb5-9255-02c88b4953ae> posix:mtime 1693911345;
    posix:size 935.
<optionals> posix:mtime 1699434703;
    posix:size 817.
<b9527304-f1bc-435f-b488-bd441db63806> posix:mtime 1696596124;
    posix:size 936.

In the network tab of my browser I can witness only http://localhost:3000/researcher-test/ldesinldp/ being requested.
When I however manually add fragmentUri (=http://localhost:3000/researcher-test/ldesinldp/1693558885201/) to the context's sources, the query executes as it is supposed to and find all expected results. This should prove that my query is correct.
I would however expect link traversal to find its way to this (fragmentUri) resource by either following ldp:contains or the link in the query.


Environment:

"@comunica/query-sparql-link-traversal-solid": "^0.2.0" (package-lock.json and node_modules removed and installed again)

Running in Web client environment (Vue with Vite)

Crash log:

@rubensworks
Copy link
Member

Don't see anything wrong there at first glance.
This should be a good starting point for debugging:
https://github.com/comunica/comunica-feature-link-traversal/blob/master/packages/actor-extract-links-predicates/lib/ActorExtractLinksPredicates.ts#L25

@smessie
Copy link
Author

smessie commented Nov 16, 2023

I'm really lost. I first tried debugging by npm linking comunica in the project, but in the end I started debugging using the command line version of the locally cloned comunica LTQP repo.
However, that gave correct results, as well as the online browser version.

I continued debugging and made JavaScript versions in plain Node, with Vite and with Vue.
They can be found here: https://github.com/smessie/comunica-ltqp-debugging

With just Node, I get the correct results as expected, with Vite and Vue however, the query results in no results and does not follow any links (if you look in the network tab of your browser).

Any ideas on the cause for this?

@smessie
Copy link
Author

smessie commented Nov 17, 2023

After some more hours of debugging I found a workaround by accident while making the console.log in Comunica working (it also made Comunica Link Traversal working 😄)

By configuring the NodeModulesPolyfillPlugin in the vite.config.js, it resolved yet another incompatibility with porting the NodeJS targeted comunica to the browser.

export default defineConfig({
    optimizeDeps: {
        esbuildOptions: {
            plugins: [
                NodeModulesPolyfillPlugin(),
            ],
        }
    }
})

See also smessie/comunica-ltqp-debugging@e937234 to see how the MRE now works with this extra configuration.

The warning that appeared in the browser console (which I unfortunately was ignoring at first) should explain more on the specific underlying issue.

browser-external:util:9 Module "util" has been externalized for browser compatibility. Cannot access "util.debuglog" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
get	@	browser-external:util:9
node_modules/readable-web-to-node-stream/node_modules/readable-stream/lib/_stream_readable.js	@	_stream_readable.js:55
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/readable-web-to-node-stream/node_modules/readable-stream/readable-browser.js	@	readable-browser.js:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/readable-web-to-node-stream/lib/index.js	@	index.js:4
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/bus-http/lib/ActorHttp.js	@	ActorHttp.ts:3
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/bus-http/lib/index.js	@	index.ts:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/actor-http-fetch/lib/ActorHttpFetch.js	@	ActorHttpFetch.ts:2
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/actor-http-fetch/lib/index.js	@	index.ts:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/engine-default.js	@	engine-default.js:313
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/lib/QueryEngine.js	@	QueryEngine.ts:4
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/lib/index-browser.js	@	index-browser.ts:3
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
(anonymous)

and

Module "util" has been externalized for browser compatibility. Cannot access "util.inspect" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
get	@	browser-external:util:9
node_modules/readable-web-to-node-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js	@	buffer_list.js:14
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/readable-web-to-node-stream/node_modules/readable-stream/lib/_stream_readable.js	@	_stream_readable.js:62
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/readable-web-to-node-stream/node_modules/readable-stream/readable-browser.js	@	readable-browser.js:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/readable-web-to-node-stream/lib/index.js	@	index.js:4
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/bus-http/lib/ActorHttp.js	@	ActorHttp.ts:3
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/bus-http/lib/index.js	@	index.ts:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/actor-http-fetch/lib/ActorHttpFetch.js	@	ActorHttpFetch.ts:2
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/actor-http-fetch/lib/index.js	@	index.ts:1
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/engine-default.js	@	engine-default.js:313
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/lib/QueryEngine.js	@	QueryEngine.ts:4
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
node_modules/@comunica/query-sparql-link-traversal-solid/lib/index-browser.js	@	index-browser.ts:3
__require2	@	chunk-7REXU52E.js?v=c085e4a3:19
(anonymous)

@surilindur
Copy link
Contributor

It looks like it could be related to readable-web-to-node-stream using readable-stream version 3.x and not 4.x, and the 3.x versions seem to be using those functions from util without providing their own polyfills.

No idea how to fix that, since there is no newer version available of that readable-web-to-node-stream package that would use a newer readable-stream.

@rubensworks
Copy link
Member

We seem to be using that package in our base http bus here: https://github.com/search?q=repo%3Acomunica%2Fcomunica%20readable-web-to-node-stream&type=code
The package doesn't seem to be maintained anymore.
But since it's licensed under MIT, we can probably fork it, and depend on the latest readable-stream version.
Something one of you want to look into @smessie or @surilindur? (probably only after the ESWC deadlines 😉)

@smessie
Copy link
Author

smessie commented Jan 16, 2024

After updating the dependencies, I've realised that this update to the @smessie/readable-web-to-node-stream@^3.0.3 works, but however not only the base http bus is using that package, but also the fetch-sparql-endpoint.js library used by some actors which will also have to update to the newest fetch-sparql-endpoint version once rubensworks/fetch-sparql-endpoint.js#72 gets merged.

Edit: well, actually that last step should not be needed as doing a clean npm/yarn install should update to the newest version of the fetch-sparql-endpoint dependency then.

rubensworks pushed a commit to rubensworks/fetch-sparql-endpoint.js that referenced this issue Jan 16, 2024
@smessie
Copy link
Author

smessie commented Jan 17, 2024

Another day, another update.

With all dependencies updated to their latest versions, I still need to polyfill the global variable before LTQP is working.
I've updated my example app to deliver a reproducible example: https://github.com/smessie/comunica-ltqp-debugging/tree/main/vue

With global being polyfilled:
The 4 expected results are being returned by following the ldp:contains links in the initial resource.
image

Without global being polyfilled:
Zero results are being returned, and you can notice that only the initial resource is being retrieved and no other links are being followed.
image

To try out yourself, you can use the Vue application in my comunica-ltqp-debugging repository and comment (no results) / uncomment (the 4 expected results) the global polyfill.

https://github.com/smessie/comunica-ltqp-debugging/blob/a4a111590d30d8835648e843c75f425233bf8974/vue/vite.config.js#L13

The thing is however, where previously there was an error or warning pointing out where a not polyfilled variable was being used, now there are no errors in the console, making it hard to find the root cause of the issue.

@rubensworks
Copy link
Member

AFAIK, we use globalThis everywhere. Maybe some of our deps is using global instead of globalThis?

@smessie
Copy link
Author

smessie commented Jan 17, 2024

Maybe yes, but I can't seem to find any.

rubensworks added a commit to comunica/comunica that referenced this issue May 23, 2024
* Support relative and absolute paths for COMUNICA_CONFIG

Closes #1276

* Support building with esModuleInterop TS flag

This makes sure that Comunica can be used in projects with
esModuleInterop either be set to true or false.

* Convert raw source contexts to ActionContexts

Closes #1003

* Log expression error messages

As discussed in #1279

* Enforce `bindingsToString` key ordering with a unit test

* Update dependency @types/node to v20

* Fix wrong cardinality for zero-or-one paths with one variable

This could cause issues where our optimizer would think that a subquery
has no results, while it has one result, and thereby incorrectly
producing no results.

Closes #1285

* Bump to release version v2.10.0

* Bump Github-Release-Action version

* Generalize fromBindings in BindingsFactory

To implement `RDF.BindingsFactory`, `fromBindings` must accept any
`RDF.Bindings`. The implementation already does, but the type doesn't.

* Fix updates with body streams failing in Node >= 18

* Bump to release version v2.10.1

* Fix broken links in READMEs

Closes #903

* Migrate to different release action

* Update dependency node-polyfill-webpack-plugin to v3

* Migrate to @smessie/readable-web-to-node-stream

Closes comunica/comunica-feature-link-traversal#121

* Bump to release version v2.10.2

* Allow Bindings to have contexts

This allows annotating Bindings objects with custom metadata.

This also adds a new bus (`bus-merge-bindings-context`) to determine
how context entries in other Bindings contexts should be merged with
each other during operations such as joins.

Closes #1203

* Generalize sources to accept all query operations

Sources used to be hard-coupled to quad patterns, which severely limited
the optimization possibilities. This commit undoes this hard-coupling
by removing the bus-rdf-resolve-quad-pattern in favor of
bus-query-source-identify.

Instead of determining source types lazily during query execution, they
will now be identified early as a context-preprocess step, which allows
source properties to be used during query optimization.
For example, query sources now expose "selector shapes", which describe
the shape of query operations that are supported by sources.
This information is used now during query planning to assign query
operations to sources that are "as large as possible".

Concretely, this commit allows query operations to be annotated
with query sources. Optimize actors will modify source assignment to
operations.

Thanks to these modifications, this commit adds support for the following:
- brTPF sources
- Grouping operations into sources during federated querying (FedX)
- Bound joins: pushing bindings into sources (FedX)
- Pushing down filters into sources

Closes #609
Closes #1218
Closes #1250
Closes #1251
Closes #1274
Closes #881
Related to #1245, #1292

* Add cache to query source identify actor

* Add timeout for sparql endpoint count queries

* Restore sending original queries to SPARQL endpoints

Related to #844

* Fix CONSTRUCT queries over SPARQL endpoints not emitting metadata

* Move sequential query process steps to separate bus and actor

Concretely, the sequential parsing, optimizing, and evaluation steps
have been moved to a separate actor so that we can more easily create
alternative processing approaches in the future.

* Restore handling of raw source contexts

See 8f685d8

* Move context shortcut handling to preprocess actor

* Process source contexts to support shortcuts

* Restore aggregateStore being scoped per query execution

* Remove unused context import in configs

* Add option to disable caching (#1297)

This can be done using the `noCache` context key or `--noCache` CLI flag.

Closes #618

* Rename sparqlee-specific package names

* Mark packages as version 3.0.0

* Ignore erroring actor tests in rdf-metadata-extract bus

* Enforce order in optimize actors

* Add initial query to context before optimization

* Fix hypermedia iterators could stop before all links are processed

This could occur rarely during link traversal.

* Fix hypermedia iterator not starting if derived iterators start first

This could occur during link traversal with aggregatedStore enabled
where derived iterators from the aggregatedStore would be consumed first
in full during joining, but would never start due to the main hypermedia
iterator not having been started yet.

* Fix hypermedia iterator incorrectly ignoring empty queue check

During link traversal, it could occur that an hypermedia iterator would
be forcefully closed (not destroyed), and that the iterator would
effectively close (incorrectly) while the link queue was not empty yet,
but there was a temporary period where no sub-iterators were running.

* Allow sources to be annotated with traverse flag

* Fix aggregated iterators sometimes closing before they started

During link traversal, it could occur that for a single link following,
the hypermedia iterator and derived iterators are closed, but the match
call to the derived iterators has not started putting quads in the
stream before it is closed. This could result in queries not producing
all results.

* Let hypermedia iterators with aggStore run in flow after start

This fixes problems in traversal where a closed and unused hypermedia
iterator will not fill up anymore, which stalls derived iterators,
and makes the results iterator not continue anymore without end event.

* Make lenient errors log to warn instead of error log level

* Bump to typescript 5.3.3

* Migrate to @rubensworks/eslint-config v3

* Don't run CI on Node 16 anymore

* Fix GROUP_CONCAT losing languages if equal

* Enable noImplicitOverride in tsconfig

* Enable strictFunctionTypes in tsc

Closes #1289

* Remove node-polyfill-webpack-plugin from default webpack config

* Ensure QueryEngine instances are fully independent

This ensures that actor-specific caches will never be reused across
different query engine instances.

* Update to Components.js v6

* Bump to lerna v8

* Fix missing variables in projects after pruning

* Update to asynciterator 3.9.0

* Add async iterable examples in README

* Fix typo in filter-pushdown README

* Fix broken CLI tools

* Fix typo in query-sparql README

* Bump to release version v3.0.1

* Reference non-next integration tests manifest

* Lower q-value of application/json in fetch requests

This fixes problems where raw JSON was being preferred over HTML.

* Bump to release version v3.0.2

* Add generic type to LinkQueueWrapper (#1322)

* Fix broken LIMITs on CONSTRUCT queries on SPARQL endpoints, Closes #1319

* Bump to release version v3.0.3

* Update link to HDT repo

* Catch 404 of non-existing resource when fetching the selector shape (#1324)

This fixes the problem where no data can be inserted into non-existent destinations.

Closes #1317

* Fix linter error in ActorOptimizeQueryOperationAssignSourcesExhaustive

* Avoid race conditions during DELETE/INSERT operations

Closes #1301

* Migrate from readable-web-to-node-stream to readable-from-web

* Use yarn over npm CLI where possible

* Move validateHttpResponse helper to avoid interdependencies

* Reset lockfile to reduce duplicate dependencies

* Add @comunica/query-sparql-rdfjs-lite that is optimized for bundle size

Closes #722
Related to #1323

* Throw error if bundle size becomes too large, Closes #722

* Fix package name in query-sparql-rdfjs-lite README

* Always add preprocessed context to unidentified query sources (#1337)

Closes #1336

---------

Co-authored-by: surilindur <[email protected]>
Co-authored-by: RubenEschauzier <[email protected]>
Co-authored-by: Aron Buzogany <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ruben Taelman <[email protected]>
Co-authored-by: Ruben Taelman <[email protected]>
Co-authored-by: Petra Jaros <[email protected]>
Co-authored-by: Simon Van Braeckel <[email protected]>
Co-authored-by: smessie <[email protected]>
Co-authored-by: Karel Klíma <[email protected]>
Co-authored-by: surilindur <[email protected]>
@rubensworks rubensworks moved this to Done in Maintenance May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants