Relationships: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
(add a section on terminology)
m ("his" -> "their" when talking about an arbitrary artist)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Relationships are a way to represent all the different ways in which [[MusicBrainz Entity|entities]] are connected to each other and to URLs outside MusicBrainz. To know more about how to add them, see [[How to Add Relationships]].
{| width="100%"
| style="border:0;" |
{| cellspacing="0" cellpadding="0" style="clear: {{{clear|left}}}; margin-bottom: .5em; float: left; padding: .5em 1.4em .8em 0; background: none; width: {{{width|{{{1|auto}}}}}};" {{#if:{{{limit|}}}|class="toclimit-{{{limit}}}"}}
| __TOC__
|}
{| cellspacing="0" cellpadding="10" style="clear: {{{clear|right}}}; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width: {{{width|{{{1|auto}}}}}};" {{#if:{{{limit|}}}|class="toclimit-{{{limit}}}"}}
| {{AdvancedRelationshipNavigation}}
|}
|}


* [[recording:271051c3-1a4c-4612-8c6e-2a5400e37b56|The Rockafeller Skank]] by Fatboy Slim includes a sample from the Just Brothers song [[recording:0ad2aa31-cf5f-4ef4-93d8-4568d404323b|Sliced Tomato]].
An advanced relationship is a way to represent all the various inter-relationships between [[MusicBrainz Entity|entities]], as well as relationships from entities to information and resources found outside of the [[MusicBrainz Database|MusicBrainz database]].

For example:
* The song [[track:271051c3-1a4c-4612-8c6e-2a5400e37b56|The Rockafeller Skank]] by Fatboy Slim includes a sample from the Just Brothers song [[track:0ad2aa31-cf5f-4ef4-93d8-4568d404323b|Sliced Tomato]].
* [[artist:85994c53-062f-462e-95fd-3a521dd1fcd2|Paul Di'Anno]] was a member of [[artist:ca891d65-d9b0-4258-89f7-e6ba29d83767|Iron Maiden]] from 1977 until 1981.
* [[artist:85994c53-062f-462e-95fd-3a521dd1fcd2|Paul Di'Anno]] was a member of [[artist:ca891d65-d9b0-4258-89f7-e6ba29d83767|Iron Maiden]] from 1977 until 1981.
* The Metallica album [[release:5997cf87-5225-4830-9edf-358638a24905|St. Anger]] was produced by [[artist:4f0730d0-fd52-4818-8a5d-f3f69ce8f378|Bob Rock]] & [[artist:65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab|Metallica]].
* The Metallica album [[release:5997cf87-5225-4830-9edf-358638a24905|St. Anger]] was produced by [[artist:4f0730d0-fd52-4818-8a5d-f3f69ce8f378|Bob Rock]] & [[artist:65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab|Metallica]].
* [[artist:486067ad-56d6-48b5-957b-d6cfe3e1af73|Perfume]] have an official site at http://www.perfume-web.jp/.


==Relationship types==
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, [[About MusicBrainz|MusicBrainz]] has a fairly simple way to deal with extremely complicated data.

==Advanced Relationship Types==

Each relationship entered by a user belongs to one [[:Category:Relationship Type|relationship type]]. These types define:
* Which entities will be related (artists, albums, tracks, etc)
* What [[:Category:Relationship Attribute|attributes]] go along with the relationship
* The link phrases of the relationships, which describe relationship information in an English sentence.

For example, [[Performer Relationship Type]] can be used to link an artist to a track on which they performed. Performer Relationship Type then allows an optional [[Instrument Relationship Attribute]] to specify the instrument that the artist played. Due to the link phrase, the site can construct an English sentence from this data, so when the data is displayed, you see "[[track:64d0220a-0587-43c9-b7e3-809e8c06542b|Runaway Train]] has/had guitar performed by [[artist:618b6900-0618-4f1e-b835-bccb17f84294|Eric Clapton]]".

==Getting Started==

There is a tutorial at [[How To Make Relationships]].

==Style==

Please see [[Advanced Relationship Style]].

==Modifying relationships==

[[:Category:Relationship Type|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 and attributes is limited to selected users, called [[Relationship Editor]]s. They implement new relationships and changes to existing relationships following the passage of a [[Proposals|proposal]] to do so.


There are a huge number of different relationship types. The lists (organised per types of entities they connect) can be checked at the [[mb:relationships|relationship type table]].
While there are very few relationship editors, anyone can make such a [[Proposals|proposal]] for new relationships or changes to existing relationships. Though most editors are not able to ''directly'' edit the types and attributes of advanced relationships, it can be useful to know what [[Advanced Relationship Attribute Syntax]] itself supports, as it will be used to implement any passed relationship proposal.


==History==
==Guidelines==


Please see the [[Style/Relationships|general guidelines for relationships]], the [[Style/Relationships/URLs|guidelines for URLs]], and also the documentation for the specific relationship type you're using, accessible from the [[mb:relationships|relationship type table]].
Advanced relationships were first officially proposed [[How Advanced Relationships Works|here]]. [[User:DaveEvans|Dave Evans]] created the database structure to allow relationships, and wrote tools for allowing the user to define a type of relationship. However, the code for linking two entities together and the UI to manipulate relationships themselves was left undone.


==Credits==
In November of 2004, [[User:RobertKaye|Robert Kaye]] took over working on the user interface and [[User:DonRedman|Don Redman]] became the [[Proposals#Definitions|Idea Champion]] for advanced relationships. The design documents of the time, including the [[Advanced Relationship Type Development|original set of relationship types]], make for interesting reading: [[Simple Advanced Relationships Interface]] describes the initial development of the UI and model for editing relationships, while [[Fancy Advanced Relationships Interface]] describes some then-future ideas for development of that relationships UI and model.
Credits allow indicating that, for example, songwriting was credited to an artist's legal name, and not their main (performance) name.


==Attributes==
On April 10, 2005, development was completed, and advanced relationship support was officially added to the database.
Relationships can have attributes which modify the relationship. There is a [[mb:relationship-attributes|list of all attributes]], but the attributes which are available, and how they should be used, depends on the relationship type, so see the documentation for the relationship you want to use for more information.


===Dates===
Robert Kaye and Don Redman defined the original set of [[:Category:Relationship Type|relationship types]]. All additions, removals, and changes to that list of relationship types since then have been made by the [[Proposals#Definitions|Style Council]].


Some relationships have two date fields, a begin date and an end date, to store the period of time during which the relationship applied. The date can be the year, the year and the month or the full date. It is optional, so it can also be left blank. As with other attributes, see the documentation for the relationship types you are using.
==Terminology==
There are three different names for this same feature: "Advanced Relationship", "Relationship" and "link", as well as the acronym "AR" and the prefix "l_". "link" and "l_" are mostly used in the database schema; the web site display uses "Relationship" pretty much exclusively, and the wiki uses all the versions indiscriminately.


[[Category:Documentation]][[Category:WikiDocs Page]][[Category:Advanced Relationship]]
[[Category:Documentation]] [[Category:WikiDocs Page]] [[Category:Relationships]]

Latest revision as of 08:54, 10 September 2023

Relationships are a way to represent all the different ways in which entities are connected to each other and to URLs outside MusicBrainz. To know more about how to add them, see How to Add Relationships.

Relationship types

There are a huge number of different relationship types. The lists (organised per types of entities they connect) can be checked at the relationship type table.

Guidelines

Please see the general guidelines for relationships, the guidelines for URLs, and also the documentation for the specific relationship type you're using, accessible from the relationship type table.

Credits

Credits allow indicating that, for example, songwriting was credited to an artist's legal name, and not their main (performance) name.

Attributes

Relationships can have attributes which modify the relationship. There is a list of all attributes, but the attributes which are available, and how they should be used, depends on the relationship type, so see the documentation for the relationship you want to use for more information.

Dates

Some relationships have two date fields, a begin date and an end date, to store the period of time during which the relationship applied. The date can be the year, the year and the month or the full date. It is optional, so it can also be left blank. As with other attributes, see the documentation for the relationship types you are using.