[WWW]"Unotal" is a syntactic framework, like S-expressions or XML.

The value of an attribute might be structured in Unotal. Insofar it goes in the other direction than Enamel: While the author of Enamel seems to believe that attributes in XML are a mistake, the author of Unotal believes that the actual mistake was that attribute values are not allowed to be structured in XML.

So, while in Enamel, there are no attributes, Unotal has attributes, but their values might be arbitrary structures and they might be repeated. This solves many of the ElementsVsAttributes-questions in XML, because attributes can always be chosen when binary-predicate assertions (properties) are to be written, while element types can be dedicated to marking real type information (is-a assertions) only. In XML this is not possible, and one often uses direct-child elements to mean properties where attributes would be more appropriate, but are not possible.

In Unotal, text is quoted using brackets. This means that it is always clear whether white space is significant. Most characters can appear within such a string literal without any escapes, even brackets themselves, as long as they are paired. Simple strings, which only consist of letters, do not have to be quoted at all.

The "elements" of XML correspond to "rooms" in Unotal; a room type is preceded by an ampersand "&".

XML                          Enamel (NML)          Unotal
<foo/>                       <foo>                 < &foo >
<foo bar="zot"/>             <foo <bar|zot>>       < &foo bar=zot >
<foo>zot</foo>               <foo|zot>             < &foo zot >
<foo bar="zot">quux</foo>    <foo <bar|zot> |quux> < &foo bar=zot quux >
<foo>Hey, &quux;!</foo>      <foo|Hey, [quux]!>    < &foo [Hey, ] quux [!] >
<foo>AT&amp;T you will</foo> <foo|AT&T you will>   < &foo [AT&T you will] >
<foo><bar>zot</bar></foo>    <foo|<bar|zot>>       < &foo < &bar [zot] >>

Structured attributes might be written as follows

< &echo
  pubDate =[2004-12-27T03:07:59+02:00]
  poster  =< name=[Joe Blogger] email=[] location=[where i am] >
  content =[Whatever I have to say, including escaped html]>
where the poster attribute value is a room itself.


  1. Unotal . . . . 9 matches
  2. ContentAsElements . . . . 2 matches