Home | Notifications | New Note | Local | Federated | Search | Logout
Note Detail
Reply to @trwnh@socialhub.activitypub.rocks
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.
---Reply---
a@trwnh@socialhub.activitypub.rocks (2026-05-13 05:53:50)
stevebate:there are different mental models of AS2 [...] If AS2 is considered to be plain JSON, then the meaning of “link” becomes relatively muddled for me
Yeah -- even for people who understand the difference between a direct link and an indirect/reified Link, there's still uncertainty about when you would want to use one or the other. "You can describe properties of the link/reference" is something that makes sense in the abstract but it depends on a processing model to make sense in practice. as:Link feels like it's largely unused in AS2 documents across the fediverse; most links are direct links by way of using AS2 properties with non-embedded objects. (For example, when "actor" and "object" are JSON strings instead of as:Link nodes.)
silverpill: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.
Do you expect every AS2 document to be an ActivityPub object?
Do you dereference every id to make sure of what it resolves to?
If some id doesn't have an AS2 representation, do you:...discard the entire activity?
...discard that particular statement?
...process the statement as-is without further information?
silverpill:Fediverse != Web
One can certainly claim this (and they might not be fully incorrect per se), but then it leads to asking if AP == AS2 == Fediverse, or if AP == Web != Fediverse != AS2. At least in theory, AP and AS2 are intended to be Web specifications published by the W3C under the Social Web WG.
silverpill:By default, hrefs do not point to ActivityPub objects.
Would you then say something like this?
If an id is the "href" of a Link, then it can have representations not including AS2.
Otherwise, an id (SHOULD? MUST? MAY? is expected to without being required to?) have an AS2 representation.
We currently don't require this, and there is no processing model defined for AS2 documents. AP implies a partial processing mo
Reply
---Replies---
silverpill@silverpill@socialhub.activitypub.rocks (2026-05-14 03:07:40)
trwnh:Do you expect every AS2 document to be an ActivityPub object?
Yes. I don't think of AP and AS2 as separate things, and in my view, any contradictions between the two are specification bugs.
trwnh:Do you dereference every id to make sure of what it resolves to?
No, that would be impractical. I resolve id values only when an object needs to be authenticated (for example, when it is not signed). I resolve id-ish values (such as inReplyTo) only when that is required by application logic.
trwnh:If some id doesn’t have an AS2 representation, do you:
…discard the entire activity?
…discard that particular statement?
…process the statement as-is without further information?
In most cases, the entire activity is discarded. An activity is not very useful if you can't authenticate it or resolve its actor. But sometimes only a particular statement is discarded.
trwnh:Would you then say something like this?
If an id is the “href” of a Link, then it can have representations not including AS2.
Otherwise, an id (SHOULD? MUST? MAY? is expected to without being required to?) have an AS2 representation.
How href can be an id? What I mean is that in JSON-verse, href is not considered an id-ish property. FEP-e232 is an exception to this rule.