[pdb-discuss] Re: Somewhere to start

Yves Raimond yves.raimond at gmail.com
Mon Jul 16 17:10:46 UTC 2007


Hello Rufus!

(First of all, congratulations for being slashdotted last Friday:-) )


> Sounds good and from what I understood during our meeting the plan is
> for musicbrainz to move towards this in future.

All Musicbrainz data is already available as RDF expressed using MO
(see [1]). However, it is true that the current Musicbrainz model is a
bit restrictive, especially for classical music... So the new schema
being developed right now is also exploiting this idea of worflow
description (composition, arrangement, performance, recording, etc.) -
and therefore will exploit more of the constructs defined in MO.

>
> http://p.knowledgeforge.net/pdw/svn/trunk/src/pdw/www/models/recording.py
>
> Unit tests showing usage at:
>
> <http://p.knowledgeforge.net/pdw/svn/trunk/src/pdw/www/tests/models/test_recording.py>
>
> This is already very similar to [5] (modulo minor differences in
> naming). The main difference that I can see is that [5] has a
> Performance, Recording and Record object (whereas we just have
> Recording). Could you expand a little on what the distinction between
> these are?
>

The difference between a recording and a record is that one is an
event, and the other one is a "manifestation", as defined in FRBR. You
may attach a place, a time, a particular type of microphone or a sound
engineer to the recording event, and you may attach liner notes,
release date, etc. to the record object.
Performance is another type of event, on which you may attach
performers and their instruments, a particular arrangement, a
place/time location, etc.

> Also how would we apply the domain model the following use case (which
> is invented):
>
> 1950 78 release with 3 distinct pieces on it:
>
> 1. Peformance of an Aria from Gounod's Faust
> 2. Performance of a movement from Beethoven's 9th
> 3. A Piece of Vaughn Williams
>
> We can assume these are all performed by the same orchestra but this
> need not be so ...

If I get your use case right, 1. should look like (in turtle code):

------

@prefix mo: <http://purl.org/ontology/mo/>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.

:gounod_faust a mo:MusicalWork; # Gounod's Faust
   dc:title "Faust";
   dc:has_part :aria;
   .
:perf_gounod_faust a mo:Performance;
   mo:usesWork :aria;
   # add a mo:performer statement to link to whatever orchestra URI is
performing here
   # add a event:time to whatever date the performance occurred
   .

------

Well, you get the idea... You create one identifier per object you
want to describe (performance and work, in this case), and you link
everything together. After that you can link your resources to
external URIs. For example:

;gounod_faust owl:sameAs <http://dbpedia.org/resource/Faust_(opera)>.

There, you link your dataset to the DBPedia one (structured
information extracted from Wikipedia and available as linked data).

Best,
Yves

[1] http://fgiasson.com/blog/index.php/2007/05/22/browsing-musicbrainzs-dataset-via-uri-dereferencing/




More information about the pd-discuss mailing list