Namespaces and ixml

ixml is about taking implicitly structured (textual) data, recognising that 
implicit structure, and making it explicit in some way or another on 
output.

XML is one of the targets for that explicit output, and currently the best 
for representing the abstractions. It need not be the only one, even though 
I recognise that some of you are involved only because of the XML aspect.

 input -> ixml -> output

The real ixml is that middle bit.

However, ixml is not XML, nor, contrary to what you may think, does it 
contain any XML-specific items:
   ^ represents structured data, and was initially chosen because it looks 
like a tree, and has the added benefit of looking like an XML bracket on 
its side.
   @ represents data that is made unstructured on output (you could say it 
is destructured). I had several candidates for the mark, such as =, which 
looks flattened and un-tree-like, but in the end I chose @ as the symbol 
used in XML for flat data.

Namespaces are not a concept anywhere within ixml, nor do they map to any 
concept within ixml. It is purely a feature of XML, and one that was not 
even originally in the design of ixml ("not for generating any particular 
version of XML"). Adding explicit notation for namespaces somewhat fouls 
the ixml nest, making it specifically about a particular output format.

I proposed a way of doing namespaces using the existing mechanisms:

 data: @xmlns:iso, iso:date+.
         @xmlns:iso: ^"http://example.com/ns/date".
 iso:date: ...etc...

My feeling is that even if there were another notation added as well for 
namespaces, the method above would have to work anyway. 
So why would we want to have two methods of doing the same thing?

The call tomorrow is immediately before me giving the talk of my life to an 
audience of 4000 people, so I'm hoping it won't become too quarrelsome.

Speak to you tomorrow.

Best wishes from New Orleans,

Steven

Received on Monday, 2 May 2022 22:32:04 UTC