The International Standard Book Number (ISBN) is a unique[1][2] numeric commercial book identifier based upon the 9-digit Standard Book Numbering (SBN) code created by Gordon Foster, Emeritus Professor of Statistics at Trinity College, Dublin,[3] for the booksellers and stationers W.H. Smith and others in 1966.[4]
The 10-digit ISBN format was developed by the International Organization for Standardization (ISO) and was published in 1970 as international standard ISO 2108.[4] (However, the 9-digit SBN code was used in the United Kingdom until 1974.) Currently, the ISO's TC 46/SC 9 is responsible for the ISBN. The ISO on-line facility only refers back to 1978.[5]
Since 1 January 2007, ISBNs have contained 13 digits, a format that is compatible with Bookland EAN-13s.[6]
Occasionally, a book may appear without a printed ISBN if it is printed privately or the author does not follow the usual ISBN procedure; however, this can be rectified later.[7]
A similar numeric identifier, the International Standard Serial Number (ISSN), identifies periodical publications such as magazines.
R.R. Bowker is the U.S. Agency of the International Standard Book Numbering Convention, as approved by the International Organization for Standardization. As such, it is the originator of ISBNs for U.S.-based publishers. Authors of self-published books can purchase an ISBN for $125.00.[8] Publishers in other countries can only obtain ISBNs from their local ISBN Agency, a directory of which can be found on the International ISBN Agency website.
Contents |
An ISBN is assigned to each edition and variation (except reprintings) of a book.[9] The ISBN is 13 digits long if assigned after January 1, 2007, and 10 digits long if assigned before 2007. An International Standard Book Number consists of 4 or 5 parts:
The ISBN separates its parts (group, publisher, title and check digit) with either a hyphen or a space. Other than the check digit, no part of the ISBN will have a fixed number of digits.[13]
The group identifier is a 1 to 5 digit number. The single digit group identifiers are: 0 or 1 for English-speaking countries; 2 for French-speaking countries; 3 for German-speaking countries; 4 for Japan; 5 for Russian-speaking countries, 7 for People's Republic of China. An example 5 digit group identifier is 99936, for Bhutan. The allocated group IDs are: 0–5, 600–617, 7, 80–94, 950–989, 9927–9989, and 99901–99967.[14] Some catalogs include books that were published with no ISBN but add a non-standard number with an as-yet unallocated 5-digit group such as 99985; this practice is not part of the standard. Books published in rare languages typically have longer group identifiers.[10]
The original standard book number (SBN) had no group identifier, but affixing a zero (0) as prefix to a 9-digit SBN creates a valid 10-digit ISBN. Group identifiers form a prefix code; compare with country calling codes.
The national ISBN agency assigns the publisher number (cf. the category:ISBN agencies); the publisher selects the item number. Generally, a book publisher is not required to assign an ISBN, nor is it necessary for a book to display its number (except in China; see below). However, most book stores only handle ISBN-bearing merchandise.
A listing of all the 628,000 assigned publisher codes is published, and can be ordered in book form (€558, US$915.46). The web site of the ISBN agency does not offer any free method of looking up publisher codes.[15] Partial lists have been compiled (from library catalogs) for the English-language groups: identifier 0 and identifier 1.
Publishers receive blocks of ISBNs, with larger blocks allotted to publishers expecting to need them; a small publisher may receive ISBNs of one or more digits for the group identifier code, several digits for the publisher, and a single digit for the individual items. Once that block of ISBNs is used, the publisher may receive another block of ISBNs, with a different publisher number. Consequently, a publisher may have different allotted publisher numbers. There also may be more than one group identifier used in a country. This might occur if a popular identifier has used up all of its numbers. The cited list of identifiers shows this has happened in China and in more than a dozen other countries.
By using variable block lengths, a large publisher will have few digits allocated for the publisher number and many digits allocated for titles; likewise countries publishing much will have few allocated digits for the group identifier, and many for the publishers and titles.[16] Here are some sample ISBN-10 codes, illustrating block length variations.
ISBN | Country or area | Publisher |
---|---|---|
99921-58-10-7 | Qatar | NCCAH, Doha |
9971-5-0210-0 | Singapore | World Scientific |
960-425-059-0 | Greece | Sigma Publications |
80-902734-1-6 | Czech Republic; Slovakia | Taita Publishers |
85-359-0277-5 | Brazil | Companhia das Letras |
1-84356-028-3 | English-speaking area | Simon Wallenberg Press |
0-684-84328-5 | English-speaking area | Scribner |
0-8044-2957-X | English-speaking area | Frederick Ungar |
0-85131-041-9 | English-speaking area | J. A. Allen & Co. |
0-943396-04-2 | English-speaking area | Willmann–Bell |
0-9752298-0-X | English-speaking area | KT Publishing |
English-language publisher codes follow a systematic pattern, which allows their length to be easily determined, as follows:[17]
Item number length | 0- group identifier | 1- group identifier | Total | ||||
---|---|---|---|---|---|---|---|
From | To | Publishers | From | To | Publishers | ||
6 digits | 0-00-xxxxxx-x | 0-19-xxxxxx-x | 20 | 1-00-xxxxxx-x | 1-09-xxxxxx-x | 10 | 30 |
5 digits | 0-200-xxxxx-x | 0-699-xxxxx-x | 500 | 1-100-xxxxx-x | 1-399-xxxxx-x | 300 | 800 |
4 digits | 0-7000-xxxx-x | 0-8499-xxxx-x | 1,500 | 1-4000-xxxx-x | 1-5499-xxxx-x | 1,500 | 3,000 |
3 digits | 0-85000-xxx-x | 0-89999-xxx-x | 5,000 | 1-55000-xxx-x | 1-86979-xxx-x | 31,980 | 36,980 |
2 digits | 0-900000-xx-x | 0-949999-xx-x | 50,000 | 1-869800-xx-x | 1-998999-xx-x | 129,200 | 179,200 |
1 digit | 0-9500000-x-x | 0-9999999-x-x | 500,000 | 1-9990000-x-x | 1-9999999-x-x | 10,000 | 510,000 |
Total | 557,020 | Total | 172,990 | 730,010 |
A check digit is a form of redundancy check used for error detection, the decimal equivalent of a binary checksum. It consists of a single digit computed from the other digits in the message.
The 2001 edition of the official manual of the International ISBN Agency says that the ISBN-10 check digit[18] — which is the last digit of the ten-digit ISBN — must range from 0 to 10 (the symbol X is used instead of 10) and must be such that the sum of all the ten digits, each multiplied by the integer weight, descending from 10 to 1, is a multiple of the number 11. Modular arithmetic is convenient for calculating the check digit using modulus 11. Each of the first nine digits of the ten-digit ISBN — excluding the check digit, itself — is multiplied by a number in a sequence from 10 to 2, and the remainder of the sum, with respect to 11, is computed. The resulting remainder, plus the check digit, must equal 11; therefore, the check digit is 11 minus the remainder of the sum of the products.
For example, the check digit for an ISBN-10 of 0-306-40615-? is calculated as follows:
Thus the remainder is 9, the check digit is 2, and the complete sequence is ISBN 0-306-40615-2.
Formally, the check digit calculation is:
The value required to satisfy this condition might be 10; if so, an 'X' should be used.
The two most common errors in handling an ISBN (e.g., typing or writing it) are an altered digit or the transposition of adjacent digits. The ISBN check digit method ensures that these two errors will always be detected. However, if the error occurs in the publishing house and goes undetected, the book will be issued with an invalid ISBN.[19]
The simplest way to verify an ISBN number is to compute a running sum of a running sum:
// C++ bool is_isbn_valid(char digits[10]) { int i, a = 0, b = 0; for (i = 0; i < 10; i++) { a += digits[i]; // Assumed already converted from ASCII to 0..9 b += a; } return b % 11 == 0; }
// PHP function is_isbn_valid($n){ $check = 0; for ($i = 0; $i < 9; $i++) $check += (10 - $i) * substr($n, $i, 1); $t = substr($n, 9, 1); // tenth digit (aka checksum or check digit) $check += ($t == 'x' || $t == 'X') ? 10 : $t; return $check % 11 == 0; }
-- Haskell import Data.List let is_isbn_valid = (== 0) . (`mod` 11) . sum . map sum . inits . map of_char where of_char n = if elem n "xX" then 10 else read [n]
# Ruby def is_valid_isbn?(isbn10) sum = 0 10.times { |i| sum+=(10-i)*isbn10[i].to_i } 0 == sum.modulo(11) end def isbn_checksum(isbn9) sum = 0 9.times { |i| sum+=(10-i)*isbn9[i].to_i } checksum = 11-sum.modulo(11) return checksum==10 ? 'X' : checksum end
# Python def is_valid_isbn(isbn): last = 10 if isbn[-1] in ["X", "x"] else int(isbn[-1]) weighted = [int(num)*weight for num, weight in zip(isbn[:-1], reversed(range(2, 11)))] return (sum(weighted) + last) %11==0
The ISBN-10 check-digit can also be calculated in a slightly easier way:
This is simply replacing 11 with 0, and each subtraction with its complement: etc.
For example, the check digit for an ISBN-10 of 0-306-40615-? is calculated as follows:
The 2005 edition of the International ISBN Agency's official manual[20] covering some ISBNs issued from January 2007, describes how the 13-digit ISBN check digit is calculated.
The calculation of an ISBN-13 check digit begins with the first 12 digits of the thirteen-digit ISBN (thus excluding the check digit itself). Each digit, from left to right, is alternately multiplied by 1 or 3, then those products are summed modulo 10 to give a value ranging from 0 to 9. Subtracted from 10, that leaves a result from 1 to 10. A zero (0) replaces a ten (10), so, in all cases, a single check digit results.
For example, the ISBN-13 check digit of 978-0-306-40615-? is calculated as follows:
s = 9×1 + 7×3 + 8×1 + 0×3 + 3×1 + 0×3 + 6×1 + 4×3 + 0×1 + 6×3 + 1×1 + 5×3 = 9 + 21 + 8 + 0 + 3 + 0 + 6 + 12 + 0 + 18 + 1 + 15 = 93 93 / 10 = 9 remainder 3 10 – 3 = 7
Thus, the check digit is 7, and the complete sequence is ISBN 978-0-306-40615-7.
Formally, the ISBN-13 check digit calculation is:
This check system — similar to the UPC check digit formula — does not catch all errors of adjacent digit transposition. Specifically, if the difference between two adjacent digits is 5, the check digit will not catch their transposition. For instance, the above example allows this situation with the 6 followed by a 1. The correct order contributes 3×6+1×1 = 19 to the sum; while, if the digits are transposed (1 followed by a 6), the contribution of those two digits will be 3×1+1×6 = 9. However, 19 and 9 are congruent modulo 10, and so produce the same, final result: both ISBNs will have a check digit of 7. The ISBN-10 formula uses the prime modulus 11 which avoids this blind spot, but requires more than the digits 0-9 to express the check digit.
Additionally, If you triple the sum of the 2nd, 4th, 6th, 8th, 10th, and 12th digits and then add them to the remaining digits (1st, 3rd, 5th, 7th, 9th, 11th, and 13th), the total will always be divisible by 10 (i.e., end in 0).
//PHP function is_isbn_13_valid($n){ $check = 0; for ($i = 0; $i < 13; $i+=2) $check += substr($n, $i, 1); for ($i = 1; $i < 12; $i+=2) $check += 3 * substr($n, $i, 1); return $check % 10 == 0; }
# Ruby def is_valid_isbn13?(isbn13) sum = 0 13.times { |i| sum += i.modulo(2)==0 ? isbn13[i].to_i : isbn13[i].to_i*3 } 0 == sum.modulo(10) end def isbn13_checksum(isbn12) sum = 0 12.times { |i| sum += i.modulo(2)==0 ? isbn12[i].to_i : isbn12[i].to_i*3 } 10 - sum.modulo(10) end
# Python def is_valid_isbn13(isbn13): total = sum([int(num)*weight for num, weight in zip(isbn13, (1,3)*6)]) ck = 10-(total%10) return ck == int(isbn13[-1])
Publishers and libraries have varied policies about the use of the ISBN check digit. Publishers sometimes fail to check the correspondence of a book title and its ISBN before publishing it; that failure causes book identification problems for libraries, booksellers, and readers.[21]
Most libraries and booksellers display the book record for an invalid ISBN issued by the publisher. The Library of Congress catalogue contains books published with invalid ISBNs, which it usually tags with the phrase "Cancelled ISBN".[22] However, book-ordering systems such as Amazon.com will not search for a book if an invalid ISBN is entered to its search engine.
Currently the barcodes on a book's back cover (or inside a mass-market paperback book's front cover) are EAN-13; they may have a separate barcode encoding five digits for the currency and the recommended retail price.[23] The number "978", the Bookland "country code", is prefixed to the ISBN in the barcode data, and the check digit is recalculated according to the EAN13 formula (modulo 10, 1x and 3x weighting on alternate digits).
Partly because of an expected shortage in certain ISBN categories, the International Organization for Standardization (ISO) decided to migrate to a thirteen-digit ISBN (ISBN-13). The process began January 1, 2005 and was planned to conclude January 1, 2007.[24] As of 2011, all the 13-digit ISBNs begin with 978. As the 978 ISBN supply is exhausted, the 979 prefix will be introduced. This is expected to occur more rapidly outside the United States. Originally, 979 was the Musicland code for musical scores with an ISMN. However, ISMN codes will differ visually as they begin with an "M" letter; the bar code represents the "M" as a zero (0), and for checksum purposes it will count as a 3.
Publisher identification code numbers are unlikely to be the same in the 978 and 979 ISBNs, likewise, there is no guarantee that language area code numbers will be the same. Moreover, the ten-digit ISBN check digit generally is not the same as the thirteen-digit ISBN check digit. Because the EAN/UCC-13 is part of the Global Trade Item Number (GTIN) system (that includes the EAN/UCC-14, the UPC-12, and the EAN-8), it is expected that ISBN-generating software should accommodate fourteen-digit ISBNs.[25]
Barcode format compatibility is maintained, because (aside from the group breaks) the ISBN-13 barcode format is identical to the EAN barcode format of existing ISBN-10s. So, migration to an EAN-based system allows booksellers the use of a single numbering system for both books and non-book products that is compatible with existing ISBN-based data, with only minimal changes to information technology systems. Hence, many booksellers (e.g., Barnes & Noble) migrated to EAN barcodes as early as March 2005. Although many American and Canadian booksellers were able to read EAN-13 barcodes before 2005, most general retailers could not read them. The upgrading of the UPC barcode system to full EAN-13, in 2005, eased migration to the ISBN-13 in North America. Moreover, by January 2007, most large book publishers added ISBN-13 barcodes alongside the ten-digit ISBN barcodes of books published before January 2007.[26]
|