somehow i have the feeling that mastodon has a lot of transient objects without id.
-
somehow i have the feeling that mastodon has a lot of transient objects without id. too many. And many for which there is even an image url that does not appear to be transient.
or is it just my feeling that an icon of the actor should have an id ?
-
@[email protected] just give up and embrace the fact that any given ID might not resolve, either temporarily or permanently.
-
@julian But doesn't that also mean forget the specification?
-
@naturzukunft They are not transient, they are "anonymous". AP spec says that an anonymous object is "a part of its parent context". This is quite vague, but the only interpretation that makes sense to me is "embedded objects", such as icons, attachments and tags.
This is not specific to Mastodon, other applications do this too.
But Mastodon also has transient objects. For example, its Add and Remove activities don't have an
id
. I reported this as a bug, but they still haven't fixed it. -
@silverpill @naturzukunft @julian The AP spec conflates the "anonymous object" and "transient object" concepts. To be precise, an anon object explicitly has a JSON `null` for an id rather than not having an id property at all. (In JSON-LD, it's the same thing, but.... AP should primarily be interpreted as JSON, per @evanprodromou). I've seen very few anonymous objects in the wild (given that definition).
-
@steve The statement about
null
IDs is now considered incorrect, and an erratum was proposed: https://github.com/w3c/activitypub/issues/476#issuecomment-2563909463As for "transient", the spec says "MUST have ... identifiers unless intentionally transient", but it doesn't define "transient". I think if you don't know what it means, you can't do it intentionally. Therefore, "transient" objects are not possible. Problem solved!
-
@silverpill @naturzukunft @julian @evanprodromou I agree “transient” not clear at all. The
errata you’re referring to is for C2S Partial Updates (Section 6.3.1) rather than anonymous objects, right? -
@steve No, a different one
>Section 3.1 "Object identifiers", first paragraph, should read in part: ActivityPub extends this requirement; all objects distributed by the ActivityPub protocol MUST have unique global identifiers, unless they are intentionally transient or anonymous, in which case the identifier MAY be omitted. The identifiers must be a publicly dereferencable URIs, such as HTTPS URIs, with their authority belonging to that of their originating server. (Publicly facing content SHOULD use HTTPS URIs).