AdvancedRelationshipTypeDevelopment

Historical Information

About the Development of Advanced Relationship Types

Status: The following text and discussion documents the work of setting up an initial set of AdvancedRelationshipTypes. It contains some valuable information about the logic of the system, but is unfortunately a bit messy. Current improvement of AR types is happening on AdvancedRelationshipTypeProposal. --DonRedman


List of Relationship types for AdvancedRelationships

Following recent discussion about implementing AdvancedRelationships, here is an initial listing of proposed relationship types.

Note: Please take some time to read and understand the AdvancedRelationships proposal and the SimpleAdvancedRelationshipsInterface that will be implemented before proposing new relationships. --DonRedman

Relationship types are to be given in a full sentence in both directions. (Though I did not finish this for all).

While I agree with Tarragon, that we should eventually split Artist into Performer and Person, I disregard this now because the main goal is to get AR implemented quickly. --DonRedman

Link designers: Please keep in mind that all links now have a begin and an end date. We need to incorporate that into this document. I've started to do that in a few places. -- RobertKaye


I removed URL - URL from the AR link features since its pointless, so I removed it from the table above as well -- RobertKaye


Release - Release relationship types

Release - Artist relationship types

Most of these relationship types should be valid for Track - Artist as well

Artist - Artist relationship types

There is a lot to do here. Actually AR will change the StyleGuidelines. With AR it seems to be much more convenient to encourage something like "John Scofield & Mike Stern" (for a single CD) if we can then say:

For cooperation do we want to attempt to indicate the level of cooperation? (e.g. back-up singing vs composing the song and lyrics are two different levels of cooperation.) -- RobertKaye

I would attempt to stick to objective measures (same record label, shared personnel, duets, covers of same songs, on same compilations etc.) rather than rely on a vague and totally subjective 'similarity', particularly if it is totally binary on-off rather than a rating with degrees of similarity.

Release - Track relationship types

Artist - Track relationship types

Most of the Release - Artist relationships apply here as well.

Covers should not be done as Artist - track relationships. A song is a cover of another song but a song is composed by an artist.

There seems to be a whole sub tree with ReleaseArtist in common here. That should be exploited or it will be a pain in the ass to take advantage of. -- RobertKaye

Track - Track relationship types

In descending order of similarity:

Can we display the artist names along with the track names?

Because something like [WWW] "More Than This is a cover of More Than This" isn't very informative. "More Than This (by Bill Murray) is a cover of More Than This (by Roxy Music)" would be nicer. Or is this something for the FancyAdvancedRelationshipsInterface? --ZeroGravitas

Release - URL relationship types

Artist - URL relationship types

Track - URL relationship types

Same as Release - URL


Discussion

AR will incur a very drastic change to the database schema. Even if we try to keep the impact minimal (and I try very hard) there will have to be one of these changes:

  1. Artists with no attributed release and tracks will not be deleted if they have a relationship. or

  2. There will be additional elements like Person and perhaps Performer (unless this is done with the Artist field), and (less important) Country, Language etc. These need a table for themselves but do not necessarily be part of the current schema (which links Artists, Releases and Tracks). However add and delete edits would have to be written and integrated into the system.

I know that Tarragon favors the second way and I favor the first for the short term future. I think this decision is up to Robert. --DonRedman


Cover Versions

After further thought... How about instead of Cover Version, we have an AR Track-Track link that says "These are recordings of the Same Song".

Assuming the release date is set on the earlier track, who covered who is calculated automatically. This approach avoids data redundancy. All we need is a report to suggest linking of songs with the same titles. This also maps to re-recordings of a song by the original artist.

Note that [WWW] The Covers Project defines the original artist as the first person to release a song:

Sooner or later we're going to hit this sort of case, so seems like a good idea to think about it now... --ZeroGravitas


Multi-relationships

There seems to be a general issue here for the Release - Release and Track - Track relationships, like "in box set with", "same song" and "translation" where the relationship is implicitly commutative (i.e. A <REL> B implies B <REL> A) and transitive (i.e. A <REL> B, and B <REL> C, implies A <REL> C) where the current one-to-one nature of AdvancedRelationships isn't quite what we want, and we would rather have a "collection" of some sort where all the entities are related to all the other ones. This can be implemented by introducing a new entity type (Collection) and using one-to-one relationships between the collection entities and the individual releases or tracks, but I'm not sure that's the best way to handle it. The current hacks of selecting a "first release" (for sets) or "original version" (for translations or covers) are, well, kind of hacky. @alex


Covers and such

As alex pointed out, you cannot do wild clustering for covers. Therefore you must have a single element to which all other elements relate to. I propose to do this by time. The root relationship would then be

then we can destinguish the sets; i.e. from what set is this the first-time release? sets I can think of:

What do you think of this? --DonRedman

Instruments

I think that for indicating instruments we will want to have a deeper link tree. I would suggest doing something like:

We should see if we can find an instrument breakdown that we can use somewhere. For now, lets not worry about how to represent this in the UI -- lets come up with the right datastructure and then we'll figure out how to make it palatable for our users. -- RobertKaye

but then you have to think about what can be done when we run into instances where someone is both BackingGuitar and LeadVocals ~mo (xd, 'bathtub')

last edited 2007-04-01 20:34:49 by murdos

MusicBrainz web site  *  Support / Contact