Hi Folks,
Long ago I read Euclid. It is a fabulous book. It begins with simple facts and
then incrementally builds upon them using basic logic to formulate increasingly
sophisticated concepts.
I want someone who has never heard of DFDL to understand why DFDL is relevant
to them. I want to follow Euclid's approach: start with simple facts about data
and then incrementally build upon them using basic logic. Hopefully, by the end
of a series of steps the person will say, "Ah, yes, I see how DFDL is relevant
to me." Below is my stab at this. Does each step follow from the previous
steps? Is each step easy to understand? Are there typos? Am I missing steps?
Are there flaws in my logic? Am I missing alternative explanations and
conclusions? Please help! /Roger
DFDL is relevant to you ... here's why
1. Everywhere one turns one sees data being created and consumed.
2. Not only do humans create and consume data, but software and hardware do as
well.
3. The data is represented (structured, formatted) in various ways.
4. A data consumer may find one representation more usable (efficient,
practical, suitable) than another. For example, the data to be consumed is in a
textual Comma Separated Value (CSV) representation but the consumer is a Java
application which finds Java objects to be a more useable representation.
Another example, the data to be consumed is in a binary representation but the
consumer is a person who finds XML documents to be a more usable representation.
5. Consumers receiving data in a less desirable representation may wish to have
it converted to a more usable representation.
6. A DFDL processor is a tool that converts one representation to another.
7. Converting a representation requires first understanding the representation.
8. Understanding a representation requires describing the representation.
9. DFDL is a language for describing data representations.
10. When data to be consumed is in a less desirable representation, use DFDL to
describe the data, provide the DFDL description to a DFDL processor for
converting the representation to a more usable representation, and then consume
the data in its usable representation.