@elavoie I'm still thinking about the general implications of this, but in the meantime I have a couple of questions.
In the "Droplets" algorithm shunning seems just like an undo of greeting - an ungreeting. You said "A member shunning another member removes an edge for both", but why is it necessary to remove an edge for both, when membership requires mutual greeting? Isn't enough to unilaterally retract one's greeting? Leaving also seems the same as shunning (ungreeting) everyone you've greeted so far. Then a leave message is like a "broadcast" shun directed to everyone who has greeted you, isn't it?
So it seems to me that the "Droplets" algorithm can be expressed in terms of greeting/ungreeting only. Have you already thought of an algorithm in which greet, shun, and leave aren't reducible to one another? That would provide a fuller picture of your proposal.
What happens when the purpose and/or the membership algorithm need to be updated?
@elavoie
What do you exactly mean by "expelled from a group"? In your example when someone has two shuns will be expelled. Does that mean each one of the other members will automatically emit a shun message toward this person? Is this behavior enforced by the client? If that's the case, what happens when a client doesn't comply to this rule?
If I understand correctly, your example algorithm still allows for associations to split. It's possible for two separate groups of people to commit to the same association, while each one within a group shuns everyone in the other group. Correct?
@elavoie I know you asked for my feedback, and I read most of it but don't have any particular comments right now, I want to give only good insights. So far I'm slightly confused as to what is the goal
I agree with @bobhaugen that some organizations must have identity and be agents, but I'm also convinced that basic, informal groups should have no identity. Even if you make it as easy as possible to fork or merge groups, those operations are going to be all-or-nothing and require some sort consensus, so they'll create friction.
The only way groups can be fluid is that they have no identity.
And the only way to have identityless groups is to use a user-identity per group.
These are the conclusions I reached while thinking about groups during the past year ("subjective groups", described here). @andrestaltz indipendently reached the same conclusions (well, correct me if I'm wrong).
@elavoie, your idea could be implemented on top of "subjective groups". The statement of purpose and the participation algorithm would be like an impersonal notary or a smart contract (but executed by each client). Each "subjective group" could have several such "purposes", thus improving modularity. The purposes could concern the internal management of the group, so for instance they could enforce governance rules like representative democracy, even monarchy, or whatever you want; or they could deal with physical activities, like organizing work.
So I endorse this proposal but I think there should also be a kind of informal groups with no identity nor formal governance.
(Please go on with the discussion without me, I'll be AFK for a couple of weeks).
@elavoie you could represent this with the stuff from friends algorithm rewrite. Also, what do you think about "delegated greet" (like saying, I endorse anyone alice endorses) or "delegated shun" (I shun anyone alice shuns). I think this delegation model is a key part of the "liquid" idea.