Skip to content

Give recommendation on how to identify an "actor" in the spec #470

@evanp

Description

@evanp

from @trwnh in #469:

Define "actor"

This is relevant in the following scenario:

Say you discover a random JSON-LD document with ldp:inbox present. How do you know that it accepts ActivityPub activities at its inbox, or that it follows ActivityPub semantics for those activities?

One way to be somewhat sure of this is to check if the Content-Type on the document exactly matches an ActivityStreams media type: application/ld+json; profile="https://www.w3.org/ns/activitystreams" or application/activity+json. However, this is something that has been described in proposals like https://w3id.org/fep/96ff as not sufficient -- it has been pointed out that one can use AS2 and not AP. Consequently, this FEP suggests using a Link header with rel=type, but this mechanism would not be available outside of an HTTP context, such as when a document is persisted on-disk. Therefore, it would make more sense to have a type/class defined within the normative ActivityStreams context that explicitly signals these semantics.

I am not immediately sure whether https://www.w3.org/ns/activitystreams#Actor needs to be defined or whether it could fulfill this role, but based on the criticism in the FEP above, it might need to be something more explicit like ActivityPubActor and not just Actor. This subpoint may be resolvable by writing a FEP defining such a type.

(There is a tangential point regarding AS2 and the AS2 non-normative ontology, where Actor does not exist as a class, and therefore all "AS2 Actor types" are actually directly subclassing from Object instead.)

Note also: this could maybe be also possible by duck-typing based on the presence of something like as:outbox.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs Primer PageNeeds a page in the ActivityPub primerNext versionNormative change, requires new version of spec

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions