Skip to content
Robert Randolph edited this page Jan 12, 2022 · 15 revisions

The mbrainz-sample schema is an adaptation of a subset of the full MusicBrainz schema. We didn't include some entities, and we made some simplifying assumptions and combined some entities. In particular:

  • We omit any notion of Work
  • We combine Track, Tracklist and Recording into simply "track"
  • We renamed Release group to "abstractRelease"

Abstract Release vs. Release vs. Medium

NOTE: abstractRelease data are omitted from the 1968-1973 subset database.

(Adapted from the MusicBrainz schema docs)

An "abstractRelease" is an abstract "album" entity (e.g. "The Wall" by Pink Floyd). A "release" is something you can buy in your music store (e.g. the 1984 US vinyl release of "The Wall" by Columbia, as opposed to the 2000 US CD release by Capitol Records).

Therefore, when you query for releases e.g. by name, you may see duplicate releases. To find just the "work of art" level album entity, query for abstractRelease.

The media are the physical components comprising a release (disks, CDs, tapes, cartridges, piano rolls). One medium will have several tracks, and the total tracks across all media represent the track list of the release.

Relationship Diagram

Mbrainz Relationships

Entities

abstractRelease

NOTE: abstractRelease data are omitted from the 1968-1973 subset database.

attributetypecardinality
:abstractRelease/nameindexed stringone
:abstractRelease/artistCreditfulltext stringone
:abstractRelease/giduniquely identifying, indexed uuidone
:abstractRelease/typeenum ref, one of:
  • :release.type/album
  • :release.type/single
  • :release.type/ep
  • :release.type/audiobook
  • :release.type/other
one
:abstractRelease/artistsrefmany

artist

attributetypecardinality
:artist/startYearindexed longone
:artist/startMonthlongone
:artist/startDaylongone
:artist/endYearlongone
:artist/endMonthlongone
:artist/endDaylongone
:artist/sortNameindexed stringone
:artist/nameindexed, fulltext stringone
:artist/giduniquely identifying, indexed uuidone
:artist/countryrefone
:artist/typeenum ref, one of:
  • :artist.type/person
  • :artist.type/group
  • :artist.type/other
one
:artist/genderenum ref, one of:
  • :artist.gender/male
  • :artist.gender/female
  • :artist.gender/other
one

country

attributetypecardinality
:country/nameunique stringone

label

attributetypecardinality
:label/startYearindexed longone
:label/startMonthlongone
:label/startDaylongone
:label/endYearlongone
:label/endMonthlongone
:label/endDaylongone
:label/sortNameindexed stringone
:label/nameindexed, fulltext stringone
:label/giduniquely identifying, indexed uuidone
:label/countryrefone
:label/typeenum ref, one of:
  • :label.type/distributor
  • :label.type/holding
  • :label.type/production
  • :label.type/originalProduction
  • :label.type/bootlegProduction
  • :label.type/reissueProduction
  • :label.type/publisher
one

language

attributetypecardinality
:language/nameunique stringone

medium

attributetypecardinality
:medium/positionlongone
:medium/trackCountlongone
:medium/formatenum ref, one of:
  • :medium.format/dvdVideo
  • :medium.format/laserDisc
  • :medium.format/cd
  • :medium.format/hddvd
  • :medium.format/vhs
  • :medium.format/svcd
  • :medium.format/dcc
  • :medium.format/cdr
  • :medium.format/slotMusic
  • :medium.format/bluray
  • :medium.format/waxCylinder
  • :medium.format/cartridge
  • :medium.format/umd
  • :medium.format/miniDisc
  • :medium.format/vinyl
  • :medium.format/vinyl12
  • :medium.format/sacd
  • :medium.format/other
  • :medium.format/dualDisc
  • :medium.format/vinyl10
  • :medium.format/dvd
  • :medium.format/pianoRoll
  • :medium.format/betamax
  • :medium.format/vcd
  • :medium.format/dat
  • :medium.format/reel
  • :medium.format/vinyl7
  • :medium.format/dvdAudio
  • :medium.format/digitalMedia
  • :medium.format/hdcd
  • :medium.format/videotape
  • :medium.format/usbFlashDrive
  • :medium.format/cassette
  • :medium.format/cd8cm
one
:medium/trackscomponent refmany

release

attributetypecardinality
:release/yearindexed longone
:release/monthlongone
:release/daylongone
:release/artistCreditfulltext stringone
:release/statusindexed stringone
:release/barcodestringone
:release/nameindexed, fulltext stringone
:release/giduniquely identifying, indexed uuidone
:release/artistsrefmany
:release/abstractReleaserefone
:release/languagerefone
:release/mediacomponent refmany
:release/packagingenum ref, one of:
  • :release.packaging/jewelCase
  • :release.packaging/slimJewelCase
  • :release.packaging/digipak
  • :release.packaging/none
  • :release.packaging/keepCase
  • :release.packaging/cardboardPaperSleeve
  • :release.packaging/other
one
:release/scriptrefone
:release/labelrefone
:release/countryrefone

script

attributetypecardinality
:script/nameunique stringone

track

attributetypecardinality
:track/positionlongone
:track/durationindexed longone
:track/artistCreditfulltext stringone
:track/nameindexed, fulltext stringone
:track/artistsrefmany