GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    infinite love ⴳ (trwnh@mastodon.social)'s status on Wednesday, 25-Sep-2024 00:43:48 JST infinite love ⴳ infinite love ⴳ

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

    In conversation about 8 months ago from mastodon.social permalink
    • Embed this notice
      Matthias Pfefferle (pfefferle@mastodon.social)'s status on Wednesday, 25-Sep-2024 00:43:48 JST Matthias Pfefferle Matthias Pfefferle
      in reply to

      @trwnh you should definitely use a blog :)

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Wednesday, 25-Sep-2024 00:49:27 JST infinite love ⴳ infinite love ⴳ
      in reply to
      • Matthias Pfefferle

      @pfefferle managing blogs is so annoying though :(

      In conversation about 8 months ago permalink
    • Embed this notice
      Matthias Pfefferle (pfefferle@mastodon.social)'s status on Wednesday, 25-Sep-2024 00:51:32 JST Matthias Pfefferle Matthias Pfefferle
      in reply to

      @trwnh 😋

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:33 JST infinite love ⴳ infinite love ⴳ
      in reply to

      now at this point you're probably wondering what this has to do with social networking. and on a practical level, if you're just interested in building a "social networking protocol", this is mostly all extraneous.

      the part that implementers have to deal with is the notion of "context" and, more specifically, how json-ld handles it, and even more specifically, what to do when two shorthand terms conflict.

      remember, the open-world solution is namespacing. what does closed-world do?

      18/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:33 JST infinite love ⴳ infinite love ⴳ
      in reply to

      well, let's look at `actor`. in AS2 terms it refers to the entity that performed an activity. but in schema.org terms it refers to someone playing a role in a movie or other performance.

      in a closed-world sense, you don't want to be aware of context. you don't want to have to deal with it. but even so, you still have an "implicit context" that you are using, based on how you define each term in your own understanding, what you hardcode into your software.

      19/?

      In conversation about 8 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        Schema.org - Schema.org
        Schema.org is a set of extensible schemas that enables webmasters to embed structured data on their web pages for use by search engines and other applications.
      2. No result found on File_thumbnail lookup.
        performance.in - このウェブサイトは販売用です! - performance リソースおよび情報
        このウェブサイトは販売用です! performance.in は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、performance.inが全てとなります。あなたがお探しの内容が見つかることを願っています!
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:34 JST infinite love ⴳ infinite love ⴳ
      in reply to

      when i say "john knows sally", there are several ambiguities. we can solve ambiguities by disambiguating. one way to disambiguate is to be explicit about what any term or symbol means. one way to be explicit is to use uniform identifiers.

      in particular, http/https uris have some convenient properties

      - they have authority, so you can qualify an id based on who's assigning it.
      - you can use the authority component as a namespace
      - you can fetch the uri and it might return something useful

      14/?

      In conversation about 8 months ago permalink

      Attachments


    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:34 JST infinite love ⴳ infinite love ⴳ
      in reply to

      so let's say john is example.com/john and sally is example.com/sally

      what do we use for "knows"?

      well, there are multiple senses of the word "knows":

      1) is aware of the existence of
      2) is familiar with
      3) is having sexual intercourse with

      we mean definition 1. so we might use example.com/vocab/knows/1

      now we have the statement:

      <example.com/john> <example.com/vocab/knows/1> <example.com/sally>

      this is unambiguous, but we can go one step further: we can provide definitions at the uri

      15/?

      In conversation about 8 months ago permalink

      Attachments






    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:34 JST infinite love ⴳ infinite love ⴳ
      in reply to

      say some random person sees the statement above. they don't know who john or sally are, and they don't know what "knows" means in this context.

      well, if we do a little work upfront, they actually *can* know what all of these terms mean, **without ever asking us directly**

      we put a resource on example.com for each of these terms, and each resource describes the subject of that identifier -- it is a "resource descriptor".

      the resource for knows/1 can define itself explicitly with a schema

      16/?

      In conversation about 8 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        Example Domain
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:34 JST infinite love ⴳ infinite love ⴳ
      in reply to

      so at minimum we have the following schema for knows/1

      - how to represent it in plain text: "knows"
      - how to define it: "is aware of the existence of"

      the RDF Schema gives us `label` and `comment`, as defined by the RDF Schema.

      - :label "knows"
      - :comment "is aware of the existence of"

      but we need to know what "label" and "comment" mean as well! not to worry, we qualify those terms with the rdfs namespace:

      - rdfs:label "knows"
      - rdfs:comment "is aware of the existence of"

      17/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:35 JST infinite love ⴳ infinite love ⴳ
      in reply to

      the way extensibility works in a closed-world #fediverse is that "every implementer talks to every other implementer". or maybe there is a central registry of extensions that everyone submits to their authority, as stewards of the "protocol" that is used to build the "network". this trades out the n:n relation between implementers and other implementers, for an n:1 relation between implementers and the central registry.

      the way extensibility works in an open-world #Web is you just do it.

      11/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:35 JST infinite love ⴳ infinite love ⴳ
      in reply to

      the challenge in closed-world systems is how to scale communication and coordination as the number of implementers grows. without a central authority, it almost inevitably leads to power coalescing in the hands of the few most popular or largest implementations, who become the "de facto" standard and get to mostly do what they want, and everyone else mostly has to follow if they want to be compatible.

      sound familiar? it should, because this is the model that the #fediverse follows today.

      12/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:35 JST infinite love ⴳ infinite love ⴳ
      in reply to

      indeed, the #fediverse is more closed-world than open-world. you see this in the so-called "rejection" of json-ld among presumably the majority of fedi implementations. because for the most part, AS2 lets you ignore json-ld. it only matters for extensibility, and (specific criticisms of json-ld aside) json-ld also mostly allows you to ignore it.

      so why do people still complain about it?

      well, there is the concept of "context" in json-ld, which represents shared understanding.

      13/?

      In conversation about 8 months ago permalink

      Attachments


    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:36 JST infinite love ⴳ infinite love ⴳ
      in reply to

      this is the fundamental divide between #fediverse thinking and #Web thinking, where #ActivityPub straddles the line between both.

      i've seen it said that the "open-world assumption" at the foundation of the Web is actually an undesirable thing for a "social networking protocol", and as a consequence, specs built on that open-world assumption are "completely unsuitable" for that "protocol".

      but do we need a "social networking protocol"? do we even need "social networks" in the first place?

      9/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:36 JST infinite love ⴳ infinite love ⴳ
      in reply to

      to build the #fediverse as its own "social networking protocol" then seemingly requires that we instead go with the closed-world assumption, contrary to the #Web

      it requires ahead-of-time communication and coordination, where implementers need to be willing and available to talk to any other implementer, and this load grows with every new implementer.

      it requires you to be aware of other extensions, present and future, because your extension might conflict with someone else's extension.

      10/?

      In conversation about 8 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        implementer.it
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:37 JST infinite love ⴳ infinite love ⴳ
      in reply to

      when #ActivityPub was being standardized alongside AS2 it basically had two compelling reasons for what would become the #fediverse to adopt it:

      - it was built on AS2, which was an evolution of AS1, which was already being used. so it wasn't hard to make the jump.

      - it made followers-only posts possible, because while atom feeds *could* do this, it was wildly inconvenient to actually do it that way. posting something private to an inbox is a lot simpler, no juggling access control tokens.

      6/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:37 JST infinite love ⴳ infinite love ⴳ
      in reply to

      but beyond that, what does #ActivityPub actually do for #fediverse as a "network" "protocol"? basically nothing. you have a basic mechanism for delivering activities directly to subscribers, but no specified shape or structure for that payload. and you still need a lot of other specs to end up with something that talks to the "network". even with AS2 vocab, you need more vocab extensions to express things you want to.

      simply put, AP is not enough for a "protocol" to build a "network".

      7/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:37 JST infinite love ⴳ infinite love ⴳ
      in reply to

      but before you build a "protocol" for a "network", consider: what even is a "network", in this context? and, here's the hot take: do you even *want* that kind of "network"? do you want a separate reified #fediverse network?

      because the answer that #ActivityPub gives is actually a different one. There is no "AP network", because AP as a protocol is not enough to build a concrete network. it is intended to provide, and exists in context of, the larger #Web.

      8/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:38 JST infinite love ⴳ infinite love ⴳ
      in reply to

      i think this disconnect between #ActivityPub and #fediverse honestly goes a lot deeper than people might realize. and that is because the problem AP tries to solve is actually completely different from what fedi is trying to do.

      the concept of a nebulous but mostly singular "network" or "protocol" (made up of partially overlapping parts) is core to what i'll call "fedi mindset". the assumption is that you can join the fedi "network" by implementing the fedi "protocol". and that AP is this.

      3/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:38 JST infinite love ⴳ infinite love ⴳ
      in reply to

      but this assumption starts to break down when you look a little closer.

      first, consider #ActivityPub C2S. why is there close to zero usage of this in #fediverse software? simple: it doesn't solve any needs for building a "network" "protocol".

      now consider S2S. why are there zero compliant impls in fedi? because AP as specified doesn't address the needs of fedi. what does fedi need? well, i find it telling that the "real" reason AP was adopted was... to implement followers-only posts.

      4/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:38 JST infinite love ⴳ infinite love ⴳ
      in reply to

      which is to say: the primary reason that #ActivityPub is used (to the extent you can say it is being used at all) in the #fediverse is mostly historical.

      fedi grew out of a long line of open protocols, and before AP was adopted, it was at the point where people primarily used "activity streams" as their vocabulary and data model, stuffed into atom feeds. atom feeds don't do private posts unless you make an entirely new access-controlled feed, possibly with a token of some sort. hence, AS2.

      5/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:39 JST infinite love ⴳ infinite love ⴳ
      in reply to

      the main contention is a disconnect between #ActivityPub as a spec and #fediverse as a protocol/network. a lot of problems cited were with the fediverse as implemented, wishful thinking about what could be changed in spec, many backwards-incompatible, mostly in service of making fediverse impl less painful.

      there is a recurring refrain about implementers deciding they don't care to implement AP as specified, and that this indicates a problem with the spec, not a problem with implementers.

      2/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:59 JST infinite love ⴳ infinite love ⴳ
      in reply to
      • context // text

      what json-ld does, or what it allows you to do, is explicitly declare a `@context` that is equivalent to your "implicit context".

      this works fine if there is only one declaration that is shared exactly between two parties, but it gets complicated when the "implicit context" differs or isn't an exact match.

      this means that there cannot ever be a singular #fediverse network, because the "implicit context" differs between each software project. the only guaranteed overlap is the AS2 one.

      20/?

      In conversation about 8 months ago permalink
    • Embed this notice
      infinite love ⴳ (trwnh@mastodon.social)'s status on Thursday, 26-Sep-2024 16:36:59 JST infinite love ⴳ infinite love ⴳ
      in reply to

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

      In conversation about 8 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: www.w3.org
        Activity Streams 2.0

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.