Current scheduling and/or collaboration solutions do not adequately address the various complexities of organizing and running meetings effectively. Some of the complexities include, for example, finding a meeting location, providing notifications related to the meeting, and introducing and providing status of attendees. In addition, current scheduling and/or collaboration solutions do not adequately handle operational aspects of meetings, such as note-taking, changes of time and venue, sharing of information, and keeping track of tasks.
Some scheduling solutions can be configured to provide notifications to an end-user of an upcoming meeting or other event, such as a meeting with co-workers, a doctor's appointment, a television show, etc. For example, a mobile computing device (also referred to herein as “mobile device”), such as a smart phone, can be configured to communicate with a calendar service to retrieve calendaring information and provide visual and/or audible notifications of upcoming events. However, if the mobile device is in the user's pocket or purse, for example, a visual notification will not be noticed. An audible notification can similarly be ineffective if the mobile device has been configured in silent mode or the volume has been turned down to avoid disruption. In addition, mobile devices are frequently placed in silent or low volume mode because an audible notification can be an annoying and jarring distraction, particularly when the user is engaged in a meeting or conversation. Further distraction is caused if the user takes the device out of the pocket, purse, or other receptacle to silence the audible notification and/or look at a corresponding visual notification. Accordingly, instead of the scheduling solution being a useful aid to the user, as intended, it can instead become, at least in some respects, a distraction.
Moreover, a visual notification of an upcoming event will typically provide very limited information, such as an event time, location, subject and nothing more. Additional information, such as a list of meeting participants, may be available, but the user is typically required to navigate through various menu options to retrieve additional relevant information.
The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the claimed subject matter. It is intended to neither identify key or critical elements of the claimed subject matter nor delineate the scope of the subject innovation. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.
An embodiment provides a method for receiving and displaying contextually relevant information to a user. The method includes receiving automatically-updated contextually relevant information at a display device. The contextually relevant information includes information that is at least in part associated with the user. The method further includes displaying the contextually relevant information discreetly to the user.
Another embodiment provides a display device for receiving and displaying contextually relevant information to a user. The display device includes a display module, a processing unit, and a system memory. The system memory comprises code configured to direct the processing unit to receive contextually relevant information, and cause the contextually relevant information to be displayed on the display module discreetly. The contextually relevant information includes information that is automatically derived from at least a location of the user and schedule data associated with the user;
Another embodiment provides a method for displaying contextually relevant information to a user. The method includes accessing user account information to determine a time of a scheduled event in a calendar associated with the user and automatically generating reminder information based at least in part on the determined time of the scheduled event. The method further includes receiving the automatically-generated reminder information at a display device, and displaying the automatically-generated reminder information discreetly to the user on a bi-stable display.
This Summary is provided to introduce a selection of concepts in a simplified form; these concepts 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.
The claimed subject matter is described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject innovation. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the subject innovation.
As utilized herein, the terms “component,” “system,” “client” and the like are intended to refer to a computer-related entity, either hardware, software (e.g., in execution), and/or firmware, or a combination thereof. For example, a component can be a process running on a processor, an object, an executable, a program, a function, a library, a subroutine, and/or a computer or a combination of software and hardware.
By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and a component can be localized on one computer and/or distributed between two or more computers. The term “processor” is generally understood to refer to a hardware component, such as a processing unit of a computer system.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, or media.
Computer-readable storage media include storage devices (e.g., hard disk, floppy disk, and magnetic strips, among others), optical disks (e.g., compact disk (CD), and digital versatile disk (DVD), among others), smart cards, and flash memory devices (e.g., card, stick, and key drive, among others). In contrast, computer-readable media (i.e., not storage media) may additionally include communication media such as transmission media for communication signals and the like.
Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
An example embodiment provides a system comprising a virtual assistant service and a display device that facilitate discreetly displaying automatically-updated contextually relevant (AUCR) information (also referred to herein as contextually relevant information or automatically-generated reminder information) to a user at appropriate times throughout the day. The AUCR information includes information that is at least in part associated with the user. For example, the AUCR information may include a meeting reminder that is provided with a lead-time that accounts for the user's distance from the meeting location. Some other examples of AUCR information include a weather report that is displayed when the user wakes up, a traffic report displayed when the user typically leaves to/from work, and a map of a locale displayed when a user is navigating to a destination in the locale. (Additional examples of AUCR information are described in more detail below.) Accordingly, a user can be apprised of information relevant to the context in which the user is situated in a timely manner without significant disruption to on-going activities.
Contextually relevant information may include information related to: a) the user's temporal context (e.g., time of day, time relative to a scheduled event, and/or time relative to a predictable event), b) the user's spatial context (e.g., absolute location and/or location relative to another location), c) a current user activity or history of user activities and/or d) conditions of the user's environment (e.g., weather, traffic, etc.). The contextually relevant information to be displayed can be generated at a processor local to the user (e.g., a processor in a mobile device associated with the user) or can be generated remotely from the user and received at a device having a display that is local to the user. Thus, throughout a day, via whichever device is in proximity to a user, the user may receive AUCR information.
Information that is displayed discreetly to a user is displayed in a manner and/or a location that facilitates the user quickly and easily grasping the information without requiring any socially awkward action, such as pulling a mobile device out of a pocket or purse or manually adjusting a volume setting in advance or in reaction to an audible alert. Thus, discreetly displayed information takes a relatively small amount of the user's attention and facilitates the user fluidly glancing at the displayed information without substantially disrupting or diverting attention away from any other activities that are competing for the user's attention.
Section A describes an illustrative environment of use for providing functionality for receiving AUCR information from a virtual assistant service at a display device. Section B describes illustrative methods that explain the operation of the virtual assistant service and display device. Section C describes illustrative computing functionality that can be used to implement various aspects of the display device and virtual assistant service described in Sections A and B.
Given the above overview, the description will now advance to a more detailed description of the individual features depicted in
The environment 100 also includes a communication conduit 114 for allowing the computing devices 104 to interact with any remote entity (where a “remote entity” means an entity that is remote with respect to the user 102). For example, the communication conduit 114 may allow the user 102 to use one or more of the computing devices 104 to interact with another user who is using another one or more computing devices. In addition, the communication conduit 114 may allow the user 102 to interact with any remote services. Generally speaking, the communication conduit 114 can represent a local area network, a wide area network (e.g., the Internet), or any combination thereof. The communication conduit 114 can be governed by any protocol or combination of protocols.
More specifically, the communication conduit 114 can include wireless communication infrastructure 116 as part thereof. The wireless communication infrastructure 116 represents the functionality that enables the mobile device 104 to communicate with remote entities via wireless communication. The wireless communication infrastructure 116 can encompass any of cell towers, base stations, central switching stations, satellite functionality, short-range wireless networks, and so on. The communication conduit 114 can also include hardwired links, routers, gateway functionality, name servers, etc.
The environment 100 also includes one or more remote processing systems 118, which may be collectively referred to as a cloud. The remote processing systems 118 provide services to the users. In one case, each of the remote processing systems 118 can be implemented using one or more servers and associated data stores. For instance,
In one embodiment, the virtual assistant service 142 is an enterprise service or is capable of communicating with other enterprise services 120, the system store 122, and/or one or more of the computing devices 104 in operation. The virtual assistance service 142 may also be capable of communicating with other services and data stores available on the Internet via the communication conduit 114. Accordingly, the virtual assistant service 124 can access information associated with the user 102, e.g., from the system store 122, from the computing devices 104, and/or other sources, and can automatically infer items of information that are relevant to the current context of the user 102. The virtual assistant service 124 can also deliver the AUCR pieces of information to the user 102 via the communication conduit 114. A dedicated thin client may be implemented at each of the computing devices 104 to receive the AUCR information from the virtual assistant service 124 and display it. Moreover, in one embodiment, at least a portion of the virtual assistant service 124 is executed on one of the computing devices 104 (instead of being executed on a server that is part of the remote processing systems 118) and may use the communication conduit 114 to retrieve information from other services and data stores via the communication conduit 114. Thus, data from which the AUCR information is derived may be sensed remotely (e.g., by sensors in communication with the virtual assistant service 124), locally (e.g., by sensors on the computing device 104), or a combination of remotely and locally. In addition, the data may be processed to produce the AUCR information remotely (e.g., by the virtual assistant service 124 or other services in communication with the virtual assistant service 124), locally (e.g., by the computing device 104), or a combination of remotely and locally. The ensuing description will set forth illustrative functions that the virtual assistant service 124 can perform that are germane to the operation of the computing devices 104.
In one embodiment the display module 204 is a bi-stable display. A bi-stable display can often conserve power better than a conventional display. In another embodiment, the display module 204 is capable of changing between a bi-stable display mode (e.g., when the display device 202 is in an inactive or locked mode) and a conventional display mode (e.g., when the display device 202 is in an active or un-locked mode). In yet another embodiment, only a portion of the display module 204 has bi-stable properties and the bi-stable portion is used to display the AUCR information. A bi-stable display is particularly well-suited (but not limited) to displaying content that is relatively static (e.g., text and/or images) as opposed fast-changing content (e.g., video). Accordingly, the bi-stable display (or the bi-stable portion of the display module 204) may be used (or the bi-stable mode may be entered) to display AUCR information only when the information is of a relatively static type (e.g., images and text).
In one embodiment, the computing device 104 itself is a display device that includes the display module 204, which is capable of discreetly displaying information to the user 102. Accordingly, the computing device 104 may be a wearable article (e.g., a watch or glasses), a HUD, or the like, while also being capable of interfacing directly with the communication conduit 114 without the aid of another intermediary computing device.
As mentioned above, the virtual assistant service 124 is a service that is available to the user 102 via the computing device 104 and the communication conduit 114 to provide the user with AUCR information. The AUCR information may be pushed to one or more computing devices 104 immediately upon being generated. Alternatively, the AUCR information may be stored (e.g., in the system store 122) and pulled by one or more computing devices 104 at regular times or in response to a user request. Whether pushed or pulled, the display device may be said to receive the AUCR information from the virtual assistant service 124. Examples of AUCR information generated by the virtual assistance service 124 are described below with reference to
For example, based on a travel time estimate, the virtual assistant service 124 determines a reminder lead time with which to provide the reminder to the user 102. The travel time estimate may be determined, for example, using a navigation service accessible to the virtual assistant service 124. The virtual assistant service 124 may also take weather and/or traffic conditions into account when determining the travel time estimate. For example, if the weather is predicted to be ill-suited for walking outdoors, the virtual assistant service 124 may access and take into account a bus or shuttle schedule in determining the travel time estimate. The weather and shuttle schedule information may be accessible, e.g., from a web address at which such information is known to be available. Moreover, the reminder lead time may be increased or decreased in dependence on traffic conditions.
In one embodiment, the virtual assistant service 124 may determine that a shuttle will likely be needed due to weather, travel distance, and/or user preferences, and may cause the display device 202 to display appropriate shuttle pick-up time and location information. For example, the virtual assistant service 124 may determine that a shuttle is needed for the user to arrive at the destination on time and/or to avoid bad weather (if the route would otherwise be walkable) and may therefore automatically request a shuttle. Accordingly, the virtual assistant service 124 may access and provide to the user 102 AUCR information that includes shuttle information, such as a shuttle number, a pick-up location, and/or an estimated time of arrival. If a shuttle request is possible, the virtual assistant service 124 may also automatically request a shuttle. In one example embodiment, the virtual assistant service 124 determines that a shuttle is likely to be needed if the travel time estimate is greater by a predetermined threshold amount than a remaining amount of time before a start time of the upcoming event. In addition, when the travel distance is short enough for walking, the virtual assistant service 124 may access a weather report and, if the weather is bad or predicted to become bad, the virtual assistant service 124 may suggest or automatically request a shuttle and cause appropriate shuttle information to be displayed to the user 102.
In addition to the map and arrow of
In addition, in one embodiment, the virtual assistant service 124 automatically receives user location information on a continuous basis from the user's mobile device to facilitate regularly sending and displaying progressively more zoomed in maps as the user approaches the destination. As the user 102 enters the building at which the event is being held, the AUCR information may then be updated at the display device to include a map of the building interior with directions to a room in which the event is being held. The building map may also highlight the locations of various other places in the building, such as elevator banks, stairs, and/or restrooms. The virtual assistant service 124 may also access a list of event participants and/or one or more relevant documents and may send the participant list and/or documents to the display device 202 for display when the user is detected to be arriving or about to arrive at the event.
Alternatively, the initial reminder of the event may include an entire driving or walking route to be followed by the user. For example, if the travel distance is below a predetermined threshold, the entire route may be displayed at one time. Moreover, the device on which the AUCR information is displayed may be equipped to enable the user to zoom into or in other ways manipulate the view of the displayed route. Furthermore, once the user reaches the building, the virtual assistant service 124 may update the displayed information to include a building map, a list of event participants, and/or documents relevant to the event.
In one embodiment, the virtual assistant service 124 may determine an urgency level for the event reminder and may indicate an urgency level with a readily observable icon and/or a color scheme (e.g., red, yellow, green). The virtual assistant service 124 may cause the icon and/or color indication to be displayed after a map has already been displayed as an initial event reminder and the user appears to have missed or ignored it. The virtual assistant service 124 may determine that a user has likely missed a reminder by, for example, tracking the user's location. For example, the virtual assistant service 124 may determine that the user has missed the reminder if the user's location has not changed substantially within a predetermined window of time after the initial reminder.
In one embodiment, the virtual assistant service 124 sends AUCR information that includes an at least partially predefined message and a prompt to the user to approve transmission of the at least partially predefined message. For example, the virtual assistant service 124 may determine if a user is running late to an event based on a travel time estimate, the current time, and the event start time. If the user is determined to be running late, the virtual assistant service 124 can additionally estimate an amount of time by which the user is running late (e.g., by finding the difference between a current travel time estimate and the window of time remaining between the current time and the event start time) and can automatically compose a running late message with the running late amount of time. The virtual assistant service 124 can cause the running late message to be displayed to the user with a prompt for the user to quickly approve and send the message to one or more event participants, which are known to the virtual assistant service 124.
In addition to meeting reminders, the AUCR information may include information that is inferred from the user's routine activities and/or interests.
A coffee break is one example of an inferred event. Another example of an inferred event is a lunch break. For example, when the user typically goes to lunch, the virtual assistant service 124 may cause the display device 202 to display a lunch menu and/or a camera feed that depicts a lunch line. Similarly, when a user typically leaves to or from work, the virtual assistant service 124 may cause the display device 202 to display traffic conditions at one or more points on the route to be travelled. In one embodiment, the virtual assistant service 124 may cause the display device 202 to display a weather report when the user wakes up and/or display a website that a user is tracking, such as a sports website during a break time.
In addition to providing the foregoing types of AUCR information, functions that improve the flow and effectiveness of meetings may also be performed by the virtual assistant service 124 and/or other services supported by the remote processing systems 118 (referred to herein as a “meeting service”). For example, the meeting service may provide to the display device 202 information relevant to a meeting, such as a list of meeting attendees or participants, introductory information related to each of a plurality of meeting attendees (e.g., a company position and/or a team or group affiliation), a status of each of the plurality of meeting attendees (e.g., running late, present, participating remotely, etc.). The status of an attendee may be received from the attendee or inferred from traffic, weather, and/or other external conditions. Moreover, if an attendee suddenly leaves the meeting and has left his/her phone, the status of the attendee may be indicated by the location of the nearest restroom.
The meeting service may also automatically keep track of meeting tasks (which may include, for example, displaying outstanding action items and associated information before and after the meeting) and may provide templates for specific types of appointments and/or email or text message responses, rank contacts (e.g., based on a log listing a time and/or location of communications with each of the contacts). In one embodiment, the meeting service automatically divvies up the time allotted for a meeting (or a portion of a meeting) to individual participants or agenda items and provides reminders to move on to a subsequent participant or agenda item. Thus, the AUCR information may include a set of prompts, each prompt in the set being provided at a preselected time during a meeting to reduce time overruns.
In one embodiment, the meeting service additionally facilitates operations that generally promote and improve the collaboration experience. Such operations can be particularly helpful for relatively long meetings and/or meetings with a large number of attendees. Example collaboration improvement operations performed by the meeting service include: allowing attendees to send messages to each other during a meeting, showing notes in a workspace from previous recurring meetings and corresponding documents, allowing attendees to share documents with an option to receive feedback on pages/slides, allowing attendees to share and edit notes collaboratively in real-time, allowing attendees to highlight and annotate objects in documents or notes, displaying notes/questions as they are written to remote attendees, receiving questions from and facilitating conversations with remote attendees without disturbing a presenter, playing back slides and/or meeting events in synchronization with notes, integrating documents and collaborative workspace with a collaborative workspace software solution, such as MICROSOFT OFFICE 365, importing to-do lists into a scheduling solution, such as MICROSOFT OUTLOOK, inviting non-attendees to participate on a focused topic, and allowing creation of custom polls—anonymous or non-anonymous—and logging poll results, e.g., to gauge audience comprehension of pages/slides or for other reasons. In one embodiment, the meeting service facilitates sending meeting information to a remote person (e.g., an attendee who is on their way to the meeting), to get an idea about what is transpiring or the information that has been disseminated so far. This allows the remote person to get up to speed quickly without disrupting the flow of the meeting. If the recipient has a display device capable of two-way communication, the meeting service may also facilitate the remote person giving feedback or answers.
Example collaboration improvement operations performed by the meeting service may also include: allowing attendees to provide real-time or near real-time feedback to a presenter, which may include, for example, allowing attendees to: propose questions for a presenter, vote for or otherwise indicate approval of proposed questions, vote to skip a presentation slide, indicate a need for more information relative to a presentation slide, and indicate a mood or emotion, such as interested, bored, stressed, sleeping, or the like. In one example embodiment, an indicated mood may be received by the meeting service from one or more of the meeting attendees. The meeting service may send the one or more mood indications to a display visible to all attendees, including the presenter(s), or, alternatively, the one or more mood indications may be sent only to the presenter(s).
In addition, after a meeting, the meeting service may show a shuttle booking interface if the user walks to a reception area and the interface may prompt the user to press a cancel button or the like to talk to a receptionist.
The process flow diagrams 800 and 900 of
The computing functionality 1000 can include volatile and non-volatile memory, such as RAM 1002 and ROM 1004, as well as one or more processing devices 1006 (e.g., one or more CPUs, and/or one or more GPUs, etc.). The computing functionality 1000 also may include various media devices 1008, such as a hard disk module, an optical disk module, and so forth. The computing functionality 1000 can perform various operations identified above when the processing device(s) 1006 executes instructions that are maintained by memory (e.g., RAM 1002, ROM 1004, or elsewhere).
More generally, instructions and other information can be stored on any computer readable medium 1010, including, but not limited to, static memory storage devices, magnetic storage devices, optical storage devices, and so on. The term computer readable medium also encompasses plural storage devices. In all cases, the computer readable medium 1010 represents some form of physical and tangible entity.
The computing functionality 1000 also includes an input/output module 1012 for receiving various inputs (via input modules 1014), and for providing various outputs (via output modules). One particular output mechanism may include a presentation module 1016 and an associated graphical user interface (GUI) 1018. The computing functionality 1000 can also include one or more network interfaces 1020 for exchanging data with other devices via one or more communication conduits 1022. One or more communication buses 1024 communicatively couple the above-described components together.
The communication conduit(s) 1022 can be implemented in any manner, e.g., by a local area network, a wide area network (e.g., the Internet), etc., or any combination thereof. The communication conduit(s) 1022 can include any combination of hardwired links, wireless links, routers, gateway functionality, name servers, etc., governed by any protocol or combination of protocols.
Alternatively, or in addition, any of the functions described in Sections A and B can be performed, at least in part, by one or more hardware logic components. For example, without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
Additionally, the functionality described herein can employ various mechanisms to ensure the privacy of user data maintained by the functionality. For example, the functionality can allow a user to expressly opt in to (and then expressly opt out of) the provisions of the functionality. The functionality can also provide suitable security mechanisms to ensure the privacy of the user data, such as, data-sanitizing mechanisms, encryption mechanisms, password-protection mechanisms, and so on.
Further, the description may have described various concepts in the context of illustrative challenges or problems. This manner of explanation does not constitute an admission that others have appreciated and/or articulated the challenges or problems in the manner specified herein.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.