This week I installed the Slacker Android application on my phone. This version gives the user the ability to "cache" stations so you can listen to them when not connected to a network. I really wasn't using this functionality to handle lack of service coverage, but to save battery, since my phone's radio doesn't need to turn on while playing a station.
While setting up and listening to the Slacker stations, I had to mark songs that I liked and didn't like. This is the same thing that have done on my Pandora and Last.fm stations. Unfortunately, Pandora and Last.fm do not let you export your ratings.
The same problem also exists for video. For example, Netflix has a list of ratings that a user has given to DVDs, and Flixster has ratings that users have given to movies.
This got me thinking that there could be a be a better solution for the user. A user should be able to delegate a "preference service" to maintain their ratings. When a user signs into a service that would like access to a user's ratings, like Pandora or Netflix, they are prompted to grant permission for the new service to access the user's ratings. If the user agrees, the user's ratings can be imported into the service. The user could also grant the new service the ability to update their ratings, so for example if a user gives a rating to a movie in Netflix, it could update the users rating in the rating store.
Since we would want this connection to be easy to setup, the user shouldn't have to manually setup this linking. One way to solve this is to extend the frederated login services to contain the uri for the user's rating store. For example, this could be easily added to the OpenID record for the user returned when the user authenticates.
We would have have to agree on the name space for the rateable items. I propose using Freebase ids as the unique identifiers. Then services that use the ratings can map these ids to its own name space.
This idea would allow the user to quickly train new services with their ratings, as well as the ability to export their data.