Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 14:58

    rubensworks on major

    Move peerDependencies to depend… Update eslint rules (compare)

  • 13:39
    renovate[bot] edited #854
  • 12:53

    github-actions[bot] on gh-pages

    Deploying to gh-pages from @ 8… (compare)

  • 12:53

    github-actions[bot] on gh-pages

    Deploying to gh-pages from @ 0… (compare)

  • 12:52
    rubensworks commented #21
  • 12:52
    rubensworks closed #21
  • 12:51

    rubensworks on master

    Fix RSS feed pointing to incorr… (compare)

  • 12:51

    rubensworks on master

    Fix RSS feed pointing to incorr… (compare)

  • 12:21

    rubensworks on major

    Fix missing link queue actor in… Rename actor-rdf-dereference-ht… (compare)

  • 11:42
    coveralls commented #861
  • 11:42
    coveralls commented #861
  • 11:41
    coveralls commented #858
  • 11:37
    renovate[bot] edited #854
  • 11:36
    renovate[bot] synchronize #861
  • 11:36

    renovate[bot] on eslint-8.x

    Update dependency eslint to v8 (compare)

  • 11:36
    renovate[bot] synchronize #885
  • 11:36

    renovate[bot] on node-16.x

    Update dependency @types/node t… (compare)

  • 11:36
    renovate[bot] synchronize #858
  • 11:36

    renovate[bot] on typedoc-0.x

    Update dependency typedoc to ^0… (compare)

  • 11:28
    renovate[bot] edited #129
Daniel Beeke
@danielbeeke
@namedgraph_twitter we are using a VPS with just 1 GB of memory. So we searching for something like mysql but in the RDF world
Martynas Jusevicius
@namedgraph_twitter
are you saying Java has to much overhead?
Daniel Beeke
@danielbeeke
a little background.. we are building a headless cms where you can link multiple instances together. With these cms'es you can create websites/PWA's.
This headless cms functions as a media catalog. We are building it for charity organsiations that may work together
so there is the requirement for making it cheap / small
Yes it might be java
We are also looking into micro jvm and things like that
Martynas Jusevicius
@namedgraph_twitter
well Jena is open-source so free as such?
Daniel Beeke
@danielbeeke
It would be fine if it would be a bit slower, but at the moment it dies because of to little memory
yes indeed Jena is cheap price wise
:)
we have little writes and more reads on the store.
Martynas Jusevicius
@namedgraph_twitter
Daniel Beeke
@danielbeeke
thanks
Martynas Jusevicius
@namedgraph_twitter
is the CMS open-source?
Daniel Beeke
@danielbeeke
not yet, we are considering that
Jacopo Scazzosi
@jacoscaz
@danielbeeke quadstore using the leveldown backend is fully persistent!
Which is not to say that it is also comparable to Jena or more advanced triple/quad stores but I thought I'd mention it in case you had only tried it with in-memory backends.
Ruben Taelman
@rubensworks
If you really want the most lightweight triplestore memory-wise, then this would be no triplestore at all (so no indexing ahead of query-time), and parse raw RDF files at query time (which is possible with Comunica, can give pointers if needed).
This would come at the cost of lower performance though. But if the dataset is small, then this may be acceptable.
ccolonna
@ccolonna

Good morning everybody. I was provided with some JSON-LD data in a file and I should populate an interface with them. As I have little experience with this data format I wonder if there are and which are its advantages once we reach the application level (or better frontend application level). For what I understand usefulness of JSON-LD appears when you're querying and fetching data. For example I got a resource with it's @context and a related resource @id. I can combine this property and fetch them exploiting LD protocols (if data are published!) or if I have a relative url in the context map this urls on top of my REST endpoint.
Some examples:

1) Here if i receive the johnDoe resource in my interface I can fetch(johnDoe.friend[@id]) and if the resource is published according to LD protocols, or mapped on top of a REST api at https://website2/users I will retrieve it "following the links".

{ @id : "https://website1/johnDoe",
   friend: {
        @id: "https://website2/users/markRenton"
    }
}

Am I missing something? Does comunica or ld-flex support this data format and are there some example where I can figure it out how to best maximize the advantage of it? Because they told "we need to understand if JSON-LD solution is promising to feed data into an interface", and my first reaction was like "isn't that just classic JSON + overhead" ?

I mean I see the power in retrieving data and resources in a distributed space, but if I receive a static file with all the structures inside which is the difference from having JSON or JSON-LD.

I asked here as there are lot of LD experts, hope this is not off topic.

Ruben Taelman
@rubensworks
Comunica and LDflex do indeed support querying over JSON-LD files, as it can be interpreted as RDF.
ccolonna
@ccolonna
Thanks @rubensworks can I ask here for LDflex clarification?
Ruben Taelman
@rubensworks
Sure, but no guarantees that I can give all answers though :)
ccolonna
@ccolonna
I'm trying to query this source: https://raw.githubusercontent.com/polifonia-project/sonar2021_demo/develop/src/assets/data/data.v2.json, with this basic code https://pastebin.com/DQcDLVu4, but i get :
/node_modules/@comunica/actor-rdf-dereference-http-parse/lib/ActorRdfDereferenceHttpParseBase.js:101
            await httpResponse.body.cancel();
                                    ^

TypeError: httpResponse.body.cancel is not a function
    at ActorRdfDereferenceHttpParse.run
Ruben Taelman
@rubensworks
Looks like a bug in LDflex's Comunica config. Could you report it to GitHub?
1 reply
In any case, that code is being called during error handling. So it looks like your document could not be fetched or parsed for some reason, but we can't see the error because something goes wrong during error message creation.
ccolonna
@ccolonna

Trying this from command line:
comunica-sparql https://raw.githubusercontent.com/polifonia-project/sonar2021_demo/develop/src/assets/data/data.v2.json -q 'SELECT * WHERE {?s ?p ?o}'

I get:

[Missing context link header for media type application/json on https://raw.githubusercontent.com/polifonia-project/sonar2021_demo/develop/src/assets/data/data.v2.json
ccolonna
@ccolonna
raw.githubusercontent.com returns content-type: text/plain; charset=utf-8 even if file format is .json can this cause comunica engine to misunderstood the file ?
Ruben Taelman
@rubensworks
Your file either needs to be of content type application/ld+json, or requires the .jsonld extension. Otherwise is requires a link headers as the error indicates.
ccolonna
@ccolonna
@ccolonna
Thanks as always @rubensworks ;) . Changing extension to .jsonld solved my issue. Hope you may solve your bug with the HttpActor .
Last questions. Can I do something like, "give me all the resource of this @type" with LDflex? Which should be starting NamedNode for path object?
Ruben Taelman
@rubensworks
I don't have the bandwidth to fix the bug myself, but happy to accept a PR.
I'm actually not sure how you would go about doing that it LDflex...
Perhaps you could do something with @reverse on rdf:type, so that you can start from your resource type?
6 replies
Andrew Zhurov
@andrewzhurov
Hi, all
Can Comunica be used to update a Solid Pod?
Ruben Taelman
@rubensworks
Yes, but you have to specify the specific file you want to update: https://comunica.dev/docs/query/getting_started/update_cli/
It doesn't support Solid auth just yet though, but a new release for that is planned very soon.
ccolonna
@ccolonna
Hi, I'm trying to use comunica in an angular application. Angular complains it cannot resolve 'stream' library. I read some issue like: comunica/comunica#857 . An made myself an idea about the problem. I wonder if others have ever encountered this problem and can suggest solution? Or links to look at
Ruben Taelman
@rubensworks
If Angular uses webpack, you can use this: https://www.npmjs.com/package/node-polyfill-webpack-plugin
Andrew Zhurov
@andrewzhurov

Following the command line example from that doc I'm trying to run a test update on this .ttl file / rdf dataset with public write access using actor-init-sparql, it goes like this:

> ./node_modules/@comunica/actor-init-sparql/bin/query-dynamic.js https://test84358.solidcommunity.net/public/dataset.ttl "INSERT DATA {<ex:s> <ex:p> <ex:o>}"                                                            [1]
https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-update-rdfjs.json#mediatorRdfUpdateHypermedia mediated over all rejecting actors:
Actor https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-update-rdfjs.json#myRdfUpdateHypermediaPatchSparqlUpdate could not detect a destination with 'application/sparql-update' as 'Accept-Patch' header.
Actor https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-update-rdfjs.json#myRdfUpdateHypermediaSparql could not detect a SPARQL service description or URL ending on /sparql or /update.
Actor https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-init-sparql/^1.0.0/config/sets/rdf-update-rdfjs.json#myRdfUpdateHypermediaPutLdp can only put on a destination that does not already exists.

I wonder where is the gotcha.. places are many :D

Ruben Taelman
@rubensworks
Looks like solidcommunity.net does not adhere to the Solid spec. There should be an Accept-Patch header, while there isn't one (curl -v https://test84358.solidcommunity.net/public/dataset.ttl)
I would recommend to either report an issue to the Node Solid Server repo, or setup your own pod via another tool (such as Community Solid Server).
Ruben Taelman
@rubensworks
In the meantime, you could force the destination type to patchSparqlUpdate as explained here: https://comunica.dev/docs/query/advanced/destination_types/
ccolonna
@ccolonna
Good morning. If I point a linked data fragment web client (e.g. http://query.linkeddatafragments.org/) to a ttl file, how are the querying performance compared to a SPARQL endpoint ?
Ruben Taelman
@rubensworks
A SPARQL endpoint will already have indexed the file beforehand, so it will usually be faster. However, if the file is not too large, the performance difference is negligible.
Ruben Taelman
@rubensworks
Exciting news about the Comunica Association: https://comunica.dev/blog/2021-11-08-comunica_association_members/
Daniel Beeke
@danielbeeke
Would anyone know how to replace DESCRIBE with CONSTRUCT, we have the basic thing working but the nested triples and unnamed triples we don't know how to get those. Apache Jena gives with a DESCRIBE all triples back that are somehow attached to our subject (atleast that is what it looks like).
Adrian Gschwend
@ktk
@danielbeeke still required?
Daniel Beeke
@danielbeeke
Yes, I have not yet found a complete solution
Daniel Beeke
@danielbeeke
Is is possible to use the master branch in package.json? It looks like it might be more complicated because of tarn / lerna / monorepo setup of comunica.
I have the same issue as comunica/comunica#896 and I saw that is was just fixed, how awesome. But it might still take time to get into the packages
Daniel Beeke
@danielbeeke
I found a way of using it for now untill the new version is released. I used the npm package: patch-package
Ruben Taelman
@rubensworks
Sure, it should just be a matter of cloning + installing the repo locally, then doing yarn link within the actor-init-sparql package, and then doing yarn link @comunica/actor-init-sparql in the package you want to use it in.