Conversations
Applications:
public groups
private groups
rooms
boards
forums
"mailing lists" (aka circles/aspects)
"Facebook wall" emulation
any conversation requiring a built-in moderation workflow
any conversation desiring the application of established rules of order
"primary source" conversation back-filling that you're unlikely to ever need
An Introduction to providing and interacting with Conversations in ActivityPub
Definitions:
Conversation
Activities sharing a
context element AND a target element AND where (`context` == target).Root
An ActivityPub object with no
inReplyTo field.Conversation Owner
The
actor that Adds the Root object to the Conversation, which SHOULD be identical to (`context` ||
target)->`attributedTo`.Descendants
An ActivityPub object containing an
inReplyTo field and is either a Conversation OR at minimum contains an identical context with the Root object.Participant
Anybody who plays by the rules when encountering a Conversation.
The rules:
- All associated objects and their activity wrappers SHOULD be signed with FEP-8b32 Object Proofs
- The Conversation Owner SHOULD be the sole
torecipient of replies generated by any Descendant in a Conversation. - Descendants SHOULD NOT generate additional deliveries to "mentioned" actors or any other recipients when replying to a Conversation.
- Descendants SHOULD quietly ignore any Descendant object that was not sent by the Conversation Owner via an
AddorRemoveof that object to the Conversation target OR is a locally generated activity which is being senttothe Conversation Owner for the purpose of requesting inclusion in the Conversation. - The Conversation Owner MAY accept activities of any type from any Descendants and MAY
Addthem to the Conversation. ThisAddactivity wraps the incoming signed activity as its object and this SHOULD be relayed to all Participants through unwrapping the embedded object - after verification. The Conversation Owner also SHOULD send an associatedRemoveif the object is ever removed from the Conversation. - Participants MAY provide a
replyTofield in their activities set to the Conversation Owner. - Participants MIGHT WANT to ensure their same-origin policy implementation allows the import of embedded third-party signed objects via Adding to Collections with different owners.