SGML and our favorite DTD, HTML, can enable semantic markup, but they don't
have to. It's not even clear to me that without combining a database with
hypertext, semantic markup is even possible. Let me try and draw the
distinction; as usual, clarification is welcome.
Structural markup means that you name document elements in the context
their relationship with one another, the whole, and other documents.
Semantic markup, which is uncommon, associates document elements with
lexical relationships. For example, if I make a reference to Microsoft, I
might include a semantic tag whose lexical relationship is "is a" and
content is "public company." Relationships might also be fuzzy, as in our
Topics, rather than explicit.