PRIORITYThis application is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 14/307,439, entitled “FACILITATING CONVERSATIONS WITH AUTOMATED LOCATION MAPPING,” filed on Jun. 17, 2014, which is hereby incorporated by reference herein in its entirety.
BACKGROUNDWithin the field of computing, many scenarios involve a conversation among two or more individuals about one or more topics that are associated with a location, such as plans to meet at a restaurant for dinner or to attend a film at a theater. In such scenarios, an individual who is also using a device may alternate between conversing with one another and with interacting with a device to identify, explore, and select the location-based topics. Devices may provide a variety of tools that may facilitate such conversations, such as applications for identifying or recommending topics based on a set of search criteria, such as an events guide application or a restaurant recommendations application; applications for viewing details about a topic, such as viewing restaurant menus and availability for reservations; applications for initiating transactions with a location-based topic, such as making a reservation at a restaurant or purchasing tickets to a theater or music concert; applications for identifying discounts on such and applications for logging the presence of the user at the location of a topic, such as a “check-in” application enabling a user to inform social contacts of their presence at a particular event or location; applications for finding discounts on topics, such as discounted theater tickets and restaurant coupons; and applications for presenting maps and identifying routes to reach the locations of the respective topics.
SUMMARYThis Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Many devices may provide a variety of tools that may facilitate users in conversations involving location-based topics. However, in order to use these tools, a user may have to direct his or her attention, alternatively, to the other individuals involved in the conversation and to directing commands at the device to invoke such tools. For example, a set of users may agree to have dinner together; request a device to provide a list of nearby restaurants; discuss the options with each other; request the device to provide more information about a restaurant, such as a menu or a location; discuss and agree on a selected restaurant; and then request the device to plot a route from a current location to the location of the selected restaurant. In this manner, the users may utilize their devices to facilitate the conversation of location-based topics.
While the tools provided by such devices may significantly facilitate the conversation, it may be appreciated that the alternatively directed attention of the users may also impair the conversation. For example, a user who is interacting with a device to retrieve such information may miss part of the conversation. Additionally, sharing such information among users may be difficult; e.g., a first user may use a recommendations application to search for location-based topics of interest, but may have to relate the identified options to a second individual through the conversation, rather than enabling the second individual to view the same options as presented to the user of the device.
Presented herein are techniques for configuring devices to facilitate conversations about location-based topics. In an embodiment of these techniques, a device may be configured to monitor a conversation among at least two individuals to detect topics referenced by an individual. Upon detecting a topic referenced by a first individual to a second individual of the conversation, where the topic is associated with a location and is not referenced as a command to the device, the device may identify the location of the topic, and present on the display a map indicating the location of the topic. In particular, the map may be presented alongside the conversation, such as adjacent to a text-based conversation (e.g., a textual conversation, a verbal conversation that is automatically translated into text, or a video conversation where speech and/or nonverbal communication are automatically translated into text), a map may be presented that automatically displays the locations of topics referenced within the conversation by the individuals. In further embodiments, a device may maintain a list of the topics referenced in the conversation; may automatically suggest topics for the conversation (e.g., presenting a set of recommendations for restaurants that are compatible with the dietary preferences specified in the social profiles of the individuals, and that are near the current locations of the individuals); may allow individuals to alter the list; and may synchronize the presentation of the list with a second device of a second individual, thereby enabling the individuals to review the options together. These and other variations in the presentation of location-based topics in furtherance of a conversation among the individuals may be achievable in accordance with the techniques presented herein.
To the accomplishment of the foregoing and related ends, the following description and annexed drawings set forth certain illustrative aspects and implementations. These are indicative of but a few of the various ways in which one or more aspects may be employed. Other aspects, advantages, and novel features of the disclosure will become apparent from the following detailed description when considered in conjunction with the annexed drawings.
DESCRIPTION OF THE DRAWINGSFIG. 1 is an illustration of an exemplary scenario featuring a conversation among two individuals about a set of location-based topics.
FIG. 2 is an illustration of an exemplary scenario featuring the facilitation of a conversation among two individuals about a set of location-based topics in accordance with the techniques presented herein.
FIG. 3 is an illustration of an exemplary method of facilitating a conversation among at least two users about a topic associated with a location in accordance with the techniques presented herein.
FIG. 4 is a component block diagram illustrating an exemplary system for facilitating a conversation among at least two users about a topic associated with a location in accordance with the techniques presented herein.
FIG. 5 is an illustration of an exemplary computer-readable medium including processor-executable instructions configured to embody one or more of the provisions set forth herein.
FIG. 6 is an illustration of an exemplary scenario featuring a grouping of topic groups referenced within a conversation among two individuals in accordance with the techniques presented herein.
FIG. 7 is an illustration of an exemplary scenario featuring a viewing of information about a location-based topic referenced in a conversation among at least two individuals in accordance with the techniques presented herein.
FIG. 8 is an illustration of an exemplary scenario featuring a presentation of recommendations of location-based topics to a user in accordance with the techniques presented herein.
FIG. 9 is an illustration of an exemplary scenario featuring a recommendation of location-based topics for a conversation among at least two individuals in accordance with the techniques presented herein.
FIG. 10 is an illustration of an exemplary computing environment wherein a portion of the present techniques may be implemented and/or utilized.
DETAILED DESCRIPTIONThe claimed subject matter is now 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 claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.
A. IntroductionFIG. 1 is an illustration of anexemplary scenario100 featuring a conversation among a set ofindividuals102 using a pair ofdevices104 to engage in aconversation106 that includes references to topics that are associated with a location.
In thisexemplary scenario100, at afirst time point122, afirst individual102 uses afirst device104 to express afirst message108, indicating an invitation to asecond individual102 to join thefirst individual102 for dinner. Thefirst device104 transmits110 thefirst message108 to asecond device104 operated by thesecond individual102, who receives thefirst message108 and begins to consider the options for dinner.
At asecond time point124, thesecond individual102 momentarily withdraws from theconversation106 in order to direct acommand112 to thesecond device104, e.g., a request to present a list of restaurants in the area of thesecond individual102. Thesecond device104 presents a set ofsearch results114, and thesecond individual102 provisionally selects a restaurant to suggest to the first individual102.
At athird time126, thesecond individual102 returns to theconversation106 and expresses asecond message108, indicating a suggestion of a restaurant. Thesecond device104 transmits110 thesecond message108 to thefirst device104, which presents thesecond message108 to thefirst individual102.
At afourth time128, thefirst individual102 momentarily withdraws from theconversation106 to investigate the restaurant referenced in thesecond message108 from thesecond individual102. The first individual102 directs acommand112 to thefirst device104 to show a location map including alocation120 associated with thetopic116 of the second message108 (e.g., the street address of the restaurant). Thefirst device104 therefore presents to the first individual102 amapping application114, including amap118 that depicts thelocation120 of thetopic116 in relation to thefirst individual102.
At afifth time point130, the first individual102 determines that the restaurant suggested by thesecond individual102 is acceptable, and returns to theconversation106 to create athird message108 directed to thesecond individual102. Thefirst device104 of thefirst individual102 transmits110 thethird message108 to thesecond individual102 to complete theconversation106. In this manner, thedevices104 of theindividuals102 facilitate theconversation106 by presenting information about thetopics116 and thelocations120 associated therewith.
B. Presented TechniquesTheexemplary scenario100 ofFIG. 1 provides examples of the manner in whichdevices104 may facilitate aconversation106 among at least twoindividuals102 involvingtopics116 that are associated with locations120 (e.g., restaurants for which a street address or geopositioning coordinate may be identified). However, in theexemplary scenario100 ofFIG. 1, several aspects of this interaction may be disadvantageous to one or bothindividuals102.
As a first example, eachindividual102 utilizes adevice104 to retrieve information about thetopics116 referenced in theconversation106 by directing acommand112 to thedevice104. However, doing so diverts the attention of the individual102 from theconversation106 to thedevice104 in order to initiate thecommand112 and to view the provided information. During this period of diversion, the individual102 may miss parts of the conversation; e.g., at thefourth time point128, while thefirst individual102 is examining themap118 of thelocation102 of the restaurant, thesecond individual102 may not be aware that thefirst individual102 has momentarily withdrawn form theconversation106. Thesecond individual102 may therefore continue speaking, and thefirst individual102 may not hear thesecond individual102, resulting in miscommunication. Alternatively, thefirst individual102 may instruct thesecond individual102 to wait while thefirst individual102 examines themap118, causing a disruptive delay in theconversation106 that may frustrate thesecond individual102.
As a second example, while one individual102 is using adevice104 to view information that is pertinent to theconversation106, the other individual102 is unable to view the same information. Rather, each individual102 individually views the information, and then creates amessage108 relaying the information to theother individual102. This exchange of information may be inefficient and/or time-consuming. For example, thefirst individual102 executes a query, views some information, and then creates amessage108 conveying some details thesecond individual102. Thesecond individual102 then re-inputs the same query in order to review the same information. Thus, while eachdevice104 assists one of theindividuals102, thedevices104 do not interoperate to share the information with theother individual102; rather, theindividuals102 convey such information through the exchange of manually createdmessages108.
As a third example, the exchange of information throughmessages108 may result in a variety of communication errors. For example, thefirst device104 of thefirst user102 may fulfill thecommand112 to view a map to “Joe's Pizza” by searching for and finding a restaurant matching the specified name. However, this restaurant may differ from the restaurant being displayed on thesecond device104 of thesecond user102. Thus, theindividuals102 may exchangemessages108 agreeing to meet at aparticular location120, but may inadvertently be referring to different locations presented by thedevices104. These and other disadvantages may arise from the manner in which theindividuals102 anddevices104 interact in theexemplary scenario100 ofFIG. 1.
Presented herein are techniques for alternatively configuring adevice104 to facilitate aconversation106 among at least twoindividuals102 involving atopic116 that is associated with alocation120. In accordance with these techniques, rather than waiting for acommand112 from an individual102 to present information about atopic116 while the individual102 engages in theconversation106, adevice104 may monitor theconversation106 to detect a reference from afirst individual102 to asecond individual102 within theconversation106 that involves atopic116 associated with alocation120. Notably, thedevice104 may detect this reference as part of theconversation106 among theindividuals102, e.g., in amessage108 written by thefirst individual102 and directed to thesecond individual102, rather than as acommand112 directed by the individual102 to thedevice104. Upon detecting such a reference, thedevice104 may identify thelocation120 of the topic116 (e.g., performing a search of a location database to identify a street address or geolocation coordinate identifying thelocation120 of the topic116). Thedevice104 may then present to the individual102 amap118 indicating thelocation120 of the topic. Notably, thismap118 may be presented concurrently with theconversation106; e.g., a textual conversation interface (such as an exchange of writtenmessages108, and/or a speech-to-text transcript of a verbal communication) may be presented adjacent to themap118 indicating thelocations120 of thetopics116 of theconversation106.
FIG. 2 presents an illustration of anexemplary scenario200 featuring a pair ofdevices104 respectively configured to facilitate aconversation106 among twoindividuals102 in accordance with the techniques presented herein. In thisexemplary scenario200, at afirst time point210, thefirst individual102 creates amessage108 to thesecond individual102 within theconversation106, where thefirst message108 references atopic116 that is associated with a location120 (e.g., a restaurant having a street address). In thisexemplary scenario200, thefirst individual102 creates themessage108 by speaking to thefirst device104. Thefirst device104 of thefirst individual102 transmits110 thefirst message108 to thesecond device104. For example, thefirst message108 may be translated by thefirst device104 into text, which is transmitted to thesecond device104; or, thefirst device104 may transmit thefirst message108 in verbal form to thesecond device104 for presentation to thesecond individual102 in verbal form; or, thesecond device104 may, upon receiving the verbalfirst message108 from thefirst device104, translate the verbal message into a text message for presentation to thesecond user102. A variety of such techniques may also be utilized, e.g., to present thefirst message108 of thefirst user102 in both verbal and text form.
As further illustrated in theexemplary scenario200 ofFIG. 2, one or both of thefirst device104 and thesecond device104 also monitors theconversation106, and thus detects the reference in thefirst message108 to thetopic116 associated with alocation120. For example, thefirst device104 and/or thesecond device104 may evaluate thefirst message108 of thefirst individual102, and may detect the mention of the location120 (“Joe's Pizza”). Such detection may be achieved, e.g., through comparison of the content of thefirst message108 with a general set of keywords or key phrases (such as a directory of known locations), and/or a specific set of identifiers (such aslocations120 included in an address book of either individual102), and/or according to the context of the first message108 (such as applying lexical analysis to determine that a phrase such as “let's have dinner at . . . ” is frequently followed by the name of a restaurant). Thefirst device104 and/or thesecond device104 may also utilize various forms of natural language parsing, such as machine learning techniques that are trained to understand spoken language; dialogue management techniques to determine a particular domain (e.g., a list of places to go); the referenced entities (e.g., relative references to the entities of the conversation, such as “the other one” when discussing two restaurants); the action and/or intent of the participants, such as a consensus for making a reservation; and related attributes, such as ratings, menus, reviews, and hours of operation.
At asecond time point212, thefirst device104 presents aconversation interface204 on adisplay202 for the first individual102 (e.g., a text messaging interface, a transcript of a voice chat such as a telephone call, or a videoconference) that includes thefirst message108 of thefirst individual102. Thesecond device104 also presents theconversation interface204 on adisplay202 for thesecond individual102 that includes thefirst message108 from thefirst individual102. In addition, eachdevice104 presents on thedisplay202, adjacent to theconversation interface204, amap interface206 including amap118 that depicts thelocation120 of thetopic116 referenced in thefirst message108. Notably, themap interface206 is presented by eachdevice104 in the absence of acommand112 from either individual102 to present amap118 or otherwise provide information about thetopic116. Rather, one or bothdevices104 has detected the location-based reference in thefirst message108, and has automatically inserted themap interface206 alongside theconversation interface204. Additionally, bothdevices104 automatically present thesame location120 for the topic116 (e.g., because eachdevice104 has individually identified the reference to thetopic116 in thefirst message108 and thelocation120 of thetopic116, and/or because onedevice104 has automatically synchronized with theother device104 to share the information and to coordinate the presentation of themap118 of thelocation120 of thetopic116 to both individuals102).
At athird time point214, thesecond individual102 presents asecond message108 within theconversation106 that references asecond topic116. Thesecond device104 transmits110 thesecond message108 to thefirst device104 for presentation to thefirst individual102. Again, because one or bothdevices104 monitors theconversation106, and thus detects that thesecond message108 references asecond topic116 that is associated with alocation120.
At afourth time point216, theconversation interface204 presented to each individual102 is updated with thesecond message108. Additionally, on one or bothdevices104, thelocation120 of thesecond topic116 is identified, and themap118 presented on thedisplay202 alongside theconversation interface204 is updated to present thelocation120 of thesecond topic116 as well as thelocation120 of thefirst topic116. Again, themap interface206 is updated in the absence of acommand112 from either individual102 to show thelocation120 of thesecond topic116; and, again, bothdevices104 may update themap118 either by individually detecting the reference to thesecond topic116 and inserting thelocation120 of thesecond topic116 into themap118, and/or by synchronizing the presentation to theindividuals102 with theother device104.
At afifth time point218, thefirst individual102 and thesecond individual102 may conclude theconversation106 when thefirst individual102 sends athird message108 accepting the suggestion of thesecond individual102. One or bothdevices104 may detect that theconversation106 has ended and that theindividuals102 have agreed on a particular topic116 (e.g., to have dinner together at the restaurant suggested by the second individual102). Additionally, one or bothdevices104 may present on the display202 amap118 of thelocation120 of the selectedtopic116, and well as aroute208 from the current location of each individual102 to thelocation120.
In comparison with theexemplary scenario100 ofFIG. 1, the manner in which thedevices104 facilitate theconversation106 among theindividuals102, in theexemplary scenario200 ofFIG. 2 may provide some advantages. As a first example, one or bothdevices104 providesmaps118 and/or related information (such as routing) about thetopics116 discussed in theconversation106 automatically by monitoring theconversation106 and detecting references tosuch topics116, rather than in response to acommand112 from an individual102. Accordingly, bothindividuals102 may remain present in and focused upon theconversation106, rather than upon interacting with thedevices104 to request a retrieval of such information. As a second example, thedevices104 may interoperate to present the same information (e.g., the same location of the same restaurant) at the same time on eachdevice104 to each individual102, and without either individual102 having to convey this information to the other individual102 (e.g., neither individual102 has to convey the information presented on onedevice104 to theother individual102, and neither individual102 has to re-enter information into adevice104 that theother individual102 already provided to the other device104). In this manner, the configuration of thedevices202 may facilitate the convenience, efficiency, and/or accuracy of theconversation106 in accordance with the techniques presented herein.
C. Exemplary EmbodimentsFIG. 3 presents an illustration of an exemplary first embodiment of the techniques presented herein, illustrated as anexemplary method300 of facilitating aconversation106 among at least twoindividuals102. The exemplaryfirst method300 may be implemented, e.g., as a set of instructions stored in a memory component (e.g., a memory circuit, a platter of a hard disk drive, a solid-state storage device, or a magnetic or optical disc) of adevice104 having a processor and adisplay202, where the instructions, when executed on the processor, cause thedevice104 to operate according to the techniques presented herein. The exemplaryfirst method300 begins at302 and involves executing304 the instructions on the processor of thedevice104. In particular, the execution of the instructions on the processor causes thedevice104 to monitor306 theconversation106 to detecttopics116 referenced by an individual102. The execution of the instructions also causes thedevice104 to, upon detecting308 atopic116 referenced by afirst individual102 to asecond individual102 of theconversation106, where thetopic116 is associated with alocation102, and where thetopic116 is not referenced as acommand112 to thedevice104, identify310 thelocation120 of thetopic116, and present312, on thedisplay202 of thedevice104, amap118 indicating thelocation120 of thetopic116. In this manner, theexemplary method300 enables the device to facilitate theconversation106 among theindividuals102 in accordance with the techniques presented herein, and so ends at314.
FIG. 4 presents an illustration of an exemplary second embodiment of the techniques presented herein, illustrated as anexemplary system408 for enabling adevice104 to facilitate aconversation106 among at least twoindividuals102. One or more components of theexemplary system408 may be implemented, e.g., as instructions stored in amemory406 of thedevice402 that, when executed on aprocessor404 of thedevice402, cause thedevice402 to perform at least a portion of the techniques presented herein. Alternatively (though not shown), one or more components of theexemplary system408 may be implemented, e.g., as a volatile or nonvolatile logical circuit, such as a particularly designed semiconductor-on-a-chip (SoC) or a configuration of a field-programmable gate array (FPGA), that performs at least a portion of the techniques presented herein, such that the interoperation of the components completes the performance of a variant of the techniques presented herein. Theexemplary system408 includes a conversation monitor410 that monitors theconversation106 to detecttopics116 referenced by an individual102. Theexemplary system408 also includes atopic presenter412 that, upon the conversation monitor410 detecting atopic116 that is referenced by afirst individual102 to asecond individual102 of theconversation106, where the topic is associated with alocation102 and is not referenced as acommand112 to thedevice402, identify alocation120 of thetopic116, and present, on thedisplay202, amap118 indicating thelocation120 of thetopic116. In this manner, the interoperation of the components of theexemplary system406 facilitates theconversation106 among the at least twoindividuals102 in accordance with the techniques presented herein.
Still another embodiment involves a computer-readable medium comprising processor-executable instructions configured to apply the techniques presented herein. Such computer-readable media may include, e.g., computer-readable storage devices involving a tangible device, such as a memory semiconductor (e.g., a semiconductor utilizing static random access memory (SRAM), dynamic random access memory (DRAM), and/or synchronous dynamic random access memory (SDRAM) technologies), a platter of a hard disk drive, a flash memory device, or a magnetic or optical disc (such as a CD-R, DVD-R, or floppy disc), encoding a set of computer-readable instructions that, when executed by a processor of a device, cause the device to implement the techniques presented herein. Such computer-readable media may also include (as a class of technologies that are distinct from computer-readable storage devices) various types of communications media, such as a signal that may be propagated through various physical phenomena (e.g., an electromagnetic signal, a sound wave signal, or an optical signal) and in various wired scenarios (e.g., via an Ethernet or fiber optic cable) and/or wireless scenarios (e.g., a wireless local area network (WLAN) such as WiFi, a personal area network (PAN) such as Bluetooth, or a cellular or radio network), and which encodes a set of computer-readable instructions that, when executed by a processor of a device, cause the device to implement the techniques presented herein.
An exemplary computer-readable medium that may be devised in these ways is illustrated inFIG. 5, wherein theimplementation600 comprises a computer-readable memory device502 (e.g., a CD-R, DVD-R, or a platter of a hard disk drive), on which is encoded computer-readable data504. This computer-readable data504 in turn comprises a set ofcomputer instructions506 configured to operate according to the principles set forth herein. In a first such embodiment, the processor-executable instructions506 may be configured to cause a computing device to perform a method of facilitating aconversation106 among at least twoindividuals102, such as theexemplary method300 ofFIG. 3. In a second such embodiment, the processor-executable instructions506 may be configured to implement one or more components of a system of facilitating aconversation106 among at least twoindividuals102, such as theexemplary system408 ofFIG. 4. Some embodiments of this computer-readable medium may comprise a computer-readable storage device (e.g., a hard disk drive, an optical disc, or a flash memory device) that is configured to store processor-executable instructions configured in this manner. Many such computer-readable media may be devised by those of ordinary skill in the art that are configured to operate in accordance with the techniques presented herein.
D. VariationsThe techniques discussed herein may be devised with variations in many aspects, and some variations may present additional advantages and/or reduce disadvantages with respect to other variations of these and other techniques. Moreover, some variations may be implemented in combination, and some combinations may feature additional advantages and/or reduced disadvantages through synergistic cooperation. The variations may be incorporated in various embodiments (e.g., theexemplary method300 ofFIG. 3; theexemplary system408 ofFIG. 4; and the exemplary computer-readable memory device502 ofFIG. 5) to confer individual and/or synergistic advantages upon such embodiments.
D1. Scenarios
A first aspect that may vary among embodiments of these techniques relates to the scenarios wherein such techniques may be utilized.
As a first variation of this first aspect, the techniques presented herein may be utilized with many types ofdevices104, including workstations; servers; game consoles; laptop and palmtop form factor computers; and mobile devices, such as phones, tablets, texting devices, cameras, portable media players, portable game players, and global positioning system (GPS) receivers. Such techniques may also be provided by as a first device as a service for a second device (e.g., a server and/or client), and/or by an interoperating set of devices (e.g., devices of respective individuals that synchronize and coordinate the presentation of information to the individuals102). Additionally, one ormore devices104 may be utilized by one of theindividuals102 of theconversation106, or adevice104 may be utilized by two or more individuals102 (e.g., passengers in an automobile, or a group ofindividuals102 together consulting an information kiosk).
As a second variation of this first aspect, the techniques presented herein may be utilized to facilitate many types ofconversations106. Such conversations may include a variety of modalities, such as an exchange of text messages (e.g., email messages, Simple Message Service (SMS) messages, and/or chat sessions, such as instant messaging scenarios); an exchange of voice communication (e.g., a phone call or voice-over-internet-protocol (VoIP) session); an exchange of images (e.g., a photo exchange service); an exchange of video streams (e.g., a videoconference); and/or an exchange of personal information (e.g., a mutual location sharing application). In some such scenarios, different individuals may participate in different modalities (e.g., afirst individual102 may generate text messages, while asecond individual102 may generate a voice stream). Adevice104 of an individual102 may therefore provide an asymmetric, mixed-modality communication session, and/or may translate from a first modality to a second modality (e.g., translating an incoming voice stream into a textual transcript, such as by using a speech-to-text interpreter). Alternatively or additionally, aparticular individual102 in the conversation may only send or only receive messages (e.g., a passive listener of the conversation106). Alternatively or additionally, eachdevice104 may be utilized by oneindividual102, or by a group of two ormore individuals102 participating collectively in theconversation106. As a further variation, a conversation server that interoperates with one orseveral devices104 to facilitate the conversation between theindividuals102 may perform all or some of the monitoring, detecting, identifying, and/or presenting involved in the techniques presented herein.
As a third variation of this first aspect, the techniques presented herein may be utilized to facilitate many types ofconversations106. In some such scenarios, translation may be performed (e.g., translating a first language of afirst individual102 to a second language of asecond individual102, or translating from a native language of afirst individual102 to an accessibility language understood by asecond individual102, such as Braille). Alternatively or additionally,such conversations106 may include references to many types oftopics116 associated with alocation120, such as a residence of an individual102 (including an individual102 participating in the conversation106); a business (e.g., a restaurant, a theater, or an office); an event (e.g., a concert or site of a news story); and/or an individual (e.g., the current location of an individual102 of the conversation106). In some variations, the conversation between theindividuals102 may be asynchronous, such as an exchange of text or email messages, and the evaluation of such messages to identify referencedlocations120 may be performed in a non-realtime manner. In other scenarios, the conversation between theindividuals102 may be fluid and realtime, such as a telephone call or videoconference, andrespective devices104 may perform the evaluation ofmessages108 in a realtime or near-realtime manner concurrently with the conversation, which may enable a rapidly responsive updating of a map to reflect the topics andlocations120 currently being discussed by theindividuals102. Many such scenarios may be devised where the techniques presented herein may be advantageously utilized.
D2. Detecting and Tracking Referenced Topics
A second aspect that may vary among embodiments of the techniques presented herein relates to the manner of identifyingtopics116 referenced within theconversation106, and of trackingsuch topics116 through the conversation.
As a first variation of this second aspect, adevice104 may monitor theconversation106 to detect references totopics116 in various ways. As a first such example, thedevice104 may comprise a set of recognizable keywords or phrases, such as the names of restaurants in the area of one ormore individuals102 of theconversation106, and may detect instances of these keywords for phrases in themessages108 of theconversation106. Such keywords or phrases may include, e.g., the names oflocations120 where one or more of theindividuals102 has recently and/or frequently visited, and/or the names oflocations120 that are associated with a calendar event for one or more of theindividuals102. Such keywords and/or phrases key may also be drawn from data sources that are particular to theindividuals102, such as those associated withlocations120 that are near the current location of one ormore individuals102, and/or an address book or travel history of one ormore individuals102. As another example, such keywords may comprise the names oflocations120 that are of high and/or trending popularity in the vicinity of one or more of theindividuals102, and/or among contacts of one or more of theindividuals102 within a social network or an institution. As a further variation, such concepts may be selected from two or more individual profiles of theindividuals102 of the conversation, such as including a second individual profile of asecond individual102 of the conversation.
As a second such example of this first variation of this second aspect, thedevice104 may utilize a natural-language parsing technique to detect the references, such as linguistic structure and conversational patterns (e.g., phrases such as “meet me at [name of location]” and “let's visit [name of location]” indicating the name of a referenced location). As a third such example, thedevice104 may utilize metadata, such as a hashtag or hyperlink inserted by auser102 into amessage108 that identifies atopic116 having alocation120. As a fourth such example, thedevice104 may analyze theconversation106 with a machine learning evaluation technique, such as an artificial neural network that has been trained to recognizetopics116 arising withinconversations106. Such machine-learning evaluation techniques may involve, e.g., identifying the domain of the conversation, including thetopics116 and/orlocations120 that are associated with such domains (e.g., conversations about meals, which frequently involve references torestaurant locations120, vs. conversations about social plans, which frequently involve references tolocations120 such as movie theaters and concert halls). Thefirst device104 and/or thesecond device104 may also utilize various forms of natural language parsing, such as machine learning techniques that are trained to understand spoken language; dialogue management techniques to determine a particular domain (e.g., a list of places to go); the referenced entities (e.g., relative references to the entities of the conversation, such as “the other one” when discussing two restaurants); the action and/or intent of the participants, such as a consensus for making a reservation; and related attributes, such as ratings, menus, reviews, and hours of operation.
As a second variation of this second aspect, in addition to identifying thetopics116 of theconversation106, adevice104 may track a set of one or more topic groups arising within theconversation106 that are respectively associated with at least onetopic116. For example, theindividuals102 may discuss a set of evening plans, including (as a first topic group) restaurants where theindividuals102 may meet for dinner, and (as a second topic group) locations to view a film following dinner. As theindividuals102 reference and discuss thetopics116, in addition to identifying thetopics116 and presenting amap118 indicating thelocations120 of thetopics116, adevice104 may group the list oftopics116 into topic groups, thereby facilitating an organized summary of theconversation106. For example, a topic presenter may, upon detecting atopic116 referenced by afirst individual102 to asecond individual102 of theconversation106, identify a selected topic group of theconversation106 that is associated with thetopic116, and store thetopic116 in the conversation topic set, where the storage associated thetopic116 with the selected topic group. Thedevice104 may also present, on thedisplay202, a list comprising at least two topic groups, and thetopics116 of theconversation106 that are associated with the respective topic groups.
As a third variation of this second aspect, adevice104 monitoring theconversation106 may track a set oftopics116 referenced by theindividuals102 during theconversation106. For example, upon detecting atopic116 referenced by afirst individual102 of theconversation106, adevice104 may store thetopic116 in a conversation topic set. Thedevice104 may then present, on thedisplay202, a list comprising the conversation topic set, and upon receiving from an individual102 a selection of a selectedtopic116 in the list, present on themap118 thelocation120 of the selected topic116 (e.g., a list of the restaurants discussed by theindividuals102 during aconversation106 about where to meet for dinner). Thedevice104 may also detect the selection by an individual102 of atopic116 in the list, and may present on themap118 thelocation120 of the selected topic16. Additionally, thedevice104 may persistently store the conversation topic list for later review by theindividuals102. In an embodiment, upon detecting a conversation end, thedevice104 stores the conversation topic set; and upon receiving a request from an individual102 to present the conversation topic set after the conversation end, thedevice104 may present, on thedisplay202, a list comprising the conversation topic set.
In addition to collecting, storing, and presenting thetopics116 of theconversation106, further variations of this third variation of this second aspect involve altering the list comprising the conversation topic set to reflect the substance of theconversation106 among theindividuals102. For example, upon receiving a request from an individual102 to alter the conversation topic set, thedevice104 alter the conversation topic set according to the request of the individual102. Such requests may include, e.g., a request from an individual102 for a removal of a selectedtopic116 from the conversation topic set, such as an expression of disapproval of atopic116 suggested by another individual102 of theconversation106. In addition to removing thetopic116 from theconversation106, thedevice104 may subsequently refrain from presenting the selectedtopic116 in the conversation topic set. As a still further variation, one ormore individuals102 within aconversation106 may be designated as a conversation leader of the conversation106 (e.g., a moderator of a large group discussion). Adevice104 may alter the conversation topic set only in accordance with requests received from a conversation leader, and may refrain from altering the conversation in response to request fromindividuals102 who are not a conversation leader of theconversation106. That is, whilemany individuals102 in the discussion may propose the addition and/or removal oftopics116, thedevice104 may alter the conversation topic set only when such proposals are accepted by a conversation leader of theconversation106.
FIG. 6 presents an illustration of anexemplary scenario600 featuring several of the variations of the second aspect presented herein. In thisexemplary scenario600, at afirst time point604, afirst individual102 in aconversation106 provides amessage108 referencing two topics116: the name of a restaurant, and the name of a theater. In view of thismessage108, adevice104 may identify adifferent topic group602 for each topic116 (e.g., a “dinner”topic group602 fortopics116 comprising restaurants, and a “movie”topic group602 fortopics116 comprising theaters); and upon presenting theconversation interface204, thedevice104 may group the list oftopics116 according to thetopic groups602 of thetopics116. At asecond time point606, asecond individual102 of theconversation106 may provide asecond message108 declining consideration of a selectedtopic116 of theconversation106, and thedevice104 may alter the conversation topic set by removing the selectedtopic116 from the list. Thesecond message108 may also specify analternative topic116 for each of the first topic group602 (e.g., a different place to have dinner) and the second topic group602 (e.g., a different theater where theindividuals102 may view a film). Thedevice104 may identify thetopic group602 associated with eachtopic116 of the second message108 (e.g., by referring to a location database to identify the type oflocation120 referenced by thetopic116, and/or by evaluating the context of theconversation106 in which thetopic116 was referenced), and may present the list on thedisplay202 with the addedtopics116 respectively grouped according to thetopic group602 associated with thetopic116. Embodiments may utilize many such variations while identifying and tracking thetopics116 referenced within aconversation106 in accordance with the techniques presented herein.
D3. Presenting Locations of Conversation Topics
A third aspect that may vary among embodiments of the techniques presented herein involves the manner of presenting to an individual102 the location(s)120 of the topic(s)116 of theconversation106 on amap118.
As a first variation of this third aspect, many types ofmaps118 may be presented, including an area map, a road map, an aerial map (e.g., a bird's-eye view captured by a satellite of an area including a location120), a topographical map, and a population or traffic map. Themap118 may also present only onelocation120, or therespective locations120 of two ormore topics116, and/or may also indicate a current orprojects location120 of one ormore individuals102 of theconversation106.
As a second variation of this third aspect, themap interface206 may be presented on thedisplay202 to an individual102 in various ways. For example, thedevice104 may initially refrain from presenting themap118 in amap interface206 of theconversation interface204 before detecting in theconversation106 at least one reference to atopic116 that is associated with alocation120. Upon detecting such a reference, thedevice104 may insert themap interface206 into theconversation interface204, including themap118 indicating thelocation120 of thetopic116. Alternatively or additionally, upon detecting a shift in theconversation106 away from references totopics116 associated withlocations120, thedevice104 may remove themap interface206 from theconversation interface204.
As a third variation of this third aspect, thedevice104 may occasionally substitute the presentation of themap118 of alocation120 with other information about thetopic116 of thelocation120. For example, upon receiving from an individual120 a selection of a selectedtopic116 of theconversation106, thedevice104 may replace themap118 on thedisplay202 with an information interface describing the topic106 (e.g., a picture of thelocation120 of thetopic116, a menu of a restaurant, or a listing of movies playing at a theater); and upon receiving from an individual102 a request to return to themap118, thedevice104 may replace the information interface on thedisplay202 with themap118. Such information may be retrieved from a variety of sources (e.g., from a web page associated with thetopic106; from a location database or a reviews database; or from an advertiser, such as an advertisement associated with atopic116 including a discount for theindividuals102, where the advertisement is retrieved and presented with thetopic116 in the map interface206).
As a fourth variation of this third aspect, thedevice104 may present a set of action options for actions that are associated with atopic116 and/orlocation120. Thedevice104 may therefore identify at least one action that is associated with thetopic106, Thedevice104 may therefore present on thedisplay202, associated with thetopic116, an action option to invoke the respective actions; and, upon receiving from an individual102 a selection of a selected action option for a selectedtopic116, invoke the selected action option for the selectedtopic116.
FIG. 7 presents an illustration of anexemplary scenario700 featuring several variations in the presentation, on thedisplay202 of adevice104, oflocations120 for a selectedtopic116 of aconversation106. In thisexemplary scenario700, at afirst time point708, thedevice104 may include in the presentation of the conversation interface204 (not shown) amap interface206 that, in addition to indicating thelocation120 of thetopic116, presentsaction options702 for respective actions that may be invoked in relation to thetopic116. In thisexemplary scenario700, the selectedtopic116 comprises a restaurant, and thedevice104 identifies and presentsaction options702 for actions including plotting a route between a current location of the individual102 and thelocation120; initiating a reservation of a table at the restaurant; and initiating a communication session between the restaurant and the individual102. If the individual102 selects704 anaction option702 offering to show a menu for the restaurant, then at asecond time point710, thedisplay202 of thedevice104 hides themap interface206 and presents aninformation interface706 providing information about thetopic116, i.e., the menu of the restaurant. Auser selection704 of an action option to return to the map causes a removal of theinformation interface706 and a second presentation of themap interface206. In this manner, the presentation of thetopic116 andlocation120 may be responsive to user interaction initiated by an individual102, and may respond accordingly by adjusting the contents of thedisplay202 of thedevice104, in accordance with several variations of this third aspect of the techniques presented herein.
D4. Topic Suggestions
A fourth aspect that may vary among embodiments of the techniques presented herein involves suggestedtopics106 for atopic group602 of theconversation106. For example, if theconversation106 of theindividuals102 focuses on where to have dinner, adevice104 may identify at least one suggestedtopic116 for thetopic group602, and present the least one suggestedtopic116 to the individual102.
As a first variation of this fourth aspect, suggestedtopics116 may be inserted into aconversation106 in response to various events. As a first such example, suggestedtopics116 may be inserted upon detecting a new topic group602 (e.g., a suggestion from afirst individual102 to asecond individual102 to have dinner somewhere). As a second such example, upon receiving a request for removal of atopic116 from atopic group602, adevice104 may identify analternative topic116 for the selectedtopic group602, and suggest the alternative topic in lieu of the removedtopic116. As a third such example, alternative topics may be identified and suggested if atopic group602 remains unfilled for at least a threshold duration (e.g., if theindividuals102 are unable to agree on a restaurant after a minute of conversation106). As a fourth such example, thedevice104 may present to an individual102 an option to identify and present suggestedtopics116 for atopic group602, and may do so upon receiving an activation of the option by the individual102 (e.g., upon the individual102 selecting a “suggestions” button).
As a second variation of this fourth aspect, suggestedtopics116 may be automatically presented by thedevice104 to the individual102. For example, upon detecting a reference to atopic116, thedevice104 may automatically present location-based suggestions on amap118 without awaiting a request from the individual102 to do so. Alternatively, and as illustrated in theexemplary scenario800 ofFIG. 8, the suggestedtopics116 may be presented in response to input from the individual102. At afirst time point806, theindividuals102 in aconversation106 may exchangemessages108 involving atopic116, and adevice104 may identify one or more suggestedtopics116 respectively associated with alocation120. At asecond time point808, thedevice104 may present asuggestions pane802 adjacent to theconversation110 with a list of suggestedtopics116. At athird time point810, thedevice104 may detect user input from the individual102 comprising aselection804 of a suggestedtopic116, and in response and at afourth time point810, thedevice104 may present amap interface206 adjacent to theconversation110 with amap118 indicating thelocation120 of the suggestedtopic116 selected by the individual102. In this manner, thedevice104 may utilize manual user input in the presentation of the suggestedtopics116 to the individual102.
As a third variation of this fourth aspect, suggestedtopics116 may be integrated with at least onetopic116 referenced by an individual102 of theconversation106 in various ways. For example, the suggestedtopics116 may be presented in a different area of themap interface206 than thetopics116 referenced by the individuals102 (e.g., a “referenced restaurants” list and a “suggested restaurants” list). Alternatively, the suggestedtopics116 may be presented together with thetopics116 referenced by theindividuals102, e.g., as a mixed list, optionally with the suggestedtopics116 presented in a different visual manner than thetopics116 referenced by theindividuals102 of theconversation106.
As a fourth variation of this fourth aspect, suggestedtopics116 may be identified in a variety of ways. As a first such example, at least one individual102 may identify at least one topic group constraint for a topic group602 (e.g., for the topic group of restaurants, an individual102 may specify a preference for a particular type of food), and thedevice104 may identify only suggested topics that satisfy the topic group constraints of thetopic group602. As a second such example, adevice104 may refer to an individual profile of at least one individual102 in theconversation106, and may identify suggested topics that are consistent with the individual profile (e.g., restaurants that are consistent with dietary restrictions of the individual102 specified in the individual profile, or restaurants where the individual profile indicates that the individual102 has previously visited and enjoyed). If a plurality of suggestedtopics116 are available for presentation, adevice104 may calculate, for each suggested topic, a suggested topic score associating the suggested topic16 with the topic group constraints of thetopic group602, and may present the suggestedtopics602 sorted according to the suggested topic scores. In some scenarios, the identification of suggestedtopics116 may be difficult, e.g., ifindividuals102 in theconversation106 have conflicting preferences or restrictions, and thedevice104 may have to select suggested topics as a consensus among theindividuals102.
FIG. 9 presents an illustration of an exemplary scenario featuring a presentation of suggested topics toindividuals102 in view of several of the variations of this fourth aspect. In thisexemplary scenario900, a set ofindividuals102 are having aconversation106 about where to meet for dinner. Adevice104 of an individual102 may have access to anindividual profile902 for each individual102, where theindividual profile902 specifies alocation120 of the individual102 (e.g., a current location of the individual102, or a projectedlocation102 of the individual102 prior to a selected meeting time); a set of specified dietary preferences and dietary restrictions; and a price range preference. The details of theindividual profiles902 may be regarded by thedevice104 astopic group constraints904 for a “dinner restaurants”topic group602. Thedevice104 may also have access to atopic database906, such as a restaurant database providing various details about the restaurants. Thedevice104 may endeavor to select, for presentation to theindividuals120 as suggestedtopics116, a subset oftopics116 that are consistent with the details of theindividual profiles902. Additionally, in this scenario, none of thetopics116 is consistent with all of the topic group constraints904 (e.g., because theindividuals102 are located in different areas of a region, nolocation120 is within a short distance of all of the individuals102). Therefore, thedevice104 may calculate, for eachtopic116, a suggested topic score908 indicating a conformity of thetopic116 with thetopic group constraints904. Additionally, varioustopic group constraints904 may be attributed different weights (e.g., a dietary restriction of asingle individual102, such as availability of gluten-free food options, may be a rigid constraint, while food preferences may be resolved by consensus). As another example, a consensus aboutlocations102 may be selected to minimize the collective travel time of all of theindividuals102, and/or to achieve an earliest meeting time, taking into account the different travel options available to each individual102. Thedevice104 may then present the suggestedtopics116 for the meeting to theindividuals102 as atopic group602 with amap118 presenting thelocation120 of eachtopic116, and optionally including arating910 for eachtopic116 in thetopic group602 indicating an anticipated degree of consensus among theindividuals102, and/or sorting thetopics116 according to therespective ratings910. In this manner, a device may provide atopic group602 with amap118 indicating thelocations120 of suggestedtopics116 in accordance with the techniques presented herein.
E. Computing EnvironmentThe techniques discussed herein may be devised with variations in many aspects, and some variations may present additional advantages and/or reduce disadvantages with respect to other variations of these and other techniques. Moreover, some variations may be implemented in combination, and some combinations may feature additional advantages and/or reduced disadvantages through synergistic cooperation. The variations may be incorporated in various embodiments to confer individual and/or synergistic advantages upon such embodiments.
FIG. 10 and the following discussion provide a brief, general description of a suitable computing environment to implement embodiments of one or more of the provisions set forth herein. The operating environment ofFIG. 10 is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the operating environment. Example computing devices include, but are not limited to, personal computers, server computers, hand-held or laptop devices, mobile devices (such as mobile phones, Personal Digital Assistants (PDAs), media players, and the like), multiprocessor systems, consumer electronics, mini computers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Although not required, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media (discussed below). Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract data types. Typically, the functionality of the computer readable instructions may be combined or distributed as desired in various environments.
FIG. 10 illustrates an example of asystem1000 comprising acomputing device1002 configured to implement one or more embodiments provided herein. In one configuration,computing device1002 includes at least oneprocessing unit1006 andmemory1008. Depending on the exact configuration and type of computing device,memory1008 may be volatile (such as RAM, for example), non-volatile (such as ROM, flash memory, etc., for example) or some combination of the two. This configuration is illustrated inFIG. 10 by dashedline1004.
In other embodiments,device1002 may include additional features and/or functionality. For example,device1002 may also include additional storage (e.g., removable and/or non-removable) including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated inFIG. 10 bystorage1010. In one embodiment, computer readable instructions to implement one or more embodiments provided herein may be instorage1010.Storage1010 may also store other computer readable instructions to implement an operating system, an application program, and the like. Computer readable instructions may be loaded inmemory1008 for execution byprocessing unit1006, for example.
The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data.Memory1008 andstorage1010 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical 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 bydevice1002. Any such computer storage media may be part ofdevice1002.
Device1002 may also include communication connection(s)1016 that allowsdevice1002 to communicate with other devices. Communication connection(s)1016 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connectingcomputing device1002 to other computing devices. Communication connection(s)1016 may include a wired connection or a wireless connection. Communication connection(s)1016 may transmit and/or receive communication media.
The term “computer readable media” may include communication media. Communication media typically embodies computer readable instructions or other data in a “modulated data signal” such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” may include a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
Device1002 may include input device(s)1014 such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, and/or any other input device. Output device(s)1012 such as one or more displays, speakers, printers, and/or any other output device may also be included indevice1002. Input device(s)1014 and output device(s)1012 may be connected todevice1002 via a wired connection, wireless connection, or any combination thereof. In one embodiment, an input device or an output device from another computing device may be used as input device(s)1014 or output device(s)1012 forcomputing device1002.
Components ofcomputing device1002 may be connected by various interconnects, such as a bus. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a Universal Serial Bus (USB), Firewire (IEEE 1394), an optical bus structure, and the like. In another embodiment, components ofcomputing device1002 may be interconnected by a network. For example,memory1008 may be comprised of multiple physical memory units located in different physical locations interconnected by a network.
Those skilled in the art will realize that storage devices utilized to store computer readable instructions may be distributed across a network. For example, acomputing device1020 accessible vianetwork1018 may store computer readable instructions to implement one or more embodiments provided herein.Computing device1002 may accesscomputing device1020 and download a part or all of the computer readable instructions for execution. Alternatively,computing device1002 may download pieces of the computer readable instructions, as needed, or some instructions may be executed atcomputing device1002 and some atcomputing device1020.
F. Use of TermsAlthough 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.
As used in this application, the terms “component,” “module,” “system”, “interface”, and the like are generally 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 controller and the controller 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.
Furthermore, the claimed subject matter 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 subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. 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.
Various operations of embodiments are provided herein. In one embodiment, one or more of the operations described may constitute computer readable instructions stored on one or more computer readable media, which if executed by a computing device, will cause the computing device to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment provided herein.
Moreover, the word “exemplary” is 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 advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
Also, although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements, resources, etc.), the terms 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., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the disclosure. In addition, while a particular feature of the disclosure 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. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”