A computing device may use a browser module to access a web page stored on a web server. The browser module may maintain one or more tabs to keep multiple web pages active for presentation to the user. The user may switch between tabs to view different web pages. The browser module may present a cached version of the web page to the user upon selection of a tab associated with that web page. If a suitable period of time has passed, the browser module may refresh the web page by checking with the associated server to determine whether the content of the web page has been updated.
This Summary is provided to introduce a selection of concepts in a simplified form that is 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.
Examples discussed below relate to using an electronic assistant module to set a tab snooze when viewing a web page. The computing device may store in the electronic assistant module a web page associated with a trigger condition describing a trigger event. The computing device may register a computing event has occurred. The computing device may identify the computing event as the trigger event. The electronic assistant module of the computing device may trigger presentation of the web page to the user based on the trigger event. The computing device may present the web page to a user upon triggering.
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is set forth and will be rendered by reference to specific examples thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical examples and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.
Examples are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure. The implementations may be a mobile communication device, a computing device, or a machine-implemented method.
In one example, a computing device, such as a mobile communication device may use an electronic assistant module to set a tab snooze when viewing a web page. The computing device may store in the electronic assistant module a web page associated with a trigger condition describing a trigger event. The computing device may register a computing event has occurred. The computing device may identify the computing event as the trigger event. The electronic assistant module of the computing device may trigger presentation of the web page to the user based on the trigger event. The computing device may present the web page to a user upon triggering.
Many users may maintain tabs in a browser as a “to do” list. A user may not close the tab until the task is complete. Users may leave tabs open in a browser window indefinitely to allow easy location by the user. However, the user may experience anxiety based on the open tab. A user may develop a workaround for this anxiety, by saving sites on a website favorite list or self-emailing a uniform resource locator for the tab. However a user may still forget to take action on a “saved” site.
A user may select an active web site in an open tab in a browser window. The selection may be via a right-click context menu, a pinned on-object user interface, an on-object user interface that appears on hover by the cursor or touch by a finger on a touch screen, or a pre-identified gesture, such as a swiping motion in a specified direction. From that selection user interface, the user may choose to set a tab to dormant, or “snooze”, for later. The user may snooze the tab until a trigger event occurs, such as a specific time, a physical location, another user is present, or a device with a better form factor is activated. The tab may then disappear from the browser window. An electronic assistant module may maintain a list of “snoozed tabs” accessible from within the browser or the electronic assistant module at any time. Alternately, a browser via a plug-in, a device application, or an operating system may store the snoozed tab list. When the trigger event occurs, such as a specified time, a specified physical location, optimal form factor, or another device associated with the user via the electronic assistant module may fire a notification for the previously snoozed tab. By acting on the notification, the computing device may open the uniform resource locator of the previously snoozed tab in the browser on the target device, which may be a computing device or a mobile device.
A computing device may use a data network to access a web page.
The electronic assistant module 112 may coordinate with a network service server 120 via a data network connection 130 to coordinate instances of the electronic assistant module 112 across different devices owned by the user. The network services server 120 may be implemented on a single server or a distributed set of servers, such as a server farm. The network services server 120 may have an online user account 122 for the user that maintains a roaming instance 124 of the electronic assistant module. The data network connection 130 may be an internet connection, a wide area network connection, a local area network connection, or other type of data network connection.
For example, the user may have a mobile device 140 in addition to the computing device 110. The user may have a mobile electronic assistant instance 142 operating on the mobile device 140. The mobile electronic assistant instance 142 may configure the mobile device 140 to match operations on the computing device 110. The mobile electronic assistant instance 142 may transfer data from the computing device 110 to the mobile device 140, such as calendar data or to do lists.
A user may use the computing device 110 to implement a browser module 114 to access content on the internet. The browser module 114 may access a web server 150 via a data network connection 130 to download a web page 152. The web server 150 may be implemented on a single server or a distributed set of servers, such as a server farm. The mobile electric assistant instance 142 may transfer a web page 152 viewed on the browser module 114 to the mobile device 140 for viewing on a mobile browser module 144.
The processing core 220 may include at least one conventional processor or microprocessor that interprets and executes a set of instructions. The processing core 220 may be configured to execute an electronic assistant module to track the web page. The processing core 220 may be further configured to register a computing event has occurred, such as a geographic location identification, a time reading, or a computing device activating. The processing core 220 may be also configured to compare the computing event, such as the geographic location, to a trigger condition, such as a trigger location. The processing core may be additionally configured to identify a computing event as a trigger event. The processing core 220 may be further configured to identify a content type for the web page. The processing core 220 may be also configured to set a location type as the trigger condition based on a content type for the web page. The processing core 220 may be configured to execute the electronic assistant module to trigger presentation of the web page to the user based on the trigger event.
The memory 230 may be a random access memory (RAM) or another type of dynamic data storage that stores information and instructions for execution by the processor 220. The memory 230 may also store temporary variables or other intermediate information used during execution of instructions by the processor 220. The memory 230 may store a series of instructions that when implemented by a processing core 220 implement an electronic assistant module. The memory may be configured to associate a web page with a trigger condition describing a trigger event, such as a trigger location, a trigger time, a device trigger, a form factor trigger, or a content trigger. The memory may be further configured to store a generic constraint for the trigger condition, such as a time range describing when a trigger location triggers presenting the web page and a location range describing where a trigger event triggers presenting the web page.
The data storage 240 may include a conventional ROM device or another type of static data storage that stores static information and instructions for the processor 220. The data storage 240 may include any type of tangible machine-readable medium, such as, for example, magnetic or optical recording media, such as a digital video disk, and its corresponding drive. A tangible machine-readable medium is a physical medium storing machine-readable code or instructions, as opposed to a signal. Having instructions stored on computer-readable media as described herein is distinguishable from having instructions propagated or transmitted, as the propagation transfers the instructions, versus stores the instructions such as can occur with a computer-readable medium having instructions stored thereon. Therefore, unless otherwise noted, references to computer-readable media/medium having instructions stored thereon, in this or an analogous form, references tangible media on which data may be stored or retained. The data storage 240 may store a set of instructions detailing a method that when executed by one or more processors cause the one or more processors to perform the method. The data storage 240 may also be a database or a database interface for storing data from the electronic assistant module.
The input device 250 may include one or more conventional mechanisms that permit a user to input information to the computing device 200, such as a keyboard, a mouse, a voice recognition device, a microphone, a headset, a touch screen 252, a touch pad 254, a gesture recognition device 256, etc. The input device 250 may be configured to receive a page indication identifying the web page. The input device 250 may be configured to receive a trigger indication describing the trigger condition. The input device 250 may be configured to receive a constraint indication inputting a constraint describing exceptions to the trigger conditions.
The output device 260 may include one or more conventional mechanisms that output information to the user, including a display screen 262, a printer, one or more speakers 264, a headset, a vibrator, or a medium, such as a memory, or a magnetic or optical disk and a corresponding disk drive. A display screen 262 may be configured to present the web page to a user on a computing device 200, such as a mobile communication device, based on the trigger event, such as a geographic location.
The communication interface 270 may include any transceiver-like mechanism that enables computing device 200 to communicate with other devices or networks. The communication interface 270 may include a network interface or a transceiver interface. The communication interface 270 may be a wireless, wired, or optical interface. The communication interface 270 may be configured to connect to an online user account for a network service using an electronic assistant module. The communication interface 270 may be further configured to receive the web page and the trigger condition in the electronic assistant module from a network service.
The geographic positioning module 280 may use location data, such as coordinates from a geographic positioning system (GPS), to determine the location of the computing device 200. The geographic positioning module 280 may be configured to determine a geographic location of a computing device 200, such as a mobile communication device. The clock 290 may provide a time and date to the computing device 200. The clock 290 may be configured to provide a time to the electronic assistant module to determine whether a trigger time has occurred.
The computing device 200 may perform such functions in response to processor 220 executing sequences of instructions contained in a computer-readable medium, such as, for example, the memory 230, a magnetic disk, or an optical disk. Such instructions may be read into the memory 230 from another computer-readable medium, such as the data storage 240, or from a separate device via the communication interface 260.
The browser module 320 may download a page profile 330 describing the content and the formatting of the web page from the web server or an exterior search engine. The browser module 320 may provide the page profile 330 to the electronic assistant module 310 and a content engine 340. The electronic assistant module 310 may compare the formatting data for the web page to a device profile 350 to determine whether the computing device may sufficiently present the web page, or whether other devices associated with the user may be better suited.
The content engine 340 may parse the page profile 330 to identify content present in the web page to the electronic assistant module 310. The electronic assistant module 310 may identify locations and time constraints associated with that content. For example, for a web page describing gardening equipment, the electronic assistant module 310 may identify nearby hardware stores. The electronic assistant module 310 may consult a locator module 360 to determine when the computing device is in the same area as location associated with the content, such as the hardware stores described above. When the location matches the content, the electronic assistant module 310 may have the browser module 320 present the web page tab again.
Further, the electronic assistant module 310 may have access to a contact list 370 for the user. The user may identify for the electronic assistant module 310 a member of the contact list 370 that the user wants to show a web page. When the locator module 360 identifies the presence of a friend device paired with the contact list 370 member, the electronic assistant module 310 may have the browser module 320 present the web page tab again.
Alternately, for a movie set to open in two weeks, the electronic assistant module 310 may use a calendar module 380 to set a future alert for two weeks in the future. Upon the alert, the electronic assistant module 310 may have the browser module 320 present the web page tab again.
The user may set the tab snooze in the browser module.
A tab 432 may have a snooze control 450, allowing the user to set the tab to dormant until a trigger condition causes the tab 432 to be presented to the user. The tab 432 may refresh the web page 440 upon activation to check for any updates to the web page 440 at the server. The snooze control 450 may set the tab snooze with a trigger condition based on a trigger time 451, a trigger location (LOC) 452, a device trigger 453, a form factor trigger 454, or a content trigger 455. A trigger time 451 may activate a dormant web page 440 when a time set by the user occurs. A trigger location 452 may activate a dormant web page 440 when a mobile device associated with the user comes within a specific range of a location set by the user. A device trigger 453 may identify a device associated with another user is in close proximity to the user device, so that the user may show the web page 440 to the other user. A form factor trigger 454 may activate a dormant web page 440 when a device associated with the user that has the appropriate form factor for the web page is activated. A content trigger 455 may extrapolate from the content or format of a web page 440 to identify a trigger time 451, a trigger location 452, a device trigger 453, or a form factor trigger 454.
A tab 432 may have a constraint control 460, allowing the user to carve out exceptions to various trigger conditions. The constraint control 460 may set a location range constraint 462 or a time range constraint 464. A location range constraint 462 may specify the distance that a mobile device may be from a location trigger to cause the web page 440 to be activated. A time range constraint 264 may specify the times when a trigger condition may cause a web page 440 to be activated.
The electronic assistant module may be used to set a tab snooze without even entering the browser module.
The user interface of the electronic assistant module may have a response display 540 presenting results to the search term. The response display 540 may present one or more candidate responses 550 for the search term. The candidate response 550 may have a profile 552 describing the content of the candidate response 550. The candidate response 550 may have directions 554 to a location associated with each candidate response 550. The candidate response 550 may have a check box 556 allowing the user to select a candidate response 550.
Alternately, a user may wish to show the web page 816 to a friend, acquaintance, colleague, classmate, or family member. The user may select the other user from a contact list of the original user. The contact list may associate a friend device with the contact list member. When the friend device is within a geographic proximity of the mobile device 810, the friend device may act as a trigger device 840, causing the mobile device 810 to present the web page 816 to the user. The mobile device 810 may use a global positioning system module, a Bluetooth® communication, or a local area network presence to determine a geographic proximity.
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 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 for implementing the claims.
Examples within the scope of the present invention may also include computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable storage media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic data storages, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures, as opposed to propagating media such as a signal or carrier wave. Computer-readable storage media explicitly does not refer to such propagating media. Combinations of the above should also be included within the scope of the computer-readable storage media.
Examples may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Although the above description may contain specific details, they should not be construed as limiting the claims in any way. Other configurations of the described examples are part of the scope of the disclosure. For example, the principles of the disclosure may be applied to each individual user where each user may individually deploy such a system. This enables each user to utilize the benefits of the disclosure even if any one of a large number of possible modules do not use the functionality described herein. Multiple instances of electronic devices each may process the content in various possible ways. Implementations are not necessarily in one system used by all end users. Accordingly, the appended claims and their legal equivalents should only define the invention, rather than any specific examples given.