A little while ago I started reading up on Notube, an EU funded project that aims to explore how technology such as Linked Data can be used with televisions to (amongst other aims) produce personalised content. Inspired by this idea I started thinking about a small example that would build upon my earlier blog post How to use Linked Data on the Samsung Internet@TV platform to produce a personalised view of Open University Podcasts. In order for the example to be useful it would need to use data for the personalisation that was easy for the user to supply using just a remote control. I've got as far as producing a simple prototype that hopefully shows some of the potential of this technology.
First I should explain my choice of platform. It isn't particularly significant that I chose Samsung Internet@TV, but what I wanted to demonstrate is that this type of application is possible on the sort of devices found in living rooms today. The actual hardware I tried it on is just a blu-ray player I picked up in a supermarket. It's nothing special and was fairly inexpensive. In my last post using this device I found that despite the restricted hardware on the device (typical for a set top box) it was possible to use request and parse Linked Data so I was keen to explore this more and see if it could cope with it being used in a proper application.
The OU, like probably all universities, has short codes for its modules and qualifications. These are well known in OU circles and people will commonly refer to a module just by the code. My colleague Tony Hirst has pointed out many times that this is a great key to generating all sorts of information. In the case of a TV app there is also the added bonus that these codes are quite short, typically consisting of a couple of letters and two or three numbers which means they are not too painful to enter through a remote control. So I decided to base my prototype on the idea of podcasts relevant to a user entered course code, a simple but hopefully still useful way to create a personalised view of what is on offer.
Looking at the information on podcasts available on the OU's Linked Data site I noticed that many podcasts have a property called “relatesToCourse” which links to a course object. This was going to be easier than I thought! However in life it is always good to have a 'plan b' and I decided to build in a second SPARQL query that would run if the code did not link to any podcasts in this way. This query would return podcasts for the same subject as the code supplied.
I started with the code from the Video App Tutorial on the Samsung D Forum which tells you how to build an application that displays a list of videos that can be played from an RSS feed. Here I removed the code for obtaining and parsing the RSS feed and replaced it with the code to query the OU's SPARQL end point and obtain the results. I also added code to run the second query in the event that no results were returned from the first.
Then I added an input box so the code could be changed and using the IME Tutorial from the same site added code so that when the user navigated to this input box a keypad would appear on screen to show them what buttons to press to get the text they want. Text entry on this platform is a bit like using a traditional mobile phone for text messaging, you press a number key until you get the letter you want. Pressing shift takes you to different entry modes, one of which is numerical only, so once you enter the letters at the start of the code you can speed up entry of the rest of it by switching mode. Pressing the centre button on the remote causes the application to requery the datastore and display the new results.
So at the end of all this I had a basic application that could produce a list of podcasts that the user might like to view or listen to based on the module (course) code they entered. This could be a module they are currently studying or something they are interested in. I tried the application out on the Samsung box and it worked very well, it was good to see how quickly the data was obtained, parsed and the suggestion list generated. All I had to do then was pick something interesting looking and press “play” on the remote.
The application really just scratches the surface of what is possible and would need lots of work before it was ever good enough for people to use, especially on the user interface! Another idea that I have read about on the Notube site is the “re-use of social Web data for TV program adaptation, recommendation, selection or mash-ups”. One good way that this application could be extended could be to link it to the Course Profiles application on Facebook. Here students declare the courses they are studying, so this information could be used instead of manually entering it into the application.
The issue here is being able to link Facebook and an application running on a box in a way that is easy for the user to set up. The Facebook application supplied on the player I have still needs you to enter your email address and password, although these are stored on the box and when you log on later you only need to enter a PIN code. However the initial set up could still be an issue. I noticed on the Lovefilm application this issue was dealt with by getting people to enter time sensitive codes on the application and also on their website to authorise the connection. I though this was rather a nice solution, but it shows that this is an area where there is a challenge.
When I was chatting about this application with Mathieu D'Aquin, who works on the Linked Data project at the OU, he suggested it might be nice to add in some random podcasts to the list in order to aid discovery of new content that the user might like. I liked this idea and there are lots of ways this suggestion could be generated. In the Course Profiles application there is a feature that suggests future courses based on the courses others on your course have studied. This data could easily be used to generate the suggested podcast if the applications were linked.
Despite its limitations I think the application demonstrates a couple of points that explain why the intersection of the Semantic web, social networking and television is full of potential. Firstly, using SPARQL I had fine-grained control over the contents and amount of information I got back from the server. This is great as it means the set top box doesn't get stressed by a large amount of data to process and present to the user. Secondly, I could use an existing SPARQL end point to obtain the data needed. I didn't need to write a dedicated website to provide data feeds for the application. There was no need to design the OU's Linked Data service with this application in mind, but it can easily and powerfully used for this purpose.