Principle: One Body, Many Heads
Posted on 02. Apr, 2011 by matt in Collaboration, Hydra, Hydra Principles
This is the first installment in our series on the Hydra Community Principles.
One Body, Many Heads references our project’s namesake, Hydra (greek Ὕδρα), the fearsome water beast with more heads than an ancient greek painter could fit on a vase. Anyone who’s watched Percy Jackson and the Lighting Thief knows that it’s really hard to hill a Hydra because every time you cut off one of its heads, two more spring up in its place.
We want to build digital repository solutions that are like the Hydra. We want to support many users interacting with diverse content in diverse ways while content accumulates in one repository. By creating many Hydra Heads on top of a repository, each specifically addressing a particular type of user interacting with a certain set of content, we make our repository and its content more durable. This is how our solutions live up to the name Hydra: One Repository exposed through many Hydra Heads.
In 2009/2010, we created three Hydra Heads as a starting point:
- Hydrangea: a reference implementation focused on faculty self-submission of open access articles and datasets
- SALT: am EAD-aware toolkit for Luminaries to browse through & annotate digitized versions of content they’ve submitted to university archives
- Stanford’s ETD Head: a solution for submission, review, and accessioning of students’ Electronic Theses and Dissertations (ETDs)
Based on our experiences building these three heads, we published a beta version of the Hydra Framework in July 2010. Since then, teams of developers have begun using the Hydra Framework to build heads suited to the users and content they need to support.
The 2011 generation of heads is slated to include solutions for:
- Archival arrangement & description of Born-digital materials
- Creation & dissemination of Image Collections
- Creation & dissemination of Audio & Video collections
- Management of Content Ingest Workflows
- Dissemination of audio/video recordings from courses & lectures
- Laboratory Dataset Submission & Management
For an up to date list of know Hydra heads, see the Known Implementations page on the Hydra wiki.
Work on these solutions is being carried out by a distributed community of developers spread across multiple continents. Where there’s a need, people are invited to pick up the code and start creating their own solutions. The Hydra Framework and the Hydra Community are designed to support this distributed approach to innovation.
One Hydra Framework … Many Heads … Many Teams … Many Types of Content … Many Users
The Hydra Framework is the base of code that makes it possible for all of these Hydra Heads to crop up in response to specific needs. It’s the basic DNA for repository solutions that combine the patterns of rapid application development with the sensibilities of ensuring re-use of both code and content.
Much of our effort over the past three years has focused on designing the Hydra Framework to support distributed development while also encouraging teams to share innovations and patterns across Hydra Heads. What we’ve learned is that good code is not enough to achieve this. We needed to encourage an entire culture of identifying, exchanging and applying best practices throughout the design, development, deployment, maintenance and usage of repository solutions. The principle of One Body, Many Heads is equally applicable here: A single community with a shared goal has spawned many teams with their own eyes, ears, and fangs primed to attack the repository needs before them.
Next week: If you want to go Fast, go alone. If you want to go Far, go together.
