Re: Can ActivityPub be used for W3C Annotations?

On 2023-03-01 00:43, Bob Wyman wrote:
> I would like to use ActivityStreams/ActivityPub to distribute 
> annotations, as defined in the W3C's Web Annotation Data Model 
> <https://www.w3.org/TR/annotation-model/>. Other than convincing other 
> clients or servers to recognize Annotations, what compatibility issues 
> exist between the relevant specs? For instance, the ActivityPub 
> <https://www.w3.org/TR/activitypub/> specification relies on the 
> ActivityStreams Activity Vocabulary 
> <https://www.w3.org/TR/activitystreams-vocabulary> to define a set of 
> object types 
> <https://www.w3.org/TR/activitystreams-vocabulary/#object-types> that 
> does not include "Annotation." If I wish to use "Annotation" as an 
> object-type while remaining compatible with Activity* documentation, do 
> I need to get that Vocabulary extended? Or, is some less cumbersome 
> approach available and appropriate? Also, are there any existing 
> ActivityPub services that use W3C Annotations?
> 
> Below, you'll find an example of what I'm trying to do. The idea here is 
> that I want to annotate the Vocabulary's use of "xsd:dateTime" with the 
> text: "A wise choice!." So, I use the ActivityPub Create action to 
> publish an object of type Annotation that links the body of my 
> annotation (the text: "A wise choice!") to the Vocabulary via its URL.  
> The precise location and span of my annotation within the document is 
> found by using the specified selector.
> 
> {
> "@context": "https://www.w3.org/ns/activitystreams 
> <https://www.w3.org/ns/activitystreams>",
> "type": "Create",
> "actor": "https://example.com/bob <https://example.com/bob>",
> "published": "2023-02-28T19:36:51Z",
> "to": ["https://example.com/alice/ <https://example.com/alice/>", 
> "https://example.com/mary/ <https://example.com/mary/>"],
> "object": {
> "@context": "http://www.w3.org/ns/anno.jsonld 
> <http://www.w3.org/ns/anno.jsonld>",
> "id": "http://example.org/annotation#id=32B24 
> <http://example.org/annotation#id=32B24>",
> "type": "Annotation",
> "body": {
> "type": "TextualBody",
> "value": "<p>A wise choice!</p>",
> "format": "text/html",
> "language": "en"
> },
> "target": {
> "source": "https://www.w3.org/TR/activitystreams-vocabulary/ 
> <https://www.w3.org/TR/activitystreams-vocabulary/>",
> "selector": {
> "type": "TextQuoteSelector",
> "exact": "xsd:dateTime",
> "prefix": " properties defined as",
> "suffix": " values must conform"
> }
> }
> }
> }
> 
> bob wyman
> 


The section I wrote in 
https://www.w3.org/TR/activitystreams-core/#example-using-multiple-vocabularies 
includes an example with Web Annotation.

AS2, LDN, and Web Annotation are among some of the specifications that's 
implemented by https://dokie.li/ ( https://github.com/linkeddata/dokieli 
) as part of the original implementations of ActivityPub client-server 
client ( https://activitypub.rocks/implementation-report/ ).

Live example using AS2 (Create) and Web Annotation (TextQuoteSelector):

https://linkedresearch.org/annotation/csarven.ca/%23i/87bc9a28-9f94-4b1b-a4b9-503899795f6e

The server (not an AP server) can respond with a representation using 
application/ld+json, text/turtle, and text/html (yes, 100% human- and 
machine-readable in RDFa).

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

Received on Wednesday, 1 March 2023 07:47:49 UTC