Music Ontology Revision 1.11: the music creation workflow

 
A new revision of the Music Ontology has been released today. The main changes have been made to clarify the description of the music creation workflow. We also added the possibility to describe musical shows and festivals.

All in all, the revision 1.11 of the Music Ontology is certainly the most stable and crystallized incarnation of the ontology.

The change log is available here

 
New projects using the Music Ontology

New projects started to use the Music Ontology to describe musical things. There are a couple of them:

Oscar’s Pendora and Last.fm recommendation system:

Oscar also describe how to:

Yves’s mapping of Magnatune using the Music Ontology.

Also, the Musicbrainz RDF dump using the Music Ontology should be released soon too. I know that I said that it should have been available by this week, however some issues with the rdf views forced me to wait until releasing the dump. I hope having the possibility to make it available by next Monday, as long as with the Virtuoso RDF View files.

 
Description of the music creation workflow

We also worked hard to clarify the music creation workflow used by the Music Ontology. It is the backbone of the ontology: it explains how people should use the ontology to describes musical things. A complete description of the workflow is available here.

 

 

 
Describing shows and festivals

As discussed on the mailing list, we introduced two new concepts in the Music Ontology: Shows and Festivals. It is now possible to describe where and when a show or a festival will happens, as long as who will give a performance at that event.

Using these new concepts, one could easily describe:

The International Jazz Festivial of Montreal will happens between June 28 and July 8 in Montreal. There will be sub-events at the Spectrum. In fact, there will be a show at the Spectrum the 28 June at 10pm. The performer of that show will be the Dave Holland Quintet.

Then the place of International Jazz Festival of Montreal and the Spectrum will be linked with their Geonames. The Dave Holland Quintet will be linked with their Musicbrainz artist description. All that is possible thanks to the RDF data dumps of each of these services and the Music Ontology.

 
Conclusion

The Music Ontology evolved greatly in the past few months. Now we have something solid agreed by many people. Many level of descriptiveness are possible and all of them are compatible together. A garage band can now easily describes itself and their records using the Music Ontology. But also, a music expert can describe everything about Beethoven’s Work and all its incarnations played by other musicians over the centuries.

 

Music Ontology revision 1.10: introduction of musical performances as events in time

I am pleased to publish the revision 1.10 of the Music Ontology. As you can see in the change log:

View the change log

many things changed in that revision of the ontology. In fact, all the ambiguities people noticed with the latest revisions should now be fixed. Yves Raimond worked hard to implement the Time Ontology along with its Event and Timeline Ontologies into the Music Ontology. The result is a major step ahead for the Music Ontology. Now different levels of expressiveness are available trough the ontology.

In fact, one can describe simple things like MusicBrainZ data and relations, or they can describe the recording of a gig on a cell phone, published on the web, by two different people. Take a look at the updated examples to see what each of these three levels of expressiveness can describe.

As you can see, all the examples are now expressed in N3 and XML. These examples are classified in three different levels of descriptiveness. Most people will describe musical things using the first level of expressiveness, however closed and specialized systems will be able to express everything they want related to music using the Musical Ontology (check examples level 2 and 3 for good examples of this new expressiveness power)

One of the last things we have to fix is how genres should be handled. Right now we are typing individuals with its genre. However considering that genres evolve and change really quickly and that they are strongly influenced by cultures, a suggestion has been made to create individuals out of the class Genre and then describing them. Also, we could create s mo:subGenre property (domain: mo:Genre; range: mo:Genre) that would relate a genre to its sub-genre(s).

This idea is really great and would probably be the best way to describe genres considering their “volatile” meaning over time. However the question is: how to link a mo:MusicalWork, mo:MusicalExpression, mo:MusicalManifestation and mo:Sound to its genre? If we create a mo:genre (domain mo:MusicalWork… etc; range rdf:resource), then people could use that property to link a MusicalWork, etc. to anything (anything that is a resource). Personally I think that it is not necessarily a good thing to introduce such a non-restricted property into the ontology.

Note that it is not the same thing as the property event:hasFactor since anything can be a factor of a musical event.

Now that the ontology is becoming pretty stable, the next step is starting to use it to describe things related to music. The first step will be to convert MusicBrainZ’s data into RDF using the Music Ontology. Soon enough I should make available a RDF dump of this data along with a Virtuoso PL that will enable people to re-create this RDF dump from a linked instance of a MusicBrainZ Postgre database into Virtuoso

Finally I would like to give a special thanks to Yves for its hard work and involvement for the publication of that new revision of the Music Ontology.

Technorati: | | | | | | | | |

Revision 1.03 of the Music Ontology

I just published the revision 1.03 of the Music Ontology. You can notify the addition of mo:Movement, mo:has_movement, mo:movementNum and mo:tempo. Half of the modifications has been made to enhance the descriptiveness of classical music. The other half of the modifications has been made to make the distinction between production (MusicalExpression) and publication (MusicalManifestation) clearer.

All these modifications have been made possible by Ivan Herman and Yves Raimond and I would specially like to thanks them for their insightful comments and suggestions they made via the mailing list.

There is the changes log for the revision 1.03

  • Changed the range of mo:key from a rdfs:Literal to a http://purl.org/NET/c4dm/music.owl#Key
  • Added property mo:opus
  • Added mo:MusicalWork in the domain of: mo:bpm, mo:duration, mo:key, mo: pitch
  • Added class mo:Movement
  • Added property mo:has_movement
  • Added property mo:movementNum
  • Added property mo:tempo
  • Added mo:Instrument in the range of mo:title
  • Remove mo:MusicalWork and mo:MusicalManifestation and added mo:MusicalManifestation to the property’s domain mo: publisher, mo: producer, mo:engineer, mo:conductor, mo:arranger, mo:sampler, mo:compiler
  • Remove mo:MusicalWork and mo:MusicalManifestation and added mo:MusicalManifestation to the property’s range mo: published, mo: produced, mo:engineering, mo:conducted, mo:arranged, mo:sampled, mo:compiled

 

Technorati: | | | | |

Revision 1.02 of the Music Ontology: a first crystallization of the ontology

 

Since about a month people are looking at the Music Ontology; they talk about it; they revise it; and they give suggestions. The revision 1.02 of the ontology as been possible by all their comments and suggestions. It should be a good compromise for all users’ visions.

As I previously explained in one of my blog post, the FRBR Final Report has been use as the ground for the ontology. It describes musical entities and their relationship.

    

Finally the revision 1.02 is the first “crystallization” of the Music Ontology. Now people can certainly start to use it into their FOAF profile. Artists can start to describe themselves, their musical group, their musical creations, etc. Music stores could start to export the content of their inventory using the ontology. Internet radio could certainly start to gives information about the tracks they stream.

If you are interested in participating in the elaboration of that ontology, I would encourage you to subscribe to its mailing list. I would like to thank everybody subscribed to this mailing list since this new revision wouldn’t has been possible without their insightful comments and suggestions.

 

Technorati: | | | | | | | |

Major revision (1.01) of the Music Ontology

 

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.

 

RDF document demonstrating the integration of the MO and FOAF ontologies

 

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: | | | | | | | |