Individuals commonly utilize computing devices to communicate with one or more contacts on a daily basis. Various functions, such as instant message applications or email applications are generally used instead of calling a person on the telephone or physically going to see someone. Such information exchange can occur when a person enters information (e.g., text, visual, audio, and so on) into a display area of a device and communicates with the one or more contacts in a back-and-forth manner without using a telephone or other method of communication. This almost instantaneous communication can allow a user and various contacts in disparate locations or even within the same office to communicate in a real time fashion.
There can be a proliferation of incoming communications (e.g., email, text messages and so forth) and a single individual can receive hundreds of communications in a single day. With this enormous amount of incoming information, it can be difficult to determine which communications are important and should be handled in a reasonable amount of time compared with those that are not as important and can be disregarded for a while. Additionally, the individual receiving the incoming communications has tasks and other duties to perform and might not have much time available for reviewing each incoming communication. As such, a user can unintentionally overlook an important email and might have to deal with the consequences of such actions.
The following presents a simplified summary in order to provide a basic understanding of some aspects of the disclosed examples. This summary is not an extensive overview and is intended to neither identify key or critical elements nor delineate the scope of such aspects. Its purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
In accordance with one or more examples and corresponding disclosure thereof, various aspects are described in connection with providing priority ranking and selective presentation of incoming communications. The innovation provides automatic significance tagging to rank incoming communications depending on an inferred importance (e.g., hotness) of that communication. The tagging can be based on historical data relating to the receiver and/or sender of the information. Historical data can take into consideration the amount of time a user has historically spent reading a similar or related communication (e.g., 1 second is not important but if over 30 seconds, it is considered important). The historical data can also be based on how the user deals with the ranking (e.g., manually changing or overriding a system ranking). In accordance with some aspects, tagging can be based on keywords or phrases in the subject line and/or body of the communication or through a user instruction (e.g., mark as significant any email received from Mr. X). Other tagging can be based on the person who sent the communication (e.g., boss versus coworker) or the person receiving the communication (e.g., subordinate).
The incoming communication can be ranked (e.g., high/low) based upon the tagging of the communication. Thus, communications with a low ranking (not important) can be flagged as such (e.g., placed in a special folder or location, highlighted a different color) and the communications with a high-ranking (important) can be flagged as important. Such ranking can allow a user to proactively receive and respond to important incoming communications while mitigating the amount of time spent on unimportant communications.
To the accomplishment of the foregoing and related ends, one or more examples comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative aspects and are indicative of but a few of the various ways in which the principles of the various aspects may be employed. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the drawings and the disclosed examples are intended to include all such aspects and their equivalents.
Various aspects are now described with reference to the drawings. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more aspects. It may be evident, however, that the various aspects 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 these aspects.
As used in this application, the terms “component”, “module”, “system”, and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Various aspects will be presented in terms of systems that may include a number of components, modules, and the like. It is to be understood and appreciated that the various systems may include additional components, modules, etc. and/or may not include all of the components, modules, etc. discussed in connection with the figures. A combination of these approaches may also be used. The various aspects disclosed herein can be performed on electrical devices including devices that utilize touch screen display technologies and/or mouse-and-keyboard type interfaces. Examples of such devices include computers (desktop and mobile), smart phones, personal digital assistants (PDAs), and other electronic devices both wired and wireless.
Referring initially to
In further detail, system 100 includes a classification component 102 that can be configured to receive one or more incoming communications 104 and assign a label or tag to each communication based on a determined importance level. Different criteria can be utilized to establish a level of importance. Examples of criteria include historical data relating to the sender and/or receiver of the communication, time spent reviewing similar emails, how the recipient of the communication has dealt with importance levels or priorities in the past, keywords or phrases in the subject and/or body of the communication, a user instruction, or combinations thereof. Additionally or alternatively, the criteria can relate to the recipient's position within an address line (e.g., “To”, “Cc”, “Bcc”) included in the communication.
In accordance with some aspects, classification component 102 can enter an instruction period, which can last from a few hours or days to a few weeks, or longer. During the instruction period, the recipient can mark each received communication as important or not important. Other rankings can include, but are not limited to, semi-important, moderately important, need to review, junk, spam, etc. According to some aspects, the recipient can add individualized rankings or labels, depending on personal interests.
A ranking component 106 can be configured to receive the incoming communication 104 and its associated tag and classify or prioritize the communication. If the communication is important, an output component 108 can present the communication to a user at about the same time as receipt. If classification component 102 deems the communication as not important, output component 108 can place the communication in a separate location or mark it as not important. Thus, the recipient can attend to the more important communications in a timely manner and can deal with less important communications at a better time, such as when the recipient is not busy.
System 200 includes a classification component 202 that can tag incoming communications 204 based on the individual requirements of the recipient. Additionally or alternatively, classification component 202 can tag each incoming communication 204 based on its relevance to the recipient. Based in part on the tag assigned by classification component 202, a ranking component 206 can prioritize each incoming communication 204 based on the significance of each communication to the recipient. Such prioritization can be a number scale ranking, or another type of ranking. For example, a ranking scale of “1” to “10” can be utilized where “1” is a low priority item and “10” is a high priority item, although other scales can be utilized as determined by system 200 or as assigned by recipient.
An important incoming communication can be given a high-ranking 208 and presented to the recipient at substantially the same time as it is received. An incoming communication that is not deemed important can be given a low ranking 210 and retained in a separate location for later review. In accordance with some aspects, color coding, highlighting or other readily perceivable means can be utilized to notify the recipient of the relative ranking of each communication.
Classification component 202 can include a retrieval module 212 that can be configured to retrieve information related to each incoming communication 204 in order to obtain tagging criteria. Related information can be maintained as historical data 214 and can be selectively accessed by retrieval module 212. Historical data 214 can include information such as how the recipient handled similar communications in the past. Similar communications can be determined based on the sender of the communication, a domain from which the communication was sent, keywords or phrases in a subject line or body of the communication, a sender of the information, and other factors indicating that two or more communications are similar.
For example, if upon receipt of a previous communication that contained the subject line “Summer Party” the communications was immediately deleted by the recipient without reading (e.g., an email was not “opened” before deleting), the historical data 214 might indicate that the recipient does not want these communications, or such communications are not important. On the other hand, if communications with the subject line “Assigned Task” are replied to within a short amount of time and/or marked for follow-up, it can indicate that such communications are very important.
Retrieval module 212 can also obtain information relating to instructions 216 applied by recipient. Such instructions 216 can relate to information included in the incoming communication (e.g., sender, keywords or phrases). For example, an instruction might be that incoming communications with the keyword “Sweepstakes” are important. Another instruction might be that communications with the keywords “Youth Council” are not important and/or if the sender is “Nancy Graham”, the communication is not important. Another instruction might be whether the recipient was on the “To” address line and, if so, the communication might be important. If the recipient is on the “Cc” or “Bcc” line, the instructions 216 might indicate to ignore the communication. In accordance with some aspects, the position of the recipient within the address lines (e.g., “To”, “Cc”, “Bcc”) might indicate a color-coding to apply to the communication. The instructions 216 can be dynamically change over time as the interests of the recipient changes.
Based on the historical information 214 and/or instructions 216, a control module 218 can selectively specify a classification range or parameters in addition to the tag or indicator. For example, the historical data indicates that the communication is not important (e.g., previous communications from the sender were deleted without reading) but user instructions indicate that a communication containing (e.g., body or subject) a certain keyword or phrase is important. Control module 218 can selectively categorize that communication as being a higher category than not important but a somewhat lower category than important (e.g., a medium level category).
Ranking component 206 can receive the categorization and tag and make a determination of the relative ranking of the communication as compared to other received communications. For example, if numerous communications are given similar “important” tags by classification component 202 and other communications are given a different tag, indicating medium level priority, such as that described in the above example, the medium tag might be considered not as important in ranking as compared to the important tagged communications.
Thus, system 200 can selectively determine a tagging or categorization and ranking based on incoming communications and selectively present the communications based on an assigned priority. Important communications (e.g., high ranking) 208 can be presented to the user at substantially the same time as receipt (e.g., notification, color-coding, and so forth). Lower ranked communications 210 can be retained and not presented to the recipient or presented only upon request. Dynamically presenting only communications inferred as important can mitigate the number of communications that a recipient needs to review on a daily basis and can also allow some communications to be disregarded depending on a confidence level of system 200.
With reference now to
System 300 includes a classification component 302 that can receive one or more incoming communications 304 and classify the communications with a tag or other indicator based on information known about the recipient's habits, instructions or other actions as it relates to incoming communications. A ranking component 306 can rank each communication based on the tags of other received communications and a presentation component 308 can output the communication based on its relative ranking or priority level. The output can be visually or audibly presented, provided the recipient of important communications is notified at substantially the same time as the communication is received.
To establish various criteria relating to categorization and/or ranking, system 300 can enter or initiate a training phase, whereby a recipient deals with each incoming communication for a few hours, days, weeks, etc. An observation component 310 can be configured to monitor the recipient's actions, which should be the same actions a recipient would take if not being monitored. Observation component 310 can further be configured to analyze the actions and make a determination why such actions were made. Such analysis can consider information included in the communication (e.g., sender, subject, keywords, phrases, and so forth). If observation component 310 detects a pattern, it can indicate a relationship between the recipient and the communication. For example, each time a communication is received from Janet Jones, it is immediately opened and replied to (or another action taken). Observation component 310 can infer that there is a relationship between the recipient and Janet Jones (e.g., co-workers, boss/employee and so forth) and future communications from Janet Jones can be marked as important. Thus, actions of the recipient can increase system 300 performance and efficiency while mitigating the need for assigning explicit instructions.
In accordance with some aspects, observation component 310 can monitor other actions of the recipient, such as how much time is spent reviewing each communication. For example, if the communication is opened and a user spends less than ten seconds reviewing the document, it might be inferred that the information contained in the communication is not important. However if the user spends a longer time (e.g., 20 to 30 seconds or more) looking at the document, it might be inferred that the communication is important. Other parameters can be utilized in conjunction with inference of what the gaze of the user might indicate. A parameter could be the length of the communication. If the communication is short (e.g., one or two lines), it might take only a couple of seconds to read but the communication might be very important. If a communication is longer or the content is complex, or does not make sense, it might take longer to read and an ultimate determination might be that the communication is not important at all. Another parameter can be the sender of the communication (e.g., if the sender is important, it does not matter how long recipient takes to review a communication). Other parameters includes keywords, phrases, subject lines and so forth, that might be used in conjunction with the length of time a user spends reviewing a communication as applied to its overall importance.
In accordance with some aspects, observation component 310 can consider further parameters relating to the amount of time a user spends reviewing a communication. For example, the communication is open on the user's device and the user is performing another task (e.g., talking on the phone, reviewing a hardcopy of a document, not near the device, or out of the office and so on) and left the page open. In this scenario, the amount of time that the communication is open might no longer be relevant to the importance of the communication.
System 400 is similar to the system of
An override component 408 can be included in system 400 that can allow the recipient to manually override or change a ranking or a priority of an incoming communication, such as by raising the ranking to a higher, or the highest priority level (or lowering to a lower priority level). Subsequent communications that are related and/or similar to the communication whose ranking was changed can automatically be assigned the new ranking. The ranking might be manually changed due to changes in the recipients' needs or interests. Some rankings might be changed because the system 400 made the wrong inference. Additionally or alternatively, system 400 can immediate promote (or demote) all similar and/or related communications that might be have been placed in a lower (or higher) priority queue (e.g., communications that were previously received). By observing changes in the applied rankings, system 400 can continuously learn and increase efficiency of assigning various significance levels to incoming communications. Thus, the changing nature of user priorities or interests should have an immediate effect on related and/or similar communications, no matter when such communications were received (past and future).
Override component 408 can provide a user interface to allow the user to enter a modified classification or ranking directly into the user interface. The user interface can provide a graphical user interface (GUI), a command line interface, a speech interface, Natural Language text interface, and the like. For example, a GUI can be rendered that provides a user with a region or means to read, make modifications to, or perform other actions to various classifications or rankings associated with a current communication or a different (e.g., older) communication. The result of various inputs by the user can be presented in regions or other areas of a display screen (e.g., “The ranking was low; it will now be changed to high”). These regions can comprise known text and/or graphic regions comprising dialogue boxes, static controls, drop-down-menus, list boxes, pop-up menus, as edit controls, combo boxes, radio buttons, check boxes, push buttons, and graphic boxes. In addition, utilities to facilitate information conveyance such as vertical and/or horizontal scroll bars for navigation and toolbar buttons to determine whether a region will be viewable can be employed. For example, the user can interact with a user interface by entering the information into an edit control.
The user can also interact with the regions to select and provide information through various devices such as a mouse, a roller ball, a keypad, a keyboard, a pen, gestures captured with a camera, and/or voice activation, for example. Typically, a mechanism such as a push button or the enter key on the keyboard can be employed subsequent to entering the information (e.g., change in ranking and/or classification) in order to initiate information conveyance. However, it is to be appreciated that the disclosed embodiments are not so limited. For example, merely highlighting a check box can initiate information conveyance. In another example, a command line interface can be employed. For example, the command line interface can prompt the user for information by providing a text message (e.g., “Should this be ranked as a low priority?”), producing an audio tone, or the like. The user can then provide suitable information, such as alphanumeric input corresponding to an option provided in the interface prompt or an answer to a question posed in the prompt. It is to be appreciated that the command line interface can be employed in connection with a GUI and/or API. In addition, the command line interface can be employed in connection with hardware (e.g., video cards) and/or displays (e.g., black and white, and EGA) with limited graphic support, and/or low bandwidth communication channels.
Referring now to
To facilitate interpretation of extrinsic evidence and/or intrinsic evidence, an optimization component 508 can be configured to actively seek factors that might have significance (e.g., change a priority level) as it relates to the incoming communications 504. Factors can include, but are not limited to, tasks 510, sent communications 512, recipient status 514, and/or time parameters 516. Each factor can be analyzed individually or in conjunction to take advantage of various and changing factors.
Optimization component 508 can be configured to seek or review tasks 510 assigned to the recipient. Such tasks 510 can be maintained in a task list, task database, a “to do” list or other accessible places, such as a calendar. Based on the subject matter of a task or items related to the task (e.g., person who assigned the task, title of the task, and so on), incoming communications 504 that appear to be related to the task can be flagged as important, especially as due dates are approaching. In accordance with some aspects, a user might notify system 500 that a task will be started on a certain date and to maintain all incoming communications relating to the task separately, regardless of a ranking. On the start date, optimization component 508 might dynamically present the user with all received communications relating to the task so it can be started in a timely fashion. This can mitigate the need for the user to perform a search for communications relating to the task.
In accordance with some aspects, an upcoming or past meeting might be accessed by optimization component 508 to determine the subject of the meeting or the participants and prioritize incoming communications based on related information. The communications relating to the meeting might be retained separately from other communications, regardless of the priority given such communications, depending on user instructions.
Optimization component 508 can retain information relating to a sent communication 512. For example, if a user sends a communication, the subject or keywords associated with the communication can be maintained. When an incoming communication is received that includes a similar subject or similar keywords, optimization component 508 can make a determination that the incoming communication might be a higher priority, since it can be related to something the user previously addressed. The determination can be made even if the person to whom the communication was sent is not the sender of the incoming communication.
Additionally or alternatively, optimization component 508 can seek information relating to a status of the recipient 514 and/or time parameters 516. The status 514 might indicate that the recipient is in a meeting, out of the office, on vacation, and so forth. Time parameters 516 might indicate that after a certain time of day the recipient is unavailable. Based on the status 514 and/or time 516, optimization component 508 might prioritize communications differently. For example, user instructions indicate that communications from Ted Bradley are very important and optimization component 508 is aware that the recipient is on vacation for two weeks (e.g., through a calendar item, or manual interaction with system). If a communication is received from Ted Bradley during those two weeks with the keywords “lunch” and “today”, optimization component 508 can automatically infer that the email is a low priority since the recipient is gone and will not be able to attend lunch that day. In accordance with some aspects, optimization component 508 can selectively reply to the communication stating that the recipient is on vacation and can automatically delete the communication or move it into a low-priority folder.
In view of the exemplary systems shown and described above, methodologies that may be implemented in accordance with the disclosed subject matter, will be better appreciated with reference to the flow charts of
Method 600 starts, at 602, when one or more incoming communications are received that are addressed to recipient, either individually or in conjunction with others (e.g., mass email). The recipient could be an individual on the “To” line, or on the “Cc” or “Bcc” line, if such categories are available. In a business scenario, the senders can be internal to an organization or external to the organization (e.g., customers, clients, recruiters, miscellaneous senders). Personal communications can be from friends, family members, requested senders or senders from which the recipient does not want communication.
At 604, each incoming communication is assigned a tag relating to its importance level. The importance level can be based on various criteria including historical data relating to how similar communications were handed, information relating to the sender and/or recipient (e.g., is the sender a supervisor or co-worker, is the recipient a subordinate). Other criteria can include a user instruction (e.g., information from Joe Green is important; information from Steve Silver is not important, communications with keywords “Unified Communications” are very important, and so forth).
Each incoming communication is ranked individually, at 606, based in part on the tagged importance level. For example, the importance level or tagging can be number from “1” to “5”, where “1” is the least important and “5” is the most important (although other rankings can be utilized). If the importance level assigned, at 604, is that the communication is a “3”, a determination is made, at 606, whether the communication should be placed in an “important” bin or in a “not important” bin (or in another bin). Criteria that can be utilized to make the determination can include how the recipient has handled similar communications in the past or a user instruction. For example, a communication is received from Steve Silver (not important) but the subject line indicates it is relating to “Unified Communications (very important)). As such, the ranking might be a “3” or “4” rather than a “1” because of the keywords included in the subject line or body of the communication. However, other factors can be utilized to determine the rankings of each communication relative to the other communications received.
The results based on the ranking are selectively presented to the recipient, at 608. Communications ranked higher than a determined ranking (e.g., over 3) might be displayed or output in other forms (e.g., audibly) at substantially the same time as it is received. Communications ranked low (e.g., under 3) might be placed in a separate folder or area. Medium level communications (e.g., 3) might be placed in a third area or folder. In accordance with some aspects, the communications can be color coded, wherein a first color (e.g., green) is for important items, and a second color (e.g., red) is for items that are not important and for other communications (e.g., medium level) a third color (e.g., yellow) might be utilized. It should be understood that any number of rankings or indications could be utilized with the disclosed aspects. For example, a user can define communications in a manner that is personally relevant, such as “very important” “medium importance” “low importance” “junk”, and so forth. Communications can be applied to each definition based on respective rankings and maintained in separate, easily accessible areas, color code differently, or flagged in another manner, provided the rankings are easy for the recipient to understand and act upon.
At 702, a communication can be received and factors relating to the communication can be analyzed and maintained. Such factors can include, the sender, keywords or phrases in a subject line or body of the communication, the placement of the recipient in an address area (e.g., “To”, “Cc”, “Bcc”), as well as other information or combinations thereof.
Behaviors observed or manual actions performed by a recipient of the communication are observed and retained, at 704. Such actions can include opening the communication and performing a second action (e.g., replying, flagging for follow up, deleting, and so forth). Another action can be opening the file and observing the user pausing or looking at the email for a length of time (e.g., 1 second, 30 seconds, 2 minutes, and so on) and then performing another action (e.g., closing the communication without replying, replying, deleting, moving to a folder or other area, and so forth). Other actions can include not opening the communication until a later time (e.g., other communications received later are opened first) and/or deleting the communication without opening it. The observed actions can be retained along with information analyzed, at 702, and patterns can be established (e.g., incoming communications with recipient not in the “To” line are not opened until later, communications from Timothy Roads are deleted upon receipt, and so forth). As such, the actions that the recipient would perform upon receiving similar communications can be mimicked.
At 706, a subsequent communication is received (e.g., after a training period or during a trial to see how well method 700 performs) and a determination is made whether the communication is similar to a previously received communication. If the communication is not similar (“NO”), method 700 can continue, at 704, with observance and retention of a manual action. If the communication is similar (“YES”), actions previously observed can be applied, at 708. As such, method 700 can learn the actions that the recipient would perform and dynamically apply those actions, mitigating the need for the recipient to perform a review (cursory or in depth) of the communication. Over time, method 700 can autonomously infer actions based on similar patterns and continuously learn as the recipient overrides actions (e.g., changing a not important communication to an important communication, lowering ranking of a communication, and so forth) and/or based on instructions, which can change over time. As a ranking level is manually changed, a ranking associated with related and/or similar communications (received before or after the manual change, or both before and after the manual change) can be modified in a similar manner.
Method 800 starts at 802, when a communication is received and criteria included in the communication is reviewed. The analyzed criteria can include keywords or phrases, subject line, sender name, and other information. Information relating to previous communications and/or user instructions is retrieved, at 804. The retrieved information can be utilized to categorize the communication, at 806. Such categorization can include tagging the item with various indicators, such as important, very important, not important, and so forth. Based on the categorization, at 808, each communication is ranked or prioritized in importance as compared to the other received communications. The communication can be selectively presented to the recipient based on the ranking.
At 810, a determination is made whether the recipient modified or overrode the ranking, which might indicate that the ranking applied by method 800 was incorrect. If the determination is that the ranking was acceptable (“NO”), the method 800 can end until a next communication is received, at 802. If the determination is that the ranking was not acceptable (“YES”), the categorization and/or ranking can be selectively modified based on the manual changes.
In accordance with some aspects, information can be solicited from the recipient to determine why a modification was made. For example, an instruction might indicate that all communications from “Paul Smith” are very important. However, an incoming communication from Paul Smith, ranked as important by method 800 is deleted by the user, without opening the communication. Method 800 can request feedback from the user by asking a question such as, “Should all information from Paul Smith be deleted/ranked as not important.” The recipient can answer, such as by selecting a “Yes” or “No” response. In this situation, the communication might have been deleted because it contained pictures of Paul Smith's family vacation, which recipient does not care to view. However, other communications from Paul Smith might still be very important.
In accordance with some aspects, if the relevance of a particular communication is changed by the user (e.g., instructions) and previous communications were received and marked with a different, lower ranking, such communications can be dynamically presented. For example, an instruction indicates that communications with the keywords “Rib Cook-Off” are not important and such communications are placed into a not-important folder or area. The recipient then realizes that important clients will be present at the Cook-Off and changes the instructions to indicate that such communications are important. Method 800 can dynamically review the communications previously marked not important and can notify recipient of the communications, even though such communications might have been received earlier (e.g., days, weeks). Thus, recipient can be aware of the communications that were previously labeled as not important and thus, can mitigate the need for the recipient to review previous communications for the information that is now important.
It will be appreciated that, in accordance with one or more aspects described herein, inferences can be made regarding categorization of incoming communications, ranking of communications as compared to other communications, an action a recipient would perform, a change in importance level of incoming communications and so forth. As used herein, the term to “infer” or “inference” refers generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured through events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources. Artificial intelligence based systems (e.g., explicitly and/or implicitly trained classifiers), rules-based logic systems or other machine learning techniques can be employed in connection with performing inference and/or probabilistic determinations and/or statistical-based determinations as in accordance with one or more of the disclosed aspects.
According to an example, one or more aspects presented above can include making inferences pertaining to what a recipient of the communication would do if the recipient were presented with the incoming communication. In accordance with another example, an inference can be made related to whether a recipient might be interested in a communication previously ranked as not important based on further information obtained relating to the recipients interests or desires. It will be appreciated that the foregoing examples are illustrative in nature and are not intended to limit the number of inferences that can be made or the manner in which such inferences are made in conjunction with the various aspects described herein.
Referring now to
Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.
The illustrated aspects may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
A computer typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media can comprise computer storage media and communication media. Computer storage media includes both 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, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
Communication media typically embodies 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” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
With reference again to
The system bus 908 can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 906 includes read-only memory (ROM) 910 and random access memory (RAM) 912. A basic input/output system (BIOS) is stored in a non-volatile memory 910 such as ROM, EPROM, EEPROM, which BIOS contains the basic routines that help to transfer information between elements within the computer 902, such as during start-up. The RAM 912 can also include a high-speed RAM such as static RAM for caching data.
The computer 902 further includes an internal hard disk drive (HDD) 914 (e.g., EIDE, SATA), which internal hard disk drive 914 may also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD) 916, (e.g., to read from or write to a removable diskette 918) and an optical disk drive 920, (e.g., reading a CD-ROM disk 922 or, to read from or write to other high capacity optical media such as the DVD). The hard disk drive 914, magnetic disk drive 916 and optical disk drive 920 can be connected to the system bus 908 by a hard disk drive interface 924, a magnetic disk drive interface 926 and an optical drive interface 928, respectively. The interface 924 for external drive implementations includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies. Other external drive connection technologies are within contemplation of the one or more aspects.
The drives and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For the computer 902, the drives and media accommodate the storage of any data in a suitable digital format. Although the description of computer-readable media above refers to a HDD, a removable magnetic diskette, and a removable optical media such as a CD or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and further, that any such media may contain computer-executable instructions for performing the methods disclosed herein.
A number of program modules can be stored in the drives and RAM 912, including an operating system 930, one or more application programs 932, other program modules 934 and program data 936. All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM 912. It is appreciated that the various aspects can be implemented with various commercially available operating systems or combinations of operating systems.
A user can enter commands and information into the computer 902 through one or more wired/wireless input devices, e.g., a keyboard 938 and a pointing device, such as a mouse 940. Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit 904 through an input device interface 942 that is coupled to the system bus 908, but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
A monitor 944 or other type of display device is also connected to the system bus 908 through an interface, such as a video adapter 946. In addition to the monitor 944, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.
The computer 902 may operate in a networked environment using logical connections through wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 948. The remote computer(s) 948 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 902, although, for purposes of brevity, only a memory/storage device 950 is illustrated. The logical connections depicted include wired/wireless connectivity to a local area network (LAN) 952 and/or larger networks, e.g., a wide area network (WAN) 954. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network, e.g., the Internet.
When used in a LAN networking environment, the computer 902 is connected to the local network 952 through a wired and/or wireless communication network interface or adapter 956. The adaptor 956 may facilitate wired or wireless communication to the LAN 952, which may also include a wireless access point disposed thereon for communicating with the wireless adaptor 956.
When used in a WAN networking environment, the computer 902 can include a modem 958, or is connected to a communications server on the WAN 954, or has other means for establishing communications over the WAN 954, such as by way of the Internet. The modem 958, which can be internal or external and a wired or wireless device, is connected to the system bus 908 through the serial port interface 942. In a networked environment, program modules depicted relative to the computer 902, or portions thereof, can be stored in the remote memory/storage device 950. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
The computer 902 is operable to communicate with any wireless devices or entities operatively disposed in wireless communication, e.g., a printer, scanner, desktop and/or portable computer, portable data assistant, communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone. This includes at least Wi-Fi and Bluetooth™ wireless technologies. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices.
Wi-Fi, or Wireless Fidelity, allows connection to the Internet from home, in a hotel room, or at work, without wires. Wi-Fi is a wireless technology similar to that used in a cell phone that enables such devices, e.g., computers, to send and receive data indoors and out; anywhere within the range of a base station. Wi-Fi networks use radio technologies called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3 or Ethernet). Wi-Fi networks operate in the unlicensed 2.4 and 5 GHz radio bands, at an 11 Mbps (802.11a) or 54 Mbps (802.11b) data rate, for example, or with products that contain both bands (dual band), so the networks can provide real-world performance similar to the basic 10BaseT wired Ethernet networks used in many offices.
Referring now to
The system 1000 also includes one or more server(s) 1004. The server(s) 1004 can also be hardware and/or software (e.g., threads, processes, computing devices). The servers 1004 can house threads to perform transformations by employing the various aspects, for example. One possible communication between a client 1002 and a server 1004 can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet may include a cookie and/or associated contextual information, for example. The system 1000 includes a communication framework 1006 (e.g., a global communication network such as the Internet) that can be employed to facilitate communications between the client(s) 1002 and the server(s) 1004.
Communications can be facilitated through a wired (including optical fiber) and/or wireless technology. The client(s) 1002 are operatively connected to one or more client data store(s) 1008 that can be employed to store information local to the client(s) 1002 (e.g., cookie(s) and/or associated contextual information). Similarly, the server(s) 1004 are operatively connected to one or more server data store(s) 1010 that can be employed to store information local to the servers 1004.
What has been described above includes examples of the various aspects. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the various aspects, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the subject specification intended to embrace all such alterations, modifications, and variations.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects. In this regard, it will also be recognized that the various aspects include a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods.
In addition, while a particular feature may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. To the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.” The term “or” as used in either the detailed description of the claims is meant to be a “non-exclusive or”.
The word “exemplary” as used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
Furthermore, the one or more aspects may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed aspects. The term “article of manufacture” (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope of the disclosed aspects.
Number | Name | Date | Kind |
---|---|---|---|
5377354 | Scannell et al. | Dec 1994 | A |
5966714 | Huang et al. | Oct 1999 | A |
5999932 | Paul | Dec 1999 | A |
6119114 | Smadja | Sep 2000 | A |
6147977 | Thro et al. | Nov 2000 | A |
6363415 | Finney et al. | Mar 2002 | B1 |
6418440 | Kuo et al. | Jul 2002 | B1 |
6442503 | Bengala | Aug 2002 | B1 |
6499021 | Abu-Hakima | Dec 2002 | B1 |
6654791 | Bates et al. | Nov 2003 | B1 |
6832245 | Isaacs et al. | Dec 2004 | B1 |
6983308 | Oberhaus et al. | Jan 2006 | B1 |
7167255 | Mikami et al. | Jan 2007 | B1 |
7194681 | Horvitz | Mar 2007 | B1 |
7783706 | Robinson | Aug 2010 | B1 |
20020120705 | Schiavone et al. | Aug 2002 | A1 |
20030195937 | Kircher et al. | Oct 2003 | A1 |
20040003352 | Bargeron et al. | Jan 2004 | A1 |
20040054737 | Daniell | Mar 2004 | A1 |
20040143636 | Horvitz et al. | Jul 2004 | A1 |
20040148330 | Alspector et al. | Jul 2004 | A1 |
20050060186 | Blowers et al. | Mar 2005 | A1 |
20050144571 | Loverin et al. | Jun 2005 | A1 |
20050188038 | Yabe | Aug 2005 | A1 |
20050204001 | Stein et al. | Sep 2005 | A1 |
20050204009 | Hazarika et al. | Sep 2005 | A1 |
20060010217 | Sood | Jan 2006 | A1 |
20060080393 | Cardone et al. | Apr 2006 | A1 |
20060173824 | Bensky et al. | Aug 2006 | A1 |
20060230117 | Gross et al. | Oct 2006 | A1 |
20070100603 | Warner et al. | May 2007 | A1 |
20070168315 | Covannon et al. | Jul 2007 | A1 |
20070179945 | Marston et al. | Aug 2007 | A1 |
20080172466 | Tonegawa et al. | Jul 2008 | A1 |
Number | Date | Country |
---|---|---|
9964972 | Dec 1999 | WO |
WO 2004053720 | Jun 2004 | WO |
WO 2004066527 | Aug 2004 | WO |
WO 2008097811 | Aug 2008 | WO |
Number | Date | Country | |
---|---|---|---|
20090006366 A1 | Jan 2009 | US |