Home | Notifications | New Note | Local | Federated | Search | Logout
Note Detail
a@trwnh@socialhub.activitypub.rocks (2026-05-12 12:29:34)
Also available at:
https://lists.w3.org/Archives/Public/public-swicg/2026May/0017.html
https://lists.w3.org/Archives/Public/public-socialweb/2026May/0002.html
Context:
https://github.com/w3c/activitystreams/issues/595
https://lists.w3.org/Archives/Public/public-swicg/2026May/0015.html
https://lists.w3.org/Archives/Public/public-socialweb/2026May/0001.html
In earlier discussion regarding how people expect a Link to work, it seems to me like we uncovered a sort of X-Y issue. Hong Minhee, who develops the Fedify library, indicated that overriding the term definition of "href" to be a literal string instead of a URI reference was intended to avoid dereferencing ids that don't have AS2 representations. The inherent assumption is that any id will have an AS2 representation, but this isn't a valid assumption, because non-AS2 resources exist on the Web (and in fact vastly outnumber AS2 resources).
Across the specification documents for AS2-Core, AS2-Vocab, and AP, the only remotely relevant language I could find was in AP Section 3.2 "Retrieving objects":
The HTTP GET method may be dereferenced against an object's id property to retrieve the activity. Servers MAY use HTTP content negotiation as defined in [RFC7231] to select the type of data to return in response to a request, but MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams", and SHOULD also present the ActivityStreams representation in response to application/activity+json as well. The client MUST specify an Accept header with the application/ld+json; profile="https://www.w3.org/ns/activitystreams" media type in order to retrieve the activity. Servers MAY implement other behavior for requests which do not comply with the above requirement
From this, we can see that there is no explicit requirement for every id in an AS2 document to be dereferenceable with an AS2 representation. At most, we can say that ActivityPub requires "c
Reply
---Replies---
Steve Bate@stevebate@socialhub.activitypub.rocks (2026-05-12 22:40:19)
trwnh:fundamental issue about how any link is expected to be used, even (or especially) direct linked data references as are present everywhere in an AS2 document
It difficult to answer because there are different mental models of AS2:
JSON documents (constrained to look like JSON-LD, but not actually meant to be JSON-LD)
JSON-LD serialization of RDF subgraphs (for communication, storage and other purposes).
Some kind of HTML-ish/WWW document
…
If AS2 is serialized RDF then a “link” is an edge in the RDF graph. A JSON-LD “direct link” just means the RDF object was not embedded in a specific subgraph serialization. Note that, even if the RDF object is embedded in the serialization, there’s still a link when the representation is deserialized back to RDF.
I agree that an AS2 link, in this RDF sense, is not required to refer to resources with a specific media type. In other words, they are not required to only reference AS2 documents.
(Side note: from this perspective, as:Link is a reified “link” or relationship. The as:Link objects’s href property should be an @id, because it’s a reference to a resource. See also: When use a literal for a URI in Linked Data)
If AS2 is considered to be plain JSON, then the meaning of “link” becomes relatively muddled for me. It’s even more muddled if one interprets AS2 as HTML rather than Linked Data. Note that AS2 can be used in ways that have no relationship to the HTML/HTTP Web. Although the AS2 spec describes as:Link as being closely related to the concepts in RFC5988, “closely related” means “somewhat different”. However, the differences are not clearly described so this just leads to more confusion IMO.
silverpill@silverpill@mitra.social (2026-05-12 23:13:23)
The inherent assumption is that any id will have an AS2 representation, but this isn't a valid assumption, because non-AS2 resources exist on the Web (and in fact vastly outnumber AS2 resources).
Every id value is expected to be an identifier of an ActivityPub object. When it resolves to something else, like an HTML document, we conclude that the identifier is not valid.
Fediverse != Web
Hong Minhee, who develops the Fedify library, indicated that overriding the term definition of "href" to be a literal string instead of a URI reference was intended to avoid dereferencing ids that don't have AS2 representations.
@hongminhee So, Fedify returns a string and delegates the decision to the user?
Sounds reasonable. By default, hrefs do not point to ActivityPub objects.