Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
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:

  • When the system outputs data, attaching additional information to interpret the data. For example "129.43" is meaningless, but "You owe £129.43 on your credit card" is meaningful.
  • Internally to the system, guiding and constraining the processing. This includes the maintenance of the structure of the data and calculation of data values.

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.

  • The same general-purpose engine can be used to support the final end user and to develop applications.
  • By adding more layers of definition, different types of application can have specific development tools, which makes development very simple and efficient.

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.

Next: Universal business computer 5: Interaction


To subscribe to the newlsetter, simply send an email to
Privacy policy

Subscribe to RSS feed

Latest newsletter:
Magical metadata

We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Try it for free!

Find out more