In reply to highlight.js, an extension to highlight text on web pages by James G.

Nice project, James! I’m not sure I get the distinction you make between this and an annotation extension, as highlighting is annotation too and the pop up box even calls the highlights annotations. One question: do you apply the W3C Web Annotation Data Model recommendation? That would make highlighting with this potentially interoperable with e.g. Hypothes.is. Or allow interaction with the Hypothes.is API further down the line.

I don’t presently have plans to expand this into an annotation extension, as I believe that purpose is served by Hypothesis. For now, I see this extension as a useful way for me to save highlights, share specific pieces of information on my website, and enable other people to do the same.

James G.

With the release of various interesting text generation tools, I’m starting an experiment this and next month.

I will be posting computer generated text, prompted by my own current interests, to a separate blog and Mastodon account. For two months I will explore how such generated texts may create interaction or not with and between people, and how that feels.

There are several things that interest me.

I currently experience generated texts as often bland, as flat planes of text not hinting at any richness of experience of the author lying behind it. The texts are fully self contained, don’t acknowledge a world outside of it, let alone incorporate facets of that world within itself. In a previous posting I dubbed it an absence of ‘proof of work’.

Looking at human agency and social media dynamics, asymmetries often take agency away. It is many orders of magnitude easier to (auto)post disinformation or troll than it is for individuals to guard and defend against. Generated texts seem to introduce new asymmetries: it is much cheaper to generate reams of text and share them, than it is in terms of attention and reading for an individual person to determine if they are actually engaging with someone and intentionally expressed meaning, or are confronted with a type of output where only the prompt that created it held human intention.

If we interact with a generated text by ourselves, does that convey meaning or learning? If annotation is conversation, what does annotating generated texts mean to us? If multiple annotators interact with eachother, does new meaning emerge, does meaning shift?

Can computer generated texts be useful or meaningful objects of sociality?

Right after I came up with this, my Mastodon timeline passed me this post by Jeff Jarvis, which seems to be a good example of things to explore:


I posted this imperfect answer from GPTchat and now folks are arguing with it.

Jeff Jarvis

My computer generated counterpart in this experiment is Artslyz Not (which is me and my name, having stepped through the looking glass). Artslyz Not has a blog, and a Mastodon account. Two computer generated images show us working together and posing together for an avatar.


The generated image of a person and a humanoid robot writing texts


The generated avatar image for the Mastodon account

I’ve now added over 100 annotations using Hypothes.is (h.), almost all within the last month. This includes a few non-public ones. Two weeks ago I wrote down some early impressions, to which I’m now adding some additional observations.

  1. 100 annotations (in a month) don’t seem like a lot to me, if h. is a regular tool in one’s browsing habit. H. says they have 1 million users, that have made 40 million annotations to over 2 million articles (their API returns 2.187.262 results as I write this). H. has been in existence for a decade. These numbers average out to 20 annotations to 2 articles per user. This to me suggests that the mode is 1 annotation to 1 article by a user and then silence. My 100 annotations spread out over 30 articles, accumulated over a handful of weeks is then already well above average, even though I am a new and beginning user. My introduction to h. was through Chris Aldrich, whose stream of annotations I follow daily with interest. He recently passed 10.000 annotations! That’s 100 times as many as mine, and apparently also an outlier to the h. team itself: they sent him a congratulatory package. H.’s marketing director has 1348 public annotations over almost 6 years, its founder 1200 in a decade. Remi Kalir, co-author of the (readworthy!) Annotation book, has 800 in six years. That does not seem that much from what I would expect to be power users. My blogging friend Heinz has some 750 annotations in three years. Fellow IndieWeb netizen Maya some 1800 in a year and a half. Those last two numbers, even if they differ by a factor 5 or so in average annotations/month, feel like what I’d expect as a regular range for routine users.
  2. The book Annotation I mentioned makes a lot of social annotation, where distributed conversations result beyond the core interaction of an annotator with an author through an original text. Such social annotation requires sharing. H. provides that sharing functionality and positions itself explicitly as a social tool ("Annotate the web, with anyone, anywhere" "Engage your students with social annotation"). The numbers above show that such social interaction around an annotated text within h. will be very rare in the public facing part of h., in the closed (safer) surroundings of classroom use interaction might be much more prominent. Users like me, or Heinz, Maya and Chris whom I named/linked above, will then be motivated by something else than the social aspects of h. If and when such interaction does happen (as it tends to do if you mutually follow eachothers annotations) it is a pleasant addition, not h.’s central benefit.
  3. What is odd to me is that when you do indeed engage into social interaction on h., that interaction cannot be found through the web interface of my annotations. Once I comment, it disappears out of sight, unless I remember what I reacted to and go back to that annotation by another user directly, to find my comment underneath. It does show up in the RSS feed of my annotations, and my Hypothes.is-to-Obsidian plugin also captures them through the API. Just not in the web interface.
  4. Despite the social nature of h., discovery is very difficult. Purposefully ‘finding the others’ is mostly impossible. This is both an effect of the web-interface functionality, as well as I suspect because of the relatively sparse network of users (see observation 1). There’s no direct way of connecting or searching for users. The social object is the annotation, and you need to find others only through annotations you encounter. I’ve searched for tags and terms I am interested in, but those do not surface regular users easily. I’ve collated a list of a dozen currently active or somewhat active annotators, and half a dozen who used to be or are sporadically active. I also added annotations of my own blogposts to my blog, and I actively follow (through an RSS feed) any new annotation of my blogposts. If you use h., I’d be interested to hear about it.
  5. Annotations are the first step of getting useful insights into my notes. This makes it a prerequisite to be able to capture annotations in my note making tool Obsidian, otherwise Hypothes.is is just another silo you’re wasting time on. Luckily h. isn’t meant as a silo and has an API. Using the API and the Hypothes.is-to-Obsidian plugin all my annotations are available to me locally. However, what I do locally with those notes does not get reflected back to h., meaning that you can’t really work through annotations locally until you’ve annotated an entire article or paper in the browser, otherwise sync issues may occur. I also find that having the individual annotations (including the annotated text, in one file), not the full text (the stuff I didn’t annotate), feels impractical at times as it cuts away a lot of context. It’s easily retrievable by visiting the url now, but maybe not over time (so I save web archive links too as an annotation). I also grab a local markdown copy of full articles if they are of higher interest to me. Using h. in the browser creates another inbox in this regard (having to return to a thing to finish annotation or for context), and I obviously don’t need more inboxes to keep track of.
  6. In response to not saving entire articles in my notes environment, I have started marking online articles I haven’t annotated yet at least with a note that contains the motivation and first associations I normally save with a full article. This is in the same spot as where I add a web archive link, as page note. I’ve tried that in recent days and that seems to work well. That way I do have a general note in my local system that contains the motivation for looking in more detail at an article.
  7. The API also supports sending annotations and updates to h. from e.g. my local system. Would this be potentially better for my workflow? Firefox and the h. add-on don’t always work flawlessly, not all docs can be opened, or the form stops working until I restart Firefox. This too points in the direction of annotating locally and sending annotations to h. for sharing through the API. Is there anyone already doing this? Built their own client, or using h. ‘headless’? Is there anyone who runs their own h. instance locally? If I could send things through the API, that might also include the Kindle highlights I pull in to my local system.
  8. In the same category of integrating h. into my pkm workflows, falls the interaction between h. and Zotero, especially now that Zotero has its own storage of annotations of PDFs in my library. It might be of interest to be able to share those annotations, for a more complete overview of what I’m annotating. Either directly from Zotero, or by way of my notes in Obsidian (Zotero annotatins end up there in the end)
  9. These first 100 annotations I made in the browser, using an add-on. Annotating in the browser takes some getting used to, as I try to get myself out of my browser more usually. I don’t always fully realise I can return to an article for later annotation. Any time the sense I have to finish annotating an article surfaces, that is friction I can do without. Apart from that, it is a pleasant experience to annotate like this. And that pleasure is key to keep annotating. Being able to better integrate my h. use with Obsidian and Zotero would likely increase the pleasure of doing it.
  10. Another path of integration to think about is sharing annotated links from h. to my blog or the other way around. I blog links with a general annotation at times (example). These bloggable links I could grab from h. where I bookmark things in similar ways (example), usually to annotate further later on. I notice myself thinking I should do both, but unless I could do that simultaneously I won’t do such a thing twice.

By way of experiment I have added, where they exist, annotations of my postings to the posting itself. Such annotations are made in Hypothes.is an online annotations tool, with social features.

Hypothes.is uses the W3C standard for annotations, and the service has an API. That opens it up for experimentation. For instance there is a Obsidian plugin that pulls in my annotations and brings them to my notes.

I now experimentally use the API to check for annotations that exist for a single posting. If such annotations exist, a page with a single blogposting will mention the existence of annotations just above the comments, and provide a link to them. For this I adapted the template for single postings in my WordPress theme. See the image.


The number of annoations, if any, is shown beneath individual postings above the comments.

Like with comments this opens up a surface for people to interact with my blog and have that interaction made visible on my site. As with comments and trackbacks of old, this also opens up a possibility for spam, especially as there is no way yet for me to moderate such annotations to be shown, nor a way to prevent them in general.

Hypothes.is has existed for a decade and reached 2 million annotated articles early this year. It’s relatively unknown, and not commonly used. This at the moment should be enough ‘protection by obscurity’ for now. Maybe in time I will reconsider, there are valid reasons to do so.

Existing users of Hypothes.is don’t need a link like I added to my postings, they see that in their browser already (depicted below). However it may encourage other readers of this blog to check out those annotations and perhaps create their own.

In a next step I may aim to list the existing annotations, and their authors, not just link to them, but not immediately. First I’ll think some more about how I might use the Hypothes.is API for other things in my personal workflow.


A screenshot of how a logged-in Hypothes.is user in their browser sees a post on this site that has annotations.

In Annotation by Kalir and Garcia, the authors observe that several things we now see as integral to what a non-fiction book is were actually also emergent phenomena from annotation by readers. Things like labels, rubrics, glossary and index. Kalir and Garcia make much of the social aspects of annotation, and the conversations those create. I’m fond of things that generate (distributed) conversations, I blog after all, but also have reservations when it comes to sharing tentative notes, associations and other annotations.

There are steps possible however to do a little bit more in allowing others to explore what I’ve written here. And an Index is an easy enough step to make. Easy enough because I can follow the footsteps of Chris Aldrich and Frank Meeuwsen who did this last year September/October.

Like them I installed the Multi column tag map WordPress plugin. Now this blog too has an Index, which shows you the tags I’ve used the past 20 years. Or rather the tags I’ve used at least 5 times.

It’s also immediately a useful tool for myself it turns out. Some postings had all their tags joined into a single tag (an error from when I imported posts while switching from Movable Type to WordPress, a decade ago), other tags are simple variations of the same word (e.g. singular and plural). Fixing these is easy, now that the Index list has surfaced the ones that need fixing.

A photo of a book index, by Ben Weiner, license CC BY ND

I’ve been musing about the use and value of a shared annotation tool like Hypothes.is. Chris Aldrich kindly responded in detail on my earlier questions about Hypothes.is. Those questions, about silo-effects, performativity if the audience for annotations isn’t just me, and what group forming occurs, are I think the key issues in judging its use to me. Circumventing the silo, integration with my own internal workflows and preventing performativity so fragile explorative learning may take place are the key concerns, where the potential of interaction and group forming in stimulating learning are the value it may yield.

I don’t yet readily see how I can use hypothes.is for annotation, as I think it would largely mean a switch away from annotating locally to doing so in-browser or rather in Chrome which is less a browser and more an adtech delivery vehicle. In general the browser is not a helpful environment for me when it comes to making notes. I now close a browser tab after clipping a web text to markdown which I then annotate locally later.

A first useful step I do see is bringing how others annotate my postings back to my own notes. Currently there are 66 annotations on my blogposts, stretching back three and a half years (mostly by the same person). I should be able to pull those in periodically through Hypothes.is’ API, or from an RSS feed, and integrate them into my local notes or perhaps show them alongside my blogposts (maybe by generating WebMentions about them, as I did here manually). As I have stated often, blogging means having distributed conversations and if Hypothes.is is where some of those conversations originate it is worthwile to make them visible.