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.