Markup systems for annotating text for formatting and other purposes have existed since the 60's but most were Procedure Markup systems.
Procedural Markup tells the application what to do with the information and not what the information represents.
Motivation: "Procedural markup is also inflexible. If the user decides to change the style of his document (perhaps because he is using a different output device), he will need to repeat the markup process to reflect the changes." [1]
The first "logical document model" system was Scribe (c. 1980) [2]
Philosophy: Markup should be descriptive and describe the logical structure of the information (document) and not its particular use or format.
[1] http://www.sgmlsource.com/history/AnnexA.htm
[2] B. Reid, "Scribe: A Document Specification Language and its Compiler," Ph.D. Dissertation, Carnegie Mellon University, Pittsburgh, PA (October, 1980).