Claims
- 1. A method for encoding machine-readable graphical codes, comprising:
receiving source data, the source data comprising a first portion and a second portion; effecting conversion of the source data into reference encoded source data, the reference encoded source data comprising a first reference identifier in place of the first portion, the reference encoded source data also comprising the second portion; and sending the reference encoded source data to a graphical code generator that is configured to convert the reference encoded source data into a graphical code.
- 2. The method of claim 1, wherein the first reference identifier is shorter in length than the first portion.
- 3. The method of claim 1, wherein effecting conversion of the source data into the reference encoded source data comprises:
obtaining the first reference identifier, associating the first portion of the source data with the first reference identifier.
- 4. The method of claim 1, wherein the first reference identifier does not include a terminating symbol.
- 5. The method of claim 3, wherein associating the first portion of the source data with the first reference identifier comprises storing the first portion of the source data and the first reference identifier in a reference database.
- 6. The method of claim 5, wherein obtaining the first reference identifier comprises creating the first reference identifier.
- 7. The method of claim 6, wherein the first reference identifier comprises a prefix and a suffix, and wherein creating the first reference identifier comprises:
locating a previously assigned reference identifier in the reference database, the previously assigned reference identifier comprising the prefix and a previously assigned suffix; and forming the suffix by incrementing the previously assigned suffix.
- 8. The method of claim 5, wherein the first reference identifier comprises a prefix and a suffix, and wherein obtaining the first reference identifier comprises locating an expired reference identifier in the reference database, the expired reference identifier comprising the prefix and the suffix.
- 9. The method of claim 1, wherein the source data comprises a URL.
- 10. A method for decoding machine-readable graphical codes, comprising:
receiving reference encoded source data, the reference encoded source data comprising a first reference identifier and a second portion; effecting conversion of the reference encoded source data into source data, the source data comprising first affiliated data in place of the first reference identifier, the source data further comprising the second portion; and making the source data available to a software application.
- 11. The method of claim 10, wherein the first reference identifier is shorter in length than the first affiliated data.
- 12. The method of claim 10, wherein effecting conversion of the reference encoded source data into source data comprises:
locating a reference database that contains the first reference identifier and the first affiliated data; and retrieving the first affiliated data from the reference database.
- 13. The method of claim 12, wherein the first reference identifier and the first affiliated data are associated with a cache period.
- 14. The method of claim 12, wherein locating the reference database comprises:
looking for the first reference identifier and the first affiliated data in a first reference database; and locating the first reference identifier and the first affiliated data in a second reference database.
- 15. The method of claim 12, wherein the first affiliated data is dynamically changeable.
- 16. The method of claim 10, wherein the first reference identifier does not include a terminating symbol.
- 17. The method of claim 12, wherein the reference database is stored on a server, and wherein locating the reference database comprises establishing communication with the server over a network.
- 18. The method of claim 12, wherein the reference database is stored on a first server and on a second server, and wherein locating the reference database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 19. The method of claim 17, wherein the first reference identifier and the first affiliated data are stored in a first record in the reference database, and wherein retrieving the first affiliated data from the reference database comprises downloading the first record from the server.
- 20. The method of claim 19, further comprising associating an expiration date with the first record.
- 21. The method of claim 19, wherein the reference database further comprises a second record, the second record comprising a second reference identifier and second affiliated data, the second affiliated data being associated with the second reference identifier, and wherein retrieving the first affiliated data from the reference database further comprises downloading the second record from the server.
- 22. The method of claim 10, wherein the source data comprises command data recognizable by the software application as a command to perform a task, and further comprising determining whether a user of the software application is authorized to effect performance of the task.
- 23. The method of claim 22, wherein determining whether the user is authorized to effect performance of the task comprises accessing an authorization database, the authorization database comprising a source identifier that identifies the task, the authorization database further comprising a plurality of user identifiers associated with the source identifier.
- 24. The method of claim 23, wherein the authorization database is stored on a server, and wherein accessing the authorization database comprises establishing communication with the server over a network.
- 25. The method of claim 24, wherein determining whether the user is authorized to effect performance of the task further comprises downloading authorization information about the user from the authorization database, the authorization information comprising an authorization period for the user.
- 26. The method of claim 23, wherein the authorization database is stored on a first server and on a second server, and wherein accessing the authorization database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 27. The method of claim 10, further comprising determining whether a provider of the source data is authorized to provide source data to the application.
- 28. The method of claim 27, wherein determining whether a provider of the source data is authorized to provide source data to the application comprises accessing an authorization database, the authorization database comprising a plurality of provider identifiers.
- 29. The method of claim 28, wherein each of the plurality of provider identifiers identifies an authorized provider of source data.
- 30. The method of claim 28, wherein each of the plurality of provider identifiers identifies an unauthorized provider of source data.
- 31. The method of claim 10, wherein the reference encoded source data comprises a reference encoded URL, wherein the source data comprises a URL, wherein the software application comprises a web browser, and wherein effecting conversion of the reference encoded URL into the URL comprises:
sending the reference encoded URL to a dynamic web server as part of a file request; and receiving a web file from the dynamic web server, the web file comprising the URL, the web file further comprising a refresh tag which causes the web browser to access a web page corresponding to the URL.
- 32. The method of claim 10, wherein the reference encoded source data further comprises a substitution tag, and further comprising substituting dynamic data for the substitution tag.
- 33. The method of claim 32, wherein the dynamic data comprises a user identifier.
- 34. The method of claim 32, wherein the dynamic data comprises a serial number of a graphical code reading device.
- 35. The method of claim 32, wherein the dynamic data comprises a resolution of a display screen.
- 36. The method of claim 32, wherein the dynamic data comprises an operating system identifier.
- 37. The method of claim 32, wherein the dynamic data comprises a CD drive designation.
- 38. A system for encoding machine-readable graphical codes, comprising:
a data generator interface configured to obtain source data from a data generator, the source data comprising a first portion and a second portion; a computing device configured for electronic communication with the data generator, the computing device comprising:
a processor; a memory in electronic communication with the processor; a reference encoder configured to effect conversion of the source data into reference encoded source data, the reference encoded source data comprising a first reference identifier in place of the first portion, the reference encoded source data also comprising the second portion; and a graphical code generator configured to convert the reference encoded source data into a graphical code.
- 39. The system of claim 38, wherein the first reference identifier is shorter in length than the first portion.
- 40. The system of claim 38, wherein the reference encoder effects conversion of the source data into reference encoded source data by:
obtaining the first reference identifier; and associating the first portion of the source data with the first reference identifier.
- 41. The system of claim 38, wherein the first reference identifier does not include a terminating symbol.
- 42. The system of claim 40, wherein associating the first portion of the source data with the first reference identifier comprises storing the first portion of the source data and the first reference identifier in a reference database.
- 43. The system of claim 42, wherein obtaining the first reference identifier comprises creating the first reference identifier.
- 44. The system of claim 43, wherein the first reference identifier comprises a prefix and a suffix, and wherein creating the first reference identifier comprises:
locating a previously assigned reference identifier in the reference database, the previously assigned reference identifier comprising the prefix and a previously assigned suffix; and forming the suffix by incrementing the previously assigned suffix.
- 45. The system of claim 42, wherein the first reference identifier comprises a prefix and a suffix, and wherein obtaining the first reference identifier comprises locating an expired reference identifier in the reference database, the expired reference identifier comprising the prefix and the suffix.
- 46. The system of claim 38, wherein the source data comprises a URL.
- 47. A system for decoding machine-readable graphical codes, comprising:
a graphical code reading device configured to read a graphical code and generate reference encoded source data, the reference encoded source data comprising a first reference identifier and a second portion; and a computing device in electronic communication with the graphical code reading device, the computing device comprising:
a processor; a memory in electronic communication with the processor; a communications port in electronic communication with the processor for communicating with the graphical code reading device; a reference decoder configured to effect conversion of the reference encoded source data into source data, the source data comprising first affiliated data in place of the first reference identifier, the source data further comprising the second portion; and a software application configured to use the source data.
- 48. The method of claim 47, wherein the first reference identifier is shorter in length than the first affiliated data.
- 49. The system of claim 47, wherein the reference decoder effects conversion of the reference encoded source data into source data by:
locating a reference database that contains the first reference identifier and the first affiliated data; and retrieving the first affiliated data from the reference database.
- 50. The system of claim 49, wherein the first reference identifier and the first affiliated data are associated with a cache period.
- 51. The system of claim 49, wherein locating the reference database comprises:
looking for the first reference identifier and the first affiliated data in a first reference database; and locating the first reference identifier and the first affiliated data in a second reference database.
- 52. The system of claim 49, wherein the first affiliated data is dynamically changeable.
- 53. The system of claim 47, wherein the first reference identifier does not include a terminating symbol.
- 54. The system of claim 49, wherein the reference database is stored on a server, and wherein locating the reference database comprises establishing communication with the server over a network.
- 55. The system of claim 49, wherein the reference database is stored on a first server and on a second server, and wherein locating the reference database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 56. The system of claim 54, wherein the first reference identifier and the first affiliated data are stored in a first record in the reference database, and wherein retrieving the first affiliated data from the reference database comprises downloading the first record from the server.
- 57. The system of claim 56, wherein the reference decoder is further configured to associate an expiration date with the first record.
- 58. The system of claim 49, wherein the reference database is stored on a first server and on a second server, and wherein locating the reference database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 59. The system of claim 54, wherein the computing device further comprises a cache in electronic communication with the reference decoder, wherein the first reference identifier and the first affiliated data are stored in a first record in the reference database, and wherein retrieving the first affiliated data from the reference database comprises downloading the first record from the server and storing the first record in the cache.
- 60. The system of claim 59, wherein the reference database further comprises a second record, the second record comprising a second reference identifier and second affiliated data, the second affiliated data being associated with the second reference identifier, and wherein retrieving the first affiliated data from the reference database further comprises downloading the second record from the server and storing the second record in the cache.
- 61. The system of claim 47, wherein the source data comprises command data recognizable by the software application as a command to perform a task, and further comprising an access control module configured to determine whether a user of the software application is authorized to effect performance of the task.
- 62. The system of claim 61, wherein determining whether the user is authorized to effect performance of the task comprises accessing an authorization database, the authorization database comprising a source identifier that identifies the task, the authorization database further comprising a plurality of user identifiers associated with the source identifier.
- 63. The system of claim 62, wherein the authorization database is stored on a server, and wherein accessing the authorization database comprises establishing communication with the server over a network.
- 64. The system of claim 63, wherein determining whether the user is authorized to effect performance of the task further comprises downloading authorization information about the user from the authorization database, the authorization information comprising an authorization period for the user.
- 65. The system of claim 62, wherein the authorization database is stored on a first server and on a second server, and wherein accessing the authorization database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 66. The system of claim 47, wherein the reference decoder is further configured to determine whether a provider of the source data is authorized to provide source data to the application.
- 67. The system of claim 66, wherein determining whether a provider of the source data is authorized to provide source data to the application comprises accessing an authorization database, the authorization database comprising a plurality of provider identifiers.
- 68. The system of claim 67, wherein each of the plurality of provider identifiers identifies an authorized provider of source data.
- 69. The system of claim 67, wherein each of the plurality of provider identifiers identifies an unauthorized provider of source data.
- 70. The system of claim 47, wherein the reference encoded source data comprises a reference encoded URL, wherein the source data comprises a URL, wherein the software application comprises a web browser, and wherein the reference decoder effects conversion of the reference encoded URL into the URL by sending the reference encoded URL to the web browser, the web browser being configured to:
send the reference encoded URL to a dynamic web server as part of a file request; and receive a web file from the dynamic web server, the web file comprising the URL, the web file further comprising a refresh tag which causes the web browser to access a web page corresponding to the URL.
- 71. The system of claim 47, wherein the reference decoder is contained within the graphical code reading device.
- 72. The system of claim 47, wherein the reference encoded source data further comprises a substitution tag, and wherein the computing device is configured to substitute dynamic data for the substitution tag.
- 73. The system of claim 72, wherein the dynamic data comprises a user identifier.
- 74. The system of claim 72, wherein the dynamic data comprises a serial number of a graphical code reading device.
- 75. The system of claim 72, wherein the dynamic data comprises a resolution of a display screen.
- 76. The system of claim 72, wherein the dynamic data comprises an operating system identifier.
- 77. The system of claim 72, wherein the dynamic data comprises a CD drive designation.
- 78. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method comprising:
receiving source data, the source data comprising a first portion and a second portion; effecting conversion of the source data into reference encoded source data, the reference encoded source data comprising a first reference identifier in place of the first portion, the reference encoded source data also comprising the second portion; and sending the reference encoded source data to a graphical code generator that is configured to convert the reference encoded source data into a graphical code.
- 79. The method of claim 78, wherein the first reference identifier is shorter in length than the first portion.
- 80. The medium of claim 78, wherein effecting conversion of the source data into the reference encoded source data comprises:
obtaining the first reference identifier, associating the first portion of the source data with the first reference identifier.
- 81. The medium of claim 78, wherein the first reference identifier does not include a terminating symbol.
- 82. The medium of claim 80, wherein associating the first portion of the source data with the first reference identifier comprises storing the first portion of the source data and the first reference identifier in a reference database.
- 83. The medium of claim 82, wherein obtaining the first reference identifier comprises creating the first reference identifier.
- 84. The medium of claim 83, wherein the first reference identifier comprises a prefix and a suffix, and wherein creating the first reference identifier comprises:
locating a previously assigned reference identifier in the reference database, the previously assigned reference identifier comprising the prefix and a previously assigned suffix; and forming the suffix by incrementing the previously assigned suffix.
- 85. The medium of claim 80, wherein the first reference identifier comprises a prefix and a suffix, and wherein obtaining the first reference identifier comprises locating an expired reference identifier in the reference database, the expired reference identifier comprising the prefix and the suffix.
- 86. The medium of claim 78, wherein the source data comprises a URL.
- 87. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method comprising:
receiving reference encoded source data, the reference encoded source data comprising a first reference identifier and a second portion; effecting conversion of the reference encoded source data into source data, the source data comprising first affiliated data in place of the first reference identifier, the source data further comprising the second portion; and making the source data available to a software application.
- 88. The method of claim 87, wherein the first reference identifier is shorter in length than the first affiliated data.
- 89. The medium of claim 87, wherein effecting conversion of the reference encoded source data into source data comprises:
locating a reference database that contains the first reference identifier and the first affiliated data; and retrieving the first affiliated data from the reference database.
- 90. The medium of claim 89, wherein the first reference identifier and the first affiliated data are associated with a cache period.
- 91. The medium of claim 89, wherein locating the reference database comprises:
looking for the first reference identifier and the first affiliated data in a first reference database; and locating the first reference identifier and the first affiliated data in a second reference database.
- 92. The medium of claim 89, wherein the first affiliated data is dynamically changeable.
- 93. The medium of claim 87, wherein the first reference identifier does not include a terminating symbol.
- 94. The medium of claim 89, wherein the reference database is stored on a server, and wherein locating the reference database comprises establishing communication with the server over a network.
- 95. The medium of claim 89, wherein the reference database is stored on a first server and on a second server, and wherein locating the reference database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 96. The medium of claim 94, wherein the first reference identifier and the first affiliated data are stored in a first record in the reference database, and wherein retrieving the first affiliated data from the reference database comprises downloading the first record from the server.
- 97. The medium of claim 96, further comprising associating an expiration date with the first record.
- 98. The medium of claim 94, wherein the first reference identifier and the first affiliated data are stored in a first record in the reference database, and wherein retrieving the first affiliated data from the reference database comprises downloading the first record from the server.
- 99. The medium of claim 98, wherein the reference database further comprises a second record, the second record comprising a second reference identifier and second affiliated data, the second affiliated data being associated with the second reference identifier, and wherein retrieving the first affiliated data from the reference database further comprises downloading the second record from the server.
- 100. The medium of claim 87, wherein the source data comprises command data recognizable by the software application as a command to perform a task, and further comprising determining whether a user of the software application is authorized to effect performance of the task.
- 101. The medium of claim 100, wherein determining whether the user is authorized to effect performance of the task comprises accessing an authorization database, the authorization database comprising a source identifier that identifies the task, the authorization database further comprising a plurality of user identifiers associated with the source identifier.
- 102. The medium of claim 101, wherein the authorization database is stored on a server, and wherein accessing the authorization database comprises establishing communication with the server over a network.
- 103. The medium of claim 102, wherein determining whether the user is authorized to effect performance of the task further comprises downloading authorization information about the user from the authorization database, the authorization information comprising an authorization period for the user.
- 104. The medium of claim 101, wherein the authorization database is stored on a first server and on a second server, and wherein accessing the authorization database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 105. The medium of claim 87, further comprising determining whether a provider of the source data is authorized to provide source data to the application.
- 106. The medium of claim 105, wherein determining whether a provider of the source data is authorized to provide source data to the application comprises accessing an authorization database, the authorization database comprising a plurality of provider identifiers.
- 107. The medium of claim 106, wherein each of the plurality of provider identifiers identifies an authorized provider of source data.
- 108. The medium of claim 106, wherein each of the plurality of provider identifiers identifies an unauthorized provider of source data.
- 109. The medium of claim 87, wherein the reference encoded source data comprises a reference encoded URL, wherein the source data comprises a URL, wherein the software application comprises a web browser, and wherein effecting conversion of the reference encoded URL into the URL comprises:
sending the reference encoded URL to a dynamic web server as part of a file request; and receiving a web file from the dynamic web server, the web file comprising the URL, the web file further comprising a refresh tag which causes the web browser to access a web page corresponding to the URL.
- 110. The medium of claim 87, wherein the reference encoded source data further comprises a substitution tag, and further comprising substituting dynamic data for the substitution tag.
- 111. The medium of claim 110, wherein the dynamic data comprises a user identifier.
- 112. The medium of claim 110, wherein the dynamic data comprises a serial number of a graphical code reading device.
- 113. The medium of claim 110, wherein the dynamic data comprises a resolution of a display screen.
- 114. The medium of claim 110, wherein the dynamic data comprises an operating system identifier.
- 115. The medium of claim 110, wherein the dynamic data comprises a CD drive designation.
- 116. A method for encoding source data into reference encoded source data that may be converted by a graphical code generator into a machine-readable graphical code, comprising:
receiving the source data, the source data comprising a first portion and an unrecognizable second portion that the graphical code generator cannot recognize; converting the source data into reference encoded source data by:
replacing the first portion with a reference identifier; and replacing the unrecognizable second portion with an encoded second portion; sending the reference encoded source data to the graphical code generator.
- 117. The method of claim 116, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; concatenating the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 118. The method of claim 116, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; forming a binary number, the binary number indicating the number of data elements in the group, the binary number having the predetermined width; concatenating the binary number and the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 119. A method for decoding a machine-readable graphical code, comprising:
scanning a machine-readable graphical code to create reference encoded source data, the reference encoded source data comprising a reference identifier and an encoded second portion; converting the reference encoded source data into source data by:
replacing the reference identifier with first affiliated data; and replacing the encoded second portion with an unrecognizable second portion, the unrecognizable second portion being unrecognizable to a graphical code generator used to create the machine-readable graphical code; providing the source data to the software application.
- 120. The method of claim 119, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; and decoding each encoded symbol in the encoded second portion.
- 121. The method of claim 119, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; locating a first width identifier in the reference encoded source data, the first width identifier indicating the number of encoded symbols in the encoded second portion; and decoding a number of encoded symbols in the encoded second portion, the number being equal to the first width identifier.
- 122. A system for encoding source data into reference encoded source data that may be converted by a graphical code generator into a machine-readable graphical code, comprising:
a data generator interface configured to obtain the source data from a data generator, the source data comprising a first portion and an unrecognizable second portion that the graphical code generator cannot recognize; and a computing device configured for electronic communication with the data generator, the computing device comprising:
a processor; a memory in electronic communication with the processor; and a reference encoder configured to
convert the source data into reference encoded source data by replacing the first portion with a reference identifier and replacing the unrecognizable second portion with an encoded second portion; and send the reference encoded source data to the graphical code generator, the graphical code generator being configured to convert the reference encoded source data into a graphical code.
- 123. The system of claim 122, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; concatenating the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 124. The system of claim 122, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; forming a binary number, the binary number indicating the number of data elements in the group, the binary number having the predetermined width; concatenating the binary number and the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 125. A system for decoding a machine-readable graphical code, comprising:
a graphical code reading device configured to scan a machine-readable graphical code to create reference encoded source data, the reference encoded source data comprising a reference identifier and an encoded second portion; and a computing device in electronic communication with the graphical code reading device, the computing device comprising:
a processor; a memory in electronic communication with the processor; a communications port in electronic communication with the processor for communicating with the graphical code reading device; a reference decoder configured to convert the reference encoded source data into source data by replacing the reference identifier with first affiliated data and replacing the encoded second portion with an unrecognizable second portion, the unrecognizable second portion being unrecognizable to a graphical code generator used to create the machine-readable graphical code; and a software application configured to receive the source data from the reference decoder.
- 126. The system of claim 125, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol of the plurality of reserved symbols in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; and decoding each encoded symbol in the encoded second portion.
- 127. The system of claim 125, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol of the plurality of reserved symbols in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; locating a first width identifier in the reference encoded source data, the first width identifier indicating the number of encoded symbols in the encoded second portion; and decoding a number of encoded symbols in the encoded second portion, the number being equal to the first width identifier.
- 128. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method comprising:
receiving the source data, the source data comprising a first portion and an unrecognizable second portion that the graphical code generator cannot recognize; converting the source data into reference encoded source data by:
replacing the first portion with a reference identifier; and replacing the unrecognizable second portion with an encoded second portion; sending the reference encoded source data to the graphical code generator.
- 129. The medium of claim 128, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; concatenating the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 130. The medium of claim 128, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable second portion comprises a group of data elements, and wherein replacing the unrecognizable second portion with the encoded second portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; forming a binary number, the binary number indicating the number of data elements in the group, the binary number having the predetermined width; concatenating the binary number and the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable second portion with the prepended symbol sequence.
- 131. A computer-readable medium for storing program data, wherein the program data comprises executable instructions for implementing a method comprising:
scanning a machine-readable graphical code to create reference encoded source data, the reference encoded source data comprising a reference identifier and an encoded second portion; converting the reference encoded source data into source data by:
replacing the reference identifier with first affiliated data; and replacing the encoded second portion with an unrecognizable second portion, the unrecognizable second portion being unrecognizable to a graphical code generator used to create the machine-readable graphical code; providing the source data to the software application.
- 132. The medium of claim 131, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol of the plurality of reserved symbols in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; and decoding each encoded symbol in the encoded second portion.
- 133. The medium of claim 131, wherein the encoded second portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the encoded second portion with an unrecognizable second portion comprises:
locating a first reserved symbol of the plurality of reserved symbols in the reference encoded source data, the first reserved symbol indicating a beginning of the encoded second portion; locating a first width identifier in the reference encoded source data, the first width identifier indicating the number of encoded symbols in the encoded second portion; and decoding a number of encoded symbols in the encoded second portion, the number being equal to the first width identifier.
- 134. A method for decoding a machine-readable graphical code into source data that may be used by a software application, comprising:
scanning the machine-readable graphical code to create source data, the source data comprising command data recognizable by the software application as a command to perform a task; determining whether a user of the software application is authorized to effect performance of the task; and making the source data available to the software application if the user is authorized to effect performance of the task.
- 135. The method of claim 134, wherein determining whether the user is authorized to effect performance of the task comprises accessing an authorization database, the authorization database comprising a source identifier that identifies the task, the authorization database further comprising a plurality of user identifiers associated with the source identifier.
- 136. The method of claim 135, wherein the authorization database is stored on a server, and wherein accessing the authorization database comprises establishing communication with the server over a network.
- 137. The method of claim 136, wherein determining whether the user is authorized to effect performance of the task further comprises downloading authorization information about the user from the authorization database, the authorization information comprising an authorization period for the user.
- 138. The method of claim 135, wherein the authorization database is stored on a first server and on a second server, and wherein accessing the authorization database comprises:
attempting to establish communication with the first server over a network; and establishing communication with the second server over the network.
- 139. A method for decoding a machine-readable graphical code into source data that may be used by a software application, comprising:
scanning the machine-readable graphical code to create source data, the source data comprising a source identifier that identifies a provider of the source data; determining whether the provider of the source data is authorized to provide the source data to the software application; and making the source data available to the software application if the provider of the source data is authorized to provide the source data to the software application.
- 140. The method of claim 139, wherein determining whether the provider of the source data is authorized to provide the source data to the software application comprises accessing an authorization database, the authorization database comprising a plurality of provider identifiers.
- 141. The method of claim 140, wherein each of the plurality of provider identifiers identifies an authorized provider of source data.
- 142. The method of claim 140, wherein each of the plurality of provider identifiers identifies an unauthorized provider of source data.
- 143. A method for decoding a machine-readable graphical code into source data that may be used by a software application, comprising:
scanning the machine-readable graphical code to create generic source data, the generic source data comprising a substitution tag; converting the generic source data into the source data by substituting dynamic data for the substitution tag; and making the source data available to the software application.
- 144. The method of claim 143, wherein the dynamic data comprises a user identifier.
- 145. The method of claim 143, wherein the dynamic data comprises a serial number of a graphical code reading device.
- 146. The method of claim 143, wherein the dynamic data comprises a resolution of a display screen.
- 147. The method of claim 143, wherein the dynamic data comprises an operating system identifier.
- 148. The method of claim 143, wherein the dynamic data comprises a CD drive designation.
- 149. A method for encoding source data into alternate encoded source data that may be converted by a graphical code generator into a machine-readable graphical code, comprising:
receiving the source data, the source data comprising an unrecognizable portion that the graphical code generator cannot recognize; converting the source data into the alternate encoded source data by replacing the unrecognizable portion with an encoded portion; and sending the alternate encoded source data to the graphical code generator.
- 150. The method of claim 149, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable portion comprises a group of data elements, and wherein replacing the unrecognizable portion with the encoded portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; concatenating the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable portion with the prepended symbol sequence.
- 151. The method of claim 149, wherein the graphical code generator is configured to recognize symbols from a symbol set, wherein the symbol set comprises a plurality of reserved symbols, wherein the unrecognizable portion comprises a group of data elements, and wherein replacing the unrecognizable portion with the encoded portion comprises:
creating padded data elements by padding each data element in the group to a predetermined width of binary digits by adding leading zeroes; forming a binary number, the binary number indicating the number of data elements in the group, the binary number having the predetermined width; concatenating the binary number and the padded data elements into a single string of binary digits; dividing the string of binary digits into symbols from the symbol set to form a symbol sequence; prepending one of the reserved symbols from the symbol set to the symbol sequence to form a prepended symbol sequence; and replacing the unrecognizable portion with the prepended symbol sequence.
- 152. A method for decoding a machine-readable graphical code, comprising:
scanning a machine-readable graphical code to create alternate encoded source data, the alternate encoded source data comprising an alternate encoded portion; converting the alternate encoded source data into source data by replacing the alternate encoded portion with an unrecognizable portion, the unrecognizable portion being unrecognizable to a graphical code generator used to create the machine-readable graphical code; and providing the source data to the software application.
- 153. The method of claim 152, wherein the alternate encoded portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the alternate encoded portion with an unrecognizable portion comprises:
locating a first reserved symbol in the alternate encoded source data, the first reserved symbol indicating a beginning of the alternate encoded portion; and decoding each encoded symbol in the alternate encoded portion.
- 154. The method of claim 152, wherein the alternate encoded portion comprises a plurality of encoded symbols from a symbol set that may be recognized by the graphical code generator, and wherein replacing the alternate encoded portion with an unrecognizable portion comprises:
locating a first reserved symbol in the alternate encoded source data, the first reserved symbol indicating a beginning of the alternate encoded portion; locating a first width identifier in the alternate encoded source data, the first width identifier indicating the number of encoded symbols in the alternate encoded portion; and decoding a number of encoded symbols in the alternate encoded portion, the number being equal to the first width identifier.
RELATED APPLICATIONS
[0001] This application is related to and claims priority from U.S. Patent Application Serial No. 60/283,681 filed Apr. 13, 2001, for “System and Method for Encoding Data and References to Data in Machine-Readable Graphical Codes to Support Dynamic Modification and Access Control,” with inventors Paul Hepworth and Dimitri Yatsenko, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60283681 |
Apr 2001 |
US |