- From: Sarven Capadisli <info@csarven.ca>
- Date: Wed, 1 Mar 2023 09:47:29 +0200
- To: public-swicg@w3.org
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