trwnh.com/unified.test.hugo/content/kb/activitypub/shortcomings/attributedTo-ambiguous.md

5.2 KiB
Raw Blame History

the problem

from https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attributedto we have

attributedTo
Identifies one or more entities to which this object is attributed. The attributed entities might not be Actors. For instance, an object might be attributed to the completion of another activity.

this definition is circular and therefore left ambiguous.

from the oxford pocket dictionary of current english:

attributed (verb)
regard something as being caused by (someone or something).
- ascribe a work or remark to (a particular author)

in current usage, objects have attributedTo pointing to the actor that authored them or to the actor that "owns" the object (per https://w3id.org/fep/c7d3 which tries to describe this usage)

a more useful usage would be to point from an Object to the Create activity that created it, or in the case of an Activity, to point from that Activity to some other Activity that caused it. current usage re: authorship should probably be migrated to a more appropriate property with better-fitting semantics, such as creator from dublin core or author from schema.org.

http://purl.org/dc/terms/creator
Creator. An entity responsible for making the resource. Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided.
http://purl.org/dc/elements/1.1/creator
Creator. An entity primarily responsible for making the resource. Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity.
https://schema.org/author
The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably. Values expected to be one of these types: Organization, Person. Used on these types: CreativeWork, Rating

so either reuse existing properties or come up with a new property/ies that encompass the sub-meanings of "attribution" better.

discussion

erincandescent writes: https://socialhub.activitypub.rocks/t/fep-0391-special-collection-proofs/4165/15

Ahh, attributedTo, my behated…

We started with the author property from AS1.0. Somewhere along the way that got lost, then reintroduced as attributedTo, and the scope got widened so now anything can be attributedTo anything. attributedTo in what sense? Well right now everyone means what AS1.0 called “author” - what we started with - though they probably mean “publisher”,

(What did AS1 implementations mean? Thats actually simultaneously more and less clear. What we today call Create(Note), AS1 would call post(note); there, publisher as the actor of the post activity as distinct from the author of the note makes more sense than it does with Creates actor vs the notes attributedTo)

Anyway, what Im trying to get at is that in the road to the creation of AS2.0, there was an awful lot of semantic generalisation. Create is the result of squishing create, post and author together (yes there was also an author activity! no I dont think anyone had a concrete use case for it or ever used it!). attributedTo is a generalisation of author

Some of this makes sense: if were using attributedTo to strictly mean author, were probably using it wrong (if you imagine a properly rich implementation of AP by a news site, probably people would want to stuff the publications name into the attributedTo property for backwards compatibility, and add a new author property for the actual authors of the article); but you have to wonder how this useful generalisation got extended further to the point the Range of the property is now Link | Object.

The result of this applied to the entirety of AS2 is a deeply, deeply unhelpful and implementer hostile situation where nearly every property applies to any object and can point at any object.

starting from first principles i would honestly think it makes sense for an object to be "attributed to" the Create activity that created it, but no one uses it this way in practice. i respond: https://socialhub.activitypub.rocks/t/fep-0391-special-collection-proofs/4165/17

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 youd 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. Its attributedTo all the way down. (Im only half-joking!)

If theres anything to blame here, Id point squarely toward the circular definition of the attributedTo property. At least with this thought experiment Im being consistent with my interpretation of “attribution” == “resulting in creation of”. Its simple causality. If you look up the definition of the word, thats the sense you get:

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