Interoperability Panel - June Update

Hi everyone,

Per some recent discussions, we’re trying to do a better job relaying information about active work in flight, so here’s an update on what we’ve been up to in the Interoperability Panel in June.

As a bit of background - it may be helpful to check out this forum post to understand the problems we’re aiming to solve through our work.

In pursuit of solving those problems, we’ve needed to spend a bit of time on intersecting portions of the core protocol specification like auxiliary resources, and also work on some new things like shape trees, which are progressing rapidly.

From the Shape Trees Primer:

A shape tree defines a prospective tree of related resources which can be read and written by applications. The shape tree associates each of these resources with a shape. This allows one to treat a set of related resources as a single grouping, and apply that to a range of operations including access control, data organization, data validation, and data migration. Since the shape tree boundaries that establish these groupings are easily understood by humans, it allows them to perform these operations intuitively.

All of this ultimately leads to our main focus - a very much still in progress draft proposal for how to power an interoperable ecosystem of applications and data, which we’re making substantial progress on daily.

Keep in mind that this material is pretty technical in nature. It’s meant for the developers who are making the tools and libraries that the majority of the developer population will use. It’s also a draft that’s partially complete, so it’s missing some of the glue and polish that will make it more readable and digestible.

A lot of work so far has gone towards iterating on the fundamentals, like establishing our reference use case, data model, shapes, shape trees, and patterns for incorporating all of that into practical mechanisms. We recently published a draft iteration of Application Registration, which is the first section of several to pull all of those fundamentals together.

While we iterate on feedback and continue to tune Application Registration, we’re heads down on Data Registration and Data Authorization, which are arguably the most important sections in the proposal. We anticipate substantial submissions for these to start rolling in by the end of next week :slightly_smiling_face:

Here are some links to the draft if you’d like to follow our progress… or even better - join in and contribute!

Feel free to raise issues, make pull requests, make forum topics, or ping us in gitter with any thoughts, concerns, questions, or ideas!

Thanks!

8 Likes

Great work, I am impressed! I am very happy to see so much going on. Guess I have a lot to read up.

1 Like

Thanks @justin. I’d like to have a picture (literally a diagram) of the building blocks (eg Shape Trees which is completely new to me), how they fit together and how this structure relates to the goals in the other forum post. Does this exist?

I think it’s hard for us outside the ‘core’ to understand what Shape Trees or any new thing is without being ‘in the room’ or spending hours reading and asking questions. Personally I’m always trying to understand what you are building, why, and get some idea of the vision and strategy coming from Inrupt or other researchers. That’s all hard to fathom for me, and I’ve been following along and building bits for years now.

Addendum: early on I remember reading the slides for a presentation about Solid and one set out half a dozen goals and I knew this project was something important for me, because they were all things I was already pursuing. That clarity seems to have been lost, and the follow on work is not presented in a context which shows how that vision is being realised, or if the vision has changed. Every time we discuss this I feel less sure and less able to say what I think it is.

4 Likes

I was quick to point out that this is a draft that’s partially complete, so it’s missing some of the glue and polish that will make it more readable and digestible. Once we have a more fulsome draft, we’ll be able to start providing more of the the kinds of materials you’re looking for. It’s harder to provide much when the draft is incomplete, but your point is well taken and we’ll see what we can produce along those lines to give people more context while the draft is being done.

Re: Shapetrees - The Introduction and Structure sections of the Shapetrees Primer (also under active construction i should add) provide a decent overview of the fundamentals. In terms of their applicability in Solid - here’s a cursory explanation…

People naturally interact with “things” in the world. An appointment is a thing. A notebook is a thing. A note is a thing. A photo album is a thing, etc. Whether you’re technical or not, this is natural for everyone. Consequently, when people are working with their data in Solid, or sharing it with others, we want to maintain this natural notion of what things are. When you start representing them as data, many of these things are complex - made up of multiple resources, or data that needs to validate against different shapes. Even more importantly, how we lay it out across resources affects how we can permit access to it, because Solid’s authorization system is resource based.

Shape trees give us a way to represent things of variable complexity that marry the elements of the graph model (the linked data), the shapes to validate them, and the resources they span into “little trees” machines can understand, in bundles that make rational sense to people. We can use this notion to organize data for more intuitive authorization, more intuitive access requests, and better interoperability between applications.

Certainly as the draft progresses, the supplementary material to understand it will progress, with added priority given your feedback and my point above. The focus of the draft proposal is to satisfy the Problems and Goals. This section aims to illustrate at a high-level the intention of the proposal to fulfill them, though it’s slated to be continually refreshed and expanded as the doc progresses, and so it has a ways to go to that end.

To be fair, it’s hard for me to respond constructively to this when I don’t know what presentation you’re referring to, who gave it, when it was given, or which goals and vision you have in mind. I’m happy to address any specifics if you can track them down or provide them.

5 Likes