WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Data processing system and method to produce softcopy book readers which are limited to reading only books published by a specific publisher    
United States Patent5214696   
Link to this pagehttp://www.wikipatents.com/5214696.html
Inventor(s)Keiser, II; Harry R. (Rockville, MD); Stevens; Jeffrey N. (Gaithersburg, MD); Unger; Jay (Darnestown, MD)
AbstractA data processing system method and program are disclosed for limiting a book reading program for softcopy books, to be capable of reading only softcopy books published by a selected publisher. The method includes the step of generating with a data processor, a customized polynomial expression to be associated with a selected softcopy book publisher. The method continues by merging with a data processor, the customized polynomial expression with a first shell program, forming a stamping tool program for stamping a key value onto a softcopy book published by the selected publisher. The key value results from the polynomial, using the product of an integer times a hash value of the publisher's identity, as the value of the independent variable. Then the method continues by generating with a data processor, a customized inverse polynomial expression to the customized polynomial expression, to be associated with the selected softcopy book publisher. Finally, the method merges with a data processor, the customized inverse polynomial expression with a second shell program, forming a book validation program for validating the key value on the softcopy book published by the selected publisher and enabling a softcopy book reading program to read the softcopy book.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Keiser, II; Harry R. (Rockville, MD); Stevens; Jeffrey N. (Gaithersburg, MD); Unger; Jay (Darnestown, MD)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     May 25, 1993
Application Number     07/834,189
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     February 4, 1992
US Classification     705/51 380/28 380/277 704/1 713/168 715/500
Int'l Classification     H04L 009/28 G06F 015/38
Examiner     Barron Jr.; Gilberto
Assistant Examiner    
Attorney/Law Firm     Hoel; John E.
Address
Parent Case    
Priority Data    
USPTO Field of Search     380/3 380/4 380/28 380/30 380/25 380/23 364/419 395/425
Patent Tags     data processing produce softcopy book readers which are limited reading only books published specific publisher
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5065429
Lang

Nov,1991

[0 after 0 votes]
5010571
Katznelson
705/53
Apr,1991

[0 after 0 votes]
4937861
Cummins
380/2
Jun,1990

[0 after 0 votes]
4924378
Hershey
726/29
May,1990

[0 after 0 votes]
4879704
Takagi
369/53.21
Nov,1989

[0 after 0 votes]
4864494
Kobus, Jr.
726/33
Sep,1989

[0 after 0 votes]
4858036
Ginkel
360/60
Aug,1989

[0 after 0 votes]
4849836
Kachikian
360/60
Jul,1989

[0 after 0 votes]
4796220
Wolfe
705/56
Jan,1989

[0 after 0 votes]
4683968
Appelbaum
705/59
Aug,1987

[0 after 0 votes]
4670857
Rackman
705/51
Jun,1987

[0 after 0 votes]
4658093
Hellman
705/52
Apr,1987

[0 after 0 votes]
4577289
Comerford
360/60
Mar,1986

[0 after 0 votes]
4558176
Arnold
713/190
Dec,1985

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A data processing method for limiting a book reading program for softcopy books, to be for reading only softcopy books published by a selected publisher, comprising the steps of:

generating with a data processor, a customized polynomial expression to be associated with a selected softcopy book publisher;

merging with a data processor, said customized polynomial expression with a first shell program, forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

generating with a data processor, a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher;

merging with a data processor, said customized inverse polynomial expression with a second shell program, forming a book validation program for validating said key value on said softcopy book published by said selected publisher and enabling a softcopy book reading program to read said softcopy book.

2. A data processing method for limiting a book reading program for softcopy books, to be for reading only softcopy books published by a selected publisher, comprising the steps of:

generating with a data processor, a customized polynomial expression to be associated with a selected softcopy book publisher;

generating with a data processor, a publisher identity value which is a hashed representation of an identifying characteristic of said selected publisher;

merging with a data processor, said customized polynomial expression and said publisher identity value with a first shell program, forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

generating with a data processor, a first book identity value which is a hashed representation of an identifying characteristic of a first softcopy book published by said selected publisher;

computing a first key value with said stamping tool program using said first book identity value and affixing said first key value to said first softcopy book;

generating with a data processor, a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher;

merging with a data processor, said customized inverse polynomial expression and said publisher identity value with a second shell program, forming a book validation program for validating said first key value on said first softcopy book and enabling a softcopy took reading program to read said first softcopy book;

computing a first test value with said book validation program using said first book identity value and said first key value; and

enabling a softcopy book reader program to read said first softcopy book when said first test value indicates said first key value was generated by said stamping tool program.

3. A limited book reading program for softcopy books, for reading only softcopy books published by a selected publisher, said books having a key expression incorporated therein formed from a customized polynomial expression which uniquely represents said selected publisher, comprising:

a customized program code module which includes a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher;

a shell program code module merged with said customized program code module, forming a book validation program for validating said key expression in a valid softcopy book published by said selected publisher and producing an enabling message;

a softcopy book reading program for reading said valid softcopy book in response to said enabling message.

4. A data processing system for limiting a book reading program for softcopy books, to be for reading only softcopy books published by a selected publisher, comprising:

a first data processor, for generating a customized polynomial expression to be associated with a selected softcopy book publisher;

said first data processor merging said customized polynomial expression with a first shell program, forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

a second data processor coupled to said first data processor, for receiving said stamping tool program from said first data processor and affixing said key value onto a softcopy book published by said selected publisher, forming a validly stamped book;

said first data processor generating a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher;

said first data processor merging said customized inverse polynomial expression with a second shell program, forming a book validation program for validating said key value on said validly stamped book;

a third data processor coupled to said first data processor for receiving said book validation program and coupled to said second data processor for receiving said validly stamped book, and having a book reader program for reading softcopy books, for validating said key value on said validly stamped book and enabling said softcopy book reading program to read said validly stamped book.

5. A data processing system for limiting a book reading program for softcopy books, for reading only softcopy books published by a selected publisher, comprising:

a first data processor, for generating a customized polynomial expression to be associated with a selected softcopy book publisher;

said first data processor generating a publisher identity value which is a hashed representation of an identifying characteristic of said selected publisher;

said first data processor merging said customized polynomial expression and said publisher identity value with a first shell program, forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

a second data processor coupled to said first data processor, for generating a first book identity value which is a hashed representation of an identifying characteristic of a first softcopy book published by said selected publisher;

said second data processor computing a first key value with said stamping tool program using said first book identity value and affixing said first key value to said first softcopy book;

said first data processor generating a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher;

said first data processor merging said customized inverse polynomial expression and said publisher identity value with a second shell program, forming a book validation program for validating said first key value on said first softcopy book and enabling a softcopy look reading program to read said first softcopy book;

a third data processor coupled to said first and said second data processors, for computing a first test value with said book validation program using said first book identity value and said first key value; and

said third data processor enabling a softcopy book reader program to read said first softcopy book when said first test value indicates said first key value was generated by said stamping tool program.

6. A data processing method for limiting a book reading program for softcopy books, for reading only softcopy books published by a selected publisher, comprising the steps of:

generating with a data processor, a customized polynomial expression to be associated with a selected softcopy book publisher, said customized polynomial expression forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

stamping a key value onto a softcopy book published by said selected publisher using said stamping tool program;

generating with a data processor, a customized inverse polynomial expression to said customized polynomial expression, to be associated with said selected softcopy book publisher, said customized inverse polynomial expression forming a book validation program for validating said key value on said softcopy book published by said selected publisher;

validating said key value on said softcopy book published by said selected publisher, using said book validation program; and

enabling a softcopy book reading program to read said softcopy book in response to said book validation program validating said key value.

7. A data processing method for limiting a book reading program for softcopy books, for reading only softcopy books published by a selected publisher, comprising the steps of:

generating with a data processor, a customized monotonic, single valued function expression to be associated with a selected softcopy book publisher, said customized monotonic, single valued function expression forming a stamping tool program for stamping a key value onto a softcopy book published by said selected publisher;

stamping a key value onto a softcopy book published by said selected publisher using said stamping tool program;

generating with a data processor, a customized inverse monotonic, single valued function expression to said customized monotonic, single valued function expression, to be associated with said selected softcopy book publisher, said customized inverse monotonic, single valued function expression forming a book validation program for validating said key value on said softcopy book published by said selected publisher;

validating said key value on said softcopy book published by said selected publisher, using said book validation program; and

enabling a softcopy book reading program to read said softcopy book in response to said book validation program validating said key value.

8. The method of claim 7 which further comprises:

said monotonic, single valued function has a value for its independent variable which is a product of an integer times a hashed value characteristic of said selected publisher;

said validating step further comprises:

determining an inverse value for said customized inverse monotonic, single valued function expression from said key value:

dividing said inverse value by said hashed value to obtain a quotient value; and

determining if said quotient value is an integer.

9. A limited a book reading program process for softcopy books in a data processing system, for reading only softcopy books published by a selected publisher, said books stamped with a key formed with a customized monotonic, single valued function expression associated with a selected softcopy book publisher, comprising:

validating in a data processing system, a key value on said softcopy book published by said publisher, using a book validation program having a customized inverse monotonic, single valued function expression to said customized monotonic, single valued function expression, associated with said selected softcopy book publisher;

enabling in a data processing system, a softcopy book reading program to read said softcopy book in response to said book validation program validating said key value;

said monotonic, single valued function has a value for its independent variable which is a product of an integer times a hashed value characteristic of said selected publisher;

said validating step further comprises:

determining an inverse value for said customized inverse monotonic, single valued function expression from said key value:

dividing said inverse value by said hashed value to obtain a quotient value; and

determining if said quotient value is an integer.

10. A stamping tool program process for stamping softcopy books in a data processing system, with a key formed with a customized monotonic, single valued function expression which is uniquely associated with a selected softcopy book publisher, comprising:

affixing in a data processing system, a key value on a softcopy book published by said selected publisher, using a stamping tool program having a customized monotonic, single valued function expression associated with a selected softcopy book publisher;

said key value resulting from said monotonic, single valued function having a value for its independent variable which is a product of an integer times a hashed value characteristic of said selected publisher;

said key value capable of being read by a book validation program to enable a softcopy book reading program to read said softcopy book in response to said book validation program validating said key value;

validating in a data processing system, said key value by determining an inverse value for a customized inverse monotonic, single valued function expression using said key value, dividing said inverse value by said hashed value to obtain a quotient value and determining if said quotient value is an integer.

11. A system for stamping softcopy books in a data processing system, with a key formed with a customized monotonic, single valued function expression which is uniquely associated with a selected softcopy book publisher, comprising:

a stamping tool means having a customized monotonic, single valued function expression associated with a selected softcopy book publisher, for affixing a key value on a softcopy book published by said selected publisher;

said key value resulting from said monotonic, single valued function having a value for its independent variable which is a product of an integer times a hashed value characteristic of said selected publisher;

said key value capable of being read by a book validation means to enable a softcopy book reading program to read said softcopy book in response to said book validation program validating said key value;

said book validation means validating said key value by determining an inverse value for a customized inverse monotonic, single valued function expression using said key value, dividing said inverse value by said hashed value to obtain a quotient value and determining if said quotient value is an integer.

12. A system for reading softcopy books, for reading only softcopy books published by a selected publisher, said books stamped with a key formed with a customized monotonic, single valued function expression associated with a selected softcopy book publisher, comprising:

a book validation means having a customized inverse monotonic, single valued function expression to said customized monotonic, single valued function expression, associated with said selected softcopy book publisher, for validating said key value on said softcopy book published by said selected publisher;

a softcopy book reading means coupled to said book validation means, for reading a softcopy book;

said book validation means enabling said softcopy book reading means to read said softcopy book in response to said book validation means validating said key value;

said monotonic, single valued function has a value for its independent variable which is a product of an integer times a hashed value characteristic of said selected publisher;

said book validation means further comprises:

means for determining an inverse value for said customized inverse monotonic, single valued function expression from said key value;

means for coupled to said determining means, for dividing said inverse value by said hashed value to obtain a quotient value; and

means coupled to said dividing means, for determining if said quotient value is an integer.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Technical Field

The invention disclosed broadly relates to data processing and more particularly relates to softcopy book readers.

2. Background Art

Large, softcopy documents have been stored in data processing systems for later retrieval and display. The retrieval of documents using a computer has been a prominent application in both business and library science. However, the presentation of large, softcopy documents for display on a monitor screen, has been in a serial, page-by-page format. The page-by-page presentation has made the on-line review of large, softcopy documents a slow and inefficient operation. To solve this problem of page-by-page presentation, softcopy book reading programs have been devised. For example, the IBM BookManager (TM) READ program helps the user manage, search and look at on-line books. There are two complementary BookManager products, BookManager BUILD creates on-line books from files marked-up with Generalized Markup Language. The BookManager READ product can then manage, search and show the on-line books created by BookManager BUILD. The BookManager READ program product is described in the IBM publication "BookManager (TM) READ/VM, Displaying On-Line Books," publication number SC23-0449-1, September 1990. The BookManager BUILD program product is described in the IBM publication "BookManager (TM) BUILD/VM - Preparing On-Line Books," publication number SC23-0450-1, September 1990. These publications are available from IBM branch offices.

The IBM BookManager READ program is capable of reading any book which has been built by the IBM BookManager BUILD program. It would be useful to have a version of IBM BookManager READ which was limited to reading only those books which are published by a particular speciality publisher. A speciality publisher, for example, a publisher of Shakespearean plays, has a customer set with a limited need for BookManager READ to read only the Shakespearean plays published by that publisher. Another speciality publisher, for example, a publisher of automotive repair manuals, has a clientele with a limited need for BookManager READ to read only automobile repair manuals published by that publisher. However, the owner of a copy of the full function BookManager READ should be permitted to read any softcopy publication prepared by BookManager BUILD, whether it came from the publisher of the Shakespearean plays, or the publisher of the automobile repair manuals, or any publisher of softcopy books which are built using the IBM BookManager BUILD program. By having a limited library BookManager READ program, the speciality publisher can enhance the marketability of his softcopy book product, while the licensor of the full function BookManager READ does not undercut the market for his book reader product.

Further, it would be useful to have a limited library BookManager READ for a speciality publisher, capable of reading not only the first book published by that speciality publisher, but a whole series of books published both currently and in the future by that speciality publisher. It would not be the objective to prevent the softcopy books themselves from being copied, but only to limit the application of the limited library BookManager READ to reading a particular publisher's line of publications. Each respective speciality publisher would then be able to produce softcopy books readable by a low cost version of IBM BookManager READ which is limited to reading only those books published by that publisher. The limited library BookManager READ should be capable of being freely copied by the end user to enable the speciality publisher's books to be read by several persons within the end user's enterprise.

OBJECTS OF THE INVENTION

It is therefore an object of the invention to provide an improved softcopy reading device.

It is another object of the invention to provide an improved softcopy reading device which is limited to reading only those books published by a particular publisher.

It is still a further object of the invention to provide a softcopy reading device which is capable of being copied itself, however which is limited to reading only those books produced by a particular publisher.

It is yet a further object of the invention to provide a softcopy book reading device and method which enables a particular publisher to produce softcopy books in many editions, which are readable by a limited softcopy reader, while preventing the softcopy reader from reading publications produced by any other publisher.

SUMMARY OF THE INVENTION

These and other objects, features and advantages are accomplished by the invention disclosed herein. A data processing system and method are disclosed to produce a softcopy book reader which is limited to reading only books published by a specific publisher. The licensor of the softcopy reader produces a stamping tool program and a book validation program which are customized for a particular speciality publisher.

The stamping tool program includes a customized polynomial which contains information characteristic of the speciality publisher. The book validation program includes a customized inverse polynomial which also contains information characteristic of the speciality publisher.

The speciality publisher uses the stamping tool program to stamp a key into his softcopy book being published, creating a stamped book. The key being stamped into the softcopy book has characteristics derived from the book being stamped and also characteristics derived from the speciality publisher's identity. The stamping tool uses the customized polynomial to produce the key. The speciality publisher then publishes the stamped book for sale to end users.

The book validation program is combined with the full function book reader program, forming a limited book reader program. The limited book reader program can be delivered to end users who will be reading the speciality publisher's publications. Alternately, the limited book reader program can be delivered to the publisher himself, who will incorporate it along with the stamped softcopy book, as a part of the speciality publication offered by the publisher.

The end user will read the stamped softcopy book using the limited book reader program, which will perform a check of the key value stamped in the softcopy book. This is done using the customized inverse polynomial to determine whether the softcopy book is in fact published by the speciality publisher. If the book validation program successfully tests the key based upon the key value and information about the book, then the end user is able to use the book reader program to read the book. If the key does not test correctly, then the book reader program is not enabled.

The end user may have an unlimited version of the book reader program and it is able to read the stamped softcopy book, because it is not required to test and validate the key value stored in the softcopy book.

A second speciality publisher wishing to have his respective library of books stamped for limited library reading will have assigned to him a different customized polynomial and customized inverse polynomial by the licensor of the book reader program. The resulting stamping tool for the second speciality publisher will stamp a key value on books which is incompatible with the first speciality publisher's limited book reader program. In this manner, speciality publishers are enabled to provide low cost, softcopy book readers for their clientele, which are limited to reading only stamped books produced by that particular speciality publisher.

DESCRIPTION OF THE FIGURES

These and other objects, features and advantages of the invention will be more fully appreciated with reference to the accompanying figures.

FIG. 1 is a flow diagram of the book publisher customization program.

FIGS. 2A, 2B, 2C, are flow diagrams of the program to generate the customized polynomial and inverse polynomial.

FIG. 3 is an illustration of the stamping tool program shell 62.

FIG. 4 is an illustration of the book validation program shell 66.

FIGS. 5A and 5B are flow diagrams of the stamping tool program.

FIGS. 6A and 6B are flow diagrams of the book validation program.

FIG. 7 is a data flow diagram illustrating the routing of the stamper program, the limited book reader program, and the keyed book.

FIG. 8 is a functional block diagram of the program generation workstation at the licensor's location, which generates the stamping tool program and the book validation program.

FIG. 9 is a functional block diagram of the publisher's workstation which executes the stamping tool program to affix the key to a softcopy book.

FIG. 10 is a functional block diagram of the end user's workstation where the book validation program is executed on a softcopy book to determine whether it is a valid book which can be read by the limited book reader program.

FIG. 11 is a graph of customized polynomials with a first polynomial assigned to a first publisher and a second polynomial assigned to a second publisher.

FIG. 12A is a flow diagram of the unlimited book reader program 152'.

FIG. 12B is a flow diagram of the limited book reader program 148.

FIG. 13 is a flow diagram of an alternate generation program 40a to generate an alternate stamping tool program 70a.

FIG. 14 is an alternate generation program 40b to generate an alternate book validation program 100a.

FIG. 15A is the customized exponential function 65a and FIG. 15B is the customized inverse exponential function 69a. FIG. 15C shows a graph of the exponential function.

FIG. 16A is the customized catenary function 65b and FIG. 16B is the customized inverse catenary function 69b. FIG. 16C shows a graph of the catenary function.

FIG. 17A is the customized logarithmic function 65c and FIG. 17B is the customized inverse logarithmic function 69c. FIG. 17C depicts a graph of the logarithmic function.

FIG. 18A is the customized equilateral hyperbola function 65d and FIG. 18B is the customized inverse equilateral hyperbola function 69d. FIG. 18C depicts a graph of the equilateral hyperbola function.

DISCUSSION OF THE PREFERRED EMBODIMENT

The above referenced IBM publications describing BookManager BUILD and BookManager READ program products, describe the principles of operation of a softcopy book reading program whose presentation format primarily displays on a monitor display screen. Additional background description of the BookManager product can be found in the following IBM patent applications:

Abandoned U.S. patent application Ser. No. 317,248, filed Feb. 20, 1989, now abandoned, entitled "A Method for Displaying On-Line Information," by E. Cassorla, et al., assigned to the IBM Corporation and incorporated herein by reference.

Copending U.S. patent application Ser. No. 486,461, filed Feb. 28, 1990 now U.S. Pat. No. 5,146,552, entitled "a Method for Associating Annotation With Electronic Books," by J. DeVries, et al., assigned to the IBM Corporation and incorporated herein by reference.

Copending U.S. patent application Ser. No. 546,334, filed Jun. 29, 1990, entitled "Structured Document Tags Invoking Specialized Functions," by N. Sabia, et al., assigned to the IBM Corporation and incorporated herein by reference.

Copending U.S. patent application Ser. No. 755,709, filed Sep. 6, 1991 entitled "A Data Processing Method to Provide a Generalized Link From a Reference Point in an On-Line Book to a Arbitrary Multimedia Object Which Can be Dynamically Updated," by A. Cutlip Cohen, et al., assigned to the IBM Corporation and incorporated herein by reference.

The BookManager BUILD and BookManager READ program products use on-line, softcopy books which are formatted using a Generalized Markup Language (GML), such as the language described in the following two IBM publications:

"IBM BookMaster -- Text Programmers Notebook -- Release 3.0," publication number SC34-5012-02, September 1990 and "IBM BookMaster -- Users Guide -- Release 3.0," publication number SC34-5009-03, September 1990. Both of these IBM BookMaster publications are available through IBM branch offices.

FIG. 1 shows the publisher customization program which is characterized as the overall method for generating a stamping tool program and a book validation program at the generation workstation 140 in FIG. 7. The method of FIG. 1 also shows the distribution of the stamping tool program 70 and the limited book reader program 148. In FIG. 1, the computer program embodying method 20 begins by inputting the book publisher's identification "PubID" in step 22. Then in step 24, a hash value h[PubID] is computed. This hash value can be computed in a variety of ways, one way of which is illustrated in Table 1A. For example, if publisher A has a name "Shakespeare Library Publishers, Inc.," one simple hashing technique is to isolate the first five characters in the name of the publisher, in this case, the five alpha characters "Shake," and to compute the sum of their ASCII code values. The sum of the five ASCII code values can then be taken modulo 100 to provide a hashed value. For example, the sum of the ASCII characters for "Shake" is 492 taken modulo 100 is 92, which is the value for the hashed publisher identification h[PubID]. The constant CONST3 is set equal to h[PubID].

Then in the flow diagram of FIG. 1, step 26 generates the customized polynomial for the publisher's key generator and the customized inverse polynomial for the inverse key generator. The program to generate the customized polynomial and inverse polynomial is shown in FIG. 2. The program 40 of FIG. 2 starts with step 42 which computes values for the constant "DEGREE," "CONST1," and "CONST2." These computations are illustrated in Table 1B. The constant "DEGREE" represents the degree of the polynomial which is desired to be used as the customizing polynomial. As is shown in Table 1B, the function "RND" is a random number generator function which generates a pseudorandom number having a value greater than zero and less than one. By multiplying RND times five, and adding one, a random number is generated which is greater than one and less than six. The function "INT" operating on an argument, computes the largest integer not greater than the argument. Thus, if the result of computing the value for "DEGREE" is applied as the argument of "INT," the result is the largest integer not greater than "DEGREE." If the random number computation generated a value of 2.134 for DEGREE, then the largest integer not greater than that value is 2. DEGREE is set equal to 2. This means that a second degree polynomial will be used as the customized polynomial and a second degree inverse polynomial will be used as the inverse polynomial in the program 40 of FIG. 2.

The values for CONST1 and CONST2 are also computed as random numbers, and turned into integers. As is shown in step 42 and in Table 1B, CONST1 is set equal to the largest integer not greater than the product of the random number generated by RND times 10,000. In the example of Table 1B, RND times 10,000 equals 103.34. The largest integer not greater than that value is 103 and that is the value to which the constant CONST1 is set equal. The constant CONST2 is computed in a similar manner and is shown in Table 1B, RND times 10,000 is equal to 88.29 and the largest integer not greater than that value is 88. CONST2 is set equal to the value of 88 in step 42 in FIG. 2.

Step 44 is a computed GOTO statement where the value of the variable "DEGREE" is evaluated as being either one, two, three, four or five and a separate address is jumped-to from step 44, depending on that value. If DEGREE were equal to one, then the program jumps to module 46 which is a first degree polynomial module. If the value of DEGREE were equal to two, then the program jumps to module 48 which is a second degree polynomial module. If the value of DEGREE is equal to three, then the program jumps to step 50 which is a third degree polynomial module. If the value of DEGREE is equal to four, then the program jumps to module 52 which is a fourth degree polynomial module. If the value of DEGREE is equal to five, then the program jumps to step 54 which is a fifth degree polynomial module.

One can see that the principle can be generalized to a Taylor series expansion which has as many terms as one finds necessary to replicate a particular function. The polynomial function desired to be used in the program 40 of FIG. 2, need only have the property that there is a one-to-one relationship between the independent variable X and the dependent variable F(X), where F(X) is equal to the Taylor series expansion. There is a great variety of polynomials which will provide this behavior. For ease of computing an inverse polynomial, only those polynomials are shown in the examples herein, which are first, second, third, fourth or fifth degree polynomials which have two terms, a first term having a coefficient times X.sup.nth and a second term which is a constant. In this manner, an inverse polynomial can be easily shown in the example. However, other polynomials having more complex behavior an