------------------------------------------------------------------------------- https://dataswamp.org/~incal/books/isbn.txt incal@dataswamp.org ------------------------------------------------------------------------------- the ISBN & ISSN file by Emanuel Berg (incal) updated 2024-05-22 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 the country [3] 2 registrant the publisher 3 publication the book 4 check digit computed from previous digits Field 1 - the registration group: 0 or 1 English speaking country 2 French ditto 3 German ditto 4 Japan 5 Russia ... ... 7 China 84 Spain (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: ISBN-10: A single digit, 0-9, or the letter X, to denote 10 ISBN-13: A single digit, 0-9 The ISBN-10 check digit: If d_1 d_2 d_3 d_4 d_5 d_6 d_7 d_8 d_9 are the first 9 digits of an ISBN-10 from left to right, then the 10th digit, the 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 If the check digit is 10 it is denoted X. This is so that all ISBN-10 will be of the same length despite the presence of the two-digit 10 data item. The ISBN-13 check digit: If d_1 up and until d_12 are the first 12 digits of an ISBN-13, then the 13th, 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) ISSN: ISSN = International Standard Serial Number (ISO 3297, 1975) For example, The Ring Magazine has ISSN 0035-5410. The ISSN format: 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 0-9 or X, to denote 10. The algorithm to compute the check digit c: c' = (8 * d_1 * 7 * d_2 * 6 * d_3 * 5 * d_4 * 4 * d_5 * 3 * d_6 * 2 * d_7) % 11 { 0 (c' = 0) c = { { 11 - c' (c' ≠ 0) ------------------------------------------------------------------------------- [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/bibtex-incal.el -------------------------------------------------------------------------------