Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 15:06
    renovate[bot] edited #123
  • 15:01
    coveralls commented #1016
  • 14:51
    renovate[bot] synchronize #998
  • 14:51

    renovate[bot] on major-jest-monorepo

    Update jest monorepo to v28 (compare)

  • 14:51
    renovate[bot] synchronize #1016
  • 14:51

    renovate[bot] on typedoc-0.x

    Update dependency typedoc to ^0… (compare)

  • 14:01

    github-actions[bot] on gh-pages

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

  • 13:49

    rubensworks on master

    Fix race conditions when timing… (compare)

  • 12:58
    rubensworks labeled #857
  • 12:58
    rubensworks labeled #930
  • 12:56
    rubensworks commented #70
  • 12:55
    rubensworks closed #70
  • 11:47
    rubensworks commented #947
  • 11:41
    coveralls commented #1016
  • 11:28
    renovate[bot] synchronize #998
  • 11:28

    renovate[bot] on major-jest-monorepo

    Update jest monorepo to v28 (compare)

  • 11:28
    renovate[bot] synchronize #1016
  • 11:28

    renovate[bot] on typedoc-0.x

    Update dependency typedoc to ^0… (compare)

  • 10:54

    rubensworks on master

    Fix race conditions when timing… (compare)

  • 10:13

    github-actions[bot] on gh-pages

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

mrkvon
@mrkvon

Hello, i'm evaluating (graphql-ld-)comunica(-solid), and its usefulness when building apps over Solid Pods + other linked data (wikidata, ...).
I see that the list of "sources" has to be defined before running a query, right? So a question like Get names of all the people I know, i.e.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX mypod: <https://somename.solidcommunity.net/profile/card#>
SELECT ?name
WHERE {
  mypod:me foaf:knows ?friend.
  ?friend foaf:name ?name.
}

can't be asked in a single query, since we don't know all the friends' uris beforehand, or can it? (This is just an example, the same question applies for any data scattered among multiple documents (even within a single solid pod) that we only discover while querying...)

So first, do we have to ask for all friends' uris and only then for their names? Is there no way to do this in a single query?

So, in other words, i'm wondering if it is possible to execute a query in an "adventurous" mode, not knowing which places we'll end up fetching data from...

Thank you for any thoughts! :)

Jesse Wright
@jeswr
Sounds like you are after Rubens link traversal work (8set of Comunica engines that do exactly what you're describing) https://github.com/comunica/comunica-feature-link-traversal
mrkvon
@mrkvon
@jeswr Thank you! That's awesome, I'm gonna have a look. :tada:
Pieter Colpaert
@pietercolpaert
@mrkvon I like the term “adventurous mode” for link traversal :D
mrkvon
@mrkvon

Hi, yesterday i tried out @comunica/comunica-feature-link-traversal with react (basically copy pasted the Usage - the React code around is mostly irrelevant...).

Anyways, i must be missing something. Comunica's own link-traversal examples work just fine, but my own trial only works if i specify all sources beforehand (i.e. querying works, but link traversal doesn't). So it makes me think: Maybe the Usage i followed is incomplete, and one needs to configure the link-traversal within the QueryEngine somehow?

A code snippet, or an explanation how the configs work, or a link to a relevant documentation would go a long way... Thank you!

edit: i found Querying with a custom configuration, which suggests that the above linked Usage is indeed incomplete. Will try out

Daniel Beeke
@danielbeeke

I am using LDflex with a N3 store, should using set work on blank nodes? It crashes on https://github.com/RubenVerborgh/SPARQL.js/blob/67fe545f68833a28adb9540230fca43b3f7e1284/lib/sparql.jison#L378

The sparql looks like:

      DELETE DATA {
        _:bc_0_n3-130 <http://schema.org/name> ?name.
      }
      ;
      INSERT DATA {
        _:bc_0_n3-130 <http://schema.org/name> "john".
      }
Daniel Beeke
@danielbeeke
How would that work? Would N3 keep a list of blank nodes with their aliases? Or is what I want not possible this way?
Jesse Wright
@jeswr
Is ?name defined in a where statement anywhere? If not it looks to me like this is an invalid delete
Daniel Beeke
@danielbeeke

I dont think so.

I do something like: await path['schema:name'].set('john')

Are set actions only possible on a full trail of LDflex paths?
Or is it okay to put the path into a variable and use it later
Jesse Wright
@jeswr
IIRC you should be running await path['schema:name'].set(literal('john'))
1 reply
Ruben Taelman
@rubensworks
@mrkvon Indeed, there are different configs available with different traversal approaches: https://github.com/comunica/comunica-feature-link-traversal/tree/master/engines/config-query-sparql-link-traversal/config (config-*.json)
mrkvon
@mrkvon

TL;DR: Is there any simpler way to make link-traversal work with browser/React, other than Browser Builds?

Context:
I'm still trying to use the @comunica/query-sparql-link-traversal in browser/React. I tried to set it up with the config-default.json. And it worked in node, but not in React. Then i stumbled upon the Browser Builds, and hence my TL;DR question. I wonder if there is a simpler way than going through that rabbit hole...

Ruben Taelman
@rubensworks
It doesn't work if you use node-polyfill-webpack-plugin in your webpack config?
mrkvon
@mrkvon
@rubensworks I downgraded to webpack 4 to resolve that particular issue.
By not work i mean: I don't know how to load the config-default.json when using the @comunica/query-sparql-link-traversal in browser. When i just import { QueryEngine } from '@comunica/query-sparql-link-traversal/lib/index-browser' and const engine = new QueryEngine(), it queries, but it doesn't perform the link traversing (i.e. visit places which were not specified in sources beforehand)
Ruben Taelman
@rubensworks
Does the problem only occur in the browser? Does it work in Node?
mrkvon
@mrkvon

In node, i made it work using QueryEngineFactory, and a config

import { QueryEngineFactory } from '@comunica/query-sparql-link-traversal'

;(async () => {
  const myEngine = await new QueryEngineFactory().create({
    configPath:
      'https://raw.githubusercontent.com/comunica/comunica-feature-link-traversal/master/engines/query-sparql-link-traversal/config/config-default.json',
  })
// ....... and so on
})()

I can double check, but just import { QueryEngine } from '@comunica/query-sparql-link-traversal' didn't do it (the link traversal) for me...

Ruben Taelman
@rubensworks
That's interesting, if import { QueryEngine } from '@comunica/query-sparql-link-traversal' doesn't work for Node, then that would have the same cause as the browser failure.
It has been a while since I've made a new release, so perhaps that's why.
Could you try by cloning the link traversal repo?
5 replies
If not, could you open an issue?
1 reply
mrkvon
@mrkvon

I see, so import { QueryEngine } from '@comunica/query-sparql-link-traversal' should do the link traversal out of the box?

I have just double checked with node and indeed i have to load the config-default.json manually with QueryEngineFactory, in order to make the link traversal work.

Could you try by cloning the link traversal repo?

Do you mean to use the library in its current github version? I'll take some time to figure out how to do that...

could you open an issue?

Sure.

@rubensworks Thank you very much for the support, and the very fast response!

1 reply
Daniel Beeke
@danielbeeke
Hi all, I am using LDflex, somehow I would expect that LDflex after using .map() from LDflex/async-iteration-handlers or when using for await (const item of ldflexPath) would keep the property parent to be the path that was used before.
Somehow the property parent is empty for the child items. This does involve a blanknode. Previously I was able to create different path, but I think I do need the whole trail including blank nodes.
I probably should make a small example.. but for now the example is here: https://github.com/danielbeeke/frm/blob/main/src/Widgets/NodeWidget.ts#L41
Jesse Wright
@jeswr
IIRC the parent property is there that so you can internally traverse a path to create the SPARQL query. After await is applied or any of the methods you describe to resolve the path I would not expect the resolved value to have a parent property.
I don't recall any bnode specific handling in LDflex so I imagine the outcome would be the same if you had namedNodes in the data you were traversing
19 replies
Daniel Beeke
@danielbeeke
yes, that is what I though. The sparql is generated with the parents. After doing .map() I would still need the parent for the sparql.
Ill see if I can reproduce with something small
Jesse Wright
@jeswr

After doing .map() I would still need the parent for the sparql.

I don't follow - since the items you are mapping over are resolved entities and hence no longer have a path associated to them

Daniel Beeke
@danielbeeke
I have not run await on them yet
or well
I have on the map
Jesse Wright
@jeswr
If I run let item = await daniel.knows that should be the same as the first item that is item mapped over when I run await daniel.knows.map(item => item)
Ruben Taelman
@rubensworks
FYI, there's a new gitter channel, specifically for discussions related to the core-development of Comunica: https://gitter.im/comunica/core-dev
1 reply
Ruben Taelman
@rubensworks
📹 Learn about the basics of Comunica within this Webinar recording. It contains a high-level overview of the fundamentals, some quick demos on how to get started, and pointers to several advanced topics. https://www.youtube.com/watch?v=ydpdziVNw1k
Remo Dietlicher
@remodietlicher

📹 Learn about the basics of Comunica within this Webinar recording. It contains a high-level overview of the fundamentals, some quick demos on how to get started, and pointers to several advanced topics. https://www.youtube.com/watch?v=ydpdziVNw1k

Great talk, thanks for sharing here!

Jeff Zucker
@jeff-zucker
What is up with this??? https://www.npmjs.com/package/comunica
Aad Versteden
@madnificent:chat.semantic.works
[m]
https://github.com/advisories?query=comunica does not show anything 🤔 Is this a glitch in the Matrix?
Jeff Zucker
@jeff-zucker
Just wondering the same thing.
Jeff Zucker
@jeff-zucker
NPM refuses to download comunica - downloads an empty package with a security warning instead.
Aad Versteden
@madnificent:chat.semantic.works
[m]
Perhaps it needs to be republished.
Some responsible author probably received an email, but everyone I know that works on the project is currently out of business hours. Do we check back in here tomorrow and do I try to ping someone around that time?
Or would this channel generally be sufficient? 🤞
Jeff Zucker
@jeff-zucker
An old CDN appears to work, so I can keep going for now.
Ruben Taelman
@rubensworks
Perhaps I should contact npm to see if we can claim that package, just to refer to the correct one :-)
Aad Versteden
@madnificent:chat.semantic.works
[m]
Perhaps they tried to steal our open data.
andi
@andi-m:matrix.org
[m]
Hi, is there already a spec on how to map GraphQL Types to their schema.org equivalents via directives/annotations directly in GraphQL SDL files?
1 reply
Ruben Taelman
@rubensworks
Nope, there isn't. But you're welcome to suggest one in this CG if you have some ideas: https://www.w3.org/community/graphql-rdf/