Back in 2012 E and I gave about half of our many books away as part of a BBQ party. We kept what we hadn’t read yet but still found interesting, as well as reference books and books we had read and felt attached to. In the decade since I’ve bought a lot of new books, based on interests, recommendations, or because they were mentioned in books I did read, and of course based on arbitrary reasons like the title and design jumped out at me while browsing a bookstore. Even though E and I don’t regularly descend anymore on a bookstore like a swarm of locusts on a field, something we did frequently in the past, over the years the collection of unread books I have has grown significantly. Those stacks of unread books carry a certain weight on my mind, a nagging backlog of books to read. I stopped buying for a long while because I ‘should’ read the others first.
Taleb in his book The Black Swan comes up with the concept of the Anti-Library. I don’t remember that specifically from reading The Black Swan, but I came across it again in this posting at Ness Labs. I do remember reading Taleb’s anecdote about Umberto Eco’s enormous book collection though, which concludes with the concept of the Anti-Library.
An Anti-Library is your personal curated collection of books, papers etc. that you haven’t read. Taleb posits that what you haven’t read, but did have reason to collect and adopt into your library constitutes a research tool. Because it has more potential value (in terms of new insights etc) than what you’re already familiar with and have read.
This puts the focus on how I can actively use the stacks of unread books around the house and on my devices, while at the same time letting go of the feeling of guilt attached to it (“I really should read that book I bought soon….”). This switches the perspective from ‘I bought this book to read immediately’ to ‘I bought this book so it’s there when I might need it’. From ‘backlog’ to ‘shelves of opportunity’.
Thinking in terms of an anti-library also allows paying attention to how you deliberately enlarge the collection of unreads, which is a curation task. The unread books aren’t random choices, they are a selected set of personal resources concerning themes you find interesting or that make you curious.
I de facto already have an anti-library, as the result of procuring books faster than reading them. To make it fully visible as such to myself and use it as a research tool, I probably just need to add a few tweaks. Such as:
- Maintaining an index of unread books. I created a collection ‘Anti-library’ in Zotero, which also contains other collections with the references to things I did read. Zotero works well with both books and (academic) papers. I already had in my notes a list called ‘my reading list’ which is an overview of books I think would be useful to read at this moment in time, which I moved to Zotero. And I could make an additional round through my e-ink devices, and our home to add to the list of unreads.
- When adding a new unread book, jotting down why I thought to add it. This is helpful context in evaluating it later. I do the same for bookmarks I store for later reading/turning into notes, where I write down why I thought it relevant and to which other things I think it might be connected.
- Keep doing what I already do, which is checking out recommendations from peers, and what other books the ones I enjoy currently reading are referencing
- I now post here about books I read sometimes, maybe I should do the same for books I acquired but didn’t yet read, and share the reason I think it might be an interesting book. Have an anti-library stream
- When exploring a new question, consider which unread books may contain relevant insights (next to exploring what my notes already contain on the question at hand)
The other side of a book case, image by Ton Zijlstra, license CC BY NC SA
@ton Thanks! That is a new way of looking at my unread books I needed. :)I am still reading very very slowly the Black Swan though. But I will put the unread part of the book (80% now) in my anti-library, and not feeling guilty.
I’d read that Ness Labs article but thanks for the reminder. Even if I don’t go to the lengths you suggest of cataloguing my unread books I will benefit from this guilt reducing way of coping with the fact that my purchasing continues to outstrip my reading.
@ton I like this idea of an Anti-Library. I could even see how this could extend to unread ebooks: have an ebook reader totally devoted to and loaded only with The Unread.
@ton @bradenslen What a fantastic idea, and I love how you’ve applied it to both books and bookmarks. I’ve always been tagging my bookmarks and sometimes adding a description, but now I want to incorporate the why in the description.
Thanks for sharing this!
Oh, I like this idea. I’m revamping my Calibre Library and this would be a great addition. @ton @peterimoore
Also on:
Micro.blog icon
Twitter icon
Oh, I like this idea. I’m revamping my Calibre Library and this would be a great addition. @ton @peterimoore zylstra.org/blog/2021/02/s…
Interesting thought from Ton, to maintain an Anti-Library. I have an enormous one in my Pocket account.
A year ago I blogged about federated bookshelves, in response to Tom Critchlow’s posting Library JSON, A Proposal for a Decentralized Goodreads.
As I reread both postings this morning as well as some of the links Tom points, specifically Phil Gyford’s posting as he starts from the reading experience, not from the tech, and Matt Webb’s for suggesting RSS/OPML, I jotted down a few additional notes.
Since the previous posting I stopped linking to Amazon and Goodreads, and having a way to point others to books and vice versa, for discovery is of more interest to me now
I envisage myself and others having multiple lists (by topic of interest, genre, language, year, author maybe)
I’d like to be able to point from one of my lists to another (from an author field in one list to an author centered list e.g.)
I care less about ‘factual’ reviews, more about reasons why people chose a book (‘the cover design jumped out at me in the store’ or ‘this book touches upon X connected to the topic Y that I’m currently exploring’, which goes back to my notions of social filtering
Similarly I don’t need images of book covers, which also potentially carry copyright issues, but links to author websites or their publisher would be useful, as is a link to a list sharer’s/reader’s blogpost
I’d like to be able to see/get/follow other people’s lists
I’d like sharing a list of other people’s lists I follow
I’d like to be able to adopt entries in other people’s lists into one of my lists (e.g. an authour, a book or thematic list
It would be great if such lists could be imported somehow into tools people might use, e.g. Calibre, Delicious Library, Zotero
I don’t think you need a unique ID for a book, like Tom originally suggested, if the aim is discovery. It’s enough to be able to build triangles that allow navigation and discovery, from me to a title or author, to another reader or more books by an author, or other books in lists where this one shows up
OPML with our without RSS seems the most simple approach here, as the type of info we’re talking about is very well suited to outliners. OPML outlines, and outlines of outlines, can be machine readable and human readable at the same time (case in point, my OPML list of blogs I follow, which is human readable as a blogroll and can also directly be imported into any feedreader
The first list I think I should make as an experiment, is the list of things I might read, my current non-fiction Anti-Library
That last point I’ve added to my things to do if I find some spare moments.
The other side of a book case, image by Ton Zijlstra, license CC BY NC SA
After I wrote about federated bookshelves again two weeks ago, I decided to build a proof of concept. A proof of concept for providing an OPML file that contains a list of books, in a way that can be parsed by others. I roughly follow Tom Critchlow’s “spec”.
Because I am making up my own data attributes (although I follow schema.org where possible), I decided to not just create an OPML list, but also to add an XSL template so that OPML is not just machine readable but also human readable in a browser.
The general idea is I have a list that contains lists of books. A list of books can contain books directly, or only be a link to that list of books. A list of books can be one of my own lists on my own domain, or it can be a list published by someone else on a different web address. This allows me to point to other people’s lists when it is somehow relevant to me.
A book in a list I provided with data attributes like title, author and urls for the book and author, and again fields pointing to other people, like the url for the list I may have found the book, or the url for the person / review which was my recommendation.
This allows discovery for both you and me. It makes it work like social software: in triangles, where you can navigate from a person, to a piece of content (a book or list), and to a piece of metadata which is itself the url of another list, or the url of another person, that then have their own metadata pointing to others etc.
Because my lists are structured opml, I should be able to automatically create list files from my own book notes.
Let’s have a look at the proof of concept:
I have an OPML file, called ‘books.opml‘
At the top of that screenshot you can see the opml file calls a XSL stylesheet, named test. I created it by adapting the similar set-up I have for my OPML blogroll. Because of that stylesheet the book list is human readable in a browser and looks like this:
What you see is first some info about me as the creator of the list. It has a link to this list, which is my main list, and a link to my site.
Below it is a list of book lists.
The first of those book lists, called ‘Fiction I read in 2021’ doesn’t have its own url, and the books are shown directly. Those books may have a link to the book, to the author, some notes, or a link to who recommended it to me, or in which list I found it. It also has a short list description at the top.
Underneath it is another list by me, called ‘Current non-fiction anti-library’, that is just linked.
Underneath that are two lists, created by Tom Critchlow and Tom Macwright, both of which are just links. The list item in the outline has an author attribute, and if it’s not my name it gets shown as a ‘followed’ book list. Theoretically if an external link is an OPML file itself, I could include it and show it right here.
Now if you click my other book list, the anti-library list (read here what an anti-library is), that is another opml file.
It calls the same XSL stylesheet as the other list, and renders in the browser as
What you can see in this second list is that it starts with the same link to the main list and info about me, and then shows how the list itself has both a URL and a description. It contains books, and see how one of those books has a link to the book itself. (I don’t link to Amazon or Goodreads, so won’t have links for most books, only if there’s a link to the publisher’s or author’s page on that book)
In the description of the last book you also see how it has a link to the list (Tom Macwright’s) in which I found it, as well as a link to a posting that served as recommendation for me.
For now what I like is that these lists bring their own viewer with it (your browser using my stylesheet), and can point to other people’s lists both directly as a list in my own collection, or as a reference for one of the books. Without having to make assumptions about other people’s lists or parse them somehow, it still allows connecting to them (federating), and discovery. My own lists use schema.org terms for book lists (collection) and books (book). Three attributes I cannot place within schema.org terms, at least not without adding additional subnodes in the outline: author url, reference list (url of the list I found a book in), and reference url (the person or posting that recommended the book to me).
UPDATE: I described the data structure for booklists I used.
As a form of WAB* I’ve made it easier for myself to update my OPML book lists. I created those lists earlier this year as a proof of concept of publishing federated bookshelves. Updating OPML files residing on my hosted webserver is not a fun manual task. Ultimately I want to automate pushing lists from my personal working environment (notes in Obsidian) to my site. Given my limited coding skills I made a first easier step and created a webform in a php script that allows me to add a book to an opml list. It has a drop-down menu for the various OPML lists I keep (e.g. fiction2021, non-fiction2021, currently reading, anti-library), provides the right fields to add the right OPML data attributes, and then writes them to the correct list (each list is a separate file).
That now works well. Having a way to post to my book lists by submitting a form now, I can take the next step of generating such form submissions to replace manually filling out the form.
* Work Avoiding Behaviour, a continuation of the SAB, Study Avoiding Behaviour that I excelled in at university. WAB seems to fit very well with the current locked down last days until the end of year. The Dutch terms ‘studie/werk ontwijkend gedrag’ SOG/WOG lend themselves to the verb to ‘sog’ and to ‘wog’. Yesterday when Y asked E what she had been doing today, E said ‘I’ve been wogging’, and I realised I had been too.
I have a working proof of concept to take individual book notes from Obsidian, turn them into an OPML list of books, and publish them on this webserver. As I had time off these past days I’ve allowed myself to do some code tinkering, resulting in the set-up shown in the image below.
A sketch of my set-up, made in Excalidraw within Obsidian. The blue items now exist, the grey items are still to be done.
The workflow is now as follows:
Within Obsidian I have made a template for book notes, which has a number of inline data fields (shaped ‘field:: value’). These fields contain the same attributes that I use in my OPML files, using the data structure I made earlier. It also contains one additional field, the booklist it is part of.
When I first create a new book note I use the template and fill out the inline data fields. If it changes status (to read, reading, read) I update the attributes if needed. Next to those data fields it can contain anything else (e.g. my Kindle hihglights and remarks end up in those book notes too.)
I can create lists of books in Obsidian using the Dataview plugin, which can find and interpret the inline data fields.
I can run a PHP script, on my laptop, that iterates through all the files in the folder that contains my book notes. It reads the inline data fields and turns them into OPML lines with the same attributes. It saves it in the correct OPML file using the booklist field. This means that when I move a book in Obsidian from my “anti-library” to the “currently reading” list and then to the “non-fiction 2021” or “fiction 2021” list by changing that single booklist data field, that will get reflected in the OPML as well. The OPML files are saved in a folder, and both human and machine readable.
I have a second PHP script that also runs locally on my laptop, that iterates through the files in the folder. For each of the .opml files it finds that have changed in the past week, it will get the filename and the file content. It then sends those two data fields (and an access code) to a script on my web server as POST form data.
The script on my web server accepts POST form data and if the access code is ok, will save the submitted file content using the submitted file name. After that the OPML files on my webserver have the same content as my Dataview overviews within Obsidian, and are fully based on the inline data fields in my individual book notes.
I’ve tested this flow and it works correctly. There’s one important improvement to still make. It currently goes through all my book notes and creates all opml files anew. I want to change that to start from the recently changed book notes and then generate the corresponding opml files. For now it is fast enough locally to not be an issue though that it iterates through the entire folder of book notes.
A second step to take is an addition: to render the same information as JSON files. Dave Winer’s OPMLpackage is likely useful here. Early on there was some discussion on which format to use, and I don’t see a need to choose. I’ve created it using my preference, but the same information can be formatted differently in parallel if it aids usage and federation.
To fully automate this, I still need to set a cron job that calls the first and second local script in turn, every other week or so.
Now that it all works, I will need to see how it goes in practice when I pick a new book, or finish one.
I also need to clean up the code (removing the tests I added in various steps) and translate some of the comments in English. Then I can shareI’ve shared the scripts on GitHub, so others can use it for inspiration.Future steps may include generating book postings in my blog here, directly based on Obsidian notes as well.
Having created a working flow to generate OPML booklists directly from the individual book notes in my PKM system, I did the first actual run in production of those scripts today.
It took a few steps to get to using the scripts in production.
I have over 300 book note files in my Obsidian vault.
Of course most lacked the templated inline data fields that allow me to create lists. For the 67 fiction books I read in 2021 I already had a manual list with links to the individual files. Where needed I added the templated data fields.
Having added those inline fields where they were missing I can easily build lists in Obsidian with the Dataview plugin. Using this code
results in
The same inline data fields are used by my scripts to read the individual files and build the same list in OPML
That gets automatically posted to my website where the file is both machine and human readable.
Doing this in production made me discover a small typo in the script that builds the OPML, now fixed (also in the GitHub repository). It also made me realise I want to add a way of ordering the OPML outline entries by month read.
Lists to take into production next are those for currently reading (done), non-fiction 2021, and the anti-library. That last one will be the most work, I have a very long list of books to potentially read. I will approach that not as a task of building the list, but as an ongoing effort of evaluating books I have and why they are potentially of interest to me. A way, in short, to extend my learning, with the list as a useful side effect. The one for currently reading is the least work, and from it the lists for fiction 2022 and non-fiction 2022 will automatically follow. The work is in the backlog, getting history to conform to the convention I came up with, not in moving forward from this point.
In parallel it is great to see that Tom Critchlow is also looking at creating such book lists, in JSON, and at digesting such lists from others. The latter would implement the ‘federated’ part of federated bookshelves. Right now I just point to other people’s list and rss feeds in my ‘list of lists‘. To me getting to federation doesn’t require a ‘standard’. Because JSON, OPML and e.g. schema.org have enough specificity and overlap between them to allow both publishers of lists and parsers or such lists enough freedom to use or discard data fields as they see fit. But there is definitely a discussion to be had on identifying that overlap and how to use it best. Chris Aldrich is planning an IndieWeb event on this and other personal libraries related topics next month. I look forward to participating in that, quite a number of interesting people have expressed interest, and I hope we’ll get to not just talk but also experiment with book lists.
I find that I feel writing a non-fiction subject oriented book is nonsense for non-academics. I feel a strong aversion to the idea of writing a non-fiction book, as people have suggested to me occasionly since university.
Different elements are part of that aversion:
There’s a plethora of non-fiction books that to me seem 300 to 400 pages of anecdotal padding around a core idea that would fit on the backflap. Many such books lack tables of content and indexes, seemingly to better hide that one or few core ideas, so you need to go through all pages to find them.
The motivation for non-fiction writers to write a book I often find suspect. Aimed at marketing and PR, in support of selling themselves as consultant for instance. Written not to serve an audience, or even find one, but as a branding prop. That makes the actual content often even thinner. Such as taking something anecdotal like “I had this great project I enormously enjoyed doing” and anointing it as the new truth, “Organise all your projects like this, it’s a universal method!”
I equally find my own favourite topics suspect as material for writing a book. I don’t think any of the topics I work on, and have been working on, are deep enough or have enough solid foundation to stand on their own as a book. It could only become a range of anecdotes around ideas that themselves fit in a sentence or two. In my activities context and environment are key in working out how an idea can be made to work for a client, and that’s the work. That’s a good source of anecdotes, but not more. See the first bullet. A book about it would be a collection of opinions, and in my eyes would take a rather large amount of work to give those ideas a more solid footing.
In a conversation with E about this a few months ago, she said that’s a very arrogant stance towards authors (they have nothing to say), as well as belittling myself (I have nothing to say). I think those are both the same things, that most people, including me, don’t have enough to say to fill a book, to spend tens of thousands of words on. Many have enough to say on enough moments to at that time fill a great blogpost, article, a pamphlet (like the one about birthday unconferences shown in the right hand column), or an essay. But not a book, an artefact that seems such a heavyweight creation and production process in comparison. There are those who write a book by collating material that was previously written as blogposts, or as internal notes, and then somewhat rearranged. I see that as case in point more than counter argument.
As stated at the top, I make exceptions for academic books, explaining or introducing a field or actual research and their popular science counterparts, and for non-subject non-fiction, that e.g. describes a journey (geographically, or through life for instance, ‘true stories’, the history of a topic and how we ended up in the current situation, that sort of thing).
I also don’t mean fiction. Fiction’s role is very different, and any story that makes you read the next sentence and the next and the next is not what I mean here.
In that sense I very much appreciate the work of Cory Doctorow, who writes articles, essays, columns and blogposts about the topics he cares about, and writes fiction books to explore those same topics along different and novel routes.
Yet, our house holds many non-fiction books. A stack of books that keeps ever growing. So, why is that? Is it that there is more value in the whole, the collection of books read, and those unread, as opposed to the lack of value I perceive in any singular book in itself? Or maybe I don’t understand what writing a non-fiction book is, and what it is for. There are people reading my blog who have written non-fiction books. What were your motivations and aims? Why a book?
In reply to a remark by Chris Aldrich
I think the point of an anti-library is not to read it all. In that sense it is not problematic that it grows faster than one can ever read. Adding something to a personal anti-library is not an expression of the intention to read it. It’s not a ‘list of books to read’. It is a preselection of things that might be interesting to read for future you. When future you is pondering a question, or exploring a topic, they can use that as filter to actually select a few books to read. Adding to the antilibrary is preselection, picking to read from it is the actual selection. For each of those 574 books you preselected Chris, do you write down why you think they’re interesting? Keeping the preselection arguments available to yourself cements its effect, aiding actual selection later. Since a year or two I jot down my motivation and associations with books as well as web articles I clip and save. It helps me a lot selecting things to read later on.