Information Applications

Haplo booklet

Computer systems are good at storing and processing data as collections of structured measurements of the world. Relational databases have evolved to be very effective at processing data.

But for most of us, our day-to-day lives revolve around information. Facts and figures are just the starting point. Information is about how we interpret the world, and the tangled web of relationships between everything in our lives.

Haplo was created because we needed a toolkit to build information applications. Traditional application frameworks were too focused on data to be able to help us.

Information Applications are software systems which enable diverse groups of users to use collections of information. These collections are built up, over time, through their day-to-day work.

We've found that information applications have distinct characteristics, and specific requirements of the technology used to build them. Here's what we've learnt.

An information application manages a living collection of semi-structured information which describes things in the real world.

Information does not fit into neat columns in a database. Information has a more complex and varied structure which reflects the real world it describes, and requires sophisticated tools to represent it accurately.

The fundamental building blocks of an information application are records which describe an entity. This may be "things", like people, organisations, books and documents. But these entities are also "concepts" which describe ideas and ways of thinking about the world.

Just as in the real world, everything is interrelated. These relationships are the most powerful way of describing the entities.

Technology requirements
  • A non-SQL data model
  • Prefer to describe entities through their relationships to other entities
  • Free-text search layered on top of Linked Data (Semantic Web) understanding of relationships between entities
  • A single namespace for all the information managed, with a unique record for each thing or concept

It stores all types of information, without omission.

Information applications are capable of storing all the different types of information in an organisation: data, information, files, notes and conversation.

This makes it unnecessary to use many applications, each based around one type of information. It creates a fuller picture, by showing and searching all the related information in one place. And it removes the uncertainty caused by duplication in different systems.

Technology requirements
  • User interface capable of presenting clearly all types of information
  • File and document handling
  • Easy integration with other software, allowing information to be stored or processed elsewhere
  • Data model is a superset of other systems

When entering information, users describe what they see.

Describing things comes naturally to us. Information applications take advantage of our shared understanding of how to describe things with a data model which represents information in a human way.

With a sufficiently flexible data model, descriptions can be entered in the most natural way, directly without interpretation, just by filling in a simple form. You don't have to memorise rules about how to enter data, enabling really accurate and consistent description of information.

Technology requirements
  • Loosely typed object store, with each object a list of "facts"
  • Multiple values allowed in every field, including the type of the object
  • Hierarchy support for things and concepts (eg subsidiary companies, and traditional taxonomies)
  • The information forms the structure of the data model, with no hidden management metadata

Workflow processes adapt as information is edited.

Information moves between people as they use it in their work. They may add their interpretations, take an action, and send it on to someone else.

Information applications support the day-to-day use of information with lightweight workflow support. But unlike systems designed for a command and control organisation, they take the humane approach of letting the information control the process, rather than the process controlling the person.

An information application observes the state of the information, and prompts next actions. Any piece of information can be freely edited at any time, and the workflow adjusts accordingly.

Technology requirements
  • An application framework designed around observing changes to information
  • A plugin API which encourages functionality to be implemented in small modules, which cooperate to form the whole application
  • A data model which allows extensible representations of entities, so modules can share a common description of the world

Everyone who needs the information can use it.

An information application is capable of providing access to everyone who needs to use information. Instead of preventing access to information, the focus is on enabling appropriate access. This requires a permission system which is sufficiently flexible to describe what every user should be able to see and do.

This flexibility of access control, combined with a user interface that adapts to whatever subset of information is available, means that everyone in an organisation can benefit from, and contribute to, the organisation's shared knowledge.

Technology requirements
  • Expressive permissions system which can describe complex rules in an easily understandable way
  • Fine grained access controls with each object descriptively labelled
  • User permissions defined in terms of what operations are allowed based on how objects are labelled
  • Audit trails and preservation of historical versions to support a "trust but verify" culture

An information application can be easily changed to meet new requirements.

Everything changes, whether because of external pressures, changing markets, or new opportunities. An information application is a living system which can adapt to change.

As an information application describes the world, it is inherently flexible enough to change over time and support new uses of the information. Rather than storing an interpretation of the world for a specific use, it is a collection of information which can be used for any purpose.

Technology requirements
  • Flexible data model
  • Careful platform design, allowing every decision to be changed

Haplo makes it easy to build and maintain information applications.

We created Haplo because we couldn't make information applications with anything else. By using it to build applications for our clients, we learnt more about information applications, and embedded everything we learnt into the platform.

Out of the box, Haplo provides everything you need to manage a collection of information, with no programming required.

Then, once you understand how people want to use the information, write plugins to implement the functionality which is specific to your organisation.

Haplo Technology
  • Management user interface for configuring and changing the data model and permissions
  • User interface around this data model, including information editing, search and discovery
  • Extensive plugin API to implement application specific functionality