Advanced Relationship Attribute Syntax

From MusicBrainz Wiki

Defining Attributes

Relationship Editors can specify Advanced Relationship Attributes in the "Edit Rel.Types" menu (

The list starts with a "ROOT" node which cannot be edited, but you can add new sub-nodes to that node.

  • Nodes that have no children will be yes/no attributes. Those are displayed as checkboxes when a user edits a Relationship Type.
  • Nodes which have one (two???) or more children will be drop-down attributes. Those are displayed as drop down boxes.

Adding Attributes to Relationship Types

When editing an Advanced Relationship Type, all existing attributes are presented. Each one has:

  • a checkbox to enable the attribute for that relationship type.
  • a "Min." and a "Max." value.
    • These values specify how often the attribute can be selected:
      • Choose 0-1 for an optional attribute.
      • Choose 1-1 for a compulsory attribute.
      • Choose a higher number if you want people to select multiple values. (This only really makes sense for drop-down attributes.)

Displaying Attributes

Advanced Relationship Attributes are displayed in the link phrases on the server using the following syntax:

  • {<attribute>}
    • Displays the value <attribute> is set to.
  • {<attribute>: <text>}
    • Displays <text> if <attribute> is set.
  • {<attribute>: <truetext>|<falsetext>}
    • Displays <truetext> if <attribute> is set, else it displays <falsetext>.

All texts can contain a percent sign (%) which will be replaced by the value the attribute is set to.


{instrument:has %|was} {additional:additionally} arranged by

Instrument is a drop-down attribute, additional is a yes/no attribute. Thus it would result in "has Violins arranged by" or "was additionally arranged by".