AU2001271980A1 - Online playback system with community bias - Google Patents
Online playback system with community biasInfo
- Publication number
- AU2001271980A1 AU2001271980A1 AU2001271980A AU2001271980A AU2001271980A1 AU 2001271980 A1 AU2001271980 A1 AU 2001271980A1 AU 2001271980 A AU2001271980 A AU 2001271980A AU 2001271980 A AU2001271980 A AU 2001271980A AU 2001271980 A1 AU2001271980 A1 AU 2001271980A1
- Authority
- AU
- Australia
- Prior art keywords
- community
- preferences
- item
- null
- int
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Description
ONLINE PLAYBACK SYSTEM WITH COMMUNITY BIAS
TECHNICAL FIELD
This invention relates to database generation and data stream transmission, and more particularly to biased data stream transmission method according to a community of subscribers or fans enjoying similar tastes.
BACKGROUND ART
In an online environment, the demand for digital entertainment is limited by statute in the United States of America under the Digital Millennium Copyright Act (DMCA, Digital Millennium Copyright Act of 1998, Public Law 105-304). Legitimate providers of online entertainment must adhere to the DMCA and pay license fees for the copyrighted works broadcast over the Internet or other online environment. Otherwise, such providers are liable for copyright infringement.
The Digital Millennium Copyright Act (DMCA) addresses protections for copyrighted works transmitted online. The DMCA entitles websites that stream music to a statutory license to perform copyrighted sound recordings as long as they meet certain requirements. Compliance with these requirements by, among other ways: not streaming over a three-hour period, more than three songs or more than two in a row from the same recording, or four songs or more than three in a row from the same recording artist or anthology; and by transmitting songs in a noninteractive format by, for example, not allowing users to specifically create or request programming on demand or to hear programming at designated times. Additionally, compliance with the DMCA requires that advance song or artist playlists not be published.
In an online environment, the content provider may "narrowcast" the data feed to a single individual and still comply with the DMCA even though thousands of individual narrowcast transmissions are made simultaneously. For example, so long as each individual narrowcast does not violate the DMCA, compliance with the DMCA is maintained.
"Narrowcasting" is a term that may be new in the art. As a contrast to "broadcasting" where information is broadcast on a wide basis and generally available to anyone with a tuned receiver, "narrowcasting" arises from the individually addressable data packets used in TCP/IP protocol. The packets are addressed to individual computers and include almost all forms of data transmission over the Internet. Consequently, when broadcasting occurs on the Internet, it is generally composed of a bundle of narrowcast packets as each one must be individually addressed to the computers of the audience. This is true even though several computers are receiving the same content at the same time. Each computer must be individually addressed even though the packets are identical. When demand is high for Internet content such as a live performance or transmission, bandwidth may not be sufficient for all who request transmission.
Due to the nature of Internet communications and TCP/IP protocol, narrowcasting is one of the basic and easy ways in which to transmit information packets. Multicasting may also be used (See Bob Quinn, Killer Network Apps That Aren't Network Killers, Dr. Dobb's Journal October 1997), but has drawbacks due to technical obstacles in effecting a multicast on the open Internet. Other protocols (such as FTP) also exist.
Under the LAUNCHcast™ system (the subject of PCT International Application number WO 01/35667 Al which is incorporated herein by this reference thereto), each subscriber may "tune" his or her narrowcast by expressing preferences that are recorded and preserved in an account associated with the user/subscriber.
The LAUNCHcast™ system provides a means by which DMCA compliance can be maintained while biasing narrowcast transmissions according to audience/individual preferences. By soliciting, receiving, and recording an individual's preferences regarding (for example) a music data stream, LAUNCH Media, Inc. provides digital audio feed to a subscriber that both complies with the DMCA as well as catering to the individual's musical tastes. If the musical tastes of the individual are limited, additional music may be used to fill in "airtime" or "nettime" that cannot be filled with the individual's favorite songs as such transmission would violate the DMCA. Conversely, an individual with broad tastes could have very few works transmitted in the data stream that fall outside of the individual's tastes.
Very often, people who enjoy one type of music or artist also enjoy other types of music or artists so that an appearance of association between the two occur without an obvious causal link. For example, individuals who enjoy music by Barry Manilow might also enjoy the music of Neil Sedaka in a high percentage that may exceed random statistical occurrence. Consequently, when accompanied by a rating system or engine, individuals who enjoy Barry Manilow might welcome music by Neil Sedaka although they may have never heard music by Neil Sedaka before.
The present invention allows enhancement of narrowcast transmission for the listener's or consumer's enjoyment while maintaining compliance with the DMCA. By associating communities of listeners/consumers around specific artists or genres, subscribers or listeners of an online data stream entertainment service are provided with a more focused and enjoyable experience as the data stream is catered to their preference by using a community bias based upon those who enjoy such artists, an individual artist, genres, or an individual genre.
Note should be taken that the method described herein pertains not only to audio data streams, but any sort of data stream where preferences may be present, including video and multimedia. As entertainment data streams are particularly susceptible to strong personal preferences, the present invention resolves a need for providing dynamic accommodation of expressed preferences in a community of subscribers or listeners while complying with applicable copyright law.
Articles addressing multicasting include:
Indira Gandhi National Open University, Comparative analysis - TCP - UDP, published on the Internet at http://www.laynetworks.com/users/webs/tcp_udp.htm; and
Bob Quinn, Killer Network Apps That Aren't Network Killers, Dr. Dobb's Journal October 1997 also published on the Internet at http://www.ddj.com/articles/1997/9710/9710b/9710b.htm.
DISCLOSURE OF INVENTION
The present invention provides for a biased data stream that is biased according to those who prefer data streams of particular types. Using the example above, a community enjoying Barry Manilow could be used to bias a data stream towards both songs by Barry Manilow and those songs that the members of the Barry Manilow community enjoy. Consequently, through the use of preferences expressed by feedback of each individual member of the Barry Manilow community, a Barry Manilow-based radio station or data stream set emerges. Narrowcasting based upon such a biased data stream may then be subject to DMCA constraints so that no one narrowcast transmission violates the DMCA, yet the data stream transmission is biased according preferences expressed by the Barry Manilow community as a whole.
The biasing of such a data stream becomes more robust and more reliable with greater numbers of members and when such members express a large number of preferences regarding the type of music they enjoy.
Note should be taken that the term "music" as used herein is used as a shorthand for any data stream subject to taste or preference. Music data streams form a basic analogy from which all other data streams may be comparably
likened, unless otherwise indicated. Additionally, the use of Barry Manilow as an artist of preference is arbitrary and could be substituted by current, modern, or classical artists such as Melissa Etheridge, Karen Carpenter, Rosemary Clooney, Phil Harris, Hank Williams, Led Zeppelin, Luciano Pavarotti, or Spike Jones.
BRIEF DESCRIPTION OF DRAWINGS
Figure 1 shows an exemplary page for an artist, in this case Tori Amos.
Figure 2 shows a similar exemplary artist page with the Fan Station option highlighted.
Figure 3 is an isolated view of the Fan Station option shown in Figures 1 and 2.
Figure 4 is an enlarged view of Figure 3.
Figure 5 shows an alternative exemplary page for an artist, in this case Tori Amos.
Figure 6 shows a similar alternative exemplary artist page with the Fan Station option highlighted.
Figure 7 is an isolated view of the alternative Fan Station option shown in Figures 5 and 6.
Figure 8 is an enlarged view of Figure 7.
Figure 9 is a diagrammatic view of steps taken in the present invention
MODE(S) FOR CARRYING OUT THE INVENTION
The detailed description set forth below in connection with the appended drawings is intended as a description of presently-preferred embodiments of the invention and is not intended to represent the only forms in which the present invention may be constructed and/or utilized. The description sets forth the functions and the sequence of steps for constructing and operating the invention in connection with the illustrated embodiments. However, it is to be understood that the same or equivalent functions and sequences may be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of the invention.
The present invention resides in the establishment of a community based upon shared musical tastes. Upon receiving and recording a statistically significant number of preferences and feedback regarding songs, those who prefer an artist may be distinguished from other users who may form a background against which fans of such an artist are distinguished.
Using as an example the contemporary artist Tori Amos, Figures 1 - 8 show alternative commercial presentations of the present invention. As for almost all artists in its library, LAUNCH Media maintains home pages for artists from which users/subscribers may select links to additional information, including the purchase of works by the artist. As an option on the home page, interested individuals may select to hear an audio stream based upon the preferences of users who like that artist, in this case, who like Tori Amos.
By selecting the "listen" or "watch" links in the Fan Station section of the Tori Amos home page (Figures 3 and 4 and Figures 7 and 8), individuals can receive data streams biased according to a community that likes Tori Amos. As the Tori Amos community may tend to share other musical tastes, the data stream that results from the Fan Station link selection may also entertain the individual so selecting the link as that individual's tastes may correspond to the tastes of the Tori Amos community as a whole just as it did with the artist Tori Amos.
In order to determine a community's preferences, only those individuals in the subscriber database who are "fans" of the artist are used to determine the community's preferences. The term "fan" may be arbitrarily defined as those individual subscribers who rate Tori Amos as a 70 or more on a scale of 100 with 0 being a least favorite artist
and 100 being a most favorite artist. The choice is arbitrary but needs to reflect a bias sufficient to entertain, or even delight, those who choose to listen to the community channel.
Upon determining the community of interest (Tori Amos fans, for example), collateral data regarding other preferences are gathered from those same individuals who are designated fans of Tori Amos. For example, in one embodiment, for each member of the community, all other rated artists besides Tori Amos are inspected. Those artists who also scored 70 or higher are noted and temporarily stored in a database. After all of the member accounts of the community have been polled, those artists who are present in 70% of the accounts may be chosen as artists whose music will also be transmitted as secondary musical selections in narrowcast to those who choose the Tori Amos Fan Station.
In an alternative embodiment, the collateral artists may be chosen according to popularity with no floor threshold (of 70% as in the embodiment above, or otherwise). In another alternative embodiment, songs rated by the community may take precedent over artist ratings such that individual songs are selected for narrowcast transmission from community preferences as opposed to portfolios of songs according to different artists (again according to community preferences).
In this way, a community may be defined and its preferences determined. Of course, other data streams subject to preference or taste may be substituted for the music/audio data stream as set forth in the example above, including video, multimedia, or otherwise.
The present invention is shown diagrammatically in Figure 9. As shown in Figure 9, the present invention 900 provides steps for achieving the community bias system in order to provide data streams consistent with such community preferences . The online playback system with community bias 900 of the present invention begins first with establishing a statistically-significant database 910. This database may be a database comprised of all users of a system such as LAUNCHcast™ or the like. Such a statistically-significant database has entries with artistic preferences of the individual subscribers. Such preferences may include artists and songs preferred and not preferred (liked and disliked), as well as albums that the subscribers or recipients prefer or do not prefer.
The entire subscriber community generally defines the artistic or preferential "space" in which the present invention operates. Using such a geometrical point of view, certain sub-areas of the artistic database may then be the subject of the community preference system 900 set forth herein. In order to achieve the present invention, certain delimitations must be made as to what defines a community, and the preferences expressed by the subscriber/recipient serve in this capacity.
Statistical significance is a relative term. The goal of the present invention is to provide entertainment or other desired data streams to the recipients. Here, the data streams are songs or music videos. However, other data streams subject to subscriber databases where preferences are expressed for the content or type of data stream may also put to good use the present invention and are within the scope of the present invention and of the claims set forth herein. Statistical significance arises in the form of certain threshold criteria by which certain preferences are deliminated and/or distinguished from others. Generally, those who listen to country music may not want to also listen to heavy metal music. Those who would prefer rap may also like to listen to hip-hop music. Those who enjoy classical music may not enjoy swing or polka music. Depending upon the available databases of both subscribers and data streams, certain subgenres may be available such as all-Mozart or all-Beethoven community channels.
While feedback may be obtained from the recipients of the community-biased data streams, generally the present invention uses the rule of thumb of approximately "70" as the rating threshold by which a person is considered to be a "fan" of the artist or the like. The "70" rating could be interpreted as indicating that the artist is in the top one-third
(1/3) of the individual's preferred artists. By dwelling in this top 1/3 area, a community may be defined, although the exact numerical criteria may depend upon the range of the "space" available for use in the present invention, as well as the number of subscribers and data streams. Generally, the broader and more numerous the original and primary database of subscribers and datastreams, the higher and more exclusive the threshold rating may be.
Upon establishing a statistically-significantly database 910, certain criteria must be established for determining a community's bias 920. Upon choosing that threshold, the statistically-significant database 910 is then filtered, sorted, or evaluated, to determine what trends are present with respect to fan or subscriber preferences. As mentioned above, the rating of an artist of approximately above 70 on a scale of 0 - 100 is considered to be a relevant and significant threshold. The use of artists to define a genre or a consistent theme with respect to music generally arises from the fact that artists tend to write the same kind of music or the same type of music much in the same way as Vivaldi and Mozart had their own separate and distinct styles.
Upon determining the trends in the fan community 920, a selection of individual stream elements may be made 930. Such stream elements are generally in conformance with two criteria: the community bias trends established in step 920, as well as any applicable copyright law. In the United States, the Digital Millenium Copyright Act (DMCA) generally controls such on-line transmissions of copyright works such as sound recordings and audio-visual works.
The stream selection step 930 may be achieved in two modes of transmission. One mode would be a narrowcast mode where different individual streams are transmitted to different recipients who have chosen and are currently listening to a community fan station. Alternatively, one transmission stream could be distributed simultaneously to all current listeners of the fan station/community channel. Both of these transmission methods are in compliance with the DMCA and provide alternative means by which the present invention 900 may be realized.
When an individual hears a song on a community channel that he or she ("he") would like to rate, the rating tool may be made available to him via the player tool. The rating so made by the individual is then recorded in his or her preferential settings as a subscriber to the database 910. The user's ratings may indirectly affect the data stream selection 930 as it may form part of the database used to determine the community and the stream selected for the corresponding channel. The user must be a fan of the artist, for example, to effect that artist's community channel.
Once the stream selection process 930 has been performed, the stream is then broadcast to the recipient(s)/subscriber(s) 940. The recipients then enjoy the receipt of the data streams and may be exposed to new music according to their own expressed preference indicated by subscribing to the fan station. Consequently, an individual who likes country music and chooses a Hank Williams community channel may be exposed to music by Porter Wagner which he or she may also like. The same is similarly true for contemporary musical style such as rap and hip-hop, as well as musical styles developed in the past, currently under development, or to be developed in the future.
In order to maintain the relevance of the community channel/fan station, the trend determining step 920, stream selection step 930 may be re-engaged after a certain period of time ranging from one week to several months 950. This allows for those who enjoy a certain type of music to benefit from currently-popular related styles and to allow the stream selection process 930 to be updated to reflect current tastes.
While the present invention has emphasized entertainment in the form of data streams relating to songs, sound recordings, and audio visual work such as music videos, the present invention is also applicable to data stream transmission systems that must comply with a regulatory scheme (such as the DMCA) in view of express preferences for content and/or type (such as the music individual persons like and dislike). Certain automated processes may benefit from the present invention, as machine-implemented processes may operate under a wide variety of conditions and
benefit from the transmission of data streams such as information- and/or content-dependent data streams dependent upon a wide variety of factors, including geographic location, climate, other environmental conditions, or otherwise. For example, the data streams may be sets of suggested instructions for artificially-intelligent systems operating under situations requiring problem-solving abilities.
The source code listing sets forth with particularity certain software methods by which one embodiment of the present invention may be achieved. The listing is believed to provide a full and complete disclosure of one embodiment of the present invention.
While the present invention has been described with reference to a preferred embodiment or to particular embodiments, it will be understood that various changes and additional variations may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention or the inventive concept thereof. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to particular embodiments disclosed herein for carrying it out, but that the invention includes all embodiments falling within the scope of the appended claims.
INDUSTRIAL APPLICABILITY
It is an object of the present invention to provide more entertaining online data feeds.
It is another object of the present to provide more entertaining data streams by providing a biased data stream according to a listener's/consumer's preferences.
It is yet another object of the present invention to provide a more entertaining data stream by biasing a data stream according to a community expressing preferences for significant components of the data stream, such as an artist or genre.
It is yet another object of the present invention to provide a community biased music data stream according to a community expressing preferences for music carried by said data stream, such as an artist or genre.
These and other objects and advantages of the present invention will be apparent from a review of the following specification and accompanying drawings.
TEXT LISTING OF SOURCE CODE
The following copyrighted source code provides a realizable embodiment of the present invention and is presented by way of example and not by limitation. Other source code and compilations thereof may implement the present invention without duplicating the following source code.
package com.launch.rm.lc.SimilaritiesEngine; import java.util.Hashtable; import j ava.util.Enumeration; import j ava.ut.il. Vector;
/**
* This class finds a bunch of items that a group of users have
* in common that they've rated highly. The items are sorted from
* highest group rating to lowest group rating.
* @author JeffBoulter
* @author John Veilleux */ public class Consensus
{ private Hashtable contenders = new Hashtable(); private Vector finalistlDVec = new Vector(); private int itemID = -1; private int ratingCount = 0;
/**
* Creates an empty consensus. */ public Consensus()
{
}
/**
* Creates a consensus with an item that should be excluded from
* the users' ratings. *
* @param itemID the ID of the item to exclude */ public Consensus( int itemID )
{ this.itemlD = itemID;
}
/**
* Creates a consensus where the list of items generated doesn't
* have to exclude a specific item. *
* @param userRatings the user ratings */ public Consensus( Vector userRatings )
{ addRatings( userRatings );
}
/**
* Creates a consensus where the given item must be excluded
* from the list of items that's generated. *
* @param itemID the ID of the item to exclude
* @param userRatings the user ratings */ public Consensus( int itemID, Vector userRatings )
{ this.itemlD = itemID; addRatings( userRatings ); }
/**
* Polls the group of users for their final list of items. *
* @return the list of item ID's ordered from highest to lowest
* group rating
*/ public OrderedList poll()
{
OrderedList result = new OrderedList(); Integer ratingltemID = null; GroupRating groupRating = null; for ( int i = finalistIDVec.size() - 1; i >= 0; i - )
{ ratingltemID = (Integer) finalistIDVec.elementAt( i ); groupRating = (GroupRating) contenders.get( ratingltemID ); result.add( groupRating.get(), groupRating ); } return result;
/**
* Gets the total number of ratings within the pool of users.
*
* @return the rating count */ public int getRatingCount()
{ return ratingCount;
}
/**
* Adds ratings to the consensus by users who will determine the
* final list of items. *
* @param userRatings the vector containing each user's
* ratings */ public void addRatings( Vector userRatings )
{
Rating r; r = null; for ( int i = userRatings.size() - 1; i >= 0; i - )
{ r = (Rating) userRatings.elementAt( i ); if( r.itemID != itemID )
{ add( r );
} } }
/**
* Adds a rating to be used in the calculation of a contender
* item's group rating. Once an item gets a specified minimum
* number of ratings to calculate a group rating, it gets put
* into the finalist list.
*/ private void add( Rating r )
{
Integer ratingltemID = new Integer( r.itemlD );
GroupRating contenderGR = (GroupRating) contenders.get( ratingltemID ); if ( contenderGR == null )
{ contenderGR = new GroupRating( r.itemlD ); contenders.put( ratingltemID, contenderGR );
} else if ( contenderGR. getNumRatingsO == ( SimilaritiesConstants.MIN_FANS_FOR_RECOMMENDED_ITEM - 1 ) )
{ finalistIDVec.addElement( ratingltemID );
} ratingCount ++; contenderGR.add( r );
package com.launch.rm.lc.SimilaritiesEngine; import com.launch.rm.lc.PlaylistGenerator.Constants; import j ava.util. Vector; import java.io.*; import java.sql.ResultSet;
/**
* This class generates a file containing items and their similar
* items. This is for debug purposes only; components used in the
* calculations of the similarities are printed out.
*
* @author John Veilleux */ public class DataFileGenerator
{ private final static int MAXJTEMS_TO_WRITE = 100; private final static int MAX_SIMILAR_ITEMS_PER_ITEM = 10; private final static String OUTPUT_FILENAME_ROOT = "WexportW"; private final static String OUTPUT_FILENAME_SUFFIX = "Similarities.txt"; private final static String TYPE_STRING[] = { "Artist", "Song", "Album", "Artist" }; static
{
System.setErr( System.out );
}
public static void main( String args[] )
{
Integer itemID; Byte itemType; Byte ratingType; SimilaritiesEngine engine; Vector itemID Vec; OrderedList groupRatingList; ResultSet rs; PrintWriter writer; GroupRating gRating; double gRatingValue; String headerStrl; String headerStr2; String itemSQL; String ratingSQL; String itemParamStrl; String itemParamStr2; String ratingParamStrl; String ratingParamStr2; itemID = null; itemType = null; ratingType = null; engine = null; itemlDVec = new Vector(); groupRatingList = null; rs = null; writer = null; gRating = null; gRatingValue = 0;
headerStrl = null; headerStr2 = null; itemSQL = null; ratingSQL = null; itemParamStrl = null; itemParamStr2 = null; ratingParamStrl = null; ratingParamStr2 = null; try
{ switch ( args.length )
{ case 2 ratingType = new Byte( args[ 1 ] ); if ( ratingType.byteValue() < Constants. ITEM_TYPE_SONG || ratingType.byteValue() > Constants.ITEM_TYPE_ARTIST )
{ throw new Exception( "Rating type must be " + Constants.ITEM_TYPE_SONG + ", " + Constants. ITEM_TYPE_ALBUM + ", or " + Constants.ITEM _ YPE_ARTIST + "." );
} case 1 itemType = new Byte( args[ 0 ] ); if ( itemType.byteValue() < Constants.ITEM_TYPE_SONG || itemType.byteValue() > Constants.ITEM_TYPE_ARTIST )
{ throw new Exception( "Item type must be " + Constants.ITEM_ TYPE_SONG + ", " + Constants.ITEM_TYPE_ALBUM + ", or " + Constants.ITEM_TYPE_ARTIST + "." );
} break; default throw new InstantiationExceptionQ; } if ( ratingType != null && itemType.byteValue() — ratingType.byteValue() )
{ throw new Exception( "Item type cannot be equal to rating type." );
}
Debugger.out( "DataFileGenerator started." ); Debugger.resetTimer( "DataFileGenerator" ); switch ( itemType.intValue() )
{ case Constants.ITEM_TYPE_SONG itemSQL = "exec sp_lcGetSongDetail_xsxx "; itemParamStrl = "title"; itemParamStr2 = "artist";
- π -
break; case Constants.ITEM_TYPE_ALBUM itemSQL = "exec sp_lcGetAlbumDetail_xsxx "; itemParamStrl = "albumName"; itemParamStr2 = "artistName"; break; case Constants.ITEM_TYPE_ARTIST itemSQL = "exec sp_lcGetArtistInfo_xsxx "; itemParamStrl = "artist"; break; } if ( ratingType == null )
{ engine = new SimilaritiesEngine( itemType.byteValue(), MAX_ITEMS_TO_WRITE ); writer = new PrintWriter( new FileWriter( OUTPUT_FILENAME_ROOT + TYPE_STRTNG[ itemType.intValueQ ] + OUTPUT_FILENAME_SUFFIX ) ); headerStrl = TYPE_STRING[ itemType.intValue() ] + "s similar to ("; ratingSQL = itemSQL; ratingParamStrl = itemParamStrl; ratingParamStr2 = itemParamStr2;
} else
{ engine = new SimilaritiesEngine( itemType.byteValue(), ratingType.byteValueO, MAX_ITEMS_TO_WRITE ); writer = new PrintWriter( new FileWriter( OUTPUTJFILENAMEJ .OOT + TYPE_STRING[ itemType.intValue() ] + TYPE_STRING[ ratingType.intValue() ] + OUTPUT_FILENAME_SUFFIX ) ); headerStrl = TYPE_STRING[ ratingType.intValue() ] + "s similar to " + TYPE_STRTNG[ itemType.intValue() ] + " ("; switch ( ratingType.intValue() )
{ case Constants.ITEM_TYPE_SONG ratingSQL = "exec sp_lcGetSongDetail_xsxx "; ratingParamStrl = "title"; ratingParamSrr2 = "artist"; break; case Constants.ITEM _TYPE_ALBUM ratingSQL = "exec sp_lcGetAlbumDetail_xsxx "; ratingParamStrl = "albumName"; ratingParamStr2 = "artistName"; break; case Constants.ITEM_TYPE_ARTIST ratingSQL = "exec sp_lcGetArtistInfo_xsxx ";
ratingParamStrl = "artist"; break; } } itemID Vec = engine.getItemIDs(); for ( int i = 0; i < itemIDVec.size(); i ++ )
{ itemID = (Integer) itemIDVec.elementAt( i ); headerStr2 = headerStrl + itemID + ") "; rs = DBConnection.executeSQL( itemSQL + itemID, false ); if ( rs.next() )
{ headerStr2 += rs.getString( itemParamStrl ); if ( itemParamStr2 != null )
{ headerStr2 += " by " + rs.getString( itemParamStr2 );
} } rs.close(); writer.println( headerStr2 ); groupRatingList = engine.getSimilar( itemID, MAX_SIMILARJTEMS_PER_ITEM ); for ( int j = 0; j < groupRatingList.size(); j ++ )
{ gRating = (GroupRating) groupRatingList.elementAt( j ); gRatingValue = groupRatingList. valueAt( j ); writer.print( "\t" + gRating.toBigStringO + "\t" ); rs = DBConnection.executeSQL( ratingSQL + gRating, false ); if( rs.next() )
{ writer.print( rs.getString( ratingParamStrl ) ); if ( ratingParamStr2 != null )
{ writer.print( "\t" + rs.getString( ratingParamStr2 ) );
} } rs.close(); writer.println(); } writer.printb();
Debugger.out( "Generated " + groupRatingList.size() + " similarities for item " + itemID );
}
writer.close();
Debugger.outTimerMIN( "DataFileGenerator", "DataFileGenerator done." );
} catch ( InstantiationException ie )
{
System.out.printlnO; System.out.println( "usage:" );
System.out.println( " java DataFileGenerator [item type]" ); System.out.println( " java DataFileGenerator [item type] [rating type]" );
} catch ( Exception e )
{ e.printStackTrace();
}
package com.launch.rm.lc.SimilaritiesEngine; import com.inettds.TdsDriver; import com.launch.rm.lc.PlaylistGenerator.Constants; import java.sql.*; import java.util.*;
/**
* A database connection. Carries out database operations such as executing
* SQL queries. There is only one static connection object, which can
* create multiple statements for executing SQL and return multiple
* result sets.
* @author Jeff Boulter
* @author John Veilleux */ public class DBConnection
{ private final static String DEFAULT_CONN D = "DEFAULT"; private static Driver dbDriver = null; private static Hashtable connHash = new HashtableQ; private static Hashtable connectStrHash = new HashtableQ; static
{ connectStrHash.put( DEFAULT_CONN_ID, "jdbc:inetdae:" + Constants.DB_SERVER
+ Constants.DB_PORT + "?sql7=true&database=" + Constants.DB_DBNAME + "&user="
+ Constants.DB JSERJSLAME + "&password=" + Constants.DB_PASSWORD ); }
* Adds a database connection ID and info to the pool.
*
* @param connlDStr the ID of the new connection
* @param connectSfr the connection info */ public final static void addConnection( String connlDStr, String connectStr )
{ connectStrHash.put( connlDStr, connectStr );
}
/**
* Initializes the Connection object and adds it to the pool,
* or does nothing if the object is already initialized,
* then returns it. *
* ©exception SQLException if a connection error occurs */ private final static Connection initConnection( String connlDStr ) throws SQLException
{
Connection conn;
String url; conn = (Connection) connHash.get( connlDSfr ); url = (String) connectStrHash.get( connlDStr ); if ( dbDriver == null )
{ dbDriver = new com.inet.tds.TdsDriver();
} if ( dbDriver != null && url != null && ( conn == null || conn.isClosed() ) )
{ conn = dbDriver.connect( url, null ); connHash.put( connlDStr, conn ); } return conn;
/**
* Executes an SQL query.
*
* @param sql the query to execute
* @param printSQL detennines whether or not to print debug info
*
* @return the result set for the query, or null if
* an error occurs
*/ public final static ResultSet executeSQL( String sql, boolean printSQL )
{ return executeSQL( DEFAULT_CONN_ID, sql, printSQL );
}
/** * Executes an SQL query.
* @param sql the query to execute
* @param printSQL determines whether or not to print debug info
* ©return the result set for the query, or null if
* an error occurs
*/ public final static ResultSet executeSQL( String connlDStr, String sql, boolean printSQL )
{
Connection conn; ResultSet rs; Statement st; conn = null; rs = null; st = null;
// if we don't have a query, don't run i — it'll hang if( sql.length() <= 0 )
{
System.err.println( newjava.util.Date() + " DBConnection.executeSQL: can't run empty ry." ); return null;
} if ( printSQL )
{
System.out.printlh( "Running SQL: " + sql );
} try
{ conn = initConnection( connlDStr ); st = conn.createStatement(); st.execute( sql ); rs = st.getResultSet();
} catch ( SQLException sqle )
{
System. err.println( new java.util.Date() + " Error running SQL: " + sql ); sqle.printStackTrace(); } return rs;
}
/**
* Executes an SQL update. *
* @param sql the update to execute
* @param printSQL determines whether or not to print debug info */ public final static void executeUpdate( Sfring sql, boolean printSQL )
{ executeUpdate( DEFAULT_CONN_ID, sql, printSQL );
}
* Executes an SQL update.
*
* @param sql the update to execute
* @param printSQL determines whether or not to print debug info */ public final static void executeUpdate( Sfring connlDStr, Sfring sql, boolean printSQL )
{
Connection conn; Statement st; conn = null; st = null;
// if we don't have a query, don't run it— it'll hang if( sql.length() <= 0 )
{
System. err.println( new java.util,Date() + " DBConnection.executeUpdate: can't run empty SQL query." ); return; } if ( printSQL )
{
System.out.println( "Running SQL: " + sql );
} try { conn = initConnection( connlDStr ); st = conn.createStatementQ; st.executeUpdate( sql );
} catch ( SQLException sqle )
{
System. err.println( new java.util.DateQ + " Error running SQL: " + sql ); sqle.printStackTraceQ;
}
/#*
* Gets a DBPreparedStatement object given an SQL query.
*
* @param sql the query to prepare *
* @return the prepared statement *
* ©exception SQLException if a database error occurs */ public final static PreparedStatement prepareStatement( String sql ) throws SQLException
{ return prepareStatement( DEFAULT_CON _ID, sql );
}
/**
* Gets a DBPreparedStatement object given an SQL query.
*
* @param sql the query to prepare *
* ©return the prepared statement
*
* ©exception SQLException if a database error occurs */ public final static PreparedStatement prepareStatement( Sfring connlDSfr, Sfring sql ) throws SQLException
{
PreparedStatement ps; Connection conn; ps = null; conn = initConnection( connlDSfr ); if ( conn != null )
{ ps = conn.prepareStatement( sql );
} return ps;
* Closes a single database connection. It is removed from
* the pool of connections.
*
* ©param connlDStr the connection ID */ public final static void closeConnection( Sfring connlDStr )
{
Connection conn; conn = (Connection) connHash.get( connlDStr ); try { connHash.remove( connlDSfr ); if ( conn != null )
{ conn.closeO;
} } catch ( Exception e )
{ e.printStackTrace();
}
/**
* Closes all database connections in the pool.
*/ public final static void closeAHConnections()
{
Connection conn; Sfring connlDSfr; conn = null; connlDStr = null; for ( Enumeration enum = connHash.keysQ; enum,hasMoreElements(); ) { try { connlDSfr = (Sfring) enum.nextElementQ; conn = (Connection) connHash.get( connlDSfr ); connHash.remove( connlDStr ); conn.close();
} catch ( Exception e )
{ e.printStackTrace();
}
package com.Iaunch.rm.lc.SimilaritiesEngine; import java.util.Hashtable; import java.ro.*;
/**
* This class handles all debugging functions, such as debug output,
* for the SimilaritiesEngine package. *
* ©author John Veilleux */ public class Debugger
{ private static Hashtable timerHash = new Hashtable(); private static PrintStream outSfream = new PrintSfream( System.out ); static
{ if ( SimilaritiesConstants.DEBUG && SimilaritiesConstants.LOGFILE )
{ try
{ outSfream = new PrintSfream( new FileOutputSfream( "SimilaritiesLog.txt" ) );
} catch ( Exception e )
{
System.err.println( "Could not create log file...debug info will be printed to standard out." );
} }
* Outputs the given message if debug mode is on. *
* ©param message the message to print */ public final static void out( Sfring message )
{ if ( SimilaritiesConstants.DEBUG )
{ outSfream.println( "DEBUGGER: " + message );
} }
/**
* Outputs the given message with the current timer value in
* both milliseconds and minutes if debug mode is on. *
* ©param timerKey the timer ID
* ©param message the message to print */ public final static void outTimer( Object timerKey, Sfring message )
{ if ( SimilaritiesConstants.DEBUG )
{ if ( timerHash.get( timerKey ) != null )
{
outSfream.println( "DEBUGGER (" + getTimerMS( timerKey ) + " MS or " + getTimerMIN( timerKey ) + " MIN): " + message );
} else { outStream.println( "DEBUGGER (NO TIMER FOUND): " + message );
}
}
/**
* Outputs the given message with the current timer value in
* milliseconds if debug mode is on.
*
* ©param timerKey the timer ID
* ©param message the message to print */ public final static void outTimerMS( Object timerKey, String message )
{ if ( SimilaritiesConstants.DEBUG )
{ if ( timerHash.get( timerKey ) != null )
{ outStream.printin( "DEBUGGER (" + getTimerMS( timerKey ) + " MS): " + message );
} else
{ outStream.println( "DEBUGGER (NO TIMER FOUND): " + message ); }
}
/**
* Outputs the given message with the current timer value in
* minutes if debug mode is on.
*
* ©param timerKey the timer ID
* ©param message the message to print */ public final static void outTimerMIN( Object timerKey, Sfring message )
{ if ( SimilaritiesConstants.DEBUG )
{ if ( timerHash.get( timerKey ) != null )
{ outStream.println( "DEBUGGER (" + getTimerMIN( timerKey ) + " MIN):" + message );
} else
{ outSfream.println( "DEBUGGER (NO TIMER FOUND): " + message ); }
/**
* Resets the timer.
*
* ©param timerKey the timer ID
*/ public final static void resetTimer( Object timerKey )
{ timerHash.put( timerKey, new Long( System.currentTimeMillis() ) );
}
/**
* Gets the timer's current value in milliseconds.
*
* ©param timerKey the timer ID *
* ©return the timer's value in milliseconds */ public final static long getTimerMS( Object timerKey )
{
Long timerMS; timerMS = (Long) timerHash.get( timerKey ); return System.currentTimeMillis() - timerMS.IongValueQ;
/**
* Gets the timer's current value in minutes. *
* ©param timerKey the timer ID *
* ©return the timer's value in minutes */ public final static int getTimerMIN( Object timerKey )
{
Long timerMS; timerMS = (Long) timerHash.get( timerKey ); return (int) ( ( System.currentTimeMillisQ - timerMS.IongValueQ ) / 60000 );
package com.launch.rm.lc.SimilaritiesEngine;
/**
* This class calculates the group rating for a single item. The
* value is calculated by multiplying the total number of ratings
* by the sum of the average of the ratings with some specified
* offset. *
* ©author Jeff Boulter
* ©author John Veilleux */ public class GroupRating
{ private int itemID; private int numRatings = 0; private int ratingsSum = 0; private double value = 0; private double average = 0; private boolean stale = true;
/**
* Creates a GroupRating object.
*
* ©param itemID the item ID */ public GroupRating( int itemID )
{ this.itemlD = itemID;
}
/**
* Gets the item ID associated with this group rating. *
* ©return the item ID */ public int getItemID()
{ return itemID;
}
/**
* Adds a rating to be used in the calculation of this object's
* value. *
* ©param r the rating */ public void add( Rating r )
{ numRatings ++; ratingsSum += r.value; stale = true;
}
/#*
* Gets the final value of this object. If the value hasn't
* been calculated yet, it is calculated and then returned. *
* ©return this object's value
*/ public double get()
{ if ( stale )
{ calculate();
} return value;
}
* Gets the number of ratings added to this object.
*
* ©return the rating count */ public int getNumRatingsQ
{ return numRatings;
}
/**
* Gets a String representation of this object. *
* ©return the String description */ public Sfring toStting()
{ return Sfring.valueOf( itemID );
}
/**
* Gets a more complete Sfring representation of this object. *
* ©return the String description */ public String toBigSfring()
{ return "itemID: " + itemID + ", # of ratings: " + numRatings + ", sum of ratings: " + ratingsSum + ", average: " + averageQ + ", score: " + get(); }
/*#
* Gets the average value of all of this object's ratings. *
* ©return the rating average */ private double averageQ
{ if ( stale )
{ if ( numRatings <= 0 )
{ average = 0;
} else
{ average = ( (double)ratingsSum ) / ( (double)numRatings ); }
return average; }
/**
* Calculates the value for this object.
*/ private void calculate()
{ value = numRatings * ( averageQ + SimilaritiesConstants.GR_AVG_OFFSET ); stale = false; }
package com.launch.rm.lc.SrmilaritiesEngine; import java.util. Vector;
/**
* This class represents a list of OrderedElement objects. They
* are sorted from highest to lowest value using quicksort. The
* sorting is done on demand whenever any information contained in
* this object is accessed.
*
* ©author Jeff Boulter
* ©author John Veilleux */ public class OrderedList
{ private Vector list; private boolean sorted = false;
/**
* This inner class represents an element used by OrderedList. It contains
* two fields that are accessed directly: a value and an associated
* object. OrderedList sorts these objects by the value field. */ private class OrderedElement
{ private double value; private Object thing;
/**
* Creates an OrderedElement object.
*
* ©param value this object's value
* ©param thing the object associated with the given value */ private OrderedElement( double value, Object thing )
{ this.value = value; this. thing = thing; }
/**
* Creates an OrderedList object. */ public OrderedListQ
{ list = new VectorQ;
}
/#*
* Creates an OrderedList object with an initial size. *
* ©param size the initial size
*/ public OrderedList( int size )
{ list = new Vector( size );
}
/**
* Creates an OrderedList object with an initial size and a
* capacity increment.
*
* ©param size the initial size
* ©param capacitylncrement the capacity increment */ public OrderedList( int size, int capacitylncrement )
{ list = new Vector( size, capacitylncrement );
}
/**
* Gets the object at the specified index. *
* ©param int the index position of the object *
* ©return the object, or null if no object could be
* retrieved at the given index */ public Object elementAt( int i )
{
Object obj = null; OrderedElement e = null; if ( ! sorted )
{ sortQ;
} e = (OrderedElement) list.elementAt( i ); if( e != null )
{ obj = e.thing;
} return obj;
/**
* Gets the value at the specified index. *
* ©param i the index position of the value *
* ©return the value, or null if no value could be
* retrieved at the given index */ public double valueAt( int i )
{ double value = 0; OrderedElement e = null; if ( ! sorted )
{ sort();
}
e = (OrderedElement) list.elementAt( i ); if( e !=null )
{ value = e. value;
} return value;
}
/**
* Gets the number of elements in the list.
*
* ©return the list size */ public int size()
{ return list.size();
}
/**
* Truncates the list to the specified size. Nothing happens
* if the list is already equal to or smaller than the given
* size. *
* ©param size the maximum size */ public void frimToMaximumSize( int size )
{ if( ! sorted )
{ sort();
} if ( Iist.size() > size )
{ list.setSize( size );
} }
/**
* Gets this list as a Vector of the objects associated with
* each element in this list. *
* ©return the Vector of objects */ public Vector asVector()
{
Vector result = new Vector(); if ( ! sorted )
{ sortQ;
} for ( int i = 0; i < listsizeQ; i ++ )
{ result.addElement( elementAt( i ) );
}
return result; }
/**
* Gets a String representation of this object. *
* ©return the String description */ public String toSfringQ
{
Sfring result = "("; if ( Isorted )
{ sort();
} for ( int i = 0; i < list.size(); i ++ )
{ result += elementAt( i ) + ", ";
} result += ")"; return result;
}
/**
* Adds a value/object pair to the list. *
* ©param value the value
* ©param object the object */ public void add( double value, Object toStore )
{ list.addElement( new OrderedElement( value, toStore ) ); sorted = false;
/**
* Removes an element from the list. *
* ©param index the index of the element to remove */ public void removeElementAt( int index )
{ list.removeElementAt( index );
}
/**
* Sorts this object. */ private void sortQ
{ sort( list, 0, listsizeQ - 1 ); sorted = true;
/**
* Performs quick sort on a vector. *
* ©param a the vector to sort
* ©param from the starting index for the sort
* ©param to the ending index for the sort */ private final static void sort( Vector a, int from, int to )
{ int i = from; int j =to;
OrderedElement center = null; OrderedElement temp = null; if(a==null||a.size()<2)
{ return;
} center = (OrderedElement) a.elementAt( ( from + to ) / 2 ); do
{ while ( i < to && center.value < ( (OrderedElement) a.elementAt( i ) ).value )
{ i++;
} while ( j > from && center.value > ( (OrderedElement) a.elementAt( j ) ).value ) { j-s
} if(i<j) {
// swap elements temp = (OrderedElement) a.elementAt( i ); a.setElementAt( a.eIementAt( j ), i ); a.setElementAt( temp, j ); } if(i<=j)
{ i++; j-; }
} while(i<=j ); if(from<j )
{ sort( a, from, j );
} if(i<to)
{ sort( a, i, to );
}
package com.launch.rm.lc.SimilaritiesEngine;
* This class represents a rating. It includes three fields: an item
* ID, a user ID, and a value. The fields are accessed directly. *
* ©author Jeff Boulter
* ©author John Veilleux */ public class Rating
{ public int itemID; public int userlD; public byte value;
/**
* Creates a Rating object.
*
* ©param itemID the ID of the item this rating is for
* ©param userlD the ID of the user who created the rating
* ©param value the actual rating value */ public Rating( int itemID, int userlD, byte value )
{ this.itemlD = itemID; this.userlD = userlD; this.value = value;
}
/**
* Gets a Sfring representation of this object. *
* ©return the Sfring description */ public Sfring toSfring()
{ return "Rating: [itemID: " + itemID + ", userlD: " + userlD + ", value: " + value + "]";
}
package com.launch.rm.lc.SimilaritiesEngine; import com.launch.utils.PropertiesFileReader;
/**
* Constants used within the SimilaritiesEngine code. Changing
* certain parameters can significantly change the amount of memory
* used. For instance, each rating loaded into the engine uses about
* 30 bytes of memory, so increasing MAX_RATINGS_IN_ENGINE by 1
* million ratings could potentially use an extra 30 MB of memory.
* Each fan under MAX_FANS_PER_ITEM uses about 23 bytes, so
* MAX_ITEMS_TO__STORE times MAXJFANSJPER TEM times 23 bytes gives
* you the potential maximum amount of memory taken up by those
* parameters. The ITEM_TO_ARTIST_CACHE_MAX_SIZE entries each use
* up about 71 bytes of memory. A cache with 15,000 entries will
* use about 1 MB of memory.
*
* ©author Jeff Boulter
* ©author John Veilleux */ public class SimilaritiesConstants
{ private final static PropertiesFileReader pfr = new PropertiesFileReader( "SimilaritiesConstants.properties" ); private static int maxRatingsInEngine; private static Sfring fileNames[] = { "", "", "", "" }; private static long updateSimilaritiesTimeMS; private static short maxItemsToStore[] = { 0, 0, 0, 0 }; private static int maxSimilarltemsPerltem; private static byte fanThreshold; private static int maxFansPerltem; private static int minFansForRecommendedltem; private static int grAvgOffset; private static int itemToArtistCacheMaxSize[] = { 0, 0, 0, 0 }; private static boolean debug; private static boolean logfile; static
{ maxRatingsInEngine = pfr.getIntProperty( "MAX_RATINGS_IN_ENGINE", 30000000 ); fileNames[ 1 ] = pfr.getProperty( "SONG_RATINGS__FILE", "WexportWsongratings.txt" ); fileNamesf 2 ] = pfr.getProperty( "ALBUM_RATINGS_FILE", "WexportWalbumratings.txt" ); fileNames[ 3 ] = pfr.getProperty( "ARTIST_RATINGS_FILE", "WexportWartistratings.txt" ); fileNames[ 0 ] = fileNamesf 3 ]; updateSimilaritiesTimeMS = pfr.getLongProperty( "UPDATE_SIMILARITIES_TIME_MS", 1000 * 60 * 60 * 24 * 14 ); maxItemsToStoref 1 ] = pfr.getShortProperty( "MAX_SONGS_TO_STORE", (short) 15000 ); maxItemsToStore[ 2 ] = pfr.getShortProperty( "MAX_ALBUMS_TO_STORE", (short)10000 ); maxItemsToStore[ 3 ] = pfr.getShortProperty( "MAX_ARTISTS_TO_STORE", (short)3000 ); maxItemsToStore[ 0 ] = maxItemsToStoref 3 ]; maxSimilarltemsPerltem = pfr.getIntProperty( "MAX_SIMILAR_ITEMS_PER_ITEM", 100 ); fanThreshold = pfr.getByteProperty( "FAN THRESHOLD", (byte)90 ); maxFansPerltem = pfr.getIntProperty( "MAX_FANS_PER TEM", 300 ); minFansForRecommendedltem = pfr.getIntProperty( "MIN_FANS_FOR_RECOMMENDED TEM", 4 ); grAvgOffset = pfr.getIntProperty( "GR_AVG_OFFSET", -70 ); itemToArtistCacheMaxSizef 1 ] = pfr.getIntProperty( "SONG_TO_ARTIST_CACHE_MAX_SIZE", 300000 );
itemToArtistCacheMaxSize[ 2 ] = pfr.getIntProperty( "ALBUM_TO_ARTIST_CACHE_MAX_SIZE", 150000 ); debug = pfr.getBooleanProperty( "DEBUG", true ); logfile = pfr.getBooleanProperty( "LOGFILE", false ); }
// the maximum number of ratings that the engine can load without
// running out of memory public final static int MAX_RATINGS_IN_ENGINE = maxRatingsInEngine;
// the file names for the corresponding item type
// the array is indexed as { 0 = default (artists), 1 = songs, 2 = albums, 3 = artists } public final static Sfring FILE_NAMES[] = fileNames;
// the expiration time for similarities in the database public final static long UPDATE_SIMILARITIES_TIME_MS = updateSimilaritiesTimeMS;
// the maximum number of items with similar items to be stored in the database // the array is indexed as { 0 = default (artists), 1 = songs, 2 = albums, 3 = artists } public final static short MAX_ITEMS_TO_STORE[] = maxItemsToStore;
// the maximum number of similar items to retrieve per item public final static int MAX_SIMILAR_ITEMS_PER_ITEM = maxSimilarltemsPerltem;
// the user's minimum rating for an item to be considered a fan public final static byte FAN THRESHOLD = fanThreshold;
// maximum number of fans to get for an item public final static int MAXJFANSJPERJTEM = maxFansPerltem;
// the minimum number of ratings an item needs to be considered as a similar item public final static int MIN_FANS_FOR_RECOMMENDED TEM = minFansForRecommendedltem;
// used when calculating the average part of a group rating public final static int GR_AVG_OFFSET = grAvgOffset;
// used to determine the maximum size of the cache that maps
// item ID's to artist ID's
// the array is indexed as { 0 = default (artists), 1 = songs, 2 = albums, 3 = artists } public final static int ITEM_TO_ARTIST_CACHE_MAX_SIZE[] = itemToArtistCacheMaxSize;
// determines whether or not to print debug output public fmal static boolean DEBUG = debug;
// in debug mode, determines whether to print debug info to a
// file or to the screen public final static boolean LOGFILE = logfile;
package com.launch.rm.lc.SimilaritiesEngine; import com.launch.rm.lc.PlaylistGenerator. * ; import java.util.*; import java.io.*; import java.sql.*;
* This class represents the engine which churns out the item
* similarities. The files from which the ratings are pulled must
* be grouped by user. *
* ©author Jeff Boulter
* ©author John Veilleux */ public class SimilaritiesEngine
{ private byte itemType = 0; private Hashtable userRatingsHash = new Hashtable(); private Hashtable itemToFanlDsHash = new Hashtable(); private Hashtable itemToArtistCache = null; private final static Sfring CACHE_CONN_ID = "CACHE"; static
{
DBConnection.addConnection( CACHE_ CONN LD, "jdbc:inetdae:" + Constants.DB_SERVER
+ Constants.DB_PORT + "?sq!7=true"
+ "&database=dbLaunchProd" + "&user="
+ Constants.DBJJSERNAME + "&password=" + Constants.DB_PASSWORD ); }
/**
* Creates a SimilaritiesEngine object.
*
* ©param itemType the item type for which similarities will
* be generated
*
* ©param numltems the number of items that will have
* similarities generated for them */ public SimilaritiesEngine( byte itemType, int numltems )
{
IntHash itemsToExclude;
LineNumberReader reader;
Sfring line;
SttingTokenizer st; int itemID; int userlD; byte rating;
Vector userRatings; int lastUserlD; boolean lastUserWasFan;
int randomStartLine; int numltems WithMaxFans; boolean allFansLoaded;
Vector fanlDsVec; int numFileRatings[]; int portionToLoad; int totalRatingsLoaded; this. itemType = itemType; itemsToExclude = null; reader = null; line = null; st = null; itemID = 0; userlD = 0; rating = 0; userRatings = null; lastUserID = -l; lastUserWasFan = false; randomStartLine = 0; numltems WithMaxFans = 0; allFansLoaded = false; fanlDsVec = null; itemToArtistCache = new Hashtable( SimilaritiesConstants.ITEM_TO_ARTIST_CACHE_MAX_SIZE[ itemType ] ); numFileRatings = new int[]{ 0 }; portionToLoad = 1 ; totalRatingsLoaded = 0; try
{ itemsToExclude = getItemsToExclude( itemType );
Debugger.out( "There were " + itemsToExclude.size() + " items that already had similarities in the database and don't need to be updated yet." );
Debugger.out( "Now gettmg items with the most total ratings..." ); Debugger .resetTimer( "getltemsWithMostRatmgs" ); itemToFanlDsHash = getItemsWithMostRatings( itemType, numltems, itemsToExclude, numFileRatings );
Debugger.outTimer( "getltemsWithMostRatmgs", "Done getting items with the most ' total ratings. # of items: " + itemToFanIDsHash.size() ); portionToLoad = ( numFileRatingsf 0 ] / SimiIaritiesConstants.MAX_RATINGS_IN_ENGINE ) + 1; randomStartLine = (int) Util.random( numFileRatings [ 0 ] ) + 1; reader = new LineNumberReader( new FileReader( SimilaritiesConstants.FILE_NAMES[ itemType ] ) );
Debugger.out( "Engine will load no more than 1/" + portionToLoad + " of " + numFileRatingsf 0 ] + " total ratings in file." );
Debugger.out( "Starting to read ratings file up through random line " + randomStartLine
); for ( int i = 1; i <= randomStartLine; i ++ )
{ line = reader.readLineQ;
}
Debugger.out( "Done reading file up through random line " + randomStartLine ); Debugger.out( "Now queuing up file to first line of next user..." ); line = readUpToNextUser( line, reader ); randomStartLine = reader.getLineNumberQ; if ( line == null )
{ reader = new LineNumberReader( new FileReader( SimilaritiesConstants.FILE_NAMES[ itemType ] ) ); line = reader.readLineQ; randomStartLine = reader.getLineNumber(); } -
Debugger.out( "Done queuing up file to first line of next user." ); Debugger.out( "Now loading ratings into engine..." ); Debugger.resetTimer( toSfringQ ); do { if ( reader.getLineNumberQ % portionToLoad == 0 )
{ st = new SfringTokenizer( line, "," ); itemID = Integer.parselnt( st.nextTokenQ ); userlD = Integer.parselnt( st.nextToken() ); rating = Byte.parseByte( st.nextToken() ); if( userID != lastUserlD )
{ if ( lastUserWasFan )
{ lastUserWasFan = false; userRatingsHash.put( new Integer( lastUserlD ), userRatings ); totalRatingsLoaded += userRatings.sizeQ;
} lastUserlD = userlD; allFansLoaded = numltems WithMaxFans == numltems; userRatings = new VectorQ;
userRatings.addElement( new Rating( itemID, userlD, rating ) ); if ( rating >= SimilaritiesConstants.FAN_THRESHOLD )
{ fanlDsVec = (Vector) itemToFanIDsHash.get( new Integer( itemID ) ); if ( fanlDsVec != null && fanIDsVec.size() < SimilaritiesConstants.MAX_FANS_PER_ITEM )
{ lastUserWasFan = true; fanIDsVec.addElement( new Integer( userlD ) ); if ( fanlDsVec.sizeQ =
SimilaritiesConstants.MAX_FANS_PER_ITEM )
{
numltems WithMaxFans ++; } } } } line = reader .readLine(); if ( line = null )
{
Debugger.out( "Read past end of " + SimilaritiesConstants.FILE_NAMES[ itemType ] ); reader.close(); reader = new LineNumberReader( new FileReader( SimilaritiesConstants.FILE_NAMES[ itemType ] ) ); line = reader.readLine(); } } while ( .'allFansLoaded && reader.getLineNumberQ != randomStartLine ); reader.closeQ; if ( lastUserWasFan )
{ userRatingsHash.put( new Integer( userlD ), userRatings ); totalRatingsLoaded += userRatings.size(); }
Debugger.outTimer( toString(), "Done loading " + totalRatingsLoaded + " ratings into engine." );
Debugger.out( numltems WithMaxFans + " out of " + itemToFanIDsHash.size() + " items had maximum of " + SimilaritiesConstants.MAX_FANS_PER_ITEM + " fans." );
} catch ( Exception e )
{ e.printStackTrace();
} }
/**
* Gets a sorted list of items similar to the given item. The
* specified item ID must have been one of the candidates to
* have similarities generated for it. *
* ©param itemID the ID of the item to get similar items for *
* ©return the list of similar items, or an empty
* list if the item ID wasn't included in the
* similarities calculations */ public OrderedList getSimilar( int itemID )
{
OrderedList result; Consensus c; Vector fanlDs; Vector userRatings; result = new OrderedListQ;
c = new Consensus( itemID ); fanlDs = (Vector) itemToFanIDsHash.get( new Integer( itemID ) ); userRatings = null; if( fanIDs != null )
{ for ( int i = 0; i < fanIDs.size(); i ++ )
{ userRatings = (Vector) userRatingsHash.get( fanIDs.elementAt( i ) ); c.addRatings( userRatings ); } result = c.pollO; if ( itemType = Constants.ITEM_TYPE_SONG )
{ removeItemsWithSameArtist( itemID, result, "exec sp_lcGetSongDetail_xsxx ", itemToArtistCache, SimilaritiesConstants.ITEM_TO ARTIST_CACHE_MAX_SIZE[ itemType ] );
} else if ( itemType == Constants.ITEM_TYPE_ALBUM )
{ removeItemsWithSameArtist( itemID, result, "exec sp_lcGetAlbumDetail__xsxx ", itemToArtistCache, SimilaritiesConstants.ITEM_TO_ARTIST_CACHE_MAX_SIZE[ itemType ] );
}
} else
{
Debugger.out( "The item with ID " + itemID + " was not one of the items that had similarities calculated for it." ); } return result; }
/**
* Gets a sorted list of items similar to the given item. The
* specified item ID must have been one of the candidates to
* have similarities generated for it. *
* ©param itemID the ID of the item to get similar items for
* ©param maxltems the maximum number of similar items to
* retrieve
*
* ©return the list of similar items, or an empty
* list if the item ID wasn't included in the
* similarities calculations */ public OrderedList getSimilar( int itemID, int maxltems )
{
OrderedList result; result = getSimilar( itemID ); result.frimToMaximumSize( maxltems ); return result;
/**
* Gets all item ID's that need to have their similarities
* generated.
*
* ©return the item ID's */ public Vector getItemIDs()
{
Vector idVec; idVec = new Vector( itemToFanIDsHash.size() ); for ( Enumeration e = itemToFanlDsHash.keysQ; e.hasMoreElements(); )
{ idVec.addElement( e.nextElementQ );
} return idVec; }
/**
* Gets an inthash of item ID's to exclude from similarities
* generation.
*
* ©param type the item type
*
* ©return the item ID's to exclude */ private final static IntHash getItemsToExclude( byte type )
{
IntHash toExclude;
ResultSet rs;
Timestamp lastUpdatedTime; toExclude = new IntHashQ; rs = null; lastUpdatedTime = null; fry
{ rs = DBConnection.executeSQL( "exec usp_alOxSimilar_GetAUSimilarItems_xsxx " + type, false ); while ( rs.nextQ )
{ lastUpdatedTime = rs.getTimestamp( "dateCreated" ); if ( System.currentTimeMillis() - lastUpdatedTime.getTimeQ < SimilaritiesConstants.UPDATE_SIMILARITIES_TIME_MS )
{ toExclude.increment( rs.getlnt( "itemID" ) );
} } } catch ( Exception e )
{ e.printStackTrace();
} return toExclude;
}
/**
* Gets a hashtable with item ID's as the keys and an empty
* inthash for each item. There will only be up to specified
* maximum number of item ID's in the hashtable, and they will
* be chosen from most to least total ratings.
*
* ©param type the item type
* ©param maxltems the maximum number of items to return
* in the hashtable
* ©param itemsToExclude a group of item ID's to definitely
* exclude from the returned hashtable
* ©param nurriLines a one-element array for storing the
* number of lines in the ratings file *
* ©return the hashtable of item ID's each with
* an associated inthash */ private final static Hashtable getItemsWithMostRatings( byte type, int maxltems, IntHash itemsToExclude, int numLinesf] )
{
Hashtable resultHash;
LineNumberReader reader;
SttingTokenizer st; int itemID;
IntHash numRatingsHash;
OrderedList mostRatingsItemlDList; int resultSize; resultHash = new Hashtable( maxltems ); reader = null; st = null; itemID = 0; numRatingsHash = new IntHash(); mostRatingsItemlDList = new OrderedList(); resultSize = 0; try
{ reader = new LineNumberReader( new FileReader( SimilaritiesConstants.FILE_NAMES[ type ] ) ); for ( String line = reader.readLine(); line != null; line = reader.readLine() )
{ st = new SfringTokenizer( line, "," ); itemID = Integer.parselnt( st.nextToken() ); if ( itemsToExclude.get( itemID ) = 0 )
{ numRatingsHash.increment( itemID );
} } numLinesf 0 ] = reader.getLineNumberQ; for ( Enumeration e = numRatingsHash.keys(); e.hasMoreElements(); )
{ itemID = ( (Integer) e.nextElement() ).intValue();
mostRatingsItemIDList.add( (double) numRatingsHash.get( itemID ), new lnteger( itemID ) );
resultSize = Math.min( mostRatingsItemIDList.size(), maxltems ); for ( int i = 0; i < resultSize; i ++ )
{ resultHash.put( mostRatingsItemIDList.elementAt( i ), new Vector() );
} } catch ( Exception e )
{ e.printStackTraceQ;
} return resultHash;
/**
* Removes similar items from the given list that have the same
* artist as the given item.
* ©param itemID the ID of the item whose artist should not * be the same as any artists for the items
* in the given list of similar items
* ©param simList the list of items similar to the given item
* ©param sql the sql needed for retrieving the artist ID
* ©param cache the cache with item ID's mapped to artist ID's
* ©param maxCacheSize the maximum size of the given cache
*/ private final static void removeItemsWithSameArtist( int itemID, OrderedList simList, Sfring sql, Hashtable cache, int maxCacheSize )
{
ResultSet rs; Integer itemlDInt; Integer artistID; Integer otherltemID; Integer otherArtistlD; rs = null; itemlDInt = new Integer( itemID ); artistID = (Integer) cache.get( itemlDInt ); otherltemID = null; otherArtistlD = null; try { if ( artistID == null )
{ rs = DBConnection.executeSQL( CACHE_CONN_ID, sql + itemID, false ); if ( rs.next-0 )
{ artistID = new Integer( rs.getlnt( "artistID" ) ); if ( cache.sizeQ < maxCacheSize )
{ cache.put( itemlDInt, artistID );
}
} else
{ artistID = new Integer( -1 ); }
} for ( int i = simList.size() - 1; i >= 0; i - )
{ otlierltemlD = new Integer( ( (GroupRating) simList.elementAt( i )
).getItemIDQ ); otherArtistlD = (Integer) cache.get( otherltemID ); if ( otherArtistlD == null )
{ rs = DBConnection.executeSQL( CACHE_CONN D, sql + otherltemID, false ); if( rs.nextQ ) { otherArtistlD = new Integer( rs.getlnt( "artistID" ) ); if ( cache.sizeQ < maxCacheSize )
{ cache.put( otherltemID, otherArtistlD );
}
} else
{ otherArtistlD = new Integer( artistlD.intValueQ - 1 ); }
} if ( artistlD.intValueO == otherArtistlD.intValueQ )
{ simList.removeElementAt( i );
}
}
} catch ( Exception e )
{ e.printStackTraceQ;
}
/#*
* Reads through lines of a ratings file starting on the line
* after the given line and returns the first line that has a
* different user ID than the user ID in the given line.
*
* ©param line the starting line
* ©param reader the object reading the ratings file *
* ©return the first line with a different user, or null
* if the end of the file is reached
*/ private final static Sfring readUpToNextUser( Sfring line, LmeNumberReader reader )
{
SfringTokenizer st; int firstUserlD;
int userlD; st = null; firstUserlD = 0; userlD = 0; try { st = new StringTokenizer( line, "," ); st.nextToken(); userlD = Integer .parselnt( st.nextToken() ); firstUserlD = userlD; while ( userlD == firstUserlD )
{ line = reader.readLine(); if ( line != null ) { st = new StringTokenizer( line, "," ); st.nextToken(); userlD = Integer .parselnt( stnextTokenQ );
} else
{ userlD = firstUserlD - 1 ;
} } } catch ( Exception e )
{ e.printStackTrace();
} return line;
}
/**
* Gets a String representation of this object.
*
* ©return the Sfring description */ public String toSfring()
{ return "Item Type: " + itemType;
}
package com.launch.rm.lc.SimilaritiesEngine; import com.launch.rm.lc.PlaylistGenerator. * ; import j ava.util. Vector;
/**
* This class writes similarity data to the database. It takes the
* item type from the command line. *
* ©author John Veilleux */ public class SimilaritiesGenerator
{
/**
* The main method.
*
* ©param args command line arguments */ public static void main( Sfring args[] )
{
Integer itemID; Byte itemType; SimilaritiesEngine engine; Vector itemlDVec; Vector similarlDVec; Sfring sql; itemID = null; itemType = null; engine = null; itemID Vec = new Vector(); similarlDVec = null; sql = null; try { if ( args.length == 1 )
{ itemType = new Byte( args[ 0 ] );
} else
{ throw new InstantiationException();
} if ( itemType.byteValueQ < Constants.ITEM_TYPE_SONG || itemType.byteValueQ > Constants.ITEM_TYPE_ARTIST )
{ throw new Exception "Item type must be " + Constants.ITEM_TYPE_SONG + ", " + Constants.ITEM_TYPE_ALBUM + ", or " + Constants.ITEM_TYPE_ARTIST + "." );
}
Debύgger.out( "Similarities Generator started." ); Debugger.resetTimer( "SimilaritiesGenerator" ); engine = new SimilaritiesEngine( itemType.byteValueQ, SimilaritiesConstants.MAX_ITEMS_TO_STORE[ itemType.intValue() ] ); itemlDVec = engine.getltemlDsQ;
for ( int i = 0; i < itemID Vec.size(); i ++ )
{ itemID = (Integer)itemIDVec.elementAt( i ); similarlDVec = engine.getSimilar( itemID.intValue(), ShnilaritiesConstants.MAX_SIMILARJTEMS_PER TEM ).asVector(); sql = "usp_alOxSimilar_SetSimilarItems_ixxd " + itemID + ", " + itemType + ", " + similarlDVec.sizeO + ", '" + Util.GetVectorAsSpaceDelimitedList( similarlDVec ) + ""';
DBConnection.executeUpdate( sql, false );
Debugger.out( "Generated " + similarlDVec.sizeQ + " similarities for item " + itemID );
}
Debugger.outTimerMIN( "SimilaritiesGenerator", "Similarities Generator done." );
} catch ( InstantiationException ie )
{
System.out.println();
System.out.printin( "usage:" );
System. out.println( " java SimilaritiesGenerator [item type]" );
} catch ( Exception e )
{ e.printStackTrace();
}
Claims (6)
1. A method (900) for providing transmission of a data stream according to preferences of a community, the steps comprising: providing a first community (910), said first community expressing preferences regarding content in first data streams; determining characteristics of said preferences with regard to said first data streams to provide determined characteristics (920); biasing an individual data stream according to said determined characteristics so that said individual data stream is biased according to said expressed preferences (930); and transmitting said individual data sfream (940); whereby said individual data sfream has more content that said community likes and less content that said community dislikes.
2. A method for providing fransmission of a data stream according to preferences of a community as set forth in Claim 1, wherein said step of biasing an individual data stream further comprises: biasing an individual data stream according to said determined characteristics so that said individual data stream is biased for positive preferences of said community and biased against negative preferences of said community.
3. The method for providing fransmission of a data stream according preferences of a community as set forth in Claim 1, wherein the step of providing a community further comprises: providing a second community, said second community expressing preferences regarding content in second data streams; evaluating said preferences of said second community; and determining said first community from said second community with members of said first community having a preference in common; whereby said first community arises from a larger second community, said first community determined by having a preference in common.
4. The method for providing transmission of a data sfream according preferences of a community as set forth in Claim 1, wherein the step of biasing an individual data sfream further comprises: biasing said individual data sfream so that it complies with the DMCA.
5. The method for providing fransmission of a data sfream according preferences of a community as set forth in Claim 1, wherein the step of transmitting said individual data sfream further comprises: transmitting said individual data stream on a voluntary or selectable basis thereby allowing an individual to receive said individual data stream on a voluntary or selectable basis.
6. A method (900) for providing fransmission of a data sfream according to preferences of a community, the steps comprising: providing a first community (920), said first community expressing first preferences regarding content in first data streams; providing a second community (910), said second community second expressing preferences regarding content in second data streams; evaluating said second preferences of said second community; and determining said first community from said second community with members of said first community having a first preference in common, so that said first community arises from a larger second community, said first community determined by having a first preference in common; determining characteristics of said first preferences with regard to said first data streams to provide determined characteristics (930); biasing an individual data sfream according to said determined characteristics so that said individual data stream is biased according to said determined characteristics so that said individual data sfream is biased for positive first preferences of said first community and biased against negative first preferences of said first community; and transmitting said individual data stream (940) on a voluntary or selectable basis thereby allowing an individual to receive said individual data sfream on a voluntary or selectable basis; whereby said individual data sfream has more content that said community likes and less content that said community dislikes.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21759400P | 2000-07-11 | 2000-07-11 | |
US60/217,594 | 2000-07-11 | ||
US09/709,234 | 2000-11-09 | ||
US09/709,234 US7711838B1 (en) | 1999-11-10 | 2000-11-09 | Internet radio and broadcast method |
PCT/US2001/021829 WO2002005140A1 (en) | 2000-07-11 | 2001-07-10 | Online playback system with community bias |
Publications (2)
Publication Number | Publication Date |
---|---|
AU2001271980A1 true AU2001271980A1 (en) | 2002-04-18 |
AU2001271980B2 AU2001271980B2 (en) | 2004-07-29 |
Family
ID=26912069
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU2001271980A Ceased AU2001271980B2 (en) | 2000-07-11 | 2001-07-10 | Online playback system with community bias |
AU7198001A Pending AU7198001A (en) | 2000-07-11 | 2001-07-10 | Online playback system with community bias |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU7198001A Pending AU7198001A (en) | 2000-07-11 | 2001-07-10 | Online playback system with community bias |
Country Status (7)
Country | Link |
---|---|
US (2) | US7454509B2 (en) |
EP (1) | EP1307831A4 (en) |
JP (2) | JP4236922B2 (en) |
AU (2) | AU2001271980B2 (en) |
DE (1) | DE10196421T5 (en) |
GB (1) | GB2380581A (en) |
WO (1) | WO2002005140A1 (en) |
Families Citing this family (467)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065342B1 (en) | 1999-11-23 | 2006-06-20 | Gofigure, L.L.C. | System and mobile cellular telephone device for playing recorded music |
US7328239B1 (en) * | 2000-03-01 | 2008-02-05 | Intercall, Inc. | Method and apparatus for automatically data streaming a multiparty conference session |
EP1425745A2 (en) * | 2001-08-27 | 2004-06-09 | Gracenote, Inc. | Playlist generation, delivery and navigation |
WO2003048948A1 (en) | 2001-12-04 | 2003-06-12 | Yahoo!Inc. | Method and system for providing listener-requested music over a network |
JP4555072B2 (en) | 2002-05-06 | 2010-09-29 | シンクロネイション インコーポレイテッド | Localized audio network and associated digital accessories |
WO2004023358A1 (en) * | 2002-09-09 | 2004-03-18 | Koninklijke Philips Electronics N.V. | A data network, user terminal and method for providing recommendations |
EP1484693A1 (en) | 2003-06-04 | 2004-12-08 | Sony NetServices GmbH | Content recommendation device with an arrangement engine |
EP1484692B1 (en) | 2003-06-04 | 2013-07-24 | Intel Corporation | Content recommendation device with user feedback |
US20050138062A1 (en) * | 2003-11-28 | 2005-06-23 | Infineon Technologies Ag | Method, computer program, apparatus and system for the selective communication of data sets |
JP4492190B2 (en) | 2004-04-07 | 2010-06-30 | ソニー株式会社 | Information processing apparatus and method, program |
US7802007B2 (en) | 2004-05-19 | 2010-09-21 | Salesforce.Com, Inc. | Techniques for providing connections to services in a network environment |
US7818350B2 (en) | 2005-02-28 | 2010-10-19 | Yahoo! Inc. | System and method for creating a collaborative playlist |
JP4085284B2 (en) * | 2005-03-24 | 2008-05-14 | ソニー株式会社 | Playback device |
US7904473B2 (en) * | 2005-04-04 | 2011-03-08 | Aol Inc. | Community-based parental controls |
EP1920393A2 (en) | 2005-07-22 | 2008-05-14 | Yogesh Chunilal Rathod | Universal knowledge management and desktop search system |
KR100772862B1 (en) * | 2005-10-11 | 2007-11-02 | 삼성전자주식회사 | System and method for providing online community service for digital contents |
EP1783632B1 (en) | 2005-11-08 | 2012-12-19 | Intel Corporation | Content recommendation method with user feedback |
EP1826716A1 (en) * | 2006-02-22 | 2007-08-29 | Sony Deutschland Gmbh | Method for updating a user profile |
US8005841B1 (en) | 2006-04-28 | 2011-08-23 | Qurio Holdings, Inc. | Methods, systems, and products for classifying content segments |
US8903843B2 (en) * | 2006-06-21 | 2014-12-02 | Napo Enterprises, Llc | Historical media recommendation service |
US8615573B1 (en) | 2006-06-30 | 2013-12-24 | Quiro Holdings, Inc. | System and method for networked PVR storage and content capture |
US20080010266A1 (en) * | 2006-07-10 | 2008-01-10 | Brunn Jonathan F | A Context-Centric Method of Automated Introduction and Community Building |
US8805831B2 (en) * | 2006-07-11 | 2014-08-12 | Napo Enterprises, Llc | Scoring and replaying media items |
US9003056B2 (en) | 2006-07-11 | 2015-04-07 | Napo Enterprises, Llc | Maintaining a minimum level of real time media recommendations in the absence of online friends |
US7970922B2 (en) * | 2006-07-11 | 2011-06-28 | Napo Enterprises, Llc | P2P real time media recommendations |
US8327266B2 (en) * | 2006-07-11 | 2012-12-04 | Napo Enterprises, Llc | Graphical user interface system for allowing management of a media item playlist based on a preference scoring system |
US7680959B2 (en) * | 2006-07-11 | 2010-03-16 | Napo Enterprises, Llc | P2P network for providing real time media recommendations |
US8059646B2 (en) | 2006-07-11 | 2011-11-15 | Napo Enterprises, Llc | System and method for identifying music content in a P2P real time recommendation network |
US8090606B2 (en) * | 2006-08-08 | 2012-01-03 | Napo Enterprises, Llc | Embedded media recommendations |
US8620699B2 (en) * | 2006-08-08 | 2013-12-31 | Napo Enterprises, Llc | Heavy influencer media recommendations |
CN100458783C (en) * | 2006-08-18 | 2009-02-04 | 中山大学 | Digital family music controller |
US20080066107A1 (en) | 2006-09-12 | 2008-03-13 | Google Inc. | Using Viewing Signals in Targeted Video Advertising |
US20080109481A1 (en) * | 2006-11-06 | 2008-05-08 | Sergio Catanzariti | Context based network search |
US8874655B2 (en) * | 2006-12-13 | 2014-10-28 | Napo Enterprises, Llc | Matching participants in a P2P recommendation network loosely coupled to a subscription service |
US8595635B2 (en) | 2007-01-25 | 2013-11-26 | Salesforce.Com, Inc. | System, method and apparatus for selecting content from web sources and posting content to web logs |
US8417573B2 (en) * | 2007-03-14 | 2013-04-09 | Yahoo! Inc. | Sponsored listing recommendation engine |
US9224427B2 (en) * | 2007-04-02 | 2015-12-29 | Napo Enterprises LLC | Rating media item recommendations using recommendation paths and/or media item usage |
US8112720B2 (en) * | 2007-04-05 | 2012-02-07 | Napo Enterprises, Llc | System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items |
US8667532B2 (en) | 2007-04-18 | 2014-03-04 | Google Inc. | Content recognition for targeting video advertisements |
US9037632B2 (en) * | 2007-06-01 | 2015-05-19 | Napo Enterprises, Llc | System and method of generating a media item recommendation message with recommender presence information |
US20090049045A1 (en) * | 2007-06-01 | 2009-02-19 | Concert Technology Corporation | Method and system for sorting media items in a playlist on a media device |
US9164993B2 (en) * | 2007-06-01 | 2015-10-20 | Napo Enterprises, Llc | System and method for propagating a media item recommendation message comprising recommender presence information |
US8285776B2 (en) * | 2007-06-01 | 2012-10-09 | Napo Enterprises, Llc | System and method for processing a received media item recommendation message comprising recommender presence information |
US8839141B2 (en) | 2007-06-01 | 2014-09-16 | Napo Enterprises, Llc | Method and system for visually indicating a replay status of media items on a media device |
US8433611B2 (en) | 2007-06-27 | 2013-04-30 | Google Inc. | Selection of advertisements for placement with content |
US7991790B2 (en) | 2007-07-20 | 2011-08-02 | Salesforce.Com, Inc. | System and method for storing documents accessed by multiple users in an on-demand service |
US20090049030A1 (en) * | 2007-08-13 | 2009-02-19 | Concert Technology Corporation | System and method for reducing the multiple listing of a media item in a playlist |
US20090048992A1 (en) * | 2007-08-13 | 2009-02-19 | Concert Technology Corporation | System and method for reducing the repetitive reception of a media item recommendation |
US9064024B2 (en) | 2007-08-21 | 2015-06-23 | Google Inc. | Bundle generation |
US7865522B2 (en) * | 2007-11-07 | 2011-01-04 | Napo Enterprises, Llc | System and method for hyping media recommendations in a media recommendation system |
US9060034B2 (en) * | 2007-11-09 | 2015-06-16 | Napo Enterprises, Llc | System and method of filtering recommenders in a media item recommendation system |
US9224150B2 (en) * | 2007-12-18 | 2015-12-29 | Napo Enterprises, Llc | Identifying highly valued recommendations of users in a media recommendation network |
US9734507B2 (en) * | 2007-12-20 | 2017-08-15 | Napo Enterprise, Llc | Method and system for simulating recommendations in a social network for an offline user |
US8396951B2 (en) * | 2007-12-20 | 2013-03-12 | Napo Enterprises, Llc | Method and system for populating a content repository for an internet radio service based on a recommendation network |
US8117193B2 (en) | 2007-12-21 | 2012-02-14 | Lemi Technology, Llc | Tunersphere |
US8316015B2 (en) | 2007-12-21 | 2012-11-20 | Lemi Technology, Llc | Tunersphere |
US8060525B2 (en) * | 2007-12-21 | 2011-11-15 | Napo Enterprises, Llc | Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information |
US8429011B2 (en) | 2008-01-24 | 2013-04-23 | Salesforce.Com, Inc. | Method and system for targeted advertising based on topical memes |
US9824372B1 (en) | 2008-02-11 | 2017-11-21 | Google Llc | Associating advertisements with videos |
US8725740B2 (en) * | 2008-03-24 | 2014-05-13 | Napo Enterprises, Llc | Active playlist having dynamic media item groups |
US20090259621A1 (en) * | 2008-04-11 | 2009-10-15 | Concert Technology Corporation | Providing expected desirability information prior to sending a recommendation |
US8484311B2 (en) | 2008-04-17 | 2013-07-09 | Eloy Technology, Llc | Pruning an aggregate media collection |
US9245252B2 (en) | 2008-05-07 | 2016-01-26 | Salesforce.Com, Inc. | Method and system for determining on-line influence in social media |
US20100070537A1 (en) * | 2008-09-17 | 2010-03-18 | Eloy Technology, Llc | System and method for managing a personalized universal catalog of media items |
US8880599B2 (en) * | 2008-10-15 | 2014-11-04 | Eloy Technology, Llc | Collection digest for a media sharing system |
US8484227B2 (en) | 2008-10-15 | 2013-07-09 | Eloy Technology, Llc | Caching and synching process for a media sharing system |
US8219536B2 (en) * | 2008-11-25 | 2012-07-10 | At&T Intellectual Property I, L.P. | Systems and methods to select media content |
US8156435B2 (en) | 2008-11-25 | 2012-04-10 | At&T Intellectual Property I, L.P. | Systems and methods to select media content |
US8527877B2 (en) * | 2008-11-25 | 2013-09-03 | At&T Intellectual Property I, L.P. | Systems and methods to select media content |
US8200602B2 (en) | 2009-02-02 | 2012-06-12 | Napo Enterprises, Llc | System and method for creating thematic listening experiences in a networked peer media recommendation environment |
US8621015B2 (en) | 2009-10-30 | 2013-12-31 | Salesforce.Com, Inc. | Integrating and managing social networking information in an on-demand database system |
US8560575B2 (en) | 2009-11-12 | 2013-10-15 | Salesforce.Com, Inc. | Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment |
US9864770B2 (en) | 2009-11-12 | 2018-01-09 | Salesforce.Com, Inc. | Customizing enterprise level business information networking |
US9152708B1 (en) * | 2009-12-14 | 2015-10-06 | Google Inc. | Target-video specific co-watched video clusters |
KR101422772B1 (en) | 2009-12-28 | 2014-07-29 | 에스케이플래닛 주식회사 | Online music service apparatus for generating music playlist considering user’s preferences and ratings and method thereof |
US8666993B2 (en) | 2010-02-22 | 2014-03-04 | Onepatont Software Limited | System and method for social networking for managing multidimensional life stream related active note(s) and associated multidimensional active resources and actions |
US8898287B2 (en) | 2010-02-24 | 2014-11-25 | Salesforce.Com, Inc. | System, method and computer program product for monitoring data activity utilizing a shared data store |
US9600512B2 (en) | 2010-02-25 | 2017-03-21 | Salesforce.Com, Inc. | Systems and methods for implementing customized drop-down menus |
US8898582B2 (en) | 2010-03-10 | 2014-11-25 | Salesforce.Com, Inc. | Configurable highlights panel for display of database records |
US8914539B2 (en) | 2010-03-12 | 2014-12-16 | Salesforce.Com, Inc. | Service cloud console |
US9009709B2 (en) | 2010-03-16 | 2015-04-14 | Salesforce.Com, Inc. | Asynchronous rollup numbers forecasting methods and systems |
US9246707B2 (en) | 2010-03-16 | 2016-01-26 | Salesforce.Com, Inc. | Cost-based SMTP email routing |
US20110238670A1 (en) * | 2010-03-23 | 2011-09-29 | Microsoft Corporation | Crowd-sourcing and contextual reclassification of rated content |
US8977675B2 (en) | 2010-03-26 | 2015-03-10 | Salesforce.Com, Inc. | Methods and systems for providing time and date specific software user interfaces |
US8539234B2 (en) | 2010-03-30 | 2013-09-17 | Salesforce.Com, Inc. | Secure client-side communication between multiple domains |
US8818985B2 (en) | 2010-04-06 | 2014-08-26 | Salesforce.Com, Inc. | Rule-based prioritization of social data |
US9514476B2 (en) * | 2010-04-14 | 2016-12-06 | Viacom International Inc. | Systems and methods for discovering artists |
CN101807416A (en) * | 2010-04-16 | 2010-08-18 | 中山大学 | Digital home background music control system |
US8751939B2 (en) | 2010-04-26 | 2014-06-10 | Salesforce.Com, Inc. | Side tab navigation and page views personalization systems and methods |
US8972431B2 (en) | 2010-05-06 | 2015-03-03 | Salesforce.Com, Inc. | Synonym supported searches |
US9781049B2 (en) | 2010-05-07 | 2017-10-03 | Salesforce.Com, Inc. | Resolving information in a database environment |
US9009669B2 (en) | 2010-05-07 | 2015-04-14 | Salesforce.Com, Inc. | Visual user interface validator |
US8566792B2 (en) | 2010-05-07 | 2013-10-22 | Salesforce, Inc. | Validating visual components |
US8718241B2 (en) | 2010-05-07 | 2014-05-06 | Salesforce.Com, Inc. | Methods and apparatus for interfacing with a phone system in an on-demand service environment |
US8959483B2 (en) | 2010-05-13 | 2015-02-17 | Salesforce.Com, Inc. | Test framework of visual components in a multitenant database environment |
US8850219B2 (en) | 2010-05-13 | 2014-09-30 | Salesforce.Com, Inc. | Secure communications |
US20110289401A1 (en) | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Multiple graphical annotations of documents using overlays |
US9021435B2 (en) | 2010-05-20 | 2015-04-28 | Salesforce.Com, Inc. | Methods and systems for providing a user interface in a multi-tenant database environment |
US8738603B2 (en) | 2010-05-20 | 2014-05-27 | Salesforce.Com, Inc. | Metrics-based accessing of social threads |
US8572080B2 (en) | 2010-06-04 | 2013-10-29 | Salesforce.Com, Inc. | Methods and systems for analyzing a network feed in a multi-tenant database system environment |
US9223852B2 (en) | 2010-06-11 | 2015-12-29 | Salesforce.Com, Inc. | Methods and systems for analyzing search terms in a multi-tenant database system environment |
US8230062B2 (en) | 2010-06-21 | 2012-07-24 | Salesforce.Com, Inc. | Referred internet traffic analysis system and method |
US9280596B2 (en) | 2010-07-01 | 2016-03-08 | Salesforce.Com, Inc. | Method and system for scoring articles in an on-demand services environment |
US9817637B2 (en) | 2010-07-01 | 2017-11-14 | Salesforce.Com, Inc. | Methods and systems for providing enhancements to a business networking feed |
US8661076B2 (en) | 2010-09-23 | 2014-02-25 | Salesforce.Com, Inc. | Business networking information feed alerts |
US8560554B2 (en) | 2010-09-23 | 2013-10-15 | Salesforce.Com, Inc. | Methods and apparatus for selecting updates to associated records to publish on an information feed using importance weights in an on-demand database service environment |
US8732150B2 (en) | 2010-09-23 | 2014-05-20 | Salesforce.Com, Inc. | Methods and apparatus for suppressing network feed activities using an information feed in an on-demand database service environment |
US9106761B2 (en) | 2010-09-23 | 2015-08-11 | Salesforce.Com, Inc. | Methods and apparatus for inviting users to follow records in an on-demand database service environment |
US20120086544A1 (en) | 2010-10-08 | 2012-04-12 | Salesforce.Com, Inc. | Following Data Records in an Information Feed |
US9031957B2 (en) | 2010-10-08 | 2015-05-12 | Salesforce.Com, Inc. | Structured data in a business networking feed |
US8903770B2 (en) | 2010-10-15 | 2014-12-02 | Salesforce.Com, Inc. | Methods and apparatus for discontinuing the following of records in an on-demand database service environment |
US20120101985A1 (en) | 2010-10-25 | 2012-04-26 | Salesforce.Com, Inc. | Triggering actions in an information feed system |
US8732606B2 (en) | 2010-10-25 | 2014-05-20 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for dynamic windowing in user interfaces |
US8886766B2 (en) | 2010-10-25 | 2014-11-11 | Salesforce.Com, Inc. | Systems and methods for tracking responses on an online social network |
US8756221B2 (en) | 2010-12-03 | 2014-06-17 | Salesforce.Com, Inc. | Social files |
US9092826B2 (en) * | 2010-12-04 | 2015-07-28 | Facebook, Inc. | Profile page with biographical summary for social networking system user |
US8566648B2 (en) | 2011-02-02 | 2013-10-22 | Salesforce, Inc. | Automated testing on devices |
US8903943B2 (en) | 2011-02-15 | 2014-12-02 | Salesforce.Com, Inc. | Integrating cloud applications and remote jobs |
US20120215706A1 (en) | 2011-02-18 | 2012-08-23 | Salesforce.Com, Inc. | Methods And Systems For Providing A Recognition User Interface For An Enterprise Social Network |
US9443224B2 (en) | 2011-03-01 | 2016-09-13 | Salesforce.Com, Inc. | Systems, apparatus and methods for selecting updates to associated records to publish on an information feed |
US8713165B2 (en) | 2011-03-03 | 2014-04-29 | Salesforce.Com, Inc. | Method and system for providing status of a machine |
US8949270B2 (en) | 2011-03-10 | 2015-02-03 | Salesforce.Com, Inc. | Methods and systems for processing social media data |
US8918484B2 (en) | 2011-03-17 | 2014-12-23 | Charles Moncavage | System and method for recording and sharing music |
US8818940B2 (en) | 2011-03-29 | 2014-08-26 | Salesforce.Com, Inc. | Systems and methods for performing record actions in a multi-tenant database and application system |
US9430583B1 (en) | 2011-06-10 | 2016-08-30 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US9208187B2 (en) | 2011-06-24 | 2015-12-08 | Salesforce.Com, Inc. | Using a database system for selective inclusion and exclusion of types of updates to provide a configuration feed of a social networking system |
US9953273B2 (en) | 2011-06-28 | 2018-04-24 | Salesforce.Com, Inc. | Systems and methods for creating a rich social media profile |
US20130002676A1 (en) | 2011-06-28 | 2013-01-03 | Salesforce.Com, Inc. | Computer implemented systems and methods for visualizing organizational connections |
US9123028B2 (en) | 2011-07-01 | 2015-09-01 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for controlling the inclusion of edited information in an information feed |
US9071658B2 (en) | 2011-07-12 | 2015-06-30 | Salesforce.Com, Inc. | Method and system for presenting a meeting in a cloud computing environment |
US8954449B2 (en) | 2011-07-12 | 2015-02-10 | Salesforce.Com, Inc. | Method and system for determining a user's brand influence |
US9489660B2 (en) | 2011-07-12 | 2016-11-08 | Salesforce.Com, Inc. | Methods and systems for public collaborative interface for private network groups |
US9395881B2 (en) | 2011-07-12 | 2016-07-19 | Salesforce.Com, Inc. | Methods and systems for navigating display sequence maps |
US9195971B2 (en) | 2011-07-12 | 2015-11-24 | Salesforce.Com, Inc. | Method and system for planning a meeting in a cloud computing environment |
US9037681B2 (en) | 2011-07-12 | 2015-05-19 | Salesforce.Com, Inc. | Methods and systems for prioritizing multiple network feeds |
US20130018955A1 (en) | 2011-07-14 | 2013-01-17 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for implementing a social network information feed as a platform |
US9443225B2 (en) | 2011-07-18 | 2016-09-13 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for presentation of feed items in an information feed to be displayed on a display device |
US8762870B2 (en) | 2011-07-19 | 2014-06-24 | Salesforce.Com, Inc. | Multifunction drag-and-drop selection tool for selection of data objects in a social network application |
US20130024910A1 (en) | 2011-07-22 | 2013-01-24 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for integrating a social network information feed with a network communications application |
US8984051B2 (en) | 2011-07-26 | 2015-03-17 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for communicating feed information to one or more recipients |
US9325750B2 (en) | 2011-07-26 | 2016-04-26 | Salesforce.Com, Inc. | Method and system for viewing a contact network feed in a business directory environment |
US9256859B2 (en) | 2011-07-26 | 2016-02-09 | Salesforce.Com, Inc. | Systems and methods for fragmenting newsfeed objects |
US9591090B2 (en) | 2011-08-22 | 2017-03-07 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for sharing data of an information feed of an online social network |
US9395882B2 (en) | 2011-08-24 | 2016-07-19 | Salesforce.Com, Inc. | Systems and methods for promoting related lists |
US8549047B2 (en) | 2011-08-25 | 2013-10-01 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for feed-based case management |
US9215096B2 (en) | 2011-08-26 | 2015-12-15 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing communication between network domains in a service cloud |
US9178753B2 (en) | 2011-08-31 | 2015-11-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing access to an online social network |
US9542711B2 (en) | 2011-10-07 | 2017-01-10 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing selective notifications in an online social network |
US9058363B2 (en) | 2011-10-07 | 2015-06-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing a distribution list of users in an online social network |
US9589070B2 (en) | 2011-10-10 | 2017-03-07 | Salesforce.Com, Inc. | Method and system for updating a filter logic expression representing a boolean filter |
US9767132B2 (en) | 2011-10-10 | 2017-09-19 | Salesforce.Com, Inc. | Systems and methods for real-time de-duplication |
US9727924B2 (en) * | 2011-10-10 | 2017-08-08 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for informing a user of social network data when the data is relevant to the user |
US9007364B2 (en) | 2011-10-12 | 2015-04-14 | Salesforce.Com, Inc. | Augmented reality display apparatus and related methods using database record data |
US9195648B2 (en) | 2011-10-12 | 2015-11-24 | Salesforce.Com, Inc. | Multi-lingual knowledge base |
US9064287B2 (en) | 2011-10-13 | 2015-06-23 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing group-related social network information |
US9443007B2 (en) | 2011-11-02 | 2016-09-13 | Salesforce.Com, Inc. | Tools and techniques for extracting knowledge from unstructured data retrieved from personal data sources |
US9471666B2 (en) | 2011-11-02 | 2016-10-18 | Salesforce.Com, Inc. | System and method for supporting natural language queries and requests against a user's personal data cloud |
US9152725B2 (en) | 2011-11-04 | 2015-10-06 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for configuring and performing a custom rule to process a preference indication |
US10016417B2 (en) * | 2011-11-07 | 2018-07-10 | Diakron Pharmaceuticals, Inc. | Extended release formulation of a direct thrombin inhibitor |
US9830050B2 (en) | 2011-11-23 | 2017-11-28 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing a reminder regarding a feed item of a feed of an online social network |
US20130185654A1 (en) | 2012-01-17 | 2013-07-18 | Salesforce.Com, Inc. | Systems and methods for mapping relevant personal connections |
US8731151B2 (en) | 2012-02-02 | 2014-05-20 | Salesforce.Com, Inc. | Methods and apparatus for partially updating a web page using an embedded iFrame |
US20130218885A1 (en) | 2012-02-22 | 2013-08-22 | Salesforce.Com, Inc. | Systems and methods for context-aware message tagging |
US9503535B2 (en) | 2012-03-06 | 2016-11-22 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for automatically following entities in an online social network |
US20130254296A1 (en) | 2012-03-23 | 2013-09-26 | Salesforce.Com, Inc. | Social network communities |
US9558277B2 (en) | 2012-04-04 | 2017-01-31 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for identifying topical influence in an online social network |
US9307006B2 (en) | 2012-04-11 | 2016-04-05 | Salesforce.Com, Inc. | System and method for synchronizing data objects in a cloud based social networking environment |
US9753926B2 (en) | 2012-04-30 | 2017-09-05 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US9197513B2 (en) | 2012-05-03 | 2015-11-24 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for representing a portion of a user interface as a network address |
US8973106B2 (en) | 2012-05-03 | 2015-03-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing permissions to users in an on-demand service environment |
US9252976B2 (en) | 2012-05-09 | 2016-02-02 | Salesforce.Com, Inc. | Method and system for social media cooperation protocol |
US9094359B2 (en) | 2012-05-09 | 2015-07-28 | Salesforce.Com, Inc. | Method and system for inter-social network communications |
US9177007B2 (en) | 2012-05-14 | 2015-11-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus to interact with records using a publisher of an information feed of an online social network |
US9582767B2 (en) * | 2012-05-16 | 2017-02-28 | Excalibur Ip, Llc | Media recommendation using internet media stream modeling |
US9916592B2 (en) | 2012-05-18 | 2018-03-13 | Oracle International Corporation | Method and system for implementing implicit follow and automatic unfollow |
US9148438B2 (en) | 2012-06-25 | 2015-09-29 | Salesforce.Com, Inc. | System, method and computer program product for publishing non-malicious third party content to a data feed |
US9715879B2 (en) | 2012-07-02 | 2017-07-25 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for selectively interacting with a server to build a local database for speech recognition at a device |
US10049131B2 (en) | 2012-07-02 | 2018-08-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for determining user access to custom metadata |
US9628493B2 (en) | 2012-07-03 | 2017-04-18 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing permission sets and validating user assignments |
US9241017B2 (en) | 2012-07-03 | 2016-01-19 | Salesforce.Com, Inc. | Systems and methods for cross domain service component interaction |
US9075766B2 (en) | 2012-07-12 | 2015-07-07 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for determining whether to continue relationships in an online social network |
US9984126B2 (en) | 2012-07-23 | 2018-05-29 | Salesforce.Com, Inc. | Identifying relevant feed items to display in a feed of an enterprise social networking system |
US9367626B2 (en) | 2012-07-23 | 2016-06-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for implementing a topical-based highlights filter |
US9569060B2 (en) | 2012-07-25 | 2017-02-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for composing and batch publishing feed items in a feed-based interaction context |
US9432320B2 (en) | 2012-07-30 | 2016-08-30 | Salesforce.Com, Inc. | System and method for providing an information-centric application |
US9990426B2 (en) | 2012-08-31 | 2018-06-05 | Salesforce.Com, Inc. | Systems and methods for content management in an on-demand environment |
US8990958B2 (en) | 2012-08-31 | 2015-03-24 | Salesforce.Com, Inc. | Systems and methods for content management in an on demand environment |
US9747388B2 (en) | 2012-08-31 | 2017-08-29 | Salesforce.Com, Inc. | Systems and methods for providing access to external content objects |
US9292589B2 (en) | 2012-09-04 | 2016-03-22 | Salesforce.Com, Inc. | Identifying a topic for text using a database system |
US9253283B2 (en) | 2012-09-14 | 2016-02-02 | Salesforce.Com, Inc. | Systems and methods for ghosting and providing proxies in a network feed |
US9774555B2 (en) | 2012-09-14 | 2017-09-26 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing objectives in an organization in a social network environment |
US9495557B2 (en) | 2012-09-18 | 2016-11-15 | Salesforce.Com, Inc. | Methods and systems for managing access to data in an on-demand system |
US9626637B2 (en) | 2012-09-18 | 2017-04-18 | Salesforce.Com, Inc. | Method and system for managing business deals |
US9489415B2 (en) | 2012-09-27 | 2016-11-08 | Salesforce.Com, Inc. | System and method for updating infographics based on multiple online social networks |
US9246959B2 (en) | 2012-10-10 | 2016-01-26 | Salesforce.Com, Inc. | System and method for location-based social network feeds |
US9264391B2 (en) | 2012-11-01 | 2016-02-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing near real-time predicted engagement level feedback to a user composing a social media message |
US9703815B2 (en) | 2012-12-17 | 2017-07-11 | Salesforce.Com, Inc. | Third party files in an on-demand database service |
US9495079B2 (en) | 2013-01-10 | 2016-11-15 | Salesforce.Com, Inc. | Persistent feeder component for displaying feed items received from information feeds of online social networks |
US9778820B2 (en) | 2013-01-18 | 2017-10-03 | Salesforce.Com, Inc. | Managing applications on a computing device |
US9607090B2 (en) | 2013-01-21 | 2017-03-28 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for recommending events |
US10175873B2 (en) | 2013-01-21 | 2019-01-08 | Salesforce.Com, Inc. | System and method for retrieving data based on scrolling velocity |
US9465828B2 (en) | 2013-01-22 | 2016-10-11 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for identifying similar labels using collaborative filtering |
US20140279629A1 (en) | 2013-03-12 | 2014-09-18 | Salesforce.Com, Inc. | System and method for generating an organization profile based on skill information |
US9063632B2 (en) | 2013-03-15 | 2015-06-23 | Salesforce.Com, Inc. | Systems and methods for interacting with records via a publisher and an information feed |
US9823813B2 (en) | 2013-03-15 | 2017-11-21 | Salesforce.Com, Inc. | Apparatus and methods for performing an action on a database record |
US9594790B2 (en) | 2013-03-21 | 2017-03-14 | Salesforce.Com, Inc. | System and method for evaluating claims to update a record from conflicting data sources |
US9483526B2 (en) | 2013-03-21 | 2016-11-01 | Salesforce.Com, Inc. | Automatically subscribing users of an enterprise network to a record |
US9400840B2 (en) | 2013-03-25 | 2016-07-26 | Salesforce.Com, Inc. | Combining topic suggestions from different topic sources to assign to textual data items |
US9672575B2 (en) | 2013-04-03 | 2017-06-06 | Salesforce.Com, Inc. | Capturing information regarding an interaction to a database |
US9953301B2 (en) | 2013-04-03 | 2018-04-24 | Salesforce.Com, Inc. | Searchable screen sharing sessions |
US10684752B2 (en) | 2013-04-12 | 2020-06-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for responding to actionable text patterns in a feed item |
US9398156B2 (en) | 2013-04-12 | 2016-07-19 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing agent workload in a customer service environment |
US10114873B2 (en) | 2013-04-17 | 2018-10-30 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for retrieving content related to a feed item of an online social network |
US9542472B2 (en) | 2013-04-19 | 2017-01-10 | Salesforce.Com, Inc. | Facilitating collaboration on a record among a group of users of a feed-based enterprise network |
US9460474B2 (en) | 2013-05-03 | 2016-10-04 | Salesforce.Com, Inc. | Providing access to a private resource in an enterprise social networking system |
US9647922B2 (en) | 2013-05-15 | 2017-05-09 | Salesforce, Inc. | Computer implemented methods and apparatus for trials onboarding |
US9529917B2 (en) | 2013-05-21 | 2016-12-27 | Saleforce.com, inc. | System and method for generating information feed based on contextual data |
US9892177B2 (en) | 2013-07-11 | 2018-02-13 | Salesforce.Com, Inc. | Systems and methods for interacting with external content objects |
US9600155B2 (en) | 2013-07-15 | 2017-03-21 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for customizing a data interface in an on-demand service environment |
US9467434B2 (en) | 2013-07-15 | 2016-10-11 | Salesforce.Com, Inc. | Document rendering service |
US10147054B2 (en) | 2013-07-26 | 2018-12-04 | Salesforce.Com, Inc. | Displaying content of an enterprise social network feed on a mobile device |
US9426249B2 (en) | 2013-08-05 | 2016-08-23 | Salesforce.Com, Inc. | Providing an improved web user interface framework for building web applications |
US9524157B2 (en) | 2013-08-06 | 2016-12-20 | Salesforce.Com, Inc. | Providing an improved web user interface framework for building web applications |
US9921724B2 (en) | 2013-08-15 | 2018-03-20 | Salesforce.Com, Inc. | Presenting data on a mobile device in communication with an on-demand database system |
US9973550B2 (en) | 2013-09-11 | 2018-05-15 | Salesforce.Com, Inc. | Systems and methods for applying intelligence and prioritization to calendared events |
US9972015B2 (en) | 2013-09-13 | 2018-05-15 | Salesforce.Com, Inc. | Methods and systems for facilitating customer support using a social post case feed and publisher |
US11714923B2 (en) | 2013-09-26 | 2023-08-01 | Salesforce, Inc. | Methods and systems for protecting data integrity |
US10423907B2 (en) | 2013-10-18 | 2019-09-24 | Salesforce.Com, Inc. | Geolocation based work data on a mobile device using a database system |
US9590943B2 (en) | 2013-10-25 | 2017-03-07 | Salesforce.Com, Inc. | Offline prompts of online social network mentions |
US9665261B2 (en) | 2013-10-28 | 2017-05-30 | Salesforce.Com, Inc. | Providing a user interface for customizing state transitions of panes in a bounding window |
US10332129B2 (en) | 2013-11-01 | 2019-06-25 | Salesforce.Com, Inc. | Methods and systems for processing a log file |
US10367649B2 (en) | 2013-11-13 | 2019-07-30 | Salesforce.Com, Inc. | Smart scheduling and reporting for teams |
US9893905B2 (en) | 2013-11-13 | 2018-02-13 | Salesforce.Com, Inc. | Collaborative platform for teams with messaging and learning across groups |
US10146597B2 (en) | 2013-11-14 | 2018-12-04 | Salesforce.Com, Inc. | Delegating handling of computing events of a mobile device application |
US9798764B2 (en) | 2013-12-20 | 2017-10-24 | Salesforce.Com, Inc. | Identifying recurring sequences of user interactions with an application |
US10346882B2 (en) | 2014-01-02 | 2019-07-09 | Salesforce.Com, Inc. | System and method for aggregating web clipping data |
US9753703B2 (en) | 2014-02-04 | 2017-09-05 | Salesforce.Com, Inc. | Generating identifiers for user interface elements of a web page of a web application |
US9577835B2 (en) | 2014-02-07 | 2017-02-21 | Salesforce.Com, Inc. | Online chats without displaying confidential information |
US10324922B2 (en) | 2014-02-13 | 2019-06-18 | Salesforce.Com, Inc. | Providing a timeline of events regarding a database record |
JP5632109B2 (en) * | 2014-03-18 | 2014-11-26 | 株式会社 ディー・エヌ・エー | System capable of providing a plurality of digital contents and method using the same |
US9983943B2 (en) | 2014-03-27 | 2018-05-29 | Salesforce.Com, Inc. | Reversing object manipulations in association with a walkthrough for an application or online service |
US10339126B2 (en) | 2014-08-11 | 2019-07-02 | Salesforce.Com, Inc. | Processing log files using a database system |
US9509715B2 (en) | 2014-08-21 | 2016-11-29 | Salesforce.Com, Inc. | Phishing and threat detection and prevention |
US9774603B2 (en) | 2014-08-22 | 2017-09-26 | Salesforce.Com, Inc. | Managing user permissions in relation to system events occurring in a database system |
US9538377B2 (en) | 2014-08-22 | 2017-01-03 | Salesforce.Com, Inc. | Switching between restricted-access websites on mobile user devices |
US9632852B2 (en) | 2014-08-25 | 2017-04-25 | Salesforce.Com, Inc. | Detecting and managing flooding of multi-tenant message queues |
US10296753B2 (en) | 2014-08-26 | 2019-05-21 | Salesforce.Com, Inc. | Permission comparator |
US10223367B2 (en) | 2014-08-27 | 2019-03-05 | Salesforce.Com, Inc. | Distributed sorting of event log files |
US9805051B2 (en) | 2014-09-10 | 2017-10-31 | Salesforce.Com, Inc. | Synchronization and strategic storage of multiple versions of a file |
US20160078120A1 (en) | 2014-09-11 | 2016-03-17 | Salesforce.Com, Inc. | Extracting and processing metrics from system generated events |
US9619655B2 (en) | 2014-09-12 | 2017-04-11 | Salesforce.Com, Inc. | Cloud-based security profiling, threat analysis and intelligence |
US10095797B2 (en) | 2014-10-03 | 2018-10-09 | Salesforce.Com, Inc. | Suggesting actions for evaluating user performance in an enterprise social network |
US9710127B2 (en) | 2014-10-09 | 2017-07-18 | Salesforce.Com, Inc. | User-customizable permissions in a computing environment |
US9544307B2 (en) | 2014-10-29 | 2017-01-10 | Salesforce.Com, Inc. | Providing a security mechanism on a mobile device |
US9646064B2 (en) | 2014-12-10 | 2017-05-09 | Salesforce.Com, Inc. | Template based software container |
US10552464B2 (en) | 2014-12-18 | 2020-02-04 | Salesforce.Com, Inc. | Identifying relevant material for cases |
US20160191584A1 (en) * | 2014-12-30 | 2016-06-30 | Myine Electronics, Inc. | Synchronized vehicle media content sharing moderation |
US9965541B2 (en) | 2015-02-24 | 2018-05-08 | Salesforce.Com, Inc. | Interest groups based on network feed items |
US10175999B2 (en) | 2015-02-25 | 2019-01-08 | Salesforce.Com, Inc. | Converting video into a walkthrough for an application or an online service |
US10374987B2 (en) | 2015-03-11 | 2019-08-06 | Salesforce.Com, Inc. | Electronic notifications of users concurrently interacting with the same feed item of a social network feed |
US20160294890A1 (en) | 2015-03-31 | 2016-10-06 | Facebook, Inc. | Multi-user media presentation system |
US10296717B2 (en) | 2015-05-14 | 2019-05-21 | Salesforce.Com, Inc. | Automated prescription workflow for device management |
US10083236B2 (en) | 2015-05-29 | 2018-09-25 | Salesforce.Com, Inc. | Database searching using a graph of nodes and edges formed using log node pairs |
US10210218B2 (en) | 2015-06-16 | 2019-02-19 | Salesforce.Com, Inc. | Processing a file to generate a recommendation using a database system |
US9979689B2 (en) | 2015-06-29 | 2018-05-22 | Salesforce.Com, Inc. | Authoring tool for creating new electronic posts |
US10152489B2 (en) | 2015-07-24 | 2018-12-11 | Salesforce.Com, Inc. | Synchronize collaboration entity files |
US9948743B2 (en) | 2015-07-28 | 2018-04-17 | Salesforce.Com, Inc. | Managing memory usage in server systems |
US9811444B2 (en) | 2015-08-04 | 2017-11-07 | Salesforce.Com, Inc. | Testing software enhancements in database applications |
US10157196B2 (en) | 2015-08-12 | 2018-12-18 | Salesforce.Com, Inc. | Intra-platform data migration |
US10049337B2 (en) | 2015-08-31 | 2018-08-14 | Salesforce.Com, Inc. | Quantitative metrics for assessing status of a platform architecture for cloud computing |
US10372421B2 (en) | 2015-08-31 | 2019-08-06 | Salesforce.Com, Inc. | Platform provider architecture creation utilizing platform architecture type unit definitions |
US9767040B2 (en) | 2015-08-31 | 2017-09-19 | Salesforce.Com, Inc. | System and method for generating and storing real-time analytics metric data using an in memory buffer service consumer framework |
US10198484B2 (en) | 2015-09-10 | 2019-02-05 | Salesforce.Com, Inc. | Displaying reduced and detailed visual representations of calendar items based on mouse cursor movement |
US10592474B2 (en) | 2015-09-11 | 2020-03-17 | Salesforce.Com, Inc. | Processing log files using a database system |
US10387439B2 (en) | 2015-09-11 | 2019-08-20 | Salesforce.Com, Inc. | Configuring service consoles based on service feature templates using a database system |
US10430765B2 (en) | 2015-09-11 | 2019-10-01 | Salesforce.Com, Inc. | Processing keyboard input to perform events in relation to calendar items using a web browser-based application or online service |
US10296661B2 (en) | 2015-09-11 | 2019-05-21 | Salesforce.Com, Inc. | Processing log files using a database system |
US10146915B2 (en) | 2015-09-14 | 2018-12-04 | Salesforce.Com, Inc. | Publication of collaborative file to library |
US9658801B2 (en) | 2015-09-15 | 2017-05-23 | Salesforce.Com, Inc. | System having in-memory buffer service, temporary events file storage system and backup events file uploader service |
US10915299B2 (en) | 2015-10-16 | 2021-02-09 | Salesforce.Com, Inc. | Automatically matching start criteria and completion criteria of a walkthrough for an application or online service |
US10187403B2 (en) | 2015-12-02 | 2019-01-22 | Salesforce.Com, Inc. | False positive detection reduction system for network-based attacks |
US10402367B2 (en) | 2016-01-13 | 2019-09-03 | Salesforce.Com, Inc. | Batch job processing using a database system |
US9965634B2 (en) | 2016-01-15 | 2018-05-08 | Salesforce.Com, Inc. | Space-efficient storage of encrypted data |
US10678757B2 (en) | 2016-04-08 | 2020-06-09 | Salesforce.Com, Inc. | Reliable generation of a unique key in a distributed system |
US10057206B2 (en) | 2016-04-18 | 2018-08-21 | Salesforce.Com, Inc. | Combining updates of a social network feed |
US10567311B2 (en) | 2016-04-29 | 2020-02-18 | Salesforce.Com, Inc. | Publisher and share action integration in a user interface for automated messaging |
US10135847B2 (en) | 2016-05-18 | 2018-11-20 | Salesforce.Com, Inc. | Reverse shell network intrusion detection |
US10346451B2 (en) | 2016-05-27 | 2019-07-09 | Salesforce.Com, Inc. | Identifying conversations in unstructured media |
US10380347B2 (en) | 2016-06-08 | 2019-08-13 | Salesforce.Com., Inc. | Hierarchical runtime analysis framework for defining vulnerabilities |
US10140456B2 (en) | 2016-06-08 | 2018-11-27 | Salesforce.Com, Inc. | Runtime analysis of software security vulnerabilities |
US10204345B2 (en) | 2016-06-28 | 2019-02-12 | Salesforce.Com, Inc. | Driving customer service interactions on social media |
US10685004B2 (en) | 2016-07-11 | 2020-06-16 | Salesforce.Com, Inc. | Multiple feature hash map to enable feature selection and efficient memory usage |
US10372934B2 (en) | 2016-07-21 | 2019-08-06 | Salesforce.Com, Inc. | Access controlled queries against user data in a datastore |
US10693922B2 (en) | 2016-07-25 | 2020-06-23 | Salesforce.Com, Inc. | Multi-channel customer engagement platform |
US10410107B2 (en) | 2016-07-26 | 2019-09-10 | Salesforce.Com, Inc. | Natural language platform for database system |
US10241890B2 (en) | 2016-07-28 | 2019-03-26 | Salesforce.Com, Inc. | Hybrid code modification in intermediate language for software application |
US10409816B2 (en) | 2016-08-23 | 2019-09-10 | Salesforce.Com, Inc. | Accessing and displaying shared data |
US10942903B2 (en) | 2016-08-30 | 2021-03-09 | Salesforce.Com, Inc. | Rate limiting in a moderation framework of a database system |
US10482141B2 (en) | 2016-08-30 | 2019-11-19 | Salesforce.Com, Inc. | Extensible moderation framework |
US10346370B2 (en) | 2016-08-30 | 2019-07-09 | Salesforce.Com, Inc. | Rate limiting in a moderation framework of a database system |
US10417210B2 (en) | 2016-08-30 | 2019-09-17 | Salesforce.Com, Inc. | Multi-token matching scheme |
US10896192B2 (en) | 2016-09-08 | 2021-01-19 | Salesforce.Com, Inc. | Allowing in-line edit to data table of linked data of a data store |
US10915519B2 (en) | 2016-09-09 | 2021-02-09 | Salesforce.Com, Inc. | Processing offline updates to records of a database system |
US11232223B2 (en) | 2016-09-13 | 2022-01-25 | Salesforce.Com, Inc. | Providing web application components within remote systems |
US10635659B2 (en) | 2016-09-19 | 2020-04-28 | Salesforce.Com, Inc. | Mobile application bundled with metadata database |
US10671626B2 (en) | 2016-09-27 | 2020-06-02 | Salesforce.Com, Inc. | Identity consolidation in heterogeneous data environment |
US10642474B2 (en) | 2016-09-28 | 2020-05-05 | Salesforce.Com, Inc. | Processing keyboard input to cause movement of items in a user interface of a web browser-based application |
US10572031B2 (en) | 2016-09-28 | 2020-02-25 | Salesforce.Com, Inc. | Processing keyboard input to cause re-sizing of items in a user interface of a web browser-based application |
US10613709B2 (en) | 2016-09-30 | 2020-04-07 | Salesforce.Com, Inc. | Leveraging and managing assessment environments in an assessment hub |
US10984665B2 (en) | 2016-09-30 | 2021-04-20 | Salesforce.Com, Inc. | Customizing sequences of content objects |
US10713604B2 (en) | 2016-09-30 | 2020-07-14 | Salesforce.Com, Inc. | Bi-directional notification framework |
US10380094B2 (en) | 2016-09-30 | 2019-08-13 | Salesforce.Com, Inc. | Custom multi-tenant non-relational platform objects |
US10223136B2 (en) | 2016-09-30 | 2019-03-05 | Salesforce.Com, Inc. | Generating content objects using an integrated development environment |
US10275281B2 (en) | 2016-09-30 | 2019-04-30 | Salesforce.Com, Inc. | Scheduling jobs for processing log files using a database system |
US10212189B2 (en) | 2016-10-11 | 2019-02-19 | Salesforce.Com, Inc. | Authentication of client devices using modified images |
US10778559B2 (en) | 2016-10-17 | 2020-09-15 | Salesforce.Com, Inc. | Facilitating simulation of network conditions in a hybrid application environment |
US10642872B2 (en) | 2016-10-21 | 2020-05-05 | Salesforce.Com, Inc. | System for optimizing content queries |
US10824620B2 (en) | 2016-10-21 | 2020-11-03 | Salesforce.Com, Inc. | Compiling a relational datastore query from a user input |
US10447672B2 (en) | 2016-11-01 | 2019-10-15 | Salesforce.Com, Inc. | Facilitating encrypted persistent storage in browsers |
US10666722B2 (en) | 2016-11-22 | 2020-05-26 | Salesforce.Com, Inc. | Message delivery in a distributed server environment |
US10726039B2 (en) | 2016-11-29 | 2020-07-28 | Salesforce.Com, Inc. | Systems and methods for updating database indexes |
US10116660B2 (en) | 2016-11-30 | 2018-10-30 | Salesforce.Com, Inc. | Security modes for a component-based web security model |
US10129258B2 (en) | 2016-11-30 | 2018-11-13 | Salesforce.Com, Inc. | Secure component-based web applications |
US10891263B2 (en) | 2016-12-09 | 2021-01-12 | Salesforce.Com, Inc. | Systems and methods for providing database updates for data visualization |
US10540369B2 (en) | 2016-12-19 | 2020-01-21 | Salesforce.Com, Inc. | Org sync suspend and resume data sync |
US10496673B2 (en) | 2016-12-27 | 2019-12-03 | Salesforce.Com, Inc. | Org sync async subscribe emails |
US10146581B2 (en) | 2017-01-13 | 2018-12-04 | Salesforce.Com, Inc. | Dynamically configuring a process based on environmental characteristics monitored by a mobile device |
US10411907B2 (en) | 2017-01-25 | 2019-09-10 | Salesforce.Com, Inc. | Secure remote user authentication leveraging public key cryptography and key splitting |
US10545962B2 (en) | 2017-01-25 | 2020-01-28 | Salesforce.Com, Inc. | Relational database instruction validation |
US11190344B2 (en) | 2017-01-25 | 2021-11-30 | Salesforce.Com, Inc. | Secure user authentication based on multiple asymmetric cryptography key pairs |
US10650028B2 (en) | 2017-01-25 | 2020-05-12 | Salesforce.Com, Inc. | Relational database instruction validation |
US10637658B2 (en) | 2017-01-25 | 2020-04-28 | Salesforce.Com, Inc. | Secure internal user authentication leveraging public key cryptography and key splitting |
US10356088B1 (en) | 2017-01-25 | 2019-07-16 | Salesforce.Com, Inc. | User authentication based on multiple asymmetric cryptography key pairs |
US11436223B2 (en) | 2017-01-30 | 2022-09-06 | Salesforce, Inc. | Query pin planner |
US10783188B2 (en) | 2017-02-17 | 2020-09-22 | Salesforce.Com, Inc. | Intelligent embedded self-help service |
US10469438B2 (en) | 2017-02-27 | 2019-11-05 | Salesforce.Com, Inc. | Facilitating integration of collaborative communication platform and document collaboration tool |
US10579368B2 (en) | 2017-03-10 | 2020-03-03 | Salesforce.Com, Inc. | Blockchain version control systems |
US10803080B2 (en) | 2017-03-21 | 2020-10-13 | Salesforce.Com, Inc. | Thread record provider |
US10810230B2 (en) | 2017-03-21 | 2020-10-20 | Salesforce.Com, Inc. | Thread record provider |
US10860377B2 (en) | 2017-03-22 | 2020-12-08 | Salesforce.Com, Inc. | Technologies for identifying thread memory allocation |
US10587401B2 (en) | 2017-04-03 | 2020-03-10 | Salesforce.Com, Inc. | Secure handling of customer-supplied encryption secrets |
US10645138B2 (en) | 2017-05-02 | 2020-05-05 | Salesforce.Com, Inc | Event stream processing system using a coordinating spout instance |
US11663205B2 (en) | 2017-05-04 | 2023-05-30 | Salesforce, Inc. | Technologies for asynchronous querying |
US10536439B2 (en) | 2017-05-08 | 2020-01-14 | Salesforce.Com, Inc. | Client fingerprinting for information system security |
US11054971B2 (en) | 2017-05-23 | 2021-07-06 | Salesforce.Com., Inc. | Modular runtime environment |
US10360136B2 (en) | 2017-05-23 | 2019-07-23 | Salesforce.Com., Inc. | Dashboard execution engine |
US10852926B2 (en) | 2017-05-23 | 2020-12-01 | Salesforce.Com., Inc. | Filter of data presentations via user-generated links |
US10713223B2 (en) | 2017-06-01 | 2020-07-14 | Salesforce.Com, Inc. | Opportunistic gossip-type dissemination of node metrics in server clusters |
US10693951B2 (en) | 2017-06-01 | 2020-06-23 | Salesforce.Com, Inc. | Decentralized, resource aware load distribution in a distributed system |
US10489170B2 (en) | 2017-06-19 | 2019-11-26 | Salesforce.Com, Inc. | Application warmup engine |
US10416952B2 (en) | 2017-06-27 | 2019-09-17 | Salesforce.Com, Inc. | Identifying a viewport within a browser window |
US9961519B1 (en) | 2017-08-01 | 2018-05-01 | Salesforce.Com, Inc. | Facilitating mobile device interaction with an enterprise database system |
US10579641B2 (en) | 2017-08-01 | 2020-03-03 | Salesforce.Com, Inc. | Facilitating mobile device interaction with an enterprise database system |
US10664244B2 (en) | 2017-08-22 | 2020-05-26 | Salesforce.Com, Inc. | Dynamic page previewer for a web application builder |
US10775969B2 (en) | 2017-08-25 | 2020-09-15 | Salesforce.Com, Inc. | System and method for notifying a softphone of navigation change events |
US10402174B2 (en) | 2017-08-25 | 2019-09-03 | Salesforce.Com, Inc. | Overriding component attributes in a web application builder |
US10514896B2 (en) | 2017-08-30 | 2019-12-24 | Salesforce.Com, Inc. | Web application builder framework |
US10540149B2 (en) | 2017-08-30 | 2020-01-21 | Salesforce.Com, Inc. | Property editor component in a web application builder framework |
US10846068B2 (en) | 2017-08-30 | 2020-11-24 | Salesforce.Com, Inc. | Interactions layer in a web application builder framework |
US10509633B2 (en) | 2017-08-30 | 2019-12-17 | Salesforce.Com, Inc. | Base editor component in a web application builder framework |
US10909070B2 (en) | 2017-08-31 | 2021-02-02 | Salesforce.Com, Inc. | Memory efficient policy-based file deletion system |
US10509546B2 (en) | 2017-08-31 | 2019-12-17 | Salesforce.Com, Inc. | History component for single page application |
US10579691B2 (en) | 2017-09-27 | 2020-03-03 | Salesforce.Com, Inc. | Application programming interface representation of multi-tenant non-relational platform objects |
US10579692B2 (en) | 2017-09-27 | 2020-03-03 | Salesforce.Com, Inc. | Composite keys for multi-tenant non-relational platform objects |
US11036357B2 (en) | 2017-09-27 | 2021-06-15 | Salesforce.Com, Inc. | Generating or updating cross-community streams |
US11714811B2 (en) | 2017-09-27 | 2023-08-01 | Salesforce, Inc. | Run-time querying of multi-tenant non-relational platform objects |
US10984070B2 (en) | 2017-10-18 | 2021-04-20 | Salesforce.Com, Inc. | Dynamic content placeholders for microblogging posts |
US10693952B2 (en) | 2017-10-23 | 2020-06-23 | Salesforce.Com, Inc. | Technologies for low latency messaging |
US10387041B2 (en) | 2017-11-02 | 2019-08-20 | Salesforce.Com, Inc. | Data migration system |
US10528816B2 (en) | 2017-11-30 | 2020-01-07 | Salesforce.Com, Inc. | System and method for retrieving and displaying supplemental information and pertinent data using augmented reality |
US11088925B2 (en) | 2017-12-04 | 2021-08-10 | Salesforce.Com, Inc. | Technologies for capacity remediation in multi-tenant cloud environments |
US10887281B2 (en) | 2017-12-19 | 2021-01-05 | Salesforce.Com, Inc. | Automated host-based firewall configuration management |
US10904197B2 (en) | 2017-12-19 | 2021-01-26 | Salesforce.Com, Inc. | Management of members of social network conversations |
US10642468B2 (en) | 2018-01-16 | 2020-05-05 | Salesforce.Com, Inc. | Accessibility lock and accessibility pause |
US11048684B2 (en) | 2018-01-16 | 2021-06-29 | Salesforce.Com, Inc. | Lazy tracking of user system web cache |
US10739991B2 (en) | 2018-01-16 | 2020-08-11 | Salesforce.Com, Inc. | System and method of providing an overlay user interface for a touchscreen display |
US10761904B2 (en) | 2018-01-17 | 2020-09-01 | Salesforce.Com, Inc. | Method and system for synchronizing and joining multiple calls to the same asynchronous code segment |
US10671739B2 (en) | 2018-01-17 | 2020-06-02 | Salesforce.Com, Inc. | Managing the sharing of common library packages with subscribers |
US10671248B2 (en) | 2018-01-18 | 2020-06-02 | Salesforce.Com, Inc. | Live agent chat console |
US10567505B2 (en) | 2018-01-18 | 2020-02-18 | Salesforce.Com, Inc. | Methods and systems for session synchronization and sharing of applications between different user systems of a user |
US11170381B2 (en) | 2018-01-18 | 2021-11-09 | Salesforce.Com, Inc. | Method and system for generating insights regarding a party in response to a call |
US10713070B2 (en) | 2018-01-22 | 2020-07-14 | Salesforce.Com, Inc. | Systems and methods for capturing and visualizing user interactions across devices |
US10693883B2 (en) | 2018-01-22 | 2020-06-23 | Salesforce.Com, Inc. | Technologies for integrating and sandboxing web resources |
US10650337B2 (en) | 2018-01-29 | 2020-05-12 | Salesforce.Com, Inc. | Technical field service inventory management |
US10680958B2 (en) | 2018-01-31 | 2020-06-09 | Salesforce.Com, Inc. | Policy enforcement as a service for third party platforms |
US10778543B2 (en) | 2018-01-31 | 2020-09-15 | Salesforce.Com, Inc. | Opaque interface for enclosed/wrapped asynchronous pushing and/or pulling data between policy enforcement as a service (PEaaS) components |
US11206273B2 (en) | 2018-01-31 | 2021-12-21 | Salesforce.Com, Inc. | Content management system connect |
US10771353B2 (en) | 2018-01-31 | 2020-09-08 | Salesforce.Com, Inc. | Policy enforcement as a service for third party platforms with asynchronous user tracking mechanisms |
US11416116B2 (en) | 2018-01-31 | 2022-08-16 | Salesforce.Com, Inc. | Generation of mobile device notifications |
US10560349B2 (en) | 2018-01-31 | 2020-02-11 | Salesforce.Com, Inc. | Data consistency of policy enforcement for distributed applications |
US10936477B2 (en) | 2018-01-31 | 2021-03-02 | Salesforce.Com, Inc. | End-to-end user interface component testing |
US10853334B2 (en) | 2018-03-02 | 2020-12-01 | Salesforce.Com, Inc. | Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems |
US10664192B2 (en) | 2018-04-26 | 2020-05-26 | Salesforce.Com, Inc. | In-memory service with plural buffer type assignment |
US10936308B2 (en) | 2018-04-30 | 2021-03-02 | Salesforce.Com, Inc. | Multi-tenant collaborative learning |
US10958431B2 (en) | 2018-05-30 | 2021-03-23 | Salesforce.Com, Inc. | Authenticating computing system requests across tenants of a multi-tenant database system |
US11252119B2 (en) | 2018-06-04 | 2022-02-15 | Salesforce.Com, Inc. | Message logging using two-stage message logging mechanisms |
US10878218B2 (en) | 2018-06-18 | 2020-12-29 | Salesforce.Com, Inc. | Device fingerprinting, tracking, and management |
US11218461B2 (en) | 2018-06-29 | 2022-01-04 | Salesforce.Com, Inc. | Authenticating computing system requests with an unknown destination across tenants of a multi-tenant system |
US11423063B2 (en) | 2018-07-31 | 2022-08-23 | Salesforce, Inc. | Flattening hierarchical database records using inverted indexing |
US10664266B2 (en) | 2018-09-04 | 2020-05-26 | Salesforce.Com, Inc. | Maintaining client version affinity during a server cluster upgrade |
US10866959B2 (en) | 2018-09-20 | 2020-12-15 | Salesforce.Com, Inc. | Debug tracing of next best action strategy engine |
US10671236B2 (en) | 2018-09-20 | 2020-06-02 | Salesforce.Com, Inc. | Stateful, contextual, and draggable embedded widget |
US11308067B2 (en) | 2018-09-21 | 2022-04-19 | Salesforce.Com, Inc. | Associating flows in different states to a database record |
US11640407B2 (en) | 2018-09-24 | 2023-05-02 | Salesforce, Inc. | Driving application experience via search inputs |
US11190420B2 (en) | 2018-10-31 | 2021-11-30 | Salesforce.Com, Inc. | Generating events from host based logging for consumption by a network logging host |
US11055162B2 (en) | 2018-10-31 | 2021-07-06 | Salesforce.Com, Inc. | Database system performance degradation detection |
US10853046B2 (en) | 2018-12-13 | 2020-12-01 | Salesforce.Com, Inc. | Deployment of software applications on server clusters |
US11102259B2 (en) * | 2019-01-22 | 2021-08-24 | Apple Inc. | Network system for content playback on multiple devices |
US11194591B2 (en) | 2019-01-23 | 2021-12-07 | Salesforce.Com, Inc. | Scalable software resource loader |
US10802944B2 (en) | 2019-01-23 | 2020-10-13 | Salesforce.Com, Inc. | Dynamically maintaining alarm thresholds for software application performance management |
US10747551B2 (en) | 2019-01-23 | 2020-08-18 | Salesforce.Com, Inc. | Software application optimization |
US11263178B2 (en) | 2019-01-31 | 2022-03-01 | Salesforce.Com, Inc. | Intelligent prediction of future generation of types of data objects based on past growth |
US11526539B2 (en) | 2019-01-31 | 2022-12-13 | Salesforce, Inc. | Temporary reservations in non-relational datastores |
US11216444B2 (en) | 2019-01-31 | 2022-01-04 | Salesforce.Com, Inc. | Scalable event sourcing datastore |
US11042434B2 (en) | 2019-01-31 | 2021-06-22 | Salesforce.Com, Inc. | Database ingestion across internal and external data sources using error rate handling |
US10922095B2 (en) | 2019-04-15 | 2021-02-16 | Salesforce.Com, Inc. | Software application performance regression analysis |
US10922062B2 (en) | 2019-04-15 | 2021-02-16 | Salesforce.Com, Inc. | Software application optimization |
US11113302B2 (en) | 2019-04-23 | 2021-09-07 | Salesforce.Com, Inc. | Updating one or more databases based on dataflow events |
US11245729B2 (en) | 2019-07-09 | 2022-02-08 | Salesforce.Com, Inc. | Group optimization for network communications |
US11170322B2 (en) | 2019-08-13 | 2021-11-09 | Salesforce.Com, Inc. | Using a client-side machine learning model dynamically in a mobile enterprise application on a mobile device |
US11379266B2 (en) | 2019-09-10 | 2022-07-05 | Salesforce.Com, Inc. | Automatically identifying and right sizing instances |
US11403280B2 (en) | 2019-09-25 | 2022-08-02 | Salesforce.Com, Inc. | Master data management technologies |
US11514008B2 (en) | 2019-10-02 | 2022-11-29 | Salesforce, Inc. | Dynamically controlling data migration |
US11403265B2 (en) | 2019-10-02 | 2022-08-02 | Salesforce, Inc. | Dynamically controlling data migration |
US11637831B2 (en) | 2019-10-09 | 2023-04-25 | Salesforce, Inc. | Application programmer interface platform with direct data center access |
US11431663B2 (en) | 2019-10-24 | 2022-08-30 | Salesforce, Inc. | Technologies for predicting personalized message send times |
US11381540B2 (en) | 2019-10-31 | 2022-07-05 | Salesforce, Inc. | Tracking premature events in electronic message processing |
US11431481B2 (en) | 2019-11-07 | 2022-08-30 | Salesforce, Inc. | System for securing memory dumps |
US11507617B2 (en) | 2019-11-15 | 2022-11-22 | Salesforce, Inc. | Unsupervised dialogue topic extraction |
US20210150483A1 (en) | 2019-11-18 | 2021-05-20 | Salesforce.Com, Inc. | System and method for automatically creating personalized courses and trackable achievements |
US11431500B2 (en) | 2019-11-26 | 2022-08-30 | Salesforce, Inc. | Authorization code management for published static applications |
US11120702B2 (en) | 2019-12-01 | 2021-09-14 | Salesforce.Com, Inc. | Systems and methods for validating localized assessments in an external system |
US11354726B2 (en) | 2019-12-20 | 2022-06-07 | Salesforce.Com, Inc. | Change order application programming interfaces |
US11177973B2 (en) | 2020-01-10 | 2021-11-16 | Salesforce.Com, Inc. | Distributed audience computation software service |
US11397736B2 (en) | 2020-01-27 | 2022-07-26 | Salesforce, Inc. | Large scale data ingestion |
US11588840B2 (en) | 2020-01-31 | 2023-02-21 | Salesforce, Inc. | Automated encryption degradation detection, reporting and remediation |
US11711330B2 (en) | 2020-01-31 | 2023-07-25 | Salesforce, Inc. | Out of office message configuration |
US11297501B2 (en) | 2020-01-31 | 2022-04-05 | Salesforce.Com, Inc. | Firewall discovery and management |
US11475049B2 (en) | 2020-01-31 | 2022-10-18 | Salesforce, Inc. | Methods and systems for organization extensibility and cluster scalability |
US11755720B2 (en) | 2020-01-31 | 2023-09-12 | Salesforce, Inc. | Secure membranes and cross namespace communication |
US11233787B2 (en) | 2020-01-31 | 2022-01-25 | Salesforce.Com, Inc. | Automated on call and ad hoc access to restricted resources |
US11915834B2 (en) | 2020-04-09 | 2024-02-27 | Salesforce, Inc. | Efficient volume matching of patients and providers |
US11526551B2 (en) | 2020-04-10 | 2022-12-13 | Salesforce, Inc. | Search query generation based on audio processing |
US11539652B2 (en) | 2020-04-13 | 2022-12-27 | Salesforce, Inc. | Rate limiting actions with a message queue |
US11509608B2 (en) | 2020-04-13 | 2022-11-22 | Salesforce, Inc. | Methods and systems for configuring an email engine |
US11916918B2 (en) | 2020-04-14 | 2024-02-27 | Salesforce, Inc. | System mode override during flow execution |
US11552802B2 (en) | 2020-04-15 | 2023-01-10 | Salesforce, Inc. | Stateless mutual authentication between services |
US11113459B1 (en) | 2020-05-22 | 2021-09-07 | Salesforce.Com, Inc. | Dynamic guidance engine for software customization systems |
US11294648B2 (en) | 2020-05-22 | 2022-04-05 | Salesforce.Com, Inc. | Application development architecture for mobile applications |
US11474793B2 (en) | 2020-05-22 | 2022-10-18 | Salesforce.Com, Inc. | Polymorphic application architecture |
US11762656B2 (en) | 2020-07-13 | 2023-09-19 | Salesforce, Inc. | Service fabrication tool |
US11907385B2 (en) | 2020-09-18 | 2024-02-20 | Salesforce, Inc. | Process flow granular control and execution |
US11460975B2 (en) | 2020-09-18 | 2022-10-04 | Salesforce, Inc. | Metric presentation within a flow builder |
US11687523B2 (en) | 2020-11-25 | 2023-06-27 | Salesforce, Inc. | System and method for efficiently transferring data for offline use |
US11675800B2 (en) | 2020-11-30 | 2023-06-13 | Salesforce, Inc. | Version control and execution on a mobile device |
US11741119B2 (en) | 2021-01-26 | 2023-08-29 | Salesforce, Inc. | Canonical data model for distributed data catalog and metadata exchange |
US11429257B1 (en) | 2021-04-15 | 2022-08-30 | Salesforce.Com, Inc. | Dynamically generated help based on derived hierarchical context |
US11748243B2 (en) | 2021-04-27 | 2023-09-05 | Salesforce, Inc. | Intelligent generation of page objects for user interface testing |
US11636025B2 (en) | 2021-04-27 | 2023-04-25 | Salesforce, Inc. | Intelligent generation of automated user interface testing methods |
US11507729B1 (en) | 2021-05-13 | 2022-11-22 | Salesforce, Inc. | Scoped containers using CSS custom properties and color pairs |
US11681522B2 (en) | 2021-10-21 | 2023-06-20 | Salesforce, Inc. | Self-healing build pipelines for an application build process across distributed computer platforms |
US11442754B1 (en) | 2021-10-27 | 2022-09-13 | Salesforce, Inc. | Targeting system for web page components |
US11755400B2 (en) | 2021-11-30 | 2023-09-12 | Salesforce, Inc. | Error detection and mitigation for software pull requests |
US11734265B1 (en) | 2022-03-08 | 2023-08-22 | Salesforce, Inc. | Automatic GraphQL data source field change handler |
US11893377B2 (en) | 2022-04-27 | 2024-02-06 | Salesforce, Inc. | Dependency-aware rules engine for delivering managed package upgrades |
US11874797B1 (en) | 2022-06-23 | 2024-01-16 | Salesforce, Inc. | Smart privilege escalation in a cloud platform |
US11750460B1 (en) | 2022-10-06 | 2023-09-05 | Salesforce, Inc. | Identifying duplicate entries in views of same and other network management interfaces |
Family Cites Families (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3568156A (en) * | 1967-08-09 | 1971-03-02 | Bell Telephone Labor Inc | Text matching algorithm |
US4384329A (en) * | 1980-12-19 | 1983-05-17 | International Business Machines Corporation | Retrieval of related linked linguistic expressions including synonyms and antonyms |
US4833610A (en) * | 1986-12-16 | 1989-05-23 | International Business Machines Corporation | Morphological/phonetic method for ranking word similarities |
US4996642A (en) * | 1987-10-01 | 1991-02-26 | Neonics, Inc. | System and method for recommending items |
JPH03185561A (en) * | 1989-12-15 | 1991-08-13 | Ricoh Co Ltd | Method for inputting european word |
US5062143A (en) | 1990-02-23 | 1991-10-29 | Harris Corporation | Trigram-based method of language identification |
JP2862626B2 (en) | 1990-03-22 | 1999-03-03 | 株式会社東芝 | Electronic dictionary and information retrieval method |
US5497488A (en) * | 1990-06-12 | 1996-03-05 | Hitachi, Ltd. | System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions |
US5182708A (en) * | 1990-12-11 | 1993-01-26 | Ricoh Corporation | Method and apparatus for classifying text |
US5404505A (en) * | 1991-11-01 | 1995-04-04 | Finisar Corporation | System for scheduling transmission of indexed and requested database tiers on demand at varying repetition rates |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US5371807A (en) | 1992-03-20 | 1994-12-06 | Digital Equipment Corporation | Method and apparatus for text classification |
US5303302A (en) * | 1992-06-18 | 1994-04-12 | Digital Equipment Corporation | Network packet receiver with buffer logic for reassembling interleaved data packets |
GB9220404D0 (en) * | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
US5608622A (en) * | 1992-09-11 | 1997-03-04 | Lucent Technologies Inc. | System for analyzing translations |
US6000008A (en) | 1993-03-11 | 1999-12-07 | Cabletron Systems, Inc. | Method and apparatus for matching data items of variable length in a content addressable memory |
US5392212A (en) * | 1993-07-07 | 1995-02-21 | The United States Of America As Represented By The Secretary Of Commerce | Apparatus for identifying unknown words by comparison to known words |
US5583763A (en) * | 1993-09-09 | 1996-12-10 | Mni Interactive | Method and apparatus for recommending selections based on preferences in a multi-user system |
JPH07114568A (en) | 1993-10-20 | 1995-05-02 | Brother Ind Ltd | Data retrieval device |
US5629867A (en) | 1994-01-25 | 1997-05-13 | Goldman; Robert J. | Selection and retrieval of music from a digital database |
GB9401816D0 (en) | 1994-01-31 | 1994-03-23 | Mckee Neil H | Accessing data held in large databases |
US5548507A (en) | 1994-03-14 | 1996-08-20 | International Business Machines Corporation | Language identification process using coded language words |
US5724567A (en) * | 1994-04-25 | 1998-03-03 | Apple Computer, Inc. | System for directing relevance-ranked data objects to computer users |
US5592511A (en) * | 1994-05-10 | 1997-01-07 | Schoen; Neil C. | Digital customized audio products with user created data and associated distribution and production system |
US5499046A (en) * | 1994-05-23 | 1996-03-12 | Cable Services Technologies, Inc. | CATV distribution system with each channel having its own remote scheduler |
US5539635A (en) | 1994-07-19 | 1996-07-23 | Larson, Jr.; Ernest J. | Radio station program identifier and distribution system |
US5661787A (en) | 1994-10-27 | 1997-08-26 | Pocock; Michael H. | System for on-demand remote access to a self-generating audio recording, storage, indexing and transaction system |
US6029195A (en) * | 1994-11-29 | 2000-02-22 | Herz; Frederick S. M. | System for customized electronic identification of desirable objects |
US5758257A (en) * | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5749081A (en) * | 1995-04-06 | 1998-05-05 | Firefly Network, Inc. | System and method for recommending items to a user |
US5706365A (en) * | 1995-04-10 | 1998-01-06 | Rebus Technology, Inc. | System and method for portable document indexing using n-gram word decomposition |
US5616876A (en) * | 1995-04-19 | 1997-04-01 | Microsoft Corporation | System and methods for selecting music on the basis of subjective content |
US5842010A (en) | 1995-04-24 | 1998-11-24 | Bell Communications Research, Inc. | Periodic wireless data broadcast |
US5883986A (en) * | 1995-06-02 | 1999-03-16 | Xerox Corporation | Method and system for automatic transcription correction |
AU5969896A (en) | 1995-06-07 | 1996-12-30 | International Language Engineering Corporation | Machine assisted translation tools |
US5790423A (en) | 1995-06-14 | 1998-08-04 | Audible, Inc. | Interactive audio transmission receiving and playback system |
US6041311A (en) * | 1995-06-30 | 2000-03-21 | Microsoft Corporation | Method and apparatus for item recommendation using automated collaborative filtering |
IL118580A0 (en) * | 1995-06-30 | 1996-10-16 | Massachusetts Inst Technology | Method and apparatus for item recommendation using automated collaborative filtering |
US6112186A (en) * | 1995-06-30 | 2000-08-29 | Microsoft Corporation | Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering |
US6092049A (en) * | 1995-06-30 | 2000-07-18 | Microsoft Corporation | Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering |
US6049777A (en) * | 1995-06-30 | 2000-04-11 | Microsoft Corporation | Computer-implemented collaborative filtering based method for recommending an item to a user |
US6199082B1 (en) * | 1995-07-17 | 2001-03-06 | Microsoft Corporation | Method for delivering separate design and content in a multimedia publishing system |
DE19526264A1 (en) * | 1995-07-19 | 1997-04-10 | Daimler Benz Ag | Process for creating descriptors for the classification of texts |
US5751672A (en) * | 1995-07-26 | 1998-05-12 | Sony Corporation | Compact disc changer utilizing disc database |
US6505160B1 (en) * | 1995-07-27 | 2003-01-07 | Digimarc Corporation | Connected audio and other media objects |
US5815662A (en) | 1995-08-15 | 1998-09-29 | Ong; Lance | Predictive memory caching for media-on-demand systems |
US5913040A (en) | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
US5713016A (en) * | 1995-09-05 | 1998-01-27 | Electronic Data Systems Corporation | Process and system for determining relevance |
US5708709A (en) * | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
US5726909A (en) * | 1995-12-08 | 1998-03-10 | Krikorian; Thomas M. | Continuous play background music system |
US5931907A (en) | 1996-01-23 | 1999-08-03 | British Telecommunications Public Limited Company | Software agent for comparing locally accessible keywords with meta-information and having pointers associated with distributed information |
US5930526A (en) | 1996-01-24 | 1999-07-27 | Intel Corporation | System for progressive transmission of compressed video including video data of first type of video frame played independently of video data of second type of video frame |
US5790935A (en) | 1996-01-30 | 1998-08-04 | Hughes Aircraft Company | Virtual on-demand digital information delivery system and method |
US5930768A (en) | 1996-02-06 | 1999-07-27 | Supersonic Boom, Inc. | Method and system for remote user controlled manufacturing |
US5864868A (en) * | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
JP3609562B2 (en) * | 1996-11-15 | 2005-01-12 | 株式会社日立製作所 | Network management system |
US5704017A (en) | 1996-02-16 | 1997-12-30 | Microsoft Corporation | Collaborative filtering utilizing a belief network |
US6047327A (en) * | 1996-02-16 | 2000-04-04 | Intel Corporation | System for distributing electronic information to a targeted group of users |
US5764235A (en) | 1996-03-25 | 1998-06-09 | Insight Development Corporation | Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution |
US5881234A (en) * | 1996-04-26 | 1999-03-09 | Schwob; Pierre R. | Method and system to provide internet access to users via non-home service providers |
US5778187A (en) * | 1996-05-09 | 1998-07-07 | Netcast Communications Corp. | Multicasting method and apparatus |
US7266686B1 (en) * | 1996-05-09 | 2007-09-04 | Two-Way Media Llc | Multicasting method and apparatus |
US5956482A (en) | 1996-05-15 | 1999-09-21 | At&T Corp | Multimedia information service access |
US5983176A (en) | 1996-05-24 | 1999-11-09 | Magnifi, Inc. | Evaluation of media content in media files |
US5862220A (en) * | 1996-06-03 | 1999-01-19 | Webtv Networks, Inc. | Method and apparatus for using network address information to improve the performance of network transactions |
US5945988A (en) | 1996-06-06 | 1999-08-31 | Intel Corporation | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
US6064379A (en) | 1996-06-24 | 2000-05-16 | Sun Microsystems, Inc. | System and method for synchronizing presentation of media stream playlists with real time |
PT932398E (en) | 1996-06-28 | 2006-09-29 | Ortho Mcneil Pharm Inc | USE OF THE SURFACE OR ITS DERIVATIVES FOR THE PRODUCTION OF A MEDICINAL PRODUCT FOR THE TREATMENT OF MANIAC-DEPRESSIVE BIPOLAR DISTURBLES |
US5862339A (en) * | 1996-07-09 | 1999-01-19 | Webtv Networks, Inc. | Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server |
US5872921A (en) * | 1996-07-24 | 1999-02-16 | Datalink Systems Corp. | System and method for a real time data stream analyzer and alert system |
US5740134A (en) * | 1996-08-13 | 1998-04-14 | Peterson; Tim | Musical CD creation unit |
US6009382A (en) | 1996-08-19 | 1999-12-28 | International Business Machines Corporation | Word storage table for natural language determination |
JP2001505330A (en) * | 1996-08-22 | 2001-04-17 | ルノー・アンド・オスピー・スピーチ・プロダクツ・ナームローゼ・ベンノートシャープ | Method and apparatus for providing word breaks in a text stream |
US5819291A (en) | 1996-08-23 | 1998-10-06 | General Electric Company | Matching new customer records to existing customer records in a large business database using hash key |
US6185427B1 (en) * | 1996-09-06 | 2001-02-06 | Snaptrack, Inc. | Distributed satellite position system processing and application network |
US5819160A (en) | 1996-09-18 | 1998-10-06 | At&T Corp | Programmable radio subscription system for receiving selectively defined information |
US5721827A (en) * | 1996-10-02 | 1998-02-24 | James Logan | System for electrically distributing personalized information |
US6199076B1 (en) * | 1996-10-02 | 2001-03-06 | James Logan | Audio program player including a dynamic program selection controller |
US6931451B1 (en) * | 1996-10-03 | 2005-08-16 | Gotuit Media Corp. | Systems and methods for modifying broadcast programming |
US6052717A (en) * | 1996-10-23 | 2000-04-18 | Family Systems, Ltd. | Interactive web book system |
US6031795A (en) * | 1996-12-02 | 2000-02-29 | Thomson Consumer Electronics, Inc. | Method and apparatus for programming a jukebox with information related to content on media contained therein |
US5913041A (en) | 1996-12-09 | 1999-06-15 | Hewlett-Packard Company | System for determining data transfer rates in accordance with log information relates to history of data transfer activities that independently stored in content servers |
US5931901A (en) * | 1996-12-09 | 1999-08-03 | Robert L. Wolfe | Programmed music on demand from the internet |
US6021203A (en) * | 1996-12-11 | 2000-02-01 | Microsoft Corporation | Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security |
BR9714949A (en) * | 1996-12-20 | 2005-04-12 | Princeton Video Image Inc | Superior adjustment device for targeted electronic insertion of video indications |
US6138142A (en) * | 1996-12-20 | 2000-10-24 | Intel Corporation | Method for providing customized Web information based on attributes of the requester |
US5898833A (en) * | 1996-12-31 | 1999-04-27 | Intel Corporation | Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data |
US5950189A (en) | 1997-01-02 | 1999-09-07 | At&T Corp | Retrieval system and method |
WO1998031114A1 (en) * | 1997-01-06 | 1998-07-16 | Bellsouth Corporation | Method and system for tracking network use |
US6128663A (en) * | 1997-02-11 | 2000-10-03 | Invention Depot, Inc. | Method and apparatus for customization of information content provided to a requestor over a network using demographic information yet the user remains anonymous to the server |
JP3116851B2 (en) * | 1997-02-24 | 2000-12-11 | 日本電気株式会社 | Information filtering method and apparatus |
JP3887867B2 (en) | 1997-02-26 | 2007-02-28 | 株式会社日立製作所 | How to register structured documents |
US5884312A (en) * | 1997-02-28 | 1999-03-16 | Electronic Data Systems Corporation | System and method for securely accessing information from disparate data sources through a network |
US6097719A (en) | 1997-03-11 | 2000-08-01 | Bell Atlantic Network Services, Inc. | Public IP transport network |
DE69820141T2 (en) * | 1997-03-27 | 2004-06-17 | Victor Company of Japan, Ltd., Yokohama | Time code signal generator |
US5926207A (en) * | 1997-03-31 | 1999-07-20 | Compaq Computer Corporation | Channel server functionality |
US7167857B2 (en) * | 1997-04-15 | 2007-01-23 | Gracenote, Inc. | Method and system for finding approximate matches in database |
US5987525A (en) | 1997-04-15 | 1999-11-16 | Cddb, Inc. | Network delivery of interactive entertainment synchronized to playback of audio recordings |
WO1998048360A1 (en) * | 1997-04-22 | 1998-10-29 | Greg Hetherington | Method and apparatus for processing free-format data |
US6070185A (en) | 1997-05-02 | 2000-05-30 | Lucent Technologies Inc. | Technique for obtaining information and services over a communication network |
US6065058A (en) | 1997-05-09 | 2000-05-16 | International Business Machines Corp. | Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy |
US6370513B1 (en) * | 1997-08-08 | 2002-04-09 | Parasoft Corporation | Method and apparatus for automated selection, organization, and recommendation of items |
US6310886B1 (en) * | 1997-08-28 | 2001-10-30 | Tivo, Inc. | Method and apparatus implementing a multimedia digital network |
US6047251A (en) * | 1997-09-15 | 2000-04-04 | Caere Corporation | Automatic language identification system for multilingual optical character recognition |
US6185560B1 (en) * | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
US6205126B1 (en) * | 1997-09-30 | 2001-03-20 | Ericsson Inc. | Method and apparatus for automatically determining an ISP local access number based on device location |
JPH11110324A (en) * | 1997-10-07 | 1999-04-23 | Hitachi Ltd | Substitutive server selector and substitutive server |
US6026398A (en) * | 1997-10-16 | 2000-02-15 | Imarket, Incorporated | System and methods for searching and matching databases |
DE69712485T2 (en) * | 1997-10-23 | 2002-12-12 | Sony Int Europe Gmbh | Voice interface for a home network |
US6026439A (en) * | 1997-10-28 | 2000-02-15 | International Business Machines Corporation | File transfers using playlists |
US5996015A (en) | 1997-10-31 | 1999-11-30 | International Business Machines Corporation | Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory |
US5941951A (en) | 1997-10-31 | 1999-08-24 | International Business Machines Corporation | Methods for real-time deterministic delivery of multimedia data in a client/server system |
US6047268A (en) * | 1997-11-04 | 2000-04-04 | A.T.&T. Corporation | Method and apparatus for billing for transactions conducted over the internet |
US6134532A (en) | 1997-11-14 | 2000-10-17 | Aptex Software, Inc. | System and method for optimal adaptive matching of users to most relevant entity and information in real-time |
US20020002039A1 (en) * | 1998-06-12 | 2002-01-03 | Safi Qureshey | Network-enabled audio device |
US6012098A (en) * | 1998-02-23 | 2000-01-04 | International Business Machines Corp. | Servlet pairing for isolation of the retrieval and rendering of data |
US6081508A (en) * | 1998-02-25 | 2000-06-27 | Indus River Networks, Inc. | Remote computer communication |
US6108686A (en) * | 1998-03-02 | 2000-08-22 | Williams, Jr.; Henry R. | Agent-based on-line information retrieval and viewing system |
US6064980A (en) * | 1998-03-17 | 2000-05-16 | Amazon.Com, Inc. | System and methods for collaborative recommendations |
US6065051A (en) | 1998-04-15 | 2000-05-16 | Hewlett-Packard Company | Apparatus and method for communication between multiple browsers |
US6246672B1 (en) * | 1998-04-28 | 2001-06-12 | International Business Machines Corp. | Singlecast interactive radio system |
US6370315B1 (en) * | 1998-04-30 | 2002-04-09 | Matsushita Electric Industrial Co., Ltd. | Playback time compression and expansion method and apparatus |
US6005603A (en) | 1998-05-15 | 1999-12-21 | International Business Machines Corporation | Control of a system for processing a stream of information based on information content |
DE69841239D1 (en) * | 1998-05-27 | 2009-11-26 | Sony France Sa | Sequence generation that uses a formulation as a condition fulfillment problem |
US6182050B1 (en) * | 1998-05-28 | 2001-01-30 | Acceleration Software International Corporation | Advertisements distributed on-line using target criteria screening with method for maintaining end user privacy |
US6031797A (en) * | 1998-06-11 | 2000-02-29 | Sony Corporation | Media playback device capable of shuffled playback based on a user's preferences |
US7146627B1 (en) * | 1998-06-12 | 2006-12-05 | Metabyte Networks, Inc. | Method and apparatus for delivery of targeted video programming |
US5969283A (en) * | 1998-06-17 | 1999-10-19 | Looney Productions, Llc | Music organizer and entertainment center |
US6182142B1 (en) | 1998-07-10 | 2001-01-30 | Encommerce, Inc. | Distributed access management of information resources |
US6334127B1 (en) * | 1998-07-17 | 2001-12-25 | Net Perceptions, Inc. | System, method and article of manufacture for making serendipity-weighted recommendations to a user |
US20010044850A1 (en) * | 1998-07-22 | 2001-11-22 | Uri Raz | Method and apparatus for determining the order of streaming modules |
US7769620B1 (en) * | 1998-09-01 | 2010-08-03 | Dennis Fernandez | Adaptive direct transaction for networked client group |
US6181692B1 (en) * | 1998-09-03 | 2001-01-30 | Genesys Telecommunications Laboratories Inc | Method and apparatus for data routing, delivery, and authentication in a packet data network |
US6317881B1 (en) * | 1998-11-04 | 2001-11-13 | Intel Corporation | Method and apparatus for collecting and providing viewer feedback to a broadcast |
US6330592B1 (en) * | 1998-12-05 | 2001-12-11 | Vignette Corporation | Method, memory, product, and code for displaying pre-customized content associated with visitor data |
US6351761B1 (en) * | 1998-12-18 | 2002-02-26 | At&T Corporation | Information stream management push-pull based server for gathering and distributing articles and messages specified by the user |
AU1763600A (en) * | 1998-12-22 | 2000-07-12 | John Klayh | System and method for directed advertising |
US6167369A (en) | 1998-12-23 | 2000-12-26 | Xerox Company | Automatic language identification using both N-gram and word information |
US6085242A (en) | 1999-01-05 | 2000-07-04 | Chandra; Rohit | Method for managing a repository of user information using a personalized uniform locator |
US20020013852A1 (en) * | 2000-03-03 | 2002-01-31 | Craig Janik | System for providing content, management, and interactivity for thin client devices |
US6557042B1 (en) * | 1999-03-19 | 2003-04-29 | Microsoft Corporation | Multimedia summary generation employing user feedback |
US6526580B2 (en) * | 1999-04-16 | 2003-02-25 | Digeo, Inc. | Broadband data broadcasting service |
US6393158B1 (en) * | 1999-04-23 | 2002-05-21 | Monkeymedia, Inc. | Method and storage device for expanding and contracting continuous play media seamlessly |
US6327590B1 (en) * | 1999-05-05 | 2001-12-04 | Xerox Corporation | System and method for collaborative ranking of search results employing user and group profiles derived from document collection content analysis |
US7500258B1 (en) * | 1999-05-10 | 2009-03-03 | Prime Research Alliance E., Inc. | Advertisement subgroups for digital streams |
US6522769B1 (en) * | 1999-05-19 | 2003-02-18 | Digimarc Corporation | Reconfiguring a watermark detector |
US6411992B1 (en) * | 1999-05-28 | 2002-06-25 | Qwest Communications Int'l, Inc. | Method and apparatus for broadcasting information over a network |
US6102406A (en) | 1999-06-07 | 2000-08-15 | Steven A. Miles | Internet-based advertising scheme employing scavenger hunt metaphor |
US6604239B1 (en) * | 1999-06-25 | 2003-08-05 | Eyescene Inc. | System and method for virtual television program rating |
US6546421B1 (en) * | 1999-06-30 | 2003-04-08 | Siemens Corporate Research, Inc. | System and method for automatic selection of internet data streams |
US6438579B1 (en) * | 1999-07-16 | 2002-08-20 | Agent Arts, Inc. | Automated content and collaboration-based system and methods for determining and providing content recommendations |
US6557026B1 (en) * | 1999-09-29 | 2003-04-29 | Morphism, L.L.C. | System and apparatus for dynamically generating audible notices from an information network |
US7072846B1 (en) * | 1999-11-16 | 2006-07-04 | Emergent Music Llc | Clusters for rapid artist-audience matching |
US6192340B1 (en) * | 1999-10-19 | 2001-02-20 | Max Abecassis | Integration of music from a personal library with real-time information |
US6526411B1 (en) * | 1999-11-15 | 2003-02-25 | Sean Ward | System and method for creating dynamic playlists |
AU2091101A (en) * | 1999-12-14 | 2001-06-25 | Citibank, N.A. | Method and system for database query |
US6343317B1 (en) * | 1999-12-29 | 2002-01-29 | Harry A. Glorikian | Internet system for connecting client-travelers with geographically-associated data |
US6993590B1 (en) * | 2000-01-13 | 2006-01-31 | Inktomi Corporation | Method of creating data streams for user-specific usage data gathering systems |
US6389467B1 (en) * | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
US7228305B1 (en) * | 2000-01-24 | 2007-06-05 | Friskit, Inc. | Rating system for streaming media playback system |
US20030007507A1 (en) * | 2000-08-01 | 2003-01-09 | Doron Rajwan | Data streaming |
US6532477B1 (en) * | 2000-02-23 | 2003-03-11 | Sun Microsystems, Inc. | Method and apparatus for generating an audio signature for a data item |
US8261315B2 (en) * | 2000-03-02 | 2012-09-04 | Tivo Inc. | Multicasting multimedia content distribution system |
US7133924B1 (en) * | 2000-03-08 | 2006-11-07 | Music Choice | Personalized audio system and method |
US7167895B1 (en) * | 2000-03-22 | 2007-01-23 | Intel Corporation | Signaling method and apparatus to provide content on demand in a broadcast system |
US20020054087A1 (en) * | 2000-04-17 | 2002-05-09 | Roland Noll | Channel dancer |
US7010537B2 (en) * | 2000-04-27 | 2006-03-07 | Friskit, Inc. | Method and system for visual network searching |
US20020010789A1 (en) * | 2000-05-04 | 2002-01-24 | Lord Frank H. | Broadcast multimedia delivery system |
AU2001256036A1 (en) * | 2000-05-09 | 2001-11-20 | 868970 Ontario Inc. | Synchronized convergence platform |
US20020049717A1 (en) * | 2000-05-10 | 2002-04-25 | Routtenberg Michael D. | Digital content distribution system and method |
US8024419B2 (en) * | 2000-05-12 | 2011-09-20 | Sony Corporation | Method and system for remote access of personal music |
US7075000B2 (en) * | 2000-06-29 | 2006-07-11 | Musicgenome.Com Inc. | System and method for prediction of musical preferences |
US6662231B1 (en) * | 2000-06-30 | 2003-12-09 | Sei Information Technology | Method and system for subscriber-based audio service over a communication network |
US7206775B2 (en) * | 2000-07-06 | 2007-04-17 | Microsoft Corporation | System and methods for the automatic transmission of new, high affinity media |
US6925495B2 (en) * | 2000-07-13 | 2005-08-02 | Vendaria Media, Inc. | Method and system for delivering and monitoring an on-demand playlist over a network using a template |
US6748395B1 (en) * | 2000-07-14 | 2004-06-08 | Microsoft Corporation | System and method for dynamic playlist of media |
US20020010621A1 (en) * | 2000-07-19 | 2002-01-24 | Bell Christopher Nathan | Incentives for content consumption |
US7958251B2 (en) * | 2000-08-04 | 2011-06-07 | Goldman Sachs & Co. | Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients |
DE10042318A1 (en) * | 2000-08-29 | 2002-03-14 | Degussa | Matt pure powder coatings |
US7058694B1 (en) * | 2000-09-07 | 2006-06-06 | Clix Network, Inc. | Method for comparing two trinary logic representations in the process of customizing radio broadcasting |
US6725446B1 (en) * | 2000-11-01 | 2004-04-20 | Digital Integrator, Inc. | Information distribution method and system |
US7085845B2 (en) * | 2001-05-09 | 2006-08-01 | Gene Fein | Method, apparatus and computer program product for identifying a playing media file and tracking associated user preferences |
US20060206478A1 (en) * | 2001-05-16 | 2006-09-14 | Pandora Media, Inc. | Playlist generating methods |
US7003515B1 (en) * | 2001-05-16 | 2006-02-21 | Pandora Media, Inc. | Consumer item matching method and system |
US20060212442A1 (en) * | 2001-05-16 | 2006-09-21 | Pandora Media, Inc. | Methods of Presenting and Providing Content to a User |
US7962482B2 (en) * | 2001-05-16 | 2011-06-14 | Pandora Media, Inc. | Methods and systems for utilizing contextual feedback to generate and modify playlists |
US7167533B2 (en) * | 2001-06-30 | 2007-01-23 | Intel Corporation | Apparatus and method for communication link receiver having adaptive clock phase shifting |
KR100961461B1 (en) * | 2001-07-31 | 2010-06-08 | 그레이스노트 아이엔씨 | Multiple step identification of recordings |
US7081579B2 (en) * | 2002-10-03 | 2006-07-25 | Polyphonic Human Media Interface, S.L. | Method and system for music recommendation |
US7022907B2 (en) * | 2004-03-25 | 2006-04-04 | Microsoft Corporation | Automatic music mood detection |
US7396990B2 (en) * | 2005-12-09 | 2008-07-08 | Microsoft Corporation | Automatic music mood detection |
-
2001
- 2001-07-10 US US09/903,033 patent/US7454509B2/en not_active Expired - Lifetime
- 2001-07-10 GB GB0301315A patent/GB2380581A/en not_active Withdrawn
- 2001-07-10 AU AU2001271980A patent/AU2001271980B2/en not_active Ceased
- 2001-07-10 WO PCT/US2001/021829 patent/WO2002005140A1/en active Application Filing
- 2001-07-10 EP EP01951043A patent/EP1307831A4/en not_active Ceased
- 2001-07-10 JP JP2002508680A patent/JP4236922B2/en not_active Expired - Lifetime
- 2001-07-10 DE DE10196421T patent/DE10196421T5/en not_active Ceased
- 2001-07-10 AU AU7198001A patent/AU7198001A/en active Pending
-
2008
- 2008-03-26 JP JP2008111826A patent/JP5009852B2/en not_active Expired - Lifetime
- 2008-09-26 US US12/238,717 patent/US20090083435A1/en not_active Abandoned
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7454509B2 (en) | Online playback system with community bias | |
AU2001271980A1 (en) | Online playback system with community bias | |
US11573979B2 (en) | Method for sharing and searching playlists | |
US9292179B2 (en) | System and method for identifying music content in a P2P real time recommendation network | |
KR100530475B1 (en) | Internet radio and broadcast method | |
US8583791B2 (en) | Maintaining a minimum level of real time media recommendations in the absence of online friends | |
US7970922B2 (en) | P2P real time media recommendations | |
EP1705584A1 (en) | Methods, systems, and computer-readable media for generating an ordered list of one or more media items | |
Hayes et al. | Smart Radio-a proposal | |
KR100691549B1 (en) | Online playback system with community bias |