Recently I had a chance to discuss with Dave Rice, Dan Jacobson, and Chris Beer the potential role of PBCore in enabling content to flow in the “semantic web.” The topic has also come up in discussions around the development of PBCore 2.0. It seems like a good idea to open the topic for broader consideration.
The Semantic Web would mostly likely be implemented by Linked Data. Using URIs and RDF, “Linked Data is about using the Web to connect related data that wasn’t previously linked, or using the Web to lower the barriers to linking data currently linked using other methods.” Those other methods would include linking things together by hand, piece by piece, which webmasters of the world can tell you doesn’t exactly scale well.
So how does PBCore fit into linked data using URIs and RDF? I don’t have anything close to a complete answer, just ideas that came from the discussion. I would love some feedback to take this thing further.
(Washington, DC) - - The Corporation for Public Broadcasting today announced the launch of the PBCore 2.0 Development Project.
The PBCore 2.0 Development Project will expand the existing PBCore metadata standard to increase the ability, on one hand, of content producers and distributors using digital media to classify and describe public media content (audio and video) and, on the other, of audiences to find public media content on a variety of digital media and mobile platforms.
The PBCore 2.0 Development Project will also work to enhance the PBCore standard to ensure that it will be able to satisfy the demands of multiplatform digital content as well as an evolving World Wide Web. Since PBCore's development in 2005, it has become not only one of the most widely-used metadata standards in the world, but also the basis of other metadata standards. At the same time, in the last five years, the number of digital media applications that would benefit from PBCore has grown significantly. An updated PBCore will benefit not only public broadcasters, but all users of metadata standards based on PBCore.
Don’t look now, but the PBCore module I added to Drupal.org is now #3 in results for pbcore on Google bumping pbcoreresources.org to #4. That module wasn’t intended to be the definitive PBCore module for Drupal, but a conversation started to help locate users and developers with similar needs. This approach of releasing modules that aren’t ready for users and developing in public has worked really well for the MERCI (Manage Equipment Reservations, Checkout and Inventory) and Creative Commons modules. I’m hoping to find additional Drupal users and developers interested in PBCore so I’m not writing code that only serves our needs… which is basically all the module does so far.
To follow up on the comments in Jack’s last post I posted XSL and workflow information that can translate the XML output of MediaInfo and turn it into a PBCore instantiation element (not the whole record, just the technical side of PBCore).
The XSL and a drag-and-drop Mac application of it are at http://www.avpreserve.com/pbcore-instantiationizer/.
An article about the development and related issues is at http://www.avpreserve.com/pbcore-instantiationizer/pbcore-instantiationizing/.
Overall transforming many of the metadata fields from MediaInfo’s output to PBCore is fairly straightforward (mediainfo:overallbitrate -> pbcore:formatdatarate, mediainfo:filesize -> pbcore:formatFileSize), but fields such as formatTracks and formatChannelConfigurations are a bit of a challenge to automate.
Any feedback on this is appreciated.
Illinois Public Media was one of the 20-some public TV and Radio stations in the CPB-funded American Archive Pilot Project. The AAPP required participating stations to use PBCore as a metadata format, at least in principle. I decided to push implementation of PBCore in my AAPP content collection as far as possible using the toolset I used on a previous video archive project (Prairiefire on WILL-TV).
This toolset is based on the website Content Management System called ExpressionEngine, which makes setting up a particular database structure rather easy. I set up the database structure based on PBCore elements, with controlled vocabularies reflecting the AAPP taxonomy and suggested PBCore picklists. I then created xml templates in ExpressionEngine to render my AAPP collection metadata as valid PBCore records. I then went one step further, following discussions with Dan Jacobson and David Rice, and created a PBCoreCollection wrapper containing all 235 of the PBCore item records (each as a PBCoreDescriptionDocument) in my collection. The national portal for the AAPP, being developed and hosted at Oregon Public Broadcasting, was able to simply ingest the PBCoreCollection, demonstrating the viability of this approach to aggregating a large collection from multiple content sources.
This article details the methods used to accomplish this in ExpressionEngine. Similar methods could be used in Drupal, which we’re working on now.