Release van WorldCat-edities en -bezitgegevens
annas-archive.gl/blog, 2025-09-11
TL;DR: we brengen edities- en bezitgegevens uit voor tientallen miljoenen WorldCat-metadatarecords, die vrijwel alle ISBN’s vertegenwoordigen die bij WorldCat zijn geregistreerd. Deze release bevat gegevens over ~20M boeken die volgens ons in het bezit zijn van een klein aantal instellingen wereldwijd en nog niet in Anna’s Archief staan.
We hebben nu onze TODO-lijst met zeldzame boeken om te archiveren en ervoor te zorgen dat ze tot in eeuwigheid bewaard blijven. Deze release is beschikbaar als torrent.
Achtergrond
Anna’s Archief heeft als missie de geschreven taal van de mensheid te bewaren. Hoewel er wereldwijd 53M boeken via onze torrents worden verspreid, beginnen we pas net antwoorden te krijgen op de belangrijkste vragen:
1. Hoeveel boeken zijn er ooit gepubliceerd?
2. Welk percentage van de gepubliceerde boeken is bewaard in het archief?
3. In welke boeken moeten we als eerste tijd en moeite investeren om ze te archiveren en te bewaren?
In oktober 2023 publiceerden we de 1,3B WorldCat-scrape, die metadata bevat over vrijwel alle boeken die in WorldCat zijn vastgelegd. Deze scrape gaf ons het antwoord op de eerste vraag. Vervolgens organiseerden we data-science- en visualisatiewedstrijden, die ons hielpen de tweede te begrijpen (we hebben ongeveer 10-20%).
Hoewel de WorldCat-dataset 1,3B metadatarecords bevat, ontbreekt informatie over edities en bezitsgegevens. Bezitsgegevens vertellen ons hoeveel bibliotheken wereldwijd een exemplaar van een bepaald boek hebben, en vooral waar de boeken zich bevinden. Editie-informatie is ook nuttig, omdat we daarmee records die bij hetzelfde onderliggende werk horen kunnen dedupliceren. Editie- en bezitsgegevens staan centraal in deze release.
Door de eerdere WorldCat-metadata te combineren met de nieuwe bezitsinformatie, kunnen we eindelijk een TODO-lijst maken van zeldzame boeken om te archiveren en te bewaren!
Technische beschrijving
De eerder uitgebrachte WorldCat-scrape bevat gedetailleerde metadatarecords van honderden miljoenen afzonderlijke boeken, geïndexeerd op hun “OCLC-nummer”. Sinds 2023 is WorldCat aanzienlijk beter beschermd tegen bulktoegang en scrapen — ze gebruiken nu CloudFlare op alle pagina’s en API-endpoints. Hoewel dit onze taken moeilijker maakte, liet het ons niet afschrikken! We hadden simpelweg een manier nodig om de lijst met OCLC-nummers te filteren en te prioriteren voordat we zorgvuldig de edities- en bezitsrecords konden scrapen.
Eerst beperkten we de scrape tot records met een gedefinieerde ISBN. Hoewel dit boeken uitsluit die zijn gepubliceerd vóór de invoering van ISBN’s in de jaren 1970, verkleint het de zoekruimte van 1,3B naar een realistischer 170M records.
De API-endpoints voor bezitsgegevens in WorldCat kunnen worden bevraagd voor “één editie” of “alle edities”. Omdat we vooral om zeldzame werken geven (en minder om afzonderlijke edities van dat werk), is het verzamelen van bezitsgegevens voor “alle edities” voldoende. We kunnen ook gegevens gebruiken over welke OCLC-nummers edities van hetzelfde werk vertegenwoordigen, oftewel “editieclusters”, om het aantal queries verder te verminderen. We hoeven slechts één query voor bezitsgegevens uit te voeren voor één lid van een editiecluster, met de parameter “alle edities” ingesteld.
We begonnen met het scrapen van het search_editions-endpoint om deze editieclusters te ontdekken. Dit komt overeen met de informatie op https://search.worldcat.org/formats-editions/{{oclc_number}}. We verzamelden editiegegevens van 71M OCLC-nummers voordat het endpoint te goed werd beschermd om efficiënt te scrapen. Het search_editions-endpoint gaf informatie terug in het briefRecords-format dat we eerder hebben gezien, met één item voor elk lid van het editiecluster. Deze records staan in de release met regels die "type":"briefrecords_json","from_filenames":["search_editions_response/XXX" bevatten
{"numberOfRecords": 2, "briefRecords": [{"oclcNumber": "100001", "title": "Transport engines of exceptionally high specific output: a symposium arranged by the Internal Combustion Engines Group [of] the Institution of Mechanical Engineers", "titleInfo": {"text": "Transport engines of exceptionally high specific output: a symposium arranged by the Internal Combustion Engines Group [of] the Institution of Mechanical Engineers"}, "creator": "Institution of Mechanical Engineers (Great Britain). Internal Combustion Engines Group", "contributors": [{"nonPersonName": {"text": "Institution of Mechanical Engineers (Great Britain). Internal Combustion Engines Group"}, "isPrimary": false}, {"nonPersonName": {"text": "University of Nottingham"}, "isPrimary": false}], "date": "1969", "machineReadableDate": "1969", "language": "eng", "generalFormat": "Book", "specificFormat": "PrintBook", "publisher": "Institution of Mechanical Engineers", "publicationPlace": "London", "isbns": ["0852980086", "9780852980088"], "subjectsText": ["Internal combustion engines Congresses", "Moteurs a\u0300 combustion interne Congre\u0300s", "Internal combustion engines", "Conference papers and proceedings"], "series": "Institution of Mechanical Engineers (Great Britain)", "seriesVolumes": ["1968-69, v. 183, pt. 3B"], "peerReviewed": "N"}, ... ]
De editieclusters die we ontdekten maakten het mogelijk om het aantal bezitsqueries aanzienlijk te verlagen, maar het was onvolledig. We hadden een nieuwe manier nodig om OCLC-nummers te dedupliceren die hetzelfde werk vertegenwoordigen.
Na verdere verkenning van de initiële WorldCat-scrape bedachten we een methode op basis van ISBN’s. Het is belangrijk op te merken dat één WorldCat-record meerdere ISBN’s kan vermelden, en dat één ISBN gekoppeld kan zijn aan meerdere WorldCat-records met verschillende OCLC-nummers. Soms vertegenwoordigen WorldCat-records met dezelfde ISBN duidelijk verschillende boeken (op titel, auteur, enz.). Om deze gedupliceerde en overlappende informatie te duiden, maakten we een mapping van ISBN naar OCLC-nummers, en voegden we vervolgens alle records met dezelfde ISBN en vergelijkbare titels samen, bepaald door een Levenshtein-overeenkomst van >80%. Hierdoor konden we voor elk ISBN-titel-paar één OCLC-nummer kiezen om te scrapen. We verkleinden de lijst met te scrapen bezitsinformatie verder op basis van de eerder ontdekte editieclusters (OCLC-nummers binnen hetzelfde editiecluster werden samengevoegd) en op basis van het veld “other formats”, dat in sommige records uit de initiële WorldCat-scrape aanwezig was. We begonnen de bezits-scrape met een lijst van 70M records, in plaats van de oorspronkelijke 170M.
Het eerste endpoint dat we scrapen was het “search_holdings_summary”-endpoint. We voerden deze queries uit met de parameter “alle edities” ingesteld. Dit gaf informatie terug over het aantal bezitsvermeldingen en edities voor een OCLC-nummer. Deze records staan in de release met type search_holdings_summary_all_editions.
{"totalHoldingCount": 804, "totalEditions": 20}
Het summary-endpoint gaf ons het totale aantal bibliotheken dat een exemplaar van het boek bezit, waardoor we de queries voor het daadwerkelijke bezits-endpoint voor zeldzame boeken konden prioriteren. Vervolgens bevroegen we het search_holdings-endpoint, dat informatie teruggeeft over de bibliotheken die elk boek bezitten. Deze records staan in de release met type search_holdings_all_editions_response. De lijst met bezitsvermeldingen correspondeert met bibliotheek-id’s, die zijn gespecificeerd in "other_meta_type":"library"-records.
{"totalHoldingCount": 1, "holdings": [57663], "numPublicLibraries": 1}
We richtten ons erop om het search_holdings-endpoint eerst te bevragen voor boeken die door tien of minder bibliotheken worden gehouden. Door beperkingen op het bezits-endpoint waren de meeste responses beperkt tot de eerste tien resultaten, maar dat is minder belangrijk voor ons doel om zeldzame boeken te identificeren. Indien nodig kunnen meer resultaten worden verkregen door de locatieparameters in de query te wijzigen. Af en toe gaven de twee bezits-endpoints sterk uiteenlopende informatie voor het getal “totalHoldingCount”. Wanneer dit gebeurde, scrapen we één of beide endpoints opnieuw en konden we de meeste records met sterk afwijkende aantallen aanzienlijk verbeteren.
Records met type search_holdings_all_editions_response_type komen overeen met de kwaliteit van de response van het search_holdings-endpoint. general-records zijn het meest compleet, terwijl syndicated-records beperkt zijn tot een set “featured”-bibliotheken. null komt overeen met records die zijn verzameld vóórdat het endpoint werd beperkt, en kan worden aangenomen als general.
In totaal bevat deze release bezitsaantalinformatie voor 71M OCLC-nummers en bezitsinformatie voor 50M OCLC-nummers, wat het merendeel vertegenwoordigt van de boeken die door tien of minder bibliotheken worden gehouden.
Zeldzame boeken identificeren
Hoewel we bezitsaantallen en locaties hebben voor tientallen miljoenen OCLC-nummers/ISBN’s, is het identificeren van écht zeldzame boeken niet zo eenvoudig als sorteren op de minst gehouden items. De OCLC-database bevat een groot aantal onvolledige, onnauwkeurige en gedupliceerde records, wat deze taak lastig maakt. Om zeldzame boeken van hoge kwaliteit te identificeren, gebruikten we de volgende heuristieken. We gebruikten ISBN als de primaire sleutel in deze analyse om eenvoudige vergelijkingen met de andere metadata-collecties van Anna’s Archief mogelijk te maken.
* Neem alle OCLC-nummers waarvoor beide bezits-endpoints een “totalHoldingCount” van X gaven, waarbij X maximaal tien is. Dit filtert op records van hogere kwaliteit met overeenstemmende bezitsinformatie, waarvan het waarschijnlijk is dat ze daadwerkelijk in een bibliotheek bestaan.
* For a given OCLC number, if it is associated with 1 ISBN, and that ISBN is not associated with any other OCLC numbers, we call this a “tier 1” rare book. * If the OCLC number is associated with multiple ISBNS, or the ISBN is associated with more than 1 OCLC numbers, and we have holding information for all of them, and all holdings are at most X, we call this a “tier 2” rare book. * The OCLC number is recorded as “tier 3” otherwise (and may be a false positive).Van de 8M OCLC-nummers waarvoor beide endpoints een “totalHoldingCount” van 1 retourneerden:
* 59% vallen in tier 1
* Slechts 1.8% van de tier-1-records zit in Anna’s Archief!
* 6% vallen in tier 2
* Slechts 2.3% van de tier-2-records zit in Anna’s Archief!
* 35% vallen in tier 3 — mogelijk vals-positieve zeldzame boeken
* 4.8% van de tier-3-records zit in Anna’s Archief, hoger dan de andere categorieën.
We kunnen dit herhalen voor elk bereik van holding counts om een gesorteerde lijst met zeldzame boeken te krijgen.
Waar worden zeldzame boeken bewaard?
We kunnen de lijst met zeldzame boeken bekijken om te bepalen waar ze worden bewaard, en ook welke overeenkomsten er tussen hen zijn. Voor tier-1-boeken die slechts bij één bibliotheek aanwezig zijn, zijn de meest voorkomende bibliotheken:
* 407864 books: National Diet Library (id: 87542)
* 291366 books: Biblioteca Nacional de España (id: 85312)
* 272538 books: LIBRIS - National Library of Sweden (id: 62465)
* 236242 books: Bibliothèque nationale de France (id: 40913)
* 135312 books: National Library of Finland (id: 73592)
* 110528 books: Koninklijke Bibliotheek (id: 87606)
* 109845 books: National Library of the Czech Republic (id: 53646)
* 94595 books: Biblioteca Nazionale Centrale di Roma (id: 51294)
* 80307 books: Library and Archives Canada / Bibliothèque et Archives Canada (id: 57299)
* 68693 books: Askews and Holts Library Services Ltd (id: 21513)
U zult veel nationale en academische bibliotheken op deze lijst zien. Veel van de “zeldzame boeken” zijn proefschriften, waarvoor in sommige landen een ISBN verplicht is, zoals Zweden. Hoewel belangrijk om te bewaren, doen nationale bibliotheken doorgaans goed werk om proefschriften gratis beschikbaar te maken. We zullen verder moeten filteren om de beste boeken te vinden die we met prioriteit aan Anna’s Archief moeten toevoegen.
Toekomstige richtingen
We hebben het zware werk afgerond om deze dataset te verzamelen en te organiseren, maar de analyse is pas net begonnen. Er is meer werk nodig om écht zeldzame boeken te vinden. Dus pak de torrent, zet die in een database, en help ons mee! We geven levenslang lidmaatschap weg voor de beste projecten. Op langere termijn stellen we ons een inspanning voor om zeldzame boeken te scannen zodat ze voor altijd bewaard blijven (en waarschijnlijk zullen daar geldelijke beloningen aan verbonden zijn). Blijf op de hoogte.
Dank u wel
Nogmaals dank aan het OCLC-team. Jullie hebben een van de grootste en meest waardevolle metadata-verzamelingen gecreëerd. Met onze gezamenlijke inspanningen kunnen we ervoor zorgen dat deze boeken voor altijd bewaard blijven. Als iemand met diepere kennis van WorldCat opmerkingen heeft over onze methoden of onze interpretatie van deze of andere Datasets, neem dan alstublieft contact op.
- Vrijwilliger “M” van het team van Anna’s Archief