Many types of application programs provide notifications to users. Typically, the notifications are simple notifications that inform the user of an event that has happened or will happen in the future. For example, a calendar program provides notifications of upcoming meetings or appointments. However, if a user wants to modify the meeting proposal by including another attendee, by attaching an attachment, or by changing the time of the meeting, the user must launch the calendar program to perform the modification.
It is with respect to these and other general considerations that embodiments have been described. Also, although relatively specific problems have been discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background.
Embodiments disclosed herein provide one or more interactive notification panels to a user. A bot apparatus receives a notification from an application program and transforms the notification into one or more interactive notification panels configured to receive user inputs and/or to provide an output to at least one user input. The notification produced by the application program may be a non-interactive notification panel or an indication (e.g., signal, data) that the application program intends to provide a notification panel to a user. Based on at least one user input, the bot apparatus transmits data to the application program, which causes the application program to perform one or more actions.
In a first aspect, a system includes one or more processing units and one or more storage devices. The storage device(s) store instructions that when executed by the one or more processing units, cause the system to perform a method. The method includes receiving, by a bot apparatus, a notification from an application program and transforming, by the bot apparatus, the notification into an interactive notification panel. The interactive notification panel is configured to receive one or more user inputs and provide one or more outputs. Based on at least one received user input, the bot apparatus transmits data to the application program.
In another aspect, a method includes receiving, by a bot apparatus, a notification from an application program and transforming, by the bot apparatus, the notification into a first interactive notification panel that is configured to receive a user input. The bot apparatus provides the first interactive notification panel to a client-computing device. Based on a received user input, a conversation is conducted using one or more additional interactive notification panels, where each of the one or more additional interactive notification panels is configured to provide an output or receive another user input. Based on at least one user input, the bot apparatus transmits data to the application program based on at least one user input.
In yet another aspect, a method includes receiving, by a bot apparatus, a notification from an application program and transforming, by the bot apparatus, the notification into an interactive notification panel. The bot apparatus provides the interactive notification panel to a client-computing device to present the interactive notification panel to a user via an output device. Based on the presentation of the interactive notification panel, a conversation is conducted between the user and the bot apparatus using the interactive notification panel. Based on the conversation, the bot apparatus transmits data to the application program.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Non-limiting and non-exhaustive examples are described with reference to the following Figures. The elements of the drawings are not necessarily to scale relative to each other. Identical reference numerals have been used, where possible, to designate identical features that are common to the figures.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. Embodiments may be practiced as methods, systems or devices. Accordingly, embodiments may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and their equivalents.
Embodiments described herein provide one or more interactive notification panels to a user via a client-computing device. A bot apparatus receives a notification from an application program and transforms the notification into one or more interactive notification panels configured to receive user inputs and/or to provide an output to at least one user input. The notification produced by the application program can be a non-interactive notification panel or an indication (e.g., one or more signals, data) that the application program intends to provide a notification panel to a user. Based on at least one user input, the bot apparatus transmits data to the application program, which causes the application program to perform one or more actions.
The interactive notification panel(s) allows the user and the bot apparatus to conduct a conversation using the interactive notification panel(s). The user is not required to launch or interact with the application program. In some instances, interacting with the interactive notification panel(s) makes it easier for the user to modify data or perform an action that is associated with the application program. The operations of the bot apparatus extend the functionality of a notification panel, which in turn increases user efficiency. Additionally or alternatively, extending the functionality of the notification panel improves the user experience with a computing device.
The term “apparatus” is intended to be construed broadly to include hardware (e.g., electronic circuits, electronic components, processing units, etc.), software that is executable by a processing unit or computing device, and combinations thereof. For example, in some embodiments, an “apparatus” includes one or more computer-executable programs that is stored on one or more storage devices and executed by one or more computing devices. Each computing device can be, for example, a client-computing device or a server-computing device.
The client-computing device 110 is configured to access one or more server-computing devices (represented by server-computing device 125) through one or more networks (represented by network 130). The network 130 is illustrative of any suitable type of network, for example, an intranet and/or a distributed computing network (e.g., the Internet) over which the user 105 may communicate with other users and with other computing systems.
An application program (APP) 135 is stored on one or more storage devices (represented by storage device 140) and executed by the server-computing device 125. The user 105 can interact with the application program 135 through the client-computing device 110. The application program 135 provides, through the network 130, one or more notifications (e.g., a notification panel) to the client-computing device 110. Based on a received notification panel, the client-computing device 110 can provide the notification panel to any suitable output device 145 for presentation to the user 105. The output device 145 may be in, or connected to, the client-computing device 110. In non-limiting examples, the output device 145 is a display that displays the notification panel and/or a speaker that “speaks” the notification panel (e.g., using a text-to-speech application (TTS) 120).
A bot apparatus 150 is stored on the storage device 140 and executed by the server-computing device 125. In one non-limiting embodiment, the bot apparatus 150 performs a specific task, such as an automated or repetitive task. In another non-limiting embodiment, the bot apparatus 150 is an intelligent personal or virtual assistant, such as Cortana® by Microsoft Corporation. In the embodiments described herein, the bot apparatus 150 receives the notification panels from the application program 135 and interacts with the user 105 through one or more interactive notification panels that is based on the notification panel from the application program 135. The bot apparatus 150 transforms the original notification panel into an interactive notification panel that receives inputs from the user 105, provides outputs to the user 105, and causes the application program 135 to perform one or more actions based on at least one received input from the user 105.
In one or more embodiments, the client-computing device 110 is a personal or handheld computing device. For example, the client-computing device 110 may be one of: a mobile telephone; a smart phone; a tablet; a phablet; a smart watch; a wearable computer; a personal computer; a desktop computer; a laptop computer; a gaming device/computer (e.g., Xbox); a television; and the like. This list of example client-computing devices is for example purposes only and should not be considered as limiting. Any suitable client-computing device that interfaces with a bot apparatus may be utilized.
As should be appreciated,
In some embodiments, the bot apparatus 205 receives a notification from the application program 215 and responsively provides one or more interactive notification panels to the computing device 210. The notification can be a notification panel or an indication (e.g., one or more signals, data) that the application program intends to provide a notification panel to a user. If the notification is an indication, the bot apparatus produces one or more interactive notification panels. If the notification is a notification panel, the bot apparatus 205 adjusts or modifies the original notification panel to produce the interactive notification panel(s) that permits one or more user inputs to be received regarding the subject matter of the original notification panel. In some embodiments, the bot apparatus 205 transforms the original notification panel and produces one or more separate interactive notification panels when interacting with a user.
The user inputs may be received via the interactive notification panel(s). Additionally, at least one of the interactive notification panels provide one or more outputs from a bot apparatus via an interactive notification panel.
In one embodiment, the one or more interactive notification panels can be a single interactive notification panel that the bot apparatus 205 revises based on the user inputs and outputs. In another embodiment, at least one of the interactive notification panels is a separate interactive notification panel that the bot apparatus 205 produces based on a user input or an output.
Each user input can be any suitable type of a user input. For example, the user input can be a text input, a spoken (audio) input, a touch input, a gesture input, a motion input (e.g., motion of the computing device), a motion-tracking input, and the like. The interactive notification panel can be modified by the bot apparatus 205 to include one or more dialog boxes, text boxes, check boxes, buttons, popup calendar, date, and/or time pickers, pull-down or drop-down menus, graphics or images, scroll menus, forms, and other types of input elements or graphical control elements. In some embodiments, the interactive notification panel is modified to provide an output to a computing device (e.g., client-computing device 110 in
Next, as shown in blocks 310 and 315, a client-computing device receives the interactive notification panel and presents the interactive notification panel to the user. The user and the interactive notification panel or panels then conduct a conversation at block 320. In general, a conversation includes one or more user inputs and one or more outputs. For example, in one embodiment, the conversation is a dialogue between a machine (e.g., the client-computing device) and the user. The dialogue typically relies on turn-taking behavior. One party (e.g., the user) submits a user input (e.g., a first turn) and the machine provides an output (e.g., a second turn). This turn-taking behavior continues until the end of the dialogue.
In another example, the conversation can comprise one or more user inputs followed by one or more outputs. For example, in response to a single user input, a bot apparatus may provide two or more outputs in one or more interactive notification panels. In a non-limiting embodiment, the two or more outputs can include one interactive notification panel and a non-interactive notification panel (e.g., non-interactive notification panel provides instructions, a warning, an image).
Based on at least one user input in the conversation, the bot apparatus transmits data to the application program that causes the application program to perform one or more actions (block 325). For example, if the application program is a calendar program, the calendar program may change or delete an entry (e.g., a meeting or appointment) on the calendar based on the conversation between the bot apparatus and the user. As another example, if the application program is a social network application, the social network program can send a message to another user based on the conversation between the bot apparatus and the user.
Non-limiting examples of interactive notification panels are now described. The example interactive notification panels relate to a restaurant ordering program (
Next, as shown in
The first, second, and third user inputs and the first, second, third, and fourth outputs collectively form a conversation between the user and a client-computing device (e.g., client-computing device 110 in
The interactive notification panel 515 provides a first output 520 that confirms the football game on channel 2 will be recorded. The interactive notification panel 515 also provides a drop-down menu 525 that allows the user to select which receiver is to record the football game. For example, a user that has a first receiver in the living room and a second receiver in the bedroom can select the first receiver to record the football game using the drop-down menu 525.
In addition to the drop-down menu 525, the interactive notification panel 515 presents a dialog box 530 that allows the user to indicate a priority for the recording. In the illustrated embodiment, the user has indicated the football game has the highest priority. If there is a conflict between recording the football game and recording another show that is broadcast at the same time, the football game will be recorded because it has been given the highest priority by the user.
During or after the illustrated conversation, the bot apparatus can transmit data (e.g., the order to record the football game, the selected receiver, and the priority) to the cable television application. Based on the received data, the cable television application will perform one or more actions. For example, one action schedules the football game to be recorded, another action identifies which receiver is to record the football game, a third action sets the priority for the football game recording, and a fourth action records the football game on the selected receiver when the football game is broadcast by the cable television company.
A fourth user input 645 is submitted by the user in the separate interactive notification panel 640 (see
In
In this representative embodiment, the bot apparatus transmits data (e.g., the request for the appointment, the request for available appointments, and the selected appointment) to the online scheduling application during the conversation. Based on the received data, the scheduling application will perform one or more actions. For example, one action is to schedule the appointment on David's calendar at the selected time on the requested date.
The various interactive notification panels illustrated in each of
In another non-limiting example, a bot apparatus can learn over time which client-computing devices a user uses to view particular interactive notification panels and send the interactive notification panels to those client-computing devices. In one embodiment, a bot apparatus may use machine learning algorithms and processes (e.g., one or more neural networks) to learn or predict which client-computing device a user will use to view interactive notification panels associated with an application program. For example, a user may view interactive notification panels associated with a calendar program on a desktop computing device at work and view interactive notification panels associated with a restaurant ordering program on a mobile computing-device (e.g., a smart phone). In this example, the bot apparatus may identify the desktop computing device as a preferred client-computing device for the interactive notification panels associated with the calendar program and the mobile computing device as a preferred client-computing device for the interactive notification panels associated with the restaurant ordering program.
Returning to
In a basic configuration, the electronic device 800 may include at least one processing unit 805 and a system memory 810. Depending on the configuration and type of the electronic device, the system memory 810 may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. The system memory 810 may include a number of program modules and data files, such as an operating system 815, one or more program modules 820 suitable for parsing received input, determining subject matter of received input, determining actions associated with the input and so on, one or more bot apparatuses 825, and one or more optional applications 830 that interact with at least one of the one or more bot apparatuses 825. While executing on the processing unit 805, each bot apparatus 825 may perform and/or cause to be performed processes including, but not limited to, the aspects as described herein.
The operating system 815, for example, may be suitable for controlling the operation of the electronic device 800. Furthermore, embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in
The electronic device 800 may have additional features or functionality. For example, the electronic device 800 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
The electronic device 800 may also have one or more input device(s) 850 such as a keyboard, a trackpad, a mouse, a pen, a sound or voice input device, a touch, force and/or swipe input device, etc. The output device(s) 855 such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The electronic device 800 may include one or more communication devices 860 allowing communications with other electronic devices 865. In some instances, the communications with other electronic devices can permit one or more bot apparatuses 825 to interface with an application program that is executing on at least one of the other electronic devices 865. Examples of suitable communication devices 860 include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry, a universal serial bus (USB), and/or parallel and/or serial ports.
The term computer-readable media or storage device as used herein may include computer storage media or devices. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules.
The system memory 810, the removable storage device 840, and the non-removable storage device 845 are all computer storage media examples (e.g., memory storage or storage devices). Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture which can be used to store information and which can be accessed by the electronic device 800. Any such computer storage media may be part of the electronic device 800. Computer storage media does not solely include a carrier wave or other propagated or modulated data signal.
Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
Furthermore, embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
When operating via an SOC, the functionality described herein may be operated via application-specific logic integrated with other components of the electronic device 800 on the single integrated circuit (chip). Embodiments of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the disclosure may be practiced within a general purpose computer or in any other circuits or systems.
In a basic configuration, the mobile electronic device 900 is a handheld computer having both input elements and output elements. The mobile electronic device 900 typically includes a display 905 and one or more input buttons 910 that allow the user to enter information into the mobile electronic device 900. The display 905 of the mobile electronic device 900 may also function as an input device (e.g., a display that accepts touch and/or force input).
If included, an optional side input element 915 allows further user input. The side input element 915 may be a rotary switch, a button, or any other type of manual input element. In alternative aspects, mobile electronic device 900 may incorporate more or less input elements. For example, the display 905 may not be a touch screen in some embodiments. In yet another alternative embodiment, the mobile electronic device 900 is a portable phone system, such as a cellular phone. The mobile electronic device 900 may also include an optional keypad 920. Optional keypad 920 may be a physical keypad or a “soft” keypad generated on the touch screen display.
In various embodiments, the output elements include the display 905 for showing a graphical user interface (GUI) and a set of available templates, a visual indicator 925 (e.g., a light emitting diode), and/or an audio transducer 930 (e.g., a speaker). In some aspects, the mobile electronic device 900 incorporates a vibration transducer for providing the user with tactile feedback. In yet another aspect, the mobile electronic device 900 incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.
One or more application programs 940 may be loaded into the memory 945 and run on or in association with the operating system 950. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth.
The system 935 also includes a non-volatile storage area 955 within the memory 945. The non-volatile storage area 955 may be used to store persistent information that should not be lost if the system 935 is powered down.
The application programs 940 may use and store information in the non-volatile storage area 955, such as electronic communications, calendars, images, audio, video, documents, and the like. A synchronization application (not shown) also resides on the system 935 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 955 synchronized with corresponding information stored at the host computer.
The system 935 has a power supply 960, which may be implemented as one or more batteries. The power supply 960 may further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
The system 935 may also include a radio interface layer 965 that performs the function of transmitting and receiving radio frequency communications. The radio interface layer 965 facilitates wireless connectivity between the system 935 and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio interface layer 965 are conducted under control of the operating system 950. In other words, communications received by the radio interface layer 965 may be disseminated to the application programs 940 via the operating system 950, and vice versa.
The visual indicator 925 may be used to provide visual notifications, and/or an audio interface 970 may be used for producing audible notifications via an audio transducer (e.g., audio transducer 930 illustrated in
The audio interface 970 is used to provide audible signals to and receive audible signals from the user (e.g., voice input such as described above). For example, in addition to being coupled to the audio transducer 930, the audio interface 970 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present disclosure, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below.
The system 935 may further include a video interface 980 that enables an operation of peripheral device 985 (e.g., on-board camera) to record still images, video stream, and the like.
A mobile electronic device 900 implementing the system 935 may have additional features or functionality. For example, the mobile electronic device 900 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
The general computing device 1005, the tablet computing device 1010, and the mobile computing device 1015 are each configured to access one or more networks (represented by network 1020) to interact with one or more bot apparatuses and/or one or more applications or programs stored on one or more storage devices (represented by storage device 1025) and executed on one or more server-computing devices (represented by server-computing device 1030).
In some aspects, the server-computing device 1030 can access, transmit, and/or receive various types of data from other sources, such as a web portal 1035, mailbox services 1040, a directory service 1045, instant messaging services 1050, and/or social networking services 1055. The web portal 1035, the mailbox services 1040, the directory service 1045, the instant messaging services 1050, and/or the social networking services 1055 can interface with one or more bot apparatuses to produce interactive notification panels. In some instances, these sources may provide robust reporting, analytics, data compilation and/or storage service, etc., whereas other services may provide search engines or other access to data and information, images, videos, document processing and the like.
As should be appreciated,
Aspects of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to aspects of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
The description and illustration of one or more aspects provided in this application are not intended to limit or restrict the scope of the disclosure as claimed in any way. The aspects, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode of claimed disclosure. The claimed disclosure should not be construed as being limited to any aspect, example, or detail provided in this application. Regardless of whether shown and described in combination or separately, the various features (both structural and methodological) are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate aspects falling within the spirit of the broader aspects of the general inventive concept embodied in this application that do not depart from the broader scope of the claimed disclosure.
This application is a continuation of and claims priority to U.S. patent application Ser. No. 17/373,212, filed Jul. 12, 2021, which is a continuation of and claims priority to U.S. patent application Ser. No. 16/733,032 (now U.S. Pat. No. 11,089,125), filed Jan. 2, 2020, which is a continuation of and claims priority to U.S. patent application Ser. No. 15/710,746 (now U.S. Pat. No. 10,530,879), filed Sep. 20, 2017, the contents of which are incorporated herein by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | 17373212 | Jul 2021 | US |
Child | 18513455 | US | |
Parent | 16733032 | Jan 2020 | US |
Child | 17373212 | US | |
Parent | 15710746 | Sep 2017 | US |
Child | 16733032 | US |