Bibliograph: A Prototypical AppView for Books

As mentioned quickly in another thread, Bibliograph is an appview for applications to build against to build an opportunistic experience for books and reviewing books on ATProto. It’s currently powering a project of mine that’s in alpha, Livtet and was born of discussion with some folks on how to handle book discovery on-protocol.

If a book is not known to Bibliograph, it searches Google Books and OpenLibrary for it. Failing that, one can attempt to create a unverified book and someone with the librarian account label and approve it; a bit similar to how Hardcover, Fable and OpenLibrary currently operates; permitting transparency.

I’d love to get feedback on it, have people kick its tires and look at its code at GitHub - olamaelcu/bibliograph: An AppView for interfacing with bilbographic information on ATProto · GitHub

3 Likes

Quick follow-up to this thread: Bibliograph has grown a fair bit
since I posted, so I’ve written up a reference for the lexicons it
defines and the XRPC endpoints it serves.

(permalink to the commit that added it; lives at LEXICONS.md on main)

28 lexicon files under community.lexicon.book.*: 8 records (book,
claim, review, status, shelf, shelfItem, contributor, contributor.type)
and 11 queries + 7 procedures served by the AppView, plus a single
com.atproto.label.subscribeLabels WebSocket. The AppView publishes
records too: the five canonical contributor.type entries (author,
illustrator, editor, translator, narrator) and auto-created contributor
records when mirroring BookHive catalog data.

A few things this thread didn’t cover: an OpenLibrary editions bulk
backfill (resumable, idempotent), a BookHive catalog + reading-status
mirror, and the labeler emits book:author (claim-verified) and
book:librarian (admin) labels. Labeler DID is
did:web:biblio.livtet.olamaelcu.net; subscribe at
wss://biblio.livtet.olamaelcu.net/xrpc/com.atproto.label.subscribeLabels.

Kick the tires, file issues, roast the lexicons. The reference doc is
the entry point for what’s there now.