donderdag 22 mei 2008

Onautomatiseerbaarheid

Onautomatiseerbare zaken... ze bestaan echt!

Soms begin je vol goede hoop aan het bedenken van requirements voor een systeem(pje), maar besef je na een paar uur analyseren dat je in een soort ondoordringbaar woud van verradelijke schaduwen, valse doorstruiken, moerassige dalen en onoverbrugbare kloven terecht bent gekomen. Dan kun je stevig door blijven hakken in dat woud in de (ijdele) hoop ooit nog eens aan de andere kant te komen. Of je kunt gewoon zuchtend opgeven. Neem nu een persoonlijk knutselprojectje waar ik al een tijdje over aan het denken ben: een prima voorbeeld van zo'n Mirkwood vol valse bijtspinnen. Althans, dat denk ik.

Ik ben zelf nogal een liefhebber van boeken. Correctie, van mooie boeken. Ingebonden, leeslint, Nigeriaans lammerleer, goud-op-snee, eerste druk, je kent dat wel. In de loop der jaren is dat (volgens de laatste gefundeerde schatting) uitgekomen op zo'n 3000 kloeke folianten op een kleine 80 meter plank. En daar begint langzaamaan een probleem te ontstaan: wat staat waar, en wat heb ik eigenlijk?

Nu ik laatst voor de derde keer -blij ende tevree van bevredigde hebzucht- een boek uit een postpakket haalde om enkele uren later vol frustratie te ontdekken dat exact zo'n zelfde exemplaar al op m'n planken staat, werd het tijd voor ondersteuning middels ICT. Keiharde registratie zonder enig respect voor de privacy van de betrokken boeken, hoe speciaal of zeldzaam ook. Minister Hirsch-Balin zal trots op mijn plannen zijn!

Wat moet zo'n registratiesysteem kunnen? Dat was de vraag die ik mezelf in goede IT-traditie stelde (niet erg Agile, ik weet het...) Wel, er moeten printbare lijsten uit kunnen komen. Op auteur, op titel, op taalgebied, op uitgever en wellicht ook op "reeks" (iets waar ik nogal waarde aan hecht, bijvoorbeeld alles uit de Baskerville-reeks van uitgeverij Atheneaum, of alles uit de Franse Bibliotheek van Van Oorschot). Die lijstjes zijn ideaal om mee te nemen op strooptocht in muffige antiquariaten (over zulke strooptochten op leven-en-dood is overigens een hilarisch boek verschenen van de duitser Walter Moers, "De Stad van de Dromende Boeken" - heerlijk zulke meta-literatuur!). En ik moet makkelijk en snel kunnen zoeken met mijn systeem om te zien of ik iets al heb. Liefst per SMS, maar dat is toekomstmuziek. Het vullen van het systeem moet eigenlijk met een barcode-lezer, maar dat is vast te moeilijk voor een high-level niet-embedded mannetje als ondergetekende. Dan maar ISBN-nummers kloppen.

Verder is sorteren, het heerlijke ordenen ook een belangrijke zaak. Want alleen met ordening kan ik ook élk boek meteen vinden op de plank, zonder lelijke planknummers te moeten gaan monteren. Nu koester ik de blijde gedachte dat mijn huidige ordening op de plank vrijwel ideaal is, zeker gezien constraints als plankhoogte, diepte-ruimte en visuele uitstraling. Maar in die plankordening komt dus veel complexere logica om de hoek dan iets triviaals als alfabet, auteur of aankoopdatum. Zulke zielloos efficiënte systemen zijn meer iets voor professionele biobliotheken, niet voor een persoonlijke thuisbibliotheek.

Boekomvang speelt dus een rol. Maar hoe orden ik daar digitaal op zonder elk boek te moeten nameten? De plankhoogte wil ik nog wel invoeren, maar 3000 keer een rolmaat trekken gaat zelfs mij te ver. Wellicht kan ik iets met een plugin van Amazon.com (Jeff Bezos en co hebben boekmaat in de database staan) en het Centraal Boekhuis. Maar die laatste heeft weer geen gratis toegankelijke API. En dan die visuele uitstraling van een boek. Die ordening gaat bij mij vaak op het type omslag. Is het leer of linnen, of toch gewoon stofomslag of (de horror!) een paperback? Die informatie is deels nog wel te vinden voor moderne boeken, maar niet voor een oude uitgave van Couperus uit 1950, of een obscuur museumgidsje uit 1972. En wat te denken van mijn (zeldzame maar her en der met zorg toegepaste) plankordening op basis van "ideologische compatibiliteit van de auteurs"? Je kunt Nietzsche niet zonder uitlokking van oorlog naast een lieve schat als Montesqieu zetten. En gaan Rimbaud en Verlaine alsnog in boekvorm hun relatie verdiepen als ik ze naast elkaar zet? Of wat te denken van een Wagner-biografie bij een facsimile-dagboek van Anne Frank? Dat gaat finaal mis natuurlijk! Maar hoe automatiseer je dat? Moet je de Wikipedia gaan parseren, een neuraal netwerk aanzwengelen en dat beslissingen laten nemen? En gaat dat algoritme zo zwaar op mijn arme core2duo CPU worden dat ik er een distributed computing project van moet maken via BOINC? Zucht... te veel vragen! Aargh! Scope Creep!

Ja, soms moet je eigenlijk gewoon al opgeven voor je beginnen gaat. Ik doe het wel met de hand, ja!