Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
EMBEDDING DATA IN POSITION IDENTIFICATION PATTERN
Document Type and Number:
WIPO Patent Application WO/2005/024714
Kind Code:
A1
Abstract:
A method of embeddling data within a position identifying pattern on a product (116) comprises defining a plurality of information areas (112) within a pattern space; asscciating a unit of information (114) with each of the information areas; defining a plurality of information carrying areas (117) on the product; and applying pattern (100) from one of the information areas (112) to each of the information carrying areas (117) to define an information sequence made up of a sequence of said units.

Inventors:
ALBARRAN MIGUEL ANGEL (ES)
RUIZ CARLES (ES)
MACKENZIE ANDREW (ES)
Application Number:
PCT/EP2004/051934
Publication Date:
March 17, 2005
Filing Date:
August 27, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
ALBARRAN MIGUEL ANGEL (ES)
RUIZ CARLES (ES)
MACKENZIE ANDREW (ES)
International Classes:
G06F3/0354; G06K1/12; G06K19/06; (IPC1-7): G06K19/06; G06K1/12
Domestic Patent References:
WO2001071476A12001-09-27
WO2003003288A12003-01-09
WO2001071653A12001-09-27
Attorney, Agent or Firm:
Leadbetter, Benedict (S.L. Legal Dept., Avda Graell, 501 Sant Cugat del Valles, ES)
Download PDF:
Claims:
CLAIMS
1. A method of embedding data within a position identifying pattern on a product, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas on the product; and applying pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
2. A method according to claim 1 wherein the information carrying areas are defined adjacent to one another.
3. A method according to claim 1 or claim 2 wherein the information carrying areas are defined so as to form a row.
4. A method according to any foregoing claim wherein a plurality of information areas are associated with each unit of information, and to represent that unit of information within the sequence, one of those areas is selected depending on the position of the unit in the sequence.
5. A method according to claim 4 wherein the plurality of information areas associated with each unit of information form a group and the groups are aligned in pattern space so that each of the areas within one of the groups is aligned with a respective area in each of the other groups to form an aligned set.
6. A method according to claim 5 wherein the groups are defined so that they are spaced apart in pattern space.
7. A method according to claim 5 or claim 6 wherein one information area from each set is selected to form the information sequence.
8. A method according to any foregoing claim wherein position identifying pattern applied to one of the information areas has a further function associated with it.
9. A method according to claim 8 wherein the pattern applied to said one of the information areas is also applied to the product in two positions such that in one position it is associated with said further function and in another position it represents one of the units of information.
10. A system for producing a product having a position identifying pattern thereon, the system comprising: a memory having recorded therein a plurality of information areas from a pattern space, each of said information areas having a unit of information associated with it; pattern applying means arranged to apply pattern from one of the information areas to each of a plurality of information carrying areas on the product to define an information sequence on the product made up of a sequence of said units.
11. A system according to claim 10 wherein the pattern applying means is arranged to select the information carrying areas according to the method of claim 2 or claim 3.
12. A system according to claim 10 or claim 11 wherein the information areas are defined, and the pattern applying means is arranged to apply the pattern, according to any of claims 4 to 9.
13. A method of reading an information sequence on a product comprising : identifying a plurality of pattern areas over which a reading device is passed; identifying a unit of information associated with each of the pattern areas; and combining the units of information to form the information sequence.
14. A method according to claim 13 wherein the position of the reading device within the pattern area is monitored so that movement of the reading device between two identical pattern areas can be detected.
15. A method according to claim 13 wherein the relative positions in pattern space, of consecutive pattern areas over which the reading device is passed, is calculated and used to determine a relationship between consecutive information units in the sequence.
16. A method according to claim 15 wherein a distance, in pattern space, between said consecutive areas is calculated and used to determine a relationship between consecutive information units in the sequence.
17. A method according to claim 16 wherein a component in a predetermined direction of the distance is calculated and used to determine a relationship between consecutive information units in the sequence.
18. A reading system for reading an information sequence embedded in a position identifying pattern on a product, the system comprising sensing means arranged to form an image of an area of the product, and processing means arranged to: process images from the sensing means so as to identify, from the position identifying pattern, a series of positions on the product over which the sensing means is passed; identify a sequence of areas in pattern space associated with the series of positions; and determine an information sequence from the sequence of areas.
19. A system according to claim 18 wherein the processing means is arranged to carry out the method of any of claims 14 to 17.
20. A product having a plurality of information carrying areas thereon each having applied to it an area of a position identifying pattern from a respective area of pattern space, and each pattern area representing a unit of information such that the pattern areas define a sequence of units of information forming an information sequence.
21. A product according to claim 20 formed according to the method of any of claims 2 to 9.
22. A data carrier carrying data arranged to control a product marking system to carry out the method of any of claims 1 to 9.
23. A data carrier carrying data arranged to control a product marking system to operate as a system of any of claims 10 to 12.
24. A data carrier carrying data arranged to cause a reading system to operate according to the method of any of claims 13 to 17.
25. A data carrier carrying data arranged to cause a reading system to operate as a system according to claim 18 or claim 19. 26.
26. A method of embedding data within an image including a position identifying pattern, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas in the image; and inserting pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
27. A system for generating an image having a position identifying pattern thereon, the system comprising: a memory having recorded therein a plurality of information areas from a pattern space, each of said information areas having a unit of information associated with it; pattern allocation means arranged to allocate pattern from one of the information areas to each of a plurality of information carrying areas in the image to define an information sequence in the image made up of a sequence of said units.
Description:
EMBEDDING DATA IN POSITION IDENTIFICATION PATTERN FIELD OF THE INVENTION The present invention relates to images including position identifying pattern and to products which have the image on them, the position identifying pattern being made up of markings on the surface of the product, which can be detected by a suitable detection system and used to distinguish different positions on the document. The product may be a document such as a form, a label or a note pad, or it may be any other suitable product such as a packaging product.

BACKGROUND TO THE INVENTION It is known to use documents having such position identification markings in combination with a pen having an imaging system, such as an infra red camera, within it, which is arranged to image a small area of the page close to the pen nib. The pen includes a processor having image processing capabilities and a memory and is triggered by a force sensor in the nib to record images from the camera as the pen is moved across the document.

From these images the pen can determine the position of any marks made on the document by the pen. The pen markings can be stored directly as graphic images, which can then be stored and displayed in combination with other markings on the document. In some applications the simple recognition that a mark has been made by the pen on a predefined area of the document can be recorded, and this information used in any suitable way. This allows, for example, forms with check boxes on to be provided and the marking of the check boxes with the pen detected. In further applications the pen markings are analysed using character recognition tools and stored digitally as text. Systems using this technology are available from Anoto AB and described on their website www. Anoto. com.

It is known from WO 01/75781 to provide a system for interpreting lines, drawn on a document having position identifying pattern on it, as requiring an association between functions and data recorded on the document. For example drawing a line from an area of the document having an email address on it to another area of the document associated with an email function causes the creation of an email to the email address.

SUMMARY OF THE INVENTION According to a first aspect, the present invention provides a method of embedding data within a position identifying pattern on a product, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas on the product; and applying pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.

Each unit of information can be a symbol such as a letter or digit, and the sequence may comprise a code such as an identity code for the product, a user of the product or a printer on which the product is produced.

Alternatively, where the pattern is used on the product for other functions than the definition of the information sequence, the sequence may carry instructions regarding how those other functions should be performed.

The information carrying areas may be defined adjacent to one another.

Alternatively they can be spaced apart. In either case it is desirable that they are arranged such that a reading device, such as a digital pen, an be moved over them in the required order. The information carrying areas may therefore be defined so as to form a row.

A plurality of information areas may be associated with each unit of information, and to represent that unit of information within the sequence, one of those areas may be selected depending on the position of the unit in the sequence. For example the plurality of information areas associated with each unit of information may form a group and the groups be aligned in pattern space so that each of the areas within one of the groups is aligned with a respective area in each of the other groups to form an aligned set.

Then one information area from each set may be selected to form the information sequence.

A corresponding system for producing a product having a position identifying pattern thereon, and a corresponding product having a position identifying pattern thereon, are also provided.

According to a further aspect, the present invention provides a method of reading an information sequence on a product comprising: identifying a plurality of pattern areas over which a reading device is passed; identifying a unit of information associated with each of the pattern areas; and combining the units of information to form the information sequence.

The position of the reading device within the pattern area may be monitored so that movement of the reading device between two identical pattern areas can be detected.

The relative positions in pattern space, of consecutive pattern areas over which the reading device is passed, may be calculated and used to determine a relationship between consecutive information units in the sequence, for example a distance, in pattern space, between said consecutive areas may be calculated and used to determine a relationship between consecutive information units in the sequence.

A corresponding reading system for reading an information sequence embedded in a position identifying pattern on a product is also provided.

Data carriers for carrying data arranged to control a product marking system, or a reading system to carry out the methods of the invention, and to operate as systems of the invention are also provided. The data carrier can comprise, for example, a floppy disk, a CDROM, a DVD ROM/RAM (including +RW, -RW), a hard drive, a non-volatile memory, any form of magneto optical disk, a wire, a transmitted signal (which may comprise an internet download, an ftp transfer, or the like), or any other form of computer readable medium.

Preferred embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 shows areas of pattern space allocated to respective symbols for use in a method according to an embodiment of the invention; Figure 2 shows schematically the application of a sequence of areas from Figure 1 to a number of documents; Figure 3 shows a computer system arranged according to an embodiment of the invention to read the information from, and to produce, the documents of Figure 2; Figure 4 is a block diagram showing the functional units within the computer of Figure 3; Figure 5 is a flow diagram showing a method according to an embodiment of the invention of reading the sequence of Figure 2;

Figure 5a illustrates a pen stroke made across a code area of a document ; Figure 6 is a schematic diagram showing a method of producing a document according to a further embodiment of the invention; Figure 7 is an enlarged view of part of the document of Figure 6; and Figure 8 is a flow diagram showing a method according to a further embodiment of the invention of reading information from the document of Figures 6 and 7.

DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring to Figure 1 a position identifying pattern 100, which is applied to documents or other products, is made up of a number of dots 102 arranged on an imaginary grid 104. The grid 104, which is not marked on a document, but merely used as a reference, can be considered as being made up of horizontal and vertical lines 106,108 defining a number of intersections 110 where they cross. The intersections 110 are of the order of 0.3mm apart, and the dots are of the order of 100? m across. One dot 102 is provided at each intersection 110, but offset slightly in one of four possible directions up, down, left or right, from the actual intersection 110.

The dot offsets are arranged to vary in a systematic way so that any group of a sufficient number of dots 102, for example any group of 36 dots arranged in a six by six square, will be unique within a very large area of the pattern. This large area is defined as a total imaginary pattern space, and only a small part of the pattern space is taken up by the pattern applied to any one document. A reading device can therefore be used to read a small area of the pattern 100, to identify the position within the pattern space that the pattern 100 is taken from, and to interpret that position in a suitable way.

An example of this type of pattern is described in WO 01/26033. It will be appreciated that other position identifying patterns can equally be used.

Some examples of other suitable patterns are described in WO 00/73983 and WO 01/71643.

As shown in Figure 1, a number of separate information areas, in this case squares 112 of pattern 100, taken from the pattern space, are defined as being associated with respective pieces of information. In this case each of the squares 112 is associated with a symbol 114, with one square being associated with each letter from A to Z, and one with each digit from 0 to 9 one to each of four further symbols *, ^,-, and +.

Referring to Figure 2 a number of documents 116 each have a number of the squares 112 of pattern applied to them in respective symbol areas 117, which correspond in size to the pattern areas 112. In this case three squares 112 are applied directly adjacent to one another in a row 113, representing a code, such as a document identity code, comprising a sequence of three of the symbols 114. These sequences of symbols can be used for a number of purposes, for example to identify the individual documents 116. The squares 112 of pattern can be read by a reading device, as described in more detail below. In order to read the code, the reading device must be move across the squares of pattern 112 in the correct order, from left to right, and therefore a human visible marking in the form of an arrow 118 is provided on the documents 116 to indicate the required type of pen stroke.

Referring to Figure 3 a very simple system for producing printed documents 116 having the position identifying pattern on them comprises a personal computer (PC) 200 and a printer 202. The PC 200 has a screen 204, a keyboard 206 and a mouse 208 connected to it to provide a user interface 209 as shown generally in Figure 4. As also shown in Figure 4,

the PC 200 comprises a processor 210 and a pattern allocation module 212 which is a software module stored in memory. The pattern allocation module 212 includes the definition of the total area of pattern space and a record of which parts of that total area have been allocated to specific documents, for example by means of coordinate references. It also includes a definition of the areas 112 of pattern and the symbols which they represent. The area of code allocated to the symbols 114 is reserved specifically for that purpose, and cannot be allocated to any other function on a document. The PC 200 further comprises a printer driver 214, which is a further software module, and a memory 216 having electronic documents 218 stored in it. The user interface 209 allows a user to interact with the PC 200.

In order to produce the printed documents 116 the processor 210 retrieves an electronic document 218 from the memory 216 and sends it to the printer driver 214. The electronic document 218 contains, in this case, a definition of the positions in which the pattern squares 112 are to be applied. This could instead be determined by the printer driver 214. The printer driver 214 allocates a unique document identification code to the document to be printed and requests the required pattern areas 112 from the pattern allocation module 212, which communicates the details of the pattern including the positions of all the required dots, back to the printer driver 214. The printer driver 214 then adds the pattern areas 112 to the electronic document to form an image which includes the pattern and the content, converts the document including the pattern areas 112 to a format suitable for the printer 202, and sends it to the printer which prints the document 116 including the pattern areas 112.

In practice the various components of the system can be spread out over a local network or the internet. For example the pattern allocation module

212 can be provided on a separate internet connected server so that it can be accessed by a number of users.

Referring still to Figure 3, a pen 300 for reading the pattern areas 112 comprises a writing nib 310, and a camera 312 made up of an infra red (IR) LED 314 and an IR sensor 316. The camera 312 is arranged to image a circular area adjacent to the tip 311 of the pen nib 310. A processor 318 processes images from the camera 312 taken at a predetermined rapid sample rate. A pressure sensor 320 detects when the nib 310 is in contact with the document 100 and triggers operation of the camera 312. Whenever the pen is being used on a patterned area of the document 100, the processor 318 can therefore determine from the pattern 108 the position within the defined pattern area of the pattern 100 over which the pen 300 is being passed. The sequence of positions is saved in the pens memory 322 as pen stroke data, and can be transmitted to the PC 200 via a radio frequency transmitter 324 in the pen 300. Suitable pens are available from Logitech under the trade mark Logitech Io.

Referring back to Figure 4, the PC 200 further comprises a radio frequency receiver 220 and an input/output module 222 which processes the signals received by the receiver 220 and inputs them to the processor 210. It also includes a pen stroke interpretation module 224 which is arranged to interpret the pen stroke data from the pen 300 and an application 226 which uses the pen stroke data to perform a function related to the documents 116.

When the pen stroke data is received, it is forwarded to the pen stroke interpretation module 224 which identifies the symbols associated with the pattern areas 112, and thereby determines the identity code which it sends back to the processor 210 which forwards it to the application.

The process by which the pen stroke interpretation module 224 interprets the pen strokes will now be described. The pen stroke data comprises a

series of positions in pattern space, as described above. There is one position for each image recorded by the camera in the pen 300. For the correct reading of an ID code, the pen nib 310 must be moved across all of the three pattern areas 112a, 112b, 112c which make up the ID pattern, in the correct direction (which in this case is from left to right) as shown in Figure 5a. Broadly speaking, the pen stroke interpretation module 224 detects the first movement of the pen nib 310 into one 112a of the pattern areas 112 and stores the symbol associated with that area as the first symbol in the sequence. Then, provided the pen nib 310 next moves into a second 112b of the pattern areas 112, the symbol associated with that area 112b is stored as the second symbol in the sequence, and if the pen nib 310 next moves into a third 112c of the pattern areas 112, the associated symbol is stored as the third in the sequence. As soon as the pen stroke data shows that the pen nib 310 moved into a pattern area that is not one of the information areas 112, the sequence is stored as a document ID code.

Referring to Figure 5, an algorithm for carrying out this process starts at step 500 where the X and Y coordinates (Sx, Sy) in pattern space of the sampled pattern viewed by the pen 300 are first identified as being within one of the information areas An, corresponding to area 112a in Figure 5a, where n is the symbol value. This symbol value n is saved in a stack, and the system moves to state n. The horizontal coordinate Sx is saved as Xe, being the horizontal coordinate of the point of entry 502 into the area 112a.

Then the next sampled area is selected at step 504, and analysed at step 506 to determine whether it is within the same information area 112a or not. If it is not, then the process moves to step 508 where the new sampled area is analysed to determine whether it is another of the information areas or not.

If it is, as in the example shown in Figure 5a, then the system moves to a new state n=m, and the symbol value m associated with the new information area Am is stored in the stack.

If, at step 506, the new sampled area is determined to be within the same information area An as in the previous sampled area, the process moves to step 510, where the horizontal coordinate of the new sampled area is compared to that Xe of the last recorded entry point into that information area An. If it is not the same, then this indicates that the pen nib 310 has moved within the information area An, and the process returns to step 504 to sample the next area. If, however, the horizontal coordinate of the new sampled area is the same as Xe, then this indicates that the pen nib 310 has passed into an adjacent information area which is the same as the last one, i. e. that the information area An has been repeated indicating a repeated symbol n in the sequence. In this case the symbol n is stored again in the stack before the system returns to step 504.

If at step 508 the new sampled area is determined not to be in any of the information areas 112, then the recorded sequence of symbols in the stack is recorded as the final ID code at step 512. In the example of Figure 5a this would be when the pen nib 310 passes out of the right hand side of the third information area 112c.

In the example described above, a code of any number of symbols can be recorded. A further check can be included to ensure that the correct number of symbols are saved before the code will be recognized. If, at any time before the relevant number of symbols have been stored, the pen stroke data indicates that the pen nib has moved into a pattern area which is not one of the information areas 112, then the sequence is abandoned.

Also, instead of being carried out in the pen stroke interpretation module 224, the code identification process can be performed in the processor 318 of the pen 300. This enables the code identification to be carried out in real time as the pen 300 is being used. The identification code can then be used, for example, to indicate what to do with the rest of the pen stroke data, for

example to which of a number of different interpretation modules to sent it.

Alternatively the pen can be arranged to forward the ID code with the rest of the pen stroke data it has accumulated to indicate to the interpretation module 224 how to interpret the pen stroke data.

Referring to Figure 6, in a second embodiment of the invention, a document 600 has an area of pattern space 604 allocated to it, and over most of the area of the document 600 the pattern 602 is applied as a single general pattern area 605. This pattern can have a variety of functions and can be subdivided into separate areas which serve different functions, for example as a check box 605a, a free drawing area 605b, or a character recognition area 605c. These defined functions determine how pen strokes made in those areas will be interpreted. However, within the pattern 602, individual information areas 606 are also defined. The information areas are defined independently of the other functional areas, and can overlap with them, as shown in the case of the free drawing area 605b. The information areas 606 are arranged in groups 608, each group 608 comprising a horizontal row of adjacent areas 606 of equal size and shape. The groups 608 are aligned with each other, one above the other, so that each area 606 in each group 608 is vertically aligned with a corresponding area 606 in each of the other groups 608 to form an aligned set 610. Each group 608 is allocated a symbol, in this case numerals 0, 1, 2 etc. Each set 610 is allocated to a position in an ID code sequence 612, so that the number of areas 606 in each group 608, and hence the number of sets 610, must equal at least the number of symbols in the ID code sequence 612, in this case four.

An area 614 on the document 600 is designated as an ID code area, and is divided into a row of adjacent symbol areas 616, one symbol area 616 for each symbol in the ID code 612. To make up the code sequence, an area 606 of pattern from the first set 610 is selected and copied into the first, left had, symbol area 616. In the example shown the first pattern area A is

taken from the group representing the numeral 1, so the first symbol in the code sequence is a 1. Then a pattern area B is selected from the second set 610 of pattern areas and copied into the second symbol area 616. In this case the pattern area B is taken from the group representing the numeral 2, so the second symbol in the code 612 is a 2. Third are fourth pattern areas C, D are copied from the third and fourth sets 610 to indicate the third and fourth symbols in the code, in this case a 1 and a 0.

Referring to Figure 7, while the actual pattern in each of the pattern areas 606 will depend entirely on which area of pattern space has been allocated to the document 600, the relative positions of the various pattern areas 606 is carefully defined, and is the same for each document to which a code is to be applied. As will be described below, it is the relative positions of the sequence of pattern areas 606 in the code area 614 that determine the symbol which they represent. In order to determine these relative positions, various distances within the defined pattern areas 606 are defined. Yminl is the vertical distance, in the Y direction, between adjacent groups 608 of pattern areas 606, and is therefore the minimum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608. Ymaxl is the vertical distance between the top of one group and the bottom of the group below, and is therefore the maximum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608. Ymjn2 and Ymax2 are defined in a similar way for groups 608 which are spaced apart by one other group 608. Ymin3 and Ymax3 are defined in a similar way for groups 608 which are spaced apart by two other groups. Similar distances are defined for any further groups which are used, depending on the number of possible symbols in the code, which would typically be ten for the ten digits from 0 to 9. The horizontal width of each area 606 is defined as X.

In order to read the code 612, the processor 318 in the pen 300 is arranged to monitor consecutive sampled areas of pattern, and to recognize step changes in the Y coordinate, corresponding to movements between the groups 608 of pattern areas 606, as indicative that the pen nib 310 is moving across the code area 614. From the size of the step in Y coordinate the processor can determine the change in value between one symbol and the next. Provided the code includes one known symbol, then the absolute values of all of the symbols in the code can be determined. In this case the known reference symbol is the last symbol in the sequence, which is set to be 0 in every code.

Referring to Figure 8, an algorithm for reading the code 612 from the pattern areas 606 in the code area 614 will now be described. In this example it is not permitted for two consecutive symbols in the code to have the same value. The variables used in the algorithm are defined as follows: Sx and Sy indicate the X and Y coordinates of each new samples area; Sx0 and Sy0 are auxiliary variables for storing position coordinates; N is the number of symbols in the code; n is a counter for keeping track of how many symbols have been processed; and exmin, exmax, eymin and eymax are threshold values of displacements in the X and Y directions respectively.

The algorithm starts at step 620 where SxO, Sy0 and n are set to 0, and N is set to 3 to indicate that the code will have three useful symbols and a reference symbol. It then proceeds to step 622 where the pattern is again sampled at a new position and the coordinates Sx and Sy of that position determined. Also at this step the coordinates Sx and Sy are compared to the values of Sx0 and SyO, which are currently set to zero and so represent the coordinate origin, to see whether the X and Y displacements compared to the Sx0 and Sy0 values are within the range of possible values

corresponding to a movement of the pen nib 310 between two of the 606 in adjacent sets 610. In this first iteration this will not be the case, so Sx0 and Sy0 are set to the current position coordinates Sx. and Sy and the algorithm returns through the'not in coding area'state and moves on to the next sampled coordinates Sx and Sy, and repeats step 622. Now the position is compared with the previous position, which is now stored in Sx0 and SyO.

If the X and Y displacements correspond to a move between two pattern areas 606 in adjacent sets 610, then it is determined that the pen nib 310 is possibly in a coding area, and the algorithm moves to a state 624 indicative of that. The algorithm records the vertical displacement, i. e. the difference between Sy and SyO, in a stack, resets Sx0 to Sx and Sy0 to Sy and increases n to 1, indicating that the separation between the first and second symbols A, B has been identified. It then takes the next sample coordinates Sx and Sy moves to step 626 where a check, similar to that at step 622, is carried out to check whether the vertical and horizontal changes in position in pattern space of the pen nib 310 are consistent with the pen nib 310 having moved between two pattern areas 606. If they are, then the change in Y coordinate (Sy-Sy0) is stored in the stack, Sx0 and Sy0 are set to the current Sx and Sy, n is increased by 1 to indicate that another symbol has been added to the code, and the algorithm moves to step 628 where the value of n is checked. If n equals N+l then this indicates that all of the useful symbols and the reference symbol have been detected, and the symbol values in the stack are recognized as a complete code and processed accordingly, if n is less that N+l then further symbols are needed to complete the code, and the system loops back to step 626, remaining in the 'possibly in coding area'state.

If at step 626 it is determined that the pen nib has not moved between two pattern areas 606, then the algorithm proceeds to step 630 where the horizontal and vertical movements from the previous sampled position are compared to the threshold distances, to check whether the change in X

coordinate is between the two X coordinate thresholds exmin and exmax, and whether the change in Y coordinate is between the two Y coordinate thresholds eymin and eymax. If they are then this indicates that pen nib has moved within one of the pattern areas 606. Sx0 and Sy0 are set to the current values of Sx and Sy, and the algorithm loops back to step 626. If either of the X or Y coordinate displacements are outside the thresholds, then this is taken to indicate that the pen nib 310 has moved outside the coding area. The value of n is reset to zero, and the algorithm returns to the 'not in coding area'state and returns to the first step 622 where it will start checking for the beginning of another code sequence.

When the stack of Y coordinate displacements is recorded it indicates the difference in vertical position in pattern space, and hence the difference in value, between successive adjacent pairs of symbols in the code. Since the last symbol is known to be 0, the absolute values of all of the symbols can be determined.

The pen strokes from the other areas 605a, 605b, 605c of the document are analysed and processed in the usual way, being sent by the pen to the pen stroke interpretation module 224 which interprets them and converts them to suitable inputs to the application 226. The duplication of pattern between these areas 605a, 605b, 605c and the code area does not affect this processing. As mentioned above, in this case, the pattern in the code area 614 is interpreted by the pen 300 and the remaining pattern is interpreted in the separate module 224. However it will be appreciated that pen stroked from either area can be processed in any suitable location.

The use of a document identify code, or tracking code, as described above has a number of advantages. It can allow document tracking without the need to keep track of the position identifying pattern allocated to each document. It also allows the same pattern area to be used for any number of

documents without the uniqueness of the code, and therefore the unique identification of each document being affected. Furthermore the code is not readily readable by the human eye.

It will be appreciated that a variety of other types of data or information can be embedded within the position identifying code on a product using the methods described above. For example, where the product is a printed document, the information could be a code identifying a printer from which the document was printed, or a user who requested printing of the document. Alternatively it could be a code used for a security function.