Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Darkly)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Uncategorized
  3. 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?

Scheduled Pinned Locked Moved Uncategorized
activitypub
29 Posts 7 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • EyeE Eye

    @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?

    Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
    Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
    Emelia ๐Ÿ‘ธ๐Ÿป
    wrote last edited by
    #5

    @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

    EyeE 1 Reply Last reply
    0
    • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

      @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

      EyeE This user is from outside of this forum
      EyeE This user is from outside of this forum
      Eye
      wrote last edited by
      #6

      @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?

      Emelia ๐Ÿ‘ธ๐ŸปT 1 Reply Last reply
      0
      • EyeE Eye

        @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?

        Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
        Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
        Emelia ๐Ÿ‘ธ๐Ÿป
        wrote last edited by
        #7

        @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.

        1 Reply Last reply
        0
        • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

          @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.

          EyeE This user is from outside of this forum
          EyeE This user is from outside of this forum
          Eye
          wrote last edited by
          #8

          @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.

          Emelia ๐Ÿ‘ธ๐ŸปT infinite love โดณT 2 Replies Last reply
          0
          • EyeE Eye

            @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.

            Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
            Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
            Emelia ๐Ÿ‘ธ๐Ÿป
            wrote last edited by
            #9

            @eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.

            Emelia ๐Ÿ‘ธ๐ŸปT EyeE infinite love โดณT 3 Replies Last reply
            0
            • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

              @eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.

              Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
              Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
              Emelia ๐Ÿ‘ธ๐Ÿป
              wrote last edited by
              #10

              @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

              Emelia ๐Ÿ‘ธ๐ŸปT EyeE 2 Replies Last reply
              0
              • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                @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

                Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                Emelia ๐Ÿ‘ธ๐Ÿป
                wrote last edited by
                #11

                @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)

                ๐Ÿซง socialcoding..S 1 Reply Last reply
                0
                • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                  @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

                  EyeE This user is from outside of this forum
                  EyeE This user is from outside of this forum
                  Eye
                  wrote last edited by
                  #12

                  @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.

                  Emelia ๐Ÿ‘ธ๐ŸปT 1 Reply Last reply
                  0
                  • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                    @eyeinthesky @smallcircles that's the thing though! The likes collection doesn't contain activities, it contains objects.

                    EyeE This user is from outside of this forum
                    EyeE This user is from outside of this forum
                    Eye
                    wrote last edited by
                    #13

                    @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)

                    Emelia ๐Ÿ‘ธ๐ŸปT 1 Reply Last reply
                    0
                    • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                      @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)

                      ๐Ÿซง socialcoding..S This user is from outside of this forum
                      ๐Ÿซง socialcoding..S This user is from outside of this forum
                      ๐Ÿซง socialcoding..
                      wrote last edited by
                      #14

                      @thisismissem @eyeinthesky

                      I just responded in the other thread about #ForgeFed way of dealing with Issues and PR's, emphasizing the actor model in the #ActivityPub specs.

                      Guess it depends on the nature of your extension and its desired functionality how you model things, but ForgeFed chose to have a dedicated actor, a TicketTracker, to manage the collection. Big advantage is that it become a truly encapsulated service with its own business logic, fronted by an AP actor for interoperable network communication.

                      https://social.coop/@smallcircles/116096769625606025

                      Emelia ๐Ÿ‘ธ๐ŸปT 1 Reply Last reply
                      0
                      • EyeE Eye

                        @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.

                        Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                        Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                        Emelia ๐Ÿ‘ธ๐Ÿป
                        wrote last edited by
                        #15

                        @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.

                        1 Reply Last reply
                        0
                        • EyeE Eye

                          @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)

                          Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                          Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                          Emelia ๐Ÿ‘ธ๐Ÿป
                          wrote last edited by
                          #16

                          @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?

                          EyeE 1 Reply Last reply
                          0
                          • ๐Ÿซง socialcoding..S ๐Ÿซง socialcoding..

                            @thisismissem @eyeinthesky

                            I just responded in the other thread about #ForgeFed way of dealing with Issues and PR's, emphasizing the actor model in the #ActivityPub specs.

                            Guess it depends on the nature of your extension and its desired functionality how you model things, but ForgeFed chose to have a dedicated actor, a TicketTracker, to manage the collection. Big advantage is that it become a truly encapsulated service with its own business logic, fronted by an AP actor for interoperable network communication.

                            https://social.coop/@smallcircles/116096769625606025

                            Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                            Emelia ๐Ÿ‘ธ๐ŸปT This user is from outside of this forum
                            Emelia ๐Ÿ‘ธ๐Ÿป
                            wrote last edited by
                            #17

                            @smallcircles @eyeinthesky yeah, making everything an Actor is certainly a choice, and you could do that

                            ๐Ÿซง socialcoding..S 1 Reply Last reply
                            0
                            • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                              @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?

                              EyeE This user is from outside of this forum
                              EyeE This user is from outside of this forum
                              Eye
                              wrote last edited by
                              #18

                              @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.)

                              1 Reply Last reply
                              0
                              • Emelia ๐Ÿ‘ธ๐ŸปT Emelia ๐Ÿ‘ธ๐Ÿป

                                @smallcircles @eyeinthesky yeah, making everything an Actor is certainly a choice, and you could do that

                                ๐Ÿซง socialcoding..S This user is from outside of this forum
                                ๐Ÿซง socialcoding..S This user is from outside of this forum
                                ๐Ÿซง socialcoding..
                                wrote last edited by
                                #19

                                @thisismissem @eyeinthesky

                                I think we underrated the power of the actor model and the extent we can incorporate it on the #ActivityPub fediverse. Somehow we got eternally stuck in talking about HTTP plumbing and core protocol capabilities that we never fleshed out thoroughly in order to be able to just focus on the higher-level concerns of app and service modeling.

                                Actor systems based on loosely-coupled event-driven architecture, delegation, supervision, supervision strategies, inbox strategies, let-it-fail, actors fronting domain aggregates, service-orientation, etc.

                                ๐Ÿซง socialcoding..S 1 Reply Last reply
                                0
                                • ๐Ÿซง socialcoding..S ๐Ÿซง socialcoding..

                                  @thisismissem @eyeinthesky

                                  I think we underrated the power of the actor model and the extent we can incorporate it on the #ActivityPub fediverse. Somehow we got eternally stuck in talking about HTTP plumbing and core protocol capabilities that we never fleshed out thoroughly in order to be able to just focus on the higher-level concerns of app and service modeling.

                                  Actor systems based on loosely-coupled event-driven architecture, delegation, supervision, supervision strategies, inbox strategies, let-it-fail, actors fronting domain aggregates, service-orientation, etc.

                                  ๐Ÿซง socialcoding..S This user is from outside of this forum
                                  ๐Ÿซง socialcoding..S This user is from outside of this forum
                                  ๐Ÿซง socialcoding..
                                  wrote last edited by
                                  #20

                                  @thisismissem @eyeinthesky

                                  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.

                                  Emelia ๐Ÿ‘ธ๐ŸปT 1 Reply Last reply
                                  0
                                  • julianJ This user is from outside of this forum
                                    julianJ This user is from outside of this forum
                                    julian
                                    wrote last edited by
                                    #21

                                    @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.

                                    EyeE 1 Reply Last reply
                                    0
                                    • julianJ julian

                                      @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.

                                      EyeE This user is from outside of this forum
                                      EyeE This user is from outside of this forum
                                      Eye
                                      wrote last edited by
                                      #22

                                      @julian @silverpill Add/Remove donโ€™t replace the activity being added/removed so thereโ€™s no risk to nuance from my perspective. They make the collection side-effects explicit and consistent with other non-special collections. Sometimes the Add (or Remove) is the primary activity rather than only a building block (Add a member to my Group, Add an Article to my fave articles, Add a song to a social play list โ€” maybe with an Announce of the Add sent to followers).

                                      1 Reply Last reply
                                      0
                                      • mariusM marius

                                        @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.

                                        Martin AtkinsA This user is from outside of this forum
                                        Martin AtkinsA This user is from outside of this forum
                                        Martin Atkins
                                        wrote last edited by
                                        #23

                                        @mariusor
                                        The earliest discussions on Activity Streams did constantly get stuck on which platforms' concepts were "real" and which was just an alias for another.

                                        e.g. is a "tweet" the same thing as a blog post? As a status update on Facebook?
                                        e.g. is listening to a podcast the same verb as watching a video on YouTube?
                                        e.g. is "liking" the same verb as adding to a "Favorites" playlist?

                                        In retrospect I think it was naive to try to be so specific, since it was too early for that, but alas. ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

                                        mariusM 1 Reply Last reply
                                        0
                                        • Martin AtkinsA Martin Atkins

                                          @mariusor
                                          The earliest discussions on Activity Streams did constantly get stuck on which platforms' concepts were "real" and which was just an alias for another.

                                          e.g. is a "tweet" the same thing as a blog post? As a status update on Facebook?
                                          e.g. is listening to a podcast the same verb as watching a video on YouTube?
                                          e.g. is "liking" the same verb as adding to a "Favorites" playlist?

                                          In retrospect I think it was naive to try to be so specific, since it was too early for that, but alas. ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

                                          mariusM This user is from outside of this forum
                                          mariusM This user is from outside of this forum
                                          marius
                                          wrote last edited by
                                          #24

                                          @apparentlymart very interesting perspective, thank you. ๐Ÿ™‚

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups