Node-solid-server: Can we have some sort of "open with" predicate?

Created on 19 Nov 2018  路  11Comments  路  Source: solid/node-solid-server

Would it be possible to define a predicate that tells the Solid server how to "open" a specific piece of data? Or does such a thing exist already?

Example: I have a web-app that stores data about an RC model at http://my-pod/models/1234. If someone opens that URL they will see the generic data-browser linked data representation of the resource. Now I would like to enable a "Open" or "Show" button in the data-browser by adding a statement like this:

[<http://my-pod/models/1234>, <opens-with>, <http://the-web-app/models?src=http%3A%2F%2Fmy-pod%2Fmodels%2F1234>]

See also discussion at https://forum.solidproject.org/t/whats-in-a-link/618

question

All 11 comments

You could quickly be creative and make it possible to add multiple actions with more complex configurations. Thinks like "Accept" or "Cancel" (for something like a calendar app) or "Buy" etc.

I believe this is one of the uses of type indexes, am I right @timbl @melvincarvalho?

Not unrelated is the old Web Intents initiative, which also aimed to do this.

I think the type index allows you to discover where in a pod data of a certain type is.

It would currently be opened in the data browser by the default pane of that type, I think.

It would currently be opened in the data browser by the default pane of that type, I think.

Yes, that is also what I would expect from what I have read so far. But that would require each and every Solid server to have my type registered with a pane locally, right? Disclaimer: I have not read the panel specs and I'm only guessing here, assuming that panels require code on the Solid server.

@JornWildt No, you define it once in your profile, and the application (eg that's triggering the "open with") discovers those preferences and adapts eg. where to store or find a particular kind of information.

Thanks, could you point me to the specs for that? My Google Foo is not at a suitable lever to uncover that artifact ...

@JornWildt I think you might want to make use of something like https://github.com/solid/solid/blob/master/proposals/data-discovery.md and https://www.w3.org/TR/activitystreams-vocabulary/ .

If that sounds about alright, may I suggest that you close this issue.. as it is not particularly about node-solid-server.

Thanks, I'll take a look at those. I don't think data discovery works though. It states: "the Type Registry provides a way for a client application to discover where a user keeps data relevant to this app, ..." but here we have the data and want to know how to work with it. It seems like data discovery is the opposite way around - how should an application, that knows how to handle data, find data for the user.

If this is not about the solid server what project is then responsible for the data-browser's ability to react to stuff in the data? It seems like those two are mashed together?

@csarven I'm unsure that answers @JornWildt 's question. The data discovery spec shows you where to find data of a certain class (say Chat data).

What I think he was asking for is, how to link a Class of a data, to a particular app. ie not the default pane in the data browser, your own pane (maybe dynamically loaded) or a stand alone app.

Do we have a way to do that?

Instead of closing -- just a suggestion -- I think it's possible to transfer to another repo, maybe solid or solid-spec or solid-panes if deemed necessary. (Seems to be a new github feature). I think it's an interesting case. Eventually we'll possibly need to load panes dynamically in future.

@JornWildt @csarven So, that was exactly the main use case for the App Index. Specifically, to define an 'Open With...' sort of functionality. However, it is not currently implemented, and we haven't settled on the actual open with predicate.

I would love to move this issue to solid-spec but cannot find a button for it. So I'll close this one and copy it to solid-spec.

Was this page helpful?
0 / 5 - 0 ratings