CLAIM OF PRIORITYThis application is a continuation of U.S. application Ser. No. 16/021,641, filed Jun. 28, 2018, which is a continuation of U.S. application Ser. No. 15/822,779, filed Nov. 27, 2017, which is a continuation of U.S. application Ser. No. 13/722,449, filed Dec. 20, 2012, each of which are hereby incorporated by reference in their entirety.
TECHNICAL FIELDThis application relates generally to the technical field of internet commerce and, in one specific example, to enhancing a result of an online search for information about an item with information derived from a social network of the user conducting the online search.
BACKGROUNDWhen a user searches for information about an item, the user may receive various details about the item. For example, if the user searches for the item on Google, the user may be presented with a list of Uniform Resource Locators (URLs) of web pages containing information relevant to the item. Or, if the user searches for information about an item from a local commerce application, the user may receive information pertaining to local commerce of the item, such as local stores that have the item in stock, the prices for the item at the local stores, and so on. Furthermore, the user may be given the option to purchase the item from a local store so that the item is waiting for the user at the local store. Some local commerce applications, such as RedLaser, may incorporate barcode-scanning technology, which allows the user to scan a barcode of the item to receive the information about the item.
BRIEF DESCRIPTION OF THE DRAWINGSSome embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
FIG. 1 is a network diagram depicting a client-server system within which various example embodiments may be deployed;
FIG. 2 is a block diagram illustrating multiple applications that, in one example embodiment, are provided as part of the networked system ofFIG. 1;
FIG. 3 is a block diagram illustrating example modules of the social. networking integration application(s) ofFIG. 2;
FIG. 4 is a flow chart illustrating an example method of supplementing a presentation of search results pertaining to an item with information about the item collected from a social network of a user;
FIG. 5 is a flow chart illustrating an example method of notifying a user who is looking for a local store that has an item in stock of an additional user in the user's social network who owns the item;
FIG. 6 is a flow chart illustrating an example method of notifying a user of information from a social network of the user that is relevant to a user's search for information about an item;
FIG. 7 is a flow chart illustrating an example method of storing nuggets of information that are relevant to items for presentation to additional users who are interested in the items;
FIG. 8 is a flow chart illustrating an example method of storing nuggets of information that are relevant to items for presentation to additional users who are interested in the items; and
FIG. 9 is a block diagram of a machine in the example form of a computer system within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
DETAILED DESCRIPTIONIn the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art that embodiments may be practiced without these specific details. Further, to avoid obscuring the inventive concepts in unnecessary detail, well-known instruction instances, protocols, structures, and techniques have not been shown in detail. As used herein, the term “or” may be construed in an inclusive or exclusive sense, the term “user” may be construed to include a person or a machine, and the term “interface” may be construed to include an application program interface (API) or a user interface. As used herein, the term “item” refers to a good or a service that is capable of being listed on a network-based publication system (e.g., eBay, Craigslist, or Amazon.com).
In various embodiments, a method of enhancing search results pertaining to an item with information about the item from a social network is disclosed. It is detected that a user is searching for information about the item in a context outside of a social networking context. Data relating to the item is collected from a social network of the user. A notification of the data relating to the item is generated to supplement a search result that is to be presented to the user in response to the searching.
This method and other methods or embodiments disclosed herein may be implemented as a computer system having one or more modules (e.g., hardware modules or software modules). This method and other methods or embodiments disclosed herein may be embodied as instructions stored on a machine-readable medium that, when executed by a processor, cause the processor to perform the method.
FIG. 1 is a network diagram depicting a client-server system100, within which various example embodiments may be deployed. A networkedsystem102, in the example forms of a network-based publication system or other communication system, provides server-side functionality, via a network104 (e.g., the Internet or Wide Area Network (WAN)) to one or more clients.FIG. 1 illustrates, for example, a web client106 (e.g., a browser, such as the Internet Explorer browser developed by Microsoft Corporation of Redmond, Wash.) and aprogrammatic client108 executing onrespective client machines110 and112. Each of the one ormore clients106,108 may include a software application module (e.g., a plug-in, add-in, or macro) that adds a specific service or feature to a larger system.
Within thenetworked system102, anAPI server114 and aweb server116 are coupled to, and provide programmatic and web interfaces respectively to, one ormore application servers118. Theapplication servers118 host one or more applications (e.g., marketplace application(s)120 and payment application(s)122) Theapplication servers118 are, in turn, shown to be coupled to one ormore databases servers124 that facilitate access to one or more databases or NoSQL ornon-relational data stores126.
An additionalnetworked system152, in the example forms of a social networking system or other communication system, provides server-side functionality, via anetwork104 to the one or more clients.
Within thenetworked system152, anAPI server164 and aweb server166 are coupled to, and provide programmatic and web interfaces respectively to, one ormore application servers168. Theapplication servers168 host one or more applications (e.g., social networking application(s)170). Theapplication servers168 are, in turn, shown to be coupled to one ormore databases servers174 that facilitate access to one or more databases or NoSQL ornon-relational data stores176.
Theapplications120,122, and170 may provide a number of functions and services to users who access thenetworked systems102 and152. While the applications are shown inFIG. 1 to form part of thenetworked systems102 and152, in alternative embodiments, the applications may form part of a service that is separate and distinct from thenetworked systems102 and152.
Further, while thesystem100 shown inFIG. 1 employs a client-server architecture, various embodiments are, of course, not limited to such an architecture, and could equally well find application in a distributed, or peer-to-peer, architecture system, for example. The various applications could also be implemented as standalone software programs, which do not necessarily have computer networking capabilities. Additionally, althoughFIG. 1 depictsmachines130,110, and112 as being coupled to a networkedsystem102 and networkedsystem152, it will be readily apparent to one skilled in the art that machines130,110, and112, as well asclient128,106, and108, may be coupled to multiple additional networked systems. For example, theclients128,106, and108 may be coupled to multiple applications, such aspayment applications122 associated with multiple payment processors (e.g., Visa, MasterCard, and American Express).
Theweb client106 accesses thevarious applications120,122, and170 via the web interface supported by theweb server116 or theweb server166 respectively. Similarly, theprogrammatic client108 accesses the various services and functions provided by theapplications120,122, and170 via the programmatic interface provided by theAPI server114 andAPI server164, respectively. Theprogrammatic client108 may, for example, perform batch-mode communications between theprogrammatic client108 and thenetworked systems102 and152.
FIG. 1 also illustrates athird party application128, executing on a thirdparty server machine130, as having programmatic access to thenetworked systems102 and152 via the programmatic interface provided by theAPI server114 and theAPI server164, respectively. For example, thethird party application128 may, utilizing information retrieved from thenetworked systems102 and152, support one or more features or functions on a web site hosted by the third party. The third party website may, for example, provide one or more promotional, social-networking, or payment functions that are supported by the relevant applications of thenetworked system102.
FIG. 2 is a block diagram illustratingmultiple applications120 and122 that, in one example embodiment, are provided as part of thenetworked system102. Theapplications120 and122 may be hosted on dedicated or shared server machines (not shown) that are communicatively coupled to enable communications between server machines. Theapplications120 and122 themselves are communicatively coupled (e.g., via appropriate interfaces) to each other and to various data sources, so as to allow information to be passed between theapplications120 and122, or so as to allow theapplications120 and122 to share and access common data. Theapplications120 and122 may furthermore access one ormore databases126 via thedatabase servers124 ofFIG. 1.
The networked system102 (FIG. 1) may provide a number of publishing, listing and price-setting mechanisms whereby a seller may list (or publish information concerning) goods or services for sale, a buyer can express interest in or indicate a desire to purchase such goods or services, and a price can be set for a transaction pertaining to the goods or services. To this end, inFIG. 2, the marketplace andpayment applications120 and122 are shown to include at least onepublication application200 and one ormore auction applications202, which support auction-format listing and price setting mechanisms (e.g., English, Dutch, Vickrey, Chinese, Double, Reverse auctions etc.). Thevarious auction applications202 may also provide a number of features in support of such auction-format listings, such as a reserve price feature whereby a seller may specify a reserve price in connection with a listing, and a proxy-bidding feature whereby a bidder may invoke automated proxy bidding.
A number of fixed-price applications204 may support fixed-price listing formats (e.g., the traditional classified advertisement-type listing or a catalogue listing) and buyout-type listings. Specifically, buyout-type listings (e.g., including the Buy-It-Now (BIN) technology developed by eBay Inc., of San Jose, Calif.) may be offered in conjunction with auction-format listings, and allow a buyer to purchase goods or services, which are also being offered for sale via an auction, for a fixed-price that is typically higher than the starting price of the auction.
Store applications206 allow a seller to group listings within a “virtual” store, which may be branded and otherwise personalized by and for the seller. Such a virtual store may also offer promotions, incentives and features that are specific and personalized to a relevant seller.
Reputation applications208 allow users that transact, utilizing thenetworked system102, to establish, build, and maintain reputations, which may be made available and published to potential trading partners. Consider that where, for example, thenetworked system102 supports person-to-person trading, users may otherwise have no history or other reference information whereby the trustworthiness and credibility of potential trading partners may be assessed. Thereputation applications208 allow a user (for example through feedback provided by other transaction partners) to establish a reputation within thenetworked system102 over time. Other potential trading partners may then reference such a reputation for the purposes of assessing credibility and trustworthiness.
Personalization applications210 allow users of thenetworked system102 to personalize various aspects of their interactions with thenetworked system102. For example a user may, utilizing anappropriate personalization application210, create a personalized reference page at which information regarding transactions to which the user is (or has been) a party may be viewed. Further, apersonalization application210 may enable a user to personalize listings and other aspects of their interactions with thenetworked system102 and other parties.
Thenetworked system102 may support a number of marketplaces that are customized, for example, for specific geographic regions. A version of thenetworked system102 may be customized for the United Kingdom, whereas another version of thenetworked system102 may be customized for the United States. Each of these versions may operate as an independent marketplace, or may be customized (or internationalized) presentations of a common underlying marketplace. Thenetworked system102 may accordingly include a number ofinternationalization applications212 that customize information (and/or the presentation of information) by thenetworked system102 according to predetermined criteria (e.g., geographic, demographic or marketplace criteria). For example, theinternationalization applications212 may be used to support the customization of information for a number of regional websites that are operated by thenetworked system102 and that are accessible via respective web servers116 (FIG. 1).
Navigation of thenetworked system102 may be facilitated by one ormore navigation applications214. In order to make listings available via thenetworked system102 as visually informing and attractive as possible, the marketplace andpayment applications120 and122 may include one ormore imaging applications216, which users may utilize to upload images for inclusion within listings. Theimaging applications216 also operate to incorporate images within viewed listings. Theimaging applications216 may also support one or more promotional features, such as image galleries that are presented to potential buyers. For example, sellers may pay an additional fee to have an image included within a gallery of images for promoted items.
Listing creation applications218 allow sellers to conveniently author listings pertaining to goods or services that they wish to transact via thenetworked system102, andlisting management applications220 allow sellers to manage such listings. Specifically, where a particular seller has authored and/or published a large number of listings, the management of such listings may present a challenge. Thelisting management applications220 provide a number of features (e.g., auto-relisting, inventory level monitors, etc.) to assist the seller in managing such listings. One or morepost-listing management applications222 also assist sellers with a number of activities that typically occur post-listing. For example, upon completion of an auction facilitated by one ormore auction applications202, a seller may wish to leave feedback regarding a particular buyer. To this end, apost-listing management application222 may provide an interface to one ormore reputation applications208, so as to allow the seller to conveniently provide feedback regarding multiple buyers to thereputation applications208.
Dispute resolution applications224 provide mechanisms whereby disputes arising between transacting parties may be resolved. For example, thedispute resolution applications224 may provide guided procedures whereby the parties are guided through a number of operations in an attempt to settle a dispute. In the event that the dispute cannot be settled via the guided procedures, the dispute may be escalated to a third party mediator or arbitrator.
A number offraud prevention applications226 implement fraud detection and prevention mechanisms to reduce the occurrence of fraud within thenetworked system102.
Messaging applications228 are responsible for the generation and delivery of messages to users of thenetworked system102. These messages may, for example, advise users regarding the status of listings at the networked system102 (e.g., providing “outbid” notices to bidders during an auction process or providing promotional and merchandising information to users).Respective messaging applications228 may utilize any one of a number of message delivery networks and platforms to deliver messages to users. For example,messaging applications228 may deliver electronic mail (e-mail), instant message (IM), Short Message Service (SMS), text, facsimile, or voice (e.g., Voice over IP (VOW)) messages via the wired (e.g., the Internet), Plain Old Telephone Service (POTS), or wireless (e.g., mobile, cellular, WiFi, WiMAX) networks.
Merchandising applications230 support various merchandising functions that are made available to sellers to enable sellers to increase sales via thenetworked system102. Themerchandising applications230 also operate the various merchandising features that may be invoked by sellers, and may monitor and track the success of merchandising strategies employed by sellers.
Thenetworked system102 itself, or one or more parties that transact via thenetworked system102, may operate loyalty programs that are supported by one or more loyalty/promotion applications232. For example, a buyer may earn loyalty or promotions points for each transaction established and/or concluded with a particular seller, and may be offered a reward for which accumulated loyalty points can be redeemed.
Social networking integration application(s)234 may support interfacing between thesystem102 and an additional system (e.g., the social-networking system152). For example, the social networking integration application(s)234 may allow thesystem102 to access a Facebook account of a user (e.g., on social-networking system152) to collect information from a social network of the user, including information about items listed on thesystem102 that are referred to in wall or other postings made by additional users that are visible to the user or other content pertaining to such items that is accessible (e.g., via API calls) to systems external to the additional system.
FIG. 3 is a block diagram illustrating example modules of the social networking integration application(s)234 ofFIG. 2. Thesearch module302 may be configured to detect that a user is searching for information about an item at a first system. Thecollection module304 may be configured to collect additional information about the item from a second system. In various embodiments, the second system is external from the first system. Thenotification module306 may be configured to generate a notification of the additional information. The notification may be integrated into a presentation of search results pertaining to a search query entered by the user with respect to the first system. Theinventory module308 may receive, store, and retrieve information about items in personal inventories of users.
FIG. 4 is a flow chart illustrating anexample method400 of supplementing a presentation of search results pertaining to an item with information about the item collected from a social network of a user. In various embodiments, themethod400 may be implemented by modules of the social networking integration application(s)234. Atoperation402, the search module determines that the user is searching for information about the item outside of a social networking context. For example, the search module receives a notification that a user has scanned a bar code associated with the item (e.g., via a mobile local commerce application, such as a RedLaser application executing on a mobile phone of the user). Or the search module determines that the user has entered a search query that includes keywords associated with the item.
Atoperation404, the collection module collects data relating to the item from a social network of the user. For example, the collection module accesses an account of the user on a social networking system (e.g., Facebook) and identifies data items pertaining to the item that are in data feeds that are accessible to the user. Such data feeds may include data feeds made visible to the user by friends of the user or other users of the social networking system.
Atoperation406, the notification module generates a notification of the data relating to the item. The notification may supplement a search result that is to be presented to the user in response to the searching. For example, if the search module detects that the user is searching for a local store that has a particular brand of an Android tablet personal computer in stock (e.g., based on a scanning of a bar code by the user via a local commerce application), the notification module may generate a notification that includes various information, such as additional users in the user's social network that own the item, comments that additional users have made pertaining to the item, ratings by the additional users of the item, information about ownership of the item by the additional users, whether the additional users are willing to sell the item, and so on. The notification module may filter or sort the data relating to the item based on various factors, such as the relatedness of an source or author of the data item to the user, a geographical or topographical closeness of the source or author of the data item to the user, a relevance of the data item to the user's search based on, for example, attributes of a publisher of the data item (e.g., whether the publisher of the data item is a current owner or past owner of the item for which the user seeks information). This notification may then be presented to the user to enhance standard search results, such as the names and locations of nearby stores that have the item in stock, that are presented to the user in response to the query entered by the user.
FIG. 5 is a flow chart illustrating anexample method500 of notifying a user who is looking for a local store that has an item in stock of an additional user in the user's social network who owns the item. In various embodiments, themethod500 may be implemented by modules of the social networking integration application(s)234. Atoperation502, the search module determines that the user is searching for local retailers that have an item in stock. In various embodiments, the search module determines a specific model number or version of the item that the user is searching for (e.g., based on keywords entered by the user). For example, the search module may determine that the user is searching specifically for an iPhone5, and not other versions of the iPhone.
Atoperation504, the collection module identifies that an additional user has the item in a personal inventory. In various embodiments, the additional user may be selected based on a relatedness to the user in a social network of the user. For example, the additional user may be a friend of the user or a friend-of-a-friend of the user. In various embodiments, the collection module may filter out items that are not of the specific version that the search module determines that the user is searching for. For example, the collection module may not collect data from the user's social network that pertains to the iPhone 3G or iPhone 4 based on the search module determining that the user is searching specifically for the iPhone 5. Alternatively, the collection module may collect data pertaining to the iPhone generally regardless of whether the search module determines that the user is searching specifically for the iPhone 5.
Atoperation506, thenotification module306 generates a notification that includes a specification that the user has the item in his personal inventory. In various embodiments, the notification may be used to supplement search results corresponding to the searching for the local retailers by the user. Such search results may include a listing of local retailers that have the item in stock. Thus, for example, thenotification module306 may provide a notification that may be incorporated into search results presented to a user via a local commerce application (e.g., RedLaser), such that the user is presented not only with a list of local retailers that have the item in stock, and various other information pertaining to the item (e.g., price, quantity, description, and so on), but also information about users in the social network of the user who own the item or may be willing to sell the item to the user. In various embodiments, the notification includes information only for additional users in the user's social network who are willing to sell the item to the user.
FIG. 6 is a flow chart illustrating anexample method600 of notifying a user of information from a social network of the user that is relevant to a user's search for information about an item. In various embodiments, themethod600 may be implemented by modules of the social networking integration application(s)234. Atoperation602, the search module detects that a user is searching for information pertaining to an item. Additionally, the search module detects the context in which the user is searching for the information pertaining to the item (e.g., a local commerce context, an internet searching context, an online shopping context, and so on). For example, the search module may detect that the user is searching for information about the item in a local commerce context based on the user scanning a barcode for the item via a local commerce application (e.g., RedLaser). Or the search module may detect that the user is searching for the information pertaining to the item in a general context based on the user entering a search query at a search engine (e.g., Google or Yahoo!). Or the search module may detect that the user is searching for the item in an online shopping context based on the user entering a search term at an Internet commerce web site (e.g., eBay, Amazon.com, and so on).
Atoperation604, the collection module searches a second system (e.g., social network of the user) for additional information pertaining to the item. In various embodiments, the second system may be a social networking system of the user (e.g., Facebook or LinkedIn). In various embodiments, the second system may be a system associated with a tracking application installed by the user and the additional users. The tracking application may track information provided by the users with respect to the item or monitor and log behavior of the users with respect to the items.
Thus, the additional information may be different information than the information that is presented to the user at a first system (e.g., Google, Yahoo!, or eBay) in response to the user entering a query for the information about the item at the first system. In various embodiments, the collection module collects the additional information about the item from content items (e.g., news feeds) that are accessible to the user via the second system. In various embodiments, the collection module collects the additional information from a database maintained by the first system to store information provided by the additional users or determined based on a monitoring of the additional users. For example, the collection module may access the second system on behalf of the second user to collect the information. In various embodiments, the collection module collects the additional information prior to the detecting of the searching for the information about the item by the user, storing the additional information in a database for later access (e.g., upon a detection of the searching for the information about the item by the user).
Atoperation606, the collection module determines a type of the additional information. For example, the collection module determines that the type of the additional information is one of several pre-defined types. Such predefined types may include, for example, knowledge about the item, ownership of the item, feedback provided about the item, a rating of the item, a willingness to sell the item, expertise in using the item, purchase guidance pertaining to the item, and so on.
Atoperation608, the notification module notifies the user of the additional information. In various embodiments, the additional information may then be presented to the user along with information that is included in search results provided to the user in response to the query entered by the user atoperation602. In various embodiments, a notification generated by the notification module includes a designation of a relevance of the additional information based on the detected context of the user's search for the information about the item and based on the type of the collected additional information. For example, if a user is searching for information about the item in an online shopping context, the types of the additional information that are most relevant may include shopping guidance or ratings. The notification may then designate such types of the additional information as being more relevant than other types of the additional information (e.g., via a relevance score). In various embodiments, the notification module may also filter the additional information based on a correspondence between the context of the user's search and the type of the information. In this way, the notification module may allow an application to integrate only the most relevant collected additional information into the search results that the application presents to the user in response to the user's query for information about the item.
FIG. 7 is a flow chart illustrating anexample method700 of storing nuggets of information that are relevant to items for presentation to additional users who are interested in the items. In various embodiments, themethod700 may be implemented by modules of the social networking integration application(s)234. Atoperation702, the collection module determines that a user has a nugget of information that is relevant to an item. For example, the collection module may determine that the user has purchased the item and thus has information pertaining to the cost of the item, where to obtain the item, and so on. Or the collection module may determine that the user has commented on the item and thus has information about a quality of the item, how to use the item, and so on. The nugget of information may be unique information generated by the user (e.g., information posted by the user in a news feed on a social networking system). In other words, it may be different information than what an additional user may be presented with in standard search results presented to the additional user in response to a query initiated by the additional user at a search engine system or via a local commerce application.
Atoperation704, the collection module stores the nugget of information about the item. In various embodiments, the collection module prompts the user to provide the information based on a determination that the user has the information. For example, the collection module prompts the user to enter a purchase price of the item based on a determination that the user purchased the item. In other embodiments, the collection module determines the information from information known about the user (e.g., a transaction history, a feedback rating posted by the user, and so on).
Atoperation706, the search module identifies that an additional user is interested in the item. For example, the search module identifies that the additional user has entered a search term pertaining to the item at a search engine. Or the search module identifies that the additional user has scanned a bar code corresponding to the item in a local commerce application.
Atoperation708, the notification module retrieves the nugget of information from the database for presentation to the user. In various embodiments, the nugget of information is presented to the user instead of or in conjunction with standard search results presented to the user by the application through which the user expressed the interest in the item.
FIG. 8 is a flow chart illustrating anexample method800 of storing nuggets of information that are relevant to items for presentation to additional users who are interested in the items. In various embodiments, themethod800 may be implemented by modules of the social networking integration application(s)234. Atoperation802, the inventory module receives a personal inventory from a user. The personal inventory may include information about each of the one or more items, such as the name of the item, the type of the item, the purchase price of the item, whether the user owns the item, whether the user is willing to sell the item, a selling price for the item, a rating of the item, feedback associated with the item, and so on. Atoperation804, the inventory module stores the received personal inventory in a database.
Atoperation806, the search module determines that an additional user is interested in an item. For example, the search module determines that the user has scanned a bar code for the item using a local commerce application.
Atoperation808, the inventory module determines that the item that the additional user is interested in is included in the personal inventory of the user.
Atoperation810, the notification module notifies the additional user that the item that the user is interested in is in the personal inventory of the user. The notification module may also notify the user of any of the information about the item that is included in the personal inventory. In various embodiments, the notification module provides the user with information about the item that is included in the personal inventory of the additional user based on a relatedness of the user to the additional user. For example, the notification module provides the additional user with information about the personal inventory of the user based on the a determination that the user and the additional users are friends with respect to a social networking system.
FIG. 9 is a block diagram of a machine in the example form of acomputer system1100 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
Theexample computer system1100 includes a processor1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), amain memory1104 and astatic memory1106, which communicate with each other via abus1108. Thecomputer system1100 may further include a video display unit1110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Thecomputer system1100 also includes an alphanumeric input device1112 (e.g., a keyboard), a user interface navigation (or cursor control) device1114 (e.g., a mouse), astorage unit1116, a signal generation device1118 (e.g., a speaker), and anetwork interface device1120.
Thedisk drive unit1116 includes a machine-readable medium1122 on which is stored one or more sets of data structures and instructions1124 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. Theinstructions1124 may also reside, completely or at least partially, within themain memory1104 and/or within theprocessor1102 during execution thereof by thecomputer system1100, with themain memory1104 and theprocessor1102 also constituting machine-readable media. Theinstructions1124 may also reside, completely or at least partially, within thestatic memory1106.
While the machine-readable medium1122 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present embodiments, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and compact disc-read-only memory (CD-ROM) and digital versatile disc (or digital video disc) read-only memory (DVD-ROM) disks.
Theinstructions1124 may further be transmitted or received over acommunications network1126 using a transmission medium. In various embodiments, thenetwork1126 corresponds to thenetwork104 ofFIG. 1. Theinstructions1124 may be transmitted using thenetwork interface device1120 and any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)). Examples of communication networks include a local area network (LAN), a WAN, the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.