B3Kat - Open Data
The joint union catalogue of the Bavarian Library Network (Bibliotheksverbund Bayern - BVB) and the Cooperative Library Network Berlin-Brandenburg (KOBV) contains more than 27 million bibliographic records from university libraries, academic libraries and many other libraries of Bavaria, Berlin and Brandenburg.
The data is published under the Creative Commons License CC0 in MARCXML data format in compliance with the conventions made for Germany.
Regionally defined MARC21 fields, specifically assigned fields:
|001||B3Kat-ID (example: BV018229257)|
|049||Holdings information (ISIL), see the List of B3Kat libraries|
|940 ind. 1 = 1||Regional and local codes (MAB 078)|
|Subfield f||selection code language area|
|Subfield n||selection code interlibrary bibliographies and projects|
|Subfield q||library-specific selection codes|
|940 ind. 1 = 2||Subfield r||ISIL of revising library (in the context of VD18, MAB 088 subfield r)|
|941||Subfields b,h,j,m,t,r,s||Structured Source Citation / Host Item Entry (component parts)|
|942 ind. 1 = 1, ind. 2 = 1||Synthesized Classification Number Components|
|Subfield c||Base number (topical)|
|Subfield f||Digits added from classification number in external table (chronological)|
|Subfield g||Digits added from classification number in external table (geographical)|
|Subfield e||Edition number|
|999||OAI identifier of the record (example: oai:aleph.bib-bvb.de:BVB01-011000001)|
Download and OAI-Repository
The catalog (as of May 7th, 2020) is provided as a download in 32 packages:
Open Data B3Kat Export Part 01
Open Data B3Kat Export Part 02
Open Data B3Kat Export Part 03
Open Data B3Kat Export Part 04
Open Data B3Kat Export Part 05
Open Data B3Kat Export Part 06
Open Data B3Kat Export Part 07
Open Data B3Kat Export Part 08
Open Data B3Kat Export Part 09
Open Data B3Kat Export Part 10
Open Data B3Kat Export Part 11
Open Data B3Kat Export Part 12
Open Data B3Kat Export Part 13
Open Data B3Kat Export Part 14
Open Data B3Kat Export Part 15
Open Data B3Kat Export Part 16
Open Data B3Kat Export Part 17
Open Data B3Kat Export Part 18
Open Data B3Kat Export Part 19
Open Data B3Kat Export Part 20
Open Data B3Kat Export Part 21
Open Data B3Kat Export Part 22
Open Data B3Kat Export Part 23
Open Data B3Kat Export Part 24
Open Data B3Kat Export Part 25
Open Data B3Kat Export Part 26
Open Data B3Kat Export Part 27
Open Data B3Kat Export Part 28
Open Data B3Kat Export Part 29
Open Data B3Kat Export Part 30
Open Data B3Kat Export Part 31
Open Data B3Kat Export Part 32
You can harvest new data and data modifications since May 7th, 2020, 07:00 UTC+02:00 from our OAI repository. The request
would return all records that have been added or updated since the creation of the latest full export. Please note that we strongly recommend to split the request with from and until parameters into shorter timestamp area sections to recall the data consecutively.
Harvesting individual records
Individual records can be retrieved from the OAI repository by using the verb GetRecord. To specify the desired record you can chose either the OAI-identifier or the B3Kat-ID as the value of the accompanying parameter identifier.
Please note that the syntax of the second option expands the OAI-PMH standard to provide you more comfort. A consistent synchronization with B3Kat (in particular keeping track of deletions) can only be accomplished by using the OAI-identifier instead of the B3Kat-ID!
In addition to the options described above, you can use an appropriate set parameter to restrict harvesting to data records with specific contents in MARC fields 024, 049, 084, 912 or 940.
For example you may want to request
- http://bvbr.bib-bvb.de:8991/aleph-cgi/oai/oai_opendata.pl?verb=ListRecords&metadataPrefix=marc21&from=2016-06-20&until=2016-06-30&set=VD18 for all VD18-relevant records that were added or changed between June 20th, 2016 and June 30th, 2016;
- http://bvbr.bib-bvb.de:8991/aleph-cgi/oai/oai_opendata.pl?verb=ListRecords&metadataPrefix=marc21&from=2016-01-01&set=DE-12 for all records that have been added or changed since January 1st, 2016 and contain a holding symbol of the Bavarian State Library;
- http://bvbr.bib-bvb.de:8991/aleph-cgi/oai/oai_opendata.pl?verb=ListRecords&metadataPrefix=marc21&from=2017-09-13T09:55:57Z&set=by for all records that have been added or changed since September 13th, 2017, 09:55:57 UTC and contain a "by" within MARC 024, 049, 084 or 940.
A record is considered to be a member of a set X if:
- Field 024, first indicator "8", subfield a starts with X (e.g. set "VD16").
- Field 049, subfield a is equal to X ("Holding of library X"). Exception: holding symbols of administrative courts.
- X is "kobv" and field 049, subfield a is a holding symbol of any KOBV library ("Holdings of KOBV libraries").
- Field 084 subfield 2 is "fid" or "ssgn" and subfield a is equal to X ("Sondersammelgebiets-/Fachinformationsdienst-numbers"). Note: SSG numbers contain commas "," which are not allowed in set names. Therefore commas in SSG numbers may be substituted by dots "." so to harvest records with SSG number "9,2" a set "9.2" has to be specified.
- X is "digit" and field 912, subfield a is "digit" ("DigiTool").
- Any subfield of field 940, first indicator "1" starts with X.
Please note that this use of the "set" parameter for a type of free text search in certain data fields goes beyond the OAI-PMH standard functionally, but is also subject to the restrictions described in the following section.
Restrictions for set-specific harvesting
- The (potentially infinitely large) list of all "sets" available in this way can not be requested using the OAI verb ListSets.
- Result sets exceeding 30 records are delivered in portions (with a resumption token at the end of each portion, which can be used to request the next one if necessary). If you specify a "set" parameter with your query, the repository ignores it internally in the frist instance. Only when it comes to delivery the more general result set is split up into portions and records that do not qualify for the specified set are discarded. Therefore, apart from the resumtion token, delivered portions may well be empty - even repeatedly. This, however, is not in compliance with the OAI-PMH standard (according to the OAI-PMH XML schema definition OAI-PMH.xsd both a ListIdentifiers response and a ListRecords response must contain at least one <header/> or at least one <record/> element) and could thus confuse some of the ready-made OAI harvesters out there.
- You can try to work around this problem by shortening the timestamp range queried per request, because this procedure tends to yield result sets small enough so they never get split up into portions at all. Doing so increases the likelyhood for but cannot guarantee getting 100 % valid OAI-PMH-XML.
- In case you are dependent on 100% valid OAI-PMH-XML the only option remaining at the moment is to harvest without any "set" parameter and to filter out the records relevant to you on the client side yourself.
Please keep these restrictions in mind when using set specific harvesting!
Questions or feedback?
If you have any questions or would like to provide feedback on B3Kat Open Data please don't hesitate to contact firstname.lastname@example.org.