Truenumbers is a data representation intelligible to humans and machines. It unifies the way users, developers and every part of a system talk about information, independent of storage implementation. Truenumbers is based on this reasoning:
truenumbers can be about any domain, as the list above shows. expressed in a structured yet readable LANGUAGE they are ideal for search, indexing and analytics
Data is knowledge, and knowledge is understood through language
The names used to label data models are a rigid, limited language
Better to use an open-ended structured natural language to describe data
Doing that is more expressive and avoids the limitations of models
Quick look: a truenumber in Excel
A truenumber is a fact described in a simple language that's natural and easy to learn. Here's an example of making a truenumber manually using the TrueOffice Excel add-in. We simply write the following into a spreadsheet cell:
[estimated construction cost of the new data center = 35 USD millions].
This is sent to the cloud where it's compiled, stored, and returned to your spreadsheet cell as a truenumber. There, TrueOffice grabs the descriptive DNA inside and uses it to generate a cell comment automatically.
The truenumber looks like the number "35" to Excel, so the spreadsheet will work normally for any Excel users with or without Truenumbers. Copy it to Word or email and its DNA goes with it where TrueOffice can use it to generate a sentence or a footnote.
Having self-contained data like truenumbers opens up many new possibilities. Each truenumber has a subject, author and creation date to help you organize and search them, so you could find all truenumbers that have "new data center" as their subject, or search for "costs" or "construction costs". Convert from USD to any other currency because our number knows it's in millions of dollars. Truenumbers can also be tagged, which is the way to organize truenumbers on the fly, and create business processes without programming that provide better governance than your best enterprise software.
Talking truenumber
For data to make sense and be useful, there must be natural language descriptions of it someplace, like labels on classes or on columns of a table. These are like the labels on file drawers and folders. Truenumbers are more like the index in a book, indexing content by brief descriptions of it, not by where it’s located. Let's see how this works. Here's another example of a truenumber sentence:
“the antenna of the Chrysler building has nominal height = 71 feet“
This is designed to look like human natural language, but is restricted to statements of a very specific form, that give a value for a property of some subject. One of these allowed sentence forms is <subject> has <property> = <value>. In the sentence above, the subject is "antenna of Chrysler building" (we ignore words like “the”) and the property is "nominal height".
Subject and property get encoded as special strings called phrase paths, which are sequences of words separated by colon ( : ) and forward-slash ( / ) operators. The colon operator represents an adjective-noun relationship so building:Chrysler would be the path for the phrase “Chrysler building”.
The slash operator acts like “of” as used in English used to mean belonging to, or part of. So, the phrase “antenna of Chrysler building” has path building:Chrysler/antenna and is the subject of the sentence. If you read it right to left, and say “of” when you encounter a slash operator, you will hear the original phrase. The property measured by a truenumber is encoded as a phrase path too. It’s OK to use paths in sentences if you want, instead of equivalent phrases, so this example could also be written:
"building:Chrysler/antenna has height:nominal = 71 ft"
Emergent domain knowledge
Searching for properties of 7049aluminum bar stock using a path in a subject tree
SRD subjects, tags and properties shape the knowledge contained in truenumbers. Given a bag of truenumbers, the SRDs tell us what subjects are being talked about, what sort of properties are of interest, and so forth. SRDs compose naturally to form trees, useful tools for managing and visualizing the vocabulary of a domain. As we gather more facts about buildings, we might find that the building tree has hundreds of branches, one for each building. Yet, an SRD is computationally very light-weight, being only a string, so vocabularies can be complex and large. You can choose to lock down your vocabularies up front, let them grow organically or anything in-between.
Truenumbers are statements of measurement
In a database, person's height would be a floating-point number, and the data model would imply in some way that the number was a height, and in what units. For example, a column-name like HEIGHT_INCHES. Truenumbers, instead, have units of measure and tolerances built into all numbers, and the property measured is part of the data as an SRD. This lets data benefit from the fact that physical quantities are a kind of "standard" that real-world data naturally adheres to, giving data from differing domains a baseline for comparisons and cross-domain analytics.
This picture shows an error being reported when trying to create a truenumber where the units don't match the property. In this case, "ft" is known to be a unit of length, not area. It would have to be "ft^2" or "in^2" or "acres", etc. to create the number.
Which unit of area you choose doesn't matter because Truenumbers internal math compares all values in standard SI units no matter how they are expressed.
The truenumber internal math engine is both units and tolerance aware, and can be used to define one truenumber as an expression combining other truenumbers. The example at left show a truenumber for the area of an angled metal bar defined in terms of the bar dimensions. Tolerance on the bar length is reflected in the uncertainty on the resulting area.