1/
This is how a Fediverse Labeler could work.
In particular, This is how a Fediverse Labeler could be represented as ActivityPub / ActivityStreams / JSON-LD data.
2/
A Fediverse Labeler would output a separate ActivityStreams "Profile" Object for each thing it wants to label.
Each of these should be at a separate URL.
3/
The "describes" field would point to the thing being labelled.
The "attributedTo" field would point to the person or machine that create these label.
And the "attachment" field would be a list of labels.
The (top level) "icon" field would be an icon that would be shown next to the label in the user-interface (UI).
4/
Note that even in this example, that there are different types of labels!
I have some examples of text labels.
But I also have some examples of Icon labels.
(Other types of labels could exist, too.)
@reiver Hey, I loved this discussion when it landed, and I've stumbled back onto it now.
Did you make any more progress using #ActivityPubProfile as a #FediverseLabeler?
I think I'm starting down this road soon (as a way to implement endorsements) so I'd love to build on existing work that's out there.
I have done some of the implementation work.
Still have more to do.
...
How were you thinking of using a Labeler?
@reiver I’d use a labeler an a Fediverse version of Community Notes, or a federated version of https://www.universalnotes.org
In my primary project - https://emissary.dev - I want to mark/comment on a misinformational post without helping to spread the misinformation.
I will write a thread about how to look-up a URL, to get its labels.
I.e., if you have the URL:
http;//example·com/~joeblow
How you get the labeler server URL that will give the labels (for the original URL).
(But, after I sleep.)
@reiver @benpate why not just use the Web Annotations Protocol? Why several new constructs at the AP/AS2 level?
If you're interested in working on this, the ActivityPub Trust & Safety Taskforce also is: https://github.com/swicg/activitypub-trust-and-safety/issues/4
The way I solved the discovery problem in an experimental Web Annotations service was to use the SHA256 of the object ID as the key for looking up collections of data from the annotations server (i.e., some known URL construction where you avoid URLs in URLs
Just found Web Annotation protocol from your links, thank you!
https://www.w3.org/TR/annotation-protocol/
After a quick read, it seems like a good starting point (though in need of clarification, like most of ActivityPub)
Charles, if IFTAS is working on something, it’s definitely worth joining that effort. The key to success is in getting apps to implement the labeler, and IFTAS has the best chance to make that happen.
Thanks for the clarification. Sorry I conflated the two.
And this just strengthens the case for doing this alongside the SWICG.
We’re all going in the same direction: use ActivityPub collections, inboxes, and outboxes to distribute notes about content without “boosting” it.
@thisismissem - do you know of any other implementations in the wild? My search only returned one app from 5 years ago.
@reiver - how much change would it take for your app to support this? Would you just need to switch “Profile” for “Annotation”? Or is it more complicated than that?
@thisismissem @benpate @reiver
I would also want a way to query annotation services for historical objects, and for things to be able to carry verifiable annotations for themselves (so that queries are not always necessary).
@thisismissem @benpate @reiver
And I hate to get all linked data-y, but in this case it would also be nice if it was easy to determine equivalence between annotations from different sources.
For example, it's fine for anyone to self-assert their own pronouns, but it would be so much less helpful if that's just done in free text. And at the same time, it's conceivable that organizations like the SPLC and lambda legal might each run a labeler for hate speech. Knowing which is which, is important. And so is distinguishing between those and say, an annotation server run by the KKK.
@jenniferplusplus @benpate @reiver these are all things we'd love to discuss and work on in the ActivityPub Trust & Safety Taskforce!