Relationships

From MusicBrainz Wiki


Introduction

Advanced Relationships is a way to represent all the "miscellaneous" relationships between Artists, Releases and Tracks that are stored in the MusicBrainz Database. 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. In this way, MusicBrainz has a fairly simple way to deal with extremely complicated data.

Getting Started

There is a tutorial at How To Make Relationships.

Advanced Relationship Types

Each relationship entered by a user belongs to one Advanced Relationship Type. These types define:

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

For example, the relationship type "Performer Relationship Type" can be used to link an artist (for example, Eric Clapton) to a track on which they performed (for example, Runaway Train). The definition of Performer Relationship Type allows an optional attribute to specify the instrument he played (Instrument Relationship Attribute), so you can say if he played guitar. The definition also says how to construct an English sentence out of this data, so that the website can display the words "Runaway Train was performed by Eric Clapton".

These Advanced Relationship Types are themselves simply entries in another database table. This means that new ones can be defined, old ones deleted, and existing ones modified through a relatively simple user-interface which does not require hacking the database internals. Since this data is much more important than any other individual entries, editing of Advanced Relationship Types is limited to selected users, called Relationship Editors. 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, so this is a very fast way to expand and improve the MusicBrainz Database.

A list of all of the relationship types defined so far is kept at Advanced Relationship Types. That page also links to documentation for each individual type.

Style

Please see Advanced Relationship Style.

Template:AdvancedRelationshipFooter