History:Advanced Entity

From MusicBrainz Wiki
Revision as of 15:51, 19 March 2009 by Zout (talk | contribs) (move discussion from main page)
Jump to navigationJump to search


New Entities Proposal

Status: Attention.png This page is a collective proposal for new entities that have not yet been implemented, their behaviour and how to present them.

See DataElementsForAdvancedRelationships for an older proposal.


At the moment we have the following CoreEntities:

  • Album
  • Track

We already have the following AdvancedEntity:

  • URL

The following entities with the described behaviour are proposed:

  • Label For record labels, subdivisions of labels and distributors
    • field: LabelCode
    • AR to URL possible (label website (use "official website"?), Discogs entry, Wikipedia, discography site)
    • AR to Artist ("is/was signed to from ... to ...")
    • AR to Series
    • AR to Label ("is sub-division of", "is distributor of"?)
    • album listing with all albums which have the id of this label in a release
    • "View Mods" for related edits
  • Series For compilation series
    • examples: Café del Mar, Ministry of Sound, Kontor, Hed Kandi, ...
    • AR to URL possible (series website (use "official website"?), Wikipedia, discography site)
    • lists all albums belonging to this series. Linkage through AR or through album attribute?
    • Some attribute for the volume number an album has in a series, which makes sorting easier for inconsistent numbering styles
    • AR to other series: "is subseries of" - for example Ministry of Sound consists of several sub series that have their own numbering
    • "View Mods" for related edits
  • Studio For recording studios
    • AR to Album/Track ("has [instrument] recordings from ... to ... in")

Alternatively an entity Location could be used for both recording studios and concert venues.

  • MetaEntities We currently have problems linking entities of type Artist, Album or Track together. The reason is: all of them represent a concrete object. A track is a concrete performance, recording and release of the abstract idea of a song. If you want to link a track being a cover of another one you don't want to link it to another track by the original performer but to the song of that performer. In the same way an album as in the database is an actual release and not the abstract idea of an album (the music industry uses the same word for both). But often you don't want to link information to one release of an album but to all of them as a group. We have some pages describing these problems. FundamentalMismatchOfMusicBrainzEntitiesAndReality describes the difference between the abstract objects and what we have in the database. LinkingDifferentArtistNames and DontMakeRelationshipClusters list linking problems and try to give some solutions like linking to the earliest objects and such. Though meta entities / groups could solve problems magically I think. Compare the graphics in DontMakeRelationshipClusters to the following to see what I mean: grouplinking.png
    • ArtistGroups Imagine a group representing a real live person. The group then contains Artist entities representing all names the person performs under - also if the person performs under his LegalName you have an entity for that in the group - or if the person performs under a short version of his LegalName ("Paul Peter Dingbat" -> "Paul Dingbat"). Still a problem: what do about legal name changes? Add them as entities to the group? A great advantage would be that the entities could easily inherit information like birth date, Wikipedia links, ... from their group. One could also use these groups for bands (some bands use aliases for some works or think about line-up changes and band name changes). But here you could get overlapping problems.
    • AlbumGroups These would be called differently depending the proposal, so I just list the proposals here:

Additionally one could think of different types of AlbumGroups like:

One AlbumEntity could be member of several groups - like Apocalyptica's "Cult: Special Edition (disc 1)" is in the same EditionGroup like the original "Cult" release but also in a BoxSet together with "Cult: Special Edition (disc 2)" (but that could lead to multi-inheritance problems if you also want to use an inheritance mechanism like for ArtistGroups). And you have to differentiate between a group of albums representing the same abstract album idea and groups of albums representing the same recording (important for linking recording information to the group).

    • TrackGroups Track groups would be the equivalent to the abstract idea of a Song while the Track entity stores data for one version/release of a track (which perhaps still could be used for several albums - so one Track entity could be on an album and a compilation).
      • Easier to link covers, participating artist infos and so on

Like for albums you have to separate between groups of tracks representing the same abstract song (of one artist!) and groups of tracks representing the same recording of a song. For new more detailed proposals for such groups see AlbumRework and TrackGrouping.


(More detailed description missing...)

Label entities could then be used in extended release infos of albums. Both labels and series help to keep an overview of the related releases and the related mods.

Open question: link albums belonging to a series to the Series entity instead of VariousArtists? Or better leave VA as the artist because a Series entity is not an Artist entity and this could cause implementation problems? So better link it *additionally* to the Series?