Abstract:
A method for creating, sharing, combining, and analyzing musical multimedia play lists based on a user contextual classification. Musical multimedia is media that utilizes a combination of different content forms such as music songs, movies, pictures, and sounds. This contextual classification is defined by relationships among key elements of the multimedia content. For example, the relationships for music songs are defined among musical genre, singer/player, or a specific music song with an activity list, places or locations, and states of feeling (i.e., mood or temper) defined by the user when he usually listens to music frequently.

Description:
BRIEF DESCRIPTION OF THE DRAWINGS  
       [0001]      FIG. 1 : Proposed Music Classification Interface 
         [0002]      FIG. 2 : Proposed entity relation diagram to make persistent the information obtained from user&#39;s music libraries, rating preferences and musical preferred listening contexts 
         [0003]      FIG. 3 : Formula for calculate the compatibility musical index between two users 
         [0004]      FIG. 4 : Sample list of musical listening contexts identified by a unique ID 
         [0005]      FIG. 5 : Proposed detailed entity relation diagram to make persistent the user rating preferences and music preferred listening contexts for specific musical content such as music songs 
         [0006]      FIG. 6 : Proposed class definition for a web service implementation of music classification services 
     
    
     TECHNICAL FIELD  
       [0007]    This invention is related to information networks, and more particularly to employ social networks, web services, or storage systems to publish and share music classification and preferences based on inputs from multiple users. 
       BACKGROUND OF THE INVENTION  
       [0008]    Currently, most of the multimedia players have limited features to create multimedia musical play lists. The common procedure is based on user actions where he selects the corresponding multimedia content (one or more music items) and then, it is added to the play list. Similarly, other procedure to add multimedia musical content is by selecting information from the multimedia content such as album, artist, player, musical genre, and then, adding the items to the play list. 
         [0009]    However, a common user usually wants to select a sub set of the play list depending on different environmental factors such as user mood, user activity, etc. The combination of environmental factors for a user is named as user context. For example, a user working on a difficult activity may require some specific kind of music allowing the concentration and focus; other user context may be a romantic dinner, where the user looks for music for the specific moment. In addition, users have preferred music, singers or players, albums, and genre but the specific moment where the user wants to listen to such music can not simply described with such information. This invention allows the classification of multimedia content based on additional preferences and contexts defined by the user. In the case of musical multimedia content such as songs, this invention allows the user to classify music genres, singers, players, albums, and songs according to a preference classification and relate them with a set of user contexts where he wants to listen to the music. This classification allows the combination of play lists from different users based on their preferences and contexts. The results from this combination will generate a play list where multiple users feel comfortable with respect to the music they are listening. For example, consider a group of friends gathered in a party and all of them belong to an internet-based social network where they share their music preferences and contexts. This invention will allow the selection of music for playing based on the combination of preferences and contexts; this selection will create a more conformable environment for the party. A second example will be the scenario where two people are traveling by car and they want to listen to music during the trip; this invention will combine the preferences and contexts from both users to generate the best selection for the trip based on their current common mood and environment (i.e., traveling). 
       SUMMARY OF THE INVENTION  
       [0010]    The goal for this invention is to allow the classification of musical multimedia contents based on the user cataloging (genre, singer, player, and album) and one or more user contexts. In addition, this invention allows the combination of multimedia play lists from different users into a single play list by selecting a common context from two or more user classifications. The contexts can be defined in terms of activity performed, location, and mood. Consider scenarios where multiple users attend the same location and they may want to listen to music according the location and their mood, such as the office, the gym, or a date. 
       DETAILED DESCRIPTION OF THE INVENTION  
       [0011]      FIG. 1  shows a graphical user interface for classifying the preference and the corresponding contexts for a musical multimedia playable content. 
         [0012]    This interface helps to understand how the method described in claim  1  where the users is capable of assigning a preference to a musical genre, player or singer, album, or specific song and then, relate them with one or more user listening contexts. The relationship among genre, album, singer, and song is arranged hierarchically as it was enlisted. This hierarchical relationship allows the inheritance of preferences and context relationships from one genre to all artists associated to such genre, and from all artists to all songs they perform. It is clear that some exceptions may occur but this generic approach will allow to perform a simple and easy classification. This hierarchical approach combined with the graphical user interface shown in  FIG. 1  provides an easy and quick way to classify each song. 
         [0013]      FIG. 2  shows an entity-relationship diagram used to storage the information persistently about music multimedia content, contexts, user preferences, and their corresponding classification among content, context, and preferences. 
         [0014]    Each table is described as follows: 
         [0015]    InterpretationTypes: This table corresponds to the type of participation within the multimedia musical content. For example, considering a musical song, types include main voice, chores, director, etc. 
         [0016]    InterpreterListenContexts: This table contains the information representing the associations of singer/player and user contexts. 
         [0017]    InterpreterRating: This table contains the information about the preference classification that one user defies for a specific singer or player. 
         [0018]    Interpreters: This table contains the information about the singers, players, or groups representing the interpreter of the musical content. 
         [0019]    MusicPiceRating: This table contains the information about the user preference grading to specific music multimedia items such as songs. 
         [0020]    MusicGenreListenContexts: This table contains the information representing the associations of musical genres and user contexts. 
         [0021]    MusicGenreRating: This table contains the information about the grade of preference defined by a user to specific musical genres. 
         [0022]    MusicGenres: This table contains a description of musical genres. 
         [0023]    MusicListenContexts: This table contains information about the user contexts where users usually listen to music (activities, places, moods, etc.) 
         [0024]    MusicListenContextTypes: This table contains the context types which users usually listen to music. 
         [0025]    MusicPiceInterpreters: This table associates a music song with one or more players (singers). 
         [0026]    MusicPieceListenContexts: This table contains information about the relationship between musical songs and the user contexts. 
         [0027]    MusicPieces: This table contains the information about the musical multimedia items such as songs. 
         [0028]    UserFriendGroups: This table contains the information about groups of users. These groups are created to facilitate the managing of users. 
         [0029]    UserFriends: This table contains information about the relationship between users. These relationships are used to allow the sharing and combination of musical classifications. 
         [0030]    Users: This table contains information about the users. 
         [0031]    The next SQL statement shows how a user musical play list can be generated using the persistent information scheme (entity-relationship diagram) shown in  FIG. 2 : 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 SELECT 
                 MusicPieces.IDMusicPiece, 
               
               
                   
                 MusicGenres.MusicGenre, 
               
               
                   
                 Interpreters.Interpreter, 
               
               
                   
                 MusicPieces.MusicPieceName, 
               
               
                   
                 MusicPieceListenContexts.IDUser, 
               
               
                   
                 MusicPieceListenContexts.IDMusicListenContext, 
               
               
                   
                 MusicPiceInterpreters.IDInterpretationType 
               
               
                 FROM 
                 MusicGenres RIGHT OUTER JOIN 
               
               
                   
                 MusicPieces ON 
               
               
                   
                 MusicGenres.IDMusicGenre = MusicPieces.IDMusicGenre 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 Interpreters 
               
               
                   
                 RIGHT OUTER JOIN 
               
               
                   
                 MusicPiceInterpreters ON 
               
               
                   
                 Interpreters.IDInterpreter = 
               
               
                   
                 MusicPiceInterpreters.IDInterpreter ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPiceInterpreters.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MusicPieceListenContexts ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPieceListenContexts.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MuisicPiceRating ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MuisicPiceRating.IDMusicPiece 
               
               
                 WHERE 
                 (MusicPieceListenContexts.IDUser = @IDOfUser) AND 
               
               
                   
                 (MusicPieceListenContexts.IDMusicListenContext = 
               
               
                   
                 @IDOfTheMusicListenSelectedContext) AND 
               
               
                   
                 (MusicPiceInterpreters.IDInterpretationType = 
               
               
                   
                 @IDOfMainInterpreterType) 
               
               
                 ORDER BY 
                 MusicGenres.MusicGenre, 
               
               
                   
                 Interpreters.Interpreter, MusicPieces.MusicPieceName 
               
               
                   
               
             
          
         
       
     
         [0032]    In this SQL statement uses three parameters: 
         [0033]    @IDOfUser: Unique identifier associated to the specific user who created the classification. 
         [0034]    @IDOfTheMusicListenSelectedContext: This parameters represents the unique context identifier selected by the user to filter all of his contexts. 
         [0035]    @IDOfMainInterpreterType: Unique identifier of the main player or singer in the song. This parameter is used to help the query to avoid duplicated results. 
         [0036]    The next SQL statement illustrates how a combined musical play list containing only the matches from the information from two users based on the same context. This query is based on using the scheme shown in  FIG. 2 : 
         [0000]    
       
         
               
               
             
               
               
             
               
             
           
               
                   
               
             
             
               
                 SELECT 
                 MusicPieces.IDMusicPiece, 
               
               
                   
                 MusicGenres.MusicGenre, 
               
               
                   
                 Interpreters.Interpreter, 
               
               
                   
                 MusicPieces.MusicPieceName, 
               
               
                   
                 MusicPieceListenContexts.IDUser, 
               
               
                   
                 MusicPieceListenContexts.IDMusicListenContext, 
               
               
                   
                 MusicPiceInterpreters.IDInterpretationType 
               
               
                 FROM 
                 MusicGenres 
               
               
                   
                 RIGHT OUTER JOIN 
               
               
                   
                 MusicPieces ON 
               
               
                   
                 MusicGenres.IDMusicGenre = MusicPieces.IDMusicGenre 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 Interpreters 
               
               
                   
                 RIGHT OUTER JOIN 
               
               
                   
                 MusicPiceInterpreters ON 
               
               
                   
                 Interpreters.IDInterpreter = 
               
               
                   
                 MusicPiceInterpreters.IDInterpreter ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPiceInterpreters.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MusicPieceListenContexts ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPieceListenContexts.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MuisicPiceRating ON 
               
               
                   
                 MusicPieces.IDMusicPiece = MuisicPiceRating.IDMusicPiece 
               
               
                 WHERE 
                 (MusicPieceListenContexts.IDUser = @IDOfUser01) AND 
               
               
                   
                 (MusicPieceListenContexts.IDMusicListenContext = 
               
               
                   
                 @IDOfTheMusicListenSelectedContext) AND 
               
               
                   
                 (MusicPiceInterpreters.IDInterpretationType = 
               
               
                   
                 @IDOfMainInterpreter) AND (MusicPieces.IDMusicPiece IN 
               
             
          
           
               
                        (SELECT 
                 MusicPieces_1.IDMusicPiece 
               
               
                        FROM 
                 MusicPieces AS MusicPieces_1 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MusicPieceListenContexts AS 
               
               
                   
                 MusicPieceListenContexts_1 ON 
               
               
                   
                 MusicPieces_1.IDMusicPiece = 
               
               
                   
                 MusicPieceListenContexts_1.IDMusicPiece 
               
               
                        WHERE 
                 (MusicPieceListenContexts_1.IDUser = 
               
               
                   
                 @IDOfUser02) AND 
               
               
                   
                 (MusicPieceListenContexts_1.- 
               
               
                   
                 IDMusicListenContext = 
               
               
                   
                 @IDOfTheMusicListenSelectedContext))) 
               
             
          
           
               
                 ORDER  BY  MusicGenres.MusicGenre,  Interpreters.Interpreter, 
               
               
                 MusicPieces. MusicPieceName 
               
               
                   
               
             
          
         
       
     
         [0037]    This SQL statement uses four parameters: 
         [0038]    @IDOfUser 01 : Unique user identifier for first user. 
         [0039]    @IDOfUser 02 : Unique user identifier for second user. 
         [0040]    @IDOfTheMusicListenSelectedContext: This parameter corresponds to the unique context identifier which is used to obtain the correspondences between two users. 
         [0041]    @IDOfMainInterpreterType: Unique identifier of the main player or singer in the song. This parameter is used to help the query to avoid duplicated results. 
         [0042]    The next SQL statement illustrates how to obtain a music play list as result from combining and joining the classifications from two users give an specific common context. This query is based on using the scheme shown in  FIG. 2 : 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 SELECT 
                 MusicPieces.IDMusicPiece, 
               
               
                   
                 MusicGenres.MusicGenre, 
               
               
                   
                 Interpreters.Interpreter, 
               
               
                   
                 MusicPieces.MusicPieceName, 
               
               
                   
                 MusicPieceListenContexts.IDUser, 
               
               
                   
                 MusicPieceListenContexts.IDMusicListenContext, 
               
               
                   
                 MusicPiceInterpreters.IDInterpretationType 
               
               
                 FROM 
                 MusicGenres RIGHT OUTER JOIN 
               
               
                   
                 MusicPieces ON 
               
               
                   
                 MusicGenres.IDMusicGenre = MusicPieces.IDMusicGenre 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 Interpreters 
               
               
                   
                 RIGHT OUTER JOIN 
               
               
                   
                 MusicPiceInterpreters ON 
               
               
                   
                 Interpreters.IDInterpreter = 
               
               
                   
                 MusicPiceInterpreters.IDInterpreter ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPiceInterpreters.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MusicPieceListenContexts ON 
               
               
                   
                 MusicPieces.IDMusicPiece = 
               
               
                   
                 MusicPieceListenContexts.IDMusicPiece 
               
               
                   
                 LEFT OUTER JOIN 
               
               
                   
                 MuisicPiceRating ON 
               
               
                   
                 MusicPieces.IDMusicPiece = MuisicPiceRating.IDMusicPiece 
               
               
                 WHERE 
                 (MusicPieceListenContexts.IDUser IN (@IDOfUse01, 
               
               
                   
                 @IDOfUser02) AND 
               
               
                   
                 (MusicPieceListenContexts.IDMusicListenContext = 
               
               
                   
                 @IDOfTheMusicListenSelectedContext) AND 
               
               
                   
                 (MusicPiceInterpreters.IDInterpretationType = 
               
               
                   
                 @IDOfMainInterpreterType) 
               
               
                 ORDER 
                 MusicGenres.MusicGenre, 
               
               
                 BY 
                 Interpreters.Interpreter, MusicPieces.MusicPieceName 
               
               
                   
               
             
          
         
       
     
         [0043]    This sentence contains four parameters: 
         [0044]    This SQL statement uses four parameters: 
         [0045]    @IDOfUser 01 : Unique user identifier for first user. 
         [0046]    @IDOfUser 02 : Unique user identifier for second user. 
         [0047]    @IDOfTheMusicListenSelectedContext: This parameter corresponds to the unique context identifier which is used to obtain the correspondences between two users. 
         [0048]    @IDOfMainInterpreterType: Unique identifier of the main player or singer in the song. This parameter is used to help the query to avoid duplicated results. 
         [0049]    This invention includes a hierarchical approach to handle the musical classifications from the users. This approach allows to have always a classification even when the users only has the common classification such as genre, album, singer, etc. In other words, the default classification scheme is based on the common scheme where users classifies music by genre, player or signer, and album. 
         [0050]      FIG. 3  show the formula to calculate the musical compatibility index. The goal of this index is to reduce the complexity to a single numerical indicator representing the match music preferences between two users. This index is calculated as the ratio between the number of music songs having a high preference between user  1  and two, and the total number of music songs from user  1  having a high preference. The music matching compatibility between user  1  and  2  is calculated using this formula. 
         [0051]      FIG. 4  shows an example of a predefined context list based on activities and moods where users listen to music. Although this list may be too big, it is important to have a reasonable small list to allow the compatibility analysis among users. Another alternative is to allow users to create their own context lists and then, they can share this classification with other people using social networks or web services. The music content classified within personalized context can only be combined with users who used the same classification contexts. This list of context can be used efficiently only if each context has an unique identifier for being related with players, singers, albums, and music songs. 
         [0052]      FIG. 5  shows an entity-relationship diagram used to accomplish the persistency for the classification id associated to a specific music song for an specific user. This unique id relates the user who created the classification, the music song, the preference classification, and the relationships with the specific contexts. These relationships will allow the identification of how a music song has been classified by every user or to obtain the preference play list from an specific user from an specific context. 
         [0053]      FIG. 6  shows the definition of a class which can be implemented as a web service to offer:
       Add a new user, such a friend, for sharing and combining musical classifications.   Calculate the compatibility match index between two users.   Retrieve the playlist filtered using different criteria such as contexts, musical genres, etc.   Retrieve the list of friends from a specific user.   Associate contexts with play lists or singer, player, genre, or albums.   Retrieve classifications from other users   Assign a preference level for an specific interpreter   Assign a preference level for specific genre   Assign context where the user wants to listen to specific music or songs   Register a new interpreter, song, user, or player   Register a personalized context for an user       
 
         [0065]    This list shows some services that can be implemented using this invention.