This description relates generally to social network environments.
In an aspect, a method includes playing a game with a second person on behalf of a first person using a digital representation of the first person; and on behalf of the first person and using the digital representation of the first person, while playing the game with the second person, providing a natural language response to a question or statement from the second person based on information from or about the first person.
Embodiments may include one or more of the following features.
The method includes presenting the digital representation of the first person. The digital representation of the first person includes one or more of an audio representation, a still image representation, or a video representation of the first person.
Playing the game with the second person comprises playing the game at a level of play at which the first person plays or played the game. The method includes determining the level of play of the first person. The method includes determining the level of play of the first person based on a previous observation of the first person playing the game
Playing the game with the second person includes presenting a gesture or physical action during the game. The method includes presenting the gesture or physical action in a video or multimedia display. The method includes determining the gesture or physical action based on information received from or about the first person. The method includes determining the gesture or physical action based on a previous observation of the first person playing the game. The method includes presenting the gesture or physical action in response to a question, statement, or action from the second person. The method includes determining the gesture or physical action based on the question, statement, or action from the second person. The method includes presenting the gesture or physical action in response to an event that occurred during the game.
The method includes presenting a still or video image of the first person while playing the game with the second person.
The method includes inviting the second person to play the game. The method includes determining an identity of the second person based on information indicative of the identity of the second person previously provided by the first person.
The method includes receiving a request from the second person to play the game. The method includes determining whether to accept the request from the second person. The method includes accepting the request if information previously provided by the first person included information indicative of the identity of the second person.
Providing the natural language response comprises providing at least a portion of a digitized life history previously provided by the first person. The method includes determining the portion of the digitized life history based on the question or statement from the second person.
Providing the natural language response comprises providing the natural language response in a manner associated with the first person. The method includes determining the manner in which to provide the natural language response based on the information received from or about the first person. The manner associated with the first person includes one or more of a manner of speaking by the first person or a gesture used by the first person. The manner of speaking includes one or more of voice of the first person, an accent of the first person, or a tone of voice of the first person.
The method includes playing the game with the second person on behalf of the first person when the first person is no longer alive or no longer competent.
In an aspect, a system includes a processor coupled to a memory, the processor and memory configured to play a game with a second person on behalf of a first person using a digital representation of the first person; and on behalf of the first person and using the digital representation of the first person, while playing the game with the second person, providing a natural language response to a question or statement from the second person based on information from or about the first person.
In an aspect, a computer readable medium stores instructions for causing a computing system to play a game with a second person on behalf of a first person using a digital representation of the first person; and on behalf of the first person and using the digital representation of the first person, while playing the game with the second person, providing a natural language response to a question or statement from the second person based on information from or about the first person. These and other aspects, features, implementations, and advantages, and combinations of them, can be expressed as methods, apparatus, systems, components, program products, business methods, and means or steps for performing functions, or combinations of them.
Other features, aspects, implementations, and advantages will become apparent from the description, the drawings, and the claims.
Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. To the contrary, a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.
Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described in this patent application does not, in and of itself, indicate a requirement that the steps be performed in that order. The steps of described processes may be performed in any order practical. Further, some steps may be performed simultaneously despite being described or implied as occurring non-simultaneously (e.g., because one step is described after the other step). Moreover, the illustration of a process by its depiction in a drawing does not imply that the illustrated process is exclusive of other variations and modifications thereto, does not imply that the illustrated process or any of its steps are necessary to the invention, and does not imply that the illustrated process is preferred.
When a single device or article is described, more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described (whether or not they cooperate), a single device/article may be used in place of the more than one device or article.
Techniques and mechanisms described or reference herein will sometimes be described in singular form for clarity. However, particular embodiments include multiple iterations of a technique or multiple instantiations of a mechanism unless noted otherwise.
The system described here enables a person to imbue a surrogate to play a game on behalf of the person. The surrogate can be matched with the person in digital appearance, voice, or manner, or a combination of any two or more of them. The surrogate can use the person's personal knowledge, expertise, and game playing skill in order to play the game on the person's behalf. For instance, if the person is an expert poker player but only a beginning chess player, the surrogate can play poker on behalf of the person at an expert level and can play chess on behalf of the person at a beginner level.
The surrogate can play the game with other players, such as real people or surrogates of other people. The surrogate can determine a move or action in the game based on a move or action in the game by one or more of the other players. For instance, when the person's surrogate is playing a checkers game, the surrogate will determine its next move based on its opponent's last move and based on the skill level of the person.
The surrogate can interact with the players during game play. For instance, the surrogate can be manifested as a personalized digital avatar that can respond to natural language questions or comments from the other players of the game. The avatar can respond based on information about the person, such as the person's opinions on certain issues, the person's memories, jokes the person told, or other information.
In an example, an elderly person (e.g., a grandfather) can imbue a surrogate with his game playing abilities, video recordings of his gestures and behaviors during game play, memories of past game play, or other information. In the future, e.g., after the grandfather has passed away, the grandfather's family can play a game with the grandfather's surrogate. The grandfather's surrogate plays the game at the level at which the grandfather used to play the game and can exhibit the same behaviors and gestures that the grandfather used to exhibit while playing the game. The grandfather's surrogate can engage in a conversation with the grandfather's family during game play, e.g., sharing his memories of playing the game, joking with his family, responding to questions about his life story, or engaging with his family in another way.
The system described here enables members of a community of users on a network to imbue a surrogate, which is matched in digital appearance, voice, and manner, with their personal knowledge, expertise and discernment in order to carry out the user's directives and intent at some predetermined future time. For example, a senior user with access to a social media network may embed his life story in digital format together with a personalized digital avatar to present that life story or portions thereof in response to natural language questions and using an intelligent surrogate to act on the senior's behalf to carry out the senior's directives in the future after the senior dies or becomes incompetent. For example, a senior user with access to a social media network may embed his game playing prowess in digital format in response to natural language questions and visual game configurations and using an intelligent surrogate to act on the senior's behalf to carry out the senior's directives at the comparable level of skill at known or similar games in the future after the senior dies or becomes incompetent.
In some examples, the analytic engine 106 can extract and transform game playing approaches of the principal person 102, such as including game playing strategies or abilities or both for one or more games. For instance, the analytic engine 106 can extract game playing approaches for games, such as checkers, chess, word games (e.g., Scrabble®), card games (e.g., poker, bridge, baccarat), board games (e.g., Clue®), role playing games (e.g., charades, Dungeons and Dragons®, Farmville), or other games. In some examples, the games are multiplayer games. The system, aided by the analytic engine 106, collects data indicative of the principal person's approach to playing games. For instance, the analytic engine 106 can guide the principal person 102 through a game to collect data indicative of how the principal person 102 manipulates configurations in the game, what strategies the principal person 102 tends to employ, with what skill level the principal person 102 plays the game (e.g., beginning, intermediate, or expert), or other data. The analytic engine 106 can collect and assess the behavior of the principal person 102 during the game, such as verbal responses, gestures, or other behavioral responses. In some cases, the analytic engine 106 can collect still or video images or audio recordings of the principal person 102 playing the game. In some cases, the analytic engine 106 can prompt the principal person 102 to provide stories about the game, such as memories the principal person 102 has about playing the game in the past, reasons why the principal person 102 likes the game, reasons why the principal person plays the game in a certain way, or other stories. In some cases, the analytic engine 106 can prompt the principal person 102 to identify his or her favorite games.
The system aided by the analytic engine 106 then creates a surrogate of the principal person 102 consisting of an avatar of the principal person 102 linked with the personal knowledge of the principal person 102 and the ontology of his world at that point in time. The avatar of the principal person is generated using the digitized three-dimensional video image of the principal person 102 parsed into behavioral expressions employed to morph the avatar's image, for example, facial expressions of the principal person 102 using software such as that of FaceShift.com and employing the principal person's voice to generate the avatar's voice in pitch and other sound attributes using articulatory synthesis and a database of speech units, which may amount to a billion or more for responding to arbitrary questions but some life stories or jokes may be recorded and used in their entirety.
In some examples, the surrogate of the principal person 102 can include the avatar of the principal person 102 linked with the game playing approaches of the principal person 102. The surrogate of the principal person 102 is able to play a game at the skill level (e.g., beginner, intermediate, expert) of the principal person 102. The avatar can exhibit the verbal responses. is assessed along with accompanying verbal responses, gestures, or other behavioral responses of the principal person 102 during the game. In general, the surrogate of the principal person 102 is able to reproduce the game play of the principal person based on the analysis, by the analytic engine 106, of the approach of the principal person 102 to the game, without having to anticipate or calculate the combinatorial number of steps or outcomes in the game.
The accuracy of the surrogate transformation is assessed 114 by the principal person 102 or a second person. The principal person 102 or a second person then interrogates the system's surrogate of the principal person using a script of frequently asked conventional questions or by presenting common game configurations for one or more games. If there are gaps or errors the process iterates until the performance of the surrogate of the principal person reaches a predetermined level of correctness in terms of this limited Turing Test.
As a result of the training and testing, the system enables the surrogate of the principal person 102 to answer general and specific questions and to execute a repertoire of multiperson games by means of an avatar matching in appearance, voice, manner and gesture the principal person 102 and by means of the analytic module 106 equipped with a digital representation of the transformed personal knowledge in the form of an ontology covering the lifetime of the principal person 102 using the techniques described by Gruber et al. (U.S. patent application Ser. No. 12/987,982, filed Jan. 10, 2011, the contents of which are incorporated herein by reference) to include an automated assistant receiving user input; an active ontology with representations of concepts and relations among concepts drawn from various databases of historical data and a language interpreter parsing the questioner's input to derive a representation of questioner's intent in terms of the active ontology. When the surrogate of the principal person 102 is able to play games according to the principal person's approach to those games, the ontology may include multiperson games, such as checkers, chess, word games (e.g., Scrabble®), card games (e.g., poker, bridge, or baccarat), role playing games (e.g., Clue®, Dungeons and Dragons®, or Farmville®), or other multiperson games.
Using the communications module 110 and the analytic module 106 the transformed digital representation of the principal person 102 is edited 116 for particular formats and audiences then communicated 118 when appropriate to that audience 120. So the surrogate of the principal person can be used to generate an interactive obituary, a digitized life history in the Story Corps sense or as a published autobiography using the book assembly techniques of Parker (Philip M. Parker, U.S. Pat. No. 7,266,767 B2, Sep. 4, 2007 Method and Apparatus for Automated Authoring and Marketing, which is incorporated by reference) or serve in place of the principal person 102 at a memorial service or at subsequent anniversaries or on special occasions.
It will be apparent, however, to one skilled in the art, that the framework described may be practiced using only voice communication or text communication and or more broadly for expertise in various domains. For example, a business may wish to deploy the expertise of one of its employees to several remote locations simultaneously and interactively or in the form of a manual or multimedia-based expert system.
It will be apparent, however, to one skilled in the art, that the framework described may be practiced for more than communicating multimedia messages at future times, delivering gifts to relatives or friends on future occasions, or organizing future meetings and presentations, or interacting in multiperson games. For example, a business in the event of an emergency may wish to deploy the expertise of one of its employees to several remote locations simultaneously and interactively or in the form of a manual or multimedia-based expert system.
A predictive analytics module 602 in analytics engine 106 applies search algorithms and forecasting models stored in a search and forecasting models library 606 to analyze present and/or historical subject user data in view of data stored in a database 608 containing data related to identify milestone events and to suggest appropriate media messages or items for a reader user. The predictive analytics module 602 implements a variety of forecasting techniques beyond simple algorithms, such as future date calculation, including statistical techniques such as machine learning (e.g., as applied by IBM's Watson computer), game theory, and data mining, to analyze current and historical data to determine significant event triggers for notification, to make predictions about future readers, to identify communication media messages, and to identify appropriate delivery times and methods, among a wide variety of other analyses and algorithms. For example in the case of an autobiographical communication item of a grandfather (the publisher user), the reader user is the projected offspring of a current member in the system but the publisher user may incapacitated at the time of publication and delivery or both. By a computer-implemented method, data relevant to the publisher user may be extracted from his profile in the system 300 and/or generated implicitly based, at least in part, on the publisher user's stored profile together with historical data by a predictive analytics algorithm based on historical data. Based on the extracted or generated data, a significant event is identified, content for a communication is selected, appropriate reader users are identified, and/or other analysis is performed, in some cases without input from the publisher user.
In some examples, analytics engine 106 may use data specific to a user to identify potential milestone events (e.g., to identify a bar mitzvah date for a child based on the child's birth date or to identify appropriate religious holidays based on the user's specified religious affiliation or a prevailing religion in the region where the user lives). In some cases, the predictive analytics module 602 may also incorporate present or historical data or both to identify relevant information for the communication subject or reader user or both that are in keeping with preferences of the publisher user. In other examples, the analytics engine 106 analyzes publically available sources of information and/or private sources of information to which it has access, including. e.g., social networking facilities, online or mobile periodicals such as newspapers or magazines, and websites, to identify the occurrence of significant events associated with the reader user or with the person whom the communication is about. For instance, the analytics engine 106 may analyze trade journal websites to set up criteria so the notification engine 208 can identify when a target person receives an award or a promotion.
A display module 504 of the analytics engine 106 may display the significant events of an individual of interest (e.g., a reader user or another individual specified by the publisher user) on a webpage belonging to or accessible by the publisher user. These events with associated actions can be selected for notifications stored in the notification engine 208. In some embodiments, upon notification by the notification engine, the analytics engine 106 may automatically communicate messages of a significant event relevant to a reader user, such as a birthday, to the communication engine 110, which sends the notices to relatives of the reader user, who can act as publisher users. The analytics engine 106 may use information about a reader user found in various databases to determine when to send out the notices.
In some embodiments, the predictive analytics implemented by the analytics engine 106 incorporate the robust, optimizing forecasting techniques of Pinto et al. (U.S. Pat. No. 7,499,897, issued on Mar. 3, 2009; U.S. Pat. No. 7,562,058, issued on Jul. 14, 2009; U.S. Pat. No. 7,725,300, issued on May 25, 2010; U.S. Pat. No. 7,730,003, issued on Jun. 1, 2010; U.S. Pat. No. 7,933,762, issued on Apr. 26, 2011; U.S. Pat. No. 8,165,853, issued Apr. 24, 2012; U.S. Pat. No. 8,170,841, issued May 1, 2012; U.S. Pat. No. 8,751,273, issued on Jun. 10, 2014; and U.S. patent application Ser. No. 10/826,949, filed Apr. 16, 2004, the contents of all of which are incorporated herein by reference), that manage historical data using missing values, which must be inferred.
The analytics engine 106 can act as a surrogate for the principal person 102 by specifying communications, goods, and services or any other communication items for placement into storage. Provided the potential reader user 314 is registered in the system 300, the communication engine 110 will determine the location of the reader user, e.g., by GPS tracking or similar means. The reader user's interests and status may be available in the reader user's profile, which, taken together with historical data, enable the analytics engine 106 utilizing inferences from missing data, if necessary, to determine an appropriate gift to accompany the message and an optimal time for delivery. The delivery time is selected by a predictive analytics algorithm, based on historical data specific to the reader user.
In some embodiments, the analytics engine 106 acts as a surrogate of a principal person 102 to generate communication items (e.g., messages, sympathy tribute selections, and/or delivery instructions) or to engage in interactive games based on data, e.g., historical data, specific to the reader user. The interactive games may involve two or more people connected to a computer system in for instance, a chess or checkers game. The players can be present in a single room or can be remotely located, e.g., as in a multiplayer online battle arena game such as League of Legends® (published by Riot Games®) that can involve 7.5 million players concurrently during peak hours. For instance, the analytics engine may be configured as described by Gruber et al. (U.S. patent application Ser. No. 12/987,982, filed Jan. 10, 2011, the contents of which are incorporated herein by reference) to include an automated assistant receiving user input; an active ontology with representations of concepts and relations among concepts drawn from various databases of historical data (for instance, for the case in which the publisher user is the agent of a corporation, the corporate personnel database may be referenced); and a language interpreter parsing the publisher user input to derive a representation of publisher user intent in terms of the active ontology together with a services orchestration to output responses and instructions to implement the publisher user's intent. The automated assistant acting as the agent of a person, group of people, agency, government, corporation, or other entity may engage in role playing for negotiation. By a computer-implemented method, data relevant to the reader user may be extracted from his profile, generated implicitly based, at least in part, on the reader user's stored profile with the system together with historical data by a predictive analytics algorithm based on historical data, and/or obtained from publically available or privately accessible information sources. Based on the extracted or generated data a communication is selected, generated, and delivered, in some cases without input from the publisher user.
In some examples, the principal person 102 can organize a game event with specified participants to be played at a specified future time.
In some cases, the principal person 102 in advance or proxy surrogate of the principal person on the occasion can select an appropriate commercial sponsor for the game based criteria such as the profiles of the players, the type of game chosen, the appropriate type of prize or prizes (1310). By sponsor, we mean an entity, such as a business, whose logo, slogan, or another identifier appears during game play (e.g., on the game board, game pieces, cards, or on the screen). In some examples, the sponsor can offer prizes to one or more participants of the game. In some examples, the sponsor can be chosen using predictive analytics. The principal person programs the sponsor identification (1310) to arrange for an internet-accessible telepresence display of the proxy surrogate of the principal person 102 (1312) and the telepresence of the proxy surrogate of another person, if that proxy surrogate was chosen as a player. The proxy surrogate uses the telepresence display to attend the event and greet the attendees and during the game the proxy surrogate interacts with players, which may include playing the game or commenting on game play or on other topics. The game session and the interaction with the proxy surrogate can be an audio session, a video session, or a multimedia session. For instance, the proxy surrogate may carry on conversations with the players between moves of the game, e.g., to share commentary on game play strategies, the principal person's memories about the game or the players, or other topics. The proxy surrogate can engage in a natural conversation with the players on behalf of the principal person during the game, e.g., responding to questions or comments from the players based on the life history information previously collected from the principal person.
The players can be assembled together in a venue, e.g., a function room at Waldorf Astoria in New York (1314) or can be assembled virtually. e.g., over the internet. The proxy surrogate of the principal person 102 then initiates the game (1316) which can involve recording the multimedia game session or displaying the game session to spectators (e.g., through a simulcast) or both. Initiating the game can involve assignment of stakes, choosing of teams, or other aspects. The game session continues to the conclusion of the game (1318) at which point a second or subsequent game may be initiated, e.g., upon request of the proxy surrogate (e.g., acting on instructions from the principal person 102 to play a specified number of games) or upon request of one or more of the players (1320). At the conclusion of the gaming event (1322) the proxy surrogate thanks the attendees, distributes prizes to the game winner or winners, coordinates, if necessary, with the caterer and venue provider and shuts off the telepresence display after saving the gaming session to the archive.
In some cases, the game event is not scheduled in advance by the principal person. Rather, one or more players can access the gaming system to request that the proxy surrogate play a game on behalf of the principal person. In some cases, the players can specify the game to be played. In some cases, the players can request that the proxy surrogate select a game on behalf of the principal person, e.g., the principal person's favorite game.
In some examples, during game play, the proxy surrogate provides images of behavioral gestures, natural language comments acquired from or derived from the principal person 102. For instance, a video showing the principal person 102 playing the game can be shown during game play. In some cases, a reaction of the proxy surrogate to an occurrence during the game can be based on stored information from or about the principal person 102. For instance, if the proxy surrogate (playing on behalf of the principal person 102) earns a point in a game, the video can show the principal person clapping. In some cases, the proxy surrogate can react to a question or request from one of the players. For instance, a player can ask the proxy surrogate to jump. If the principal person 102 had previously recorded a video of himself jumping, the video can show the principal person 102 jumping. If there is no video recording that satisfies the player's request, the proxy surrogate can respond saying “Sorry, I don't feel like jumping right now.” In some cases, the players and the proxy surrogate can agree on an action that the proxy surrogate will do at the end of the game. For instance, the players and the proxy surrogate may agree that whoever loses the game has to turn around 10 times. If the proxy surrogate loses the game, the video can show the principal person 102 turning around 10 times.
In some examples, based on the profiles of the players, the proxy surrogate of the principal person 102 determines using the analytics engine 106 an appropriate sponsor of the game, contacts the sponsor using the communication engine 110 and upon receiving acceptance places the sponsor's logo on the game board display, for example on the cards 1410. If the sponsor had authorized a prize for the game, the proxy surrogate of the principal person 102 alerts the game players using the notification engine 208 and upon conclusion of the game uses the notification engine 208 to alert the vendor 210 to send the prize or prizes to the winning game players.
In some cases, the principal person 102 would have previously programmed or designated a screening procedure for the type of acceptable game (1504), such as one known to the principal person 102, for example, a word game like Scrabble, a categories game like Jeopardy, a card game like bridge or poker, or other multiperson game or game tournament. In some cases, the analytics engine automatically determines which games are acceptable, e.g., based on which games the principal person played when setting up the game play system.
On the occasion of the game event, (1506) the proxy surrogate of the principal person 102 can determine (e.g., using predictive analytics) and select an appropriate commercial sponsor for the game based criteria such as the profiles of the players, the type of game chosen, the appropriate type of prize or prizes to selected the most probable sponsor of the game. The proxy surrogate contacts the sponsor (1508) and upon receiving acceptance places the sponsor's logo on the game board display (1510). If the sponsor had authorized a prize for the game, the proxy surrogate of the principal person 102 notifies the game players or proceeds with an unsponsored game.
The proxy surrogate of the principal person 102 then arranges for an internet-accessible telepresence display of the proxy surrogate of the principal person 102 (1512) and the telepresence of the proxy surrogate of another person, if that proxy surrogate was chosen as a player. The proxy surrogate uses the telepresence display to attend the event and greet the attendees and during the game the proxy surrogate interacts with players, which may include playing the game or commenting on game play or on other topics. The game session and the interaction with the proxy surrogate can be an audio session, a video session, or a multimedia session. For instance, the proxy surrogate may carry on conversations with the players between moves of the game, e.g., to share commentary on game play strategies, the principal person's memories about the game or the players, or other topics. The proxy surrogate can engage in a natural conversation with the players on behalf of the principal person during the game, e.g., responding to questions or comments from the players based on the life history information previously collected from the principal person.
The players can be assembled together in a venue, e.g., a function room at Waldorf Astoria in New York (1514) or can be assembled virtually, e.g., over the internet. The proxy surrogate of the principal person 102 then initiates the game (1516) which can involve recording the multimedia game session or displaying the game session to spectators or both. Initiating the game can involve assignment of stakes or choosing of teams or other aspects. The game session continues to the conclusion of the game (1518) at which point a second or subsequent game may be initiated (1520), e.g., upon request of the proxy surrogate or one or more of the players. At the conclusion of the gaming event (1522) the proxy surrogate thanks the attendees, distributes prizes to the game winner or winners, coordinates, if necessary, with the caterer and venue provider and shuts off the telepresence display after saving the gaming session to the archive database (316A, . . . 316N) so that it forms part of the history of the principal person 102.
The platform may be used for more than recreational gaming or sponsor marketing. For instance, the gaming platform can be used in business applications, e.g., for role playing of scenarios of product development and release; in government applications, e.g., for role playing of political or conflict scenarios, such as military war games; or in public health applications, e.g., for role playing of containment scenarios of infectious diseases, such as Ebola; or in other applications.
As desired, the gaming event social network may include more or fewer than the components illustrated.
The gaming event social network is described above with reference to block and flow diagrams of systems, methods, apparatuses, and/or computer program products according to examples. In some instances, the publisher and reader users may access the social network by desktop or laptop computers. In some embodiments, the publisher and reader users may access the social network by mobile devices such as smart phones. In some embodiments, the publisher and reader users may access the social network by tablet computers or any commercial computing device connected to the internet. In some cases, the social network may be constructed to operate on the internet independent of existing social networks. The gaming event social network may operate using existing social networks, e.g., Facebook, Google+, or Yammer as platforms using existing application interfaces open to website developers.
Generally, the intelligent automated assistant techniques disclosed herein may be implemented on hardware or a combination of software and hardware. For example, they may be implemented in an operating system kernel, in a separate user process, in a library package bound into network applications, on a specially constructed machine, or on a network interface card. In a specific embodiment, the techniques disclosed herein may be implemented in software such as an operating system or in an application running on an operating system.
Software/hardware hybrid implementation(s) of at least some of the intelligent automated assistant embodiment(s) disclosed herein may be implemented on a programmable machine selectively activated or reconfigured by a computer program stored in non-transitory memory. Such network devices may have multiple network interfaces which may be configured or designed to utilize different types of network communication protocols. A general architecture for some of these machines may appear from the descriptions disclosed herein. According to specific embodiments, at least some of the features and/or functionalities of the various intelligent automated assistant embodiments disclosed herein may be implemented on one or more general-purpose network host machines such as an end-user computer system, computer, network server or server system, mobile computing device (e.g., personal digital assistant, mobile phone, smartphone, laptop, tablet computer, or the like), consumer electronic device, music player, or any other suitable electronic device, router, switch, or the like, or any combination thereof. In at least some embodiments, at least some of the features and/or functionalities of the various intelligent automated assistant embodiments disclosed herein may be implemented in one or more virtualized computing environments (e.g., network computing clouds, or the like).
One or more blocks of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, respectively, can be implemented by computer-executable program instructions. Some blocks of the block diagrams and flow diagrams may not necessarily need to be performed in the order presented, or may not necessarily need to be performed at all, in some cases.
These computer-executable program instructions may be loaded onto a general-purpose computer, a special-purpose computer, a processor, or other programmable data processing apparatus to produce a particular machine, such that the instructions that execute on the computer, processor, or other programmable data processing apparatus create means for implementing one or more functions specified in the flow diagram block or blocks. These computer program instructions may also be stored in a non-transitory computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the non-transitory computer-readable memory produce an article of manufacture including instruction means that implement one or more functions specified in the flow diagram block or blocks. As an example, embodiments may provide for a computer program product, comprising a non-transitory computer-usable medium having a non-transitory computer-readable program code or program instructions embodied therein, said non-transitory computer-readable program code adapted to be executed to implement one or more functions specified in the flow diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational elements or steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide elements or steps for implementing the functions specified in the flow diagram block or blocks.
Accordingly, blocks of the block diagrams and flow diagrams support combinations of means for performing the specified functions, combinations of elements or steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flow diagrams, and combinations of blocks in the block diagrams and flow diagrams, can be implemented by special-purpose, hardware-based computer systems that perform the specified functions, elements or steps, or combinations of special purpose hardware and computer instructions.
While the gaming event social network has been described in connection with certain examples, is the system is not limited to the disclosed embodiments, but on the contrary, includes various modifications and equivalent arrangements. Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i. e., one or more modules of computer program instructions encoded on a tangible non-transitory program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or communication data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
Non-transitory computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks. e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Other implementations are also within the scope of the following claims.