Chapter 5: Realizing a Metadata Framework 193 is no need to make another one unless there is some special metadata that needs to be harvested. Once the harvester is ready, the metadata it creates is available for all applications, not just for Faye’s. Those programmers who know Faye’s namespace and the semantics of her metadata can use all of the metadata her harvester creates, while others can still use those attributes that were already defi ned in the music schema. Faye’s MP3 application also has playlist management functions; thus, it needs metadata about playlists. Similarly to MP3 metadata, she creates a schema object MP3_playlist by extending an existing playlist object. She gives it one new Boolean property defi nition, random play. The property defi nition she creates dictates that the property can exist only once for any MP3_playlist, and if it exists, is must have a single Boolean value. Faye states in her metadata namespace documentation that if the value of random play property is true, then the playlist must be played in random order, while if the value is false or non-existing, the songs are played in a linear order. Now if a user of her application creates playlist, the application creates an instance of an MP3 playlist schema object. One such instance may have a URI playlist://favor- ites with a title property (derived from the parent defi nition of MP3_playlist) “My Greatest Hits” and random play set to true. When the end-user of Faye’s application will add songs into the playlists, the application will create a new contains relationship between the playlist and the song. Once the application has created a contains relationship from the playlist to the song, the MdE will automatically create a new is part of relationships from the songs to the playlist. Perhaps one of the songs will be downloaded from some Internet music store and has been protected by DRM. Therefore, its metadata instance also has a DRM fl ag property set to true. For these situations, Faye programs her music application to add requires – relationship from the song to the DRM certifi cate it needs. And again the MdE automatically creates relationship is required by from the DRM object to song. Faye can now make her application show immediately if some MP3 song cannot be played since it misses the DRM certifi cate. When Faye runs her MP3 player, it quickly obtains a list all MP3 songs in the device, since it simply requests all metadata objects that are an instance of the MP3 schema. For MdE, it is a simple database query. The application automatically obtains all MP3 songs stored in her media server, since the metadata about them is also stored in the device. The application can also display all basic information about them quickly, since the metadata is immediately available and there is no need to read binary fi les.
Personal Content Experience Page 216 Page 218