Re: Fact-checking and community notes on the Fediverse

On 2025-01-23 22:19, Evan Prodromou wrote:
> It would definitely be interesting to re-use existing work on annotations.
> 
> In using Web Annotations, do you think it's better to maintain all the 
> different aspects of the system, like the annotations server and the API 
> endpoint, or just borrow the type and properties from the vocabulary and 
> fit them into the ActivityPub API and federation protocol?
> 
> Evan


Evan, as I see it:

a minimal AP system (whether clients and/or servers) can simply use the 
Web Annotation (WA) vocabulary and run with it. This can be done 
*today*. WA server is not required. A client (like https://dokie.li/ ) 
that wants to speak with AP or WA or Solid or whathaveyou can decide for 
itself.

I shared a general status update on "decentralised annotations and 
activities in dokieli" back in November:

https://lists.w3.org/Archives/Public/public-swicg/2024Nov/0037.html


Let me quote myself (because the alternative is like yelling at the 
cloud for me at this point in time):

 >This dokieli feature demonstrates how articles and annotations can be
published and shared in a fully decentralized manner, creating a social
layer on top of the document layer:

 >* content creators and readers can use online identities they control
 >* creators can store and protect their content anywhere they have access
 >* readers can discover relevant interactions from their contacts'

 >This feature, particularly when used within the context of a browser
extension, is useful in scenarios in which the interactions on top of
documents among individuals and communities are completely decoupled and
private. With this feature in place, we are eager to further explore its
potential to contribute in the fight against misinformation using
annotations to fact-check articles and claims. This aligns with the
goals of dokieli, including current and future features, which provide
contextual insights that help enrich the experience of reading and
creating content on the web.

What I'm saying is that the blue pill has been kinda fun and useful.

See the screencast and list of specs - AP/AS2/LDN/WA etc. - that are 
glued together to accomplish various parts of that to be interoperable 
with different systems. It is not all or nothing.

When a user signs in, dokieli discovers their outbox. When the user 
annotates a target, dokieli sends an AS2 Activity where the object 
describes an Annotation about the target. dokieli did its part as an AP 
+ WA client. The server can do its part and "distribute" or keep it still.

If dokieli discovers that the target of the annotation has its own WA 
annotationService, then it gives the user the option to send a copy 
there. This is in addition to the possibilities of sending the canonical 
annotation to their storage, outbox, or elsewhere.

dokieli's integration of all this stuff goes back to the Social Web WG 
where I also provided an implementation report (c. 2018?) [2] (see the 
implementation details section.)

As you may recall, even the example I authored in the AS2 spec includes 
a bit of WA:

https://www.w3.org/TR/activitystreams-core/#example-using-multiple-vocabularies


That wasn't a coincidence. I included it to show that remixing useful or 
interesting vocabularies was possible - even back then. Sure, that giant 
example might not be entirely "realistic" but the main point of that 
section was to highlight the potential for combining vocabularies.

 From my perspective, combining AP / AS2 with WA (and other systems) has 
always been a possibility. It's exciting to see more people exploring 
this approach, and I encourage further work in this direction.

There is no one spec to rule all specs. Enormous amount of energy went 
into people thinking about various aspects of our social activities on 
the web, so we ought to try to reuse / mix and match what we can or need.

LDN explains how any resource can have an inbox. This makes it possible 
for any AS2 object to have its own inbox, independently controlled and 
hosted anywhere on the web.

This opens up possibilities like enabling any WA annotation or AS2 
object to have its own inbox - supporting threaded replies and 
annotations. (Also implemented in dokieli.) But can also be as simple as 
using shared, trusted, community or whatever inboxes.

Needless to say authentication and authorization remain as major 
challenges. I won't bother getting into that in this email but who gets 
to post what and where and who gets to annotate what, and how that's all 
discovered can get complicated. It is a PITA, right up there with 
servers (or lack thereof) participating in CORS. (I mean, I can't even 
use dokieli to reply to a post on Mastodon in 2025 and I thought we were 
supposed to have flying bicycles by now!)

Any way, if anyone read this far, you can treat yourself to a yet 
another dokieli screencast ( only 8 seconds! ):

https://w3c.social/@csarven/113464158549364043


Here the user loads an annotation (from their personal storage / outbox) 
that targeted an AP Note (on w3c.social / Mastodon).

Source of the activity + annotation:

https://linkedresearch.org/annotation/csarven.ca/%23i/a4d2e7c2-50a9-48c0-a09d-1c29b70ea0e3


If the big bad ugly human- and machine-friendly HTML+RDFa looks scary to 
anyone, one can of course do:

curl -H'Accept: application/ld+json' 
https://linkedresearch.org/annotation/csarven.ca/%23i/a4d2e7c2-50a9-48c0-a09d-1c29b70ea0e3 
| jq

Okie dokie,

-Sarven
https://csarven.ca/#i

Received on Thursday, 23 January 2025 23:07:14 UTC