At the beginning of the year, Remy wrote about extracting Goodreads metadata so he could create his end-of-year reading list. More recently, Mark Llobrera wrote about how he created a visualisation of his reading history. In his case, he’s using JSON to store the information.

This kind of JSON storage is exactly what Tom Critchlow proposes in his post, Library JSON - A Proposal for a Decentralized Goodreads:

Thinking through building some kind of “web of books” I realized that we could use something similar to RSS to build a kind of decentralized GoodReads powered by indie sites and an underlying easy to parse format.

His proposal looks kind of similar to what Mark came up with. There’s a title, an author, an image, and some kind of date for when you started and/or finished reading the book.

Matt then points out that RSS gets close to the data format being suggested and asks how about using RSS?:

Rather than inventing a new format, my suggestion is that this is RSS plus an extension to deal with books. This is analogous to how the podcast feeds are specified: they are RSS plus custom tags.

Like Matt, I’m in favour of re-using existing wheels rather than inventing new ones, mostly to avoid a 927 situation.

But all of these proposals—whether JSON or RSS—involve the creation of a separate file, and yet the information is originally published in HTML. Along the lines of Matt’s idea, I could imagine extending the h-entry collection of class names to allow for books (or films, or other media). It already handles images (with u-photo). I think the missing fields are the date-related ones: when you start and finish reading. Those fields are present in a different microformat, h-event in the form of dt-start and dt-end. Maybe they could be combined:

<article class="h-entry h-event h-review">
<h1 class="p-name p-item">Book title</h1>
<img class="u-photo" src="image.jpg" alt="Book cover.">
<p class="p-summary h-card">Book author</p>
<time class="dt-start" datetime="YYYY-MM-DD">Start date</time>
<time class="dt-end" datetime="YYYY-MM-DD">End date</time>
<div class="e-content">Remarks</div>
<data class="p-rating" value="5">★★★★★</data>
<time class="dt-published" datetime="YYYY-MM-DDThh:mm">Date of this post</time>

That markup is simultaneously a post (h-entry) and an event (h-event) and you can even throw in h-card for the book author (as well as h-review if you like to rate the books you read). It can be converted to RSS and also converted to .ics for calendars—those parsers are already out there. It’s ready for aggregation and it’s ready for visualisation.

I publish very minimal reading posts here on What little data is there isn’t very structured—I don’t even separate the book title from the author. But maybe I’ll have a little play around with turning these h-entries into combined h-entry/event posts.

Have you published a response to this? :



# Liked by Jan Boddez on Saturday, April 25th, 2020 at 11:42am

# Liked by capjamesg on Wednesday, January 5th, 2022 at 12:00am

# Liked by James' Coffee Blog on Thursday, May 5th, 2022 at 4:15pm

Previously on this day

4 years ago I wrote Acknowledgements

Giving thanks.

7 years ago I wrote 100 words 034

Day thirty four.

8 years ago I wrote Analytical

Whither Google Analytics and Do Not Track?

8 years ago I wrote Huffduff up and up

Some numbers behind the audio.

11 years ago I wrote Shanghai

My travel report.

12 years ago I wrote Spam of the Gods

Greetings, I write you as a humble spacefaring probe…

14 years ago I wrote Accessibility 2.0

The closing panel at the Accessibility 2.0 conference.

14 years ago I wrote Tools and Technologies to Watch and Avoid

A presentation by Ian Forrester at the Accessibility 2.0 conference.

14 years ago I wrote A case study: Building a social network for disabled users

A presentation by Stephen Eisden at the Accessibility 2.0 conference.

14 years ago I wrote User-generated Content

A presentation by Jonathan Hassell at the Accessibility 2.0 conference.

14 years ago I wrote Rich Media and Web applications for people with learning disabilities

A presentation by Antonia Hyde at the Accessibility 2.0 conference.

14 years ago I wrote Fencing in the Habitat

A presentation by Christian Heilmann at the Accessibility 2.0 conference.

14 years ago I wrote Making Twitter Tweet

A presentation by Steve Faulkner at the Accessibility 2.0 conference.

15 years ago I wrote Identity and authority

Trust is not an algorithm.

16 years ago I wrote Print stylesheets

Some advice for presenting your content on the printed page.

19 years ago I wrote On the beach

Oh, dear. Brighton doesn’t fare too well in one man’s mission to rate the beaches of the world:

19 years ago I wrote Design vs. syndication

This site has been getting mentioned in some good company lately.

19 years ago I wrote Design vs. legibility

The Designer is a very pretty looking site that publishes a PDF design magazine.