What are Groups in Solid?

These are just some thoughts about groups used in ACL’s in Solid, and some questions.

In Solid, a group is represented as an IRI, which is dereferenced using vcard:hasMember which has a boolean range, true or false. This means that the group is kept on some server somewhere, and is just expected to return yes or no when asked if a WebId is a member.

Beyond that, a group is not specified and could be anything. It could be a list in someone’s mind, a social aggregate of people in a subway car, a close knit socially interacting group like a family, a corporate or government entity, a demographic category, or anything else. It could have intentions or not, have capabilities or not, and perform actions or not. It could have any kind of membership requirements or policies.

The features, capabilities, and requirements of a group may be discoverable or not. There may be levels of discoverability.

So how will this work in practice? Is it beyond the scope of Solid? Where is the boundary between what is or will be defined by the Solid project and what will be defined by groups of people out in the world? Is there a particular panel that will address it?

Would there be servers for discoverable groups with discoverable API’s that would tell you about the group, possibly let you join if appropriate, and maybe be able to negotiate the terms of membership? Would those servers use WebId’s or something else? Then private lists like friends lists would not have such servers?

Maybe all that is way off or too far in the future to even think about.

Just wondering…:blush:

1 Like

I think the functionality you describe is it - Solid provides the basic API to support group membership.

Everything above that is in the application layer. This though can attempt to support greater interoperability with separate standards built on top of Solid, or standard libraries which could be adopted by different applications.

That’s a simple uninformed take, so could be incorrect but it’s what I would assume unless the Solid spec changes in this respect.


Yes, and I think it is very important that Solid allows to do and define anything on top of it. I am currently trying to model Facebook like Groups, but those are very simple compared to what might actually be needed by social groups in real life. And that is the great benefit of Solid. We are not restricted to a central networks definition of a group, we can build anything that’s needed within an open ecosystem and several models of groups will emerge.