I have written these descriptions because I was unable to find them elsewhere in the
Internet and I assume that they may be useful to someone. I give no guarantees. If you use
these descriptions, you also take full responsibility for all consequenses.|
This document is an extract from a considerably longer one (in Finnish), in which I describe more than twenty check character calculation methods and more than fifty applications.
CodenCoden is a six character identifier given by Chemical Abstracts Service (CAS) to publications. There are two main types of identifiers:
Examples: JPERFA, 53AKAE
In some cases only the first five characters of Coden are given. Sometimes, in place of Coden, another identifier beginning with 00 and without a check character is used.
How to calculate the check character:
C Y S T E 3 3 25 19 20 5 11 7 5 3 1 33 175 95 60 5 = 368 ≡ 28 (mod 34) → 3Example 2: 48THAM
4 8 T H A M 30 34 20 8 1 11 7 5 3 1 330 238 100 24 1 = 693 ≡ 13 (mod 34) → MIn order to discover this method to calculate the check character, more than 2200 Codens were analysed. Of these 20 (less than 1 %) do not match this description, but 19 of those are obvious read errors, that is, someone has misread a character as something that looks or sounds somewhat the same, and this incorrect character has then been typed. In 16 cases the check character was incorrect, and in only 3 cases the code was in error, so I am tempted to claim that this method itself is the cause of most of the errors it detects. The reason for one error is not known; the code is quite different from the one in the actual publication. The same erroneous Codens appear on many web pages, which suggests that they are copied without checking. The correct versions can also be found. A list of the detected incorrect Codens and their correct equivalents follows (other than check character errors are underlined):
IMO NumberIMO = International Maritime Organization. IMO number identifies a commercial passenger or cargo ship. Numbers are made up of letters IMO and seven decimal digits. These numbers are given by IHS Fairplay, formerly Lloyd's Register - Fairplay Ltd. The number is clearly marked on the side or stern of a cargo ship and on the top of a passenger ship, and it is also used in the ship's documents. The number remains the same throughout the ship's lifetime, regardless of changes in the ship's name, structure or ownership. Once given, a number is never reused by giving it to another ship. The last digit is a check digit.
7 6 2 5 8 1 1 7 6 5 4 3 2 49 36 10 20 24 2 = 141 → 1The method could also be described by saying that the weighting factors are 3..8 from left to right, and the check digit is the digit that you need to add to the sum to make it evenly divisible by 10.
7 6 2 5 8 1 1 3 4 5 6 7 8 21 24 10 30 56 8 = 149 → 1This check digit algorithm is not very good – it can fail to reveal a change in a single digit, which is the most common keying error. For example, 7605811 is a valid IMO number (of Antonio Gramši), but differs from that of Kristina Katarina in a single digit position only. This would not happen in any decent check digit system.
Notice! This description of the check digit algorithm is not based on any published document. Instead, I have analysed more than 50 genuine IMO numbers. No exceptions were found.