FEP-2277: ActivityPub core types (pre-draft)
https://codeberg.org/silverpill/feps/src/branch/main/2277/fep-2277.md
where I make a case for non-overlapping core types and duck typing
FEP-2277: ActivityPub core types (pre-draft)
https://codeberg.org/silverpill/feps/src/branch/main/2277/fep-2277.md
where I make a case for non-overlapping core types and duck typing
@mariusor 100% agree. I have always thought that Actor is a core type, but apparently it is not: https://github.com/w3c/activitystreams/issues/633
@silverpill I think Actor should be considered a core type (for the purposes of ActivityPub) just because the whole of the ActivityPub specification is based on it and its structure.
>You allow a missing outbox in your FEP although it's required by AP.
Outbox is required by AP, but inbox is sufficient to detect an actor. And sometimes outbox property is not present, so checking for it in addition to inbox would make the algorithm less reliable.
>For duck typing, an "Actor" is a thing that performs an Activity: it's the object (in an RDF sense) of some Activity actor relationship.
This definition is not useful, because Activity actor is not the only place where actors can be found (an example I provide in the FEP is Update activity where object might be an actor).
@silverpill You allow a missing outbox in your FEP although it's required by AP. I think inbox should also be optional. For S2S, if a server has a sharedInbox, the actor-specific inbox endpoint is not very useful. A shared inbox endpoint plus activity/object targeting properties is enough. For duck typing, an "Actor" is a thing that performs an Activity: it's the object (in an RDF sense) of some Activity `actor` relationship.
Social applications necessarily deal with the real world: people, content produced by them, their relationships, and their ways of organizing data. And any useful social application must have an internal model of the world.
AS2 standard defines "core types", which nicely map to those concepts: actors, objects, activities, links and collections. It as a conceptual framework for building social applications, which answers the question "what my internal model should look like?". I think it is the most important part of AS2.
Unfortunately, core types are not specified rigorously. This is what I am trying to fix here.
@steve I don't really understand what @silverpill wants to underscore with that FEP.
In my software I am using something like his core types for actual data types, but the differences are mostly in behaviour a server/client has in relation to them. Ie, what can one "do" when encountering such an object, and that's better guided by looking at their data "shapes". The properties common to the Object type can be used for "object things": display name, content, use URL, etc. The extra properties for Actor, can be used for actor things: addressing. The properties for Collections: for retrieval, etc.
@silverpill @mariusor I believe that removing the Actor type from the AS2 specification was a mistake (especially after looking at the rationale behind it).
That said, I'm not sure that "core type" is a meaningful label.
@steve I don't think it is not conformant, because ActivityPub spec doesn't talk about "duck typing" at all. My FEP is just filling the gaps.
But aligning algorithm with AP requirements is probably a good idea. I made the change: https://codeberg.org/silverpill/feps/commit/772f06eaade2e8eea9004fbb4b14748252226761
@silverpill AFAIK, AP doesn’t define any type-specific Update side-effects (actor vs non-actor).
For standard AS2 actor types, neither inbox nor outbox are needed for detection. For inferring AP actor extension types, I think the FEP should be conformant with the AP spec.
076萌SNS is a social network, courtesy of 076. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All 076萌SNS content and data are available under the Creative Commons Attribution 3.0 license.