Exploring the «Community Has No Boundary» paradigm
This Pattern document explores Community concepts for federated apps that more closely represent how people interact together in real life.
Communities are all around us. We participate in them all of the time. Our circle of friends, our family, school, work, sports clubs, the town where we live. All communities. And they are intricately interwoven and overlapping, forming a complex social fabric. Online we have communities too. Social media, forums, mailing lists, game worlds. But they aren’t as intricately connected. Community concepts are usually bound by the application or server that hosts them.
Defining a universal, interoperable Community model for the Fediverse is a challenge. There are:
- Numerous application-specific ways to express what constitutes a community.
- Numerous ways to define membership and inter-community relationships.
- Restrictions to a community model that result from current specification design.
The “Community has no Boundary” paradigm entails standardizing an ActivityPub vocabulary extension and federated message exchange patterns, that:
- Supports defining of generic community, member and relationship abstractions.
- Are meaningful and usable across many application and business domains.
- Allow arbitrary further extensions and specialization for these domains.
- Facilitates easy alignment to definition used by other technology initiatives.
This dictionary definition comes closest to our needs with regards to defining Community:
- Community (The Free Dictionary)
- Similarity or identity: a community of interests.
- Sharing, participation, and fellowship: a sense of community.
Note that “Sense of community” is very important in Fediverse culture. Wikipedia uses the following definition of “Community”:
A community is a social unit (a group of living things) with commonality such as norms, religion, values, customs, or identity.
At an implementation level we discern communities as “Social groups”: “Two or more people who interact with one another, share similar characteristics, and collectively have a sense of unity.”
The interaction between people follows a “Social organization”: “A pattern of relationships between and among individuals and social groups.”
What ActivityPub offers
The W3C ActivityStreams 2.0 Recommendation provides us with:
- The abstract definition of Actors that can interact in a social network.
- Group, Person and Organization as meaningful actors in a Community.
- Application and Service actors may be members too (e.g. a chatbot).
- Collection and OrderedCollection to define lists of items.
- Relationship object to describe a relationship between two actors.
- VCard SHOULD be used for additional Group, Person and Organization metadata.
Written by Arnold Schrijver
Social Coding initiator. Humane tech, FOSS and Fedi advocate. Techie.