Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 23 12:34
    angelo-v commented #377
  • Jan 22 17:47

    angelo-v on master

    Update conventions.md Merge pull request #277 from so… (compare)

  • Jan 22 17:47
    angelo-v closed #277
  • Jan 22 15:46
    angelo-v edited #277
  • Jan 22 15:46

    github-actions[bot] on gh-pages

    deploy: 10f2e844487d74cb2f272a1… (compare)

  • Jan 22 15:45
    angelo-v opened #277
  • Jan 22 15:45

    angelo-v on fix-namespace

    Update conventions.md (compare)

  • Jan 22 15:41

    angelo-v on master

    Prevent 'undefined' appearing a… add margin for headings which w… And heading in forms and 2 more (compare)

  • Jan 22 15:41
    angelo-v closed #376
  • Jan 22 12:37
    timbl opened #377
  • Jan 22 12:30

    timbl on dependenciesDiagram

    Migrated create module to TypeS… Migrated matrix module to TypeS… Migrating media module to Type… and 77 more (compare)

  • Jan 22 12:20

    timbl on dependenciesDiagram

    (compare)

  • Jan 22 11:15

    timbl on whte

    (compare)

  • Jan 22 11:15

    angelo-v on master

    oops fix whte to white Merge pull request #56 from sol… (compare)

  • Jan 22 11:15
    angelo-v closed #56
  • Jan 22 11:14
    timbl opened #56
  • Jan 22 11:13

    timbl on whte

    oops fix whte to white (compare)

  • Jan 22 11:00

    timbl on listChats

    (compare)

  • Jan 22 10:59

    timbl on master

    testing Fix change that UI.infiniteMess… merge and 2 more (compare)

  • Jan 22 10:59
    timbl closed #54
Fred Gibson
@gibsonf1
@NSeydoux solid/specification#152 looks quite good, once we're out of an immediate launch crunch, I'll work to explain our use case and how that relates. For sure the process is far easier for the user when IdP and PS are on the same server as in the TrinPod case.
vinnl
@vinnl:matrix.org
[m]

A quick solid-client question. How would one go about getting all quads where a given uri is the object of the quads?

@gibsonf1 (Fred Gibson) Sorry, I missed this in between your code samples :) What exactly are you trying to do? In solid-client you don't tend to work on individual quads, but on Things (i.e. sets of quads with the same subject). So for example, if you wanted all Things of a given type, you'd do something like this:

const bookmarks = getThingAll(resource).filter(thing => getUrl(thing, rdf.type) === bookmark.Bookmark);

So here you get sets of quads with the same subject, for each of which at least one has the URL of bookmark.Bookmark as the object and the URL of rdf.type as the predicate.

Fred Gibson
@gibsonf1
@vinnl:matrix.org Basically I want to know what things link to this thing (essentially, where the thing I'm interested in is the object of the triple, so I can know what subject of the triple is linking to the thing). It seems solid-client is currently not set up to support relationship traversals between things like this, so I just added rdflib into the mix, which is great at it. To support inter-thing traversals, solid-client would need a similar repository idea to rdflib where all quads are available to query (from the various things) such that you could understand those links.
vinnl
@vinnl:matrix.org
[m]

@gibsonf1 (Fred Gibson) How about this?

const thingsLinkingToTargetThing = allThings.filter(thing => getUrl(thing, "https://your.vocab/predicate", targetThing)

?

(But then without the missing closing bracket :) )
Fred Gibson
@gibsonf1
what is allThings ? It sounds like a great idea, but I didn't know that was available
I see your point, I could just build allThings myself with the load
if that were part of solid-client with some cool apis to get things out, that would be highly helpful
The problem with using rdflib and solid-client is that they have incompatible object types, so there is a doubling of memory needed
Fred Gibson
@gibsonf1
One of the most important thing about things is how they relate to other things :) And to know that, you need a "one world model" where the information you're working with is all linked together.
Probably the best answer is to build a true graph in the browser where the Things basically interface between that graph and the Solid Server such that you could traverse that graph in powerful ways with the app. This is what we do on the Server side. I don't think rdflib is a true graph, but simulates one with queries.
Fred Gibson
@gibsonf1
We are using https://visjs.org/ for network graph visualization now, so I guess we have 3 different representations happening in the app, but the vis data structure is a true graph
Fred Gibson
@gibsonf1
For the allThings idea, I also have that with state.things and state.dataSets in the vuex code above that creates reactive objects for the app.
vinnl
@vinnl:matrix.org
[m]
Yeah I was using allThings to refer to the cache of Things you are building in your Vuex store.
Fred Gibson
@gibsonf1
@acoborn just recommended that spec compliant state parameters be user to communicate with the IdP server during login with solid-client-authn-js: >@acoburn
I would take it up with the authors of that library. Ask them to add support for state parameters. It is part of the OAuth2 protocol
See https://tools.ietf.org/html/rfc6749#section-4.1.1
Right now we are using query parameters in the redirect url to communicate to the server (for example, to start on the registration insteaad of login with start=registration )
vinnl
@vinnl:matrix.org
[m]
@gibsonf1 (Fred Gibson) I think feature requests are best logged here, if they're not logged already: https://github.com/inrupt/solid-client-authn-js/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=
Fred Gibson
@gibsonf1
Thanks @vinnl:matrix.org inrupt/solid-client-authn-js#950
vinnl
@vinnl:matrix.org
[m]
Thanks!
Fred Gibson
@gibsonf1
quick solid-client question - how do you make a NamedNode to use for queries etc without trying to add anything?
Fred Gibson
@gibsonf1
I ended up making this:
u.uriToNamedNode = function (uri){
    var thing = store.state.things[uri]
    if (client.isThing(thing)){
    var set = thing.match()
    var it = set.quads.values()
    return it.next().value.subject
    }
}
Fred Gibson
@gibsonf1
This particular use case was to try to figure out what container an item is contained in, but that seems very hard with the Thing approach in solid-client
vinnl
@vinnl:matrix.org
[m]
@gibsonf1 (Fred Gibson) Note that you're using an undocumented API there (so it might be removed in non-major releases). But if all you need is a NamedNode, solid-client is a bit overkill. You can just use a primitive from e.g. the library @rdfjs/data-model (already a transitive dependency of solid-client, so no extra weight there), which provides the function namedNode (or possibly DataFactory.namedNode, can't remember) that does the same as your uriToNamedNode.

Ah, just saw the use case. In that case, if you've already got the container in your store (I'm going to assume all SolidDatasets in your store are in allDatasets in this code snippet), you should be able to do something like the following:

function findContainerOf(itemUrl: UrlString) {
  return allDatasets.find(dataset => {
    const datasetUrl = getSourceUrl(dataset);
    const datasetThing = getThing(dataset, datasetUrl);
    if (!datasetThing) {
      return false;
    }
    return getUrlAll(datasetThing, ldp.contains).includes(itemUrl);
  });
}

(Just typed that in the chatbox, so forgive any syntax errors and the likes.)

vinnl
@vinnl:matrix.org
[m]
Or actually, we just added getContainedResourceUrlAll to solid-client, so that can shorten that a bit:
function findContainerOf(itemUrl: UrlString) {
  return allDatasets.find(dataset => getContainedResourceUrlAll(dataset).includes(itemUrl);
  });
}
Whoops, I mean:
function findContainerOf(itemUrl: UrlString) {
  return allDatasets.find(dataset => getContainedResourceUrlAll(dataset).includes(itemUrl));
}
Fred Gibson
@gibsonf1
thanks @vinnl:matrix.org !
Fred Gibson
@gibsonf1
I'm assuming allDatasets is not part of solid-client?
is that just a container of all things?
vinnl
@vinnl:matrix.org
[m]

@gibsonf1 (Fred Gibson) I mentioned that above:

I'm going to assume all SolidDatasets in your store are in allDatasets in this code snippet

So I think in your case it would be store.state.datasets instead?

Fred Gibson
@gibsonf1
@vinnl:matrix.org Yes, store.state.dataSets is an k/v object that holds all loaded datasets in our case. So the idea is to do a loop through all datasets looking for hits which sounds like it works in a brute force way. Some cached indexing of them would be a good thing though, so we are using rdflib for this kind of query in the mean time.
vinnl
@vinnl:matrix.org
[m]
I'm not sure that rdflib does indexing there, but sure, that works too. And if performance turns out to be a problem after all, it shouldn't be too much effort to keep an index yourself.
Fred Gibson
@gibsonf1
@vinnl:matrix.org Thanks, yes, I'm not sure indexing is needed so much browser side. Right now we are capturing our lower-level ontology in rdflib (helpful as well for graph navigation) and upper level (standard ontology) in datasets and things, so I'll try the loop approach through the datasets and see how it goes.
vinnl
@vinnl:matrix.org
[m]
Sounds good. Trying things out is the best way to find out what works for your project, IMHO :)
Johannes
@XamHans
Is there any documentation about how the chat works ?
vinnl
@vinnl:matrix.org
[m]
@XamHans (Johannes) What chat? If you're talking about the one in the Data Browser (the default interface on inrupt.net and solidcommunity.net), michielbdejong (Michiel de Jong) wrote an overview of what data it writes a while ago here: https://github.com/solid/solid-panes/blob/master/Documentation/conventions.md#chat
Johannes
@XamHans
Exactly what I needed, thank you :) @vinnl:matrix.org
vinnl
@vinnl:matrix.org
[m]
Thank @michielbdejong :)
Fred Gibson
@gibsonf1
Quick solid-client question. I have a dataset and need to find the wac permissions in it. Is there a command to use for that? (I can see the path to them via internal_...)
Alain Bourgeois
@bourgeoa
When sending a GET http request to the server the response contains a Wac-allow header with user and public permissions. Is it your question ?
Fred Gibson
@gibsonf1
@bourgeoa Its about the solid-client library specifically, and how one retrieves the permissions which are embedded in the datasource object. I looked for a possible function to avoid using internal api, but couldnt find any so am using this for now:
ds.internal_resourceInfo.permissions
Alain Bourgeois
@bourgeoa
Sorry I don't use this library
Martynas Jusevicius
@namedgraph_twitter
specifically XML:dateTime datatypes should probably be xsd:dateTime?
in any case the XML: prefix is not defined
aveltens
@aveltens:matrix.org
[m]
yes, I declared the prefix XML, since all examples are using this one https://github.com/solid/solid-panes/pull/277/files
Martynas Jusevicius
@namedgraph_twitter
ok cool
but most people are used to xsd: there i’d say
aveltens
@aveltens:matrix.org
[m]
agreed, feel free to adjust
vinnl
@vinnl:matrix.org
[m]
@gibsonf1 (Fred Gibson) You're right, that API is still missing, and is on our roadmap to fix. I don't think we have a public GitHub issue on that yet, but if you create one if you need on to refer to, then I'll make sure to keep that up-to-date with developments in that area.