I’ve been thinking about creating a browser extension that ties RDF resources to Solid apps that handles the data described within. The idea is similar to what SolidOS does, but extracts the logic into a browser extension.
The flow of use I envision is:
- The user installs the extension
- The extension triggers in two scenarios:
2.1 For HTML documents that links to a manifesto resource: It will prompt a popup asking whether the user wants to install the app into the extension (given that the user hasn’t installed or declined earlier). The manifesto describes the types of data the app supports and how to load them into the app.
2.2 For RDF resources: If the data matches what installed apps support, it will present a menu that allows users to navigate to the app they want to load the resource into.
There are several ways this can be extended, but that’s the core of it. I want to flesh out the details in a later post, but want to hear feedback, if any, first.
I’m still in the thinking phase of this, but wanted to share my thoughts in case anyone has something to add or critique about the idea. So please, let me know if you have any thoughts, or even better, if you want to participate
I think this is a great idea, this would help surface some of the RDF data that already exists in the web. And it’s something that can only be achieved with Solid, so it’d help people understand why Solid Apps are different from other apps :D.
I get the gist of your idea, and I think the key to make this useful is to make it easy for apps to register. Using a manifest is a good start, given that many apps will already have something like a web manifest.
Although I think there’s a missing part of the puzzle to make this really useful, and that is how apps customize behaviour. What I mean with this is that every application may have different things they’d want to do with the data, and the extension would need to have a mechanism to configure that.
With a recipes manager app, when a user encounters a recipe online they may want to do some of these actions:
- Add it to your cookbook (no need to even open the app).
- Show if it’s already in your cookbook.
- Start a “cooking assistant” with the recipe (which helps you with the steps, timers, adjusting quantities, etc.).
- Add ingredients to a shopping list.
With a movies tracking app, a user may want to:
- Add a movie as “watched”.
- Add a movie as “watch later”.
- Show if you’ve already watched it.
- Find similar movies that you have watched.
Also, since we’re talking about Solid here, it would be nice if all these configuration and registration mechanisms are declared with a standard format that is not coupled to the browser extension. For example, in the future someone may want to implement a native app for Android or iOS that does something similar.
I love the idea of adding functions based on what data is available in the resource. I’ve created an issue for it on the project repo, but I suspect it’s not going to make it into the initial implementation. Version 1.0.0 should be about making the initial setup work as easy as possible. I reckon version 2 could be with this feature, as it allows an incredibly amount of extra stuff to happen, but it also needs to be done in a secure and privacy-safe way.
I don’t know much about how to open a native app from a URL, but I’ll look into it and see if it’s possible to do.
I’d love to be a beta tester on this.
If you’re looking into a PWA, this isn’t currently supported to my knowledge but is a proposal.
For a mobile application, I think that it is available using Chrome on AndroidOS. I’m unsure about other browsers/platforms.