The aim is to create a free open source software tool, available from drupal.org, to simplify the management of digital media catalogues for syndicating to distribution platforms, promoting to new advanced semantic search engines (like Yahoo!'s SearchMonkey) and selling direct to consumers. This project, named Kendra Hub, will create a suite of Drupal modules to enable artists and content owners to manage their media assets and associated metadata from within one system that remains in their total control. Initially, Kendra Hub will promote/syndicate to advanced semantic search engines using semantic web technologies being developed within Drupal. Next stages will involve creating plugins for other distribution platforms. Initially, we will concentrate on making Kendra Hub fit for the music industry as this is the industry most familiar to the development team and Kendra Initiative members. But we want to rapidly roll this out to include video and images. This proposal is to create a software tool and not a hosted service. We hope that owners and producers will find this software useful to their businesses and assist them to monetize their content.
- Mike Large, chief operating officer at Peter Gabriel's Real World, says "Many thanks for this - I think your one paragraph summary of Kendra Hub is great."
There are many talented artists creating music, films, photos and images who are struggling to get their content in front of consumers. Digital media creators (musicians, filmmakers, photographers and artists in general) get stuck when it comes to distribution of their content. The distribution options are bewildering: Songbird, MySpace, Facebook, iTunes, YouTube, Napster, etc. Creating your own website is trivial but getting that website to host and sell your own music, films or photos can be quite difficult. Setting up a useful website for a content owner can be quite a daunting task. There are many web services that will host an artist's content but always with a loss of control to the artist. Artists and record labels are tied into distribution deals but want to experiment outside of those deals with different ways of working.
Within the music industry alone there are expensive software solutions that are out of reach to artists and bands going it alone. Then there are many, many good hosted distribution platforms (such as Music Glue, Open Music Source, The Orchard, IODA, AWAL, TuneCore...) but these intermediaries take some control out of the hands of the content creators. There are no free open source software solutions available that we know of.
We are submitting this project before the Knight Drupal Initiative officially reopens at DrupalCon because we'd like feedback from the Drupal community as developers, administrators and artists (musicians, photographers, image makers and filmmakers) in advance...
The idea for this project arrived in Drupalcon Szeged. This proposal has been a collaborative effort between Stéphane Corlosquet (of Digital Enterprise Research Institute), Daniel Harris (of Kendra Initiative), Darren Mothersele (of Darren Mothersele), Ryan Szrama (of Ubercart) and Axel Polleres (of Digital Enterprise Research Institute).
Rather than just submitting an "enhance semantic web technologies within Drupal" project we want to create a system that will "show off" a particular Drupal use case for content creators and media industries, create a useful tool for this sector and also enhance semantic web technologies within Drupal. One of our aims is not to create a monolithic module but to use and enhance existing modules and so bring maximum benefit to the Drupal community at large beyond the specific scope of this proposal.
Kendra Initiative is campaigning for a flatter and fairer content distribution system enabling artists to make a living from their art so that they can continue to create their art. Drupal is making good inroads into the media industry. We want to see that trend continue and lower the technical barriers and financial barriers for artists to get a useful site up and running. So, they can devote more of their time to making and promoting their art.
Key features for content owners (artists and labels):
- Simple installation - either by install profile or by enabling an 'install module' that takes care of configuration.
- Simple customization of base theme with basic HTML/CSS preferably configured as theme options.
- Publish and manage catalogue information, either by data import or by filling in forms.
- Aggregate activity from the artist's network, for example, feed from their MySpace, blog, iLike, etc.
- Upload media assets.
- Import/export media asset catalogue metadata from/to:
- File types: Excel, SQL, CSV, XML and RDF.
- Applications: iTunes Producer.
- Option to have Kendra Hub automatically create correct content type to match catalogue to import.
- Option to create content types by hand and fill metadata by hand.
- Add data (like price) and other business rules (like region) for selling media assets via subscription (all you can eat) or pay per media asset.
- Produce aggregated reports from various syndication portals.
- Publish the content metadata feed.
- Inform other search engines and aggregator sites of there content metadata feed.
- Much of the work will be making the workflow relevant to content owner by running extensive field trials.
- Make Drupal more accessible for artists and content owners (such as record labels).
- Make Drupal be the web framework of choice for record labels, artists, musicians, photographers, filmmakers and anyone creating, managing and selling their art.
- Kendra Hub will be delivered as a set of modules to install and configure other Drupal modules. It will contain configuration, functionality and templates. This will enable Kendra Hub to be integrated within existing sites. For new sites we will also provide an install profile.
- Dependencies on other modules required functionality (CCK, Views, RDF, Ubercart). It will provide sensible defaults, useful pre-defined content types and views for artists - like a discography in the case of a musician.
- Through the semantic web framework Kendra Hub will promote free exchange of information about content, enabling artists to publish their metadata and incorporate community tagging and 'semantic trackbacks' into the 'official' metadata repository for a given media asset.
- Work with artists and industry to create a system that is born out of their own requirements.
- Built with multilingual localization functionality from the outset. But only with English for this proposal.
The scope of this project will limit Kendra Hub to working with music/audio and by promoting content to search engines using semantic web technologies. Future work will include:
- Expanding the content types to films/video and photos/image.
- Develop syndicating content to online stores. Many stores have different formats for metadata and content files. For content owners that wish to syndicate their content to a number of different stores this creates quite a burden of work having to repurpose the content and metadata for each store. When this repurposing is done automatically then artists can get on with creating their art. Plugins will be built that will provide the correct input (transcoding of metadata and media formats) to the specifications of the destination portal.
- Enable artists and bands to manage their online profiles for other social networks (MySpace and Facebook) from Kendra Hub. For example injecting gig lists into MySpace and Facebook via their respective APIs.
- Build out languages to FIGS (French, Italian, German and Spanish) initially.
There is much work taking place on a vast number of media related modules and Drupal media initiatives. The Kendra Hub project team will collaborate with as many of these module maintainers and initiatives as possible. Just a few links:
Artists are currently caught in a net of distribution gateways. They need to be able to take back control of their work. Kendra Initiative has been campaigning for a flatter and fairer distribution system for over 10 years now. We believe that these goals align very closely with Knight Drupal Initiative.
- This project will lower the barriers to entry for artists wanting to distribute their media content.
- All code will be available from http://drupal.org licensed under the GPL license.
Drupal Community Benefits
- We will tie together existing Drupal modules (and not reinvent the wheel). We will work with module maintainers to enhance their modules with features that fit our requirements. So, all changes will be contributed back to the modules - this will benefit the Drupal community at large.
- Work to enhance semantic web technologies within Drupal.
- Increase the reach of Drupal by making it more accessible for artists and labels.
Media Sector Benefits
Kendra Hub will enable digital media creators to manage their content and make it directly available to the general public. This project will enable digital media owners to:
- Easily set up a website to manage, sell and promote their content.
- Promote their content direct to search engines via semantic web technologies.
- Describe their content with details beyond the conventional track/video/image metadata.
- Go through distribution gateways.
- Enable artists to experiment with different ways to distribute their content: the option to use (or not use) DRM on individual media assets or collections of media assets; and being able to choose to charge for some media assets and not for others.
- Empower the fans with metadata feedback. Kendra Hub will also enable fans to add information about each media asset either direct on the owners website or on the fans website. The fan would then do a "semantic trackback" to the content owners website. The content owner could then rate the validity of the new information creating a semantic web of trust.
Development and Delivery Schedule
Development will take place along side feedback from participants in the media industry and from the Drupal community. We'll have access to many willing media beta testers through Kendra Initiative members. We want to give time for feedback from industry to be gathered and analyzed so we'll aim to work roughly one day per week to give lots of space for this process. At 250 hours per person. 36 days per person. Working one day per week. 36 weeks is 8.3 months. So, there will be enough space for feedback trials. Estimate 10 months in total.
- Milestone 1
- Artist (or label) site with catalogue import (media assets). It makes sense to have this ready first so that artists and labels can start working with the Kendra Hub trial and we can add/configure extra functionality as it becomes available.
- Milestone 2
- Framework for install profiles/install modules for deploying configuration.
- Milestone 3
- Milestone 4
- Integration with third-party distribution services.
- Distributed by hosting modules as projects on http://drupal.org
- Implemented as a set of Drupal Modules. An install profile for new sites and a configuration module for existing sites will be provided.
Modules to be created
- Master installation and configuration module for the whole project.
Kendra Hub Manage
- Discography functionality
- Provides default CCK content type with fields for artist/title/imagefield/isrc/composers/publisher/(p) and (c) copyright holders/other standard metadata fields. Default views: discography page, latest releases block. RDF publishing of metadata.
- Enables add and modification of media asset files metadata.
- Discography functionality
Kendra Hub RDF
- Provides configuration for RDF modules to publish metadata for search engines / other uses.
Kendra Hub Theme
- Provides theme settings - easy way for artists to manage the look and feel of their site. Based on something like Zen that allows configuration by CSS with additional configuration tools via web GUI using the theme settings api.
Kendra Hub Syndicate
- Interfaces with external sources to provide metadata and media assets.
Kendra Hub Commerce
- Interfaces with Ubercart.
Kendra Hub Report
- Receives reports and statistics from external sources and repurposes them for use with Kendra Hub.
Modules to be enhanced
- Current functionality
- Ubercart currently allows users to sell expirable user role promotions and file downloads. This means a base install is already usable by someone wishing to sell content as an "all you can eat" site membership or on a per-asset basis.
- Currently, Ubercart products must be of a specific node type, meaning any new media that a site owner wishes to sell would have to be made as a product node (of either the base product class or custom product class dependent on the type of media).
- Ubercart is dependent on the Token to expose various order and product fields using the Token module. Users wanting to take advantage of the core image support must also have CCK, FileField, ImageAPI, ImageCache, ImageField, and Lightbox2 or Thickbox. These modules are all well-known and currently distributed with Acquia Drupal. These modules will be useful for other parts of the project, though if image support is not necessary for an artist's product, these may all be left uninstalled.
- Proposed enhancements and benefits
- Ubercart's core import module was removed in the D6 migration. Either a core import module will need to be re-established, or some sort of Kendra Hub specific importer will need to be created that is capable of reading data from the proposed formats and creating new product classes and products on the site.
- It will also be beneficial for Ubercart to move toward allowing product information to be assigned to existing content on the site. An artist who decides to list assets on their site and sell them later would have a hard time converting that content if it did not start out as a product node. If Ubercart were more flexible in this area, which is a goal of the project in general, it would benefit artists and a lot of users in general. On Drupal 6, the plan is for the 3.x branch to introduce a dependency on CCK in preparation for migrating to Drupal 7 where fields are already in core. Basically, any node with a populated product field would be purchasable through Ubercart.
- There is huge potential for artists and Ubercart users in general in exposing Ubercart catalog information to the semantic web through RDF. This should be possible either through core improvements or an RDF helper module using Drupal's hook_nodeapi() to add the necessary information to product and catalog displays. Features exposing Ubercart catalog and product data to the semantic web would benefit all stores and have specific applications in affiliate marketing, marketplace applications, cross-site selling, and more.
- Work on Ubercart installation profiles is underway but lagging from sufficient dedicated time and effort. A major goal for Ubercart as part of Kendra Hub is to produce a base installation profile that contains reusable code (similar to the Installation Profile API) for other profiles to use to simplify basic store setup functionality and add steps to the installation process specific to the e-commerce side of the site. The code should also be usable for non-installation applications where e-commerce functionality is being added to an existing installation.
- Ubercart's core systems make it difficult for international sellers to correctly display and collect taxes. This needs to be continually worked on, and as this will likely come up during the testing and review stage of development, any necessary changes will be specced out and developed for core inclusion.
- Kendra Hub interaction
- Ubercart's basic reports module is likely not going to be sufficient for the hub's needs. As such, it may be necessary to expose additional or more granular data to the hub. This will be specced as necessary.
- Current functionality
- The RDF vocabulary importer takes care of the management of external vocabularies which are locally cached. The user can specify the URL of an existing vocabulary such as
http://xmlns.com/foaf/spec/and the classes and properties of this vocabulary will be replicated locally. These RDF terms are then made available in the RDF CCK mapper for the user to map the content types and fields to popular RDF classes and properties.
- New features will be added to this module in order to provide a better user experience:
- Automatic import of vocabularies upon installation as part of the Kendra Hub module.
- Consistency checking with regards to restriction of the external vocabularies (subclass, domain, range) in order to avoid inconsistent RDF data.
- The RDF vocabulary importer takes care of the management of external vocabularies which are locally cached. The user can specify the URL of an existing vocabulary such as
RDF CCK mapper
- The Content Construction Kit (CCK) is a module which allows site administrators to structure their data and add fields to their content types. Here is an example: say you create a new content type called 'artist'. It is then possible to add several fields to it, such as 'name', 'country', 'homepage', 'album'. When you then create a page of this content type 'artist', you will be asked to fill these information in a structured manner: 'name' and 'country' are text fields, 'homepage' will be a link to the artist homepage. In the case of 'album', you will be able to choose the albums this artist authored in a select list, the content of this list being the albums featured on your site.
- At present, the structure of the content that CCK constructs is only known by the site itself. The semantic Web and the RDF technology in particular can describe this structure in a standardized manner so that it can be understood by other external systems in the Semantic Web cloud. Each piece of data can be given the semantic it deserves so that other applications can understand its meaning and reuse it seamlessly.
- The RDF CCK mapper allows to export Drupal site data into RDF following predefined mappings. Moreover, these mappings can be altered by advanced users if necessary, and imported/exported in a similar way as CCK and Views do. These mappings definition will comply to existing CCK definitions so that they can easily be integrated within CCK definitions in other modules.
- The same mapping logic will be reused in other parts of Drupal in particular in the case of separate data that the Ubercart module stores in specific tables. Further extensions of the CCK RDF mapper include a more general mapping system allowing any type of instance in Drupal to be mapped to RDF terms: users, user profile fields, files, taxonomies and their terms.
Neologism vocabulary builder
- RDF is the underlying key framework that enables interoperability on the semantic web. When publishing RDF content, it is important to make sure the RDF vocabulary used to describe this content is properly defined and available online. To this end, the RDF Schema language was created which allows the precise description of classes and properties used in RDF.
- Neologism is a lightweight web-based vocabulary editor and publishing tool built with Drupal. It makes vocabulary authoring easy: just create a vocabulary, add classes and properties to it, and your vocabulary gets instantly published and available online! Several formats are supported via content negotiation: HTML, RDF/XML and N3. All the term URIs are dereferenceable and point to their human readable description.
- Neologism was ported to Drupal 6 recently (v 0.3) but still lacks some critical features. In this project we will extend and refine Neologism, including the following features:
- good upgrade path from previous Drupal version, namely from Drupal 5
- XSD datatypes for RDF literals
- linking to external vocabularies via the RDF terms importer module, opening the possibility to specialize existing vocabularies which might not fit 100% of your needs otherwise
- import vocabularies to be edited and improved with Neologism, typical case of migration from an old system to Neologism
- porting the multiselect module to Drupal 6, which is used by neologism to improve the user experience in some places
- various usability improvements
- We will also conduct some usability studies in order to facilitate the adoption of Neologism.
Modules to be utilized
- RDF API will be the main module on which the other RDF modules developed or improved throughout this project will rely on.
- Token is used to make various bits of data from Ubercart objects available for users to place in text messages.
- Stéphane Corlosquet (scor), Digital Enterprise Research Institute, Semantic Web Lead, Drupal Profile, Groups Profile
- Role: development, Semantic Web and documentation.
- Biography: Stéphane has been a Drupal user and contributor since 2006. He is the maintainer of RDF CCK, Neologism and Evoc. He talked at several DrupalCons and BarCamps promoting the Semantic Web and Drupal.
- Daniel Harris (dahacouk), Kendra Initiative, Project Lead, Drupal Profile, Groups Profile
- Role: team lead, project management, media industry liaising, trial coordinating, concept design, marketing and documentation.
- Biography: Runs (1999 to present): Kendra Initiative. Ran (1995 to 2001) Cerbernet - business ISP based in London, UK. Ran (1994 to 1996) Cerberus Sound & Vision - created Cerberus Digital Jukebox - the first system for copyright protected Internet-based music distribution. Runs (1999 to present) Freewheelers - travel sharing/matching website.
- Darren Mothersele (darrenlondon), Darren Mothersele, Development Lead, Drupal Profile, Groups Profile
- Role: development, concept design and documentation.
- Biography: Founding member of digital music distribution company Uploader. Worked with music industry and built systems for B2B distribution of music assets. Headed up technical operations until its acquisition by IODA in 2007. A user of Drupal since 2003 and full time Drupal developer since 2007.
- Ryan Szrama (rszrama), Ubercart, Commerce Lead, Drupal Profile, Groups Profile
- Role: development, Ubercart configuration and documentation.
- Biography: Ryan has been the lead developer of the code and community driving Ubercart since 2006. He's been a part of Drupal conferences and training events since 2007, promoting and instructing people on using and developing for Ubercart.
Marketing and Promotion
Industry feedback will be sought throughout the development of this project. Members of the development team will run trials with artists and managers at music conferences and continuously online. Attending these events will enable us to also promote Kendra Hub throughout development cycle. Over the last 10 years Daniel Harris has spoken at and hosted Kendra Initiative workshops at many media industry events. Being invited to run workshops will happen as a matter of course and these can be used to obtain feedback for Kendra Hub.
Kendra Initiative will host a trial for Kendra Hub and engage with content owners to provide usability feedback.
The Kendra Hub trial will be continuous throughout the life of the development of the project.
- 65,000 USD for 3 programmers for 650 hours at 100 USD / hour.
- 10,000 USD for travel and accommodation to 5 conferences for 2 people.
- 25,000 USD for project manager for 250 hours at 100 USD / hour.
Total Budget: 100,000 USD
- Kendra Initiative will go out to industry for additional sources of funding to extend the scope of this project along the lines detailed in the future work section.
- Kendra Initiative is receiving some funding from the European Commission via P2P-Next, a 4 year FP7 project in conjunction with the BBC, Pioneer and many others. P2P-Next is not funding this KDI proposal for Kendra Hub. However, there are some parallels between the work Kendra Initiative is doing for P2P-Next and Kendra Hub. This can only be beneficial. The contacts that Kendra Initiative has will be useful to disseminate and get feedback on Kendra Hub and also push out the Drupal project as a whole.