20,000 Patterns

When reading or learning about PlanetPress Capture, you may have seen a number pop up here and there: "20,000 Patterns". In order to better understand what this number means and what it entails for you, the user, this document will first present an overview of a typical PlanetPress Capture implementation and then explain how the 20,000 patterns limitation can be circumvented in some cases. We will also touch upon the potential pitfalls of these workarounds as they are used.

The Numbers

First and foremost, the 20,000 patterns is a fixed number - PReS can only generate 20,000 unique patterns as this is the number of patterns that we license through Anoto.

The 20,000 patterns are, however, not all available when generating documents. There are 8 "demo" patterns that are used to generate documents when PlanetPress Capture is in demo mode (no license activated), and react the same way that the bulk of the 20,000 patterns. Another single pattern is used to register pens in the database, and one last single pattern is used when printing a "Preview" from PlanetPress Design. So in reality, the number of available patterns for document generation is 19990, but for simplicity's sake this FAQ uses the round number "20,000".

In a typical PlanetPress Capture implementation, a process in PReS Workflow generates output (generally, this output is directly printed) and, at the same time, will "lock" one pattern for each page that it generates, if that page contains a pattern. PReS Workflow also stores a copy of each document in the Capture Database, in PDF format.

While a document is printed, and while this printed document has not received any ink or signature, the document is deemed "open", the pattern it uses remains locked in the database and cannot be re-used. Then, when someone writes on the document and sends the pen data to PReS Workflow (through a docking station or through Bluetooth), if the required conditions have been met, the document will be "closed", its pattern released and available to be used immediately.

An open document can also be called a "live" document, in the sense that it is only active between the time where it is printed and the time where ink from the Anoto Digital Pen is processed and the document is closed. This duration is called "time to live" or "TTL", and it is the second very important number: how long is the pattern actually needed.

The third important number is based on your actual output needs. In other words, how many documents do you intend to print on a regular basis that will contain a pattern?

These three numbers, together, represent an easy way to determine if the 20,000 patterns are actually enough for you. Basically, if you generate X documents within a specific time frame but N of these documents are closed through regular process (writing on them with a pen and docking it) during that period, does the difference between both ever reach 20,000?

Example

Say you print 19,000 pages containing a pattern, every day. You may think you'll "run out of patterns" after a single day. But if 18,900 of these documents are being written to and processed within the day, at the end of the day you only have a 100 page difference, possibly due to mistakes, lost pages, or errors during processing. In this specific example, you would run out of patterns only after 10 days, assuming the numbers remained completely static. Since there are easy ways to deal with these remainders (a simple automated process that, once a day, closes any document that is older than 48 hours, for example), a correct implementation like this one would be perfectly functional and not be affected by the 20,000 page limit. Remember however that this means that 19,000 physical sheets of paper are printed every day, and those 19,000 documents are written on using one or more Anoto Digital Pens, which are then processed back into the system.

The example above actually uses numbers that are much higher than our typical PlanetPress Capture user. That is to say, a vast majority of our users will never have to worry about reaching the pattern limitation, unless their implementation is missing important parts, such as the "cleanup" process. But this also means a smaller minority of our users may require more than 20,000 patterns, so let's deal with this now.

Extending

There are actually 2 ways of dealing with extending the number of patterns using the currently available tools, each with its own advantages and disadvantages.

Using separate PReS Workflow servers and licenses.

In a scenario where there are multiple locations that use PlanetPress Capture and where neither pen nor paper has any risk of being moved from one location to another, the easiest (but costlier) solution is to have a separate installation of PReS Workflow in each location. Each installation would be responsible for its own documents and pens. The limitation here is that it would not be directly possible to send a page with an existing pattern to another location (either via email in PDF or via courier), sign it there and send it back - this would cause errors that would be hard to prevent and correct. In this scenario however, it's possible to centralize the activation of pen licenses to one server, while keeping the pattern generation systems separate.

Using Pattern Sequences

In the event where a single location generates all the patterns and this output *can* be split into multiple logical zones, Pattern Sequences can be used. A Pattern Sequence is basically a "tag" that is added after the pattern's identification (Pattern ID). When a Pattern Sequence is used, each Pattern Sequence can re-use each of the 20,000 available patterns. "Zones", in this case, could refer to a specific region within a city, or a whole city or a province, whatever fits your needs.

Pattern Sequences can be handled in 2 different ways: by attaching a Pattern Sequence to a specific pen, or by attaching it to a specific PReS Workflow process. Here is an example for each cases, using a typical situation of a shipping company that uses PlanetPress Capture to simplify the archiving of the client's signature on a "Confirmation of Reception" slip.

  • Pen-Based Sequences: In this case, each pen is attributed a specific pattern sequence. When documents are printed, they are set to attribute a pattern sequence to each document in relation to which pen it will be signed on. For example, the shipping company may have decided to print each "route" using the route number as a pattern sequence, and each pen is tagged (with a label) as being for use with a specific pattern sequence also. Each morning, as drivers are attributed a route, they pick up the correct pen and stack of paper that belong to their route before leaving.
It's very important to note here that the Anoto Digital Pen has absolutely no concept of Pattern Sequences. When "attributing" a sequence to a pen, this is fully on the PReS Workflow side, in the Capture Database. This means that if a pen is mislabeled or someone picks up the wrong pen, this pen has absolutely no way to know that it is writing on the wrong paper. more about this in the Contamination section below.
  • Process-Based Sequences: In this case, while documents are still printed and their route number attributed to their pattern sequence, the pens do not have this distinction. However, the docking station where the pens are placed at the end of the day are set to send the pen's data to a specific process which will only handle processing for that specific route number. In this case, one physical computer (and, presumably, printer) is used for each route, and the driver must dock the pen in the proper docking station which corresponds to his router number, at the end of the day.

As you may have figured out by now, we are still not actually printing more than 20,000 patterns. The only distinction here is that we are re-using patterns in separate "zones" (or, well, sequences) and as long as pens and pages using capture patterns are not exchanged between these zones, they act independently with their own 20,000 pattern limitation.

The mobile phone application, "PlanetPress Mobile", which uses Bluetooth communication to receive pen data and transmit it to PReS Workflow, can still be used with both pattern sequence methods, as it is the equivalent of a docking station on the web. PlanetPress Mobile was added to PlanetPress Capture in version 7.4.

Contamination

The single but critical danger with any implementation that deals with PlanetPress Capture is "Contamination". Basically, contamination happens when an Anoto Digital Pen writes on a "wrong" document or is docked in the wrong location. This can happen any number of ways and in different situations, and can have devastating effects in some of those cases so please pay special attention to this section.

First, contamination is not limited to implementations that extend their patterns through methods 1) and 2) above. Any time that a pen writes on a "wrong" document, it is considered contamination. A simple example in a basic implementation would be to print a document with a pattern on it, put this paper aside (or lose it on a desk somewhere) and forget about it. Assuming proper processes were put in place, this document would eventually be closed by a manual or automatic procedure. However, the physical document with the pattern still exists even if it is closed in regards to the PlanetPress Capture database. Contamination would happen if a new document is printed with the same pattern, but somehow the "old" document re-surfaces and someone writes ink on it and docks the pen. When this happens, neither the pen nor PReS Workflow can understand that the data does not belong on that document and will happily update the "current" document, possibly closing it. Because the "old" document relates (presumably) to a different client, this means the "current" document has invalid information.

This can be prevented through simple methods such as printing a date on each sheet and ensuring that users never sign a document that is older than a certain time, for example 48 hours. These sheets should simply be destroyed.

Second, contamination can happen in method 1) above if a pen or paper is moved from one location to another. Similarly to the previous contamination example, if there exists a document in the Capture Database where the "wrong" data is processed, it will update a document where it does not belong. Again, neither the pen nor PReS Workflow have any idea that this causes an error until it's too late.

Third, contamination (the most common one) can happen if pattern sequences get mixed up, if pens or paper gets swapped between users, etc. For example, again using a shipping company (with example 2-A), if two of the drivers were to meet for a coffee and exchange their pens inadvertently (we hope, anyways), the pens would be signing the "wrong" documents all day and, when docked, would update the wrong documents in the database.

In all of these cases, the errors often do not appear when the wrong document is updated - it actually occurs when the "right" data is processed. This happens precisely because the Pen and Production have no idea that the wrong data is received and will generally close the document after that "wrong" data has been processed - this often works with no error. However, when the "right" data is processed, then it tries to update a document that has already been closed by the "wrong" data, and thus fails.

Safeguards

There are certain safeguards against contamination:

  • PlanetPress Capture checks for pattern size and placement. If the data contains ink for a specific pattern but the ink location does not correspond to the Capture Fields of the document it's updating, it will fail.
  • Errors can be set to stop and revert the whole current batch. If a single error occurs during the pen data processing, it is possible for this processing to be stopped and all changes the Capture Database reverted. In implementations where the pen signs high number of documents, this can especially be an easy way to do this, as chances are the data will not match in at least one case.

Conclusion

  • PReS Workflow can only generate 20,000 unique patterns
  • One pattern is used (locked) for each page containing a pattern.
  • Processing the ink data from a pen and closing the document releases the pattern
  • Most implementations will not need more than 20,000 patterns
  • When necessary, patterns can be extended using multiple servers or Pattern Sequences (as long as these are used in separate physical locations).
  • It is extremely critical that contamination be avoided at all costs.
  • Whenever possible, always avoid using pattern sequences unless it is absolutely necessary to do so.