U.S. patent application number 14/803203 was filed with the patent office on 2015-11-12 for method and system for socially ranking programs.
The applicant listed for this patent is Eloy Technology, LLC. Invention is credited to Christopher M. Amidon, Scott Curtis, Gregory M. Evans.
Application Number | 20150326938 14/803203 |
Document ID | / |
Family ID | 46019710 |
Filed Date | 2015-11-12 |
United States Patent
Application |
20150326938 |
Kind Code |
A1 |
Curtis; Scott ; et
al. |
November 12, 2015 |
Method And System For Socially Ranking Programs
Abstract
A method and system for displaying program representation.
Program rating information derived from a plurality of identified
users regarding a plurality of programs is obtained. The plurality
of identified users are identified based on at least one of likes
and dislikes of the plurality of users of one or more of actors,
series, programs, and genres. A social rank of the programs is
determined based on the rating information and on rankings of each
of the plurality of identified users for the plurality of programs.
For each user of the plurality of users the rankings of the user
are weighted based on a viewer's level of interactions with and
degree of separation from the user. A plurality of program
representations representing corresponding ones of the plurality of
programs are displayed to the viewer, wherein a differentiating
visual characteristic of each of the plurality of representations
is based on the ranking.
Inventors: |
Curtis; Scott; (Durham,
NC) ; Amidon; Christopher M.; (Apex, NC) ;
Evans; Gregory M.; (Raleigh, NC) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Eloy Technology, LLC |
Wilmington |
DE |
US |
|
|
Family ID: |
46019710 |
Appl. No.: |
14/803203 |
Filed: |
July 20, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12731817 |
Mar 25, 2010 |
9088757 |
|
|
14803203 |
|
|
|
|
61163086 |
Mar 25, 2009 |
|
|
|
Current U.S.
Class: |
725/14 |
Current CPC
Class: |
H04N 21/4263 20130101;
H04N 21/44222 20130101; H04N 21/84 20130101; H04N 21/4583 20130101;
H04N 21/4668 20130101; H04N 21/4532 20130101; H04N 21/43622
20130101; H04N 21/4334 20130101; G06F 3/0484 20130101; H04N
21/47214 20130101; H04N 5/765 20130101; H04N 21/4312 20130101; H04N
9/8205 20130101; H04N 5/76 20130101; H04N 21/6543 20130101; H04N
5/782 20130101; H04N 21/252 20130101; H04N 21/4826 20130101; H04N
21/458 20130101; H04N 21/4756 20130101; H04N 21/4622 20130101; H04N
21/43615 20130101; H04N 21/6582 20130101 |
International
Class: |
H04N 21/482 20060101
H04N021/482; H04N 21/466 20060101 H04N021/466; H04N 21/658 20060101
H04N021/658; H04N 21/458 20060101 H04N021/458; H04N 21/475 20060101
H04N021/475; H04N 21/25 20060101 H04N021/25; H04N 21/442 20060101
H04N021/442 |
Claims
1. A method for presenting a program representation, the method
comprising: obtaining, by a media controller, program rating
information derived from a plurality of identified users regarding
a plurality of programs, the plurality of identified users
identified based on at least one of likes and dislikes of the
plurality of users of one or more of actors, series, programs, and
genres; determining a social ranking of the plurality of programs
based on the program rating information, wherein the social ranking
is further based on rankings of each of the plurality of identified
users for the plurality of programs, wherein for each user of the
plurality of users the rankings of the user are weighted based on a
viewer's level of interactions with the user and degree of
separation from the user; and causing a display of a plurality of
program representations to the viewer, wherein the plurality of
program representations represent corresponding ones of the
plurality of programs and wherein a differentiating visual
characteristic of each of the plurality of program representations
is based on the social ranking.
2. The method of claim 1, wherein each of the plurality of
identified users is identified based on a degree of separation
value corresponding to the each of the plurality of identified
users with respect to the viewer.
3. The method of claim 2, wherein the plurality of identified users
is identified based on the degree of separation value corresponding
to each of the plurality of identified users with respect to the
viewer by comparing the degree of separation value corresponding to
each of the plurality of identified users to a viewer selectable
threshold degree of separation value.
4. The method of claim 3 wherein the viewer selectable threshold
degree of separation value is greater than 1, and wherein the
plurality of identified users include a plurality of users that
have a direct relationship with the viewer and a plurality of users
that have an indirect relationship with the viewer.
5. The method of claim 2, further comprising providing, by the
media controller, a threshold degree of separation value to
identify the plurality of identified users.
6. The method of claim 2, wherein the program rating information
derived from each of the plurality of identified users comprises
information identifying a one of the plurality of programs accessed
by a corresponding each of the plurality of identified users.
7. The method of claim 6, wherein determining the social ranking of
the plurality of programs based on the program rating information
further comprises determining the social ranking of the plurality
of programs based on a number of the plurality of identified users
that accessed each of the plurality of programs.
8. The method of claim 1, wherein the program rating information
derived from each of the plurality of identified users comprises a
rating value provided by the each of the plurality of identified
users that rates at least one of the plurality of programs.
9. The method of claim 8, wherein determining the social ranking of
the plurality of programs based on the program rating information
comprises determining the social ranking of the plurality of
programs based on an average of rating values of the plurality of
programs by the plurality of identified users.
10. The method of claim 1, wherein each of the plurality of
identified users is identified based on a match between a viewer
profile and a user profile corresponding to the each of the
plurality of identified users.
11. The method of claim 10, wherein the program rating information
derived from each of the plurality of users comprises information
identifying a one of the plurality of programs currently being
viewed by a corresponding each of the plurality of identified
users.
12. The method of claim 11, wherein the program rating information
derived from each of the plurality of identified users comprises a
rating value provided by the each of the plurality of identified
users that rates at least one of the plurality of programs.
13. The method of claim 1, wherein causing the display of the
plurality of program representations to the viewer further
comprises causing the display of a first program representation and
a second program representation, wherein the first program
representation has a first social rank that is greater than a
second social rank of the second program representation, and
wherein the first program representation has a greater size than
the second program representation.
14. The method of claim 1, wherein the differentiating visual
characteristic comprises a size of the corresponding each of the
plurality of program representations.
15. The method of claim 1, wherein the differentiating visual
characteristic comprises a background color of the corresponding
each of the plurality of program representations.
16. The method of claim 1, wherein the differentiating visual
characteristic comprises a color of a border of the corresponding
each of the plurality of program representations.
17. The method of claim 1, wherein a first plurality of identified
users of the plurality of identified users are identified based on
a degree of separation value corresponding to the each of the first
plurality of identified users with respect to the viewer, and
wherein a second plurality of identified users of the plurality of
identified users are identified based on a match between a viewer
profile and a user profile corresponding to the each of the second
plurality of identified users.
18. The method of claim 1, wherein each of at least some of the
plurality of identified users are identified based on a degree of
separation value corresponding to the each of the at least some of
the plurality of identified users with respect to the viewer, and
on a match between a viewer profile and a user profile
corresponding to the each of the at least some of the plurality of
identified users.
19. A media controller for presenting a program representation, the
media controller comprising: a network interface adapted to
communicate with a network; and a control system comprising a
processor and coupled to the network interface, the control system
adapted to: obtain program rating information derived from a
plurality of identified users regarding a plurality of programs,
the plurality of identified users identified based on at least one
of likes and dislikes of the plurality of users of one or more of
actors, series, programs, and genres; determine a social ranking of
the plurality of programs based on the program rating information,
wherein the social ranking is further based on rankings of each of
the plurality of identified users for the plurality of programs,
wherein for each user of the plurality of users the rankings of the
user are weighted based on a viewer's level of interactions with
the user and degree of separation from the user; and cause a
display of a plurality of program representations to the viewer,
wherein the plurality of program representations represent
corresponding ones of the plurality of programs and wherein a
differentiating visual characteristic of each of the plurality of
program representations is based on the social ranking.
20. The media controller of claim 19, wherein the program rating
information for each of the plurality of identified users comprises
information identifying a one of the plurality of programs accessed
by a corresponding each of the plurality of identified users.
21. A computer program product, comprising a computer usable medium
having a computer readable program code embodied therein, the
computer readable program code adapted to be executed to implement
a method comprising: obtaining program rating information derived
from a plurality of identified users regarding a plurality of
programs, the plurality of identified users identified based on at
least one of likes and dislikes of the plurality of users of one or
more of actors, series, programs, and genres; determining a social
ranking of the plurality of programs based on the program rating
information, wherein the social ranking is further based on
rankings of each of the plurality of identified users for the
plurality of programs, wherein for each user of the plurality of
users the rankings of the user are weighted based on a viewer's
level of interactions with the user and degree of separation from
the user; and causing a display of a plurality of program
representations to the viewer, wherein the plurality of program
representations represent corresponding ones of the plurality of
programs and wherein a differentiating visual characteristic of
each of the plurality of program representations is based on the
social ranking.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 12/731,817, now U.S. Pat. No. 9,088,757, which
was filed Mar. 25, 2010, which claims the benefit of provisional
patent application Ser. No. 61/163,086, filed Mar. 25, 2009, the
disclosures of which are hereby incorporated by reference in their
entireties.
BACKGROUND
[0002] The present disclosure relates to identifying programs to a
viewer, and in particular to providing program representations to a
viewer that correspond to a social ranking of the programs.
[0003] Today's content providers, such as cable companies, provide
hundreds of programming channels for viewers. Consequently,
selecting a program to watch can be daunting. Because friends
frequently have common interests, it would be useful at times to
know what your friends, or like-minded people, are watching, or
have otherwise indicated that they enjoy. Having access to such
information with respect to current program options would quickly
distinguish some programs from the hundreds of available choices.
There is a need therefore, for a mechanism that provides a viewer
an intuitive representation regarding how friends, or like-minded
individuals, collectively rank programs which are currently
available to be viewed.
SUMMARY
[0004] The subject matter described herein relates to presenting
program representations of programs to a viewer based on a social
ranking of corresponding programs. A program representation is a
visual identifier that identifies a corresponding program. In one
embodiment, a program representation may include a border within
which the corresponding program is presented. The program
representations have differentiating visual characteristics based
on the social ranking of the corresponding programs. For example, a
program representation of a first program having a social rank that
is higher than the social rank of a second program may be larger
than the program representation of the second program. Alternately,
the program representation of the first program may have a
background, or border, of a color that is different from the
background, or border, of a color of the second program
representation. The use of program representations having
differentiating visual characteristics enable a viewer to easily
and intuitively gauge the social significance of one program over
another program.
[0005] In one embodiment, the social ranking is based on rating
information derived from a plurality of identified users. The
plurality of users may be identified, for example, based on a
degree of separation between each user and a viewer. The degree of
separation may be determined, for example, by a social network
service of which the plurality of users and the viewer are
members.
[0006] A media controller may send a social network server a viewer
identifier and a threshold degree of separation value. The social
network server can identify a plurality of users who have a social
relationship with the viewer that meets the threshold degree of
separation value. The social network server may send the media
controller a list of user identifiers identifying such users, and
program rating information provided by the users. The media
controller may use the rating information to socially rank the
programs. The media controller may then determine a differentiating
visual characteristic for each of a plurality of program
representations that correspond to the programs based on the
corresponding social rank of the program, and cause a display of
the program representations to the viewer.
[0007] In one embodiment, the program rating information includes
information that identifies the one of the plurality of programs
that the corresponding user is currently accessing, or has accessed
in the past. Such program rating information may be referred to
herein as implicit rating information. For example, the user may be
accessing the program by viewing the program or by recording the
program, or have previously viewed or recorded the program. The
social ranking of programs may be based on the implicit rating
information. In another embodiment, the users may be prioritized
based on viewer preference information. For example, the viewer
preference information may indicate that some users have higher
priorities than other users. Thus, the social ranking may be based
on a weighted average of the implicit ratings of users.
[0008] In another embodiment, the program rating information
comprises explicit rating values that have been provided by the
plurality of users. In particular, the explicit rating values may
comprise values quantifying a subjective opinion of the program by
the user. A social rank of the programs may be determined based on
the explicit ratings.
[0009] In another embodiment, the plurality of users may be
identified based on profile matching between a viewer profile and
profiles of users of the social network service. In particular, the
social network server may match attributes in a viewer profile to
attributes in a user profile of each of a plurality of members of
the social network service.
[0010] The media controller may send the social network server
threshold match criteria identifying a threshold degree of
similarity value that constitutes a match. The social network
server can determine a plurality of users who have a profile that
matches the viewer profile within the threshold degree of
similarity value. The social network server may send the media
controller a list of user identifiers identifying such users, and
program rating information provided by the users. The media
controller may use the program rating information to determine a
social ranking of the programs. The media controller may then
determine differentiating visual characteristic for each of a
plurality of program representations that correspond to the
programs based on the corresponding social rank of the program, and
cause a display of the program representations to the viewer.
[0011] In one embodiment, the media controller may provide the
social network server a program list identifying a number of
programs. The social network server may provide program rating
information relating only to those programs. In particular, the
social network server may filter out any identified users that have
not provided program rating information for one of the identified
programs.
[0012] Those skilled in the art will appreciate the scope of the
present disclosure and realize additional aspects thereof after
reading the following detailed description of the preferred
embodiments in association with the accompanying drawing
figures.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
[0013] The accompanying drawings incorporated in and forming a part
of this specification illustrate several aspects of the invention,
and together with the description serve to explain the principles
of the invention.
[0014] FIG. 1 illustrates a system in which embodiments may be
practiced;
[0015] FIG. 2 illustrates an exemplary social relationship diagram
of social relationships from the perspective of a particular
user;
[0016] FIG. 3 is a block diagram illustrating four exemplary
mechanisms that may be used by a media controller to determine the
identity of a particular viewer;
[0017] FIG. 4 is an exemplary flowchart of a method for causing a
display of program representations according to one embodiment;
[0018] FIG. 5 illustrates an exemplary display caused by a media
controller of program representations based on a social ranking of
corresponding programs;
[0019] FIG. 6 is a flowchart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on implicit
ratings of users of the social network service with whom the viewer
has a direct or indirect relationship;
[0020] FIG. 7 is a flow chart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on explicit
ratings of users of the social network service with whom the viewer
has a direct or indirect relationship;
[0021] FIG. 8 illustrates another exemplary display caused by a
media controller of program representations based on a social
ranking of corresponding programs;
[0022] FIG. 9 is a flowchart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on implicit
ratings of users of the social network service with whom the
viewer's profile has been matched based on a threshold degree of
similarity value;
[0023] FIG. 10 is a flow chart illustrating an exemplary process
for determining a social ranking of a plurality of programs
according to one embodiment wherein social ranking is based on
explicit ratings of users of the social network service with whom
the viewer's profile has been matched based on a desired similarity
factor;
[0024] FIG. 11 illustrates another exemplary display caused by a
media controller of program representations based on a social
ranking of corresponding programs; and
[0025] FIG. 12 illustrates an exemplary processing device which may
be used to implement a media controller, or a social network
server, according to some embodiments.
DETAILED DESCRIPTION
[0026] The embodiments set forth below represent the necessary
information to enable those skilled in the art to practice the
embodiments and illustrate the best mode of practicing the
embodiments. Upon reading the following description in light of the
accompanying drawing figures, those skilled in the art will
understand the concepts of the disclosure and will recognize
applications of these concepts not particularly addressed herein.
It should be understood that these concepts and applications fall
within the scope of the disclosure and the accompanying claims.
[0027] Embodiments of the present disclosure include a method for
presenting program representations of programs to a viewer based on
a social ranking of the programs. The social rank may be based on
program rating information that is derived from a plurality of
identified users. The identified users may have a direct or
indirect social relationship with the viewer, or may be determined
to be like-minded individuals that have common preferences with the
viewer. The program rating information may be implicit rating
information, such as which programs have been or are currently
being accessed by the identified users, or may be explicit rating
information, such as information identifying a subjective rating of
the program by the identified users. The program rating information
may be used to determine a social ranking of the programs with
respect to one another. Program representations of the programs may
be depicted to the viewer such that differentiating visual
characteristics of the program representations are a function of
the corresponding social rank of the programs.
[0028] FIG. 1 illustrates a system 10 in which embodiments may be
practiced. The system 10 includes a plurality of media controllers
12A-12E (generally, media controller 12 or media controllers 12).
The media controllers 12 may comprise any device capable of
providing, presenting, or otherwise causing the display of content
upon request, such as, for example, a set top box, a digital video
recorder, an intelligent gaming console, such as the Microsoft.RTM.
Xbox.RTM., Sony.RTM. PlayStation.RTM., and Nintendo.RTM.
GameCube.RTM., a media console such as the Apple.RTM. TV.RTM., a
personal computer, and the like. The media controllers 12A-12E
provide content to one or more corresponding viewers 14A-14E by
causing a display on respective display devices 16A-16E (generally,
display device 16 or display devices 16).
[0029] The display device 16 may comprise any display technology,
such as a television, a computer monitor, a projector, and the
like. By "causing" or "cause" to display it is meant that the media
controllers 12 generate output streams that are provided to output
connections on the media controllers 12 (not illustrated), which
are directed to a corresponding display device 16, typically via a
cable or other signal-carrying mechanism. While for purposes of
illustration the media controllers 12 and display devices 16 are
illustrated as devices which are separate from one another, the
display device 16 may be integral with the media controller 12. For
example, a single unit may include both a media controller 12, such
as a digital video recorder, and a display device 16, such as a
television. Where a media controller 12 and display device 16 are
integral, the signal-carrying connection between the two may not be
by a connection cable, but rather by an internal bus or other
signal-carrying mechanism.
[0030] The media controller 12A receives content from content
providers (not illustrated) which may include any provider of
content, including service providers that provide content for a
direct or indirect fee, cable operators, satellite operators,
internet content providers, individuals, and the like. The content
received by the media controllers 12 may be any content desirable
for presentation, display or otherwise rendering to a viewer 14,
such as broadcast television, movies, video on demand, music, and
the like. Units of content will be referred to herein as programs,
and a program can refer to any unit of content that is referred to
individually by the content provider, such as a particular
television show, a particular movie, a song, and the like.
[0031] Content is typically, but not necessarily, provided to the
media controllers 12 in a content package that is defined by a
particular subscription. The subscription between the media
controller 12 and the content provider defines which channels and
features make up a particular content package, and therefore
defines the programming that will be provided by the respective
content provider to the media controller 12 pursuant to the
subscription. The content providers typically provide an electronic
program guide to the media controllers 12 that identifies programs
available via the respective content provider. Such guides are
depicted in FIG. 1 in the form of respective electronic programming
guides 18A-18E (generally, program guides 18 or program guide 18).
While for purposes of illustration each media controller 12 is
shown as having only a single program guide 18, it will be
understood that each media controller 12 may have multiple program
guides 18, since each content provider may provide its own
respective program guide 18 to the media controller 12.
[0032] Program guides 18 typically comprise program metadata
identifying attributes and characteristics of programs that were,
are, or will be available from the content provider at designated
times, or upon request by a viewer 14. The program metadata that
makes up a program guide 18 may be provided by a content provider
separately from the program content. The program metadata may be
continually broadcast by a content provider on a particular channel
to which the media controller 12 may automatically tune from time
to time to receive the program metadata, may be sent by the content
provider upon request by the media controller 12, or may be
provided to the media controller 12 at certain predetermined times,
such as during low viewership times, or the like. The program
metadata can include any data that may be useful or desirable to a
viewer 14 (typically as determined by the respective content
provider). For example, program metadata may include a title, a
description, identification of well-known actors, a channel on
which the program will be provided, a genre, an MPAA rating, a
duration, a version, a time and date the program will be provided,
and the like. Typically, a viewer 14 accesses a program guide 18
via an input device (not illustrated) such as a remote control,
wherein, upon receipt of a request via the remote control, the
media controller 12 will cause a display of information from the
guide 18 on the display device 16. While embodiments described
herein may be provided with the aid of a conventional program guide
18, embodiments may also be implemented without a program guide 18.
Embodiments may also be provided in conjunction with a merged
program guide of the type disclosed in U.S. patent application Ser.
No. (Attorney Docket No. 1116-204) entitled "Merged Program Guide",
and filed on even date herewith, which is hereby incorporated by
reference herein in its entirety.
[0033] The media controllers 12A-12E have corresponding tuners
20A-20E (generally tuner 20 or tuners 20), which in response to a
channel selection from a viewer 14, tunes to a particular frequency
and captures the program data being provided at that frequency. The
tuner 20 then typically causes the program to be displayed on a
corresponding display device 16, or may record the program on a
storage medium (not illustrated) in the corresponding media
controller 12. While the tuner 20 has been discussed herein in
terms of tuning to a particular frequency, it will be apparent that
programs may be differentiated from one another by mechanisms other
than a frequency, and that the tuner 20 therefore is not limited to
a frequency tuner, but may comprise any suitable tuner capable of
selecting a desired program from a plurality of programs. For
example, the tuner 20 may access content directly from the Internet
via a Uniform Resource Identifier or other identifier.
[0034] Each of the media controllers 12A-12E are communicatively
coupled to one another via one or more networks 26A, 268. Some
embodiments may be practiced within a locale, such as a residence
22. In such embodiments, the media controllers 12 within the
residence 22, in particular the media controllers 128-120, may
couple to one another via a local area network 26A. The local area
network 26A may comprise any suitable communication mechanism that
enables the media controllers 128-120 to communicate with one
another, including, for example, an Ethernet network, Token Ring
network, and the like. The media controllers 12 access the network
26A via communication links 28, which may comprise any suitable
technology for accessing the network 26, such as, for example,
Wi-Fi, an Ethernet cable, and the like. The network 26A may use any
suitable message transport protocol to enable message
communications between the media controllers 128-120, such as, for
example, TCP/IP.
[0035] Other embodiments are practiced in conjunction with media
controllers 12 external to the residence 22, such as the media
controllers 12A, 12E. All the media controllers 12A-12E may
communicate with one another in such embodiments via one or more
networks 26A, 268. The network 268 may comprise, for example, the
Internet.
[0036] In some embodiments, the viewers 14A-14E are members of a
social network service 24 that, among other features, enable its
members to establish social relationships with one another. Members
will be referred to hereinafter as users, although the phrase user
is not limited to a member of the social network service 24. For
example, the social network service 24 may enable a first user to
identify a second user as a "friend." Such a social network service
24 may be referred to generally as a friend-of-a-friend (FOAF)
social network service 24 wherein its users establish direct
relationships with some users, and indirect relationships with
other users. FIG. 2 illustrates an exemplary, and simplistic,
social relationship diagram 30 of such relationships from the
perspective of a particular user, in this example the viewer 148.
Assume that each of the viewers 14A-14E are users of the social
network service 24. Thus the social relationship diagram 30
illustrates the FOAF relationship between the viewers 14A-14E from
the perspective of the viewer 148. The social relationship diagram
30 illustrates that the viewer 148 has identified viewers 14C and
140 as friends, but not the viewers 14A or 14E. The viewers 14C and
140 are thus direct friends, and have a direct relationship, with
the viewer 148. The viewers 14C and 140 may also be described as
being within one degree of separation (DOS) from the viewer 148, as
depicted by the single path between the viewer 148 and each of the
viewers 14C and 140.
[0037] The viewer 14C has identified the viewer 14A as a friend.
Thus the viewer 148 has an indirect relationship with the viewer
14A via the viewer 14C. Viewer 14A may also be described as being
within two degrees of separation of the viewer 148, as depicted by
the two respective paths between the viewer 148 and the viewer 14A.
Similarly, the viewer 140 has identified the viewer 14E as a
friend. Thus the viewer 148 has an indirect relationship with the
viewer 14E via the viewer 140, and the viewer 14E may also be
described as being within two degrees of separation of the viewer
148.
[0038] Returning now to FIG. 1, the social network service 24 may
include one or more social network servers 32 that couple to the
network 268 and provide social network services to the viewers
14A-14E. The social network server 32 may be coupled to a storage
34 that contains data, such as, for example, membership data 36
that contains information about each user of the social network
service 24, such as billing information, demographic information,
user identifier and authentication information, and the like. The
storage 34 may also include member preference data 38 that contains
preference information of the users, such as likes and dislikes of
actors, series, programs, genres, and the like. The preference
information may also include priority, or weighting, information
that will be discussed more fully herein, wherein a user may
attribute different category weights to different friends based on
the user's interactions with such friends. For example, a user who
highly values a first friend's opinion on programs may accord a
program rating weight of 10 to the first friend, and accord a
program rating weight of 1 to a second friend whose opinions are
not highly valued by the user. The member preference data 38 may
store such information, and other information, in a user profile
corresponding to each user of the social network service 24.
[0039] The storage 34 may also include program rating data 40
derived from the users of the social network service 24. The
program rating data 40 may be used, as discussed in greater detail
herein, to socially rank programs for a viewer 14. In one
embodiment, program representations having differentiating visual
characteristics that correspond to a relative social rank of the
program may be presented to a viewer 14 to visually enable a viewer
14 to easily see which programs are socially significant to the
viewer 14.
[0040] The program rating data 40 may include implicit rating data
and explicit rating data. Implicit rating data may include data
that identifies a program that a particular user is currently, or
has previously, accessed. Accessing may include, for example,
viewing, or listening, to the program, or recording the program for
later enjoyment. Assume, for example, that each of the viewers
14A-14E are members of the social network service 24. As each
viewer 14 begins to access a program, such as by directing the
media controller 12 to tune to a program, or to record a program,
the corresponding media controller 12 may send a message to the
social network server 32 identifying the program, and related
information such as the identity of the viewer 14, a link to
program metadata associated with the program, and the like. The
social network server 32 may store such information in the program
rating data 40.
[0041] The program rating data may also, or alternatively, include
explicit rating data. Explicit rating data may be provided by the
viewers 14 via corresponding media controllers 12, or via other
devices, such as computers, cell phones, and the like. The explicit
rating data may include subjective ratings of programs by the
respective viewers 14. For example, each of the viewers may provide
a rating value ranging from 1-10 after viewing a particular program
that is provided to the social network server 32 and maintained in
the program rating data 40.
[0042] The storage 34 may also include friend-of-a-friend (FOAF)
relationship data 42 which identifies the degrees of separation
between the users of the social network service 24. The FOAF
relationship data 42 may relatively easily enable the social
network server 32 to relatively quickly identify the users of the
social network service 24 that are within a designated DOS of
another user.
[0043] While the social network server 32 and storage 34 are
illustrated as being external to the residence 22, other
embodiments may be implemented solely within a residence 22. In
such embodiment, the social network server 32 and storage 34 may
simply be coupled to the network 26A, and contain similar
information as described herein but for a smaller population of
users, such as immediate family members and direct and indirect
friends up to a desired DOS. Additionally, one or more components,
functionality or data identified herein as associated with the
social network server 32 may be provided by one or more other
sources that may be communicatively coupled to the social network
server 32, via, for example, the Internet. For example, the FOAF
relationship data 42 may be provided by another social network
service, such as Facebook.RTM.. Similarly, the program rating data
40 could be provided by a service provider, such as Time Warner
Cable.
[0044] Various mechanisms may be used to associate program rating
information contained in the program rating data 40 with a
particular user. In one embodiment, the user may simply be assumed
to be the registered user of a particular media controller 12 that
provided the rating data. For example, a media controller 12 may be
registered, or otherwise identified to the social network service
24 as being associated with the user John. Thus, any rating data
provided to the social network server 32 by such media controller
12, either implicit or explicit, may be determined by the social
network server 32 to be associated with the user John. In other
embodiments, the media controller 12 may be able to identify a
particular viewer 14 that is in proximity to the media controller
12. This information may be provided, along with the rating data,
to the social network server 32.
[0045] FIG. 3 is a block diagram illustrating four exemplary
mechanisms that may be used by a media controller 12 to determine
the identity of a particular viewer. The media controller 12A may
be communicatively coupled to an input device 43. As the viewer 14A
enters the room 44A, the viewer 14A uses the input device 43 to
indicate that the respective viewer 14A is in the room 44A and
accessing a program via the media controller 12A. Prior to exiting
the room 44A, the viewer 14A may use the input device 43 to
indicate they are departing the room 44A. While only a single
viewer 14A is illustrated, it is apparent that any number of
viewers 14 may be identified in this manner, and if such viewers 14
are also users of the social network service 24, identified to the
social network server 32 as accessing a particular program. Thus,
the social network server 32 may be able to determine that multiple
users are viewing or otherwise accessing the same content in a same
locale. The media controller 12A may maintain the identity of the
viewers 14 who are in the room 44A, and for each program provided
during the presence of such viewers 14, identify this to the social
network server 32. The input device 43 may comprise any suitable
device and interface, such as a keyboard, or a mouse and a computer
having a user interface that enables a viewer 14 to simply click on
a designated portion of a display to indicate the presence or
departure of the viewer 14 from the room 44A. The computer may be
wirelessly coupled to the media controller 12A, and communicate the
status of incoming and outgoing viewers 14 to the media controller
12 as appropriate.
[0046] The media controller 128 in the room 448 includes a facial
recognition processor 46 that is able to identify through facial
processing technology the viewers 148, 14F and 14G. Assume that
each of the viewers 148, 14F and 14G is a user of the social
network service 24. Facial recognition technology is known to those
skilled in the art, and will not be described in detail herein. The
facial recognition processor 46 communicates the identity of the
viewers 148, 14F and 14G to the media controller 128, which in turn
may provide this information to the social network server 32 as
appropriate. While the facial recognition processor 46 is
illustrated as being integral with the media controller 128, in an
alternate embodiment, the facial recognition processor 46 may be
separate from but coupled to media controller 128 via a wired or
wireless communications channel, for example.
[0047] The media controller 12C in a room 44C includes a radio
frequency identification (RFIO) processor 48. The RFIO processor 48
may receive a signal from a device worn, or carried, by the viewer
14C. For example, a cell phone of the viewer 14C may emit a signal
that can be received by the RFIO processor 48. Upon receipt of such
signal, the RFIO processor 48 can communicate the identity of the
viewer 14C to the media controller 12C, which in turn may provide
this information to the social network server 32 as
appropriate.
[0048] The media controller 120 in a room 440 is coupled to a
wireless Bluetooth interface which enables the media controller 120
to communicate with Bluetooth devices, such as a cell phone, that
contain the appropriate software to interface with the media
controller 120. Such software may be programmed to emit a signal
that can be detected by the media controller 120 via the wireless
81 uetooth interface 49. The signal may contain an identifier
identifying the viewers 140 and 14H. The media controller 120 may
periodically poll the cell phone to determine if the viewers 140,
14H are still in proximity of the media controller 120. If the
media controller 120 does not receive a response to the poll, the
media controller 120 may determine that one or both of the viewers
140, 14H are no longer in proximity of the media controller
120.
[0049] FIG. 4 is an exemplary flowchart of a method for causing a
display of program representations according to one embodiment.
Upon request from a viewer 14, the media controller 12 may obtain
from the social network server 32 program rating information that
is derived from identified users (step 1000). The media controller
12 then determines a social ranking based on the program rating
information (step 1002). The media controller 12 then causes a
display of program representations having differentiating visual
characteristics that are based on the social ranking of the
corresponding programs (step 1004).
[0050] FIG. 5 illustrates an exemplary display 50 caused by a media
controller 12 of program representations 52A-52C (generally program
representations 52 or program representation 52) based on a social
ranking of corresponding programs. Each of the program
representations 52A-52C have a differentiating visual
characteristic from one another, in this example a particular size,
and corresponds to a particular program that may be currently
available for presentation to a viewer 14 via the media controller
12. In one embodiment, the size of each program representation 52
is based on a social rank of the program with respect to the social
rank of the other programs with respect to a particular viewer 14.
Programs having a higher social rank may have a larger program
representation than those programs having a lower social rank. For
example, the program representation 52A corresponds to a program
that has been determined to have a lower social rank, and thus
lower social importance or significance with respect to the
particular viewer 14 than the program that corresponds to the
program representation 52C. Similarly, the program representation
52C corresponds to a program that has been determined to have a
lower social rank, and thus lower social importance or significance
with respect to the particular viewer 14 than the program that
corresponds to the program representation 528. Consequently, the
program representation 528 corresponds to the program having the
greatest social rank, or significance, with respect to the viewer
14.
[0051] While for purposes of illustration, a size of a program
representation is used as a differentiating visual characteristic,
embodiments are not limited to any particular differentiating
visual characteristics. For example, each program representation
may have a background color, or a border color, based on the social
rank of the corresponding program. For example, the program
representation corresponding to the highest ranked program may have
a green background or border, the program representation
corresponding to the next highest ranked program may have a yellow
background or border, and the program representation corresponding
to the third highest ranked program may have a red background or
border. Thus, while exemplary differentiating visual
characteristics are presented herein, any suitable differentiating
visual characteristics may be used to differentiate program
representations from one another based on the corresponding social
ranking.
[0052] The program representations 52 may also include a border 54,
within which the corresponding program is identified. The program
may be identified by name, visual imagery, or the like. In one
embodiment, the program may be presented within the border 54. User
icons 56 may identify particular users of the social network
service 24 who are the bases of the implicit ratings. For example,
the user icons 56A and 568 identify corresponding users that have
accessed or are accessing the program corresponding to the program
representation 52A. User icons 56C-561 identify corresponding users
that have or are accessing the program corresponding to the program
representation 528. Similarly user icons 56J-56L identify
corresponding users that have accessed or are accessing the program
corresponding to the program representation 52C. The user icons 56
may comprise text, imagery corresponding to a particular user such
as an avatar or a picture, or a combination of both. The use of
user icons 56 in conjunction with the program representations 52
visually inform a viewer 14 not only which programs are more
socially significant than others, but also which particular friends
may be accessing which particular programs.
[0053] Genre selection buttons 58 may be used by the viewer 14 to
limit the program representations 52 to a particular genre of
program. For example, the "Drama" genre selection button 58 may be
selected to determine which programs of genre type Drama are most
socially significant to the viewer 14. A degree of separation (DOS)
slider 60 may be used to select a threshold DOS value that is used
by the social network server 32 to identify users. For example, if
the DOS slider 60 is set to a value of 1, only the ratings of the
direct friends of the viewer 14 are taken into consideration. If
the DOS slider 60 is set to a value of 2, the social ranking
includes data from users that have a direct relationship with the
viewer 14, e.g., users that are designated as friends of the viewer
14, and from users that have an indirect relationship with the
viewer 14, e.g., users that are friends of the friends of the
viewer 14.
[0054] FIG. 6 is a flowchart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on implicit
ratings of users of the social network service 24 with whom the
viewer has a direct or indirect relationship. FIG. 6 will be
discussed in conjunction with FIGS. 5 and 1. Assume that the viewer
148 desires a social ranking of one or more programs that are
currently available for viewing via the media controller 128. The
viewer 148 may use an input device, such as a remote control, to
cause the display of a program guide by the media controller 128 on
the display device 168. The program guide may include a Social
Significance tab, or other such feature, that enables the media
controller 128 to interact with the social network server 32 to
determine the social rankings of programs. Assume further that the
viewer 148 selects such feature, and sets the DOS slider 60 to a
value of 2.
[0055] The media controller 128 uses the value of the DOS slider 60
to generate a message that includes data including the threshold
DOS value of 2, the identity of the viewer 148, and any other
suitable data, such as the genre selected via a genre button 58.
The media controller 128 sends the message to the social network
server 32 (step 2000). The social network server 32 accesses the
program rating data 40 to determine the implicit rating data of
users of the social network service 24. The social network server
32 also accesses the FOAF relationship data 42 to identity those
users that are within two degrees of separation from the viewer
148. The social network server 32 provides data identifying the
users that are within two DOS of the viewer 148, and corresponding
implicit rating data identifying the programs the identified users
have implicitly rated, to the media controller 128 (step 2002).
[0056] The media controller 128 determines a social ranking of
programs based on the implicit rating data (step 2004). Any
suitable process for socially ranking the programs based on the
implicit rating data may be used. For example, the media controller
128 may identify the four programs that have higher implicit
ratings than any other programs. For each of those programs, such
programs may be ranked based on the number of users that implicitly
rated such programs. For example, assume the implicit rating data
indicates that a first program is implicitly rated by 12 users, a
second program is implicitly rated by six users, a third program is
implicitly rated by four users, and a fourth program is implicitly
rated by two users. The media controller 128 determines the social
ranking, in order of importance, to be: first program, second
program, third program and fourth program.
[0057] In one embodiment, the viewer 14 may have member preference
data 38 that identifies priorities, or weights, that the viewer 14
has accorded to one or more identified users. For example, the
viewer 14 may accord one of the identified users a 10 on a scale of
1 to 10 because the viewer 14 highly values that user's opinion,
and may have accorded another identified user a 4 because the
viewer 14 does not value that user's opinion very highly. This
information may be stored on the social network server 32 and
provided along with the program rating information to the media
controller 12, or may be stored locally on the network 26A, such as
on a local server (not illustrated), or in the media controller
128. The media controller 128 may in such embodiment apply a
weighted average to the ratings based on the weights accorded to
each such identified user (step 2006). Thus, the social ranking may
be based not only on the implicit ratings of a program, but also on
the weighted average of one or more other factors identified by the
viewer 14.
[0058] The media controller 128 may then determine the size of the
program representations of the corresponding programs in order to
accurately convey the determined social significance (step 2008).
For example, assuming the social rating is not based on a weighted
average, the media controller 128 may first determine an overall
area size in which all program representations must be displayed.
Using such information, the media controller 128 may then determine
an appropriate program representation area size for program
representation corresponding to the first program. The media
controller 128 may then, for example, scale the size of the
remaining program representations with respect to the size of the
first program representation. For example, the size of the second
program representation may be 1/2 (i.e., 6 of 12) of the size of
the first program representation, the size of the third program
representation may be 1/3 (i.e., 4 of 12) of the size of the first
program representation, and the size of the fourth program
representation may be 1/6 (i.e., 2 of 12) of the size of the first
program representation.
[0059] The media controller 128 may then cause a display of the
program representations, similar to the display 50 illustrated in
FIG. 5, however with four program representations rather than three
(step 2010).
[0060] FIG. 7 is a flow chart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on explicit
ratings of users of the social network service 24 with whom the
viewer has a direct or indirect relationship. The same assumptions
regarding viewer 148 and the media controller 128 made with respect
to FIG. 6 will be made with respect to FIG. 7. The media controller
128 uses the value of the DOS slider 60 to generate a message that
includes data such as the threshold DOS value of 2, and the
identity of the viewer 148. The media controller 128 sends the
message to the social network server 32 (step 3000). The social
network server 32 accesses the program rating data 40 to determine
explicit ratings of programs that are currently available. The
social network server 32 also accesses the FOAF relationship data
42 to identify those users that are within two degrees of
separation from the viewer 148. In this embodiment, because the
rating data is explicit rating data, the media controller 128 may
also send a list of programs for which a social ranking is desired.
For example, the media controller 128 may, from user preferences or
past viewing history of the viewer 148, be able to select a
plurality of programs that the viewer 148 is likely to view, and
identify such programs to the social network server 32.
[0061] The social network server 32 provides data identifying the
users that are within two DOS of the viewer 148, and corresponding
explicit rating data identifying subjective ratings of programs by
the identified viewers, to the media controller 128 (step 3002).
The media controller 128 determines a social ranking of programs
based on the explicit rating data (step 3004). Any suitable process
for determining which programs are more socially significant based
on the explicit rating data may be used, including that discussed
herein with regard to FIG. 6, which will not be repeated herein.
For example, in one embodiment, the media controller 128 may simply
select a predetermined number of the highest rated programs, and
socially rank the programs from greatest to least based on the
average explicit ratings of such programs. Similarly as discussed
with regard to FIG. 6, the media controller may also take into
consideration weighted averages of users based on preferences
identified by the viewer 148 (step 3006). Assume that after
processing the explicit ratings, and weighting users' ratings
appropriately, the four programs having the highest weighted
average ratings have ratings of 10.0, 9.8, 9.6 and 9.2,
respectively.
[0062] The media controller 128 may then determine the size of the
program representations of the corresponding programs in order to
convey the determined social significance (step 3008). The media
controller 128 may first determine an overall area size in which
all program representations must be displayed. Because of the
relatively small difference in explicit ratings of the four
programs, the media controller 128 may scale the differences to
highlight which programs are more socially relevant than others of
the programs. For example, the media controller 128 may treat each
1/10 difference in rating as a 1/10 difference in program
representation size. Thus, the program representation corresponding
to the second highest rated program will be 4/5 the size of the
program representation corresponding to the highest rated program,
the program representation corresponding to the third highest rated
program will be 3/5 the size of the program representation
corresponding to the highest rated program, and the program
representation corresponding to the fourth highest rated program
will be 1/5 the size of the program representation corresponding to
the highest rated program. It should be apparent such scaling is
merely exemplary, and any suitable process may be implemented to
select a program representation size based on the social
rankings.
[0063] The media controller 128 may then cause a display of the
program representations, similar to the display 50 illustrated in
FIG. 5, however with four program representations rather than three
(step 3010). The user icons 56 may identify particular users with
particular program representations 52 who have highly rated the
corresponding program.
[0064] FIG. 8 illustrates another exemplary display 62 caused by a
media controller 12 of program representations 52A-52C based on a
social ranking of corresponding programs. In this embodiment,
however, the social ranking is based on rating data that may
include users of the social network service 24 that have no direct
or indirect relationship with the viewer 14. In this embodiment,
the program representations 52 and genre selection buttons 58 may
be similar to those depicted in FIG. 5, however the viewer icons 56
may be absent because the social ranking may include anonymous user
ratings in addition to, or in lieu of, ratings of users with whom
the viewer 148 has a direct or indirect relationship. The display
62 includes a similarity slider 64 that allows the viewer 148 to
indicate a threshold degree of similarity value that should be
considered in selecting the population of identified users. As will
be discussed herein with respect to FIG. 9, the similarity between
the viewer 148 and the identified users may be determined, for
example, by comparing the profile of the viewer 148 with the
profiles of other users of the social network service 24. The
similarity slider 64 may indicate the threshold degree of
similarity value necessary during such profile comparison process
to constitute a match. Thus, if the similarity slider 64 is set to
a high percentage, such as 100, the viewer 148 has indicated that
only users who have identical, or nearly identical profiles, be
considered a match. If the similarity slider 64 is set to a
relatively low percentage, such as 50, the viewer 148 has indicated
that users whose profiles constitute as low as a 50% match of
profile attributes or characteristics should be considered a
match.
[0065] FIG. 9 is a flowchart illustrating an exemplary process for
determining a social ranking of a plurality of programs according
to one embodiment wherein social ranking is based on implicit
ratings of users of the social network service 24 with whom the
viewer's profile has been matched based on a desired similarity
factor. FIG. 9 will be discussed in conjunction with FIGS. 8 and 1.
Assume that the viewer 148 desires a social ranking of one or more
programs that are currently available for viewing via the media
controller 128. The viewer 148 may use an input device, such as a
remote control, to cause the display of a program guide by the
media controller 128 on the display device 168. The program guide
may include a Social Significance tab, or other such feature, that
enables the media controller 128 to interact with the social
network server 32 to determine the social rankings of program.
Assume further that the viewer 148 selects such feature, and sets
the similarity slider 64 to a value of 90%.
[0066] The media controller 128 uses the value of the similarity
slider 64 to generate a message that includes data such as the
desired threshold degree of similarity value, and the identity of
the viewer 148. The media controller 128 sends the message to the
social network server 32 (step 4000). The social network server 32
accesses the program rating data 40 to determine which users of the
social network service 24 have provided implicit ratings. The
social network server 32 also performs a profile comparison of the
viewer's 148 profile with the profiles of other users of the social
network service 24. Profile matching can include matching of one or
more preferences identified in the profiles being compared. For
example, profile matching may compare likes and dislikes of actors,
series, genres, and the like, and using any desired algorithm
determine a similarity between the profile of the viewer 148 and
the profile of another user of the social network service 24.
[0067] The social network server 32 may stop comparing profiles
after a predetermined number of users have been identified, or may
compare profiles of all the users of the social network service 24.
In one embodiment, the social network server 32 includes one or
more background processes that execute continually comparing
profiles of users with other users, and identifying matching users
at different threshold degrees of similarity values, such that the
majority of the profile matching processing may have already
occurred prior to receiving the message from the media controller
128.
[0068] The social network server 32 provides data identifying the
users whose profiles match the profile of the viewer 148 within the
desired threshold degree of similarity value, and corresponding
implicit rating data identifying the programs implicitly rated by
the identified users, to the media controller 128 (step 4002).
Alternately, the users may not be individually identified for
privacy purposes, or due to the number of users whose profiles
matched the profile of the viewer 148.
[0069] The media controller 128 determines a social ranking of
programs based on the implicit rating data (step 4004). Any
suitable process for determining which programs are more socially
significant based on the implicit rating data may be used. For
example, the media controller 128 may identify the four programs
that are implicitly rated by more identified users than any other
programs. For each of those programs, such programs may be ranked
based on the number of users who have provided implicit ratings of
such programs. For example, assume the implicit rating data
indicates that a first program is implicitly rated by 12 users, a
second program is implicitly rated by six users, a third program is
implicitly rated by four users, and a fourth program is implicitly
rated by two users. The media controller 128 determines the social
ranking, in order of importance, to be: first program, second
program, third program and fourth program.
[0070] The media controller 128 may then determine the size of the
program representations of the corresponding programs in order to
accurately convey the determined social significance (step 4006).
This may be done similarly as that described with regard to FIG. 6.
For example, the media controller 128 may first determine an
overall area size in which all program representations must be
displayed. The media controller 128 may then determine an
appropriate size of the program representation corresponding to the
first program. Using a scaling factor, the media controller 128 may
then determine that the program representation corresponding to the
second program should be scaled at a factor of 1/2 (6 of 12), the
third program representation at a factor of 1/3 (4 of 12), and the
fourth program representation at a factor of 1/6 (2 of 12).
[0071] The media controller 128 may then cause a display of the
program representations, similar to the display 62 illustrated in
FIG. 8, however with four program representations rather than three
(step 4008).
[0072] FIG. 10 is a flow chart illustrating an exemplary process
for determining a social ranking of a plurality of programs
according to one embodiment wherein social ranking is based on
explicit ratings of users of the social network service 24 with
whom the viewer's profile has been matched based on a designated
threshold degree of similarity value. FIG. 10 will be discussed in
conjunction with FIGS. 8 and 1. The same assumptions regarding
viewer 148 and the media controller 128 made with respect to FIG. 9
will be made with respect to FIG. 10. The media controller 128 uses
the threshold degree of similarity value identified by the
similarity slider 64 to generate a message that includes data such
as the desired threshold degree of similarity value, and the
identity of the viewer 148. The media controller 128 sends the
message to the social network server 32 (step 5000). The social
network server 32 accesses the program rating data 40 to determine
explicit ratings of programs that are currently available. The
social network server 32 also performs a profile comparison of the
viewer's 148 profile with the profiles of other users of the social
network service 24. The profile matching process was described
herein with respect to FIG. 9 and will not be repeated herein. The
social network server 32 provides data identifying the users whose
profiles match the profile of the viewer 148 within the desired
threshold degree of similarity value, and corresponding explicit
rating data identifying subjective ratings of programs by the
identified viewers, to the media controller 128 (step 5002).
Alternately, the identified users may not be individually
identified to the media controller 128 for privacy purposes, or due
to the number of identified users whose profiles matched the
profile of the viewer 148.
[0073] The media controller 128 determines a social ranking of
programs based on the explicit rating data (step 5004). Any
suitable process for determining which programs are more socially
significant based on the explicit rating data may be used,
including those discussed herein with regard to FIG. 7, which will
not be repeated herein. The media controller 128 may then determine
a program representation size of the highest socially ranked
programs, such as, for example, in the manner discussed herein with
regard to step 3008 of FIG. 7 (step 5006). The media controller 128
may then cause a display of the program representations, similar to
the display 62 illustrated in FIG. 8, however with four program
representations rather than three (step 5008).
[0074] FIG. 11 illustrates another exemplary display caused by a
media controller 12 of program representations 52 based on a social
ranking of corresponding programs. While for purposes of
illustration, previous embodiments have been discussed as using
implicit ratings or explicit ratings, programs may be socially
ranked by any combination of the various factors, including
implicit ratings, explicit ratings, degree of separation and degree
of similarity. FIG. 11 illustrates an exemplary display 62 which
includes both the DOS slider 60 and the similarity slider 64. The
DOS slider 60 has an accompanying DOS option box 61 which enables
the viewer 14 to indicate whether the viewer 14 would like a
threshold DOS value to be taken into consideration when identifying
users. The similarity slider 64 has an accompanying similarity
option box 63 which enables the viewer 14 to indicate whether the
viewer 14 would like a threshold degree of similarity value to be
taken into consideration when identifying users. Thus, in response
to the selections depicted on FIG. 11, the media controller 12 may
send a message to the social network server 32 that contains both a
viewer selected threshold DOS value of one, and a viewer selected
threshold degree of similarity value of 50. In response, the social
network server 32 identifies a group of users who are one DOS from
the viewer 14, and a group of users who have profiles that
constitute at least a 50% similarity match to the profile of the
viewer 14.
[0075] In another embodiment, users may be identified based on a
combination of the threshold degree of similarity value and the
threshold DOS value. For example, the social network server 32 may
first identify users that are within a designated DOS of the viewer
14, and further filter those users based on a profile similarity of
such users with respect to the viewer 14. Alternately the initial
group of users may be identified based on a profile similarity
match, who then may be further filtered based on the threshold DOS
value. This option may be selectable by the viewer 14 and provided
to the social network server 32 as appropriate.
[0076] The social rankings may be based on the combination of these
four factors, including implicit ratings, explicit ratings, users
identified by degree of separation, and users identified by
similarity of profiles. Each factor could be weighted differently,
wherein the social ranking of the program is based on a weighted
average of each factor. The weights provided to each such factor
could be system configurable, or could be user configurable. In one
embodiment, the weights could be viewer alterable, similar to the
DOS slider 60. For example, the viewer 14 may indicate the weight
of the implicit ratings should be 70% of the total social ranking,
and the weight of explicit ratings should be 30% of the total
social ranking. Additional weights could be attributed to the
source of the ratings, wherein users identified via a DOS
relationship with the viewer 14 should be given an 80% weight, and
those identified by a degree of similarity should be given a 20%
weight. It will be appreciated that these are merely exemplary, and
any number of potential weightings are possible in deriving the
social ranking of the programs.
[0077] While for purposes of illustration implicit ratings and
explicit ratings have been discussed in terms of actual programs
that were implicitly or explicitly rated, in other embodiments,
implicit ratings and explicit ratings may include ratings of
previous episodes of the same programs. For example, for a new
episode of a series, no program rating information may exist. Thus,
the social network server 32 may take into consideration program
rating information of previous episodes of the series.
[0078] In yet another embodiment, implicit ratings and explicit
ratings may include program rating information of programs that are
similar to the programs being socially ranked. For example, assume
that based on a number of criteria, such as genre, type of program,
and the like, two programs are deemed to be similar to one another.
For example, assume that the program The Bachelor is deemed to be
similar to The Bachelorette. In one embodiment, The Bachelorette
may be available for viewing, but insufficient implicit or explicit
ratings may exist for The Bachelorette. For example, The
Bachelorette may be a new or relatively new program, while The
Bachelor may have been shown for two previous seasons. In such
circumstances, the implicit or explicit ratings of similar
programs, such as The Bachelor, may be used to socially rank The
Bachelorette.
[0079] The degree of similarity of programs may also be user
selectable. For example, a program degree of similarity slider (not
illustrated) may be manipulated by the viewer 14 to identify a
desired degree of similarity. A value of 100 may indicate that only
ratings associated with the identical program are used to socially
rank a program. A value of 90 may indicate that the ratings of
programs that are identical, and those programs deemed to have a
90% or higher degree of similarity to the actual programs be
considered. In an alternate embodiment, the degree of similarity
may be taken into consideration while determining the social
ranking of the programs, wherein ratings of programs that have a
higher degree of similarity to the ranked program have a higher
weight than ratings of programs that are less similar to the ranked
program.
[0080] FIG. 12 illustrates an exemplary processing device 70 which
may be used to implement a media controller 12, or a social network
server 32, according to some embodiments. The processing device 70
may, when implementing a media controller 12, comprise a set top
box, a digital video recorder, an intelligent gaming console, such
as the Microsoft.RTM. Xbox.RTM., Sony.RTM. PlayStation.RTM., and
Nintendo.RTM. GameCube.RTM., a media console such as the Apple.RTM.
TV.RTM., personal computers, and the like. In addition to
components discussed previously herein, the exemplary processing
device 70 may also include a central processing unit 72, a system
memory 74, and a system bus 76. The system bus 76 provides an
interface for system components including, but not limited to, the
system memory 74 and the central processing unit 72. The central
processing unit 72 can be any of various commercially available or
proprietary processors. Dual microprocessors and other
multi-processor architectures may also be employed as the central
processing unit 72.
[0081] The media controller 12 may include one or more tuners 20
for selecting program content from a communications channel. A
recorder 78 may receive a source input from the tuner 20 and store
the content onto a storage device, such as the storage 80.
[0082] The system bus 76 can be any of several types of bus
structures that may further interconnect to a memory bus (with or
without a memory controller), a peripheral bus, and a local bus
using any of a variety of commercially available bus architectures.
The system memory 74 can include non-volatile memory 82 (e.g., read
only memory (ROM), erasable programmable read only memory (EPROM),
electrically erasable programmable read only memory (EEPROM), etc.)
and/or volatile memory 84 (e.g., random access memory (RAM)). A
basic input/output system (BIOS) 86 can be stored in the
non-volatile memory 82, which can include the basic routines that
help to transfer information between elements within the processing
device 70. The volatile memory 84 can also include a high-speed RAM
such as static RAM for caching data.
[0083] The processing device 70 may further include the storage 80,
which may comprise, for example, an internal hard disk drive (HOD)
(e.g., enhanced integrated drive electronics (EIDE) or serial
advanced technology attachment (SATA)) for storage. The processing
device 70 may further include an optical disk drive 88 (e.g., for
reading a compact disk or DVD 90). The drives and associated
computer readable media provide non-volatile storage of data, data
structures, computer-executable instructions, and so forth. For the
processing device 70, the drives and media accommodate the storage
of any data in a suitable digital format. Although the description
of computer-readable media above refers to an HOD and optical media
such as a CD-ROM or DVD, it should be appreciated by those skilled
in the art that other types of media which are readable by a
computer, such as Zip disks, magnetic cassettes, flash memory
cards, cartridges, and the like, may also be used in the exemplary
operating environment, and further, any such media may contain
computer-executable instructions for performing novel methods of
the disclosed architecture.
[0084] A number of program modules can be stored in the drives and
volatile memory 84 including an operating system 92 and one or more
program modules 94 which implement the functionality described
herein. It is to be appreciated that the embodiments can be
implemented with various commercially available operating systems
or combinations of operating systems. All or a portion of the
embodiments may be implemented as a computer program product, such
as a computer usable medium having a computer readable program code
embodied therein. The computer-readable program code can include
software instructions for implementing the functionality of
embodiments described herein. The central processing unit 72 in
conjunction with the program modules 94 in the volatile memory 84
may serve as a control system for the processing device 70 that is
adapted to implement the functionality described herein.
[0085] In one embodiment, the program modules 94 may be implemented
in software and stored in the volatile memory 84. However, the
present disclosure is not limited thereto, and in other
embodiments, the program modules 94 may be implemented in software,
hardware, firmware, or any combination thereof. When implementing
the media controller 12, the program modules 94 may include modules
for obtaining the identity of the viewer 14, socially ranking
programs based on rating data, causing the display of program
representations, and other functionality described herein with
regard to the media controller 12. When implementing the social
network server 32, the program modules 94 may include modules for
obtaining the rating information of programs derived from users,
profile matching, and other functionality described herein with
regard to the social network server 32.
[0086] A user may be able to enter commands and information into
the processing device 70 through one or more wired/wireless input
devices, for example, a keyboard and a pointing device, such as a
mouse (not illustrated). Other input devices (not illustrated) may
include a microphone, an infrared (IR) remote control, a joystick,
a game pad, a stylus pen, a touch screen, or the like. These and
other input devices are often connected to the central processing
unit 72 through an input device interface 96 that is coupled to the
system bus 76 but can be connected by other interfaces such as a
parallel port, an IEEE 1394 serial port, a game port, a universal
serial bus (USB) port, an IR interface, etc.
[0087] The processing device 70 may drive a separate or integral
display device 16, which may also be connected to the system bus 76
via an interface, such as a video output port 98. The processing
device 70 may operate in a networked environment using a wired
and/or wireless communication network interface 100. The network
interface 100 can facilitate wired and/or wireless communications
to the network 26 (FIG. 1).
[0088] The processing device 70 may be operable to communicate with
any wireless devices or entities operatively disposed in wireless
communication, for example, a printer, a scanner, a desktop and/or
portable computer via wireless technologies, such as Wi-Fi and
Bluetooth, for example.
[0089] For purposes of illustration embodiments have been described
herein where certain functionality is performed on the media
controller 12 or the social network server 24. However, such
functionality could be distributed differently among the media
controller 12 or the social network server 24 as desired. For
example, the social network server 24 could perform the social
ranking of the programs, and provide the program identifiers
corresponding to the programs, and the corresponding social rank,
along with other information such as the users who have implicitly
or explicitly rated such programs, to the media controller
[0090] Embodiments have been provided herein for purposes of
illustration and explanation, but those skilled in the art will
recognize that many additional and/or alternative embodiments are
possible. Those skilled in the art will recognize improvements and
modifications to the embodiments. All such improvements and
modifications are considered within the scope of the concepts
disclosed herein and the claims that follow.
* * * * *