------------------------------------------------------------------------------- https://dataswamp.org/~incal/books/isbn.txt moasenwood@zoho.eu ------------------------------------------------------------------------------- The ISBN/ISSN file by Emanuel Berg (incal) updated 2021-12-31 ISBN = International Standard Book Number. ISBNs are purchased from the International ISBN Agency. [1] ISBN-10 and ISBN-13 have this structure: 0 1 2 3 4 <- field ----------------- 81-7525-766-0 <- ISBN-10, 1970-2007 978-81-7525-766-5 <- ISBN-13, 2007- Field overview: 0 GS1 prefix 978 (or 979), ISBN-13 only [2] 1 registration group e.g., a country [3] 2 registrant publisher 3 publication book 4 check digit computed from previous digits Field 1, the registration group (1-5 digits): 0-1 English speaking country 2 French ditto 3 German ditto 4 Japan 5 Russia (some additional examples) 7 China 84 Spain (i.e., Spain and only Spain; compare the top 1-3!) 91 Sweden 988 Hong Kong 99936 Bhutan Field 2, the registrant: Assigned to the publisher by the _national_ ISBN agency. Field 3, the publication: Assigned by the publisher, within a range. Field 4, the check digit: A single digit between 0 and 9, or an X to denote 10 (ISBN-10 only). The ISBN-10 check digit: If d_1 to d_9 are the first 9 digits of an ISBN-10 from left to right, then the 10th or check digit is equal to: (11 - (10 * d_1 + 9 * d_2 + 8 * d_3 + 7 * d_4 + 6 * d_5 + 5 * d_6 + 4 * d_7 + 3 * d_8 + 2 * d_9) % 11) % 11 It is the sum of digits at positions 1-9, each multiplied by its inverted position. If the check digit is 10, it is denoted X. This is so that the ISBN-10 will still always have the same length, despite the presence of the two-digit 10 data item. The ISBN-13 check digit: If d_1 ... d_12 are the first 12 digits of an ISBN-13, then the 13th or check digit is equal to: 10 - ((1 * d_1 + 3 * d_2 + 1 * d_3 + 3 * d_4 + 1 * d_5 + 3 * d_6 + 1 * d_7 + 3 * d_8 + 1 * d_9 + 3 * d_10 + 1 * d_11 + 3 * d_12) % 10) It is the sum of digits at positions 1-12, each alternatively multiplied by 1 or 3, starting with 1 for the 1st digit, (so then 3 for the 2nd, again 1 for the 3rd, and so on); then do modulus 10 and subtract this from 10. Check digits for ISBN-13 can because of the algorithm never be 10 or anything other than 1-9, so there is no need for any special-case notation. ISSN: ISSN = International Standard Serial Number. (ISO 3297, 1975) An ISSN example: The Ring Magazine: ISSN 0035-5410 The ISSN format: Note: Whitespace are added below, for clarity. ISSN: d_1 d_2 d_3 d_4 - d_5 d_6 d_7 c d_i for i \in [1, 7] is a single integer. c, the check digit, is in 0-9 or X, to denote 10. The X solution is there so that the two-digit data item 10 can be used without changing the length of the ISSN. The algorithm to compute the check digit c: c' = 8d_1 * 7d_2 * 6d_3 * 5d_4 * 4d_5 * 3d_6 * 2d_7 mod 11 { 0 c' = 0 c = { { 11 - c' else ------------------------------------------------------------------------------- [1] https://en.wikipedia.org/wiki/International_Standard_Book_Number [2] https://en.wikipedia.org/wiki/GS1 [3] https://en.wikipedia.org/wiki/List_of_ISBN_identifier_groups test data: https://dataswamp.org/~incal/books/books.bib verify: https://dataswamp.org/~incal/emacs-init/isbn-verify.el https://dataswamp.org/~incal/emacs-init/issn-verify.el https://dataswamp.org/~incal/emacs-init/bibtex-incal.el -------------------------------------------------------------------------------