Patterns

Patterns#

I first came across the idea of design patterns in the context of object-oriented software development. They have been very successful in that field, where commonly used language and concepts can be traced back to the influential 1994 book Design Patterns: Elements of Reusable Object-Oriented Software.

Crucially, these are not presented as universal best practices, but rather as different ways of solving the same problem, along with a discussion of the pros and cons in various situations.[1] There are different patterns for how to ‘solve’ object creation, structure and behaviour, but the choice of which pattern to adopt is left to the reader to decide, based on their context. It’s a toolbox, not a prescription.

This is the kind of approach I am attempting to apply to digital preservation. However, we must also recognise that we are at a earlier stage of development. The patterns are not yet clear, so I am trying to gather together the different ways we have solved our shared digital preservation problems, and see what patterns emerge.

The other main difference with software design patterns is the immense range of problems to be solved at different levels of granularity. From organisational structures and policies all the way down to storage design, digital preservation depends on many distinct layers of practice and technology. A single set of patterns can’t cover everything at once.

Fortunately, the history of design patterns indicates a how we might be able to proceed. The original authors of the “Design Patterns” book were inspired by the idea of pattern languages. This more complex framework proposes that large sets of patterns can form a kind of language with it’s own grammar, and was first proposed in A Pattern Language: Towns, Buildings, Construction in 1977.

This applied the idea to the design of towns and communities, documenting a cascading hierarchy of patterns to be considered when carrying out any kind of building project. From “Major structures which define the city” through “Housing” and right down to things like “Fix the exact positions for openings and frame them”, these sets of patterns can be approached at any level. As well as offering options in each case, the discussion explores how those choices interact with other sets of patterns, usually with the levels immediately above and below.

This is also similar to the idea of Shearing Layers in building design, where the different layers of design in a building are separated not just by physical size, but by how quickly each layer changes over time. For example, the furniture might move around on a daily basis, while the layout moves more slowly, and the structure of the building only changes on rare occasion.

Taking pattern languages and shearing layers as inspiration, the plan is to look for different sets of design patterns in digital preservation, separated by granularity in terms of scale and rates of change. Ideally, it should be possible to start at any point in the hierarchy, while accepting that some cross-referencing may be required when discussions depend on patterns in neighbouring layers. However, as the patterns are still in the early stages of development, they will likely make more sense if read in the order shown here: starting at larger scales and then zooming in.

Digital Preservation Patterns#

The hierarchy of patterns proposed so far is: