10 January 2012

Universal business computer 4: Meaning

By Andrew Clifford

Fully capturing the meaning of information can make development 5× to 10× faster.

In the previous newsletter I went through some ideas on a more versatile way to represent information. This week I want to cover meaning.

What we mean by "meaning" is making data understandable and useful to people. This covers two aspects:

In most systems both aspects of meaning are implemented in code. Code in the user interface provides additional prompts to the user. Other code maintains the structure of the information and performs calculations.

Some systems attach additional information to stored data so that its meaning can be retrieved along with the data. This can be useful in a reporting environment, for example, to allow users to understand the meaning of the information.

In my vision of the universal business computer, this is taken one step further. Information is associated with data to describe its meaning to humans and to guide and constrain its processing.

A data graph structure makes this easier. For example, the information about a person:

A person as a data graph.

Can be described using another data graph.

The person application as a data graph.

This provides meaning to help the user. It also provides enough meaning for a general-purpose engine to manage the user interaction. It is the "application".

Because the application is itself a data graph, the things used to define the application can be described by yet another data graph.

The parts of an application as a data graph.

This has two advantages.

We use this approach in our Metrici Advisor assessment product. It uses data graphs to represent the information that should be gathered, and also to hold the information when it is gathered. Different types of data gathering need different styles: a simple survey is different from a detailed audit. We use more data graphs to allow information requirements to be set up in different ways for different types of solution. A single engine manages all user interaction and data maintenance, leaving only specific calculations to be implemented in code.

We have been surprised by the versatility and efficiency of combining data graphs and a general-purpose engine. As well as assessments, we have been experimenting with writing other applications, such as web content management, expense accounting, bug tracking and contact management. To measure efficiency gains, we redeveloped an Access application that had taken about three weeks to develop. We reimplemented it in Metrici Advisor in about two days, suggesting something like a five-fold to ten-fold reduction in development time.

The last part of my vision of the universal business computer is how user interaction is managed, which I will cover next week.