Why did #ActivityPub create special behaviors such as Like, Announce and Block (and the Undo variants) instead of using Add to or Remove from the associated Collection objects?
-
Why did #ActivityPub create special behaviors such as Like, Announce and Block (and the Undo variants) instead of using Add to or Remove from the associated Collection objects? I have a similar question for outbox and inbox POST, which is an implicit Add to those collections.
When adding support for extended collections, is an new collection-specific Activity preferred over Add/Remove? FWIW, I see Mastodon uses Add/Remove for pinned and featured posts.@eyeinthesky @smallcircles because the activity isn't just about the change of the collection, but also notifying the other party our social intention. It could have required Like + Add, but that feels cumbersome and developers love side-effects.
-
Why did #ActivityPub create special behaviors such as Like, Announce and Block (and the Undo variants) instead of using Add to or Remove from the associated Collection objects? I have a similar question for outbox and inbox POST, which is an implicit Add to those collections.
When adding support for extended collections, is an new collection-specific Activity preferred over Add/Remove? FWIW, I see Mastodon uses Add/Remove for pinned and featured posts.@eyeinthesky my assumption for why there's multiple methods for achieving relatively similar results is that first the social vocabulary was created as a way to express the actions that the existing platforms already had enshrined, and then other operations, like collection management, were needed.
But as @thisismissem already said, the canonical social activities have specific side effects attached to their behaviour that extend to the entire social graph, and those are what ActivityPub actually codifies into its specification.
-
@eyeinthesky @smallcircles because the activity isn't just about the change of the collection, but also notifying the other party our social intention. It could have required Like + Add, but that feels cumbersome and developers love side-effects.
@thisismissem @smallcircles I know feelings will vary, but it doesn’t feel cumbersome to me. It seems more logically consistent and less functionally redundant. Side-effects can still be defined for specific target collections. What do you recommend for extension collection management?
-
@thisismissem @smallcircles I know feelings will vary, but it doesn’t feel cumbersome to me. It seems more logically consistent and less functionally redundant. Side-effects can still be defined for specific target collections. What do you recommend for extension collection management?
@eyeinthesky @smallcircles yeah, there's those that like side-effects and those that dislike side-effects. Both are valid, AP just chose side effects.
I'm not sure I understand your question
-
@eyeinthesky @smallcircles yeah, there's those that like side-effects and those that dislike side-effects. Both are valid, AP just chose side effects.
I'm not sure I understand your question
@thisismissem @smallcircles If I define an extension that uses a collection, should I define a special activity for managing the collection instead of using Add/Remove?
-
@thisismissem @smallcircles If I define an extension that uses a collection, should I define a special activity for managing the collection instead of using Add/Remove?
@eyeinthesky @smallcircles you could, but you don't necessarily have to. Depends if adding to that collection has a social action besides the add I think.
Say I have a boops collection which contains actors I've booped. I could have a Boop activity with a side effect (because I want them to know I've booped them), or I could not, and just notify them that I added their Actor to this Collection.
-
@eyeinthesky @smallcircles because the activity isn't just about the change of the collection, but also notifying the other party our social intention. It could have required Like + Add, but that feels cumbersome and developers love side-effects.
@thisismissem @smallcircles The weird thing about Like+side_effects vs Add(Like activity to “likes collections”) is that the side effect is Add Like to “likes collection”. lol They are both one inbox activity.
-
@thisismissem @smallcircles The weird thing about Like+side_effects vs Add(Like activity to “likes collections”) is that the side effect is Add Like to “likes collection”. lol They are both one inbox activity.
@eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.
-
@eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.
@eyeinthesky @smallcircles and how do I infer social meaning from you adding an object to a collection? I could only do that if I was adding an activity to a collection
-
@eyeinthesky @smallcircles and how do I infer social meaning from you adding an object to a collection? I could only do that if I was adding an activity to a collection
@eyeinthesky @smallcircles (funnily enough, in AT Protocol, we only have collections we add records to, all the social layer is defined by applications above, which receive all the changes to records and infer meaning from that)
-
@eyeinthesky @smallcircles and how do I infer social meaning from you adding an object to a collection? I could only do that if I was adding an activity to a collection
@thisismissem @smallcircles I’m not sure how you define “social meaning”, but if you Add a Boop to my boops collection you socially booped me. I suppose a Boop activity is needed either way, but overloading the meaning to include implicit collection management seems dubious to me.
-
@eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.
@thisismissem @smallcircles Per the AP spec… “The side effect of receiving this in an inbox is that the server SHOULD increment the object's count of likes by adding the received **activity** to the likes collection if this collection is present.” (emphasis mine)
-
@thisismissem @smallcircles I’m not sure how you define “social meaning”, but if you Add a Boop to my boops collection you socially booped me. I suppose a Boop activity is needed either way, but overloading the meaning to include implicit collection management seems dubious to me.
@eyeinthesky @smallcircles yeah, and this is a side effect of the activity (e.g., Like) adding to both my likes collection and the likes collection on your post.
So would my add be targeting two collections with an Activity?
What about Announce? That's add to my outbox, add to my boosts collection, and add to your post's boost collection.
-
@thisismissem @smallcircles Per the AP spec… “The side effect of receiving this in an inbox is that the server SHOULD increment the object's count of likes by adding the received **activity** to the likes collection if this collection is present.” (emphasis mine)
@eyeinthesky @smallcircles I suspect this is incorrect. I am pretty sure the likes collection contains only objects, not the activities.
@evan was there an erratum for this? I feel like there was?
-
@smallcircles @eyeinthesky yeah, making everything an Actor is certainly a choice, and you could do that
-
@eyeinthesky @smallcircles I suspect this is incorrect. I am pretty sure the likes collection contains only objects, not the activities.
@evan was there an erratum for this? I feel like there was?
@thisismissem @smallcircles @evan It makes sense to me. Someone liked a local object. We wouldn’t add the liked object to the liked object “likes” collection (it would be the same object). It seems that only the activity (and collection count) is interesting. Maybe you are thinking about the “liked” collection? (Different topic, but it seems that this *should* be a collection of activities too. Dropping the activity loses info such as the Like timestamp.)
-
The biggest folly imho is this idea of "let's cram every domain into #ActivityStreams somehow". Flatten everything and project it onto this small set of social primitives that AS defines.
It is once more a choice of pragmatism: "Hey, I've seen it working with Mastodon, so I copied that. And #LinkedData extension mechanism is a handwaved horror show".
So understandable perhaps that we did it. But now we must overcome this trend which has taken stubborn root and drags the ecosystem down.
-
Why did #ActivityPub create special behaviors such as Like, Announce and Block (and the Undo variants) instead of using Add to or Remove from the associated Collection objects? I have a similar question for outbox and inbox POST, which is an implicit Add to those collections.
When adding support for extended collections, is an new collection-specific Activity preferred over Add/Remove? FWIW, I see Mastodon uses Add/Remove for pinned and featured posts.@eyeinthesky I think
Add/Removeshould be used for extended collections.Like,Announceetc look like legacy / tech debt to me. -
@eyeinthesky I think
Add/Removeshould be used for extended collections.Like,Announceetc look like legacy / tech debt to me.@silverpill@mitra.social add and remove feel more like building blocks than actual activities.
It would never capture the nuance of many of the activities that it would purportedly represent.
-
@silverpill@mitra.social add and remove feel more like building blocks than actual activities.
It would never capture the nuance of many of the activities that it would purportedly represent.
@julian @thisismissem @eyeinthesky @mariusor @smallcircles
Yes, they are building blocks, together with
Create,UpdateandDelete. Everything else can be constructed from them.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login