Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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
We Distribute
  1. Home
  2. General Discussion
  3. What if...

What if...

Scheduled Pinned Locked Moved General Discussion
activitypub
70 Posts 18 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.
  • silverpill@mitra.socialS silverpill@mitra.social

    @mariusor @steve @evan @raphael

    I don't see any reason to call this a generic server if it doesn't support extensions. Just a headless server that implements AP C2S

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

    @silverpill @mariusor @evan @raphael You're starting to get it! 😉 You quoted "extensions" in the previous post and that was good since the way you think of "extensions" is likely very different than my view. The generic servers I'm discussing *are* highly "extensible" (more than most current Fedi implementations).

    1 Reply Last reply
    0
    • silverpill@mitra.socialS silverpill@mitra.social

      @mariusor @steve @evan @raphael

      I don't see any reason to call this a generic server if it doesn't support extensions. Just a headless server that implements AP C2S

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

      @silverpill what are extensions exactly? Are you talking about FEPs that proscribe behaviour alongside structure, or ActivityPub extensions as allowed by JSON-LD.

      The FEPs that proscribe behaviour can't ever be done in a "generic" way, and I'm betting you already know that and you're just being facetious.

      However the JSON-LD dynamic structure can be reasoned about generically from an ActivityPub point of view using the points I made above: storage to disk, dispatch to recipients.

      If you plug smart clients on top of that that have the specific logic you want, you're all the way there to what Steve was talking about.

      @steve @evan @raphael

      silverpill@mitra.socialS 1 Reply Last reply
      0
      • silverpill@mitra.socialS silverpill@mitra.social

        @mariusor @steve @evan @raphael

        I don't see any reason to call this a generic server if it doesn't support extensions. Just a headless server that implements AP C2S

        raphael@mastodon.communick.comR This user is from outside of this forum
        raphael@mastodon.communick.comR This user is from outside of this forum
        raphael@mastodon.communick.com
        wrote last edited by
        #43

        @silverpill

        It is a generic server *because* it is focused only on the ActivityPub API, unlike most of the existing services that interop only with specific APIs (Mastodon's , Lemmy's).

        A "generic server", in my view, is one that can take any type of activity posted to a box, and dispatch to the proper targets. The ActivityPub API defines only what to with like/announce/follow. Anything else is up to the application. That's the extensible part.

        @mariusor @steve @evan

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

          @silverpill what are extensions exactly? Are you talking about FEPs that proscribe behaviour alongside structure, or ActivityPub extensions as allowed by JSON-LD.

          The FEPs that proscribe behaviour can't ever be done in a "generic" way, and I'm betting you already know that and you're just being facetious.

          However the JSON-LD dynamic structure can be reasoned about generically from an ActivityPub point of view using the points I made above: storage to disk, dispatch to recipients.

          If you plug smart clients on top of that that have the specific logic you want, you're all the way there to what Steve was talking about.

          @steve @evan @raphael

          silverpill@mitra.socialS This user is from outside of this forum
          silverpill@mitra.socialS This user is from outside of this forum
          silverpill@mitra.social
          wrote last edited by
          #44

          @mariusor @steve @evan @raphael An extension is a protocol extension. Specifically, I talked about activity types that are not mentioned in ActivityPub.

          Here is a side effect of a Like activity:

          The side effect of receiving this in an outbox is that the server SHOULD add the object to the actor's liked Collection.

          Now imagine that you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect.

          A generic server should be able to do that.

          raphael@mastodon.communick.comR steve@social.technoetic.comS 2 Replies Last reply
          0
          • silverpill@mitra.socialS silverpill@mitra.social

            @mariusor @steve @evan @raphael An extension is a protocol extension. Specifically, I talked about activity types that are not mentioned in ActivityPub.

            Here is a side effect of a Like activity:

            The side effect of receiving this in an outbox is that the server SHOULD add the object to the actor's liked Collection.

            Now imagine that you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect.

            A generic server should be able to do that.

            raphael@mastodon.communick.comR This user is from outside of this forum
            raphael@mastodon.communick.comR This user is from outside of this forum
            raphael@mastodon.communick.com
            wrote last edited by
            #45

            @silverpill

            I'm really not following this logic: you are saying "a generic HTTP server should be able to serve WebDAV requests".

            Yes, HTTP servers should be able to serve WebDAV requests, *provided* they implement the extension.

            It doesn't mean that they *have* to implement the extension. And an HTTP server that does not support the extension does not make non-HTTP compliant.

            @mariusor @steve @evan

            silverpill@mitra.socialS 1 Reply Last reply
            0
            • raphael@mastodon.communick.comR raphael@mastodon.communick.com

              @silverpill

              I'm really not following this logic: you are saying "a generic HTTP server should be able to serve WebDAV requests".

              Yes, HTTP servers should be able to serve WebDAV requests, *provided* they implement the extension.

              It doesn't mean that they *have* to implement the extension. And an HTTP server that does not support the extension does not make non-HTTP compliant.

              @mariusor @steve @evan

              silverpill@mitra.socialS This user is from outside of this forum
              silverpill@mitra.socialS This user is from outside of this forum
              silverpill@mitra.social
              wrote last edited by
              #46

              @raphael @mariusor @steve @evan Your example is incorrect because activity types are not like HTTP verbs. Like and EmojiReact are part of the same protocol, both are widely used in Fediverse. Not sure what is the point of twisting the meaning of words to make limitations of certain software appear as non-limitations.

              raphael@mastodon.communick.comR 1 Reply Last reply
              0
              • silverpill@mitra.socialS silverpill@mitra.social

                @raphael @mariusor @steve @evan Your example is incorrect because activity types are not like HTTP verbs. Like and EmojiReact are part of the same protocol, both are widely used in Fediverse. Not sure what is the point of twisting the meaning of words to make limitations of certain software appear as non-limitations.

                raphael@mastodon.communick.comR This user is from outside of this forum
                raphael@mastodon.communick.comR This user is from outside of this forum
                raphael@mastodon.communick.com
                wrote last edited by
                #47

                @silverpill

                The analogy to HTTP is adequate. "GET/POST/DELETE" are verbs, PROPFIND is a verb. It just happens that some verbs had expectations around their behavior defined on spec, others are defined on an extension.

                The same thing for AP: it says what to do about as:Like and as:Announce. If you want to attribute any special behavior for as:EmojiReact or for mitra:Subscribe, then it's up to the extension to define the behavior and get people to agree.

                @mariusor @steve @evan

                1 Reply Last reply
                0
                • silverpill@mitra.socialS silverpill@mitra.social

                  @mariusor @steve @evan @raphael

                  I don't see any reason to call this a generic server if it doesn't support extensions. Just a headless server that implements AP C2S

                  evan@cosocial.caE This user is from outside of this forum
                  evan@cosocial.caE This user is from outside of this forum
                  evan@cosocial.ca
                  wrote last edited by
                  #48

                  @silverpill @mariusor @steve @raphael

                  I think it's a fair critique and one that we should deal with.

                  However, I think it's possible to provide value where the server implements side effects of AP core, and not for any other Activity Vocabulary activities or extensions.

                  With the core AP activities, we can probably give clients most of what they need to implement "side effects" for extensions.

                  evan@cosocial.caE 1 Reply Last reply
                  0
                  • evan@cosocial.caE evan@cosocial.ca

                    @silverpill @mariusor @steve @raphael

                    I think it's a fair critique and one that we should deal with.

                    However, I think it's possible to provide value where the server implements side effects of AP core, and not for any other Activity Vocabulary activities or extensions.

                    With the core AP activities, we can probably give clients most of what they need to implement "side effects" for extensions.

                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.ca
                    wrote last edited by
                    #49

                    @silverpill @mariusor @steve @raphael

                    For example, let's say we decide that an `Arrive` activity should update the `location` property of the actor.

                    `Arrive` isn't a core activity in AP. So, instead of expecting the server to change the `location`, the client can send an additional `Update` activity to change the actor's `location` itself.

                    With CRUD activities and collection activities in core we can get a lot of this done from the client side.

                    evan@cosocial.caE 1 Reply Last reply
                    0
                    • evan@cosocial.caE evan@cosocial.ca

                      @silverpill @mariusor @steve @raphael

                      For example, let's say we decide that an `Arrive` activity should update the `location` property of the actor.

                      `Arrive` isn't a core activity in AP. So, instead of expecting the server to change the `location`, the client can send an additional `Update` activity to change the actor's `location` itself.

                      With CRUD activities and collection activities in core we can get a lot of this done from the client side.

                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.ca
                      wrote last edited by
                      #50

                      @silverpill @mariusor @steve @raphael

                      I think there's value in having a negotiation between the client and the server so the server can declare its support for side effects for extensions. A way for the server to say, "I'll handle side effects for geosocial applications". Then the client can skip implementing those side effects itself.

                      evan@cosocial.caE 1 Reply Last reply
                      0
                      • silverpill@mitra.socialS silverpill@mitra.social

                        @mariusor @steve @evan @raphael An extension is a protocol extension. Specifically, I talked about activity types that are not mentioned in ActivityPub.

                        Here is a side effect of a Like activity:

                        The side effect of receiving this in an outbox is that the server SHOULD add the object to the actor's liked Collection.

                        Now imagine that you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect.

                        A generic server should be able to do that.

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

                        @silverpill @mariusor @evan @raphael "you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect."

                        It's a direct rather than side effect, but how is that different from Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.

                        silverpill@mitra.socialS 1 Reply Last reply
                        0
                        • evan@cosocial.caE evan@cosocial.ca

                          @silverpill @mariusor @steve @raphael

                          I think there's value in having a negotiation between the client and the server so the server can declare its support for side effects for extensions. A way for the server to say, "I'll handle side effects for geosocial applications". Then the client can skip implementing those side effects itself.

                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.ca
                          wrote last edited by
                          #52

                          @silverpill @mariusor @steve @raphael

                          More powerful would be a way for clients or actors to define side effect rules for servers dynamically. "If you get an Arrive activity, set the actor's location."

                          evan@cosocial.caE 1 Reply Last reply
                          0
                          • evan@cosocial.caE evan@cosocial.ca

                            @silverpill @mariusor @steve @raphael

                            More powerful would be a way for clients or actors to define side effect rules for servers dynamically. "If you get an Arrive activity, set the actor's location."

                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.ca
                            wrote last edited by
                            #53

                            @silverpill @mariusor @steve @raphael

                            All that said, I think we can get pretty far with the core AP activities with defined side effects, and extension activities with "side effects" implemented by the client.

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

                              @silverpill @mariusor @evan @raphael "you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect."

                              It's a direct rather than side effect, but how is that different from Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.

                              silverpill@mitra.socialS This user is from outside of this forum
                              silverpill@mitra.socialS This user is from outside of this forum
                              silverpill@mitra.social
                              wrote last edited by
                              #54

                              @steve By side effect I mean anything that is not directly expressed in the activity, and EmojiReact usually doesn't specify that emojiReactions collection should be updated.

                              Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.

                              Yes, this is what I said in the beginning of this sub-thread. All side-effects should be made explicit (at least for non-standard activities).

                              @mariusor @evan @raphael

                              1 Reply Last reply
                              0
                              • silverpill@mitra.socialS silverpill@mitra.social

                                @raphael @steve @evan It relates to ActivityPub API because ActivityPub is described as an extensible protocol. If a server doesn't support "extensions", it is not a generic server.

                                evan@cosocial.caE This user is from outside of this forum
                                evan@cosocial.caE This user is from outside of this forum
                                evan@cosocial.ca
                                wrote last edited by
                                #55

                                @silverpill @raphael @steve I think that comes down to what you mean by "support".

                                I think a server that delivers extension activities, or activities with extension properties or extension types as `object` etc , locally or remotely, is "supporting" those types.

                                Implementing server-side side effects of some extensions may be a bonus, but we can build a lot of great stuff without it.

                                1 Reply Last reply
                                0
                                • evan@cosocial.caE evan@cosocial.ca

                                  @raphael @silverpill @steve I also think that Steve's vision is realisable with ActivityPub API, although I think adding optional features like search, server push and so on makes it easier.

                                  naturzukunft2026@mastodon.socialN This user is from outside of this forum
                                  naturzukunft2026@mastodon.socialN This user is from outside of this forum
                                  naturzukunft2026@mastodon.social
                                  wrote last edited by
                                  #56

                                  @steve Hi Steve,were do i find you Vision? Fredy

                                  steve@social.technoetic.comS 1 Reply Last reply
                                  0
                                  • evan@cosocial.caE evan@cosocial.ca

                                    @steve I believe in this vision.

                                    fasnix@fe.disroot.orgF This user is from outside of this forum
                                    fasnix@fe.disroot.orgF This user is from outside of this forum
                                    fasnix@fe.disroot.org
                                    wrote last edited by
                                    #57
                                    @evan @steve

                                    Isn't that what Holos.social offers (at least very similar)?
                                    steve@social.technoetic.comS evan@cosocial.caE 2 Replies Last reply
                                    0
                                    • fasnix@fe.disroot.orgF fasnix@fe.disroot.org
                                      @evan @steve

                                      Isn't that what Holos.social offers (at least very similar)?
                                      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
                                      #58

                                      @fasnix @evan AFAIK, @HolosSocial is a quite different architecture. The AP identity is bound to a phone and can't be shared with other client applications. However, I haven't used it. Let me know if this isn't correct.

                                      1 Reply Last reply
                                      0
                                      • naturzukunft2026@mastodon.socialN naturzukunft2026@mastodon.social

                                        @steve Hi Steve,were do i find you Vision? Fredy

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

                                        @naturzukunft2026 👋 I'm not exactly sure what you're asking, but there's a W3C ActivityPub API (C2S) Task Force meeting on March 19. That's where C2S extensions will be discussed. It's listed on the SocialCG events calendar.

                                        Link Preview Image
                                        Social Web Incubator Community Group - Calendar

                                        The World Wide Web Consortium (W3C) is an international community where Member organizations, a full-time staff, and the public work together to develop Web standards.

                                        favicon

                                        W3C (www.w3.org)

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

                                          What if... you had one Fedi account on a generic headless #ActivityPub server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).

                                          It seems possible... if we can improve the AP C2S API/protocol sufficiently.

                                          nathan@ublog.hurel.meN This user is from outside of this forum
                                          nathan@ublog.hurel.meN This user is from outside of this forum
                                          nathan@ublog.hurel.me
                                          wrote last edited by
                                          #60

                                          @steve@social.technoetic.com looks similar to https://activitypods.org/ approach ?

                                          steve@social.technoetic.comS 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