Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
NATURAL LANGUAGE CONTROL OF A GATEWAY DEVICE
Document Type and Number:
WIPO Patent Application WO/2015/195734
Kind Code:
A1
Abstract:
According to an aspect of the present principles, there is provided a gateway device. The gateway device includes a web server (210) for serving one or more web browser clients connected to the gateway device including receiving commands. The gateway device further includes an artificial intelligence engine (220) for processing the received commands using natural language processing. The gateway device also includes a configuration and status interface (230) for performing at least one of diagnostic operations, configuration operations, and status operations, on the gateway device responsive to instructions from the artificial intelligence engine. The gateway device additionally includes a session context storage device (240) for storing session context information associated with respective unique session identifiers corresponding to respective sessions between the web server and the one or more web browser clients, and providing the session context information to the artificial intelligence engine.

Inventors:
CLEVENGER BRIAN DUANE (US)
NEWBERRY THOMAS P (US)
Application Number:
PCT/US2015/036127
Publication Date:
December 23, 2015
Filing Date:
June 17, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THOMSON LICENSING (FR)
International Classes:
G06F17/27; G10L15/22; G10L15/26; H04L12/28; H04L29/06; H04L29/08; H04M1/27
Foreign References:
US20040030750A12004-02-12
US20030187650A12003-10-02
US20070192495A12007-08-16
EP1494421A12005-01-05
Other References:
None
Attorney, Agent or Firm:
SHEDD, Robert D. et al. (4 Research Way 3rd Floo, Princeton New Jersey, US)
Download PDF:
Claims:
CLAIMS:

1 . A gateway device, comprising:

a web server (210) for serving one or more web browser clients connected to the gateway device including receiving commands;

an artificial intelligence engine (220) for processing the received commands using natural language processing;

a configuration and status interface (230) for performing at least one of diagnostic operations, configuration operations, and status operations, on the gateway device responsive to instructions from the artificial intelligence engine; and

a session context storage device (240) for storing session context information associated with respective unique session identifiers corresponding to respective sessions between the web server and the one or more web browser clients, and providing the session context information to the artificial intelligence engine.

2. The gateway device of claim 1 , wherein the web server (210) assigns each of the one or more web browser clients a unique session identifier at a start of a respective session there between. 3. The gateway device of claim 2, wherein the web server (210) receives the unique session identifier back from the one or more web browser clients in each hypertext transfer protocol transaction there between, identifies the respective session there between using the unique session identifier, and independently manages state information for the respective session using the unique session identifier.

4. The gateway device of claim 1 , wherein the artificial intelligence engine (220) initiates a configuration change to the gateway device using the configuration and status interface (230), responsive to a received use* command including a configuration change request.

5. The gateway device of claim 1 , wherein the artificial intelligence engine (220) formulates a response to a received command, and sends the response to the web server (210), and wherein the web server (210) sends the response to a

corresponding one of the one or more web browser clients that issued the received command.

6. The gateway device of claim 1 , wherein the artificial intelligence engine (220) performs an evaluation of the received yeef commands using natural language processing, and retrieves session context information for one or more previous sessions responsive to a particular use command being deemed ambiguous by the evaluation.

7. The gateway device of claim 1 , wherein the web server (210) supports a chat dialog with a user of the one or more client web browsers.

8. The gateway device of claim 1 , wherein the artificial intelligence engine (220) performs an evaluation of the received yeef comments using natural language processing and responsive to a result of the evaluation at least one of initiates an execution of a diagnostic routine, initiates a change of a configuration of the gateway device, initiates a determination of a status of the gateway device, and provides at least one of diagnostics information, configuration information, and status information to the web server (210) for forwarding to a corresponding one of the one or more web browser clients. 9. The gateway device of claim 1 , wherein the configuration and status interface (230) performs the at least one of diagnostic operations, configuration operations, and status operations, by interfacing with other elements of the gateway device that at least one of perform diagnostics on the gateway device, configure the gateway device, and maintain a status of the gateway device.

10. The gateway device of claim 1 , wherein the artificial intelligence engine (220) processes the session context information to determine an intended goal of a particular user corresponding to one of the one or more web browser clients. 1 1 . The gateway device of claim 1 , wherein the gateway device is any of a set top box, a modem, a router, a network switch, a voice over Internet Protocol (VoIP) telephone adapter, and a wireless access point.

12. A method for interfacing with a gateway device, comprising:

serving (401 ) one or more web browser clients connected to the gateway device including receiving commands from the one or more web browser clients;

processing (405) the received commands using natural language processing, by an artificial intelligence engine embedded in the gateway device;

performing (412) at least one of diagnostic operations, configuration operations, and status operations, on the gateway device responsive to instructions from the artificial intelligence engine; and

storing (419), in a session context storage device of the gateway device, session context information associated with respective unique session identifiers corresponding to respective sessions between the web server and the one or more web browser clients, and providing the session context information to the artificial intelligence engine.

13. The method of claim 12, assigning (402) a unique session identifier to the one or more web browser clients at a start of a respective session. 14. The method of claim 13, further comprising:

receiving the unique session identifier back from the one or more web browser clients in each hypertext transfer protocol transaction between the one or more web browser clients and the gateway device; and

independently (415, 417 managing state information for the respective session using the unique session identifier.

15. The method of claim 12, further comprising initiating (415), by the artificial intelligence engine, a configuration change to the gateway device, responsive to a received command including a configuration change request.

16. The method of claim 12, further comprising:

formulating (412) a response to a received command; and

sending (412) the response to a web server of the gateway device for forwarding to a corresponding one of the one or more web browser clients that issued the received command.

17. The method of claim 12, wherein processing the received usef commands comprises:

performing (405) an evaluation of the received commands using natural language processing; and

retrieving (409) session context information for one or more previous sessions responsive to a particular command being deemed ambiguous by the evaluation.

18. The method of claim 12, further comprising supporting (401 ), by a web browser of the gateway device, a chat dialog with a user of the one or more client web browsers.

19. The method of claim 12, wherein processing the received usef commands comprises:

performing (405) an evaluation of the received commands using natural language processing;

responsive to a result of the evaluation, initiating (412), for the gateway device, at least one of, an execution of a diagnostic routine, a change of a configuration of the gateway device, and a determination of status information for the gateway device; and providing (412) at least one of diagnostics information, configuration information, and status information to a corresponding one of the one or more web browser clients.

20. The method of claim 12, wherein the session context information is processed to determine an intended goal of a particular user corresponding to one of the one or more web browser clients.

Description:
NATURAL LANGUAGE CONTROL OF A GATEWAY DEVICE

CROSS-REFERENCE TO RELATED APPLICATIONS

This non-provisional application is related to the non-provisional application,

Attorney Docket No. IU140071 , entitled "Cloud Service Supplementing an Embedded Natural Language Processing Engine", which is commonly assigned, incorporated by reference herein, and currently filed herewith. TECHNICAL FIELD

The present principles relate generally to gateway devices and, more

particularly, to natural language control of a gateway device.

BACKGROUND

For non-technical users, configuring gateway devices and diagnosing problems can be complicated and often may require assistance from technical support. Even technical users may find it difficult to locate settings or to know what certain settings do just by navigating a graphical user interface (GUI).

Natural language processing systems that simulate artificial intelligence (Al) have been around for a long time. One of the earliest examples was ELIZA developed at MIT. However, these early systems only tried to mimic human interaction without actually trying to understand what the user was saying. An early example of a natural language processing system is Clippy by Microsoft®, but it simply used keywords from user's questions to search pre-defined help and wizard content rather than trying to provide interactive responses.

SUMMARY

These and other drawbacks and disadvantages of the prior art are addressed by the present principles, which are directed to natural language control of a gateway device. According to an aspect of the present principles, there is provided a gateway device. The gateway device includes a web server for serving one or more web browser clients connected to the gateway device including receiving user commands. The gateway device further includes an artificial intelligence engine for processing the received user commands using natural language processing. The gateway device also includes a configuration and status interface for performing at least one of diagnostic operations, configuration operations, and status operations, on the gateway device responsive to instructions from the artificial intelligence engine. The gateway device additionally includes a session context storage device for storing session context information associated with respective unique session identifiers corresponding to respective sessions between the web server and the one or more web browser clients, and providing the session context information to the artificial intelligence engine.

According to another aspect of the present principles, there is provided a method for interfacing with a gateway device. The method includes serving one or more web browser clients connected to the gateway device including receiving user commands from the one or more web browser clients. The method further includes processing the received user commands using natural language processing, by an artificial intelligence engine embedded in the gateway device. The method also includes performing at least one of diagnostic operations, configuration operations, and status operations, on the gateway device responsive to instructions from the artificial intelligence engine. The method additionally includes storing, in a session context storage device of the gateway device, session context information associated with respective unique session identifiers corresponding to respective sessions between the web server and the one or more web browser clients, and providing the session context information to the artificial intelligence engine.

These and other aspects, features and advantages of the present principles will become apparent from the following detailed description of exemplary embodiments, which is to be read in connection with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

The present principles may be better understood in accordance with the following exemplary figures, in which:

FIG. 1 shows a hardware block diagram of an exemplary gateway device 100 to which the present principles can be applied, in accordance with an embodiment of the present principles;

FIG. 2 shows a block diagram of an exemplary system 200 for implementing a natural language control in a gateway device, in accordance with an embodiment of the present principles;

FIG. 3 shows an exemplary graphical user interface (GUI) 300 for a natural language processing interface in a gateway device, in accordance with an embodiment of the present principles; and

FIGs. 4 and 5 show a flow diagram of a method 400 for controlling a gateway device using natural language, in accordance with an embodiment of the present principles.

DETAILED DESCRIPTION

The present principles are directed to natural language control of a gateway device. The gateway device can be located in a home, a business, or some other facility or entity. While primarily directed to making the interaction between the gateway device and a non-technical user become much easier and efficient, the benefits of the present principles also lend themselves to a technical user in terms of ease of use, speed, and other benefits readily identified by one of ordinary skill in the art, given the teachings of the present principles provided herein.

In an embodiment, the present principles advantageously provide a chat window in a graphical user interface (GUI) that allows a user to ask questions or issue commands using natural language as if speaking with a person.

FIG. 1 shows a hardware block diagram of an exemplary gateway device 100 to which the present principles can be applied, in accordance with an embodiment of the present principles. Of course, it is to be appreciated that the present principles are not limited to the gateway device 100 shown and described in FIG. 1 and, thus, other gateway devices 100 having, e.g., different configuration and/or different elements, can also be used in accordance with the teachings of the present principles.

In gateway device 100, an input signal is provided to RF input 101 . RF input 101 connects to tuner 102. Tuner 102 connects to central processor unit 104. Central processor unit 104 connects to phone D/A interface 106, transceiver 108, transceiver 109, Ethernet interface 1 10, system memory 1 12, and user control 1 14. Transceiver 108 further connects to antenna 120. Transceiver 109 further connects to antenna 121 . It is important to note that several components and interconnections necessary for complete operation of gateway device 100 are not shown in the interest of conciseness, as the components not shown are well known to those skilled in the art. Gateway device 100 may be capable of operating as an interface to a cable or DSL

communication network and further may be capable of providing an interface to one or more devices connected through either a wired and wireless network.

A signal, such as a cable or DSL signal on the WAN, is interfaced to tuner 102 through RF input 101 . Tuner 102 performs RF modulation functions on a signal provided to the WAN and demodulation functions on a signal received from the WAN. The RF modulation and demodulation functions are the same as those commonly used in communication systems, such as cable or DSL systems. Central processor unit 104 accepts the demodulated cable or DSL signals and digitally processes the signal from tuner 102 to provide voice signals and data for the interfaces in gateway 100. Similarly, central processor unit 104 also processes and directs any voice signals and data received from any of the interfaces in gateway 100 for delivery to tuner 102 and transmission to the WAN.

System memory 1 12 supports the processing and IP functions in central processor unit 104 and also serves as storage for program and data information.

Processed and/or stored digital data from central processor unit 104 is available for transfer to and from Ethernet interface 1 10. Ethernet interface may support a typical Registered Jack type RJ-45 physical interface connector or other standard interface connector and allow connection to an external local computer. Processed and/or stored digital data from central processor unit 104 is also available for digital to analog conversion in interface 106. Interface 106 allows connection to an analog telephone handset. Typically, this physical connection is provided via an RJ-1 1 standard interface, but other interface standards may be used. Processed and/or stored digital data from central processor unit 104 is additionally available for exchange with transceiver 108 and transceiver 109. Transceiver 208 and transceiver 109 can both support multiple operations and networked devices simultaneously. Central processor unit 104 is also operative to receive and process user input signals provided via a user control interface 1 14, which may include a display and/or a user input device such as a hand-held remote control and/or other type of user input device.

It is important to note that devices employing multiple antennas and in some cases multiple transceivers or transmit/receive circuits, such as the cable or DSL gateways or other networking devices, may operate in a number of transmit and receive modes. In one mode, only one antenna (and one transceiver circuit) is used for both transmission and reception, known as single input single output (SISO) mode. In a second mode, only one antenna is used for transmission and more than one antenna (using one or more transceiver circuits) may be used for reception, known as multiple input single output (MISO) mode. In a third mode, more than one antenna (using one or more transceiver circuits) may be used for transmission while only one antenna is used for reception, known as single input multiple output (SIMO) mode. Finally, more than one antenna (using one or more transceiver circuits) may be used for transmission and reception, known as multiple input multiple output (MIMO) mode.

In the embodiment of FIG. 1 , users would attach to the gateway device 100 (also referred to herein as "gateway" in short) using a standard web browser connected via the wireless connection provided any of the transceivers 108 and 109 or using a wired Ethernet connection provided by the wired Ethernet interface 1 10. The GUI would be implemented by a hypertext transfer protocol (HTTP) server running on the CPU 104 which would interact with an Al engine running on the CPU 104 to interpret requests from the user and generate appropriate responses. Alternatively, the server and Al engine can be implemented as standalone components or be part of other components shown in FIG. 1 . The server and Al engine are further described with respect to system 200 of FIG. 2. FIG. 2 shows a block diagram of exemplary system 200 for implementing a natural language control in a gateway device, in accordance with an embodiment of the present principles. The gateway device can be gateway 100 shown and described with respect to FIG. 1 , or some other gateway device. For the sake of illustration, the following description will make reference to the gateway 100 of FIG. 1 . The system can be a stand-alone system within a gateway device, or can be integrated into one or more existing elements of a gateway device.

The system 200 include an embedded web server (hereinafter "web server" in short) 210, an artificial intelligence (Al) engine 220, a configuration and status interface 230, and a session context storage device 240.

The web server 210 can serve a plurality of web browser clients 290A-C. The web server 210 assigns each of the web browser clients 290A-C a unique session identifier at the start of a session. The web browser clients 290A-C return this session identifier in each HTTP transaction. This allows the gateway 100 to identify each concurrent session and independently manage state information for each session.

When a user (via one of the web browser clients 290A-C) enters a command in the chat window, this command is sent to web server 210 which in turn sends the command to the Al engine 220 for processing. If the command is a request for a configuration change, the Al engine 220 makes the appropriate configuration changes using the configuration and status interface 230, formulates an appropriate response to the user, and sends this response to the web server 210 which in turn sends the response to the user's web browser.

In an embodiment, the artificial intelligence engine 220 performs an evaluation of received user comments and responsive thereto provides configuration and/or status information to the web server 210 for forwarding to a corresponding one of the one or more web browser clients 290A-C and/or changes a configuration of the gateway device 100 and/or runs a diagnostic routine.

In an embodiment, the configuration and status interface 230 assists (the artificial intelligence engine 220) in the processing of the at least some of the received user commands by interfacing with other elements of the gateway device 100 that configure the gateway device 100 and/or maintain a status of the gateway device 100 and/or perform diagnostics on the gateway device 100.

In some cases, the Al engine 220 will need to store and retrieve state information about previous interactions to process requests. As an example, if the user asks to disable wireless security, the gateway may ask for confirmation by asking "Are you sure you want to disable wireless security?" The user's response to this question may be "yes". However "yes" is an ambiguous command without knowing the context. As a result, some interactions may require the Al engine 220 to store or retrieve context information associated with the user's session ID in the session context storage device 240. Alternatively, session cookies may be used to keep track of sessions.

In an embodiment, the web browser clients 290A-C can be any of, but are not limited to, a mobile telephone, a mobile computer, a desktop computer, a tablet, a personal digital assistant, a media player. Each of the web browser clients 290A-C is capable of implementing a web browser and is further capable of connecting to the gateway device using wireless technology (e.g., Bluetooth, an 802.1 1 protocol, etc.) or wired technology (Ethernet, universal serial bus (USB), firewire, and so forth).

In an embodiment, the gateway device 100 can be any of, but is not limited to, a set top box, a modem, a router, a network switch, a voice over Internet Protocol (VoIP) telephone adapter, a wireless access point, and so forth.

Moreover, one or more of the elements of system 200 can be standalone elements and/or incorporated into other elements. For example, the storage device 240 can be a standalone storage device or incorporated into system memory 1 12. These and other variations of the elements of system 200 are readily determined by one of ordinary skill in the art, given the teachings of the present principles provided herein.

FIG. 3 shows an exemplary graphical user interface (GUI) 300 for a natural language processing interface in a gateway device, in accordance with an embodiment of the present principles. The gateway device can be gateway 100 shown and described with respect to FIG. 1 , or some other gateway device. For the sake of illustration, the following description will make reference to the gateway 100 of FIG. 1 .

When a user clicks a help button, the user is presented with a chat dialog and prompted with a fixed response such as "How can I help?" The user can then enter questions or commands in a text box 310 using natural language that the gateway 100 will respond to by providing information, changing the configuration, or running diagnostics.

FIGs. 4 and 5 show a flow diagram of an exemplary method 400 for controlling a gateway device using natural language, in accordance with an embodiment of the present principles. The gateway device can be gateway 100 shown and described with respect to FIG. 1 , or some other gateway device. For the sake of illustration, method 400 is described with respect to gateway 100 of FIG. 1 . For the sake of illustration and simplicity, the method 400 is described with respect to a single web browser client (e.g., any of web browser clients 290A-C, here 290A for example) interfacing with the gateway device 100. However, as noted above, the present principles can be implemented with respect to multiple web browser clients.

At step 401 , a user input is received from a web browser client 290A requesting initiation of a chat dialog with the gateway device 100.

At step 402, a unique session identifier is assigned by the web server 210 to the web browser client 290A at a start of a respective session there between.

At step 403, a chat window is opened on the web browser client 290A.

At step 404, a user command and assigned session identifier is received from the web browser client 290A by the web server 210 responsive to the user of the web browser client 290A inputting the user command into a text input box of the chat window.

At step 405, the user command is forwarded from the web server 210 to the artificial intelligence engine 220 for processing using natural language processing. Step 405 includes performing an evaluation of the user command using natural language processing.

At step 407, it is determined whether the artificial intelligence engine 220 was able to process the user command. If so, the method proceeds to step 408. Otherwise the method proceeds to step 421 .

At step 408, it is determined whether session content information is needed. If so, the method proceeds to step 409. Otherwise, the method proceeds to step 410. At step 409, the session context storage device 240 is queried for context information of previous sessions.

At step 410, it is determined whether configuration or status information is needed. If so, then the method proceeds to step 41 1 . Otherwise, the method proceeds to step 412.

At step 41 1 , configuration or status information is obtained from the configuration and status interface 230.

At step 412, the Al engine 220 processes data to formulate a response to the user as well as a list of actions to be performed by the gateway.

At step 413, it is determined whether or not the Al engine 220 was able to formulate a response. If so, then the method proceeds to step 414. Otherwise, the method proceeds to step 421 .

At step 414, it is determined whether or not the gateway configuration needs to be updated. If so, then the method proceeds to step 415. Otherwise, the method proceeds to step 416.

At step 415, the configuration of the configuration and status interface 230 is updated.

At step 416, it is determined whether or not other gateway components need to be updated and/or diagnostic routines need to be run. If so, then the method proceeds to step 417. Otherwise, the method proceeds to step 418.

At step 417, other components of the gateway are updated and/or diagnostics are run on the gateway.

At step 418, it is determined whether or not session context information needs to be updated. If so, then the method proceeds to step 419. Otherwise, the method proceeds to step 420.

At step 419, session context information for the current session identifier is updated.

At step 420, a formulated response is sent to the web browser client, and the method returns to step 404.

At step 421 , a default response is sent to the web browser client. While described with respect to a unique session identifier, as readily appreciated by one of ordinary skill in the art given the teachings of the present principles provided herein, other ways to track sessions can also be used (such as, but not limited to, session cookies, and so forth).

The present description illustrates the present principles. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the present principles and are thereby included within the present principles.

All examples and conditional language recited herein are intended for

pedagogical purposes to aid the reader in understanding the present principles and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.

Moreover, all statements herein reciting principles, aspects, and embodiments of the present principles, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry

embodying the present principles. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared.

Moreover, explicit use of the term "processor" or "controller" should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor ("DSP") hardware, read-only memory ("ROM") for storing software, random access memory ("RAM"), and non-volatile storage.

Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.

In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The present principles as defined by such claims reside in the fact that the

functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.

Reference in the specification to "one embodiment" or "an embodiment" of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase "in one embodiment" or "in an embodiment", as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.

It is to be appreciated that the use of any of the following 7", "and/or", and "at least one of", for example, in the cases of "A/B", "A and/or B" and "at least one of A and B", is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of "A, B, and/or C" and "at least one of A, B, and C", such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.

These and other features and advantages of the present principles may be readily ascertained by one of ordinary skill in the pertinent art based on the teachings herein. It is to be understood that the teachings of the present principles may be implemented in various forms of hardware, software, firmware, special purpose processors, or combinations thereof.

Most preferably, the teachings of the present principles are implemented as a combination of hardware and software. Moreover, the software may be implemented as an application program tangibly embodied on a program storage unit. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units ("CPU"), a random access memory ("RAM"), and input/output ("I/O") interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit.

It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the present principles are programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present principles. Although the illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the present principles are not limited to those precise embodiments, and that various changes and modifications may be effected therein by one of ordinary skill in the pertinent art without departing from the scope of the present principles. All such changes and modifications are intended to be included within the scope of the present principles as set forth in the appended claims.