ActivityPub/Primer/Addressing

From W3C Wiki

The ActivityPub specification includes a number of addressing properties to use from Activity Streams 2.0, with somewhat different purpose.

to

Activity Streams 2.0 defines this property as: Identifies an entity considered to be part of the public primary audience of an Object.

The addressees are primary; that is, the object is specifically directed to their attention. They are also public; other addressees can see their IDs.

This is an important property to use for visible, directed communications.

bto

Activity Streams 2.0 defines this property as: Identifies an Object that is part of the private primary audience of this Object.

The addressees are primary; that is, the object is specifically directed to their attention. They are also private; other addressees cannot see their IDs.

This is a somewhat unusual property, not least because it is not common in other communications systems, like email. However, a good analogy with email is doing a private distribution of an invitation or other message to many recipients.

cc

Activity Streams 2.0 defines this property as: Identifies an Object that is part of the public secondary audience of this Object.

The addressees are secondary; that is, the object is not specifically directed to their attention, however, they are welcome to view and/or respond. They are also public; other addressees can see their IDs.

This is roughly analogous to the CC field in email messaging.

bcc

Activity Streams 2.0 defines this property as: Identifies one or more Objects that are part of the private secondary audience of this Object.

The addressees are secondary; that is, the object is not specifically directed to their attention, however, they are welcome to view and/or respond. They are also private; other addressees cannot see their IDs. ActivityPub servers have special responsibility to remove BCC addresses to protect privacy.

This is roughly analogous to the BCC field in email messaging.

audience

Activity Streams 2.0 defines this property as: Identifies one or more entities that represent the total population of entities for which the object can considered to be relevant.

The audience property was not intended to be used for addressing in the Activity Streams 2.0 vocabulary, but was included in the addressing fields in ActivityPub. Its behaviour for primary/secondary addressing or public/private addressing is not well-defined.

Clients and servers that are creating Activity Streams 2.0 objects should not use this property.

Clients and servers that receive objects with this property should process it like an address as defined in AP. Because its semantics are not well defined, the principle of least harm suggests treating this property as private and secondary.