(draft) Pre FEP-XXXX: Reassigning Actor and CoAuthor Representation for Federated CMS #2358
Replies: 2 comments 2 replies
-
Analysis and Recommendations for
|
| Section | Evaluation | Suggestions / Improvements |
|---|---|---|
| Title | Lacks clarity. Pre FEP-XXXX indicates a draft but does not convey the core content. |
Improve title: Combine key action (Reassigning/Transferring Actor) and goal (CMS compatibility / CoAuthor) for clarity. Example: "FEP-XXXX: Reattribute Activity for Actor Reassignment in Federated CMS" |
| Introduction | The analogy with English grammar is effective. The 4th/5th form argument is clear. | Enhance conciseness: Remove personal opinions or unnecessary sentences like "Personally, I think this is the most intuitive approach, but since a FEP proposal is required, I think it is worth discussing whether it can be handled with legacy approaches." Instead, emphasize: "This core functionality is not explicitly defined in the current ActivityPub standard, so a FEP proposal is necessary." |
| Grammar Mapping | Central idea is well-organized. | Reconsider 2nd form: Explaining Update as 2nd form (S+V+C) is weak. It is more accurate to treat Update as a 3rd form (S+V+O) variant where the object’s attributes are changed, rather than a complement-focused action. |
| 4th vs. 5th Form | The argument for using 5th form (Reattribute) for Actor reassignment is persuasive and important. |
Emphasize & unify: Clearly distinguish 4th form (Transfer/ownership move) vs. 5th form (Reattribute/attribute change) in a table or diagram so readers understand why 5th form is chosen. This avoids confusion from mixed usage. |
| JSON Examples | Concrete FEP-ready examples for Reattribute are clear. |
FEP-Ready JSON: Include JSON-LD context or at least specify new Actor as an object property rather than using result. Example: { "type": "Update", "object": { "attributedTo": "..." } }. Alternatively, in the proposed Reattribute type, use a clear field like newActor instead of result. |
| Conclusion & Direction | Highlights realistic CMS issues and proposes short/medium/long-term solutions. | Structural clarity: Highlight Reattribute activity type introduction as the primary proposal, and treat short-term Update extensions as secondary strategy. |
Improved Structure & Key Recommendations 💡
1. Adjust Explanation of 2nd Form (Update)
Update changes the state of the object. In ActivityStreams, it is safer to treat it as a 3rd form variant. Using 2nd form analogy may confuse readers; instead, describe it succinctly as “modifying an object’s attributes” or as a special case of 3rd form.
2. Maximize 5th Form (Reattribute) Logic (Core)
Actor reassignment is an action that changes the fundamental attribute (identity) of an object, not merely transferring ownership (4th form / Move).
- 4th Form (SVOO -
Transfer/Move): Focuses on moving the actor/object from one target to another (e.g., giving a file to someone else). - 5th Form (SVOOC -
Reattribute): Focuses on changing the state of the object itself (e.g., assigning a post to a new author).
This distinction strengthens the rationale for a FEP proposal and should be emphasized.
3. Clarify FEP Draft
Standardize the new activity type as Reattribute and clearly define how it differs from existing ActivityStreams/ActivityPub activities.
Example JSON with a new field for clarity:
{
"@context": "https://www.w3.org/ns/activitystreams#",
"type": "Reattribute", // Proposed FEP activity type
"actor": "https://example.com/@admin", // Actor performing the action
"object": "https://example.com/posts/123", // Object whose attribute is being changed
"newActor": "https://example.com/@newauthor" // New attributedTo for the object
}4. Structural Flow for Final Draft
For logical flow, structure the FEP draft as follows:
- Context & Motivation: Emphasize practical need for author changes in CMS (
wordpress-activitypubissues referenced). - Grammar Mapping: Analyze ActivityPub activities grammatically (1st–3rd forms summary).
- The Case for 5th Form: Argue why 4th form (
Move) is insufficient, and why 5th form (Reattribute) is semantically appropriate. - Proposal: Introduce new
Reattributeactivity type and JSON structure. - Backward Compatibility & Alternatives: Discuss short-term alternative (
Update) and long-term vision (CoCreate).
Overall, your idea is highly original and deeply analyzed. If the draft focuses on the 5th form logic and streamlines other sections, it could become an excellent FEP proposal. 💪
Beta Was this translation helpful? Give feedback.
-
|
These three points are related in terms of actor-related actions, but technically and grammatically they each require slightly different handling. In the context of ActivityPub/FEP, they are often grouped into a single issue because they all deal with “synchronization and modification of an object’s actor/author properties.” Here’s a breakdown:
In short, all three can be framed under the common theme of “actor/attributedTo management,” but from an implementation perspective, post vs media vs co-author require distinct handling, so detailed discussions should be partially separated. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
(draft) Pre FEP-XXXX: Reassigning Actor and CoAuthor Representation for Federated CMS
Topic: “Ownership Transfer Activity (Introduction of 4th and 5th sentence structures)”
This structure is written according to the FEP draft format (
fep-xxxx.md)Context
#2353
Post Author and Object Actor Synchronization Issue
Introduction
I tend to understand the ActivityPub protocol by analogy with English grammar, for example, mapping intransitiveActivity to the 1st form S+V.
When a media owner changes, it seems natural to apply English grammar 4th form S+V+I.O+D.O,
and when the post author changes, to apply English grammar 5th form S+V+O+O.C.
Personally, I think this is the most intuitive approach, but since a FEP proposal is required, I think it is worth discussing whether it can be handled with legacy approaches.
In any case, in a CMS, changing the author is a core function, and WordPress is a platform directly affected, so it should be possible to represent this in the ActivityPub protocol.
Also, for example, cases like changing the license owner of an image object whose license attribute is extended will certainly occur, so the fundamental action of changing an object’s actor can occur universally.
However, ownership transfer for objects like
document,page,image,video,audiocan be implemented as a Move activity between object collections via themediaUploadendpoint, but for objects likearticleornote, they are handled via the outbox → activity collection, so there is a slight difference.Mapping Activities to English Grammar Structures
Mapping ActivityPub Activities to English sentence structures (grammatical forms) is
very effective for visually understanding the semantic structure of the protocol.
The ActivityPub “activity model” essentially borrows the structure of a “language model (grammar).”
ActivityStreams can be considered a kind of “behavioral sentence system.”
It could even evolve into a meta-standard document like “Activity Grammar.”
English Grammar Mapping Summary
🔹 1st Form (S + V) — IntransitiveActivity
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-intransitiveactivity
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-arrive
IntransitiveActivity — activities without an object
Example:
Like,Follow,Arrive,Leave,Join,Travel→ Actor performs an action without a direct object.
→ Example:
Alice Followed.(focus on state change)→ Subject (Actor) and verb (Activity) exist, but there is no object (Object).
Grammatically, this is a complete sentence, but it is an action that does not require a target.
This aligns exactly with ActivityPub’s definition of
intransitiveActivity.🔹 2nd Form (S + V + C) — State Change Type (e.g., Update)
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-update
State Descriptive (e.g., Be, Become, Seem)
This is similar to an activity like
Updatethat expresses a property change (state change).→ Example:
Alice Updated (is now editor of) Note.Here, the
objectfunctions like a complement, describing the result of the subject’s action.Grammatically,
Updateexpresses the state change via a complement.🔹 3rd Form (S + V + O) — Transitive Activity
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-create
Activities like
Create,Delete,Follow,Block,Announce,Add,Removeare typical 3rd form.TransitiveActivity — action with a single object
Example:
Like,Announce,Create→ Example:
Alice Created Note.🔹 4th Form (S + V + I.O + D.O) — Double Object Activity
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-offer
ActivityPub standard does not explicitly define an indirect object (I.O) structure. However,
targetororiginfields can serve the role of an indirect recipient.Double Object Activity — includes both recipient and object
Example:
Give,Offer,Send,Add,Move→ Example:
Alice Moved Note from Outbox to CoAuthorOutbox.→ Example:
Alice Added Object to Target.This is similar to English 4th form.
In other words, object (direct object) + target (indirect object).
This form structurally matches “Actor reassignment” — the action of “transferring” a post (Direct Object) to another actor (Indirect Object).
Media Objects
Objects like
image,video,audiocan be handled via collection-to-collection move (
Move) through themediaUploadendpoint.However, for
Note,Article, etc., which are delivered directly viaoutbox→activity,the difference is that it requires republishing under a new actor rather than simple movement.
💬 Summary
author_idis a natural operation, so it should be expressible in ActivityPub.This grammar mapping model can also be visualized as a diagram of ActivityPub Sentence Grammar Model (SVO, SVOO, SVOOC), showing how activities like
Create,Announce,Move,Reattributecorrespond to sentence structures.Arrive,LeaveUpdateCreate,Delete,FollowTransfer,Assign,OfferMove🔹 Grammar Approach for “Actor Change”
When a media owner changes, a ditransitive verb structure (S + V + I.O + D.O) is more appropriate.
Example: “Jiwoon transferred ownership of the image to Mogu.”
{ "type": "Transfer", "actor": "https://example.com/@jiwoon", "object": "https://travel-in-busan.com/post/1", "target": "https://example.com/@mogu" }→ Conceptual extension like “TransferActivity” is required.
This is a case that can be proposed in a FEP.
(Example: if
Moveis collection-to-collection movement,Transferis defined to mean ownership change.)The 5th form (S+V+O+OC or S+V+O+O.C) approach is effective for structurally expressing actor change.
ActivityPub Structures Viewed via English Grammar
IntransitiveActivityLike,Arrive,TravelUpdate,AnnounceCreate,Delete1. Current discussion: Author change = 5th form
Example:
This is a typical 5th form SVOOC sentence.
Meaning structure: the subject changes the property (owner) of the object.
ActivityPub equivalent:
{ "type": "Reattribute", "actor": "https://example.com/@jiwoon", "object": "https://example.com/@post123", "target": "https://example.com/@mogu" }This almost exactly matches the English 5th form
make + O + OCstructure.actor: subject of verb (S)type: verb (V)object: action target (O)targetorresultingActor: new state/property (OC)2. Why 5th form — emphasizes semantic change
4th form (S+V+IO+DO) is a transfer (“give something to someone”),
5th form (S+V+O+OC) is an attribute change (“make something become a state”).
Changing an
actoris not just “give the post to someone else”;it is an act of changing the ontological property of the post:
→ This is not a simple move; it is an object’s identity transformation.
Hence, 5th form is more accurate.
3. Protocol Correspondence Proposal (FEP Perspective)
Create(Post)Assign(Post, Author)Reattribute(Post, newActor)→ New activity types like
ReattributeorReassignActorbest reflect the 5th form structure.Example FEP draft:
{ "type": "Reattribute", "actor": "https://example.com/@admin", "object": "https://example.com/@oldpost", "result": { "attributedTo": "https://example.com/@newauthor" } }4. Additional Semantic Advantages
Thus, 4th form aligns with Move, 5th form aligns with Update/Reassign.
The “fundamental action of changing an object’s actor” clearly falls under the latter.
5. Conclusion — Insights from 5th Form Model
Mapping ActivityPub activities to grammar forms clarifies the semantic role labeling.
Actor change is a state mutation, making 5th form (S+V+O+OC) the most appropriate.
This perspective is persuasive when proposing a FEP.
Example:
Realistic Problem
Most federated platforms (Mastodon, Misskey, Pixelfed, etc.)
do not support author change (Actor reassignment).
But in CMS Context
author_idcan be changed in the database, and→ If ActivityPub assumes “immutable authorship,” it conflicts with CMS behavior.
CMS Perspective Reality
post_authoris a core function.actorwhen serialized, soan activity is needed to update the object’s actor.
Update.Hence, a two-step approach can be proposed:
TransferorAssignActivity (specifiable in FEP)attributedToin existingUpdateActivity (legacy-compatible)🧭 Proposed Directions
Short-term (legacy compatibility)
UpdateActivity to include actor change (non-standard)attributedToto implement “co-author” conceptMid-term (standard discussion)
MoveMoveAuthorActivityorTransferAuthorshipLong-term (Fediverse-wide extension)
propose
CoCreateactivity (as you mentioned)actor: [main author],attributedTo: [co-authors],context: [shared collection]Related Links
ActivityPub immutable actor attribution?
https://socialhub.activitypub.rocks/t/delete-actor-behavior/573
https://socialhub.activitypub.rocks/t/are-actors-and-webfingers-1-to-1/4539
https://fedify.dev/manual/actor
https://socialhub.activitypub.rocks/t/is-objects-id-immutable/381
https://www.w3.org/wiki/ActivityPub/Primer/Authentication_Authorization#Object_ownership
In fact, this is one of the most interesting limitations of ActivityPub —
within the standard Vocabulary, there is no Activity type that directly corresponds to the typical ditransitive (S+V+O+OC) structure.
Assign (informal, used in some FEP/ForgeFed contexts)
"Admin makes Post (be authored by Jiwoon)" —
In other words, a combination of Assign + Update is effectively the closest approximation to a ditransitive structure.
Move
Meaning: “Moves an object from one collection (origin) to another collection (target).”
Grammatical correspondence: S + V + O + OC
Example: “System moves Post (to target collection)”
Structurally, it resembles a ditransitive construction, but semantically it is closer to spatial relocation.
While it is similar in the sense of “changing membership,” it is distinct from “changing an attribute (Actor).”
Accept / Reject / Add / Remove
These four all partially exhibit a ditransitive-like structure in that:
“An object is included in or removed from a collection.”
Beta Was this translation helpful? Give feedback.
All reactions