To hop in on the hypothes.is thread. I have spent quite a bit of time working with hypothes.is and related tooling (mostly in python), so here is a brain dump on interactions between org and hypothes.is. As others have mentioned, this could easily be its own thread. Best! Tom
A quick note on security for hypothes.is. Last I checked (about 30 seconds ago) there is still no way to control access to groups, if the identifier for the group leaks then anyone can access it. This is not the case for private annotations, those can only be seen by someone with your api key (hopefully just you). If you are looking for a light weight client that is hypothesis compatible that could be used to build a tool that can push annotations to an alternate backend then https://github.com/judell/hlib might be a reasonable place to start. Jon has previously used that to create a client that sent annotations to an alternate backend, which could in theory be an elisp implementation of a server for the w3c annotation standard that could feed things to org-protocol (or similar). If people are interested in this for org-mode I would suggest that a starting point would be to write an elisp implementation that can consume and produce the w3c web annotation standard format for annotations and/or the hypothesis api format. There are at least 3 different ways that web annotations can be anchored, offset, xpath, exact + prefix/suffix. In principle you could translate those into urls and use query parameters to encode the target selectors. The problem that you will run into is that there are some rather sizeable selector patterns like the example below (that I happened to have up in another terminal) which will be a pain to work with as urls. As a result of this a reasonable workflow would be to create a custom link type for the hypothes.is annotation urls e.g. the equivalent of #+link: hyp https://hyp.is/ and simply paste in a shortened form of the share links. In addition one might want some additional tooling so that the contents of the annotation could be retrieved and cached, or retrieved, transformed, and embedded in the document as an appendix during export (or similar). Unifying org-capture, org-protocol, and general org hyperlinking with the w3c spec seems like it would be hard in the general case, but for specific use cases I can imagine that some reduced syntax could be created that would fit in an org hyperlink. It actually would probably be easier to do this by coming up with a way to convert structured org sections or blocks to and from the w3c spec, name those, and then use org hyperlinks to refer to the annotations directly in an org file that functioned as an annotation store. Much less overhead than trying to set up a stripped-down stand-alone web annotation server, and if you can produce json to match the hypothes.is API then you could make use of that to publish and share annotations/links when you go to publish an org document. 'selector': [{'type': 'FragmentSelector', 'value': 'pes-1', 'conformsTo': 'https://tools.ietf.org/html/rfc3236'}, {'type': 'RangeSelector', 'endOffset': 92, 'startOffset': 86, 'endContainer': '/div[4]/div[1]/div[4]/div[1]/article[1]/section[1]/article[1]/div[1]/div[2]/ul[1]/li[1]/div[3]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/figure[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]', 'startContainer': '/div[4]/div[1]/div[4]/div[1]/article[1]/section[1]/article[1]/div[1]/div[2]/ul[1]/li[1]/div[3]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/figure[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]'}, {'end': 3034, 'type': 'TextPositionSelector', 'start': 3028}, {'type': 'TextQuoteSelector', 'exact': '100kHz', 'prefix': ' DC - 20kHz\nSampling frequency: ', 'suffix': '\nOnboard stimulatorNeural Interf'}]}