FEP-0391: Special collection proofs

I’d be interested in hearing more about practical examples of “implementer madness”. So far I am unconvinced that it is particularly problematic to use attributedTo on Activities. In fact, I am having trouble thinking of other potential uses for attributedTo on an Activity that aren’t already covered by the use of actor on an Activity — like, does it make sense to “author” an Activity on behalf of some other “actor” perhaps? This example usage feels like it would be best served by a different extension property, perhaps author as you suggest or perhaps something already existing like dc:creator.

To me, the most natural semantics are “(This activity) is attributed to (some other activity).” It gets a little hairy because actor is considered a sub-property of attributedTo… which means you can infer that the Activity is attributedTo the actor, since actor implies attributedTo. To be explicit, this implies that attributedTo has multiple values: one for the actor who performed the current activity, one for the activity that resulted in the current activity. But it would be redundant to declare both actor and attributedTo in every single case. So implementation-wise, you would be able to get away with it, as long as you could identify that attributedTo points to an Activity.

I am not sure we need a resultOf property with largely the same semantics as “attribution”, but I do instead see a separate complication for implementers — what if someone uses attributedTo on Objects to point to the Create activity that was associated with the object? That seems like a valid and perhaps even more fitting interpretation of “attribution”. This runs tangent to the other debate about whether we should be doing all our “post” logic at the Object level or at the Activity level. So again, it looks like authorship is the semantic use case more in need of an explicit property. Madness? This is ActivityPub! :stuck_out_tongue:

This would be convenient to have but IDK about making it required. We are definitely missing a “follow your nose” way of going from a replies or followers or following or likes or shares back to the object or actor they belong to. Less so for context, because you’d have to keep track of context URIs anyway.

Maybe we can do this with attributedTo? Assuming that we say a Collection is “attributed” to an object, that is to say, the object resulted in the creation of the special collection, in the same way that the Create activity resulted in the creation of the object. It’s attributedTo all the way down. (I’m only half-joking!)

If there’s anything to blame here, I’d point squarely toward the circular definition of the attributedTo property. At least with this thought experiment I’m being consistent with my interpretation of “attribution” == “resulting in creation of”. It’s simple causality. If you look up the definition of the word, that’s the sense you get:

attributed (verb)
regard something as being caused by (someone or something).