Data relationships create information
“Those who can do, and those who can’t teach”
There is an infinite amount of data but to turn that data into information the data needs context. Context is created by defining the relationships between data. Let us imagine a piece of data, 10. There is no information in this data because it has no relationships. If we add a relationship such as apples or oranges, we almost end up with information, 10 apples or 10 oranges. Lets say we say we have 10 oranges, how many oranges do we have? If you said ten, you may be right but this time you are wrong. The sequences of the numbers 1 and 0 don’t contain any information if they don’t have a type. We also know oranges are a type of fruit, but it can also be a type of color defined by a range of frequencies of light. To create information our data needs a type and relationships. In this case we will say 10 has the type “big-endian binary sequence”, and oranges are the type of fruit. We now have a very small piece of information, that there are two orange fruits, since the sequence 10 in big-endian binary encoding is two. To store and retrieve information we need to know the encoding (data structure) , the relationship between that data, and the data types that are represented by that data.
While there are many ways to encode data but I prefer XML. XML doesn’t just represent data, it can also represent information. The primary advantage of XML is that it can be used to encode data with type information, and encode relationships between that data. It also provides syntax to write comments that are not part of the data, so we can document the relationships between our data and the things the data represents. The data type, and structure, of data in XML is defined by a combination XML Namespaces, XML schema documents (XSD), and X/Open System Interface (XSI). XML defines the syntax (structure) to hold our data, XSD defines our data types, Namespaces separate names so they can be reused, and XSI establishes the relationship between our data, and where their types are defined.
XML can be a challenging technology to learn, but once you have mastered it you can use XML to store, retrieve, and communicate actual information, instead of simply working with data. Using SOAP, which is an XML language, you can communicate information between two applications. Using XSLT you can transform information from one XML language into another, and even transform the information from an XML document into other data formats. Some useful applications of XSLT is to convert XML directly into CSS files, SQL queries, and even encode XML data directly into programming language source code. XSLT is Turing complete, so it can convert the information in XML documents into any format. XSLT reveals a giant gap in XML technology. There is no Turing complete XML standard for converting any data into XML. I have done some work trying to accomplish this, but it is a big job, and as of now I haven’t been able to complete it. At this time the only way to complete the information cycle is to create an XSLT document to convert an XML parser definition document directly into the source code that can convert the data into XML. Doing so would be extremely complex so as of now most applications that need to convert data into XML contain their own parsers written in another programming language.