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 (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. Technical Discussion
  3. Something missing from 'followers' and 'following' collections.

Something missing from 'followers' and 'following' collections.

Scheduled Pinned Locked Moved Technical Discussion
activitypubactivitystreamsfedidev
1 Cross-posts 34 Posts 7 Posters 6 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.
  • reiver@mastodon.socialR This user is from outside of this forum
    reiver@mastodon.socialR This user is from outside of this forum
    reiver@mastodon.social
    wrote last edited by
    #1

    Something missing from 'followers' and 'following' collections.

    1/

    ActivityPub 'followers' and 'following' collections tend to be missing an important piece of information —

    The date-time when person A followed person B.

    There are certain use-cases where this matters.

    You can see an example of this information missing in what Mastodon includes in the attached screen-shot.

    #ActivityPub #ActivityStreams #FediDev

    reiver@mastodon.socialR mariusor@metalhead.clubM suetanvil@freeradical.zoneS 3 Replies Last reply
    0
    • reiver@mastodon.socialR reiver@mastodon.social

      Something missing from 'followers' and 'following' collections.

      1/

      ActivityPub 'followers' and 'following' collections tend to be missing an important piece of information —

      The date-time when person A followed person B.

      There are certain use-cases where this matters.

      You can see an example of this information missing in what Mastodon includes in the attached screen-shot.

      #ActivityPub #ActivityStreams #FediDev

      reiver@mastodon.socialR This user is from outside of this forum
      reiver@mastodon.socialR This user is from outside of this forum
      reiver@mastodon.social
      wrote last edited by
      #2

      Something missing from 'followers' and 'following' collections.

      2/

      I think this could be addressed by using the ActivityPub 'published' field:

      https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published

      Such as what is shown in the (new) attached screen-shot.

      So that the date-time when person A followed person B is included.

      #ActivityPub #ActivityStreams #FediDev

      trwnh@mastodon.socialT 1 Reply Last reply
      0
      • ? Guest crossposted this topic to General Discussion
      • reiver@mastodon.socialR reiver@mastodon.social

        Something missing from 'followers' and 'following' collections.

        1/

        ActivityPub 'followers' and 'following' collections tend to be missing an important piece of information —

        The date-time when person A followed person B.

        There are certain use-cases where this matters.

        You can see an example of this information missing in what Mastodon includes in the attached screen-shot.

        #ActivityPub #ActivityStreams #FediDev

        mariusor@metalhead.clubM This user is from outside of this forum
        mariusor@metalhead.clubM This user is from outside of this forum
        mariusor@metalhead.club
        wrote last edited by
        #3

        @reiver that information should exist in the form of the Follow/Accept activities that are in the participating actors' inbox/outboxes.

        reiver@mastodon.socialR 1 Reply Last reply
        0
        • reiver@mastodon.socialR reiver@mastodon.social

          Something missing from 'followers' and 'following' collections.

          2/

          I think this could be addressed by using the ActivityPub 'published' field:

          https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published

          Such as what is shown in the (new) attached screen-shot.

          So that the date-time when person A followed person B is included.

          #ActivityPub #ActivityStreams #FediDev

          trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.social
          wrote last edited by
          #4

          @reiver This is claiming the actors themselves were published at the given datetime, which is probably not what you want.

          I think what you want is a collection of actual follower/following relationships, or possibly a collection of Follow activities, or possibly a collection of subscription records. Those can have a "published" datetime and be understood correctly as when the relation was created (instead of when the actor was created).

          trwnh@mastodon.socialT reiver@mastodon.socialR 2 Replies Last reply
          0
          • trwnh@mastodon.socialT trwnh@mastodon.social

            @reiver This is claiming the actors themselves were published at the given datetime, which is probably not what you want.

            I think what you want is a collection of actual follower/following relationships, or possibly a collection of Follow activities, or possibly a collection of subscription records. Those can have a "published" datetime and be understood correctly as when the relation was created (instead of when the actor was created).

            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.social
            wrote last edited by
            #5

            @reiver FWIW, I actually think that a collection of subscriptions / "follower relationships" is needed for other reasons! Mainly, to help with desync issues in follower state that plague the fediverse today in practice. (I know in a lot of cases people are interested in knowing directly "who is a follower" and not indirectly via "which follower relationships exist", but the former is currently broken and the latter would fix those issues.)

            trwnh@mastodon.socialT 1 Reply Last reply
            0
            • trwnh@mastodon.socialT trwnh@mastodon.social

              @reiver FWIW, I actually think that a collection of subscriptions / "follower relationships" is needed for other reasons! Mainly, to help with desync issues in follower state that plague the fediverse today in practice. (I know in a lot of cases people are interested in knowing directly "who is a follower" and not indirectly via "which follower relationships exist", but the former is currently broken and the latter would fix those issues.)

              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.social
              wrote last edited by
              #6

              @reiver Having an explicit notion of a "follower relationship" or a "subscription" is useful for other reasons, too -- like, say, being able to specify which activities one is interested in receiving. Or the datetime of last successful delivery, so that inactive followers can be marked inactive instead of destroying the follow relationship entirely.

              smallcircles@social.coopS 1 Reply Last reply
              0
              • trwnh@mastodon.socialT trwnh@mastodon.social

                @reiver Having an explicit notion of a "follower relationship" or a "subscription" is useful for other reasons, too -- like, say, being able to specify which activities one is interested in receiving. Or the datetime of last successful delivery, so that inactive followers can be marked inactive instead of destroying the follow relationship entirely.

                smallcircles@social.coopS This user is from outside of this forum
                smallcircles@social.coopS This user is from outside of this forum
                smallcircles@social.coop
                wrote last edited by
                #7

                @trwnh @reiver

                In the past I've been advocating a lot for what I called at the time "community has no boundary", basically relating to the formation of richer social graphs.

                Follow is basically "I subscribe to your feed", while the social graph might express much richer relationships than that. The current way we do it makes everything a microblog, subscribing to a single feed spout.

                We have the Relationship object.

                "I follow you as a sponsor for your work"
                "I am co-worker in this team"
                "I am a subsidiary of this organization"

                Etcetera.

                trwnh@mastodon.socialT 1 Reply Last reply
                0
                • smallcircles@social.coopS smallcircles@social.coop

                  @trwnh @reiver

                  In the past I've been advocating a lot for what I called at the time "community has no boundary", basically relating to the formation of richer social graphs.

                  Follow is basically "I subscribe to your feed", while the social graph might express much richer relationships than that. The current way we do it makes everything a microblog, subscribing to a single feed spout.

                  We have the Relationship object.

                  "I follow you as a sponsor for your work"
                  "I am co-worker in this team"
                  "I am a subsidiary of this organization"

                  Etcetera.

                  trwnh@mastodon.socialT This user is from outside of this forum
                  trwnh@mastodon.socialT This user is from outside of this forum
                  trwnh@mastodon.social
                  wrote last edited by
                  #8

                  @smallcircles @reiver Sadly the as:Relationship concept is underdefined and underutilized (and arguably duplicative of as:Link).

                  I don't think Follow makes *everything* into a microblog, though. By default, the Follow does nothing, actually. Even when you Accept Follow, it just adds them to the followers collection. You have to address and deliver to the followers collection for it to mean anything. You are free to address or deliver to arbitrary audiences that *don't* include your followers.

                  smallcircles@social.coopS 1 Reply Last reply
                  0
                  • trwnh@mastodon.socialT trwnh@mastodon.social

                    @smallcircles @reiver Sadly the as:Relationship concept is underdefined and underutilized (and arguably duplicative of as:Link).

                    I don't think Follow makes *everything* into a microblog, though. By default, the Follow does nothing, actually. Even when you Accept Follow, it just adds them to the followers collection. You have to address and deliver to the followers collection for it to mean anything. You are free to address or deliver to arbitrary audiences that *don't* include your followers.

                    smallcircles@social.coopS This user is from outside of this forum
                    smallcircles@social.coopS This user is from outside of this forum
                    smallcircles@social.coop
                    wrote last edited by
                    #9

                    @trwnh @reiver

                    True about Follow. There are some motivating use cases in ActivityStreams that might be hardened in their design to become like standardized protocol capabilities one can rely on, some business/application domain specific. And then follow/unfollow might be formalized as a robust mechanism for publish/subscribe to another actor in your social graph.

                    https://www.w3.org/TR/activitystreams-vocabulary/#motivations

                    1 Reply Last reply
                    0
                    • mariusor@metalhead.clubM mariusor@metalhead.club

                      @reiver that information should exist in the form of the Follow/Accept activities that are in the participating actors' inbox/outboxes.

                      reiver@mastodon.socialR This user is from outside of this forum
                      reiver@mastodon.socialR This user is from outside of this forum
                      reiver@mastodon.social
                      wrote last edited by
                      #10

                      @mariusor

                      Agreed.

                      But, it would also be nice to have it in the 'followers' and 'following' collection pages.

                      mariusor@metalhead.clubM 1 Reply Last reply
                      0
                      • trwnh@mastodon.socialT trwnh@mastodon.social

                        @reiver This is claiming the actors themselves were published at the given datetime, which is probably not what you want.

                        I think what you want is a collection of actual follower/following relationships, or possibly a collection of Follow activities, or possibly a collection of subscription records. Those can have a "published" datetime and be understood correctly as when the relation was created (instead of when the actor was created).

                        reiver@mastodon.socialR This user is from outside of this forum
                        reiver@mastodon.socialR This user is from outside of this forum
                        reiver@mastodon.social
                        wrote last edited by
                        #11

                        @trwnh

                        I meant to use "url" rather than "id" in that sample code I wrote.

                        But, your broader point is still correct. I do more or less want a collection of Follow and Accept[Follow] activities.

                        trwnh@mastodon.socialT steve@social.technoetic.comS 2 Replies Last reply
                        0
                        • reiver@mastodon.socialR reiver@mastodon.social

                          @mariusor

                          Agreed.

                          But, it would also be nice to have it in the 'followers' and 'following' collection pages.

                          mariusor@metalhead.clubM This user is from outside of this forum
                          mariusor@metalhead.clubM This user is from outside of this forum
                          mariusor@metalhead.club
                          wrote last edited by
                          #12

                          @reiver but the proposal you're suggesting is so incompatible with anything ActivityPub related or Activity vocabulary in general, that it's not really tenable.

                          I think we all need to start thinking of the social API of ActivityPub, not as a graphql correspondent, where API callers get all their information in one request, but as one (of many) source of truth, on top of which we layer some other abstraction that offers the elements that we want to show.

                          So it's less about presenting users the followers collections directly, but more about extracting meaningful information from that collection and collate it with other elements form their inbox/outbox.

                          reiver@mastodon.socialR 1 Reply Last reply
                          0
                          • mariusor@metalhead.clubM mariusor@metalhead.club

                            @reiver but the proposal you're suggesting is so incompatible with anything ActivityPub related or Activity vocabulary in general, that it's not really tenable.

                            I think we all need to start thinking of the social API of ActivityPub, not as a graphql correspondent, where API callers get all their information in one request, but as one (of many) source of truth, on top of which we layer some other abstraction that offers the elements that we want to show.

                            So it's less about presenting users the followers collections directly, but more about extracting meaningful information from that collection and collate it with other elements form their inbox/outbox.

                            reiver@mastodon.socialR This user is from outside of this forum
                            reiver@mastodon.socialR This user is from outside of this forum
                            reiver@mastodon.social
                            wrote last edited by
                            #13

                            @mariusor

                            The information in the followers and followings collections is already in the outbox.

                            Why bother with the followers and followings collection if they are not the source-of-truth, and we could just iterate through the outbox instead?

                            To me they (the followers and followings collections) seem like a "projection" of (some of) the data in the outbox — to make things more tractable and developer-friendly.

                            mariusor@metalhead.clubM 1 Reply Last reply
                            0
                            • reiver@mastodon.socialR reiver@mastodon.social

                              @mariusor

                              The information in the followers and followings collections is already in the outbox.

                              Why bother with the followers and followings collection if they are not the source-of-truth, and we could just iterate through the outbox instead?

                              To me they (the followers and followings collections) seem like a "projection" of (some of) the data in the outbox — to make things more tractable and developer-friendly.

                              mariusor@metalhead.clubM This user is from outside of this forum
                              mariusor@metalhead.clubM This user is from outside of this forum
                              mariusor@metalhead.club
                              wrote last edited by
                              #14

                              @reiver well, I disagree about iterating through outbox to infer the followers collection. ActivityPub describes an exact behaviour that results in an actor being added to it.

                              Having that logic implemented in every client feels absurd.

                              But having logic to compute the time for "follower since" from an outbox/inbox in every client that wants to display it seems less absurd (to me). I can understand if you don't.

                              BTW, I'm not saying that having that information in the followers/following collection is not worth it, but that the change required to have that happen, moves you away from ActivityPub into maybe ActivityPub v2, or something else all together.

                              1 Reply Last reply
                              0
                              • reiver@mastodon.socialR reiver@mastodon.social

                                Something missing from 'followers' and 'following' collections.

                                1/

                                ActivityPub 'followers' and 'following' collections tend to be missing an important piece of information —

                                The date-time when person A followed person B.

                                There are certain use-cases where this matters.

                                You can see an example of this information missing in what Mastodon includes in the attached screen-shot.

                                #ActivityPub #ActivityStreams #FediDev

                                suetanvil@freeradical.zoneS This user is from outside of this forum
                                suetanvil@freeradical.zoneS This user is from outside of this forum
                                suetanvil@freeradical.zone
                                wrote last edited by
                                #15

                                @reiver

                                Tangential to the main discussion, I'd like to point out that folks here get *very* nervous when this kind of data gets collected and you need to show that you've very carefully thought through how to keep from enabling harassment.

                                reiver@mastodon.socialR 1 Reply Last reply
                                0
                                • reiver@mastodon.socialR reiver@mastodon.social

                                  @trwnh

                                  I meant to use "url" rather than "id" in that sample code I wrote.

                                  But, your broader point is still correct. I do more or less want a collection of Follow and Accept[Follow] activities.

                                  trwnh@mastodon.socialT This user is from outside of this forum
                                  trwnh@mastodon.socialT This user is from outside of this forum
                                  trwnh@mastodon.social
                                  wrote last edited by
                                  #16

                                  @reiver I guess thinking about it a bit more, the reason it can't really be Follow or Accept Follow activities on its own is that any future Reject Follow may or may not exist without your knowledge. So there needs to be an entity separate from the activities to act as a sort of "record" of the current state inherent to a resource rather than a "record" of the state change inherent to some action.

                                  1 Reply Last reply
                                  0
                                  • reiver@mastodon.socialR reiver@mastodon.social

                                    @trwnh

                                    I meant to use "url" rather than "id" in that sample code I wrote.

                                    But, your broader point is still correct. I do more or less want a collection of Follow and Accept[Follow] activities.

                                    steve@social.technoetic.comS This user is from outside of this forum
                                    steve@social.technoetic.comS This user is from outside of this forum
                                    steve@social.technoetic.com
                                    wrote last edited by
                                    #17

                                    @reiver @trwnh Do you want to record when A offered to Follow B or when the relationship was actually established (after an Accept/Follow)? If it's the latter, if you change "url" to "href" in your second example, it would imply AS2 Links and the `published` property would be for the Link itself (when the relationship was created) rather than the original Follow activity.

                                    trwnh@mastodon.socialT reiver@mastodon.socialR 2 Replies Last reply
                                    0
                                    • steve@social.technoetic.comS steve@social.technoetic.com

                                      @reiver @trwnh Do you want to record when A offered to Follow B or when the relationship was actually established (after an Accept/Follow)? If it's the latter, if you change "url" to "href" in your second example, it would imply AS2 Links and the `published` property would be for the Link itself (when the relationship was created) rather than the original Follow activity.

                                      trwnh@mastodon.socialT This user is from outside of this forum
                                      trwnh@mastodon.socialT This user is from outside of this forum
                                      trwnh@mastodon.social
                                      wrote last edited by
                                      #18

                                      @steve @reiver sadly as:published is defined for Object, not Link. since they're currently disjoint this won't be valid. i think a Relationship is the next closest thing, but that has its own open issues right now...

                                      steve@social.technoetic.comS 1 Reply Last reply
                                      0
                                      • steve@social.technoetic.comS steve@social.technoetic.com

                                        @reiver @trwnh Do you want to record when A offered to Follow B or when the relationship was actually established (after an Accept/Follow)? If it's the latter, if you change "url" to "href" in your second example, it would imply AS2 Links and the `published` property would be for the Link itself (when the relationship was created) rather than the original Follow activity.

                                        reiver@mastodon.socialR This user is from outside of this forum
                                        reiver@mastodon.socialR This user is from outside of this forum
                                        reiver@mastodon.social
                                        wrote last edited by
                                        #19

                                        @steve @trwnh

                                        The latter would be fine for the use-cases I had in mind

                                        .

                                        1 Reply Last reply
                                        0
                                        • trwnh@mastodon.socialT trwnh@mastodon.social

                                          @steve @reiver sadly as:published is defined for Object, not Link. since they're currently disjoint this won't be valid. i think a Relationship is the next closest thing, but that has its own open issues right now...

                                          steve@social.technoetic.comS This user is from outside of this forum
                                          steve@social.technoetic.comS This user is from outside of this forum
                                          steve@social.technoetic.com
                                          wrote last edited by
                                          #20

                                          @trwnh @reiver Good point. I suppose it would need a extension property. I thought `published` was an awkward semantic stretch anyway.

                                          trwnh@mastodon.socialT 1 Reply Last reply
                                          0

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