`
`Exhibit 3
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 2 of 15
`
`(12) United States Patent
`Ward
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,526,411 B1
`Feb. 25, 2003
`
`USOO6526411B1
`
`(54)
`
`(76)
`
`(21)
`(22)
`
`(60)
`
`(51)
`(52)
`(58)
`(56)
`
`SYSTEMAND METHOD FOR CREATING
`DYNAMIC PLAYLISTS
`
`Inventor: Sean Ward, 14 W. Cedar St.,
`Alexandria, VA (US) 22301
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 260 days.
`
`Notice:
`
`Appl. No.: 09/712.261
`Filed:
`Nov. 15, 2000
`Related U.S. Application Data
`Provisional application No. 60/165,726, filed on Nov. 15,
`1999, provisional application No. 60/165.727, filed on Nov.
`15, 1999, and provisional application No. 60/166,039, filed
`on Nov. 17, 1999.
`Int. Cl................................................. G06F 17/30
`U.S. Cl. ..................................... 707/102; 707/104.1
`Field of Search ............................... 707/104.1, 102
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,157.643 A 10/1992 Suzuki
`5,341,350 A 8/1994 Frank et al.
`5,408,448 A 4/1995 Carman
`5,633,839 A 5/1997 Alexander
`5,668,788 A
`9/1997 Allison ....................... 345/173
`5,696,919 A 12/1997 Masuno et al.
`5,749,081. A
`5/1998 Whiteis
`5,793.980 A 8/1998 Glaser et al.
`5,867,799 A
`2/1999 Lang et al.
`5,872,747 A
`2/1999 Johnson
`5,872,850 A 2/1999 Klein et al.
`5,918.223 A 6/1999 Blum et al.
`5,930,768 A 7/1999 Hooban
`5,959.945. A
`9/1999 Jkeunab
`5,983,214 A 11/1999 Lang et al.
`5,986,979 A 11/1999 Bickford et al.
`5.987,525 A 11/1999 Roberts et al.
`
`6,025,838 A 2/2000 Bardon et al.
`6,029,161 A 2/2000 Lang et al.
`6,041,311 A 3/2000 Chislenko et al.
`6,049,777 A
`4/2000 Sheena et al.
`6,061,680 A 5/2000 Scherf et al.
`6,092,049 A 7/2000 Chislenko et al.
`6,118,450 A * 9/2000 Proehl et al. ............... 345/810
`6,154,773 A 11/2000 Roberts et al.
`6,192,340 B1
`2/2001 Abecassis ................ 455/185.1
`6,230,192 B1
`5/2001 Roberts et al.
`5/2001
`6,230.207 B1
`Roberts et al.
`6,240.459 B1
`5/2001
`Roberts et al.
`6,356,971
`Katz et al. .................. 710/301
`3/2002
`6.421,651
`Tedesco et al.
`7/2002
`* cited by examiner
`Primary Examiner Safet Metahic
`ASSistant Examiner-Sana AL-hashemi
`(74) Attorney, Agent, or Firm Miles & Stockbridge P.C.;
`Edward J. Kondracki
`ABSTRACT
`(57)
`Method and System provided for creating a dynamic playlist
`including meta-data having potential association with a
`respective content item configured to be played on a content
`player, and having dynamic addition of Subtraction of play
`list items. The System maintains a database of linkages
`between elements associated with content items as well as
`weighted linkages between elements and respective proper
`ties. The system is a hybrid content based and collaborative
`filtering System, wherein the insertion of a new item into the
`database results in the new item Sharing preference weights
`and number of preferences associated with items pre
`existing in the database. Thus, an initial input query list of
`items potentially results in the return of many content, called
`a “dynamic playlist', has a high correlation with the user's
`preference or with whatever other basis was used to frame
`the input list, and individual content items on the dynamic
`playlist may not have been previously experienced by the
`USC.
`
`24 Claims, 7 Drawing Sheets
`
`
`
`i Dynamic Playlist Content Player System
`
`Conte?t Player
`
`Output Dewice
`
`Content Selection Program
`
`Playback Program
`
`Sort & Culling Algorithas
`
`?
`
`it.
`
`-
`
`Playlist
`
`I
`t-
`
`Local Content
`tems
`
`
`
`User Profiles
`
`Sori Server Systern
`3e)
`
`Sort Server
`
`3.
`
`Bata Mining
`Algorithms
`
`Content Provider System
`36
`
`2.
`
`
`
`Content
`Provider
`Server
`
`Contentiteins
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 3 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 1 of 7
`
`US 6,526,411 B1
`
`Communications
`interface
`
`
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 4 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 2 of 7
`
`US 6,526,411 B1
`
`Data storage
`
`fe
`
`Playlist
`
`Local Content
`items
`
`l g
`
`User Profiles
`
`
`
`Communications Link
`
`I 30
`
`Sort Server System
`3 cy
`
`
`
`Sort Server
`
`Data Mining
`Algorithms
`
`... sesssssasses aaassesses ups stoosese seaasenoassoovese season as at sees sess sees overe essessive
`
`FIG. 2
`
`Content Provider System
`20
`
`2 D.
`
`Content
`Provider
`Server
`
`Content items
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 5 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 3 of 7
`
`US 6,526,411 B1
`
`FIG. 3
`
`5 \?choose First Meta-Y
`category in Playlist)
`
`
`
`Retrieve Available
`tens in
`MetaCategory
`
`(Optionally) Rankl
`Cull Retrieved
`items
`
`insert items into
`Play Queue
`
`No
`
`
`
`
`
`(Optionally) Rank/
`Cull Playlist
`
`
`
`Yes
`
`Move Next
`MetaCategory
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 6 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 4 of 7
`
`US 6,526,411 B1
`
`S8
`
`FIG. 4
`
`Pick First
`MetaCategory
`
`
`
`Perform
`Recommendation
`Search Focused
`within
`MetaCategory
`
`(Optionally) Rankl
`Cull Results
`
`insert items into
`Play Queue
`
`
`
`
`
`
`
`MetaCategories
`
`Yes
`
`
`
`Move Next
`MetaCategory
`
`
`
`NO
`
`(Optionally) Rankl
`Cull Playlist
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 7 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 5 of 7
`
`US 6,526,411 B1
`
`
`
`td ()
`
`Ite
`
`t
`
`
`
`I).
`
`il
`
`9 -
`
`
`
`Playlist
`
`Content items
`
`Content Player
`
`Content Selection Program
`
`Playback Program
`
`Sort & Culling Algorithms
`
`Output Device
`
`Communications Link
`
`
`
`Sort Server
`
`FIG. 5
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 8 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 6 of 7
`
`US 6,526,411 B1
`
`
`
`So
`
`Choose First 2
`Items in Playlist
`
`FIG. 7
`
`
`
`
`
`Both terms in
`Elements Table?
`
`
`
`Sid
`
`S25
`
`
`
`and item 22
`
`insert New Pair Link
`of Strength 1.
`increment
`Totallinks of tem2
`by 1
`
`S4
`
`S5
`
`increment Existing
`Link by 1.
`increment
`Totalinks often
`2 by 1
`
`Yes
`
`More terms in
`input List?
`
`Advance One in
`input List (item 2
`B
`item 1,
`Newtern Becomes
`item2)
`
`33.7
`
`No
`
`Done Seeding
`
`S28
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 9 of 15
`
`U.S. Patent
`
`Feb. 25, 2003
`
`Sheet 7 of 7
`
`US 6,526,411 B1
`FG. 3
`
`S39 /
`
`Pick a Seed User
`Profile
`
`Compare Seed
`against all Profiles
`
`S 41
`
`Rank all Compared
`Profiles by
`Similarity to Seed
`Profile
`
`S42
`
`Cluster Most
`Similar Profiles with
`Seed Profile
`
`S43
`
`Count Frequency of
`all elements in
`clustered profiles
`
`Use most frequent
`items to build Hash
`profile to represent
`
`S45
`
`
`
`in hash profile
`table, and remove
`seed and clustered
`profiles from Profile
`
`
`
`More Profiles
`Left?
`
`Yes
`
`
`
`Move Next User
`Profile and make it
`the Seed Profile
`
`5 it -
`
`No
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 10 of 15
`
`US 6,526,411 B1
`
`1
`SYSTEMAND METHOD FOR CREATING
`DYNAMIC PLAYLISTS
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`The present application claims the benefit of U.S. Provi
`sional Application No. 60/165,726 filed Nov. 15, 1999. That
`application and the present inventor's U.S. Provisional
`Application Nos. 60/165,727 and 60/166,039 filed respec
`tively on Nov. 15, 1999 and Nov. 17, 1999 are hereby
`incorporated by reference. The present application also
`incorporates by reference the present inventor's application
`Ser. No. 09/712,261 and the No. 60/165,727 Provisional
`Application) filed concurrently here with.
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates generally to a System and
`method for music and/or Video playback, and more
`particularly, providing to the user recommendations of items
`which have not yet been Sampled by the user, based on a list
`of items already Sampled by the user, utilizing a method for
`the dynamic addition, Subtraction and Sorting of a queue of
`items for playback.
`2. Description of Related Art
`The concept of a playlist is old, i.e. a Static list of items
`to be played one by one through its entirety, in the order
`listed in the playlist. So far, only rudimentary attempts at
`dynamic playback have been made, consisting mainly of
`randomizing the order in which Selections from the playlist
`are played. Some attempts have been made to let people
`quickly create playlists based on particular artists, or
`albums, or styles of music. However, all of them are still a
`Static list after they are created, and don’t automatically
`reorder themselves in a pleasing way, or incorporate new
`content which would fit with them as it is made available.
`Additionally, any slightly complex concept Such as building
`a playlist which contains more than one piece of meta-data,
`Such as, for example, more than one artist, typically requires
`complex Boolean logic Statements to build, making Such
`playlist creation processes inaccessible to those unskilled in
`Boolean techniques.
`A System is needed that is easy to use, adapts to personal
`tastes, and can easily add or Subtract music or videos, as they
`become available. Such a System should provide more than
`random Sorting and shuffle-play options to overcome the
`deficiencies of a Static playlist, So that the playlist becomes
`dynamic.
`It is therefore a principal object of the present invention
`to provide a dynamic playlist System and method for a
`dynamic playlist of digital items that automatically adds
`items to, or Subtracts items from, the playlist, as the items
`become available.
`An object of the present invention is to provide the
`dynamic playlist System where the data items are music or
`Video items.
`Another object of the present invention is to provide a
`dynamic playlist that dynamically adapts to usage patterns.
`Another object of the present invention is to provide a
`dynamic playlist that dynamically adapts to personal pref
`CCCS.
`Another object of the present invention is to provide a
`dynamic playlist that is easy to use.
`SUMMARY OF THE INVENTION
`The above objects are obtained according to the present
`invention in which a method and System is provided for
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`creating a dynamic playlist including meta-data having
`potential association with a respective content item config
`ured to be played on a content player.
`The System maintains a database of linkages between
`elements associated with content items as well as weighted
`linkages between elements and respective properties. The
`System is a hybrid content based and collaborative filtering
`System, wherein the insertion of a new item into the database
`results in the new item Sharing preference weights and
`number of preferences associated with items pre-existing in
`the database. Thus, an initial input query list of items
`potentially results in the return of many content items
`available from one or more content providers, wherein the
`retrieved content, called a “dynamic playlist', has a high
`correlation with the user's preference or with whatever other
`basis was used to frame the input list, and individual content
`items on the dynamic playlist may not have been previously
`experienced by the user.
`A dynamic playlist is a list of items that can be played in
`linear order, as is done with a traditional playlist, or in more
`exotic Sequences after application of Sorting or ordering
`algorithms. User profiles can be applied to the Sorting
`process, i.e., by ranking items based on the user's meta-data,
`which can include usage patterns or explicit preferences, and
`further, by order reflected by usage of other users.
`The most useful aspect of a dynamic playlist is the
`dynamic addition and Subtraction of playlist items. This is
`accomplished by accepting at least one meta category
`defined as a Set of at least one criterion, where each criterion
`has a potential association with a content item, and retriev
`ing from at least one content provider a first result Set of
`meta-data fitting any of the criteria, wherein the first result
`Set enables acquisition of content items to be played. Next,
`a filtered first result Set is calculated by application of a
`collaborative filtering query algorithm to the first result Set,
`and then the filtered first result set is added to the dynamic
`playlist. Next, the System Seeds a next meta-category, if any,
`with the result Set and repeating the retrieving, calculating,
`inserting and Seeding StepS until all meta-categories have
`been processed. In accordance with this method, an initial
`meta-category of Selection preferences potentially results in
`the return of many content items available from one or more
`content providers, wherein the retrieved content has a high
`correlation with the user's preference or with whatever other
`basis was used to frame the meta-category.
`The collaborative filtering query algorithm can be
`arranged to include the dynamic playlist itself, which
`becomes especially meaningful Subsequent Successive play
`list updates. The algorithm can also include user play pattern
`data including manual intervention detected during playing
`of contents associated with the dynamic playlist, or rating
`data indicative of preference or distaste for Selected content
`items.
`The method for creating a dynamic playlist also includes
`accessing a database configured to include meta-data
`elements, wherein each element defines at least one rela
`tionship between a user and a respective content item,
`identifying at least one meta-category from the database, and
`updating the database to include at least parts of the dynamic
`playlist.
`The method for creating a dynamic playlist also includes
`applying a reordering algorithm to the filtered first result Set
`to obtain the dynamic playlist. The ordering algorithm is
`Selected from a group of algorithms including a ranking
`algorithm, a random element removal algorithm, a retention
`of top N most popular elements algorithm, and a pairing Sort
`algorithm.
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 11 of 15
`
`US 6,526,411 B1
`
`4
`FIG. 7 is a logic flow diagram of a Sample pairing Sort
`Seed algorithm according to the present invention;
`FIG. 8 is a simplified logic flow diagram of a hash
`clustering System according to the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`A simplified arrangement of components of the dynamic
`playlist system 100 according to the present invention is
`schematically shown in FIG. 1, which includes a dynamic
`playlist content player 10, a content provider System 20, and
`a Sort Server 30, all interconnected by a communications
`interface 40. Any number of computers 10, 20, and 30 can
`be interconnected according to the present invention. For
`example, multiple client computerS 10 can obtain content
`provided by one or more content provider computers 20.
`Communications interface 40 can be any type of bus,
`local area network, wide area network, or a global network
`Such as the Internet. Alternatively, communications interface
`40 includes wireleSS communications, Satellite connections,
`or any other connection means, and is not shown in detail as
`Such interfaces are well-known and commonly used in
`conjunction with distributed Systems.
`In a dynamic playlist, the playlist items can be played in
`linear order, as is done with a traditional playlist, or in more
`exotic Sequences after application of Sorting or ordering
`algorithms. For example, the playlist items can be Sorted by
`grouping frequency, i.e., application of a pairing Sort to the
`items. User profiles can be applied to the Sorting process,
`i.e., by ranking items based on the user's meta-data, as
`discussed later, in connection with FIG.8. The items can be
`ranked by other user order frequencies, Such as, for example,
`the order reflected in use by other users. While these all
`create a much more interesting playback order, Somewhat
`like having a disk jockey who understands both the music/
`Videos and the perSon listening/watching them, the most
`useful aspect of a dynamic playlist is the dynamic addition
`and Subtraction.
`Specifically, meta-elements can be added to the playlist,
`Such as with music, the addition of an artist to the playlist.
`Then, when the playlist is used, the playlist queries a main
`Server for the existence of content relating to that meta-data.
`I.e. adding an artist or group would add the entire given artist
`or groups content to the playlist, or would add the content
`not removed by anti-links (listed dislikes) existing in a
`user's profile. Additionally, it could be configured to add the
`content that was highest ranked as returned by a collabora
`tive filtering query focused on the rest of the playlists
`content, up to a certain number of Songs. What this would
`allow is the creation of themed playlists that were random,
`yet fit together. Additionally, it would allow users to Sub
`Scribe to artists and automatically have their playlists
`updated with new content, Such as when an artist releases a
`new Song, by having playlists which contained the meta
`category of a particular artist included in their playlist. That
`would be a valuable opportunity for both users and artists to
`COnnect.
`A playlist could also be made entirely of meta-elements.
`For example, it could contain two artists (a meta-category).
`First the system would build a result list of all the elements
`which have the meta-categories which are in the playlist,
`Such as all the Songs an artist has produced. Next, a
`collaborative filtering query could be executed on the result
`list, to rank and/or cull the items that the current user would
`most enjoy in the list. After that, various randomization or
`ordering algorithms could be applied to make the playlist
`
`3
`In a separate embodiment, a respective Second result Set
`is obtained for each meta-category, wherein the respective
`Second result Set includes meta-data identifying all content
`items fitting any at least one criterion of each meta-category.
`An ordering algorithm is applied to the Second result Set to
`obtain the dynamic playlist.
`The pairing Sort algorithm begins with Selecting a first and
`Second item from the playlist, determining if both elements
`are in an elements table, inserting whichever element is
`missing into the elements table, incrementing by 1 a pair link
`between the first and Second elements, and incrementing by
`1 a counter associated with the Second element. If a pair link
`exists between the first and Second items, the algorithm
`inserts a new pair link of Strength 1 between the first and
`Second items and increments by 1 a counter associated with
`the second item. If a pair link does not exist between the first
`and Second items, and if another item remains in the playlist,
`the algorithm identifies the first item as the Second item and
`the other item as the Second item. The Sequence is repeated
`until no items remain in the playlist.
`Alternatively, the input Set can either be associated with
`other input Sets by a profile ID, or be a Seed user profile, i.e.,
`a single individual or Source that Submits the input Sets, or
`the input Set is simply collected on a Stand-alone basis. This
`allows the creation of aggregate profiles between a Series of
`queries or Seed actions. Finally, if the action is a query,
`Several profile ID's could be used to create a composite view
`of the multiple profiles, Such as, for example, to find a Song
`both a husband and wife would enjoy.
`The pairing Sort algorithm as applied to at least one user
`profile begins with Selecting a Seed user profile, and pro
`ceSSes the Steps of comparing the Seed user profile against all
`available profiles, ranking all compared profiles by Similar
`ity to the Selected Seed profile, clustering the most similar
`profiles with the Seed profile, counting the frequency of all
`elements in the clustered profiles, building a hash profile of
`the most frequent items to represent each respective cluster,
`placing the respective hash profile in a hash table, removing
`the Seed and clustered profiles from the profile list, identi
`fying a next user profile, if available, as the Seed user profile,
`and continuing the Sequence until no profiles are available.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`These and other features of the present invention and the
`attendant advantages will be readily apparent to those hav
`ing ordinary skill in the art, and the invention will be more
`easily understood from the following detailed description of
`the preferred embodiments taken in conjunction with the
`accompanying drawings, wherein like reference characters
`represent like parts throughout the Several views.
`FIG. 1 is a highly simplified Schematic drawing of com
`ponents of the dynamic playlist system 100 according to the
`present invention;
`FIG. 2 is a simplified Schematic drawing showing more
`details the system shown in FIG. 1;
`FIG. 3 is a logic flow diagram of the basic mode dynamic
`playlist algorithm according to the present invention;
`FIG. 4 is a logic flow diagram of the recommendation
`mode dynamic playlist algorithm according to the present
`invention;
`FIG. 5 is a schematic drawing of the recommendation
`mode dynamic playlist algorithm according to the present
`invention;
`FIG. 6 is a Schematic drawing of a Sample pairing Sort
`System according to the present invention;
`
`55
`
`60
`
`65
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 12 of 15
`
`US 6,526,411 B1
`
`S
`“flow” in an effective manner from item to item. For
`example, the pairing sort described in FIG. 6, to be described
`later, could be executed. A playlist made in that manner
`would be fresh each time it was played, as it would pick new
`content and alter its playback order each time it was used.
`Additionally, Several ranking and/or culling techniques
`can be applied to the generated playlists before or during
`playback. For example, a pairing order Sort could be applied
`to the playlist, which would have the effect of ordering it in
`the most popular order. Therefore, musical pieces could be
`ordered to flow in the manner that most people have ordered
`them, which will most likely result in the most compatible
`ordering. A Sample pairing Sort routine is shown in FIG. 6,
`to be described later. Additionally, the most incompatible
`elements could optionally be discarded from the sorted list.
`AS another example, a popularity Sort could also be
`applied, wherein the results are then ranked based on Overall
`popularity among all listeners, or the Subset closest to the
`current playlist creator. AS another option, the least popular
`items could be culled, or given higher weightings if the user
`desired. Other common Sort mechanisms, Such as by artist,
`random, meta-category, least popular, or album ordered
`could also be implemented.
`FIG. 2 shows the arrangement of FIG. 1 in greater detail,
`including a simplified Schematic diagram of the major
`functional components of the dynamic playlist system 100.
`The arrangement of FIG. 2 is one of many possible arrange
`ments of the functional elements of the present invention
`and Serves to facilitate their description and general concept
`of the present invention. Other arrangements will be
`described later.
`The dynamic playlist System 100 is conceptionally orga
`nized into three Separate Systems, including a dynamic
`playlist content player System 110 and content provider
`Server System 120 arranged to operate in a known client
`server mode. Sort server system 130 is optional to the extent
`that its function is to provide Sophisticated filtering Services
`by way of collaborative filtering algorithms, and operates in
`Support of the dynamic playlist content player System 110 in
`those embodiments calling for Such Services. Moreover,
`content item Storage can be a shared function with local
`Storage being locally accessible by dynamic playlist content
`player system 110 with additional content being accessible
`from remote Storage associated with one or more content
`provider systems 120.
`The dynamic playlist client system 110 includes a content
`player 10, which includes known devices for playback of
`audio or Video files, taking the form of popular computer
`programs for use on personal computers, as well as inte
`grated Video and audio Stereo systems. In the preferred
`embodiment, content player 10 is operably connected to a
`content Selection program 11 and a playback program 12
`arranged to operatively control peripheral devices including
`an output device 13, which can be any device configured to
`play or display file objects Such as, for example, audio,
`graphic, and Video files. Video files can include motion
`picture films, computer games, and the like. Content player
`10 also includes, and is operably responsive to, known input,
`display, memory, and processor devices commonly associ
`ated with computers. Content player 10 includes a data
`Storage device 15 configured to operate one of any type of
`data Storage model, including, but not limited to, a relational
`data base. Regardless of the data Storage model employed,
`data Storage device 15 includes Storage of a meta-data
`playlist 16, optional Storage of local content items 17, and at
`least one user profile 18, all to be described later.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`The content provider system 120 includes a content
`provider Server 20, which is a local Storage System 22
`configured for Storing content items, Such as, for example,
`audio or video content items. The content items Stored on
`content provider system 20 are stored in any of the known
`data Storage models, Such as, for example, a relational
`database. Stored content items are associated with respective
`meta-information, both of which can be accessed over
`communication interface 40 by content Selection program 11
`located on content player 10. AS discussed in detail below,
`retrieved content items optionally can be post-processed by
`data mining relational algorithms 32 located on Sort Server
`30 and Sorting and culling algorithms 14 associated with the
`content player 10, and then output on output device 13. Any
`of the known relational algorithms can be used in connection
`with the present invention and all variations of algorithm
`type and installation configurations are intended to be
`included within the Scope of the present invention, Such as,
`for example, the Firefly system as disclosed in U.S. Pat. No.
`5,749,081, the Hey systems as disclosed in U.S. Pat. Nos.
`4,870,579 and 4,996,642, or the approaches in the Rose
`system as disclosed in U.S. Pat. No. 5,724,567. All varia
`tions of algorithm type and installation configurations are
`intended to be included within the scope of the present
`invention.
`A sort server system 130 includes a server 30 configured
`to run profile based Subjective recommendation or data
`mining algorithms 32, which also are not shown in detail, as
`their use is well-known and commonly used in the art of
`collaborative and recommendation filtering. Alternatively,
`algorithms 32 can be located at any of the three computers
`10, 20, and 30, provided sufficient computational power and
`network throughout are available. The sort server 30 is
`comprised of a known collaborative filtering engine and a
`pairing sort system, as described in FIGS. 6 and 7.
`It should be understood that the present invention might
`be readily adapted for alternate embodiments and modes of
`operation. For example, the content Selection program 11
`and playback program 12 could be accomplished using the
`directory Structure of a hard drive, or the indexed database
`of content to which a user has acceSS. The dynamic playlist
`System could be implemented in a variety of devices and
`mediums. For example, a computer program written in any
`of the many languages Such as C++, that would allow
`advanced data structures on any platform that would allow
`content playback, could Serve as the playlist content player
`10. Another form of the playlist content player 10 could take
`the form of a set top television box, or be within a stereo
`Sound System, with the database of available titles being
`Stored either within the devices themselves, or on a remote
`Server System, which, potentially, can also serve the content.
`Additionally, aspects of the sort server system 130 and the
`content provider System 120 can be integrated into the
`content player system 110.
`FIG. 3 is a simplified flow diagram illustrating operation
`of one embodiment, the basic form, in which only a content
`provider 120 and a playlist consumer 110 are required. At
`Step S1, when a playlist is executed, the playlist consumer
`picks a Seed meta-category from the playlist. At Step S2, It
`then queries available content providers for all content
`pieces fitting the Seed meta-category. At Step S3, optionally,
`it then applies ranking or culling algorithms to the results,
`Such as randomly removing elements, or only keeping the
`top N most popular result items. Next, at step S4 it inserts
`the results into the play queue, and continues at Steps S5 and
`S6 to the next meta-category in the playlist and repeats the
`process. Finally, at Step S7, it performs an optional ranking
`
`
`
`Case 1:20-cv-03159-AKH Document 1-3 Filed 04/21/20 Page 13 of 15
`
`US 6,526,411 B1
`
`7
`or culling Sort on the play queue, Such as randomizing the
`play order, and begins playback. This mode of operation can
`be implemented in a non networked environment, but is leSS
`powerful than the recommendation mode of operation, to be
`described next, as it cannot apply advanced Sort routines to
`the playlist. However, it does allow a playlist can be unique
`each time it is expanded, and can add new content without
`having to modify the playlist when the content providers
`make new content accessible.
`FIG. 4 is a simplified flow diagram illustrating operation
`of one alternate embodiment, called the recommendation
`form, in which a third System element, Sort Server System
`130, is added to the basic form illustrated in FIG. 3. The
`addition of a central sort server system 130 allows advanced
`profile based collaborative filtering or pairing Sort queries to
`be performed upon the dynamic playlists. In operation, the
`recommendation form playlist expansion is similar to that of
`the basic form, with the addition of the more Sophisticated
`Sort algorithms ranking and culling results after each Step.
`At Step S8, a meta-category is chosen as the Seed from the
`playlist. At Step S9, the content providers are queried for
`available content in the Seed meta-category and then the
`result content list is ranked and culled by performing a
`collaborative filtering query based on any Static items within
`the playlist, with any results not in the content list received
`from the content providers discarded. At optional step S10,
`any additional ranking or culling algorithms can be
`performed, Such as randomly discarding Some elements, or
`ranking based on raw popularity. Next, at steps S11-S13 the
`content list is inserted into the play queue, and the next
`meta-category in the playlist is chosen. At that point the
`proceSS is repeated, using the results currently in the play
`queue to seed a collaborative filtering request after each list
`of available content pieces is returned from the content
`providers. Upon Seeding the play queue with all meta
`categories, a final ranking and culling pass can be
`performed, using any of the common playlist manipulation
`algorithms, and optionally, a pairing Sort algorithm, to be
`described in connection with FIGS. 6 and 7.
`Finally, playback can commence. AS items are played
`back from the play queue, the System also reports to the Sort
`server that the user has listened to the item, to allow the
`collaborative filtering System to increase its understanding
`of the content. Additionally, each time two Songs are listened
`to in Sequence, their pairing is Submitted to the Sort Server's
`pairing Sort System to allow the pairing Sorted to increase its
`understanding of the content as well.
`FIG. 5 is a preferred rearrangement of the “client-server'
`configuration shown in FIG. 2, wherein elements in common
`between FIGS. 2 and 5 share common reference numerals.
`Dynamic playlist content player 50 Serves as content player
`10 and further includes local content Storage functionality as
`well as operating to access content Stored remotely at
`content provider 120. This j