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.
  • 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
                • 🫧 socialcoding..S 🫧 socialcoding..

                  @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 This user is from outside of this forum
                  Emelia 👸🏻T This user is from outside of this forum
                  Emelia 👸🏻
                  wrote last edited by
                  #25

                  @smallcircles @eyeinthesky I was mostly thinking of the Follow activity and the following collection: it doesn't contain Follow activities, it contains Actors: https://hachyderm.io/users/thisismissem/following?page=1

                  In Mastodon the "likes" collection for a Note doesn't even include the Actors, just the count: https://browser.pub/https%3A%2F%2Fhachyderm.io%2Fusers%2Fthisismissem%2Fstatuses%2F115622304738688291%2Flikes

                  1 Reply 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.

                    infinite love ⴳT This user is from outside of this forum
                    infinite love ⴳT This user is from outside of this forum
                    infinite love ⴳ
                    wrote last edited by
                    #26

                    @eyeinthesky @thisismissem @smallcircles i would use as:result for this -- the *result* when you Accept the Like activity is to Add it to the likes collection... if you care about that level of detail. most people only care about the Like. maybe even less than that! (synthesizing a statement such as :bob :likes :this.)

                    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.

                      infinite love ⴳT This user is from outside of this forum
                      infinite love ⴳT This user is from outside of this forum
                      infinite love ⴳ
                      wrote last edited by
                      #27

                      @thisismissem @eyeinthesky @smallcircles likes contains Like activities; shares contains Announce activities; the exception is followers not containing the Follow activity (or not having a follows collection) (or not doing the better thing which is subscription management)

                      1 Reply Last reply
                      0
                      • infinite love ⴳT This user is from outside of this forum
                        infinite love ⴳT This user is from outside of this forum
                        infinite love ⴳ
                        wrote last edited by
                        #28

                        @silverpill @eyeinthesky @thisismissem @smallcircles the activity properties don't get used very much but they probably should be. the as:actor performs the as:Activity on the as:object to the as:target from the as:origin with the as:instrument leading to the as:result. and maybe in response to the as:inReplyTo? maybe with an as:summary? there are properties of as:Object that would fit well on most as:Activity nodes, although i think they are two distinct processing models (just closely related)

                        infinite love ⴳT 1 Reply Last reply
                        0
                        • infinite love ⴳT infinite love ⴳ

                          @silverpill @eyeinthesky @thisismissem @smallcircles the activity properties don't get used very much but they probably should be. the as:actor performs the as:Activity on the as:object to the as:target from the as:origin with the as:instrument leading to the as:result. and maybe in response to the as:inReplyTo? maybe with an as:summary? there are properties of as:Object that would fit well on most as:Activity nodes, although i think they are two distinct processing models (just closely related)

                          infinite love ⴳT This user is from outside of this forum
                          infinite love ⴳT This user is from outside of this forum
                          infinite love ⴳ
                          wrote last edited by
                          #29

                          @silverpill @eyeinthesky @thisismissem @smallcircles which is to say, as2 has an "object processing" mode (check name, summary, content, icon, image, ... and render generic display) and an "activity processing" mode (check actor, object, ... and render an activity in the stream) which coexist. the "activity processing" is underutilized in fedi, but it's the more interesting one because it lets you unify a lot of disparate models without forcing everything to be a Note (checkins, scrobbles, etc)

                          1 Reply Last reply
                          1
                          0
                          • R AodeRelay shared this topic
                          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