Taking the Proms to the semantic web in 10% time
A few weeks back I had the good fortune to be handed a dump of a mysql database stuffed to the gills with historical Proms data. It's got every Prom from to (and (you'd hope) 2008 at some point).
I've started to wrap a app around it and the results can be seen . For now it's pretty basic with lots of gaps left to fill but the intention is to link it to / and publish the results into the .
In the meantime I thought it might be interesting to develop the site in public so you can see all my mistakes in real time. So I'll be posting progress reports and updating this post as things get added.
What's happened so far
I wrapped a very basic rails app over the data just to peek inside and check the relationships. The result was a of people and works and events and etc.
The next step was to create a new rails app and begin to build the site one table at a time. The beginnings of the schema are .
What happens next
The next step is to continue on, through parts and events and performance and etc to fill out the site. And when that's done the interesting work of linking to external data sources can begin. At which point I'll probably be for and .
With the data published and linked I'll hopefully manage to persuade boss type people to open it under a . Add some RDF and the Proms can join and on the LOD cloud. Well that's the plan.
A beta (of a beta (of a beta...))
This is very much work in progress. Eventually the data should make it's way into /music (via the ) and the upcoming /events. If we can match events to broadcasts some of it should also make it into /programmes.
Updates
-
05/09/2008
Added works by genre: https://bbc-hackday.dyndns.org:2840/genres/8/works.
Added genre for work: https://bbc-hackday.dyndns.org:2840/works/6196
-
06/09/2008
Added works by commisssioners - https://bbc-hackday.dyndns.org:2840/commissioners/25/works
Added commissioners of works - https://bbc-hackday.dyndns.org:2840/works/32204/commissioners
Added works by composer - https://bbc-hackday.dyndns.org:2840/people/16/compositions
Added composers by work - https://bbc-hackday.dyndns.org:2840/works/183/composers
-
09/09/2008
Compositions by composer now only list compositions, not arrangements etc - https://localhost:3005/people/135/compositions
Work lists now include composer - https://bbc-hackday.dyndns.org:2840/works/a-z/a
Comment number 1.
At 6th Sep 2008, metanoize wrote:Some links don't work
/go/blogs/radiolabs/2008/09/taking_the_proms_to_the_semant.shtml/ext/_auto/-/https://bbc-hackday.dyndns.org:2840/images/domain_model.png
Complain about this comment (Comment number 1)
Comment number 2.
At 6th Sep 2008, fantasticlife wrote:Hi metanoize
*none* of the links would have worked between 8pm and 9pm because I was redeploying the application. Apologies. Is back now.
If you want to know when the app is down and when new features are added please follow @historicalproms on twitter:
Complain about this comment (Comment number 2)
Comment number 3.
At 7th Sep 2008, Jon Kingsbury wrote:Michael,
Congrats. It's an excellent achievement.
But... you do yourself short with a typo on the homepage:
"1985" should read 1895 surely?
best,
Trampus
Complain about this comment (Comment number 3)
Comment number 4.
At 7th Sep 2008, fantasticlife wrote:@trampus - thanks for spotting. is fixed now. must learn to type one day ;-)
Complain about this comment (Comment number 4)
Comment number 5.
At 11th Sep 2008, audioworld wrote:hi michael,
by incident I also work in radio systems engineering (for orf.at, national public radio in Austria), and also program in rails around some database acces (radio drama, in my case). any chance that not only the concert data, but also your ruby code could be available in the public domain? btw, I really like incremental progress update, just like I program in rails (one table a time, adding associations).
another question: from the table naming (plurals, alphabetically) I assume you use "HABTM" in contrast to "has many :trough" for the relationships, any reason to do this (as it seems has_many :through has no disadvantages but could offer the chance for extension fields to the relationships)?
thank you so much for sharing publicly,
karl.
Complain about this comment (Comment number 5)
Comment number 6.
At 27th Sep 2008, fantasticlife wrote:Hi Karl
I intend to make the rails code available for download from the site. However, I'm not the world's greatest coder so I'm not sure it will contribute much to the world.
On the associations question I tend not to use either HABTM or HMT. I've found that adding these associations tends to make me lazy in views and I end up with pages using 100 queries when one will do. I try to write a maximum of two queries a page: one to get the thing, one to get the things under the thing. Although I have broke this on work listing pages ( where there's a separate query for each work to get the composer(s). Since a work can have many composers and each composer has many fields that make up their display name, I haven't been clever enough to work out a better query. It does make these pages very slow!
Anyway, in general I like to be able to see my sql and find associations hide it and make me laz(y|ier).
Hope this helps. Code will follow when the application has some semblance of shape.
Michael
Complain about this comment (Comment number 6)