It seems a lot is already being said on this topic.
Here are a few cents from my perspective (as a datascientist, not someone who understands all the technical detail of the current specs, code and agreements).
The use and re-use of data (including writing, editing, adding, deleting), should be possible by different apps, different people (according to ACL) and on the most granular level possible.
While I see shapes and patterns and fragments as interesting tools, There will be data in your pod that will be “all over the place”.
To some I wish to share my date of birth, to others, I wish to share only the day and month.
To some, I wish to share some info from one document, and some info of another document, but not all.
I might want to query ‘relevant’ information of people “relating cars”, regardless of the ontology or SHex or whatever format they have written it.
Interoperability needs the open world assumption to hold.
Representations of reality need to be open to change (and preferably have a probabilistic reference in terms of truth value, but that can be done in rdf), as not only reality changes, the representation can and will change over time.
This in mind, I think that all triples should be stored in a triple store (or quad store). Including the many possible defined views and relations.
A knowledge graph is the strongest way to do this, and offers a lot of flexibility.
Additionally, I think that (preferably in the near future), we need to introduce vector embedding of nodes & ontologies.
When using NLP techniques, you can map “foaf:person” on “vcard:person” or “schema:person” to one another, as the difference between them might not interest me, and the meaning is too similar to me to make that distinction, or that those “near alternatives” correlate sufficiently for my data usage purpose.
(Note that this takes Wittgenstein’s Family relationship into account).
I don’t see how all of this will ever be possible as long as you keep the graph cut up into documents with an arbitrary (and thus wildly differing) structure.
Ideally, I give permission to a query (of course, in a human readable way): for example: I want to share or query data that is relevant for buying new shoes :
Asking for my favourite colour is fine, as is my buying history of shoes and even trousers, asking for my educational background is not, asking for the amount of steps I do in a day might be interesting (how do I use or wear my footwear).
Now, a lot of these concerns can be pushed off for a little while, until adoption increases and more apps and use cases are developed for a broadening community… But it will become a huge problem when Solid becomes ubiquitous, and as I assume the growth is exponential, we shouldn’t wait too long.
Starting to clear the grounds to prepare for this and make a first working version would be a boon.