MicroXPath

It's been quiet in MicroXML land, but I've pretty much been using MicroXML
all the while. In my company's work of publishing library information
(catalogs, events & programs, etc.) as Linked Data [1] we run into an
absolute zoo of obscure XML formats I'd never heard of just a few years
ago. Our team often has to rapidly run through some new XML data source and
extract its data. I've been using a toolchain I wrote which transforms XML
to MicroXML right away in processing. This allows us to have very simple
and efficient tools where the data is very, very easy to reason about
throughout, including by some of the non-techie library specialists who
interact within the pipeline to tweak how library data is interpreted and
then published.

Earlier this year I started make available a pattern language that library
specialists could use to pinpoint parts of documents going through the
pipeline. I remembered what James Clark had suggested once, that CSS 3
might be the best XPath thingie for MicroXML, but I'd hacked together a
quick XPath subset for our purposes, and this really seemed to make sense
to users. After adding a few more features here and there I realized that I
should just implement something more rigorous, so I started to reason about
how a proper MicroXPath might look. Why not start with the great simplicity
of XPath 1 but borrow a few of the neat tricks from XPath 2+ (read
sequences)?

I very quickly was able to implement something actually simpler to code
than the several XPath 1.0 implementations I've worked on over the years. I
thought, what the heck, maybe others will find this useful. I also decided
to present MicroXPath for Balisage this year, as one of the late-breaking
sessions.

Here is an outline of MicroXPath:

https://gist.github.com/uogbuji/ee20d32cfabc9b0331f5c29837c37091

Here's my implementation:

https://github.com/uogbuji/amara3-xml/tree/master/lib/uxml/uxpath

I hope the README has enough to get anyone started who'd like to give it a
spin.

I look forward to any thoughts.

[1] http://library.link/


-- 
Uche Ogbuji                                       http://uche.ogbuji.net
Founding Partner, Zepheira                  http://zepheira.com
Author, _Ndewo, Colorado_                 http://uche.ogbuji.net/ndewo/
Founding editor, Kin Poetry Journal      http://wearekin.org
http://copia.ogbuji.net    http://www.linkedin.com/in/ucheogbuji
http://twitter.com/uogbuji

Received on Friday, 8 July 2016 23:48:30 UTC