This is a draft of the Music Ontology revision 1.01. I took all the propositions posted by people on the mailing list since I released the revision 1.00 and then I wrote that new revision.
The ontology took a major shift by its deep integration with the FRBR (Functional Requirements for Bibliographic Records) and FOAF (Friend Of A Friend) ontologies.
As you will see with the classes schemas bellow, all the MO classes related with music are sub classes of FRBR classes. The FRBR ontology is used as the basement of musical works. So as you will see, a mo:Album is a sub class of a mo:MusicalWork and this class is a sub class of the frbr:Work class. This means that an album is ultimately a work in the sense of the FRBR ontology. The FRBR ontology is better explained by reading the Functional Requirements for Bibliographic Records – Final Report.
In this revision of the MO ontology, you should read these terms as:
Work: An abstract notion of an artistic or intellectual creation.
Musical work: Distinct intellectual or artistic musical creation.
Expression: A realization of a single work usually in a physical form.
Musical expression: Intellectual or artistic realization of a musical work.
Manifestation: The physical embodiment of one or more expressions.
Musical manifestation: Physical embodiment of an expression of a musical work.
Item: An exemplar of a single manifestation.
Corporate body: Organization or group of individuals and/or other organizations involved in the music market.
Music Ontology Classes Hierarchy
There are the schemas of the hierarchy of the Music Ontology classes. The pink bubbles are super-classes of external ontologies, green bubbles are super-classes of the MO ontology and blue bubbles are subclasses of the MO ontology.
Change log
There are the changes I made to the revision 1.00 of the MO ontology. All the changes have been wrote into the RDFS document describing the ontology. Please read it to see what changed for each classes and properties. Also note that I cleaned and redefined all the definitions in relation with the FRBR and FOAF ontologies.
So I outlined the changed bellow:
- Suppressed class mo:Type
- Suppressed class mo:Other
These classes were useless and confusing.
- Suppressed class mo:EP
- Suppressed class mo:Longplay
- Suppressed class mo:Single
I deleted these three classes because they are all albums with less or more tracks. Since it doesn’t add anything to the semantic of the ontology, I choose to remove them to focus the ontology. Now one should describe each of these type of release as a mo:Album.
- Changed the name of mo:Status for mo:ReleaseStatus
The class has a better meaning that way since the subclasses of mo:Status were in fact release status.
- Added classe mo:Genre
- Added classe mo:Classical
- Added classe mo:Rock
- Added classe mo:Jazz
- Added classe mo:World
- Added classe mo:Hiphop
- Added classe mo:Country
- Added classe mo:Blues
- Added classe mo:Electronica
- Added classe mo:Gospel
- Added classe mo:Funk
- Added classe mo: Pop
- Added classe mo:Melodic
- Added classe mo:Reggae
These classes handle a first level musical genre. One can now extend the ontology by creating new genres and/or subgenres of the existing genres.
- Added classe mo:Instrument
- Added classe mo:String
- Added classe mo:Woodwind
- Added classe mo:Brass
- Added classe mo: Percussion
- Added classe mo:Keyboard
- Added classe mo: Digital
These classes handle a first level of instrumentation. One can now extend the ontology by creating classes for instruments belonging to these instrument categories.
- Added classe mo:MusicalManifestation
- Added classe mo: Dat
- Added classe mo: Dcc
- Added classe mo:Cd
- Added classe mo:Md
- Added classe mo: Dvda
- Added classe mo:Sacd
- Added classe mo:Vinyl
- Added classe mo:Megnetictape
- Added classe mo:Steam
These classes handle a first set of possible mediums of musical recording and distribution technologies.
- Added classe mo:MusicalWork
- Added classe mo:MusicalExpression
- Added classe mo:MusicalManifestation
Creating subclasses of the frbr:Work, frbr:Expression and frbr:Manifestation specifically to express musical works.
- Added classe mo:SoloMusicArtist
- Added classe mo:MusicGroup
- Added classe mo:CorporateBody
- Added classe mo:Label
These classes describe musical people, group of people or corporate body in relation with the FOAF ontology. That way, all the FOAF, BIO, etc. ontologies can now be use to define an artist, a group of artist a corporate body and their relationship.
- Changed the name of mo:Artist for mo:MusicArtist
Specifying the semantic of the mo:Artist by renaming it to mo:MusicArtist to explicit the fact that the ontology talk about musicians (and not writers, etc.).
- Added property mo: possess_item
- Added property mo:want_item
- Added property mo:sell_item
- Added property mo:exchange_item
These new properties are used by people to express the fact they possess exemplar of a musical manifestation, and if they want to sell or exchange it, or if they want an exemplar of a musical manifestation, and that, directly in their FOAF profile.
These properties will be quite useful to let people trade CDs for example. Check bellow for an example of how this will be implemented.
- Added property mo:instrument
Link a person, a group of person, a musical work, the expression of a musical work, the manifestation of a musical work or an exemplar of a manifestation to a musical instrument.
- Added property mo:key
- Added property mo:timber
- Added property mo: pitch
- Added property mo:lyric
Adding expressiveness to describe mo:Track.
- Added property mo:encoding
- Added property mo:stream_url
- Suppressed property mo:miscellaneoused
- Suppressed property mo: performance_name
Deleting useless properties.
Finally I changed the domain and the range of most of the existing properties to reflect the changes in the way classes now work (the FRBR and FOAF ontologies).
An example of how the new mo:has_item, mo:sell_item, mo:exchange_item and mo:want_item are working
These new properties are quite interesting since it will enable people to trade music using their FOAF profile. There is an example of how these properties should be use. You have my FOAF profile, the properties that explicit the fact that I have and want to sell or exchange some musical albums and you have the description of these albums.
The resulting graph can be queried with SPARQL queries like:
This query will return the name of the people selling the album “Kill ’em All”.
PREFIX mo: <http://purl.org/ontology/mo/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name WHERE { ?seller a foaf: Person; mo:sell_item <http://mm.Music.org/album/a89e1d92-5381-4dab-ba51-733137d0e431>; foaf:name ?name. }
But what if someone doesn’t know the resource that define an album, or if the album is defined by more than one resource?
This query will return the name of the people wanting the albums having the word “Love” in its title.
PREFIX mo: <http://purl.org/ontology/mo/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?title WHERE { ?seller a foaf: Person; mo:sell_item ?album; foaf:name ?name. ?album a mo:Album; rdfs:label ?title. FILTER regex(?title, "love", "i") }
Would you like to make people happy? Then you can easily get the name of people selling an album and get the name of people that want that album.
PREFIX mo: <http://purl.org/ontology/mo/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name_seller ?name_buyer WHERE { { ?seller a foaf: Person; foaf:name ?name_seller; mo:sell_item <http://mm.Music.org/album/a89e1d92-5381-4dab-ba51-733137d0e431>. } UNION { ?seller a foaf: Person; foaf:name ?name_seller; mo:exchange_item <http://mm.Music.org/album/a89e1d92-5381-4dab-ba51-733137d0e431>. } UNION { ?buyer a foaf: Person; foaf:name ?name_buyer; mo:want_item <http://mm.Music.org/album/a89e1d92-5381-4dab-ba51-733137d0e431>. } }
Finally… do what you want 🙂
Conclusion
Please take the time to revise this draft if you are interested in the ontology. I will wait some days before rewriting the documentation of the ontology to make sure that people agree with the draft and to make sure that there is no major error.
Technorati: music | ontology | mo | foaf | frbr | revision | rdf | rdfs |