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


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.


Give it a name if you wish: the Semantic Web; but personally I don’t care.

Freebase has been made public recently; it is a sort of Google Base with the goal to “[contribute to collect] data from all over the internet to build a massive, collaboratively-edited database of cross-linked data.”

Tim O’Reilly praised it [1] [2]; he had some thoughts about it and about the semantic web; he gave some opinions that leaded to a storm of blog post on; Etc.

I will not enter in that debate. I have nothing to say about the Web1.0, Web2.0, Web3.0 or the NextWebVersion.NumberSomething except that these terms make people from around the World quite… unproductive. We have a system that let anybody write, publish and share documents on a space called the Web; and that since its beginning. So let see what we can do that such a system.

What I will do is telling you where I am with my vision of the Web, and to what it could evolve to. I will describe how the projects I am currently working on could make the Web different, hoping to make it better. I will only show you a schemas, with some explanations, of how I see the environment that such projects are currently creating; how users and developers will be able to use and contribute to these systems with the only goal of making the web open and better.

The next Web environment

Click to enlarge this schemas

1. Describing resourcesAs you imagine, the first actors of the system are Web users. The goal of these Web users is to describe things (resources). This behavior is not different from the past: Web users always described things; the only difference is that they have to use new methodologies, but even that, it is not always the case as we will see later.

Users will be able to describe things such as themselves, projects they are working on, relations between musical artists, albums, Etc. by using specialized software that will help them to describe these sort of things. Systems such as Wikipedia, Musicbrainz, Talkdigger, Livejournal, blog system using a SIOC Exportation add-on, Etc. (note: one could wonder why I name Wikipedia or Musicbrainz that doesn’t export anything in RDF; for them I would redirect them to the dbpedia and Music Ontology projects for more information).

But in the future, people will also develop specialized software that will help people to describe virtually everything.

2. Save descriptions

Systems will archive all these descriptions. Dedicated system for that task, some type of portals, personal web pages, specialized blog systems, specialized wiki systems such as the Semantic Media Wiki, Etc. These systems will publish the information to anyone who request it, exactly the same way as Web server publish web page content in HTML. The only difference is that it will use RDF instead of HTML to publish the same data.

3. Notify for new/updated descriptions

Most of these archiving systems will notify “notification [pinging] systems” such as

That way, new/updated descriptions of something will be published to a multiple of web applications, software, crawlers, software agents, Etc.; requesting new/update descriptions from

One of these systems is called Zitgist.

What is Zitgist?

In the past, I described Zitgist as a Semantic Web Search Engine. Great you will tell me, but what it means? I will refer you to this blog post I wrote a couple of weeks ago about what Zitgist is.

4. Send references of descriptions will send its pings to any system requesting the list of new/updated descriptions. On of these system is Zitgist. That way, it will be able to get the latest new and updated descriptions, and this, nearly in real time.

But any system can do the same.

5. Linked-Open-Data

This is a new project started by many Semantic Web enthusiasts, researchers and companies from around the World.

The goal of this project is to create a meta-database of interlinked databases such as Wikipedia, Musicbrainz, US Census data, DBLP database, Etc.

Such meta-database will be indexed into Zitgist to extend the descriptions its knows.

6. Other database

Other database, not part of the Linked-Open-Data project will also be indexed into Zitgist. In fact, any relational database can easily be converted into RDF and then indexed into Zitgist. One of the good examples of this is the conversation of the database into RDF using the Music Ontology.

7. Describe resources

Zitgist is at the same level as any other application in this environment. So from its interface, Web users will eventually be able to describe things, and relations between these things, directly from its user interface.

8. Search

The more interesting feature of Zitgist is that it lets Web users searching in all that data. By using Zitgist, Web users are able to send queries such as:

  • Give me the name of the albums published by Madonna between 1990 et 2000.
  • Give me the name of the people that are interested in writing leaving near London.
  • Give me the name of groups (group, organization, etc.) that has Brian Smith as member.
  • Give me the name of the computer projects programmed using C++ that work for Linux or Windows.
  • Give me the name of the discussion forums that are related to cooking.
  • Give me the name of the cities in UK that have more than 150 000 people.
  • Give me the name of the documents where its topic is a person named Paul.
  • Etc.

9. Browse

Then from the results returned by Zitgist, Web users are able to browse the information about things. Things can be a:

  • Person
  • Project
  • Geographical location
  • Music artist
  • Band
  • Album
  • Single track
  • Etc.
  • And relations between all these things

10. Possible duplications of Zitgist

None owns anything in that Web, so most of Zitgist could eventually be duplicated in other service. Why? For the only reason that most of the information it uses is available to anyone who wants to do something with it.


So, as you can see, this infrastructure enables a wide range of possibilities. In fact, a Web user could use Zitgist to find a thread in a Discussion Forum about the Semantic Web. Then he could browse the thread directly using Zitgist. If he has something to say on that thread, he could describe new facts about this particular thread directly on its blog. From there, its blogging system would publish the description to anyone who want it (like a normal HTML Webpage). After having published the data, its blogging system could ping to notify a wide range of applications that new descriptions has been published about a certain thread on a certain discussion forum. Then Zitgist would be notified of this new description and it will index it into its system.

After that other users will be able to see the new facts described by this user directly in the thread and Zitgist’s Web interface.

You could easily replace the subject of the above example by a musical artist, and change the blogging system for the user interface.

Possibilities are endless… but the result is always the same: a distributed, open, meta-web. A sort of distributed meta-wiki created by a wide range of users, applications, services and systems.


This is my vision of my next web. I called it semantic web (as many other does), but you have the leisure to called it the way you want. I am developing Zitgist that should be released for a first round of users in the next few months; I am developing; I started the Musical Ontology; I am also participating to some projects like the SIOC ontology, the linked-open-data initiative; and this is the vision I have that lead my works.

I cited all the projects I am currently working on, but none of them could be possible without the tight collaboration of the semantic web community and the guys at OpenLink Software Inc. I owe them this vision and all my knowledge of the field. Thank you guys.

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

Zitgist: a semantic web search engine

Recently I started to talk about the project I am currently working on and people were wondering what it was. “Hey, what Zitgist is about Fred?” – “I heard a couple of things but I can’t find any information about it” – Etc. So I started to gives away some information about Zitgist (pronounced “zeitgeist”), what it was, what were the goals, etc.

Zitgist is basically a semantic web search engine. Some people could be wondering about what is a semantic web search engine? In what is it different from more traditional search engines such as Google, Yahoo! or MSN Search? It only differs in the information it aggregates, index and use to answer users queries. Instead of using human readable documents such as HTML, PDF or DOC, Zitgist will use semantic web documents (RDF).

The characteristic of these documents is that they describe things. In fact, these documents can describe anything: a person (its interests, its relations with other people, etc.), objects like books, music CDs; projects (computer projects, architectural projects, etc.), geographical locations such as countries, cities, mountains, etc. So, with semantic web documents one can describe virtually anything.

Since Zitgist is aware of the meaning of all these descriptions, powerful queries can be sent by users to let them find what they want. By example, a Zitgist user could send queries such as:

  • Give me the name of the people that are interested in writing leaving near London.
  • Give me the name of groups (group, organization, etc.) that has Brian Smith as member.
  • Give me the name of the computer projects programmed using C++ that work for Linux or Windows.
  • Give me the name of the discussion forums that are related to cooking.
  • Give me the name of the cities in UK that have more than 150 000 people.
  • Give me the name of the documents where its topic is a person named Paul.
  • Etc.

Note: these queries are not built using natural language (such as phrases), but with an easy to use user interface that help users to build the queries they want.

Once a user has built and sent these queries, the search engine will return results matching these criteria. Then if that user click on a result interesting him, he will be redirected to Zitgist’s semantic web browser. This interface display the semantic web document know by Zitgist to users.

This is what is interesting with Zitgist. Since semantic web documents are intended to be used by machines, humans can’t easily read them. This semantic web browser is a user interface that displays the information held in these semantic web documents such that humans can easily and intuitively read and understand them. So from a single result (say, a person), a user will be able to surf the semantic web like if he would be surfing the Web: from link to link. That way, users will use the same behaviors to surf the semantic web has they have when they surf the current Web.

The main goal with Zitgist is to create a semantic web search engine for users that doesn’t even know the existence of the semantic web. A user shouldn’t be aware of the concepts supporting the semantic web to use it. Their experience should be as close as the one they currently have with the current Web and the search engines they use daily.

What is the current state of Zitgist? All the things I mentioned above are working. A first private version should be released in the next months. Some demos to the semantic web community should be performed too. Slowly, in the next months, more and more things will be rolled-out to the public. However be aware that I am not hyping the project here. I will do things that way to make sure that the supporting architecture gives the best experience to all users. For this, we have to scale the architecture slowly to make sure that too much users do not make the service unusable.

In the next week, I should gives more technical information and write documentation about how web developers can make their data available to optimize their indexation into Zitgist. So best practice documents describing how web developer should create their semantic web document will eventually be put online.

Zitgist LLC. is a company founded by me and OpenLink Software Inc. I would like to specially thanks the OpenLink development team that gives me all the support I need to develop a first working version of this new search engine. I wouldn’t be able to write about Zitgist today without them.

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