-
Notifications
You must be signed in to change notification settings - Fork 11
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
Comments
Don't see anything wrong there at first glance. |
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. I continued debugging and made JavaScript versions in plain Node, with Vite and with Vue. 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? |
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 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.
and
|
It looks like it could be related to No idea how to fix that, since there is no newer version available of that |
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 |
After updating the dependencies, I've realised that this update to the 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. |
Another day, another update. With all dependencies updated to their latest versions, I still need to polyfill the With Without 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 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. |
AFAIK, we use |
Maybe yes, but I can't seem to find any. |
* 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]>
Issue type:
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:
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):
The content of
http://localhost:3000/researcher-test/ldesinldp/#EventStream
:Content of
http://localhost:3000/researcher-test/ldesinldp/1693558885201/
: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:
The text was updated successfully, but these errors were encountered: