Bit View Of The Universal Product Code - The PjProblemStrings.
TECTechnics Classroom   TECTechnics Overview

Bit View Of The Universal Product Code - The PjProblemStrings

The Universal Product Code (UPC, also called UPC-A and UPC barcode) is on almost all products in any modern retail store. The UPC is a consumer product identifier. It was introduced in 1974 by GS1 (a not-for-profit organization that develops and maintains standards for business communication) to improve the efficiency of the check-out process, inventory management and supply chain logistics.

(a) Name the three symbolic languages and the two mappings that encode the Universal Product Code (figure 147.1).
(b) Why three symbolic languages and not one?
(c) Use PjProblemStrings to summarize the encoding of the Universal Product Code.

The strings: S7P2A21 (Physical Identity).

The math:
Pj Problems of Interest is of type identity.

(a) The three symbolic languages that encode the Universal Product Code are: the geometric form language, the binary number system lauguage and the decimal number system language.
The two mappings are: geometric form to binary number and binary number to decimal number.

(b) Ideally, only the decimal number system language should be needed. However, the computation of the scanning technology needed to recognize just the decimal numbers (optical character recognition) is more complicated and less reliable.

(c) PjProblemString of Interest: S7P2A21 (physical identity). This identity consists of 12 decimal numbers (6 from the left side and 6 from the right side) derived from 84 strings of bits where 7 bits made up a decimal number.

Supporting PjProblemStrings:
S7P1A13 (containership - area): the 30 vertical black bars of various widths. The first two black bars and the white space between them constitute the left-hand guard pattern. The last two black bars and the white space between them constitute the right-hand guard pattern. These gaurd patterns orient the scanning device by establishing the tiniest black bar as a bit 1 and the white space between as a bit 0. So, both the left-hand guard pattern and the right-hand guard pattern are each represented by bits 101. Bars wider than the tiniest bar are 2, 3, or 4 times wider. If a bar is twice as wide, it is represented by two 1 bits (e.g. 11), 3 times wider by three bits (e.g. 111) and 4 times wider by four bits (e.g.1111). Ditto for the white spaces except that the bit representation is 0. A 5-bit center guard pattern (01010) is built in as an error indicator. If the scanner does not find the center guard pattern in its appropriate location, it disacknowledges the UPC.
S7P6A64 (grouping/interaction - multi criteria permutation): the orderly grouping of the black bars.
S7P4A41 (motion - linear): the light rays on the black bars from the scanner
S7P3A31 (force - pull): the absorption of light rays by the black bars (registered in the scanner system as a sequence of small black rectangles, figure 147.2).

S7P5A51 (physical - change): the mapping of the sequence of small rectangles to binary numbers
S7P5A51 (physical - change): the mapping of the binary numbers to decimal numbers which establish the S7P2A21, the physical identity of the product.

In the case of the UPC, 051500241363, of figure 147.1, the product is Jif, to go peanut butter. The first digit is called the number system character. A 0 as the first digit implies a regular UPC; a 2 as the first digit implies product is a variable-weight grocery item (e.g. meat, produce); a 5 as first digit implies UPC is a coupon-UPC. The next five digits (51500) identify the manufacturer of the product; the next five digits (24136) identify the product of the manufacturer and is dependent on the manufacturer's code. In other words, several different manufacturers can have the same product code but the UPC will be different because the manufacturers' codes are different. The final digit (3, in this case) is called the modulo check character. It is used to check for errors in the UPC. The computer system calculates it by means of a formula. The result of the calculation must be equal to the modulo check character indicated in the UPC code otherwise the computer rejects the UPC code.

The UPC can be scanned in both directions. The computer knows the scanning direction by interpreting the parity of the first seven binary digits scanned. Odd parity implies scanning is left to right and the left-hand side mapping of binary to decimal table (figure 147.2) is used. Even parity implies scanning is right to left and the right-hand side mapping of binary to decimal table is used.

The price of a product is not part of a UPC. Product price is fetched from company's database. Also, an employee at checkout can type in the twelve decimal digits of the UPC if for some unexpected reasons, the scanner can not read the UPC.

Blessed are they that have not seen, and yet have believed. John 20:29