I blogged previously my early thinking about how we needed a core news model to describe basic real-world concepts (people, places, organisations) in the context of a news event, and that those events could be organised into stories. A couple of months on and we have got that corenews model installed in the BBC’s linked data platform, and journalists are now able to annotate news content with these concepts.
The URI for the model is http://bbc.co.uk/ontologies/news/ and you can get HTML or RDF/turtle from that address. The updated ontology diagram looks like this:
You might notice that the stories class has been pulled out of here; there’s a lot of interest at the BBC and other news organisations in to how linked data and story-telling can work. We kicked off a project to collaborate with The Guardian and PA on an open model for this, which I will blog more about soon.
BBC News desktop pages are now carrying a minimal set of Open Graph Protocol metadata, for example:
<meta property=”og:title” content=”Facebook’s Graph targets Google”/>
<meta property=”og:type” content=”article”/>
<meta property=”og:url” content=”http://www.bbc.co.uk/news/technology-21040363″/>
<meta property=”og:site_name” content=”BBC News”/>
<meta property=”og:image” content=”http://news.bbcimg.co.uk/media/images/65316000/jpg/_65316583_65315074.jpg”/>
Facebook’s data model is defined here as RDF/TTL: http://ogp.me/ns/ogp.me.ttl, which is really just a bunch of properties; I’ve drawn out the diagram below to show what I think the idea is:
Facebook don’t publish the domain of their properties so I’ve made up a class called og:Thing but you get the idea. It looks like Google will render Rich Snippets from OGP mark-up, treating it as a single RDFa node. But there’s not very much open about this open graph.
Over the past couple of weeks I’ve been putting together a basic data model for BBC News. The purpose of the model is to allow us to make typed associations between real-world concepts and creative works published by journalists. We are interested in four classes of real-world concepts:
- intangibles (topics or themes)
Additionally we have events, which are really the intersection of people/organisations doing things at a particular place and time, as described in the much-used event ontology. We also have a sixth class called ‘story’ – a collection of events, drived from the stories ontology.
The typed associations that are allowed between the above concepts and the published works are currently:
and soon I hope we can add ‘took place in’ or something similar for location-based associations (most news events happen in a place but are not usually about that place).
Here’s a v0.2 representation of this model:
The idea is that journalists will apply instances of these classes, together with their typed relationship, as part of the publishing process for BBC News online. We can then expose these instances as navigation routes (like the tags on the Guardian’s website) to allow users to browse more news about that person, organisation, place or event. At the same time publishing indexes (aggregation pages) for these instances will help improve BBC News’s Search Engine Optimisation and help drive traffic to the site.
RDF of this model is here.
I migrated the web server that runs this blog to my new 512MB Pi, so was looking for a use for my original 256MB one. Although I have a perfectly good radio in my bedroom I like the idea of streaming radio to the command line, and maybe using the Pi as an alarm clock with some cron scripts.
A bit of Googling suggested that mpg123 and their like will struggle with the sort of playlist files and stream encoding used by the BBC, and so mplayer looked like the best candidate to have working stream with minimal fuss:
sudo apt-get install mplayer
mplayer -playlist "http://bbc.co.uk/radio/listen/live/r4.asx"
The above saw mplayer throwing some errors about unavailable pulse audio drivers. I added an argument to force use of the alsa drivers:
mplayer -ao alsa -playlist "http://bbc.co.uk/radio/listen/live/r4.asx"
Now mplayer seemed to fetch the stream ok and looked like it was playing, but I heard no sound. (I’m using a portable speaker connected to the Pi’s headphones socket). I checked the volume level in Alsamixer, and that was fine. Back to Google again and the Raspberry Pi troubleshooting guide suggested that I could force audio to route via a particular output – in this case the one I wanted for the headphone socket was:
sudo amixer cset numid=3 1
Fired up mplayer again and yay, Radio 4 Next step is to add some cron scripts to start and stop the radio in the mornings.
For the past two days I’ve been on a BBC training course about how to do better presentations. Not the Powerpoint kind mind you but the standing-up-in-front-of-a-bunch-of-strangers kind. We had a great coach called Sandie Miller who trained us from her acting experience in things like breath control and eye contact. Here’s a short clip of me rambling on about linked data after some pointers from her (yes I know should have tucked my shirt in):
Last week the Raspberry Pi foundation announced that they’d started shipping new units with 512mb ram chips instead of the previously supplied 256mb ones. Sounded like the perfect excuse to get hold of a second Pi – I ordered one on Monday and to my surprise it arrived yesterday, just a five day turnaround (thank you Element14/Farnell).
I wanted to use my existing SD card (SanDisk 8GB x10) as it has a fair bit of stuff on it (including this website) so I needed to get Raspian to notice the extra RAM. I downloaded the updated firmware files into the Pi’s /boot directory and added gpu_mem=256 to /boot/config.txt – this gives me a 50:50 split, 256mb for the GUI/GPU and 256mb for the CPU. Rebooted and it works a treat, seems a wee bit snappier too.
This started out as a command line script when I was fiddling around with hashes in Ruby. Then a friend at work got me interested in Sinatra as a lightweight alternative to Rails so I had a crack at converting this ruby script to a web app. Turned out it was pretty straightforward:
(source code is here: https://github.com/jeremytarling/ruby-tarot)