- From: a <a@trwnh.com>
- Date: Sat, 4 Mar 2023 02:04:22 -0600
- To: Bob Wyman <bob@wyman.us>
- Cc: Johannes Ernst <johannes.ernst@gmail.com>, public-swicg@w3.org
- Message-ID: <CACG-3GhJ=px+yzxeFdW6WSTTvXtkQK56L2c1d-p4eHEL-jj-Wg@mail.gmail.com>
> we should at least consider whether, after five years, the Activity specs are in need of clean-up, modification, or extension Yes, but we should also consider *why* any of these cleanups, modifications, or extensions are "need"ed, and for what purpose and what use-case. > The purpose of standards is to enable interoperation between independent implementations without the need to understand the peculiarities of individual implementations. Such implementation-independent interoperation is far from what we have in the SocialWeb today. The best we can say about implementations like Mastodon is that they are "inspired by" ActivityStreams/ActivityPub. That's not enough to ensure standards-based interoperation. Would we then say that these implementations are "inspired by" HTTP, and not actually following the HTTP standard? It's certainly true that Mastodon et al aren't implementing ActivityPub fully (as a generic Server that delivers activities generated by Clients), but they're still complying (more or less) with the spec requirements. They just add extra requirements on top. These requirements may or may not be shared between any two given projects, because the two projects are not necessarily operating in the same conceptual space. So, any "interoperability" needs to establish some kind of conceptual space first, or else there is really nothing to discuss here. We may consider the conceptual space occupied by Mastodon to be "Twitter-like social media platforms", but there's more to ActivityPub than Twitter clones. We might refer to "the Mastodon conformance profile" -- that actors must have a "username" and that this actor represents a "user" or "profile", that you must sign your messages with the old draft-cavage-http-signatures-08, that you must include a tag of type Mention even if you don't actually mention anyone in the content, and so on. We might similarly refer to any other software's "conformance profile" as the set of requirements and expectations that must be maintained for interoperating with that software. The task, or challenge, is to then try and find commonalities and overlaps between these conformance profiles and see how many (or how few) distinct conceptual spaces you can collapse into. Hint: it's not going to be just one. > the use of WebFinger <https://www.rfc-editor.org/rfc/rfc7033.html>and Web SIgnature needs clarification - https://docs.joinmastodon.org/spec/webfinger - https://docs.joinmastodon.org/spec/security This is assuming you care about the "Mastodon conformance profile", of course. An equally valid option would be to *not* require usernames, and *not* use an outdated draft of HTTP Signatures. > I believe that in order to address a wide-variety of privacy and related issues concerning appropriate use of data, we should at least profile how a Rights Expression Language, such as the W3C's ODRL <https://www.w3.org/TR/odrl-model/>, should be used to allow creators of objects to grant extended usage permissions to others. This is something you can add to a "conformance profile" if you wish, or you may just use it as-is with the existing extension workflow. It is not something you can enforce universally, and certainly not outside of any conformance profile. > We should also consider the use of instance-independent identifiers, such IPFS's Content Identifiers (CID) <https://docs.ipfs.tech/concepts/content-addressing/#what-is-a-cid> in order to allow objects to be stored and retrieved independent of any specific instance. Supporting content, not location, based identifiers would make it easier to determine when duplicate objects are received from multiple remote servers and it would help in account migration since old posts would no longer be bound to one's old instance. Under which authority and namespace? IPFS is hash-based and will change if the document is updated. > In some cases, the current spec seems to provide unnecessary variety with little benefit -- which may explain why only "Note" and "Question" seem to be implemented, but not many of the other object types are implemented except by specialist systems. Can someone explain why "Article," "Document," and "Note" are all first-class objects instead of Article and Note being subtypes of Document? And, if my personally-developed client is talking to a server, like Mastodon, that doesn't support anything but Note objects, is there some way that my client can discover that the server either won't accept, or will rewrite, anything other than a Note object or Question activity? "Little benefit" here is only in the purview of the "Mastodon conformance profile". Mastodon only cares about Notes because it is copying Twitter. No, there's no way of knowing what the other server supports except by some form of capability negotiation. You could probably define "conformance profiles" and declare them somehow in your host-meta or nodeinfo. As for the Article / Document / Note stuff, the reason Article and Note aren't subtypes of Document is because they are "native" (just text containers), whereas a Document is something "external" (representing a file). As for the distinction between an "Article" and a "Note"... that debate has been going on for far longer. > AS2 defines several meta-statements, such as "Like" and "Dislike" as first-class objects. It seems to me that the spec would be simplified if it explicitly supported W3C Annotations <https://www.w3.org/TR/annotation-model/>, or a profile of that standard, and then said that Like, Dislike, and other statements "about" an object should be provided as Annotations. The concept of a "like" is inherited from social media platforms, where it represents more than just a statement about the object. It gets added to a collection and counter somewhere to be shown as social proof or used for other calculations. > To me, this indicates that more work on the specs is required. Hopefully I've shown why the specs are fine, and it is instead the "conformance profiles" that should be built (after a conceptual space is identified).
Received on Saturday, 4 March 2023 08:05:14 UTC