Shaun McCance wrote: > On Wed, 2006-10-25 at 11:20 +0100, Jamie McCracken wrote: >> James "Doc" Livingston wrote: >>> What would be really cool is support for field groups, but that would >>> probably require a fairly large change. So you could do things like >>> correctly storing the release dates when a track is on multiple albums: >>> >>> Title=Some Track >>> Artist=Artist >>> (Album=X, ReleaseDate=2000/1/1) >>> (Album=Y, ReleaseDate=2001/2/2) >> that would be tricky unless the album was a separate object > > I spent a good long while trying to make a complete metadata > ontology for musical recordings. Some of these things just > get really tricky. > > The release date is clearly a property of the album itself, > so the proposal above is basically trying to store album > properties without actually talking about the album. > > A related but harder issue is when you have some property > that really belongs to the track-album pair, and not to > either particular object. (Think of child properties in > GTK+: "expand" belongs neither to a GtkBox or to whichever > GtkWidget is inside it, but rather to the pair). > > Track numbers are the easiest example of this. A track > might be number 2 on Album 1 and number 7 on Album 2. > Clearly, the track itself can't just have a track number. > And the track number obviously doesn't belong to either > album. > > One clever mathy way of addressing this is to recognize > that a relation R on S and T is just subset R ⊂ T x S. > Then a combo property can be a mapping from T x S into > some other set. > > The more practical way of solving this is to say that > a track is on only one album, and then create relations > to say that two tracks are basically the same. >
As far as I can see, a music album is a separate first class object. The relationship between albums and tracks is a many-to many one (IE one track can be on many albums and one album can contain many tracks) so this cannot realistically be modelled as a single object or table. The way RhythmBox uses albums also suggests its a separate first class object Its easy enough for us to this implement it like that in tracker. -- Mr Jamie McCracken http://jamiemcc.livejournal.com/ _______________________________________________ desktop-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/desktop-devel-list
