From MusicBrainz Wiki
Revision as of 19:24, 23 July 2005 by WikiMigrationBot (talk) ((Imported from MoinMoin))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page is a stub

for the future AdvancedRelationships documentation

Status: This page is absolute work in progress, it is not a documentation of what AdvancedRelationships is but of the issues that we have with it now. --DonRedman


Here's some introductory text I wrote to explain AR. I don't know whether it belongs here or on the main AdvancedRelationships page --MatthewExon

Advanced Relationships is a way to represent all the "miscellaneous" relationships between Artists, Albums and Tracks that are stored in the MusicBrainzDatabase. For example:

All of this information is stored in a single table in the database, and there is a single user interface for adding new information.

Each relationship entered by a user belongs to one AdvancedRelationshipType. These types define:

  • Which entities will be related (artists, albums, tracks, etc)
  • What AdvancedRelationshipAttributes go along with the relationship
  • The LinkPhrases of the relationships, which describe how to write the relationship information in English sentences.

These AdvancedRelationshipTypes are themselves simply entries in another database table. This means that new ones can be defined, old ones deleted, and existing ones modified through the same editing and voting system used for any other kind of MusicBrainz data. Since this data is much more critical than any other individual entries, editing of AdvancedRelationshipTypes is limited to selected users, called RelationshipEditors. However, there are more relationship editors than developers, and the process of adding a new relationship type is much simpler than adding a new database table.

Therefore, the AdvancedRelationships system represents a way to extend the MusicBrainz schema quickly and easily, and thus store far more diverse and complicated data.

Definition of AdvancedRelationshipTypes


This came up on the MailingList. What mixing should be represented by which relationship.

  • Remix:
  • Taking existing material and mixing it together differently or with new material to create something new. Use the RemixRelationship for this
  • Compilation:
  • like a mixtape of existing songs (mostly unchanged perhaps crossfaded into each other). There is currently no relationship for this. I would propose a CompilationRelationship
  • Audio production:
  • taking the recorded tracks and mixing them together. Use a ProductionRelationship like "mix engineer" for this.

The boundaries between Remix and Compilation can be hard to determine. the RemixRelationship should only be used for remixes. the "performed turntables" relationship messes into this, as well.


There are now multiple levels at which an artist's role on a song can be recorded: you can relate the artist to the song, to the album, or to the band that recorded the song. So it's now non-trivial to figure out the full list of people who should be credited for any given track. The page ArtistRoleInheritance goes into the implications of this in some depth.

Alert.png The Markup on This Page Needs Fixing 

This wiki page has been ported by the WikiMigrationBot, and this link to the WikiMigrationBotReport flags that this page contains wiki markup that needs fixing.

WikiNameInTitles on these lines:

  • 1 = for the future AdvancedRelationships documentation =
  • 27 == Definition of AdvancedRelationshipTypes ==
  • 29 === MixMeansDifferntThings ===
  • 39 == ArtistRoleInheritance ==