Tutorial: Invisible Markup Presented by Steven Pemberton https://youtu.be/N0MxgKBkGyY * Numbers are an abstraction: there is no number 3 you can point to, only three bikes, or three sheep, or three examples. Three is what those bikes, sheep, and examples have in common. * Similarly data is an abstraction, but we need to represent it in some way in order to be able to store it, transfer it, or talk about it. Whether we use CSV, JSON, XML, or just plain text depends on our habits, our needs, and the environment we work in, but there is no essential difference between these four representations in JSON, XML, and plain text, since they all represent the same abstraction. * 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 need extra information, and that is why we have representation languages to make the structure explicit, like those above. * Invisible Markup is a method of automatically recognising the structure in notations, and adding structural markup. 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. What it does is takes a representation of data (typically with implicit structure), uses a description of the format of that data to recognise the data's structure, creates an internal representation of the data, now with the structure made explicit, which can then be used for multiple purposes, including creating an external representation with explicit structure. * For instance the input might be a bibliographic entry like this and, while you have a lot of control over the details, the output could be like what you see here. The Invisible Markup language ixml was formally released as a stable specification last year and there are currently four implementations, with another three in preparation. * This is a hands-on tutorial, and uses a rapid-fire sequence of exercises, each consisting of 5 minutes of presentation, followed by 5 minutes of coding, and the whole language is introduced. You should bring a laptop with a browser, but no installation is required. The presenter will be me, Steven Pemberton, co-designer of the language, and of many other technologies you will have used, such as HTML and CSS.