In a world of social applications, new forms of media are born. An image uploaded to a photo-sharing site can be rated, tagged, linked to, commented on, reviewed, discussed, distributed, and shared. These actions create metadata: number of times viewed, number of times emailed, places linked from, number of ratings, popular tags, and more. This annotation and usage data coupled with the object itself becomes a new kind of media. Bill Scott calls it a Rich Internet Object.
We’ve built many applications were Rich Internet Objects are made, but few that allow them to be collected and distributed as a unique form of media. APIs, such as Amazon’s Web Services, allow developers to access “detailed item information, including prices, images, customer reviews, and more” but a rich Amazon book object is not something I can easily manipulate. I can’t buy it or take it with me to my local computer or another Web site.
Portability is important because the data that makes up a Rich Internet Object can come from multiple sources. For instance if I purchase a music download from Apple’s iTunes, there’s a wealth of digital information that could accompany it: reviews by critics and fans, discussions about the meaning of song lyrics, recommendations for similar artists, links to related content, and more. This metadata could be found on multiple sites and gradually enhance the original media to the point where it becomes a new object.
It’s times like this that I wish I had a firmer grasp of Computer Science principles. As the concepts underlying object-orientated programming present a powerful way for interface designers to think about the design of systems that enable the creation and distribution of Rich Internet Objects.
“The idea behind object-oriented programming is that a computer program may be seen as composed of a collection of individual units, or objects, that act on each other. Each object is capable of receiving messages, processing data, and sending messages to other objects.” –Wikipedia