Notes on MusicBrainz RDF Schema

Some notes to accompany the schema (HTML). Note that the schema only encompasses the metadata vocabulary (MM) not the query vocab (MQ).

Notes

A given Track can have one or more trmids (relatable id). Although in principle the id is supposed to be a unique acoustic fingerprint for a track, differences in codecs, etc. can yield different trmids for tracks that sound the same. However a given trmid only identifies a single track (or version of a track) and so can be safely labelled as an Inverse-Functional property.

I've defined duration, etc as simple RDF literals. It's possible to refine that using XML Schema data types to state, e.g. that a duration is an integer.

albumList is used not only as a property of Artist but also for mq:Result. The schema currently states that the domain of albumList is Artist, an additional super-class might need to be introduced to encompass both uses.

Relationships to other Schemas

Just as FOAF is tied into Wordnet, I thought it important that the musicbrainz concepts should be similarly related to standard dictionary definitions.

As the use of the MusicBrainz Artist class covers both individuals and bands, we can relate the Wordnet term "Musician" to MusicBrainz "Artist":


  <rdf:Class rdf:about="http://xmlns.com/wordnet/1.6/Musician">
    <rdfs:subClassOf rdf:resource="http://musicbrainz.org/mm/mm-2.1#Artist"/>  
  </rdf:Class>

Therefore all musicians are artists, but not all artists are musicians.

The Album class is another generic term, and actually means "compact disk" (the type of release is a property of this class, rather than a sub-class). Wordnet has a term AudioCD which can be related to this class as follows:


  <rdfs:Class rdf:about="http://musicbrainz.org/mm/mm-2.1#Album">
    <rdfs:subClassOf rdf:resource="http://xmlns.com/wordnet/1.6/AudioCD"/>
  </rdfs:Class>

TODO: tie Track to a suitable term, not sure that wn:MusicalComposition is correct.

Use of OWL

The first draft of the schema makes little use of OWL, just some simple ontology description terms, plus a few Inverse-Functional properties. It's possible that this could be usefully expanded, I'd welcome comments/thoughts on this. I'm not an OWL expert and there may be benefits that I'm missing.

One area that I thought OWL might be useful is in constraining the releaseStatus and releaseType properties, e.g. at most one of each, with AllValuesFrom one of the relevant sub-classes (Type, Status). I also wasn't sure whether it would be possible to define sub-classes of Album based on the value of these properties.

One area that OWL could be useful is to state that an Album must have a dc:title and dc:creator. However I'm not sure whether that is overly restrictive, or necessary.

Notes on SongBuddy RDF

The current output from SongBuddy has entries like this:


<foaf:Person>
    <mm:trackList>
      <rdf:Seq>
              <rdf:li rdf:resource="http://www.roboranch.com/music/BackToYou.mp3"/>
              ...
      </rdf:Seq>
    </mm:trackList>            
</foaf:Person>
<mm:Track rdf:about="http://www.roboranch.com/music/BackToYou.mp3">
 <dc:title>Back To You</dc:title>
 <dc:creator
  rdf:resource="http://www.songbuddy.com/lc/soaf/artist/name=Amy+McKenna"/>
</mm:Track>

I think that there are a couple of issues with this usage. Firstly the reuse of the mm:trackList property seems inappropriate, an alternate way of modelling this would be as some kind of playlist property. At present using my schema an RDF processor would infer from the above usage that that particular instance of foaf:Person was also an mb:Album!

Secondly while the entries use the MusicBrainz vocabulary they don't use MusicBrainz identifiers. The RDF statements are therefore about a specific MP3, or SongBuddy view of an artist. This will make it difficult to merge SongBuddy data with that from MusicBrainz. An alternative would be to lookup MusicBrainz identifiers where these are available and use those instead.

An rdfs:seeAlso property could be used to direct users to the SongBuddy page for an artist, and a "location" or similar property to indicate from where the track can be downloaded.