idk where to really put this (might turn into a blog post later or something). it’s what you might call a “hot take”, certainly a heterodox one to some parts of the broader #fediverse community. this is in response to recent discussion on “what do you want to see from AP/AS2 specs” (in context of wg rechartering) mostly devolving into people complaining about JSON-LD and extensibility, some even about namespacing in general (there was a suggestion to use UUID vocab terms. i’m not joking)

1/?

  • infinite love ⴳ@mastodon.socialOP
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    but it’s not like AS2 didn’t think of this. they wrote in this requirement: https://www.w3.org/TR/activitystreams-core/#extensibility

    > Activity Streams 2.0 implementations that wish to fully support extensions MUST support Compact URI expansion as defined by the JSON-LD specification.

    note, you aren’t required to implement all of json-ld. you just need to handle the bit where you can identify the equivalence between a uri and some arbitrary string.

    but #fediverse mostly decided this is too hard, and ignore context.

    21/?

    • infinite love ⴳ@mastodon.socialOP
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      now there’s a few thoughts i have here:

      #fediverse culturally seems to ignore a lot of other things as well. they ignore http caching for example. they ignore http status codes like 301 Permanent Redirect. these requirements are arguably more important than context, and they still get ignored.

      in fact, most fedi software is mostly just reimplementing Web browsers, but with what they consider to be the “bare minimum” of compliance. and the web they let you browse is smaller than the Web

      22/?

      • infinite love ⴳ@mastodon.socialOP
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        are these things part of the “protocol”? how far does the “protocol” extend to cover? because, as we established, #ActivityPub is not enough to build a fully functional #fediverse – and a lot of extensions and additional specs are things that ought to be included in this “protocol”, insofar as this “protocol” is desirable.

        the other thought:

        if you ignore things, that means there are cases you’re not handling, losing out on robustness. ignoring context is to ignore shared understanding.

        23/?

        • infinite love ⴳ@mastodon.socialOP
          link
          fedilink
          arrow-up
          1
          ·
          3 months ago

          so what do you actually lose out on when you ignore json-ld context?

          you first have to fall back to the “implicit context”, where AS2 terms are generally agreed upon, but nothing else is guaranteed.

          take something like discoverable from mastodon. what does it mean? well, it means whatever is defined in the mastodon codebase and documentation. so we could represent that as http://joinmastodon.org/ns#discoverable or shorten that with a prefix. but if we do, then most #fediverse will choke on that.

          24/?

          • infinite love ⴳ@mastodon.socialOP
            link
            fedilink
            arrow-up
            1
            ·
            3 months ago

            this is because #fediverse is ignoring context. the implicit context is that discoverable means <http://joinmastodon.org/ns#discoverable> but they don’t know that. so they can’t actually handle the extension in its fullest form.

            what AS2 calls out as “full support for extensions” requires being able to identify this equivalence and handle it. again, fedi does… let’s call it “partial support”.

            the “implicit context” is now a hardcoded but unstated requirement of this “protocol”.

            25/?

            • infinite love ⴳ@mastodon.socialOP
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              3 months ago

              which is to say: #fediverse software generally expects LD-aware producers to compact against their own “implicit context”, but they don’t always define that context. it’s left undeclared and undefined. or it actually *is* declared, but if you give them their own expanded form then they’ll not understand it.

              it’s like someone saying hey, when i say “knows”, i mean “is familiar with”

              and then you say “john is familiar with sally”

              and they respond WTF? what does “is familiar with” mean?

              26/?

              • infinite love ⴳ@mastodon.socialOP
                link
                fedilink
                arrow-up
                1
                ·
                3 months ago

                it’s like… you literally just told me “knows” = “is familiar with”, but because of your own ignoring of your own context, you can’t handle me saying “is familiar with”?

                in this way, as long as the #fediverse remains ignorant of context, they will remain fragile and without any sort of robustness in their “protocol”.

                the alternative they have is to extend the only context they share, which is the AS2 one. but this doesn’t solve the problem. it just officially blesses a single term.

                27/?

                • infinite love ⴳ@mastodon.socialOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  3 months ago

                  if you want to turn “activitystreams” into a “protocol” then sure i guess you can do that

                  but why? what are the needs we’re trying to address here? of what purpose is your “protocol”? social networking? you want a “social networking protocol”?

                  before you convince people that a “social networking protocol” is necessary, you have to convince people that a “social network” is necessary.

                  but more importantly, you are contrasting that “social networking protocol” against the “social Web”.

                  28/?

                  • infinite love ⴳ@mastodon.socialOP
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    3 months ago

                    it is my personal belief that this whole “closed-world social network” vs “open-world social Web” thing is leading to a big disconnect that makes addressing people’s needs harder.

                    because, to be on the “network”, you neglect being on the “Web”.

                    sure, your software might still publish your “posts” as Web resources, but that’s it. you’re not actually granted control or ability to manage Web resources for yourself.

                    and that’s why #ActivityPub C2S is being neglected, among many other things

                    29/?