1. 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.
Information 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.
The 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.
Direct communication between Window A's Fantasy Context 136 and the web server 112 of Server B 108 is optional. That is, the client application need not separately contact Server A 102 and Server B 108. Server A could instead contact Server B on the user's behalf and send a web page including both content 134 and a context 136. The configuration shown in
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 fantasy sports context interface 136 is displayed in association with, e.g., adjacent to, the content 134. The context interface 136 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, the context interface 136 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. The context interface 136 also provides commands that the user may invoke to manipulate, i.e., add, drop, trade, or watch those relevant fantasy sports players.
The user 140 interacts with a user interface of the client application 130 to play the game and consume the content 134. In this example, the user interface includes a display of the content 134, the context interface 136, and the game interface 154. The user interface may be, for example, a web browser user interface, and the window A 132 and the window B 150 may be windows displayed by the web browser. In this example, the window A 132 displays content 134 and the fantasy sports context interface 136. The content 134 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 fantasy sports game interface 154, the content 134, and the fantasy sports context interface 136 may be displayed in a single window, or each of those there components may be displayed in a separate window.
The window B 150 displays the fantasy sports game interface 154. Two windows are shown in the example of
A server A 102, which is ordinarily a computer, communicates with the client 120 via a network such as the Internet. In one aspect, a Web Server 106 running on the server A 102 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, the client application 130 or a fantasy sports context generator 110 running on a server B 108.
The context generator 110 creates the fantasy sports context interface 136 as, for example, browser-executable code in a computer language such as JavaScript™ or the like, and adds the context interface 136 to the content generated by an article content server 104 by, for example, adding the JavaScript™ code to a web page generated by the content server 104.
In one embodiment, the Article Content Server 104 may send a request to the fantasy sports context generator 110. The Article Content Server 104 may use the data returned by the context generator 110 to composes a web page with both the article content and personalized fantasy content. Other techniques for communication between the context generator 110 and the content server 104 are possible. For example, in another embodiment, the client 120 may make two requests: one for the article and another for the fantasy context. JavaScript code in the client 120 would then compose a page to be displayed.
The web server 106 forwards the requests to an article content server 104, which responds by providing the requested content to the web server 106. The web server 106 sends the content as a response to the requester, e.g., to the client application 130 or to the context generator 110. In another example, the context generator 110 sends the request directly to the article content server 104, without using a web server.
The web server 112 receives requests from the context interface 136 to invoke commands provided by the context interface 136. In one example, the context generator 110 running on the server B 108 receives command requests from the context interface 136 without the use of a web server. In another example, the context generator 110 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 the context generator 110.
In another example, the article content server 104, the game generator 114, and the context generator 110, 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.
The context generator 110 uses a fantasy data server 116 to determine which teams and leagues are associated with a user. The server 116 also keeps track of real-life players within the fantasy league. In one aspect, the context generator 110 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 the context generator 110 is described in more detail below.
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 Recognized Entity Cache 218. The entity recognition logic 204 may identify a real-life sports entity by searching an entity database 118 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, the entity recognition logic 204 receives content 206 from an article content server 104 and searches the content 206 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 the entity database 116. The content 206 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.
The entity database 118 is created and populated by entity compilation logic 212, which retrieves information about real-life sports entities such as fantasy sports leagues, teams, and players from a sports data server 116 and stores that information in the entity database 118 in a table that associates an entity ID 244 with a corresponding set of metadata attributes 246, e.g., the name of the entity and names of related entities, to form a row in a the database. The metadata attributes 246 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 the entity database 118, such as data structures in computer memory or object-oriented databases. The entity compilation logic 212 may execute a first time when the entity database 118 is created, and may execute subsequent times to update the entity database 118 with new entities when new entities are added to the fantasy data server 116. In one aspect, the entity database 118 contains information about real-life players and is therefore independent of the fantasy data server 116.
The entity metadata, e.g., the name-value pairs in the metadata column of the entity database 118, 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 the metadata entry 246. 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, the content 206 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 the entity database 118 that matches the content 206, i.e., has a metadata value that is present in the content 206, the entity field of the matching row gives the identity of the sports entity, e.g., league, team or player, that matched the content 206. The entity recognition logic 204 produces a list of recognized entities, which are the entity identifiers from the rows of the entity database 118 for which metadata values are present in the content 206.
As an example, if the content 206 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 the content 206, i.e., “A. Soriano”. Since the corresponding entity identifier in the Entity ID column of the entity database 118 is “10”, the recognized entities produced by the entity recognition logic 204 will include the value entity corresponding to the Entity ID value “10”.
In one aspect, the content scanner 208 uses a string search to search the content 206 for the metadata values associated with each entity row in the entity database 118. If the search determines that a metadata value, e.g., “A. Soriano”, is present in the content 206, then the ID of the entity associated with that metadata value, e.g., the ID 244, is passed to correlation logic 222, which will determine if the entity is of interest to, i.e., relevant to, a user.
If a particular content 206 is likely to be searched again, each recognized entity may be added to a recognized entity cache 218 in association with a content identifier that identifies the content 206. The entity or entities that correspond to a particular content 206 can then be retrieved quickly by searching the recognized entity cache 218 for the content identifier of the particular content 206. 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.
The correlation logic 222 determines if each sports entity received from the entity recognition logic 204 is of interest to, i.e., is relevant to, a user, such as the user 140. 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.
The correlation logic 222 receives one or more recognized entities 228 from the entity recognition logic 204, and one or more league entities 224 from fantasy data acquisition logic 220. The league entities 224 are the entities associated with the user's league 140, which are retrieved from a fantasy data server 214 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 recognized entities 228 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 logic 226 identifies the correlated entities by computing the intersection of the user's league entities 224 and the recognized entities 228. That is, the correlated entities are entities found in the content 206 that are relevant to the user 140.
In a further aspect, the correlation logic 222 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. The correlation logic 222 may determine whether a player is a member of an opposing team by retrieving a list of opposing teams from the fantasy data server 116 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 logic 230 receives the correlated entities and generates a user interface for presenting the correlated entities to the user 140. The user interface includes player interface features 232, 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. The player interface logic 230 may cause an action to be performed in response to selection of a player interface feature or sub-feature by the user 140. 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 to
The fantasy sports context 320 includes a league selector 322, which displays the name of a currently selected fantasy sports league and allows the user 302 to select a different fantasy sports league from a drop-down menu. The currently selected fantasy sports league, in combination with the user 302, ordinarily identifies a fantasy sports team associated with the user 302, since each user 302 is typically associated with a single fantasy sports team in each fantasy sports league. The name of the currently selected league is displayed as a league name link 324, which a user can select to display information about the currently selected league.
The fantasy sports context 320 may include a player interface feature 326, which represents a corresponding player that is referred to by a player name 308 that appears in the content 304. The player interface feature326 includes sub-features for performing actions related to the corresponding player. The content 304 may be, for example, the text of an article published by an online news source. If multiple player names appear in the content 304, then a separate player interface feature 326 will be displayed for each player, as shown by a player name N 310 associated with a player interface feature N 346. The player interface feature 326 includes a player type indicator 328, 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.
The player interface feature 326 also includes a player name link 330, 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 the player interface feature 326 include an add player feature 336 for adding the corresponding player to the user's team, a drop player feature 337 for dropping the corresponding player from the user's team, a trade feature 338 for trading the corresponding player to or from an opposing team, a status indicator 334 for displaying an injury status of the corresponding player, a news display feature 342 for displaying news related to the corresponding player, and a watch list add feature 339 for adding the corresponding player to a watch list. The add player feature 336 is displayed if the corresponding player is a free agent.
The fantasy sports context 320 may include a watch list link 354, 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 add feature 339. In one aspect, the fantasy sports context 320 is displayed in a web browser alongside the content 304.
An “On Own Team” category 519 includes a category name feature 520, On Own Team, and two player interface features, which correspond to two players that are on the user's team and mentioned in the content 502. A player interface feature for the player named A. Soriano includes a player name hyperlink A. Soriano 522, and sub-features 524. The sub-features 524 are similar to the sub-features 518, but include a Drop Player feature 538 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. A Watch feature 558 removes the corresponding player, A. Soriano, to the watch list, as described above. The Watch feature 558 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 feature 556 is not shaded, which indicates that T. Hafner is not on the watch list.
An “On Opponent's Team” category includes a category name feature 530, 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 the context 502. The player interface feature for J. Thome includes a player name hyperlink J. Thome 532 and sub-features 536, which include a Trade Player feature 560 for initiating a process of trading a player on the user's team for the corresponding player J. Thome 532.
At block 704, 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, block 706 scans the content for recognized entities using an appropriate scanning technique, such as string searching for text articles. Block 706 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 in block 706. That is, block 706 may convert the names of relevant entities that appear in the content 206 to hyperlinks that refer to information pages for those entities. By adding the hyperlinks, block 706 converts the original content 206 to the content 134 to be presented to the user.
Block 708 requests the user's fantasy data from a fantasy data server, such as the server 116 of
Block 710 correlates the recognized entities from the content with the entities from the user's fantasy leagues. In one aspect, block 710 generates a list of entities that are in the user's league. These matches are relevant entities for which the fantasy sports context 110 will include player interface features 232. An additional set of relevant entities may be generated as described above with reference to the correlation logic 222 of
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.
This 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.