S-Expression based markup language
cairnarvon.rotahall.org
cairnarvon.rotahall.org
Let's get some semantic tags in there; I thought we all agreed that the display elements (bold, underline, italics) are out and semantic elements (strong, emphasis) are in.
What people on a forum are trying to do, is not to make their text look "strong", whatever that means to the person who made the forum stylesheet, but to make their text bold, whatever that means to them.
JSON for content and JavaScript to create HTML DOM would be my choice.
Well, no, not really; that's like saying that I'm trying to create a grilled-cheese sandwich when I go shopping. Unless I am a professional chef (and thus looking to experiment with the form rather than the content), what I really want is the experience of eating a grilled-cheese sandwich: the taste, texture, aroma, visual of grill-marks on bread, etc.
What people on a forum want is the experience of seeing a bolded or italic word: that they mentally emphasize, or add importance to, the term so marked-up. The bolding is just a mechanism by which to achieve that experience, a communication tool similar to speed lines in a comic book. If a particular comic book does something other than speed lines to indicate movement—or if a particular website does something else to indicate emphasis—then that is what will be sought out, as that is the word used in the "vocabulary" of the site's design to describe emphasis.
Strength or emphasis are the real goals; people just aren't used to stating their real goals, rather than "what they're trying to do." (The bane of IRC help channels everywhere.)
Edit : hoho, got the same point as Daniel Newby above whitout even looking. If that's not some kind of proof..
The semantics of HTML are whatever the user agent does with them. It is a declarative programming language. If HTML were a semantic tool, I would be able to define what the <strident> element means in my system spec. Instead I have to find an inline element and hijack it, which is about as semantic as a poke in the eye with a sharp stick. The necessity of using templating engines for HTML is proof that it is a pretty weak tool for semantics.
And if somebody wants to inflict S expressions on me, I'd better get macros.
EDITED.
"You're going to be gone for <em>three</em> weeks?" vs.
"You're going to be <em>gone</em> for three weeks?"
"Now we will talk about <strong>encapsulation</strong>".
These definitions taken from the HTML5 spec. Obviously, the words "strong" and "emphasis" are colloquially used interchangeably, but in HTML the language, they mean two distinct things.Similarly, the old <b> and <i> have been redefined for different use where phrases should be typographically distinguished without the implication of emphasis.
Had we invented HTML today, we probably would have named these tags differently, but that's the nature of backwards compatibility and gradual evolution.
I'm still not a fan of trying to tell machines about the meaning of natural language elements. Doing useful things with the information is equivalent to natural language processing, which is a hard problem. I once found a completely marked-up English dictionary and thought Oh, this will make it easy for the computer to understand English. Ha ha ha no. What the mark-up nerds call semantics turns out to be a microscopic subset of the full semantics.
What is useful is marking up the structure of documents. Knowing what the title is and where the sections are turns out to be useful for search scoping, even if the machine has no idea what the title means.
Also http://curl.com/
From the manual/spec at:
http://cairnarvon.rotahall.org/misc/sexpcode.html
An interesting idea, but I'm not convinced that it has that many advantages.