I can now share an article directly from my feed reader to my Hypothes.is account, annotated with a few remarks.

One of the things I often do when feed reading is opening some articles up in the browser with the purpose of possibly saving them to Hypothes.is for (later) annotation. You know how it goes with open tabs in browsers, hundreds will be opened up and then neglected, until you give up and quite the entire session.

My annotation of things I read starts with saving the article to Hypothes.is, and provide a single annotation for the entire page that includes a web archive link to the article and a brief motivation or some first thoughts about why I think it is of interest to me. Later I may go through the article in more detail and add more annotations, which end up in my notes. (I also do this outside of Hypothes.is, saving an entire article directly to my notes in markdown, when I don’t want to read the article in browser.)

Until now this forces me to leave my feed reader to store an article in Hypothes.is. However, in my personal feed reader I have already the opportunity to post directly from there to my websites or to my personal notes collection in Obsidian.
Hypothes.is has an API, which much like how I post to my sites from my feed reader can make it possible to directly share to Hypothes.is from inside my feed reader. This way I can continue to read, while leaving breadcrumbs in Hypothes.is (which always also end up in the inbox of my notes).

The Hypothes.is API is documented and expects JSON payloads. To read public material through the API is possible for anyone, to post you need an API key that is connected to your account (find it when logged in).

I use JSON payloads to post from my feedreader (and from inside my notes) to this site, so I copied and adapted the script to talk to the Hypotes.is API.
The result is an extremely basic and barebones script that can do only a single thing: post a page wide annotation (so no highlights, no updates etc). For now this is enough as it is precisely my usual starting point for annotation.

The script expects to receive 4 things: a URL, the title of the article, an array of tags, and my remarks. That is sent to the Hypothes.is API. In response I will get the information about the annotation I just made (ID etc.) but I disregard any response.

To the webform I use in my feedreader I added an option to send the information to Hypothes.is, rather than my websites through MicroPub, or my local notes through the filesystem. That option is what ensures the little script gets called with the right variables.

It now looks like this:


In my feed reader I have the usual form I use to post replies and bookmarks, now with an additional radio button to select ‘H.’ for Hypothes.is


Submitting the form above gets it posted to my Hypothes.is account

I’ve created a small Alfred workflow to find a note name (folderpath/filename.md) in my Obsidian vault, and put it in markdown as link ([[filename]]) on my clipboard. It’s available on github now. If you use both Alfred and Obsidian (or some other markdown tool), it may be of use.

The use case is this: I annotate webarticles in hypothes.is. Those annotations end up in my file system in markdown where I use them in Obsidian. Therefore it is useful to me to link to existing Obsidian notes while I’m annotating, and not leave that until I encounter the annotation in Obsidian again (see an example). That way an annotation is already linked to some existing material, and not a lonely note in my collection of clippings. Having links in annotations at the same time increases the likelihood I will encounter them again naturally as I interact with my notions.

Until now I did this by searching in Obsidian and then copy-pasting that into hypothes.is adding the [[ ]] mark-up for an internal link.

This morning Frank mailed me to ask about my links in annotations. While I answered his mail I realised it would be easy to put the search and paste into an Alfred workflow, so that I don’t need to leave the browser/hypothes.is interface to add a link to an Obsidian note. Thank you for the nudge Frank!

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.

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.

Somehow it is hard for me to find any comments I make in Hypothes.is (h.) on the annotations of others. If I don’t remember on which annotation I commented it even becomes impossible. If someone else has responded to my comment, I get an e-mail with a link and that is the only reliable way I know to retrieve my own comments. H. help files don’t seem to mention it.

I would expect any comments I make to appear in my own overview of annotations, but they don’t.

Here’s a comment I made on an annotation by another user (screenshot below).

Notice I tagged the comment with ‘zettelkasten’.

The comment does not appear in my general overview of annotations I made, although it is in itself an annotation.

The comment also does not appear when searching my own profile using the tag I added to the comment.

I see Chris Aldrich filed the same issue, last February, but got no response. I added my own comment there to perhaps make the issue visible again.

Here are some impressions of my increased usage of Hypothes.is, a social annotation tool, in the past few days.
I follow Chris Aldrich his Hypothes.is RSS feed, and his usage has been both a good example and source of learning in the past months, as well as a nudge to experiment and adopt Hypothes.is myself.

What follows is a list of some early impressions that I formulated earlier today in an email. I thought I might as well post them here.

  • I played with the API to get a grip of how I might interact with the annotations I make, and with those of others I’m interested in. Added the existence of annotations to my blogposts in WordPress through the API too.
  • The Obsidian plugin to get annotations into my notes is an absolute prerequisite, because I need those notes in my own workflow.
  • I find working in browser for annotations somewhat distracting and uncomfortable (and I need to remind myself that they will end up in my notes, I feel the urge to also download it directly to my notes.)
  • I try to add an Archive link to the annotated article as the first link. It is slowly becoming habitual.
  • I mention existing notes in my annotations when I make them in Obsidian. Because it is one context that is a matter of starting a link [[ and I have forward search through all note titles. In hypothes.is being browser based this is a bit harder, as it means switching tools to retrieve the correct note titles. They do then work when they end up in Obsidian of course. At the same time, in my earlier use of a markdown downloader I would just mention those associations in the motivation to save a link, which is worse. Hypothes.is sits in the middle of saving a bookmark with motivation and annotating in Obsidian itself.
  • I do have some performative urges when annotating publicly. Maybe they will disappear over time.
  • The firefox hypothes.is bookmarklet I use doesn’t seem to play nice with archive.org. There’s another I haven’t tested yet.
  • I notice that any public annotations are licensed CC0 (public domain). Not sure what I think about that yet. It’s a logical step as such, but I don’t fully see yet what it may mean for subseqeunt learning processes internally and further down the process of creating insights or outputs. Is CC0 also applied to closed groups (educational settings e.g.)? Private annotations are just that, and don’t have CC0, but then you miss out on the social aspects of annotation.
  • My thoughts keep wandering to interacting with hypothes.is without using it directly to annotate webarticles through the browser. Are there any tools or people who build on or share with hypothes.is using the W3C standards / API, but don’t necessarily use hypothes.is themselves? Or run their own instance, which should be possible? I suspect that would open opportunities for a more liquid experience between this blog, my notes, and annotated articles.