CROSS-REFERENCE TO RELATED APPLICATIONSThis application is related to co-assigned U.S. patent application titled “Search Systems and Methods Using In-Line Contextual Queries”, Ser. No. 10/903,283, the contents of which are incorporated herein by reference in their entirety.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates generally to information distribution, and more specifically to distribution and processing of information in a fantasy sports game.
2. Description of the Related Art
In online fantasy sports games, such as fantasy football, baseball, hockey, golf, and automobile racing, a user can join a fantasy league, and create and manage a fantasy team, which includes fantasy players based on real-life players, to compete against fantasy teams of other users within the same fantasy league. An online fantasy sports game typically includes a player selection phase followed by a game play phase. Users select players from a pool of real-life players that are available to each league. The player selection phase occurs between fantasy users and the game play phase occurs during real-life games. The game play phase ordinarily occurs on game days, which are days on which real-life sports games are played. The statistics for players in the real-life games are used to determine the winners of each online fantasy league. Online fantasy sports games are typically used by, i.e., played by, users of an online service. The users access the fantasy sports games via a computer interface, such as a Web site. In the games, each fantasy player corresponds to a real-life sports player. The fantasy player may have the same name and statistics as a real-life sports player. The statistics may include an average number of points scored per game and other measures of past performance. A user chooses a limited number of players for a team with the goal of creating a team that will score the most points, where the points scored by a team are determined by the sum of the points scored in a real-life game by the real-life players corresponding to the active fantasy players on the team. Therefore each fantasy game takes place on the same day as a corresponding real-life game. A number of rules restrict the eligibility of players to play on a particular team on a particular day. For example, a player who is injured in real-life on the day of a game is not eligible to play in the game, and a player may not be permitted to play in more than ten games for the same team. In one aspect, an eligible player is a player who is permitted to play in a game on a particular day according to game-specific rules.
To make good decisions about which players to add to their teams, users should locate and read relevant information from information sources, such as news articles available on Web sites of online content providers. Such news, if it can be located and applied, is of value to users in the fantasy sports game because the news may be a predictor of a player's future performance. For example, if a player on the user's fantasy team has been playing very well in real-world games, the user may decide to keep the player on the team. If a player has been injured or has been traded in real life, the user may decide to change the player's status or drop the player from the team.
Most sports data sources (such as an article page on Yahoo!® Sports) do not provide the context a fantasy sports user desires. A user would like to know how the data they are consuming affects their fantasy teams. An injury, for example, may prompt the user to initiate a trade or change their lineup. To determine what action to take, a user needs the current status of the player in his or her leagues, such as whether the player a free agent or on another team; and the player's assigned position.
Ordinarily, a user manually correlates information from sources like articles with data from their fantasy leagues. If the user reads an article on a news Web site about an injury, and wants to know the player's status within a Yahoo!® Sports fantasy game, the user will have to switch from the article to their fantasy league on a Yahoo!® page. For each player, this process would be repeated, and the user cannot act upon this information without switching to a Yahoo!® page.
As a user of an online fantasy sports game reads or consumes online content, the user may come across references to players who are participants in the fantasy sports game. The user may be interested in finding out more about these players in the context of the fantasy sports game, in which case the user would ordinarily have to switch to another user interface window or web browser to look and view the corresponding sports player.
In another scenario, while reading online content, the user may come across information about sports players and teams that may suggest or imply a beneficial change to the user's team. However, the user ordinarily would have to switch to another user interface window or web browser to make the suggested change. Therefore the process of making a change to a fantasy sports team based upon an online news article may involve extra time and effort, thereby diminishing the user's experience with the game and possibly discouraging the user from making the change.
In another scenario, the user may not remember the names of all players. The user may be, for example, a beginning or infrequent user of the fantasy sports game, and may not remember names of sports players on a fantasy sports team. Looking up the names of players and determining if any players mentioned in an online news article would ordinarily involve time and effort that the user may not wish to invest, so the user will be likely to pass up opportunities to improve the fantasy sports team.
Therefore, to reduce the time necessary to gather the information needed to create and manage a competitive fantasy sports team, it would be desirable to integrate online content with an online fantasy sports user interface.
SUMMARY OF THE INVENTIONInformation content that a user of a fantasy sports game consumes, such as news articles on Web pages, may be relevant to the user's fantasy sports teams or players, The user may wish to perform an action in the fantasy sports game in response to such information. A user interface called a fantasy sports context is presented to the user in association with the content, e.g., as a user interface feature that appears on the same web page as the content. The fantasy sports context displays names of fantasy sports teams or players that are relevant to the content. For example, if the content is text on a web page, the context would display the name of each fantasy sports team or player that is referred to in the article and is on the user's team, on an opposing team, or on no team. In this example, the name of each player is displayed in the context as hyperlinks that refer to player information pages for the associated player, so that a user can quickly retrieve detailed information about the player. Additional user interface features may be displayed in the context in association with each player name, including an injury status indicator that appears if the player is injured, and a news feature that the user may select to display news about the player. The additional user interface features may also include a feature for adding the player to a watch list, a feature for adding the player to the user's team, dropping the player from the user's team, or trading the player to another team.
According to embodiments of the invention, recognized entities described in a piece of content (an article, a list of statistics, a search engine results, or a highlighted name) are correlated with entities personalized to a particular user (a list of fantasy players, teams, etc.). Once the correlation is made, information about the correlated entities is shown and a means to act upon this information is provided. Relevant fantasy data and associated actions supplement generalized sports content.
Embodiments of the invention can appear on Internet sites, and may take the form of a module that appears on a Web page alongside displayed content, or a context sensitive menu that displays player status, Yahoo!® Q extensions (i.e., extensions of the systems and methods described in co-assigned U.S. patent application Ser. No. 10/903,283 to Kraft, or a Yahoo!® Messenger tab.
In general, in a first aspect, the invention features a fantasy sports context generator for generating a fantasy sports context interface that links online content to entities in an online fantasy sports game. The context generator includes correlation logic and player interface logic. The correlation logic is for determining if a real-life sports entity identified by name in the online content is relevant to a user's fantasy sports team, wherein the user's fantasy sports team is associated with a user of the context generator. The player interface logic is operable to present a player interface feature if the sports entity is relevant to the user's fantasy sports team. The player interface feature is associated with a selected sports player. The selected sports player is selected based upon the sports entity. The player interface logic is operable to cause an action in response to selection of the player interface feature.
Embodiments of the invention may include one or more of the following features. The sports entity may include an identified sports player, and the selected sports player may be the identified sports player. The correlation logic may determine that the sports entity is relevant to the user if the identified sports player is an eligible player in the user's fantasy sports league. The metadata attribute may include the name of the identified sports player. The sports entity may be an identified fantasy sports team, and the selected sports player may be a fantasy sports player relevant to the identified fantasy sports user. The correlation logic may determine that the sports entity is relevant to the user if the identified fantasy sports team is an opposing team that opposes the fantasy sports team. The metadata attribute may include the name of the identified fantasy sports team
The fantasy sports context generator may also include entity recognition logic for identifying the name of the sports entity in the content if the content includes the metadata attribute associated with the sports entity, wherein the content includes text. The fantasy sports context generator may also include a content display component for presenting the content, wherein the content display component is operable to convert the metadata attribute associated with the sports entity to an entity hyperlink. The content display component may be operable to present the entity hyperlink in the content, wherein the entity hyperlink includes a label which includes the metadata attribute, and wherein the entity hyperlink refers to a profile page for providing information related to the sports entity.
The player interface feature may include the name of the selected sports player, and the player interface logic may present the player interface feature in a category, wherein the category is based upon the type of relationship between the selected sports player and the user's fantasy sports team. Furthermore, the player name feature may cause a profile of the selected player to be displayed in response to selection of the player name feature.
The player interface logic may display an injury status of the selected sports player. The player interface logic may display information about a player, wherein the player is a member of the user's fantasy sports team, and wherein the player interface feature comprises a player drop feature for initiating a process of dropping the player from the user's team. The player interface logic may display information about an opponent player, wherein the opponent player is a member of an opponent team, and wherein the player interface feature includes a player trade feature for initiating a process of adding the opponent player to the user's team. The player interface logic may display information about a free agent, and wherein the player interface feature comprises a player add feature for initiating a process of adding the free agent to the user's team.
The fantasy sports context generator may include a watch list add feature for causing the sports player to be added to a watch list, wherein the watch list comprises information about selected sports players. The fantasy sports context generator may include a watch list status feature for indicating that the selected sports player has been added to the watch list. The fantasy sports context generator may include a watch list viewing feature for causing a watch list to be displayed in response to selection of the watch list viewing feature. The fantasy sports context generator may include a news retrieval feature for causing display of at least a portion of a news article related to the selected sports player. The fantasy sports context generator may include a league selection component for receiving selection of a fantasy sports league name, wherein the league name refers to a fantasy sports league; and a league name feature for displaying the league name,
The fantasy sports context generator may include a team name feature for displaying the name of the user's fantasy sports team name, wherein the team name may cause a profile of the fantasy sports team to be displayed in response to selection of the team name feature. The fantasy sports context generator may also include a player type feature for displaying a player type associated with the selected sports player, wherein the player type comprises a same team type to indicate that the selected sports player is on the user's team, an opponent team type to indicate that the selected sports player is on an opponent team, a free agent type to indicate that the selected sports player is a free agent, or a combination those.
The fantasy sports context generator may include a player add feature for initiating a process of adding the player to the user's team if the player is a free agent; a player drop feature for initiating a process of dropping the player from the user's team if the player is on the user's team; and a player trade feature for initiating a process of trading the player for an opponent player if the player is on the user's team. The player interface logic may present the player interface feature in the same user interface window as the content.
The league selection component may cause a profile of the fantasy sports league to be displayed in response to selection of the league name feature. The player interface logic may display the player interface feature in a category based upon the player type, wherein the category may include a same team category for players on the user's team, an opposing team category for players of the opponent team type, a free agent category for free agent players, or a combination of those categories.
In general, in s second aspect, the invention features a fantasy sports context interface that provides information and selectable action features for linking online content to a fantasy sports game. The fantasy sports context interface includes player interface logic for presenting a player interface feature associated with a sports player if the sports player is referenced by the online content and the sports player is relevant to a user's fantasy sports team associated with a user. The player interface logic is operable to cause an action in response to selection of the feature, wherein the action is based upon the player. The player interface logic is further operable to present the player interface feature in a category, wherein the category is based upon the type of relationship between the sports player and the fantasy sports team. The fantasy sports context user interface also includes a content presentation component for presenting the content. The content presentation component is operable to present a hyperlink, wherein the hyperlink comprises a label that includes the name of the sports player, and wherein the hyperlink refers to a player profile page for providing information about the sports player.
Embodiments of the invention may include one or more of the following features. The player interface feature may include a news feature for displaying news related to the player in response to user input.
In general, in a third aspect, the invention features a personalized fantasy sports context generator for generating a fantasy sports context for an item of sports content accessed by a user. The context generator includes entity identification logic for identifying a fantasy sports entity in the item of sports content, context display logic for presenting information associated with the fantasy sports entity in a fantasy context user interface, wherein the information is displayed in association with the entity, and action display logic for presenting an action feature to the user, wherein the action feature is displayed in association with the fantasy sports entity in the fantasy context user interface. The action feature is operable to cause an action in response to selection of the feature.
Embodiments of the invention may include one or more of the following features. The entity identification logic may identify the fantasy sports entity in the item of sports content if the name of the fantasy sports entity is present in the item of sports content. The fantasy sports entity name may comprise a player name, a fantasy sports team name, or a combination thereof. The information associated with the player may comprise a player name, fantasy data, or a combination thereof.
In general, in a fourth aspect, the invention features fantasy context generation logic, which includes search logic for identifying a recognized player in an article of content by searching the content for a recognized player name, wherein the recognized player name identifies a recognized player. The fantasy context generation logic also includes correlation logic for determining if the recognized player is relevant to a user, and link logic for constructing a player hyperlink associated with the recognized player if the recognized player is relevant to the user. The player hyperlink comprises a label which includes the recognized player name. The player hyperlink refers to a player profile page for providing information related to the recognized player. The fantasy context generation logic also includes content linking logic for converting an occurrence in the article of the recognized player name to the player hyperlink; and context generation logic for generating a fantasy sports context interface if the recognized player is relevant to the user. The context interface includes at least one player interface feature associated with the recognized player.
Embodiments of the invention may include one or more of the following features. The correlation logic may determine that the recognized player is relevant if the recognized player is a member of a fantasy sports team associated with the user. The correlation logic may determine that the recognized player is relevant if the recognized player is a member of an opposing fantasy sports team, wherein the opposing fantasy sports team opposes a fantasy sports team associated with the user. The correlation logic may determine that the recognized player is relevant if the recognized player is a free agent player available to be added to a fantasy sports team associated with the user.
In general, in a fifth aspect, the invention features a method of generating a fantasy sports context for an item of sports content for presentation to a user. The method of generating a fantasy sports context includes acquiring at least one metadata value for at least one known entity from an entity database, determining if the metadata value is present in the sports content, determining if the known entity is relevant to the user. The method also includes the following conditional step: if the metadata value is present in the sports content and the known entity is relevant to the user, performing the following steps a-c: a. adding the known entity to the fantasy sports context as at least one matching entity, b. generating at least one entity link, wherein the entity link comprises a label that includes the name of the known entity, wherein the entity link refers to at least one entity profile page for providing information about at least one known entity, and c. presenting the item of sports content to the user, wherein the entity link appears in the item of sports content.
Embodiments of the invention may include one or more of the following features. The known entity may be a sports player, and the entity link may be a link to a sports player profile page. The known entity may be a fantasy sports team, and the entity link may be a link to a fantasy sports team profile page. Determining if the known player name is relevant to the user may include determining if the known player name identifies a fantasy sports player who is in the user's fantasy league. The method of generating a fantasy sports context may also include converting the matching entity name in the item of sports content to the entity link. The metadata value may be a player name. The metadata value may be indexed for quick retrieval.
In general, in a sixth aspect, the invention features a computer program product comprising program code for generating a fantasy sports context interface that links online content to entities in an online fantasy sports game. The computer program product includes program code for determining if a real-life sports entity identified by name in the online content is relevant to a user's fantasy sports team, wherein the user's fantasy sports team is associated with a user of the context generator, and program code for presenting a player interface feature if the sports entity is relevant to the user's fantasy sports team, wherein the player interface feature is associated with a selected sports player. The selected sports player is selected based upon the sports entity, and the player interface logic is operable to cause an action in response to selection of the feature.
In general, in a seventh aspect, the invention features a computer program product comprising program code for generating a fantasy sports context interface that links online content to entities in an online fantasy sports game. The computer program product includes program code for identifying a recognized player in an article of content by searching the content for a recognized player name, wherein the recognized player name identifies a recognized player. The computer program product also includes program code for determining if the recognized player is relevant to a user, and program code for constructing a player hyperlink associated with the recognized player if the recognized player is relevant to the user, wherein the player hyperlink comprises a label which includes the recognized player name, and wherein the player hyperlink refers to a player profile page for providing information related to the recognized player. The computer program product also includes program code for converting an occurrence in the article of the recognized player name to the player hyperlink, and program code for generating a fantasy sports context interface if the recognized player is relevant to the user, wherein the context interface includes at least one player interface feature associated with the recognized player.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a schematic drawing of an illustrative client server system that can run a novel process for providing a fantasy sports context in accordance with some embodiments of the invention.
FIG. 2 is an illustrative block diagram of a fantasy sports context generator in accordance with some embodiments of the invention.
FIG. 3 is an illustrative drawing of components of a fantasy sports context user interface in accordance with some embodiments of the invention.
FIG. 4 is an illustrative drawing of a fantasy sports context user interface in accordance with some embodiments of the invention.
FIG. 5 is an illustrative drawing of a fantasy sports context user interface in accordance with some embodiments of the invention.
FIG. 6 is an illustrative flow diagram of a computer program based process to generate an entity database in accordance with some embodiments of the invention.
FIG. 7 is an illustrative flow diagram of a computer program based process to generate a fantasy sports context in accordance with some embodiments of the invention.
FIG. 8A is an illustrative drawing of an entity database generated by the method ofFIG. 6 in accordance with some embodiments of the invention.
FIG. 8B is an illustrative drawing of an entity-to-fantasy-team association table in accordance with some embodiments of the invention.
FIG. 9 is an illustrative drawing of recognized, user specific entities generated by the process ofFIG. 7 in accordance with some embodiments of the invention.
FIG. 10 is an illustrative drawing of a player profile user interface feature in accordance with some embodiments of the invention.
FIG. 11 is an illustrative drawing of a player news user interface feature in accordance with some embodiments of the invention.
FIG. 12 is an illustrative drawing of an Add Player user interface feature in accordance with some embodiments of the invention.
FIG. 13 is an illustrative drawing of a Player Trade user interface feature in accordance with some embodiments of the invention.
FIG. 14 is an illustrative drawing of a Watch List user interface feature in accordance with some embodiments of the invention.
FIG. 15 is an illustrative drawing of a league profile user interface feature in accordance with some embodiments of the invention.
FIG. 16 is an illustrative drawing of a team profile user interface feature in accordance with some embodiments of the invention.
DETAILED DESCRIPTION OF THE EMBODIMENTSThe following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of particular applications and their requirements. Various modifications to the preferred embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Moreover, in the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that the invention might be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
FIG. 1 is a schematic drawing of an illustrative client server system that can run a novel process for providing a fantasy sports context in accordance with some embodiments of the invention. InFIG. 1, auser140 interacts with aclient application130 to play a fantasy sports game, and to consume, e.g., read or listen to, online content that may be related to the sports game. In one aspect, theclient application130 is a software program that runs on aclient120. Theclient120 may be a computer or a device such as a cellular phone.
Direct communication between Window A'sFantasy Context136 and theweb server112 ofServer B108 is optional. That is, the client application need not separately contactServer A102 andServer B108. Server A could instead contact Server B on the user's behalf and send a web page including bothcontent134 and acontext136. The configuration shown inFIG. 1, with communication between thefantasy context136 and theweb server112, may be used whenServer A102 is not controlled by the same organization asServer B108. In one aspect, the FantasySports Context Generator110 may be located, i.e., executed, onServer A102 rather thanServer B108. TheContext Generator110 may use web services to contact the FantasySports Data Server116 for information about a user's fantasy league.
To play the game, the user joins one or more fantasy leagues, and creates one or more fantasy sports teams and assigns fantasy sports players to the team according to certain rules. The fantasy sports players are typically based upon real-world players. The goal of the game is, in one aspect, to select the players who will score the most points in an upcoming real-world sports game. News stories and other content related to the real-world players on the user's team and on opposing teams can help the user to make better decisions about which players to select for the team. A fantasysports context interface136 is displayed in association with, e.g., adjacent to, thecontent134. Thecontext interface136 displays a list of relevant players, which are fantasy sports players who are in the user's fantasy league(s) and referred to in the article. Fantasy sports players are in a fantasy league when they are members of that league. In one aspect, thecontext interface136 also displays information about those players, such as injuries, status within the league, e.g., which fantasy team owns the player, in a concise form. Thecontext interface136 also provides commands that the user may invoke to manipulate, i.e., add, drop, trade, or watch those relevant fantasy sports players.
Theuser140 interacts with a user interface of theclient application130 to play the game and consume thecontent134. In this example, the user interface includes a display of thecontent134, thecontext interface136, and thegame interface154. The user interface may be, for example, a web browser user interface, and thewindow A132 and thewindow B150 may be windows displayed by the web browser. In this example, thewindow A132 displayscontent134 and the fantasysports context interface136. Thecontent134 is ordinarily a news article related to real-world sports games, players, or teams in a sport that is played in the fantasy sports game. In some examples, the fantasysports game interface154, thecontent134, and the fantasysports context interface136 may be displayed in a single window, or each of those there components may be displayed in a separate window.
Thewindow B150 displays the fantasysports game interface154. Two windows are shown in the example ofFIG. 1 because typical user interfaces display the content separately from the fantasy sports game interface. For example, the content and the fantasy sports game interface would typically be displayed in separate web browser windows or tabs, which may be difficult for the user to view simultaneously. The fantasysports context interface136 is therefore displayed in the same window as thecontent134 to provide theuser140 with convenient access to relevant commands for manipulating relevant fantasy sports teams or players that are referred to, i.e., mentioned, in thecontent134. Theuser140 may use thecontext interface136 to perform these relevant commands and view concisely formatted information about the entities without using thegame interface150. Because thegame interface150 provides commands for playing the game, as well as comprehensive information about fantasy sports players, thegame interface150 is typically a more general purpose interface than thecontext interface136. Thegame interface150 does not necessarily provide such conveniently accessible commands for manipulating the relevant fantasy sports teams or players, and does not necessarily present information about the relevant fantasy sports teams or players in a concise format.
Aserver A102, which is ordinarily a computer, communicates with theclient120 via a network such as the Internet. In one aspect, aWeb Server106 running on theserver A102 receives requests from the network for online content. The requests may be, for example, requests for sports-related news articles, and the request may be sent by, for example, theclient application130 or a fantasysports context generator110 running on aserver B108.
Thecontext generator110 creates the fantasysports context interface136 as, for example, browser-executable code in a computer language such as JavaScript™ or the like, and adds thecontext interface136 to the content generated by anarticle content server104 by, for example, adding the JavaScript™ code to a web page generated by thecontent server104.
In one embodiment, theArticle Content Server104 may send a request to the fantasysports context generator110. TheArticle Content Server104 may use the data returned by thecontext generator110 to composes a web page with both the article content and personalized fantasy content. Other techniques for communication between thecontext generator110 and thecontent server104 are possible. For example, in another embodiment, theclient120 may make two requests: one for the article and another for the fantasy context. JavaScript code in theclient120 would then compose a page to be displayed.
Theweb server106 forwards the requests to anarticle content server104, which responds by providing the requested content to theweb server106. Theweb server106 sends the content as a response to the requester, e.g., to theclient application130 or to thecontext generator110. In another example, thecontext generator110 sends the request directly to thearticle content server104, without using a web server.
Theweb server112 receives requests from thecontext interface136 to invoke commands provided by thecontext interface136. In one example, thecontext generator110 running on theserver B108 receives command requests from thecontext interface136 without the use of a web server. In another example, thecontext generator110 may be executed within another application such as a Yahoo!® Widget, and a protocol other than HTTP could be used to communicate between that application and thecontext generator110.
In another example, thearticle content server104, thegame generator114, and thecontext generator110, may each run on a different server host, and communicate with each other via the network. The number of servers and the process arrangement can be determined based upon characteristics of the server and of the expected work load, as is known to those skilled in the art.
Thecontext generator110 uses afantasy data server116 to determine which teams and leagues are associated with a user. Theserver116 also keeps track of real-life players within the fantasy league. In one aspect, thecontext generator110 stores information about, leagues, teams and real-life players in memory. That is, the context generator does not necessarily maintain persistent state. The context generator may use the database created during entity recognition along with the database that represents the fantasy game. Since both of these databases are typically available, the generator need not store data persistently. The operation of thecontext generator110 is described in more detail below.
FIG. 2 is an illustrative block diagram of a fantasysports context generator110 in accordance with some embodiments of the invention. Thecontext generator110 may generate a fantasysports context interface136 that linksonline content206, e.g., news articles or the like, toentities216 in an online fantasy sports game, as described above with respect toFIG. 1. TheArticle Content Server104 may containentity recognition logic204. Thecontext generator110 may includecorrelation logic222, andplayer interface logic230. The entity recognition logic may also be separate from thearticle content server104. In one aspect, theentity recognition logic204 is included in thecontext generator110.
Real-life entities are first identified in a piece of content such as an article. For example, if an article mentions Barry Bonds and Frank Thomas, there will a row for each player in the RecognizedEntity Cache218. Theentity recognition logic204 may identify a real-life sports entity by searching anentity database118 for a metadata attribute value, where the value is a value that is present in the content associated with the sports entity. In one aspect, theentity recognition logic204 receivescontent206 from anarticle content server104 and searches thecontent206 for values that are present in entity metadata, which is information associated with sports entities to find real-life sports entities related to the content. The metadata is represented as, for example, the metadata column of theentity database116. Thecontent206 may be a string of text, and may be the text of a single article in a format such as text or Hypertext Markup Language (HTML), or may be a continuous stream of data, e.g., data from a news feed.
Theentity database118 is created and populated byentity compilation logic212, which retrieves information about real-life sports entities such as fantasy sports leagues, teams, and players from asports data server116 and stores that information in theentity database118 in a table that associates anentity ID244 with a corresponding set of metadata attributes246, e.g., the name of the entity and names of related entities, to form a row in a the database. The metadata attributes246 database may also include other known public identifiers of the entity, such as an identifier used by another provider to identify the player.
An individual row is formed for each entity retrieved from the sports data server. The entity database is shown as a relational database for illustrative purposes. Other data models and storage techniques may be used to form theentity database118, such as data structures in computer memory or object-oriented databases. Theentity compilation logic212 may execute a first time when theentity database118 is created, and may execute subsequent times to update theentity database118 with new entities when new entities are added to thefantasy data server116. In one aspect, theentity database118 contains information about real-life players and is therefore independent of thefantasy data server116.
The entity metadata, e.g., the name-value pairs in the metadata column of theentity database118, may include the name of one real-life player or real-life team Each name-value pair in the metadata, e.g., Name=A. Soriano, is referred to herein as a metadata attribute. In one aspect, the metadata column contains zero or more name-value pairs, such as the name-value pairs Name=A. Soriano and Player ID 1235 in themetadata entry246. Each of the name-value pairs could alternatively each be stored in a separate column, e.g., with a Name column having the value A. Soriano. In this example, thecontent206 is searched for the value of each name-value pair. The metadata column(s) may be indexed to improve the speed or efficiency of searching the metadata.
For each row of theentity database118 that matches thecontent206, i.e., has a metadata value that is present in thecontent206, the entity field of the matching row gives the identity of the sports entity, e.g., league, team or player, that matched thecontent206. Theentity recognition logic204 produces a list of recognized entities, which are the entity identifiers from the rows of theentity database118 for which metadata values are present in thecontent206.
As an example, if thecontent206 contains the string “A. Soriano hit a 2-run home run”, then the entity recognition logic would find that the metadata field of the first row contains a string present in thecontent206, i.e., “A. Soriano”. Since the corresponding entity identifier in the Entity ID column of theentity database118 is “10”, the recognized entities produced by theentity recognition logic204 will include the value entity corresponding to the Entity ID value “10”.
In one aspect, thecontent scanner208 uses a string search to search thecontent206 for the metadata values associated with each entity row in theentity database118. If the search determines that a metadata value, e.g., “A. Soriano”, is present in thecontent206, then the ID of the entity associated with that metadata value, e.g., theID244, is passed tocorrelation logic222, which will determine if the entity is of interest to, i.e., relevant to, a user.
If aparticular content206 is likely to be searched again, each recognized entity may be added to a recognizedentity cache218 in association with a content identifier that identifies thecontent206. The entity or entities that correspond to aparticular content206 can then be retrieved quickly by searching the recognizedentity cache218 for the content identifier of theparticular content206. If the content identifier is present in the cache, then the recognized entities for the content can be retrieved quickly from the entities column of the matching row(s). Otherwise, the entity recognition logic may search the content for entity metadata values as described above.
As described above, each user typically manages at least one fantasy sports team. Each team is ordinarily part of a single league. That team is said to be associated with the user, or, equivalently, is said to be the user's team. Each team ordinarily has one or more real-life players, and each player on the team is said to be a member of the team. In some less-sophisticated fantasy sports games, users do not manage teams, but instead attempt to pick winners among real-life competition. These are commonly known as Pick'Em games.
Thecorrelation logic222 determines if each sports entity received from theentity recognition logic204 is of interest to, i.e., is relevant to, a user, such as theuser140. In one aspect, sports entities relevant to the user may include a real-life player on the user's team, a team opposing the user's team, and a player on such an opposing team. An opposing team is a fantasy sports team that's in the same fantasy league as the user.
Thecorrelation logic222 receives one or morerecognized entities228 from theentity recognition logic204, and one ormore league entities224 from fantasydata acquisition logic220. Theleague entities224 are the entities associated with the user'sleague140, which are retrieved from a fantasy data server214 by the fantasy data acquisition logic. The correlation logic identifies one or more correlated entities, which are entities, e.g., players or teams, present in both the recognized entities and the league entities.
The recognizedentities228 may be real-life sports teams. In fantasy sports, often a real life team's defense will function like a player on a fantasy team. For example, a user may have drafted Terrell Owens and the 49'ers defense. Furthermore, in the case of Pick'Em games, a user's “picks” could be displayed next to real life article content. For example, if the 49'ers' starting QB is unable to play in the next game, the user may no longer want to pick the 49'ers. The fantasy context thus enables users to quickly make changes to their picks as they consume editorial content.
Intersection logic226 identifies the correlated entities by computing the intersection of the user'sleague entities224 and the recognizedentities228. That is, the correlated entities are entities found in thecontent206 that are relevant to theuser140.
In a further aspect, thecorrelation logic222 may determine that a recognized entity is relevant to the user if the recognized entity is a sports player which is a member of the user's fantasy sports team, a member of an opposing team, or a free agent player. Thecorrelation logic222 may determine whether a player is a member of an opposing team by retrieving a list of opposing teams from thefantasy data server116 and searching for the player in the rosters of those opposing teams. As described above, opposing teams are teams that have played against, are playing against, or will play against the user's team.
Player interface logic230 receives the correlated entities and generates a user interface for presenting the correlated entities to theuser140. The user interface includes player interface features232, which display information about correlated entities that represent players.
Ordinarily, one player interface feature is displayed for each correlated entity that is a player, and sub-features of the player interface feature display information about the player and provide selectable actions related to the player. Theplayer interface logic230 may cause an action to be performed in response to selection of a player interface feature or sub-feature by theuser140. For example, the player interface feature for a particular player may display sub-features that include the player's name and one or more icons. If a user selects, i.e., clicks on, the player's name, then information about the player will be displayed. If a user selects an icon, then another action related to the player, such as displaying news items related to the player, adding the player to the user's team, dropping the player from the user's team, adding the player to a watch list, or the like, may be performed.
With reference toFIG. 1, the user interface generated by theplayer interface logic230, including the player interface features232, may be presented to theuser140 of theclient application130 as a fantasysports context interface136 in awindow A132 alongsidecontent134. Thecontent134 is, in one aspect, thecontent206. Thecontent134 may be modified include additional features to highlight the names of relevant players and teams that occur in thecontent134, and to provide hyperlinks for each relevant player. The hyperlinks may include the player names as displayable text, i.e., labels, and may be displayed in thecontent134 in place of the original player names. The hyperlinks may be, for example, web links to web pages for displaying information about the player, such as player profile pages. Theplayer interface logic230 may include content display features for generating the modified hyperlinks and converting the names of relevant entities, such as players and teams, to corresponding hyperlinks to web pages that provide information about those entities. The player names are metadata attributes in theentity database118, and theplayer interface logic230 may convert metadata attribute values that are present in thecontent206 to hyperlinks in thecontent134 and display the attribute values, such as the player names, as the label portions of the hyperlinks. The relevant entities displayed as hyperlinks in thecontent134 are ordinarily the same entities displayed in thefantasy sports context136, and, in one aspect, are the set of correlated entities determined by thecorrelation logic222.
FIG. 3 is an illustrative drawing of components of a fantasy sports context user interface in accordance with some embodiments of the invention. Auser interface300 generated by the fantasysports context generator10 ofFIG. 1 includescontent304 and afantasy sports context320. Names of recognized, i.e., relevant, players and teams that are displayed in thecontent304 correspond to player interface features326 displayed in thefantasy sports context320. That is, for each real-life player or team recognized as relevant in thecontent304, aplayer interface feature326 is displayed in the fantasy sports context. Each recognizedplayer name308 in the set of recognizedplayers306 in thecontent304 may be displayed in highlighted form, e.g., in a bold font or with underlining, and may be displayed as a hyperlink to a web page that provides information about the player referred to by theplayer name308. Similarly, eachteam name314 in the set of recognizedteams312 in thecontent304 may be displayed in highlighted form or as a hyperlink to a web page that provides information about the team.
Thefantasy sports context320 includes aleague selector322, which displays the name of a currently selected fantasy sports league and allows theuser302 to select a different fantasy sports league from a drop-down menu. The currently selected fantasy sports league, in combination with theuser302, ordinarily identifies a fantasy sports team associated with theuser302, since eachuser302 is typically associated with a single fantasy sports team in each fantasy sports league. The name of the currently selected league is displayed as aleague name link324, which a user can select to display information about the currently selected league.
Thefantasy sports context320 may include aplayer interface feature326, which represents a corresponding player that is referred to by aplayer name308 that appears in thecontent304. The player interface feature326 includes sub-features for performing actions related to the corresponding player. Thecontent304 may be, for example, the text of an article published by an online news source. If multiple player names appear in thecontent304, then a separateplayer interface feature326 will be displayed for each player, as shown by aplayer name N310 associated with a playerinterface feature N346. Theplayer interface feature326 includes aplayer type indicator328, which indicates whether the corresponding player is on the user's team, on an opponent's team, or a free agent. The players in each of those three categories may be grouped together, so that a first group displayed with a label indicating the players in the group are on the user's team, a second group with a label indicating the players in the group are on opponents' teams, and a third group, with a label indicating that the players in the group are free agents.
Theplayer interface feature326 also includes aplayer name link330, which displays the name of the corresponding player as a hyperlink that a user can select to display information about the corresponding player. Sub-features of theplayer interface feature326 include an add player feature336 for adding the corresponding player to the user's team, a drop player feature337 for dropping the corresponding player from the user's team, atrade feature338 for trading the corresponding player to or from an opposing team, astatus indicator334 for displaying an injury status of the corresponding player, anews display feature342 for displaying news related to the corresponding player, and a watch list addfeature339 for adding the corresponding player to a watch list. The add player feature336 is displayed if the corresponding player is a free agent.
Thefantasy sports context320 may include a watch list link354, which a user can select to display the names of and information about players that have been added to the watch list via the watch list addfeature339. In one aspect, thefantasy sports context320 is displayed in a web browser alongside thecontent304.
FIG. 4 is an illustrative drawing of a fantasy sports context user interface in accordance with some embodiments of the invention. Aclient application400, such as a browser, displayscontent403 and other information, such as anadvertisement404. Afantasy sports context410 is displayed alongside thecontent403. Thefantasy sport context410 includes agame description412, aleague selector414, acurrent league hyperlink416, ateam hyperlink418, aFree Agents category420, an On Opponent'sTeam category425, and a watch list feature428 for displaying a watch list. TheFree Agents category420 includes a first player interfacefeature A. Smith422 that corresponds to the player name Alan Smith displayed in thecontent403, and a second player interfacefeature T. Rattay424 that corresponds to the player name Tim Rattay displayed in thecontent403. The On Opponent's Team category includes a thirdplayer interface feature426 that corresponds to a player Ken Dorsey, who is mentioned in thecontent403. The player names in thecontent403 are hyperlinks to web pages, e.g., to web pages for displaying profile information about the corresponding players.
FIG. 5 is an illustrative drawing of a fantasy sports context user interface in accordance with some embodiments of the invention.FIG. 5 shows three player categories in a fantasy sportscontext user interface506. Thecontext interface506 includes atitle508, which describes the type of fantasy sports game, aleague selector510, which displays the currently-selected league, and league andteam links512, which a user can select to display more information about the current league and team. AFree Agents category513 includes acategory name514, Free Agents, and a player interface feature for the player named T. Hafner. The T. Hafner player interface feature is displayed because T. Hafner is mentioned in thecontent502. The player interface feature for T. Hafner includes a player namehyperlink T. Hafner516 and sub-features518. The sub-features518 include a Questionableinjury status indicator550, which indicates that the status of the corresponding player, T. Hafner, is questionable, i.e., the player may not be ready to play. The sub-features518 also include aNews feature552, which a user can select to display news items related to the corresponding player. An add player feature554, displayed as a plus sign, can be selected by the user to initiate a process of adding the corresponding player to the user's team. In one aspect, the add player feature554 appears for free agent players. The sub-features518 also include aWatch feature556 for adding the corresponding player to a watch list, as described above. The user can view the watch list by selecting aWatch List link538.
An “On Own Team”category519 includes acategory name feature520, On Own Team, and two player interface features, which correspond to two players that are on the user's team and mentioned in thecontent502. A player interface feature for the player named A. Soriano includes a player namehyperlink A. Soriano522, and sub-features524. The sub-features524 are similar to thesub-features518, but include a Drop Player feature538 for dropping the corresponding player from the user's team, because A. Soriano is on the user's team, and dropping A. Soriano from the team is a relevant action. AWatch feature558 removes the corresponding player, A. Soriano, to the watch list, as described above. The Watch feature558 is shaded to indicate that A. Soriano is on the watch list, and that the feature will remove the player from the list. The Watch feature556 is not shaded, which indicates that T. Hafner is not on the watch list.
An “On Opponent's Team” category includes acategory name feature530, On Opponent's Team, and a player interface feature, which corresponds to a player named J. Thome who is on an opponent's team and mentioned in thecontext502. The player interface feature for J. Thome includes a player namehyperlink J. Thome532 andsub-features536, which include a Trade Player feature560 for initiating a process of trading a player on the user's team for the correspondingplayer J. Thome532.
FIG. 6 is an illustrative flow diagram of a computer program based process to generate an entity database in accordance with some embodiments of the invention. The flow diagram ofFIG. 6 identifies real-life entities within a piece of content, and corresponds to theentity compilation logic212 ofFIG. 2. In one aspect, in theentity database118 ofFIG. 2, each entity consists of a list of metadata and an ID that uniquely identifies the entity. Once this database is compiled, an index on each piece of metadata is created. The flowchart ofFIG. 6 generates the entity database. The flowchart begins atblock602 by retrieving information for an entity, including the ID and metadata, from a feed server such as thesports data server116 ofFIG. 1.Block604 stores the retrieved entity information in the entity database, e.g., as a row in the database with entity ID and metadata columns as shown in thedatabase118 ofFIG. 1.Block608 repeats blocks602-604 for each entity available from the feed server.Block608 generates an index on each metadata element in the entity database, so that the entity database can be efficiently searched for values of the metadata element.
FIG. 7 is an illustrative flow diagram of a computer program based process to generate a fantasy sports context in accordance with some embodiments of the invention.FIG. 7 corresponds to the fantasysports context generator110 ofFIGS. 1 and 2. The flowchart ofFIG. 7 begins atblock702 by receiving content from an article content server, such as theserver104 ofFIGS. 1 and 2. The content is, for example, the text of a news item that has recently become available.
Atblock704, the text is classified into a particular domain. Domains include NFL Sports, NBA Sports, and the like. The domain may be determined through metadata associated with the text, the source of the content, and by scanning for keywords, player, team names, stadiums, and other identifying text. Once the domain is determined, block706 scans the content for recognized entities using an appropriate scanning technique, such as string searching for text articles.Block706 could alternatively retrieve recognized entities from a cached list. Recognized entities are entities whose names (or other identifiers) match metadata values in the entity database. In one aspect, hyperlinks are added to the content inblock706. That is, block706 may convert the names of relevant entities that appear in thecontent206 to hyperlinks that refer to information pages for those entities. By adding the hyperlinks, block706 converts theoriginal content206 to thecontent134 to be presented to the user.
Block708 requests the user's fantasy data from a fantasy data server, such as theserver116 ofFIGS. 1 and 2. The request will include a unique identifier such as a cookie. Theserver116 verifies this identifier and permits access to the user's personalized data.Block708 retrieves the user's fantasy data, which typically includes a list of fantasy entities, e.g., leagues, teams and players. Each fantasy entity corresponds to an entry from the user's fantasy league. The fantasy data is shown inFIG. 2 as theuser entities224. Theuser entities224 may be updated from theserver116 in near real-time. In one aspect, theuser entities224 represent the current state of all entities when the request is made.
Block710 correlates the recognized entities from the content with the entities from the user's fantasy leagues. In one aspect, block710 generates a list of entities that are in the user's league. These matches are relevant entities for which thefantasy sports context110 will include player interface features232. An additional set of relevant entities may be generated as described above with reference to thecorrelation logic222 ofFIG. 2. The additional relevant entities are teams opposing the user's team and players on opposing teams.Block712 generates thefantasy sports context110 by generating aplayer interface feature232 for each relevant entity.
FIG. 8A is an illustrative drawing of a table of real-life entities identified within a piece of content by the method ofFIG. 6 in accordance with some embodiments of the invention. The entity names shown inFIG. 8A are the names identified in thecontent502 ofFIG. 5 by the method ofFIG. 6. The identified entity names are Boston Red Sox, A. Soriano, Pittsburgh Pirates, J. Thome, D. Wright, Los Angeles Dodgers, and A. Ramirez.
FIG. 8B is an illustrative drawing of an entity-to-fantasy-league association table in accordance with some embodiments of the invention. The entity-to-fantasy league table may be present in thefantasy data server116 ofFIG. 2, and may be used by the fantasydata acquisition logic220 whenleague entities224 are generated. Each entity may be associated with one or more fantasy leagues, or with no league. In the example contents ofFIG. 8B,entity ID1, the Boston Red Sox team, is associated with fantasy leagueA. Entity ID10, the player A. Soriano, is also associated with leagueA. Entity ID30, the player T. Hafner, is not associated with any league.
FIG. 9A is an illustrative drawing of recognized, user specific entities generated by the process ofFIG. 7 in accordance with some embodiments of the invention. The table ofFIG. 9A is an example of correlated entities generated for user A's fantasy league for thecontent502 ofFIG. 5 byblock710 ofFIG. 7. The correlated entities are generated by computing the intersection of the recognized entities ofFIG. 8A with the entities in user A's fantasy league ofFIG. 8B. In this example, the intersection, i.e., the entities in both the recognized content and in the league entities, includes the entities Boston Red Sox, Pittsburgh Pirates, A. Soriano, D. Wright, T. Hafner, and J. Thome. T. Hafner is included because he is not assigned to any league. These correlated entities are converted to hyperlinks to corresponding entity information, i.e., profile, pages in thecontent502 shown inFIG. 5. Entities in thecontent502 that are recognized but not relevant to the user's fantasy league, such as A. Ramirez, are not converted to hyperlinks.
FIG. 10 is an illustrative drawing of a player profile user interface feature in accordance with some embodiments of the invention. The player profile user interface feature ofFIG. 10 is displayed, for example, in response to a user selecting a player name hyperlink in theuser interface500 ofFIG. 5. The player name hyperlinks appear in both thecontent502, e.g., the underlined player name A. Soriano, and in the player interface sub-features, e.g., the player namehyperlink T. Hafner516. The player profile user interface displays information about the player named in the hyperlink. The player profile user interface displays statistics, hyperlinks to news items, and other information, such as team affiliation, that may be relevant to the fantasy sports game.
FIG. 11 is an illustrative drawing of a player news user interface feature in accordance with some embodiments of the invention. The player news user interface feature ofFIG. 11 is displayed, for example, in response to a user selecting the News sub-feature552 in the fantasy sportscontext user interface506 ofFIG. 5, which results in display of the player news user interface feature, which displays news and links to news stories for the player who corresponds to theNews feature552.
FIG. 12 is an illustrative drawing of an Add Player user interface feature in accordance with some embodiments of the invention. The Add Player user interface feature ofFIG. 12 is displayed in response to a user selecting the Add Player sub-feature554 in thefantasy sports context506 ofFIG. 5. The Add Player user interface feature displays the player corresponding to the Add Player sub-feature554 in a list of Players To Add. A user may then request that the player be added to the user's team by selecting a submit button or the like.
FIG. 13 is an illustrative drawing of a Player Trade user interface feature in accordance with some embodiments of the invention. The Player Trade user interface feature ofFIG. 13 is displayed, for example, in response to a user selecting the Player Trade sub-feature560 ofFIG. 5. The Player Trade user interface feature displays a list of players to trade for, which are typically players on the user's team to be traded in exchange for the player (on an opponent's team) corresponding to the Player Trade sub-feature560, although the players to trade for may be players on an opponent team if the player corresponding to the Player Trade sub-feature560 is a player on the user's team. A user may then request that the trade be performed by selecting a submit button or the like.
FIG. 14 is an illustrative drawing of a Watch List user interface feature in accordance with some embodiments of the invention. The Watch List user interface feature ofFIG. 14 is displayed, for example, in response to a user selecting the Watch List feature538 ofFIG. 5. The Watch List user interface feature displays information about players who have been added to the watch list by the Watch feature, such as the sub-feature556 ofFIG. 5.
FIG. 15 is an illustrative drawing of a league profile user interface feature in accordance with some embodiments of the invention. The league profile user interface feature is displayed, for example, in response to selection of a league hyperlink such as theleague hyperlink416 ofFIG. 4. The league profile user interface displays information about the teams in the league and recent transactions, e.g., player adds, drops, and trades, in the league.
FIG. 16 is an illustrative drawing of a team profile user interface feature in accordance with some embodiments of the invention. The team profile user interface feature is displayed, for example, in response to selection of a team hyperlink such as theteam hyperlink418 ofFIG. 4. The team profile user interface displays information about the team that corresponds to the hyperlink, including information about players on the team, the team's win-loss record, and the team's current lineup.
Embodiments of the invention provide a fantasy context that transforms generalized sports content into personalized and actionable data. The fantasy context eliminates the round trip users must currently perform to determine the status of players and teams within fantasy leagues. Rather, this fantasy context displays relevant fantasy specific information along with general sports content, thereby increasing the user's efficiency and providing a richer and streamlined user experience.
It must also be noted that, as used in this specification and the appended claims, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, the term “a sports entity” is intended to mean a single sports entity or a combination of sports entities, and “a player interface feature” is intended to mean one or more player interface features.
The above description is exemplary only and it will be apparent to those of ordinary skill in the art that numerous modifications and variations are possible. For example, various exemplary methods and systems described herein may be used alone or in combination with various other computer and computer peripheral systems and methods. Additionally, particular examples have been discussed and how these examples are thought to address certain disadvantages in related art. This discussion is not meant, however, to restrict the various examples to methods and/or systems that actually address or solve the disadvantages.