Re: Bringing annotation to the browser

On Thu, May 27, 2021 at 6:52 AM David Bokan <bokan@chromium.org> wrote:

> (also, another challenge not mentioned in the explainer: the web lacks
> versioning or history, hence annotations can become ‘orphaned’)
>
> +1, I've been thinking about this. I've noticed this as a major issue with
existing annotation tools - aggregator pages and feeds suffer from this the
most where the page changes rapidly and is customized to the user. Maybe
pages need a way to mark themselves as "frequently changing" (I think this
could be useful in other ways)? Or have more granular ways of referencing
particular items (as you mention above). Agree this needs more thought.

A few remarks with this regard:

* The W3C Web Annotation Data Model provides hooks to address this issue by
expressing the Time State of the annotated resource, see
https://www.w3.org/TR/annotation-model/#time-state:
"A Time State resource records the time at which the resource is
appropriate for the Annotation, typically the time that the Annotation was
created and/or a link to a persistent copy of the current version."

* In essence, the idea is that a snapshot of the resource is created (in a
web archive or resource versioning system) at the time of annotation. And
that the URI of the snapshot and the datetime are recorded along with the
annotation.

* If the annotated resource has changed to the extent that the annotation
can no longer be meaningfully attached, the idea is that it can then still
be attached to the snapshot of the resource. That snapshot resource can be
discovered by means of the URI that was recorded in the Time State.

* If the snapshot is not accessible (for example, because the system in
which it resides is down) or was not created in the first place, then the
datetime recorded in the Time State and the URI of the annotated resource
can be used to find an appropriate snapshot in one of many public web
archives. The Time Travel infrastructure (see
http://timetravel.mementoweb.org/guide/api/) that provides Memento datetime
negotiation (RFC7089) functionality across many public web archives
supports doing so.

* In the special case that the annotated resource is hosted on a resource
versioning system, that system itself automatically creates snapshots as
the resource evolves. As one typically wants to create annotations on the
basis of the generic URI of a resource rather than on a specific version
URI, recording the Time State when annotating remains relevant in these
cases too. But, here, recording the datetime is sufficient because most
resource versioning systems have bespoke APIs that allow retrieving a
specific resource version using the generic resource URI and a datetime.
For resource versioning systems that support the Memento protocol
(RFC7089), accessing a specific resource version can uniformly be achieved
using HTTP datetime negotiation. Rob Sanderson and I described/demonstrated
the latter in our 2010 paper "Making Web Annotations Persistent over Time"
(see https://arxiv.org/abs/1003.2643).

* In the common case that the annotated resource isn't hosted on a resource
versioning system, automatically creating a snapshot can be done by means
of "Save Page" APIs that some web archives offer. These services typically
have the capability to detect cases where a previous identical snapshot was
already created. As such, a new snapshot will only be created when the
resource has effectively changed. The Robust Links service and API (see
https://robustlinks.mementoweb.org/) allows creating on-demand snapshots in
multiple web archives and returns HTML snippets intended to help combat
link rot for links in HTML pages (see
https://journal.code4lib.org/articles/15509). One could similarly imagine a
service that creates snapshots of resources as they are being annotated and
returns Time State information intended to keep the annotations usable over
time.

Greetings

Herbert


> On 12/05/2021 17.42, David Bokan wrote:
>
> Hi everyone,
>
> Myself and a few colleagues from the Chrome team have been considering
> ways to bring some annotation use cases to the browser by default. This
> requires a lot of thought about what kind of  APIs and controls are given
> to page authors and users as well as the broader implications on the web
> ecosystem (e.g. security, privacy, UI, etc.)
>
> We want to do this in a way that's open and integrates with existing specs
> and work on annotations. We've put up a public explainer
> <https://github.com/bokand/web-annotations>; there's no concrete proposal
> yet, it's all very early stages. There are a few rough ideas though and
> explains how we're thinking about the challenges. We'll continue to develop
> the ideas there if you'd like to participate or just follow along.
>
> Given this group's interest in annotations, I'd like to invite thoughts
> and feedback, particularly if anyone has any experiences with similar
> efforts in the past.
>
> Thanks!
> David Bokan
>
>

-- 
==================
Herbert Van de Sompel
https://hvdsomp.info
https://orcid.org/0000-0002-0715-6126

Received on Thursday, 27 May 2021 09:18:50 UTC