US20170192798A1 - User interface method and apparatus - Google Patents

User interface method and apparatus Download PDF

Info

Publication number
US20170192798A1
US20170192798A1 US15/395,343 US201615395343A US2017192798A1 US 20170192798 A1 US20170192798 A1 US 20170192798A1 US 201615395343 A US201615395343 A US 201615395343A US 2017192798 A1 US2017192798 A1 US 2017192798A1
Authority
US
United States
Prior art keywords
shortcut
data
machine
users
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/395,343
Inventor
Maria Francisca Jones
Alexander Jones
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Assigned to JONES, MARIA FRANCISCA reassignment JONES, MARIA FRANCISCA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: JONES, ALEXANDER
Publication of US20170192798A1 publication Critical patent/US20170192798A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0605Supply or demand aggregation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/4443
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces

Definitions

  • the present invention relates to a user interface method and apparatus and in one aspect to a user interface method and machine to enable at least one user to enter an input to execute a command to transition a machine from one state to another.
  • Electronic processing devices including computers, media devices, and mobile devices are used prevalently in almost all facets of people's lives. The ease with which users can interact with these devices is the subject of considerable research and commercial effort. Making the user interface of electronic machines easier for users is of major importance and can make a very powerful and useful apparatus difficult to use of even useless in the eyes of a user.
  • One aspect provides a user interface method implemented in a machine, the method comprising storing shortcut data for at least one user comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the at least one user, each stored identifier for a shortcut having a corresponding stored machine command; determining a current state of the machine for a said user; receiving an input from the user; determining whether the input matches a stored identifier for a shortcut in the shortcut data; executing a stored device command corresponding to the stored identifier dependent upon the matching; updating stored history data for the at least one user; and updating the shortcut data using the updated history data.
  • Another aspect of the invention provides a machine for providing a user interface, the machine comprising a program memory storing program code; and a processor for implementing the program code stored in the program memory; wherein the program code comprises: code for controlling the processor to store shortcut data for at least one user comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the at least one user, each stored identifier for a shortcut having a corresponding stored machine command; code for controlling the processor to determine a current state of the machine for a said user; code for controlling the processor to receive an input from the user; code for controlling the processor to determine whether the input matches a stored identifier for a shortcut in the shortcut data; code for controlling the processor to execute a stored device command corresponding to the stored identifier dependent upon the matching; code for controlling the processor to update stored history data for the at least one user; and code for controlling the processor to update the shortcut data using the updated history data.
  • FIG. 1 is a schematic diagram illustrating a user device as a machine according to one embodiment
  • FIG. 2 is a flow diagram illustrating the process according to one embodiment
  • FIG. 3 is a schematic diagram illustrating a user device as a machine synchronizing history data and shortcut data with a remote server according to one embodiment
  • FIG. 4 is a schematic diagram illustrating a server as a multiuser machine according to one embodiment
  • FIGS. 5 a and 5 b are illustrations of user interface outputs according to one embodiment
  • FIG. 6 is a schematic diagram illustrating a server as a multiuser machine synchronizing history data and shortcut data with a remote server according to one embodiment
  • FIG. 7 is a schematic diagram of a basic computing device for use in one embodiment.
  • database is intended to encompass any data structure (and/or combinations of multiple data structures) for storing and/or organizing data, including, but not limited to, relational databases (e.g., Oracle databases, mySQL databases, etc.), non-relational databases (e.g., NoSQL databases, etc.), in-memory databases, spreadsheets, as comma separated values (CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and/or any other widely used or proprietary format for data storage.
  • CSV comma separated values
  • XML eXtendible markup language
  • TXT TeXT
  • flat files eXT files
  • each database referred to herein is to be understood as being stored in one or more data stores.
  • a “file system” may control how data is stored and/or retrieved (for example, a disk file system like FAT, NTFS, optical discs, etc., a flash file system, a tape file system, a database file system, a transactional file system, a network file system, etc.).
  • a disk file system like FAT, NTFS, optical discs, etc.
  • flash file system for example, a disk file system like FAT, NTFS, optical discs, etc., a flash file system, a tape file system, a database file system, a transactional file system, a network file system, etc.
  • the disclosure is described herein with respect to databases. However, the systems and techniques disclosed herein may be implemented with file systems or a combination of databases and file systems.
  • the term data store is intended to encompass any computer readable storage medium and/or device (or collection of data storage mediums and/or devices).
  • Examples of data stores include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), memory circuits (e.g., solid state drives, random-access memory (RAM), etc.), and/or the like.
  • Another example of a data store is a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).
  • the functions or algorithms described herein are implemented in hardware, software or a combination of software and hardware in one embodiment.
  • the software comprises computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, described functions may correspond to modules, which may be software, hardware, firmware, or any combination thereof. Multiple functions are performed in one or more modules as desired, and the embodiments described are merely examples.
  • the software is executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a system, such as a personal computer, server, a router, or other device capable of processing data including network interconnection devices.
  • Some embodiments implement the functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit.
  • the exemplary process flow is applicable to software, firmware, and hardware implementations.
  • a generalized embodiment provides a machine and a method for providing a user interface using stored shortcut data for at least one user or in other words a set of one or more users.
  • the shortcut data comprises a plurality of sets of identifiers for shortcuts for a corresponding plurality of states of the machine for the set of one or more users or a plurality of sets of states for the set of one or more users.
  • Each stored identifier for a shortcut has a corresponding stored machine command.
  • a current state of the machine used by a user is determined and when an input is received from the user, it is determined whether the input matches a stored identifier for a shortcut in the shortcut data. If it does, a stored device command corresponding to the stored identifier is executed, the stored history data for the set of one or more users is updated and the shortcut data is updated using the updated history data.
  • the machine can hence store history data to learn about user inputs for specific machine states for use in the determination of updated shortcut data to store appropriate shortcuts for commands that a set of one or more users might want to enter in a current machine state to transition to a next machine state.
  • the shortcuts are user and context specific.
  • the user interface method can be used to learn inputs for a set of users using the same machine states e.g. using the same applications, programs or processes.
  • the set of users can be any number including a single user.
  • the user interface method can be used by a group of users, such as an office or business.
  • the invention is applicable to any electronic machine having a need to receive user inputs to enter commands to the machine.
  • the user interface can monitor any form of user input such as from a keyboard, pointer device, touch screen input, audio or speech input, or gesture input.
  • the input can also comprise an image obtained by scanning or photographing an object or by downloading an image over a network from an image source.
  • the matching of the input to identifiers can comprise matching an input image to a stored image associated with a command or command sequence. The match can be exact or based on a level of similarity.
  • the user interface can be software agnostic in that it can monitor the input to any application operated by an operating system or even an input to the operating system itself.
  • the machine can thus provide a multimodal interface to the user or users.
  • that machine can determine shortcut data to store appropriate commands that a user might want to enter in a current machine state to transition to a next machine state.
  • This stored shortcut data can be transferred to another machine having the same machine states used by the same user so that the shortcut data is available to make that machine easier to use.
  • the stored history data for the user is updated, and the shortcut data using the updated history data is updated.
  • the user's input cannot match any shortcut identifier and so the machine can update the history data to start the learning process.
  • This learning process of updating the history data can continue, whenever the users enter inputs that are not a shortcut identifier.
  • the history data is updated and the updated history data can be used to make better-suggested shortcuts for the set of users.
  • the shortcut identifiers may or may not be output to the set of users for the current state of the machine.
  • the shortcut identifiers can be output for example visually on a display, audibly by an audio output or as a vibrational output.
  • the output of the shortcut identifiers assists the set of users in making the selection of a shortcut to enter a command. This avoids the need for a user to remember the shortcuts.
  • the user may find that the output of the shortcut identifiers becomes a nuisance and a distraction from the output from the machine in the current state.
  • the display of selectable shortcut identifiers as buttons or icons may be considered by a user to be visually distracting while they are viewing the display for the current state of the machine.
  • the shortcut identifiers may be output in an order dependent on the history data. This can allow a user to more easily select a shortcut that they use more frequently. For example, in an embodiment, whether the shortcut identifiers are displayed, the history data enables the determination of commands and hence shortcuts that are input by the set of users more frequently or more recently than others, so that they can be displayed either more prominently or at the highest position in a list or ordered sequence. In an audio output embodiment, shortcut identifiers for the more frequently used or more recently used commands can be audibly output first to assist the set of users more quickly make an audio selection/input of a shortcut identifier.
  • the stored machine command can comprise a single command or a plurality of sequential commands to be executed by the machine sequentially.
  • the storage of a sequence of commands can be determined as a shortcut by learning a repeated pattern of user input by the user from the history data. This pattern can then be stored as a command sequence in a single shortcut.
  • the stored shortcut data and the shored history data for the set of users can be synchronized with a remote database of shortcut data and history data for a plurality of users including the set of users.
  • a remote database can store shortcut data and history data for a plurality of users so that it can be remotely processed.
  • the history data received from the remote database in the synchronization includes user preference data indicating preferences of the set of users, and the shortcut data is updated using the user preference data.
  • User preference data can be gathered from data collected from or about users from many sources, such as merchant loyalty programs and merchant transaction data. The data on user transaction behavior can be processed to determine user preferences.
  • the machine can be a single user machine, a standalone machine, or a multiuser machine such as a server and the shortcut data can be stored for a single set of users or a plurality of sets of users of the machine.
  • multiple sets of history data and shortcut data has to be stored: one set per set of users.
  • the stored shortcut data and the shored history data for the users can be synchronized with a remote database of shortcut data and history data for a plurality of sets of users including the users of the machine.
  • a multiuser machine can store data for multiple sets of users, such as customers of a vendor or merchant or multiple businesses, and a remote database can store history data and shortcut data for the plurality of sets of users (e.g.
  • the history data received from the remote database in the synchronization includes user preference data indicating preferences of the users, and the shortcut data is updated using the user preference data.
  • User preference data can be gathered from data collected from or about a set of users from many sources, such as merchant loyalty programs and merchant transaction data. The data on user transaction behaviour can be processed to determine user preferences.
  • Embodiments also encompass the management of financial instruments, such as money or currency. Payment or spending preferences or habits of a user can be learnt to provide shortcuts for machine states to next machine states, such as allowing a user to make payments.
  • the input from the user can include one or more text characters in a displayed text entry field
  • the stored identifier for the shortcut can include a plurality of text characters
  • the corresponding command can include the plurality of text characters.
  • the input one or more text characters are matched with one or more of the plurality of text characters of the stored identifier.
  • This embodiment of the invention enables the invention to be applied to a text field in a user interface.
  • the characters are compared with shortcut identifiers in the form of text for commands in order to output suggested shortcuts to the commands based on the current state of the machine and the user's personal input history. For example, when a user interface displays a web page, the user's history will indicate that the user made certain inputs previously when on that web page, and hence the shortcut data reflects those inputs with shortcut identifiers for inputs that the user is more likely to make.
  • the user interface can be used in an electronic transaction the method disclosed in co-pending application Ser. No. 15/395,487, filed the same day as this application, entitled “AN ELECTRONIC TRANSACTION METHOD AND APPARATUS”, by the same applicant and inventors (attorney reference 11043PUSA), the content of which is hereby incorporated in its entirety.
  • FIG. 1 illustrates a device 100 for use by a set of one or more users not connected to any network (a standalone machine).
  • the set of users can be any number including a single user.
  • the user interface method can be used by a set of users, such as an office or business, using the same machine states e.g. using the same applications, programs or processes, such that one of the set of users is likely to want to enter a command in a machine state in the same manner as any other member of the set of users.
  • the device 100 can comprise any type of computing or processing machine, such as a personal computer, a laptop, a tablet computer, a personal organizer, a mobile device, smart phone, a mobile telephone, a video player, a television, an audio player, a multimedia device, personal digital assistant, etc.
  • a personal computer such as a personal computer, a laptop, a tablet computer, a personal organizer, a mobile device, smart phone, a mobile telephone, a video player, a television, an audio player, a multimedia device, personal digital assistant, etc.
  • a processor 20 is provided to load program code 21 from a program code store 70 and execute the program code 21 using working volatile memory 30 .
  • the program code 21 executes the functionality of one embodiment of the invention.
  • Other program code can be loaded up in the form of an operating system, and applications to receive the commands that a user inputs directly or inputs by inputting a shortcut for a command in accordance with one embodiment.
  • a user interface 5 comprises an input device 10 and an output device 40 .
  • the input device can comprise any hardware, software or combination of hardware and software to receive a user input, such as a keyboard, touch screen, pointer device (such as a mouse, trackball, trackpad, or pen device), audio recognition hardware and/or software to recognize a sounds or speech from a user, gesture recognition input hardware and/or software, etc.
  • the output device can comprise any hardware, software or combination of hardware and software to output information to a user including shortcut identifiers, such as a display screen, or an audio speaker.
  • the user interface 5 provides for outputs to a user from the processor 20 and inputs from the user to the processor 20 .
  • the device 100 is also provided with a data store 60 to store shortcut data in a shortcut database 61 and history data in a history database 62 .
  • a data store 60 to store shortcut data in a shortcut database 61 and history data in a history database 62 .
  • the shortcut data and the history data are described as being stored in databases in this embodiment, the data can be stored in any convenient form, or data structure.
  • the history data for a set of one or more users comprises a set of data for the set of one or more users for each of a set of states of a machine used by the set of one or more user.
  • For each state of the machine a set of one or more user input commands are stored to record the commands directly input or input as a result of a user selection (e.g. clicking a displayed selectable option such as a hyperlink in an interface).
  • the history data can record for each set of one or more users, and for each machine state used by the set of one or more users, a set of input commands.
  • the history data can also include user preference data indicating preferences of a user.
  • the user preference data can be obtained from analyzing the user inputs and processing other user data entered by a user that can indicate a user's preferences.
  • the preference data can be used along with the recorded user input history data to determine updates to the shortcut data.
  • the shortcut data stores, for each machine state, a shortcut identifier and one or more commands to be executed by the machine. If there is more than one command, the commands are to be executed sequentially.
  • the shortcut identifier can comprise a tag that a user can use to simply select the shortcut e.g. 1, 2, 3, 4 . . . or A, B, C, . . . . This tag can be automatically assigned to the shortcut or a user can select a tag. The tag enables the user to make an input simply by inputting the tag e.g. 2, or D, rather than typing some form of text string.
  • the shortcut data can also comprise information for display to the user when the shortcut identifier is displayed for selections as for example, and icon, image, button etc. The information can assist the user in identifying the command available for selection as a shortcut.
  • the shortcut identifier can comprise a text string corresponding to the text command string entered as the input by the user e.g. an http input command to load a web page into a browser, the name of a file to loaded in an application or to be searched for in a file system, or the name of an application to be executed in an operating system.
  • the matching of a user's input can be achieved by matching the text characters as they are typed in by a user to suggest potential commands that the user might be trying to type in based on previously type commands.
  • the user input text can be matched on a partial match basis with the stored shortcut identifier text so that initially a number of possible matches are identified that the user can select from and these are reduced as the user types more characters so that some initial shortcut identifier text matches no longer match and are removed as options for the user.
  • This is a form of predictive text, but it is user and context specific in that it is specific to the user and the current state of the machine e.g. the web page displayed by a browser used by the user, a document opened by a user, a search window opened for a document in an operating system, search engine, etc.
  • a machine state can comprise any operating state currently instantiated by the user of the machine.
  • the state can comprise a state in the operation of a computer program, such as a web page in a web browser application, a document in a word processor application, a worksheet in a spreadsheet application, an email in an email application, operating system navigation and search features, or any search and retrieval application.
  • step S 10 the current state of the machine is determined, e.g. the current web page open in a browser, the current document open in the word processor, the current email open in an email application, etc. Based on the current machine state, the process determined whether there are any stored shortcuts available in step S 11 .
  • the available shortcuts can only include shortcuts that were recently created or used. Shortcuts that have not been used for a long period of time are likely not to be relevant to a user and can hence be deleted to avoid presenting the user with out of date old shortcuts. If there are available shortcuts determined to be available in step S 11 , in step S 16 , the process determines whether the shortcuts are to be output to the user for selection.
  • step S 17 If the output of the shortcuts is not enabled or disabled by the user (for example because they have become familiar with the available shortcuts and do not need or want them to be output e.g. displayed), the process proceeds to step S 17 to await an input from the user. If the shortcuts are determined to be output in step S 16 , the process proceeds to step S 15 to output the shortcut options to the user, e.g. display shortcut icons, buttons, or images with shortcut identifiers and optionally some shortcut information to assist the user make the shortcut selection. The process then proceeds to step S 17 to await an input from the user.
  • a shortcut determination process S 30 is carried out comprising looking up history data for the user in step S 12 , determining shortcuts for the user for the current machine state using the history data in step S 13 , and storing the shortcut data in step S 14 .
  • the stored shortcuts are then output to the user in step S 15 , e.g. display shortcut icons, buttons, or images with shortcut identifiers and optionally some shortcut information to assist the user make the shortcut selection.
  • the process then proceeds to step S 17 to await an input from the user.
  • the input from the user is used in step S 18 to look up a shortcut for the current state to determine one or more commands to be executed by the machine.
  • the input from the user can be an input of the shortcut identifier e.g. by a text input or a voice input, of a selection of a shortcut option, whereby the selection is converted to a user input for comparison with the shortcut identifiers for the current machine state.
  • step S 19 it is determined whether the input from the user matches a shortcut. If the set of one or more users have not made the input at the current machine state before so that it is not in the history data for use in the formation of a shortcut, in step S 23 the process determines whether the input is a command input or merely some other form of input, such as an input of text into a document, of other input field that does not cause the machine to transition to another state. For example, in a web form, data can be entered without it being sent to a server and hence the entered text data is not a command. When it is sent to the server it is a command since the web page will be usually be updated. If it is determined in step S 23 that the user input is not a command, the process returns to step S 17 to await a user input.
  • step S 23 If a command is determined to be input in step S 23 , the process moves to step S 24 to execute the command to transition the machine to the next state. Then in step S 21 , the history data for the previous machine state is updated with the command to transition to the next state. In step S 22 , the updated history data is then used to generate updated shortcuts and the process returns to step S 10 to determine the current machine state.
  • step S 19 If in step S 19 it is determined that the input does match a shortcut, in step S 20 , the command for the shortcut is executed to take the machine to the next start. Then in step S 21 , the history data for the previous machine state is updated with the selection of the shortcut to transition to the next state. In step S 22 , the updated history data is then used to generate updated shortcuts and the process returns to step S 10 to determine the current machine state.
  • a new shortcut can be created.
  • the user's selection of the shortcut can be recorded in the data so that the relevance of shortcut can be increased and the shortcut is indicated as being recent and not old.
  • Selections of previously created shortcuts can be used to rank or order the shortcuts for output to the set of one or more users so that the most relevant shortcuts are output and they are ordered according the relevance i.e. how often selected and how recently.
  • the shortcut determination process S 30 is illustrated in FIG. 2 as being performed every time there are no available up to date shortcuts, in one embodiment, the steps of the shortcut determination process S 30 can be performed for each machine state for the set of one or more users in a separate or ‘offline’ process by the processing of the history data for each machine state.
  • the history data include user preference data, even if any user of the set of users has not made an input to transition from a machine state, in one embodiment, one or more shortcuts can be determined based solely on the user preference data, obtained for example from user behavior using the machine or from user input parameters.
  • FIG. 3 illustrates another embodiment of the present invention in which a remote database of shortcut and history data for a plurality of sets of one or more users is provided.
  • the user's device 1 comprises the components illustrated and described with reference to FIG. 1 .
  • the user's device 1 operates in the same manner as described with reference to the flow diagram of FIG. 2 .
  • the user's device 1 includes a network interface 50 for connecting the user's device 1 over a network such as the internet 80 to a remote server system 90 .
  • the server system 90 is connected to or provided with a data store 95 in which are stored a global shortcut database 96 and a global history database 97 .
  • the global shortcut database 96 stores shortcuts for the set of one or more users of the user's device 1 and a plurality of other sets of users of other user's devices.
  • the global history database 97 stores the history for the set of users of the user's device 1 and a plurality of other sets of users of other user's devices.
  • the data stored in the data store 95 can be synchronized with the data stored in the data store 60 in the user's device. In this way, in the embodiment where user preference data is included in the history data, the shortcuts and history stored in the data store 95 can reflect user preferences and can be sent to the data store 60 on the user's device 1 .
  • FIG. 4 illustrates another embodiment comprising a server as a multiuser machine according to one embodiment.
  • a server system 90 includes a web server 92 providing access over a network such as the internet 80 to user's devices 1 operating respective web browsers 2 .
  • the server system 90 also executes an application server 91 and accesses a data store 95 storing a global shortcut database 96 and a global history database 97 .
  • the server system 90 operates according to the flow diagram of FIG. 2 for each user of a plurality of users accessing the web server 92 by accessing user specific sets of data for machine states comprising states of the server system 90 in the global shortcut database 96 .
  • FIGS. 5 a and 5 b illustration user interface outputs for the server system of FIG. 4 according to one embodiment.
  • the web server 92 serves web pages to be rendered in the browser 2 of each user's device 1 .
  • the user interface thus comprises a displayed web page 400 comprising a universal resource locator (URL) text entry field 402 in a header region 401 .
  • the web page displayed in FIG. 5 a comprises a search engine web page, called “Super web searcher” and a text search input field 404 is provided to allow a user to enter a text string as a search string to send as part of a command to undertake a web search.
  • the user has input the text string “http://spee” in either the URL text entry field 402 or the text search input field 404 (both are shown in FIG. 5 a, but in practice the user will only input text to one of the fields 402 and 404 ).
  • the user input is matched to shortcut identifiers for shortcuts and shortcut icons, windows, drop down lists, buttons or images 403 are displayed.
  • the shortcuts 403 displayed comprise:
  • Shortcut identifier Command 1 The URL for Speedy Shop web page 2
  • the shortcuts 403 can display an image or information on the command that will be entered if the shortcut 403 is selected to assist the user identify the command entry options available using the shortcuts.
  • the identifier in this embodiment comprises a short label or tag so that the selection of the shortcut can be made by any one of: using a pointer device, gesture, or touch screen to select a displayed location of a shortcut 403 , using a keyboard to input 1 , 2 or 3 , or using speech recognition to speak 1 , 2 or 3 as the input.
  • FIG. 5 b illustrates the web page 400 a displayed as a result of the use selection of shortcut tag 1 in FIG. 5 a.
  • the web page 400 a is displayed for “Speedy Shop”, a vendor or merchant of electrical goods.
  • the web page displays conventional hyperlinks to open web pages for various product types, such as camera, laptops, televisions, and loud speakers.
  • the URL text field 402 is provided in the header 401 as well as shortcuts 403 a.
  • the shortcut 403 a are displayed in the header region 401 so as to leave the rest of the display area free and avoid the shortcuts overlapping web page information.
  • the shortcuts 403 a displayed comprise:
  • Shortcut identifier Command 1 The URL link to the Laptops web page 2
  • the shortcuts are identified by a tag separately to any input text by a user.
  • a user has previously made selections of the commands stored in the shortcuts and hence the shortcuts can simply be selected by selecting a tag
  • FIG. 6 illustrates a server as a multiuser machine synchronizing history data and shortcut data with a remote server according to one embodiment.
  • each vendor system 90 A and 90 B can comprise a server system 90 as described with reference to FIG. 4 .
  • Each vendor server 90 A and 90 B operates substantially as described in the flow diagram of FIG. 2 for each user accessing a web server 92 A or 92 B of a respective vendor server 90 A or 90 B using a web browser 2 of a respective user's device 1 over a network such as the internet 80 .
  • Each vendor server system 90 A and 90 B includes an application server 91 A and 91 B, a data store 95 A and 95 B storing a respective vendor shortcut database 96 A and 96 B and a respective vendor history database 97 A and 97 B.
  • the databases 96 A, 96 B, 97 A and 97 B store data for a plurality of users of the vendor's web site.
  • a third party provider server system 190 is connected over the internet 80 to the vendor server systems 90 A and 90 B.
  • the third party provider server system 190 includes an application serve 191 accessing a global shortcut database 196 and a global history database 197 .
  • the global databases 196 and 197 store data for a plurality of users for a plurality of vendor server systems 90 A and 90 B.
  • the databases 196 and 197 hold data for sets of users of a plurality of vendor server systems 90 A and 90 B.
  • the global shortcut database 196 stores shortcuts for the users of the user's devices 1 that use the vendors server system 90 A and 90 B and a plurality of other users of other user's devices that use other vendor server systems.
  • the global history database 197 stores the history for the users of the user's devices 1 that use the vendors server system 90 A and 90 B and a plurality of other users of other user's devices that use other vendor server systems.
  • the data stored in the databases 196 and 197 can be synchronized with the data stored in the data store 95 A and 95 B in the vendors server system 90 A and 90 B.
  • the shortcuts and history stored in the data bases 196 and 197 can reflect the user preferences determined from multiple vendors and other sources and can be sent to the data store 95 A and 95 B on the vendor server system 90 A and 90 B. This allows vendors to share user preference data that can be determined from multiple vendor data that can include the history data recorded for machine state transitions by users using the vendors server systems.
  • the machine state can comprise any process step implemented in a processing machine that a user can make an input into to cause a transition to a next machine state.
  • a machine state can be represented by a stage of processing in any software application, such as a document, a spreadsheet, email, operating system navigation or input, and searching and retrieval software.
  • Embodiments provide for context based options for input of user selection options as a graphic selection or an audio selection/input to provide for predictive user input.
  • a current machine state can be a set of machine states such as web pages or other interface displays having common parameters.
  • a web page can be scrolled or zoomed, and frames can hold data entered by the user such as name and contact details.
  • data is handled by the web browser and is not transmitted to the web server and hence the machine state of the client device may operate in multiple states having common parameters that are only a single web page serving step for the web server.
  • FIG. 7 is a block diagram that illustrates a basic computing device 600 in which the example embodiment(s) of the present invention may be embodied.
  • Computing device 600 and its components, including their connections, relationships, and functions, is meant to be exemplary only, and not meant to limit implementations of the example embodiment(s).
  • Other computing devices suitable for implementing the example embodiment(s) may have different components, including components with different connections, relationships, and functions.
  • Computing device 600 may include a bus 602 or other communication mechanism for addressing main memory 606 and for transferring data between and among the various components of device 600 .
  • Computing device 600 may also include one or more hardware processors 604 coupled with bus 602 for processing information.
  • a hardware processor 604 may be a general purpose microprocessor, a system on a chip (SoC), or other processor.
  • Main memory 606 such as a random access memory (RAM) or other dynamic storage device, also may be coupled to bus 602 for storing information and software instructions to be executed by processor(s) 604 .
  • Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of software instructions to be executed by processor(s) 604 .
  • Software instructions when stored in storage media accessible to processor(s) 604 , render computing device 600 into a special-purpose computing device that is customized to perform the operations specified in the software instructions.
  • the terms “software”, “software instructions”, “computer program”, “computer-executable instructions”, and “processor-executable instructions” are to be broadly construed to cover any machine-readable information, whether or not human-readable, for instructing a computing device to perform specific operations, and including, but not limited to, application software, desktop applications, scripts, binaries, operating systems, device drivers, boot loaders, shells, utilities, system software, JAVASCRIPT, web pages, web applications, plugins, embedded software, microcode, compilers, debuggers, interpreters, virtual machines, linkers, and text editors.
  • Computing device 600 also may include read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and software instructions for processor(s) 604 .
  • ROM read only memory
  • static storage device coupled to bus 602 for storing static information and software instructions for processor(s) 604 .
  • One or more mass storage devices 610 may be coupled to bus 602 for persistently storing information and software instructions on fixed or removable media, such as magnetic, optical, solid-state, magnetic-optical, flash memory, or any other available mass storage technology.
  • the mass storage may be shared on a network, or it may be dedicated mass storage.
  • at least one of the mass storage devices 610 (e.g., the main hard disk for the device) stores a body of program and data for directing operation of the computing device, including an operating system, user application programs, driver and other support files, as well as other data files of all sorts.
  • Computing device 600 may be coupled via bus 602 to display 612 , such as a liquid crystal display (LCD) or other electronic visual display, for displaying information to a computer user.
  • display 612 such as a liquid crystal display (LCD) or other electronic visual display, for displaying information to a computer user.
  • a touch sensitive surface incorporating touch detection technology e.g., resistive, capacitive, etc.
  • touch detection technology may be overlaid on display 612 to form a touch sensitive display for communicating touch gesture (e.g., finger or stylus) input to processor(s) 604 .
  • An input device 614 may be coupled to bus 602 for communicating information and command selections to processor 604 .
  • input device 614 may include one or more physical buttons or switches such as, for example, a power (on/off) button, a “home” button, volume control buttons, or the like.
  • cursor control 616 such as a mouse, a trackball, cursor or touch screen direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612 .
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • Other input device embodiments include an audio or speech recognition input module to recognize audio input such as speech, a visual input device capable of recognizing gestures by a user, and a keyboard.
  • one or more of display 612 , input device 614 , and cursor control 616 are external components (i.e., peripheral devices) of computing device 600 , some or all of display 612 , input device 614 , and cursor control 616 are integrated as part of the form factor of computing device 600 in other configurations.
  • any other form of user output device can be used such as an audio output device or a tactile (vibrational) output device.
  • main memory 606 Functions of the disclosed systems, methods, and modules may be performed by computing device 600 in response to processor(s) 604 executing one or more programs of software instructions contained in main memory 606 .
  • Such software instructions may be read into main memory 606 from another storage medium, such as storage device(s) 610 or a transmission medium. Execution of the software instructions contained in main memory 606 cause processor(s) 604 to perform the functions of the example embodiment(s).
  • computing device 600 e.g., an ASIC, a FPGA, or the like
  • computing device 600 may be used in other embodiments in place of or in combination with software instructions to perform the functions, according to the requirements of the particular implementation at hand.
  • Non-volatile media includes, for example, non-volatile random access memory (NVRAM), flash memory, optical disks, magnetic disks, or solid-state drives, such as storage device 610 .
  • Volatile media includes dynamic memory, such as main memory 606 .
  • storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, flash memory, any other memory chip or cartridge.
  • Storage media is distinct from but may be used in conjunction with transmission media.
  • Transmission media participates in transferring information between storage media.
  • transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602 .
  • Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • a machine-readable medium carrying instructions in the form of code can comprise a non-transient storage medium and a transmission medium.
  • the software instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer.
  • the remote computer can load the software instructions into its dynamic memory and send the software instructions over a telephone line using a modem.
  • a modem local to computing device 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602 .
  • Bus 602 carries the data to main memory 606 , from which processor(s) 604 retrieves and executes the software instructions.
  • the software instructions received by main memory 606 may optionally be stored on storage device(s) 610 either before or after execution by processor(s) 604 .
  • Computing device 600 also may include one or more communication interface(s) 618 coupled to bus 602 .
  • a communication interface 618 provides a two-way data communication coupling to a wired or wireless network link 620 that is connected to a local network 622 (e.g., Ethernet network, Wireless Local Area Network, cellular phone network, Bluetooth wireless network, or the like).
  • Communication interface 618 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
  • communication interface 618 may be a wired network interface card, a wireless network interface card with an integrated radio antenna, or a modem (e.g., ISDN, DSL, or cable modem).
  • Network link(s) 620 typically provide data communication through one or more networks to other data devices.
  • a network link 620 may provide a connection through a local network 622 to a host computer or to data equipment operated by an Internet Service Provider (ISP).
  • ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet”.
  • Internet Internet
  • Local network(s) 622 and Internet use electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link(s) 620 and through communication interface(s) 618 , which carry the digital data to and from computing device 600 are example forms of transmission media.
  • Computing device 600 can send messages and receive data, including program code, through the network(s), network link(s) 620 and communication interface(s) 618 .
  • a server might transmit a requested code for an application program through Internet, ISP, local network(s) 622 and communication interface(s) 618 .
  • the received code may be executed by processor 604 as it is received, and/or stored in storage device 610 , or other non-volatile storage for later execution.
  • Non-transient storage medium storing code for execution by a processor of a machine to carry out the method.
  • Embodiments can be implemented in programmable digital logic that implements computer code.
  • the code can be supplied to the programmable logic, such as a processor or microprocessor, on a non-transitory storage medium that stores the code, such as a solid-state memory, magnetic media (hard disk drive), or optical media (Compact disc (CD) or digital versatile disc (DVD)).

Abstract

A user interface method implemented in a machine, the method comprising storing shortcut data for a set of one or more users comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the set of one or more users, each stored identifier for a shortcut having a corresponding stored machine command; determining a current state of the machine for a user; receiving an input from the user; determining whether the input matches a stored identifier for a shortcut in the shortcut data; executing a stored device command corresponding to the stored identifier dependent upon the matching; updating stored history data for the set of users; and updating the shortcut data using the updated history data.

Description

    FIELD OF THE INVENTION
  • The present invention relates to a user interface method and apparatus and in one aspect to a user interface method and machine to enable at least one user to enter an input to execute a command to transition a machine from one state to another.
  • BACKGROUND INFORMATION
  • Electronic processing devices including computers, media devices, and mobile devices are used prevalently in almost all facets of people's lives. The ease with which users can interact with these devices is the subject of considerable research and commercial effort. Making the user interface of electronic machines easier for users is of major importance and can make a very powerful and useful apparatus difficult to use of even useless in the eyes of a user.
  • For example, in the field of web browsing it is sometime necessary for a user to type in the text characters comprising an HTTP request in order to access a web page. The syntax of HTTP is not intuitive to many users. The input of the text can be subject to error and hence users can experience frustration with the inability to access the correct web page accurately. This problem has been partly addressed by the use of predictive text suggestions, such as by enabling Bing (trade mark of Microsoft Corporation) to search for potential HTTP addresses corresponding to the characters as entered by the user. However, this function requires the characters to be transmitted to a server to carry out a search for likely results. The search in not performed with any context on what the user might want to find apart from using the entered characters.
  • SUMMARY OF THE INVENTION
  • One aspect provides a user interface method implemented in a machine, the method comprising storing shortcut data for at least one user comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the at least one user, each stored identifier for a shortcut having a corresponding stored machine command; determining a current state of the machine for a said user; receiving an input from the user; determining whether the input matches a stored identifier for a shortcut in the shortcut data; executing a stored device command corresponding to the stored identifier dependent upon the matching; updating stored history data for the at least one user; and updating the shortcut data using the updated history data.
  • Another aspect of the invention provides a machine for providing a user interface, the machine comprising a program memory storing program code; and a processor for implementing the program code stored in the program memory; wherein the program code comprises: code for controlling the processor to store shortcut data for at least one user comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the at least one user, each stored identifier for a shortcut having a corresponding stored machine command; code for controlling the processor to determine a current state of the machine for a said user; code for controlling the processor to receive an input from the user; code for controlling the processor to determine whether the input matches a stored identifier for a shortcut in the shortcut data; code for controlling the processor to execute a stored device command corresponding to the stored identifier dependent upon the matching; code for controlling the processor to update stored history data for the at least one user; and code for controlling the processor to update the shortcut data using the updated history data.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic diagram illustrating a user device as a machine according to one embodiment;
  • FIG. 2 is a flow diagram illustrating the process according to one embodiment;
  • FIG. 3 is a schematic diagram illustrating a user device as a machine synchronizing history data and shortcut data with a remote server according to one embodiment;
  • FIG. 4 is a schematic diagram illustrating a server as a multiuser machine according to one embodiment;
  • FIGS. 5a and 5b are illustrations of user interface outputs according to one embodiment;
  • FIG. 6 is a schematic diagram illustrating a server as a multiuser machine synchronizing history data and shortcut data with a remote server according to one embodiment; and
  • FIG. 7 is a schematic diagram of a basic computing device for use in one embodiment.
  • DETAILED DESCRIPTION
  • In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments in which the inventive subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice them, and it is to be understood that other embodiments may be utilized and that structural, logical, and electrical changes may be made without departing from the scope of the inventive subject matter. Such embodiments of the inventive subject matter may be referred to, individually and/or collectively, herein by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
  • The following description is, therefore, not to be taken in a limited sense, and the scope of the inventive subject matter is defined by the appended claims.
  • In the following embodiments, like components are labelled with like reference numerals.
  • In the following embodiments, data is described as being stored in at least one database. The term database is intended to encompass any data structure (and/or combinations of multiple data structures) for storing and/or organizing data, including, but not limited to, relational databases (e.g., Oracle databases, mySQL databases, etc.), non-relational databases (e.g., NoSQL databases, etc.), in-memory databases, spreadsheets, as comma separated values (CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and/or any other widely used or proprietary format for data storage. Databases are typically stored in one or more data stores. Accordingly, each database referred to herein (e.g., in the description herein and/or the figures of the present application) is to be understood as being stored in one or more data stores. A “file system” may control how data is stored and/or retrieved (for example, a disk file system like FAT, NTFS, optical discs, etc., a flash file system, a tape file system, a database file system, a transactional file system, a network file system, etc.). For simplicity, the disclosure is described herein with respect to databases. However, the systems and techniques disclosed herein may be implemented with file systems or a combination of databases and file systems.
  • In the following embodiments, the term data store is intended to encompass any computer readable storage medium and/or device (or collection of data storage mediums and/or devices). Examples of data stores include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), memory circuits (e.g., solid state drives, random-access memory (RAM), etc.), and/or the like. Another example of a data store is a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).
  • The functions or algorithms described herein are implemented in hardware, software or a combination of software and hardware in one embodiment. The software comprises computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, described functions may correspond to modules, which may be software, hardware, firmware, or any combination thereof. Multiple functions are performed in one or more modules as desired, and the embodiments described are merely examples. The software is executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a system, such as a personal computer, server, a router, or other device capable of processing data including network interconnection devices.
  • Some embodiments implement the functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the exemplary process flow is applicable to software, firmware, and hardware implementations.
  • A generalized embodiment provides a machine and a method for providing a user interface using stored shortcut data for at least one user or in other words a set of one or more users. The shortcut data comprises a plurality of sets of identifiers for shortcuts for a corresponding plurality of states of the machine for the set of one or more users or a plurality of sets of states for the set of one or more users. Each stored identifier for a shortcut has a corresponding stored machine command. A current state of the machine used by a user is determined and when an input is received from the user, it is determined whether the input matches a stored identifier for a shortcut in the shortcut data. If it does, a stored device command corresponding to the stored identifier is executed, the stored history data for the set of one or more users is updated and the shortcut data is updated using the updated history data.
  • The machine can hence store history data to learn about user inputs for specific machine states for use in the determination of updated shortcut data to store appropriate shortcuts for commands that a set of one or more users might want to enter in a current machine state to transition to a next machine state. Hence, the shortcuts are user and context specific.
  • The user interface method can be used to learn inputs for a set of users using the same machine states e.g. using the same applications, programs or processes. The set of users can be any number including a single user. The user interface method can be used by a group of users, such as an office or business.
  • The invention is applicable to any electronic machine having a need to receive user inputs to enter commands to the machine. In a programmable machine such as a computer, the user interface can monitor any form of user input such as from a keyboard, pointer device, touch screen input, audio or speech input, or gesture input. The input can also comprise an image obtained by scanning or photographing an object or by downloading an image over a network from an image source. Where the input is an image, the matching of the input to identifiers can comprise matching an input image to a stored image associated with a command or command sequence. The match can be exact or based on a level of similarity.
  • The user interface can be software agnostic in that it can monitor the input to any application operated by an operating system or even an input to the operating system itself. The machine can thus provide a multimodal interface to the user or users.
  • Where one machine learns about user behaviour from user inputs or from other user behaviour, that machine can determine shortcut data to store appropriate commands that a user might want to enter in a current machine state to transition to a next machine state. This stored shortcut data can be transferred to another machine having the same machine states used by the same user so that the shortcut data is available to make that machine easier to use.
  • In one embodiment, if the input from the user does not match a stored identifier, it is determined whether the input is a command, and if so the command is executed, the stored history data for the user is updated, and the shortcut data using the updated history data is updated. In this way, in an initial condition, where there is no history data learnt from the set of user's previous inputs, the user's input cannot match any shortcut identifier and so the machine can update the history data to start the learning process. This learning process of updating the history data can continue, whenever the users enter inputs that are not a shortcut identifier. The history data is updated and the updated history data can be used to make better-suggested shortcuts for the set of users.
  • The shortcut identifiers may or may not be output to the set of users for the current state of the machine. The shortcut identifiers can be output for example visually on a display, audibly by an audio output or as a vibrational output. The output of the shortcut identifiers assists the set of users in making the selection of a shortcut to enter a command. This avoids the need for a user to remember the shortcuts. However, the user may find that the output of the shortcut identifiers becomes a nuisance and a distraction from the output from the machine in the current state. For example, the display of selectable shortcut identifiers as buttons or icons may be considered by a user to be visually distracting while they are viewing the display for the current state of the machine.
  • The shortcut identifiers may be output in an order dependent on the history data. This can allow a user to more easily select a shortcut that they use more frequently. For example, in an embodiment, whether the shortcut identifiers are displayed, the history data enables the determination of commands and hence shortcuts that are input by the set of users more frequently or more recently than others, so that they can be displayed either more prominently or at the highest position in a list or ordered sequence. In an audio output embodiment, shortcut identifiers for the more frequently used or more recently used commands can be audibly output first to assist the set of users more quickly make an audio selection/input of a shortcut identifier.
  • The stored machine command can comprise a single command or a plurality of sequential commands to be executed by the machine sequentially. The storage of a sequence of commands can be determined as a shortcut by learning a repeated pattern of user input by the user from the history data. This pattern can then be stored as a command sequence in a single shortcut.
  • In one embodiment, the stored shortcut data and the shored history data for the set of users can be synchronized with a remote database of shortcut data and history data for a plurality of users including the set of users. Thus in this embodiment, a remote database can store shortcut data and history data for a plurality of users so that it can be remotely processed. For example, in one embodiment, the history data received from the remote database in the synchronization includes user preference data indicating preferences of the set of users, and the shortcut data is updated using the user preference data. User preference data can be gathered from data collected from or about users from many sources, such as merchant loyalty programs and merchant transaction data. The data on user transaction behavior can be processed to determine user preferences.
  • The machine can be a single user machine, a standalone machine, or a multiuser machine such as a server and the shortcut data can be stored for a single set of users or a plurality of sets of users of the machine. For multiple sets of users, multiple sets of history data and shortcut data has to be stored: one set per set of users. In one embodiment, the stored shortcut data and the shored history data for the users can be synchronized with a remote database of shortcut data and history data for a plurality of sets of users including the users of the machine. Thus in this embodiment, a multiuser machine can store data for multiple sets of users, such as customers of a vendor or merchant or multiple businesses, and a remote database can store history data and shortcut data for the plurality of sets of users (e.g. for a plurality of vendors or businesses) so that it can be remotely processed. For example, in one embodiment, the history data received from the remote database in the synchronization includes user preference data indicating preferences of the users, and the shortcut data is updated using the user preference data. User preference data can be gathered from data collected from or about a set of users from many sources, such as merchant loyalty programs and merchant transaction data. The data on user transaction behaviour can be processed to determine user preferences. Embodiments also encompass the management of financial instruments, such as money or currency. Payment or spending preferences or habits of a user can be learnt to provide shortcuts for machine states to next machine states, such as allowing a user to make payments.
  • In one embodiment, the input from the user can include one or more text characters in a displayed text entry field, the stored identifier for the shortcut can include a plurality of text characters, and the corresponding command can include the plurality of text characters. In order to determine whether the input matches a stored identifier for a shortcut in the shortcut data, the input one or more text characters are matched with one or more of the plurality of text characters of the stored identifier.
  • This embodiment of the invention enables the invention to be applied to a text field in a user interface. As a user enters characters in the text field, the characters are compared with shortcut identifiers in the form of text for commands in order to output suggested shortcuts to the commands based on the current state of the machine and the user's personal input history. For example, when a user interface displays a web page, the user's history will indicate that the user made certain inputs previously when on that web page, and hence the shortcut data reflects those inputs with shortcut identifiers for inputs that the user is more likely to make.
  • In one embodiment, the user interface can be used in an electronic transaction the method disclosed in co-pending application Ser. No. 15/395,487, filed the same day as this application, entitled “AN ELECTRONIC TRANSACTION METHOD AND APPARATUS”, by the same applicant and inventors (attorney reference 11043PUSA), the content of which is hereby incorporated in its entirety.
  • Specific embodiments will now be described with reference to the drawings.
  • A first embodiment will be described with reference to FIGS. 1 and 2. FIG. 1 illustrates a device 100 for use by a set of one or more users not connected to any network (a standalone machine). The set of users can be any number including a single user. The user interface method can be used by a set of users, such as an office or business, using the same machine states e.g. using the same applications, programs or processes, such that one of the set of users is likely to want to enter a command in a machine state in the same manner as any other member of the set of users.
  • The device 100 can comprise any type of computing or processing machine, such as a personal computer, a laptop, a tablet computer, a personal organizer, a mobile device, smart phone, a mobile telephone, a video player, a television, an audio player, a multimedia device, personal digital assistant, etc.
  • A processor 20 is provided to load program code 21 from a program code store 70 and execute the program code 21 using working volatile memory 30. The program code 21 executes the functionality of one embodiment of the invention. Other program code can be loaded up in the form of an operating system, and applications to receive the commands that a user inputs directly or inputs by inputting a shortcut for a command in accordance with one embodiment.
  • A user interface 5 comprises an input device 10 and an output device 40. The input device can comprise any hardware, software or combination of hardware and software to receive a user input, such as a keyboard, touch screen, pointer device (such as a mouse, trackball, trackpad, or pen device), audio recognition hardware and/or software to recognize a sounds or speech from a user, gesture recognition input hardware and/or software, etc. The output device can comprise any hardware, software or combination of hardware and software to output information to a user including shortcut identifiers, such as a display screen, or an audio speaker. Hence, the user interface 5 provides for outputs to a user from the processor 20 and inputs from the user to the processor 20.
  • The device 100 is also provided with a data store 60 to store shortcut data in a shortcut database 61 and history data in a history database 62. Although the shortcut data and the history data are described as being stored in databases in this embodiment, the data can be stored in any convenient form, or data structure.
  • The history data for a set of one or more users comprises a set of data for the set of one or more users for each of a set of states of a machine used by the set of one or more user. For each state of the machine a set of one or more user input commands are stored to record the commands directly input or input as a result of a user selection (e.g. clicking a displayed selectable option such as a hyperlink in an interface). In this way, the history data can record for each set of one or more users, and for each machine state used by the set of one or more users, a set of input commands.
  • In one embodiment, the history data can also include user preference data indicating preferences of a user. The user preference data can be obtained from analyzing the user inputs and processing other user data entered by a user that can indicate a user's preferences. The preference data can be used along with the recorded user input history data to determine updates to the shortcut data.
  • The shortcut data stores, for each machine state, a shortcut identifier and one or more commands to be executed by the machine. If there is more than one command, the commands are to be executed sequentially. The shortcut identifier can comprise a tag that a user can use to simply select the shortcut e.g. 1, 2, 3, 4 . . . or A, B, C, . . . . This tag can be automatically assigned to the shortcut or a user can select a tag. The tag enables the user to make an input simply by inputting the tag e.g. 2, or D, rather than typing some form of text string. The shortcut data can also comprise information for display to the user when the shortcut identifier is displayed for selections as for example, and icon, image, button etc. The information can assist the user in identifying the command available for selection as a shortcut.
  • Alternatively, the shortcut identifier can comprise a text string corresponding to the text command string entered as the input by the user e.g. an http input command to load a web page into a browser, the name of a file to loaded in an application or to be searched for in a file system, or the name of an application to be executed in an operating system. In this example, the matching of a user's input can be achieved by matching the text characters as they are typed in by a user to suggest potential commands that the user might be trying to type in based on previously type commands. The user input text can be matched on a partial match basis with the stored shortcut identifier text so that initially a number of possible matches are identified that the user can select from and these are reduced as the user types more characters so that some initial shortcut identifier text matches no longer match and are removed as options for the user. This is a form of predictive text, but it is user and context specific in that it is specific to the user and the current state of the machine e.g. the web page displayed by a browser used by the user, a document opened by a user, a search window opened for a document in an operating system, search engine, etc.
  • In embodiments of the present invention, a machine state can comprise any operating state currently instantiated by the user of the machine. In a programmed device, the state can comprise a state in the operation of a computer program, such as a web page in a web browser application, a document in a word processor application, a worksheet in a spreadsheet application, an email in an email application, operating system navigation and search features, or any search and retrieval application.
  • The operation of one embodiment will now be described with reference to the flow diagram of FIG. 2.
  • In step S10 the current state of the machine is determined, e.g. the current web page open in a browser, the current document open in the word processor, the current email open in an email application, etc. Based on the current machine state, the process determined whether there are any stored shortcuts available in step S11. In one embodiment, the available shortcuts can only include shortcuts that were recently created or used. Shortcuts that have not been used for a long period of time are likely not to be relevant to a user and can hence be deleted to avoid presenting the user with out of date old shortcuts. If there are available shortcuts determined to be available in step S11, in step S16, the process determines whether the shortcuts are to be output to the user for selection. If the output of the shortcuts is not enabled or disabled by the user (for example because they have become familiar with the available shortcuts and do not need or want them to be output e.g. displayed), the process proceeds to step S17 to await an input from the user. If the shortcuts are determined to be output in step S16, the process proceeds to step S15 to output the shortcut options to the user, e.g. display shortcut icons, buttons, or images with shortcut identifiers and optionally some shortcut information to assist the user make the shortcut selection. The process then proceeds to step S17 to await an input from the user.
  • If in step S11 it is determined that there are no available up to date shortcuts, a shortcut determination process S30 is carried out comprising looking up history data for the user in step S12, determining shortcuts for the user for the current machine state using the history data in step S13, and storing the shortcut data in step S14. The stored shortcuts are then output to the user in step S15, e.g. display shortcut icons, buttons, or images with shortcut identifiers and optionally some shortcut information to assist the user make the shortcut selection. The process then proceeds to step S17 to await an input from the user.
  • When an input is received from the user in step S17, the input from the user is used in step S18 to look up a shortcut for the current state to determine one or more commands to be executed by the machine. The input from the user can be an input of the shortcut identifier e.g. by a text input or a voice input, of a selection of a shortcut option, whereby the selection is converted to a user input for comparison with the shortcut identifiers for the current machine state.
  • In step S19 it is determined whether the input from the user matches a shortcut. If the set of one or more users have not made the input at the current machine state before so that it is not in the history data for use in the formation of a shortcut, in step S23 the process determines whether the input is a command input or merely some other form of input, such as an input of text into a document, of other input field that does not cause the machine to transition to another state. For example, in a web form, data can be entered without it being sent to a server and hence the entered text data is not a command. When it is sent to the server it is a command since the web page will be usually be updated. If it is determined in step S23 that the user input is not a command, the process returns to step S17 to await a user input.
  • If a command is determined to be input in step S23, the process moves to step S24 to execute the command to transition the machine to the next state. Then in step S21, the history data for the previous machine state is updated with the command to transition to the next state. In step S22, the updated history data is then used to generate updated shortcuts and the process returns to step S10 to determine the current machine state.
  • If in step S19 it is determined that the input does match a shortcut, in step S20, the command for the shortcut is executed to take the machine to the next start. Then in step S21, the history data for the previous machine state is updated with the selection of the shortcut to transition to the next state. In step S22, the updated history data is then used to generate updated shortcuts and the process returns to step S10 to determine the current machine state.
  • In the updating of the history data, when a new command is entered by the user a new shortcut can be created. When a user selects a previously created shortcut, the user's selection of the shortcut can be recorded in the data so that the relevance of shortcut can be increased and the shortcut is indicated as being recent and not old. Selections of previously created shortcuts can be used to rank or order the shortcuts for output to the set of one or more users so that the most relevant shortcuts are output and they are ordered according the relevance i.e. how often selected and how recently.
  • Although the shortcut determination process S30 is illustrated in FIG. 2 as being performed every time there are no available up to date shortcuts, in one embodiment, the steps of the shortcut determination process S30 can be performed for each machine state for the set of one or more users in a separate or ‘offline’ process by the processing of the history data for each machine state. Where the history data include user preference data, even if any user of the set of users has not made an input to transition from a machine state, in one embodiment, one or more shortcuts can be determined based solely on the user preference data, obtained for example from user behavior using the machine or from user input parameters.
  • FIG. 3 illustrates another embodiment of the present invention in which a remote database of shortcut and history data for a plurality of sets of one or more users is provided.
  • In this embodiment, the user's device 1 comprises the components illustrated and described with reference to FIG. 1. The user's device 1 operates in the same manner as described with reference to the flow diagram of FIG. 2. In addition, the user's device 1 includes a network interface 50 for connecting the user's device 1 over a network such as the internet 80 to a remote server system 90. The server system 90 is connected to or provided with a data store 95 in which are stored a global shortcut database 96 and a global history database 97.
  • The global shortcut database 96 stores shortcuts for the set of one or more users of the user's device 1 and a plurality of other sets of users of other user's devices. Similarly, the global history database 97 stores the history for the set of users of the user's device 1 and a plurality of other sets of users of other user's devices. The data stored in the data store 95 can be synchronized with the data stored in the data store 60 in the user's device. In this way, in the embodiment where user preference data is included in the history data, the shortcuts and history stored in the data store 95 can reflect user preferences and can be sent to the data store 60 on the user's device 1.
  • FIG. 4 illustrates another embodiment comprising a server as a multiuser machine according to one embodiment.
  • In this embodiment, a server system 90 includes a web server 92 providing access over a network such as the internet 80 to user's devices 1 operating respective web browsers 2. The server system 90 also executes an application server 91 and accesses a data store 95 storing a global shortcut database 96 and a global history database 97.
  • In this embodiment, the server system 90 operates according to the flow diagram of FIG. 2 for each user of a plurality of users accessing the web server 92 by accessing user specific sets of data for machine states comprising states of the server system 90 in the global shortcut database 96.
  • FIGS. 5a and 5b illustration user interface outputs for the server system of FIG. 4 according to one embodiment. In this embodiment, the web server 92 serves web pages to be rendered in the browser 2 of each user's device 1. The user interface thus comprises a displayed web page 400 comprising a universal resource locator (URL) text entry field 402 in a header region 401. The web page displayed in FIG. 5a comprises a search engine web page, called “Super web searcher” and a text search input field 404 is provided to allow a user to enter a text string as a search string to send as part of a command to undertake a web search. In this embodiment, the user has input the text string “http://spee” in either the URL text entry field 402 or the text search input field 404 (both are shown in FIG. 5 a, but in practice the user will only input text to one of the fields 402 and 404). As a result of the user input text, the user input is matched to shortcut identifiers for shortcuts and shortcut icons, windows, drop down lists, buttons or images 403 are displayed. The shortcuts 403 displayed comprise:
  • Shortcut identifier Command
    1 The URL for Speedy Shop web page
    2 The URL for Speedway track web page
    3 The URL for Speed Savers web page
  • In this embodiment, on this web page (machine state), the user has only made user input comprising text inputs and hence the shortcuts can be selected by inputting initial characters of the text string previously entered and stored in the history.
  • The shortcuts 403 can display an image or information on the command that will be entered if the shortcut 403 is selected to assist the user identify the command entry options available using the shortcuts. The identifier in this embodiment, comprises a short label or tag so that the selection of the shortcut can be made by any one of: using a pointer device, gesture, or touch screen to select a displayed location of a shortcut 403, using a keyboard to input 1, 2 or 3, or using speech recognition to speak 1, 2 or 3 as the input.
  • FIG. 5b illustrates the web page 400 a displayed as a result of the use selection of shortcut tag 1 in FIG. 5 a.
  • In this embodiment, the web page 400 a is displayed for “Speedy Shop”, a vendor or merchant of electrical goods. The web page displays conventional hyperlinks to open web pages for various product types, such as camera, laptops, televisions, and loud speakers. In the header 401 is provided the URL text field 402 as well as shortcuts 403 a. In this embodiment, the shortcut 403 a are displayed in the header region 401 so as to leave the rest of the display area free and avoid the shortcuts overlapping web page information.
  • The shortcuts 403 a displayed comprise:
  • Shortcut identifier Command
    1 The URL link to the Laptops web page
    2 The URL and sequential commands to take the
    user directly to the vendor's checkout with a
    specific camera that's in the user's basket
    3 The URL link to the Speakers web page
  • It can thus be seen that in this embodiment, that the shortcuts are identified by a tag separately to any input text by a user. In this machine state a user has previously made selections of the commands stored in the shortcuts and hence the shortcuts can simply be selected by selecting a tag
  • FIG. 6 illustrates a server as a multiuser machine synchronizing history data and shortcut data with a remote server according to one embodiment. In this embodiment, each vendor system 90A and 90B can comprise a server system 90 as described with reference to FIG. 4. Each vendor server 90A and 90B operates substantially as described in the flow diagram of FIG. 2 for each user accessing a web server 92A or 92B of a respective vendor server 90A or 90B using a web browser 2 of a respective user's device 1 over a network such as the internet 80. Each vendor server system 90A and 90B includes an application server 91A and 91B, a data store 95A and 95B storing a respective vendor shortcut database 96A and 96B and a respective vendor history database 97A and 97B. In this embodiment, the databases 96A, 96B, 97A and 97B store data for a plurality of users of the vendor's web site.
  • A third party provider server system 190 is connected over the internet 80 to the vendor server systems 90A and 90B. The third party provider server system 190 includes an application serve 191 accessing a global shortcut database 196 and a global history database 197. The global databases 196 and 197 store data for a plurality of users for a plurality of vendor server systems 90A and 90B. Thus in a similar manner to the data store 95 of the embodiment of FIG. 3 holding data for a plurality of user's devices 1 of FIG. 1, in this embodiment the databases 196 and 197 hold data for sets of users of a plurality of vendor server systems 90A and 90B.
  • The global shortcut database 196 stores shortcuts for the users of the user's devices 1 that use the vendors server system 90A and 90B and a plurality of other users of other user's devices that use other vendor server systems. Similarly, the global history database 197 stores the history for the users of the user's devices 1 that use the vendors server system 90A and 90B and a plurality of other users of other user's devices that use other vendor server systems. The data stored in the databases 196 and 197 can be synchronized with the data stored in the data store 95A and 95B in the vendors server system 90A and 90B. In this way, in the embodiment where user preference data is included in the history data, the shortcuts and history stored in the data bases 196 and 197 can reflect the user preferences determined from multiple vendors and other sources and can be sent to the data store 95A and 95B on the vendor server system 90A and 90B. This allows vendors to share user preference data that can be determined from multiple vendor data that can include the history data recorded for machine state transitions by users using the vendors server systems.
  • Although embodiments have been described with reference to the machine state comprising a web page served by a web server, the machine state can comprise any process step implemented in a processing machine that a user can make an input into to cause a transition to a next machine state. For example, a machine state can be represented by a stage of processing in any software application, such as a document, a spreadsheet, email, operating system navigation or input, and searching and retrieval software.
  • Embodiments provide for context based options for input of user selection options as a graphic selection or an audio selection/input to provide for predictive user input.
  • In one embodiment, a current machine state can be a set of machine states such as web pages or other interface displays having common parameters. For example, a web page can be scrolled or zoomed, and frames can hold data entered by the user such as name and contact details. However, such data is handled by the web browser and is not transmitted to the web server and hence the machine state of the client device may operate in multiple states having common parameters that are only a single web page serving step for the web server.
  • Basic Computing Device
  • FIG. 7 is a block diagram that illustrates a basic computing device 600 in which the example embodiment(s) of the present invention may be embodied. Computing device 600 and its components, including their connections, relationships, and functions, is meant to be exemplary only, and not meant to limit implementations of the example embodiment(s). Other computing devices suitable for implementing the example embodiment(s) may have different components, including components with different connections, relationships, and functions.
  • Computing device 600 may include a bus 602 or other communication mechanism for addressing main memory 606 and for transferring data between and among the various components of device 600.
  • Computing device 600 may also include one or more hardware processors 604 coupled with bus 602 for processing information. A hardware processor 604 may be a general purpose microprocessor, a system on a chip (SoC), or other processor.
  • Main memory 606, such as a random access memory (RAM) or other dynamic storage device, also may be coupled to bus 602 for storing information and software instructions to be executed by processor(s) 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of software instructions to be executed by processor(s) 604.
  • Software instructions, when stored in storage media accessible to processor(s) 604, render computing device 600 into a special-purpose computing device that is customized to perform the operations specified in the software instructions. The terms “software”, “software instructions”, “computer program”, “computer-executable instructions”, and “processor-executable instructions” are to be broadly construed to cover any machine-readable information, whether or not human-readable, for instructing a computing device to perform specific operations, and including, but not limited to, application software, desktop applications, scripts, binaries, operating systems, device drivers, boot loaders, shells, utilities, system software, JAVASCRIPT, web pages, web applications, plugins, embedded software, microcode, compilers, debuggers, interpreters, virtual machines, linkers, and text editors.
  • Computing device 600 also may include read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and software instructions for processor(s) 604.
  • One or more mass storage devices 610 may be coupled to bus 602 for persistently storing information and software instructions on fixed or removable media, such as magnetic, optical, solid-state, magnetic-optical, flash memory, or any other available mass storage technology. The mass storage may be shared on a network, or it may be dedicated mass storage. Typically, at least one of the mass storage devices 610 (e.g., the main hard disk for the device) stores a body of program and data for directing operation of the computing device, including an operating system, user application programs, driver and other support files, as well as other data files of all sorts.
  • Computing device 600 may be coupled via bus 602 to display 612, such as a liquid crystal display (LCD) or other electronic visual display, for displaying information to a computer user. In some configurations, a touch sensitive surface incorporating touch detection technology (e.g., resistive, capacitive, etc.) may be overlaid on display 612 to form a touch sensitive display for communicating touch gesture (e.g., finger or stylus) input to processor(s) 604.
  • An input device 614, including alphanumeric and other keys, may be coupled to bus 602 for communicating information and command selections to processor 604. In addition to or instead of alphanumeric and other keys, input device 614 may include one or more physical buttons or switches such as, for example, a power (on/off) button, a “home” button, volume control buttons, or the like.
  • Another type of user input device may be a cursor control 616, such as a mouse, a trackball, cursor or touch screen direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. Other input device embodiments include an audio or speech recognition input module to recognize audio input such as speech, a visual input device capable of recognizing gestures by a user, and a keyboard.
  • While in some configurations, such as the configuration depicted in FIG. 7, one or more of display 612, input device 614, and cursor control 616 are external components (i.e., peripheral devices) of computing device 600, some or all of display 612, input device 614, and cursor control 616 are integrated as part of the form factor of computing device 600 in other configurations.
  • In addition to or in place of the display 612 any other form of user output device can be used such as an audio output device or a tactile (vibrational) output device.
  • Functions of the disclosed systems, methods, and modules may be performed by computing device 600 in response to processor(s) 604 executing one or more programs of software instructions contained in main memory 606. Such software instructions may be read into main memory 606 from another storage medium, such as storage device(s) 610 or a transmission medium. Execution of the software instructions contained in main memory 606 cause processor(s) 604 to perform the functions of the example embodiment(s).
  • While functions and operations of the example embodiment(s) may be implemented entirely with software instructions, hard-wired or programmable circuitry of computing device 600 (e.g., an ASIC, a FPGA, or the like) may be used in other embodiments in place of or in combination with software instructions to perform the functions, according to the requirements of the particular implementation at hand.
  • The term “storage media” as used herein refers to any non-transitory media that store data and/or software instructions that cause a computing device to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, non-volatile random access memory (NVRAM), flash memory, optical disks, magnetic disks, or solid-state drives, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, flash memory, any other memory chip or cartridge.
  • Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. A machine-readable medium carrying instructions in the form of code can comprise a non-transient storage medium and a transmission medium.
  • Various forms of media may be involved in carrying one or more sequences of one or more software instructions to processor(s) 604 for execution. For example, the software instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the software instructions into its dynamic memory and send the software instructions over a telephone line using a modem. A modem local to computing device 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602. Bus 602 carries the data to main memory 606, from which processor(s) 604 retrieves and executes the software instructions. The software instructions received by main memory 606 may optionally be stored on storage device(s) 610 either before or after execution by processor(s) 604.
  • Computing device 600 also may include one or more communication interface(s) 618 coupled to bus 602. A communication interface 618 provides a two-way data communication coupling to a wired or wireless network link 620 that is connected to a local network 622 (e.g., Ethernet network, Wireless Local Area Network, cellular phone network, Bluetooth wireless network, or the like). Communication interface 618 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information. For example, communication interface 618 may be a wired network interface card, a wireless network interface card with an integrated radio antenna, or a modem (e.g., ISDN, DSL, or cable modem).
  • Network link(s) 620 typically provide data communication through one or more networks to other data devices. For example, a network link 620 may provide a connection through a local network 622 to a host computer or to data equipment operated by an Internet Service Provider (ISP). ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet”. Local network(s) 622 and Internet use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link(s) 620 and through communication interface(s) 618, which carry the digital data to and from computing device 600, are example forms of transmission media.
  • Computing device 600 can send messages and receive data, including program code, through the network(s), network link(s) 620 and communication interface(s) 618. In the Internet example, a server might transmit a requested code for an application program through Internet, ISP, local network(s) 622 and communication interface(s) 618.
  • The received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution.
  • One aspect provides a non-transient storage medium storing code for execution by a processor of a machine to carry out the method. Embodiments can be implemented in programmable digital logic that implements computer code. The code can be supplied to the programmable logic, such as a processor or microprocessor, on a non-transitory storage medium that stores the code, such as a solid-state memory, magnetic media (hard disk drive), or optical media (Compact disc (CD) or digital versatile disc (DVD)).
  • It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of the inventive subject matter may be made without departing from the principles and scope of the inventive subject matter as expressed in the subjoined claims.

Claims (23)

1. A user interface method implemented in a machine, the method comprising:
storing shortcut data for a set of one or more users comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the set of one or more users, each stored identifier for a shortcut having a corresponding stored machine command;
determining a current state of the machine for a said user;
receiving an input from the user;
determining whether the input matches a stored identifier for a shortcut in the shortcut data;
executing a stored device command corresponding to the stored identifier dependent upon the matching;
updating stored history data for the set of one or more users; and
updating the shortcut data using the updated history data.
2. A method according to claim 1, including, if the input from the user does not match a stored identifier, determining whether the input is a command, executing the command, updating the stored history data for the set of one or more users, and updating the shortcut data using the updated history data.
3. A method according to claim 1, including outputting the shortcut identifiers to the user for the current state of the machine.
4. A method according to claim 3, wherein the shortcut identifiers are output in an order dependent upon the history data.
5. A method according to claim 1, wherein the stored machine command comprises a plurality of sequential commands to be executed by the machine sequentially.
6. A method according to claim 1, including synchronizing the stored shortcut data and the shored history data for the set of one or more users with a remote database of shortcut data and history data for a plurality of sets of one or more users including the set of one or more users.
7. A method according to claim 6, wherein the history data received from the remote database in the synchronization includes user preference data indicating preferences of the set of one or more users, and the shortcut data is updated using the user preference data.
8. A method according to claim 1, wherein the machine is a multiuser machine used by a plurality of sets of one or more users and the shortcut data is stored for a plurality of sets of one or more users of the machine.
9. A method according to claim 8, including synchronizing the stored shortcut data and the stored history data for the set of users with a remote database of shortcut data and history data for a plurality of sets of users including the set of users of the machine.
10. A method according to claim 9, wherein the history data received from the remote database in the synchronization includes user preference data indicating preferences of the sets of users, and the shortcut data is updated using the user preference data.
11. A method according to claim 1, wherein the input from the user includes one or more text characters in a displayed text entry field, the stored identifier for the shortcut includes a plurality of text characters, the corresponding command includes the plurality of text characters, and determining whether the input matches a stored identifier for a shortcut in the shortcut data comprises matching the input one or more text characters with one or more of the plurality of text characters of the stored identifier.
12. A machine for providing a user interface, the machine comprising:
a program memory storing program code; and
a processor for implementing the program code stored in the program memory;
wherein the program code comprises:
code for controlling the processor to store shortcut data for a set of one or more users comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the set of one or more users, each stored identifier for a shortcut having a corresponding stored machine command;
code for controlling the processor to determine a current state of the machine for a said user;
code for controlling the processor to receive an input from the user;
code for controlling the processor to determine whether the input matches a stored identifier for a shortcut in the shortcut data;
code for controlling the processor to execute a stored device command corresponding to the stored identifier dependent upon the matching;
code for controlling the processor to update stored history data for the set of one or more users; and
code for controlling the processor to update the shortcut data using the updated history data.
13. A machine according to claim 12, wherein the code for controlling the processor includes code for controlling the processor to if the input from the user does not match a stored identifier, determine whether the input is a command, execute the command, update the stored history data for the set of one or more users, and update the shortcut data using the updated history data.
14. A machine according to claim 12, wherein the code for controlling the processor includes code for controlling the processor to output the shortcut identifiers to the user for the current state of the machine.
15. A machine according to claim 14, wherein the code for controlling the processor includes code for controlling the processor to output the shortcut identifiers in an order dependent upon the history data.
16. A machine according to claim 12, wherein the stored machine command comprises a plurality of sequential commands to be executed by the machine sequentially.
17. A machine according to claim 12, wherein the code for controlling the processor includes code for controlling the processor to synchronize the stored shortcut data and the shored history data for the set of one or more users with a remote database of shortcut data and history data for a plurality of sets of users including the set of users.
18. A machine according to claim 17, wherein the history data received from the remote database in the synchronization includes user preference data indicating preferences of the set of one or more users, and the code for controlling the processor includes code for controlling the processor to update the shortcut data using the user preference data.
19. A machine according to claim 12, wherein the machine is a multiuser machine used by a plurality of sets of one or more users and the code for controlling the processor includes code for controlling the processor to store the shortcut data for a plurality of sets of one or more users of the machine.
20. A machine according to claim 19, wherein the code for controlling the processor includes code for controlling the processor to synchronize the stored shortcut data and the stored history data for the sets of users with a remote database of shortcut data and history data for a plurality of sets of users including the users of the machine.
21. A machine according to claim 20, wherein the history data received from the remote database in the synchronization includes user preference data indicating preferences of the sets of users, and the code for controlling the processor includes code for controlling the processor to update the shortcut data using the user preference data.
22. A machine according to claim 12, wherein the input from the user includes one or more text characters in a displayed text entry field, the stored identifier for the shortcut includes a plurality of text characters, the corresponding command includes the plurality of text characters, and the code for controlling the processor to determine whether the input matches a stored identifier for a shortcut in the shortcut data includes code for controlling the processor to match the input one or more text characters with one or more of the plurality of text characters of the stored identifier.
23. A non-transient storage medium storing processor executable code for execution by a processor to:
store shortcut data for a set of one or more users comprising a plurality of sets of identifiers for shortcuts for a plurality of states of the machine for the set of one or more users, each stored identifier for a shortcut having a corresponding stored machine command;
determine a current state of the machine for a said user;
receive an input from the user;
determine whether the input matches a stored identifier for a shortcut in the shortcut data;
execute a stored device command corresponding to the stored identifier dependent upon the matching;
update stored history data for the set of one or more users; and
update the shortcut data using the updated history data.
US15/395,343 2015-12-31 2016-12-30 User interface method and apparatus Abandoned US20170192798A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1523166.5 2015-12-31
GBGB1523166.5A GB201523166D0 (en) 2015-12-31 2015-12-31 Direct integration system

Publications (1)

Publication Number Publication Date
US20170192798A1 true US20170192798A1 (en) 2017-07-06

Family

ID=55406529

Family Applications (6)

Application Number Title Priority Date Filing Date
US15/395,343 Abandoned US20170192798A1 (en) 2015-12-31 2016-12-30 User interface method and apparatus
US15/395,487 Active 2037-11-06 US10599450B2 (en) 2015-12-31 2016-12-30 Electronic transaction method and apparatus
US15/395,321 Abandoned US20170193123A1 (en) 2015-12-31 2016-12-30 Direct integration system
US16/400,462 Abandoned US20190258495A1 (en) 2015-12-31 2019-05-01 Direct integration system
US16/746,437 Active US10922103B2 (en) 2015-12-31 2020-01-17 Electronic transaction method and apparatus
US17/103,739 Abandoned US20210081223A1 (en) 2015-12-31 2020-11-24 Direct integration system

Family Applications After (5)

Application Number Title Priority Date Filing Date
US15/395,487 Active 2037-11-06 US10599450B2 (en) 2015-12-31 2016-12-30 Electronic transaction method and apparatus
US15/395,321 Abandoned US20170193123A1 (en) 2015-12-31 2016-12-30 Direct integration system
US16/400,462 Abandoned US20190258495A1 (en) 2015-12-31 2019-05-01 Direct integration system
US16/746,437 Active US10922103B2 (en) 2015-12-31 2020-01-17 Electronic transaction method and apparatus
US17/103,739 Abandoned US20210081223A1 (en) 2015-12-31 2020-11-24 Direct integration system

Country Status (13)

Country Link
US (6) US20170192798A1 (en)
EP (2) EP3398124A1 (en)
JP (2) JP7171438B2 (en)
KR (2) KR20180099813A (en)
CN (2) CN108701042A (en)
AU (3) AU2016383124A1 (en)
BR (2) BR112018013420A2 (en)
CA (2) CA3009892A1 (en)
DE (1) DE202016008646U1 (en)
GB (1) GB201523166D0 (en)
SG (3) SG10202000292YA (en)
WO (2) WO2017115090A1 (en)
ZA (2) ZA201804421B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599450B2 (en) 2015-12-31 2020-03-24 Maria Francisca Jones Electronic transaction method and apparatus
JP2020201803A (en) * 2019-06-12 2020-12-17 カシオ計算機株式会社 Display control unit and program
WO2022245738A1 (en) * 2021-05-19 2022-11-24 Snap Inc. Combining functions into shortcuts within messaging system
US20240045782A1 (en) * 2022-08-08 2024-02-08 Qualcomm Incorporated Suggesting a New and Easier System Function by Detecting User's Action Sequences

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838746B2 (en) 2017-05-18 2020-11-17 Aiqudo, Inc. Identifying parameter values and determining features for boosting rankings of relevant distributable digital assistant operations
US11340925B2 (en) 2017-05-18 2022-05-24 Peloton Interactive Inc. Action recipes for a crowdsourced digital assistant system
WO2018213788A1 (en) 2017-05-18 2018-11-22 Aiqudo, Inc. Systems and methods for crowdsourced actions and commands
US11056105B2 (en) * 2017-05-18 2021-07-06 Aiqudo, Inc Talk back from actions in applications
US11043206B2 (en) 2017-05-18 2021-06-22 Aiqudo, Inc. Systems and methods for crowdsourced actions and commands
AU2018101686A4 (en) * 2017-11-14 2019-01-03 Message 4U Pty Limited A system and method for facilitating payments via mobile messaging
US10768954B2 (en) 2018-01-30 2020-09-08 Aiqudo, Inc. Personalized digital assistant device and related methods
US20190318413A1 (en) * 2018-04-13 2019-10-17 Violet.io, Inc. Commerce graph api system and method for multi-platform e-commerce distribution system
US11049160B2 (en) 2018-04-13 2021-06-29 Violet.io, Inc. Headless multi-platform e-commerce distribution system and method
US11055757B2 (en) 2018-04-13 2021-07-06 Violet.io, Inc. Multi-platform e-commerce system with asynchronous cart
USD870139S1 (en) * 2018-06-04 2019-12-17 Apple Inc. Display screen or portion thereof with graphical user interface
CN110400181A (en) * 2019-07-30 2019-11-01 广州吉信网络科技开发有限公司 Automation, which jumps to return, hires link method, device, electronic equipment and storage medium
US11010811B2 (en) * 2019-10-01 2021-05-18 Jane Technologies, Inc. Online marketplace method
US11307738B2 (en) * 2019-10-08 2022-04-19 Visa International Service Association Method and system for navigating through an application in a user device
JP7390886B2 (en) * 2019-12-23 2023-12-04 東芝テック株式会社 Accounting processing methods, registration processing methods, accounting devices and programs
CN111290623A (en) * 2020-03-12 2020-06-16 南京酷朗电子有限公司 User data input method for public information platform data input
US11693540B1 (en) * 2021-03-26 2023-07-04 Amazon Technologies, Inc. Technique to emphasize store branding in the multi-store app
US11689696B2 (en) * 2021-03-30 2023-06-27 Snap Inc. Configuring participant video feeds within a virtual conferencing system
US11853981B2 (en) * 2021-09-02 2023-12-26 Shopify Inc. Systems and methods for e-commerce checkout with delay loading of checkout options
KR102395740B1 (en) * 2021-09-16 2022-05-10 쿠팡 주식회사 Electronic apparatus for providing information of item and method thereof
CN114968450A (en) * 2022-04-12 2022-08-30 北京高德云信科技有限公司 Information service method and device and electronic equipment
CN117579382B (en) * 2024-01-15 2024-03-15 贵州省林业科学研究院 Intelligent real-time sharing method for ecological monitoring station data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174286A1 (en) * 2005-05-17 2007-07-26 Yahoo!, Inc. Systems and methods for providing features and user interface in network browsing applications
US20110264681A1 (en) * 2010-04-26 2011-10-27 Salesforce.Com, Inc. Method and system for performing searches in a multi-tenant database environment
US8055638B2 (en) * 2008-12-11 2011-11-08 Microsoft Corporation Providing recent history with search results
US20130074014A1 (en) * 2011-09-20 2013-03-21 Google Inc. Collaborative gesture-based input language
US20140123022A1 (en) * 2012-10-26 2014-05-01 Verizon Patent And Licensing, Inc. Dynamic application arranger
US20140279749A1 (en) * 2013-03-15 2014-09-18 Salesforce.Com, Inc. Mechanism for facilitating improved searching

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2870911B2 (en) 1988-05-27 1999-03-17 コダック・リミテッド Document folder icons for displays in data processing systems
US5060135A (en) 1988-09-16 1991-10-22 Wang Laboratories, Inc. Apparatus for manipulating documents in a data processing system utilizing reduced images of sheets of information which are movable
JPH0520044A (en) 1991-07-15 1993-01-29 Personal Joho Kankyo Kyokai User interface device
US5838326A (en) 1996-09-26 1998-11-17 Xerox Corporation System for moving document objects in a 3-D workspace
US6924827B1 (en) 1998-12-28 2005-08-02 Alogic S.A. Method and system for allowing a user to perform electronic data gathering using foldable windows
US6321209B1 (en) 1999-02-18 2001-11-20 Wired Solutions, Llc System and method for providing a dynamic advertising content window within a window based content manifestation environment provided in a browser
FR2803929B1 (en) * 1999-12-30 2004-09-17 Ferid Allani METHOD AND DEVICE FOR ACCESSING SOURCES OF INFORMATION AND SERVICES ON THE WEB
JP2003521061A (en) 2000-01-25 2003-07-08 オートデスク,インコーポレイテッド Method and apparatus for providing and processing access to architectural drawings on the internet
US6678685B2 (en) 2000-01-26 2004-01-13 Familytime.Com, Inc. Integrated household management system and method
US7962414B1 (en) 2000-05-11 2011-06-14 Thomson Licensing Method and system for controlling and auditing content/service systems
US7036082B1 (en) 2000-09-21 2006-04-25 Nortel Networks Limited Controlling communications through a virtual reality environment
JPWO2002056217A1 (en) 2000-12-27 2004-05-20 富士通株式会社 Shopping system
US20040027383A1 (en) 2001-02-15 2004-02-12 Denny Jaeger Method for agglomerating onscreen objects
US20020147660A1 (en) 2001-04-10 2002-10-10 Bernadette Indence Scheduling, tracking, and synchronization of events with personal portable computers using bar code data input
US20030023594A1 (en) 2001-07-25 2003-01-30 Ramamurthi Ram K. System and method for organizing, preserving, sharing and updating voluminous personal memoirs and for dynamic accounting of assets
US7356490B1 (en) 2001-08-20 2008-04-08 Amazon.Com, Inc. Services for increasing the utility of electronic wish lists
JP2003108846A (en) 2001-09-28 2003-04-11 Fujitsu Ltd Sales promotion method, and sales promotion device
US20030074278A1 (en) 2001-10-11 2003-04-17 International Business Machines Corporation Apparatus and method of effectuating real-time price calculations based on user preferences
US20030126461A1 (en) 2001-12-28 2003-07-03 John Barker Audio/visual URL icon
US7580863B2 (en) 2002-07-25 2009-08-25 International Business Machines Corporation Method, system, and computer program product for operating a publicly accessible purchasing system
US7570943B2 (en) 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
US8700504B2 (en) * 2002-12-30 2014-04-15 Exactor, Inc. Integrated e-commerce sales and use tax exchange system and method
US20040143650A1 (en) 2003-01-10 2004-07-22 Michael Wollowitz Method and system for transmission of computer files
JP4225085B2 (en) * 2003-03-12 2009-02-18 カシオ計算機株式会社 Online sales management device and program
US20040179430A1 (en) 2003-03-13 2004-09-16 Reuben Bahar Pill dispensing reminder capable of communicating with a remotely situated computer
US20040267593A1 (en) 2003-06-11 2004-12-30 Sammons Barbara N. Systems and methods for managing litigation and other matters
GB0322877D0 (en) 2003-09-30 2003-10-29 British Telecomm Search system and method
US7614004B2 (en) 2003-12-15 2009-11-03 Microsoft Corporation Intelligent forward resource navigation
GB2418504A (en) * 2004-09-28 2006-03-29 Robert Kaplan Accessing data online utilising a code and associated graphic device
US20060122916A1 (en) 2004-10-19 2006-06-08 Peter Kassan System and method for dynamic e-commerce shopping icons
US7640507B2 (en) 2005-02-28 2009-12-29 At&T Intellectual Property I, L.P. Methods, systems, and products for calendaring applications
US20060259867A1 (en) 2005-05-13 2006-11-16 Microsoft Corporation System and method for automatic generation of browsing favorites
US7996391B2 (en) 2005-06-20 2011-08-09 Google Inc. Systems and methods for providing search results
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
WO2007033354A2 (en) 2005-09-13 2007-03-22 Spacetime3D, Inc. System and method for providing three-dimensional graphical user interface
US7877295B2 (en) 2005-11-23 2011-01-25 Ebay Inc. System and method for transaction automation
US20070174777A1 (en) 2006-01-26 2007-07-26 William Derek Finley Three dimensional graphical user interface representative of a physical work space
US20070260591A1 (en) 2006-04-28 2007-11-08 Ahi Michele E System and method of providing integrated calendaring and concierge services
US10503342B2 (en) 2006-08-04 2019-12-10 Apple Inc. User interface spaces
US8726195B2 (en) 2006-09-05 2014-05-13 Aol Inc. Enabling an IM user to navigate a virtual world
CN101231722B (en) * 2007-01-22 2014-09-17 阿里巴巴集团控股有限公司 System and method of network payment
GB0703974D0 (en) 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
CN101136094A (en) * 2007-09-29 2008-03-05 腾讯科技(深圳)有限公司 Electronic commerce trade method and system
JP5042787B2 (en) 2007-11-20 2012-10-03 富士フイルム株式会社 Product search system, product search method and product search program
US20090158173A1 (en) 2007-12-17 2009-06-18 Palahnuk Samuel Louis Communications system with dynamic calendar
US8612880B2 (en) 2008-03-07 2013-12-17 Inware, Llc System and method for document management
US7912852B1 (en) 2008-05-02 2011-03-22 Amazon Technologies, Inc. Search-caching and threshold alerting for commerce sites
US8438148B1 (en) 2008-09-01 2013-05-07 Google Inc. Method and system for generating search shortcuts and inline auto-complete entries
CN101770339B (en) * 2009-01-05 2012-12-19 深圳富泰宏精密工业有限公司 System and method for tracking and recording according to user behavior
US8161398B2 (en) 2009-05-08 2012-04-17 International Business Machines Corporation Assistive group setting management in a virtual world
US8407613B2 (en) 2009-07-13 2013-03-26 Apple Inc. Directory management on a portable multifunction device
US8326859B2 (en) 2009-11-02 2012-12-04 Microsoft Corporation Task prediction
US20110239117A1 (en) 2010-03-25 2011-09-29 Microsoft Corporation Natural User Interaction in Shared Resource Computing Environment
US8423911B2 (en) 2010-04-07 2013-04-16 Apple Inc. Device, method, and graphical user interface for managing folders
US8416066B2 (en) 2010-04-29 2013-04-09 Microsoft Corporation Active vibrations
JP2011238129A (en) * 2010-05-12 2011-11-24 Sony Corp Terminal device, electronic apparatus, method for allocating access key, and program
WO2011146276A2 (en) 2010-05-19 2011-11-24 Google Inc. Television related searching
WO2012009100A1 (en) 2010-07-16 2012-01-19 Kalu Onuka Kalu Mobile wireless communications device with search shortcut and related methods
CN101901111B (en) * 2010-07-30 2014-08-20 中兴通讯股份有限公司 Method and device for realizing automatic operation on mobile terminal
US20120078731A1 (en) * 2010-09-24 2012-03-29 Richard Linevsky System and Method of Browsing Electronic Catalogs from Multiple Merchants
JP5195881B2 (en) 2010-11-30 2013-05-15 コニカミノルタビジネステクノロジーズ株式会社 Document browsing device, display method in document browsing device, and display program
CN102109995A (en) * 2010-12-28 2011-06-29 青岛海信宽带多媒体技术有限公司 Method and device for generating shortcut key
TWI546700B (en) 2011-01-13 2016-08-21 宏達國際電子股份有限公司 Portable electronic device, and control method and computer program product of the same
CN102087583A (en) * 2011-01-30 2011-06-08 深圳市乐通天下科技有限公司 Webpage operation method
JP5669102B2 (en) 2011-03-30 2015-02-12 株式会社Nttドコモ Shortcut providing apparatus, communication system, shortcut providing method, and program
US20130249947A1 (en) 2011-08-26 2013-09-26 Reincloud Corporation Communication using augmented reality
KR101934998B1 (en) * 2011-10-04 2019-01-04 삼성전자주식회사 Method and system for providing user interface to a plurality of applications
US20130204862A1 (en) 2012-02-03 2013-08-08 Volunia Italia S.R.L. Internet searching and social interaction techniques
US20130211938A1 (en) 2012-02-14 2013-08-15 Microsoft Corporation Retail kiosks with multi-modal interactive surface
EP2815551B1 (en) 2012-02-14 2020-01-15 Intel Corporation Peer to peer networking and sharing systems and methods
US9552597B2 (en) * 2012-02-17 2017-01-24 Ebay Inc. Electronic commerce file system
US9311417B2 (en) 2012-03-09 2016-04-12 Oracle International Corporation Personalized navigation shortcuts
US20150161717A1 (en) 2012-12-18 2015-06-11 Shoplogiq Sweden Ab Object selection and presentation of object-related data in one consistent page view
KR102141155B1 (en) 2013-04-22 2020-08-04 삼성전자주식회사 Mobile apparatus providing with changed-shortcut icon responding to status of mobile apparatus and control method thereof
US9483565B2 (en) 2013-06-27 2016-11-01 Google Inc. Associating a task with a user based on user selection of a query suggestion
JP2015053642A (en) * 2013-09-09 2015-03-19 三星電子株式会社Samsung Electronics Co.,Ltd. Information system, remote controller, and information providing device
CN105874417A (en) 2013-12-27 2016-08-17 宇龙计算机通信科技(深圳)有限公司 Cross-interface data transfer method and terminal
US9549028B2 (en) 2014-02-18 2017-01-17 Ebay Inc. Systems and methods for automatically saving a state of a communication session
US20150332230A1 (en) * 2014-05-15 2015-11-19 Ebay Inc. Selection of merchant and device specific payment flow
US9754284B2 (en) 2014-05-22 2017-09-05 Excalibur Ip, Llc System and method for event triggered search results
US20150356643A1 (en) * 2014-06-04 2015-12-10 VendOp, LLC Dual-Identity Review System
CN104077684A (en) * 2014-06-09 2014-10-01 中国建设银行股份有限公司 Online payment method and device
US9612732B2 (en) 2014-11-13 2017-04-04 Microsoft Technology Licensing, Llc Content transfer to non-running targets
CN104503668A (en) * 2014-12-02 2015-04-08 东莞宇龙通信科技有限公司 Method, system and terminal for generating menu shortcuts
US11170451B2 (en) 2015-10-02 2021-11-09 Not So Forgetful, LLC Apparatus and method for providing gift recommendations and social engagement reminders, storing personal information, and facilitating gift and social engagement recommendations for calendar-based social engagements through an interconnected social network
WO2017059129A1 (en) 2015-10-02 2017-04-06 United States Postal Service System and method for generating and implementing a household customer database
US20170098256A1 (en) 2015-10-06 2017-04-06 Robert A. Long System and method for conveying entertainment or social events
GB201523166D0 (en) 2015-12-31 2016-02-17 Jones Maria F Direct integration system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174286A1 (en) * 2005-05-17 2007-07-26 Yahoo!, Inc. Systems and methods for providing features and user interface in network browsing applications
US8055638B2 (en) * 2008-12-11 2011-11-08 Microsoft Corporation Providing recent history with search results
US20110264681A1 (en) * 2010-04-26 2011-10-27 Salesforce.Com, Inc. Method and system for performing searches in a multi-tenant database environment
US20130074014A1 (en) * 2011-09-20 2013-03-21 Google Inc. Collaborative gesture-based input language
US20140123022A1 (en) * 2012-10-26 2014-05-01 Verizon Patent And Licensing, Inc. Dynamic application arranger
US20140279749A1 (en) * 2013-03-15 2014-09-18 Salesforce.Com, Inc. Mechanism for facilitating improved searching

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599450B2 (en) 2015-12-31 2020-03-24 Maria Francisca Jones Electronic transaction method and apparatus
US10922103B2 (en) 2015-12-31 2021-02-16 Maria Francisca Jones Electronic transaction method and apparatus
JP2020201803A (en) * 2019-06-12 2020-12-17 カシオ計算機株式会社 Display control unit and program
JP7302314B2 (en) 2019-06-12 2023-07-04 カシオ計算機株式会社 Display controller and program
WO2022245738A1 (en) * 2021-05-19 2022-11-24 Snap Inc. Combining functions into shortcuts within messaging system
US11831592B2 (en) 2021-05-19 2023-11-28 Snap Inc. Combining individual functions into shortcuts within a messaging system
US20240045782A1 (en) * 2022-08-08 2024-02-08 Qualcomm Incorporated Suggesting a New and Easier System Function by Detecting User's Action Sequences

Also Published As

Publication number Publication date
GB201523166D0 (en) 2016-02-17
US10922103B2 (en) 2021-02-16
JP2019505935A (en) 2019-02-28
DE202016008646U1 (en) 2018-10-22
EP3398124A1 (en) 2018-11-07
KR20180100343A (en) 2018-09-10
SG11201805581WA (en) 2018-07-30
BR112018013425A2 (en) 2018-12-04
WO2017115093A1 (en) 2017-07-06
US20210081223A1 (en) 2021-03-18
US20190258495A1 (en) 2019-08-22
CN108701042A (en) 2018-10-23
ZA201804421B (en) 2019-09-25
AU2016383127A1 (en) 2018-07-05
BR112018013420A2 (en) 2018-12-11
WO2017115090A1 (en) 2017-07-06
AU2022259768A1 (en) 2022-12-01
CA3009877A1 (en) 2017-07-06
US20170193123A1 (en) 2017-07-06
US10599450B2 (en) 2020-03-24
AU2016383124A1 (en) 2018-07-05
CN108713207A (en) 2018-10-26
EP3398125A1 (en) 2018-11-07
US20200150984A1 (en) 2020-05-14
JP7171438B2 (en) 2022-11-15
JP6838077B2 (en) 2021-03-03
CA3009892A1 (en) 2017-07-06
JP2019508822A (en) 2019-03-28
KR20180099813A (en) 2018-09-05
US20170193507A1 (en) 2017-07-06
SG11201805520UA (en) 2018-07-30
SG10202000292YA (en) 2020-03-30
ZA201804422B (en) 2019-09-25

Similar Documents

Publication Publication Date Title
US20170192798A1 (en) User interface method and apparatus
US11080350B2 (en) Method for searching and device thereof
US11163935B2 (en) Intelligent navigation via a transient user interface control
US9852227B2 (en) Control for persistent search results and iterative searching
US10936568B2 (en) Moving nodes in a tree structure
US11734370B2 (en) Method for searching and device thereof
KR20160023412A (en) Method for display screen in electronic device and the device thereof
US20150356105A1 (en) Techniques for processing digital assets for editing in a digital asset editing computer program
US10572497B2 (en) Parsing and executing commands on a user interface running two applications simultaneously for selecting an object in a first application and then executing an action in a second application to manipulate the selected object in the first application
US20200089687A1 (en) Collaborative search of databases
US20180300029A1 (en) Smart Bookmarks For Viewing Content
US10417288B2 (en) Search of web page metadata using a find function
US20150058774A1 (en) Gesture-based visualization of financial data
US20230214093A1 (en) Paging content for user interface display

Legal Events

Date Code Title Description
AS Assignment

Owner name: JONES, MARIA FRANCISCA, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JONES, ALEXANDER;REEL/FRAME:040911/0232

Effective date: 20170105

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION