Data is an abstraction; however, we need concrete representations in order to store, transfer, or talk about data. Which representation we use, JSON, CSV, XML, or any other, depends on such things as context, habit, tools, but in the end as long as the representation can represent the abstractions involved, since it is the abstraction that is of the essence, the choice of representation is of secondary importance. Humans are good at identifying implicit structure in notations and can deduce the structure of a date like 30 April 2023 with no help. Computers on the other hand benefit from extra information, and that is why we have representation languages to make the structure explicit, like:
<date> <day>30</day> <month>April</month> <year>2023</year> </date>Invisible Markup is a generalised technique that automatically identifies (implicit) structure in data representations, and adds explicit markup for use by other processes. It doesn't matter what the input form is, CSV, JSON, CSS, bibliographic entries, family tree information, or countless other examples, the output is a consistently marked up result, with XML currently being the target as the most general of the available markup languages. For instance the input might be: [spec] Jean Smith (ed.), Bridge Specification, example.org, 2022, https://example.org/specification.html and, while you have a lot of control over the details, the output could be
<biblioentry abbrev='spec'> <editor> <firstname>Jean</firstname> <surname>Smith</surname> </editor> <title>Bridge Specification</title> <publisher>example.org</publisher> <pubdate>2022</pubdate> <link href='https://example.org/specification.html'/> </biblioentry>This is all done by describing, in the ixml language, the details of the structure of the input, and how it should be represented on the output. Last year the Invisible Markup language ixml became a standard, and there are currently three implementations, with another three in preparation. This talk will describe the issues with data abstractions, and how ixml is used to bridge data representations.