LMNL Activity

Wendell Piez

Appearing here are a few links related to activities developing LMNL (Layered Markup and Annotation Language), a markup technology designed to support the description of documents and data structures in which textual features and phenomena of interest may overlap.

In this respect, LMNL differs from the current standard for the structuring of electronic text using text-based markup, XML, in which textual objects are discrete, making an arrangement of “nested boxes” (to mathematicians, a directed acyclic graph) whose contents do not spill across boundaries. In XML (or in its cousin, HTML), this restriction is enforced by a simple rule, namely that when one element starts before another has ended, it must also end before it — thereby appearing “inside” it. In LMNL, this rule is relaxed (see the example below).

LMNL has been an ongoing research project initiated by Jeni Tennison and myself in 2002. Since that time it has attracted the interest of several excellent developers who have helped us build on the 2002 foundation, and (we hope it is fair to say) inspired and catalyzed a number of worthy alternative approaches.

Quick example

LMNL is defined in terms of a data model (implying a data access and processing API), to which any markup syntax might be adapted. But it does have a syntax designed to be optimal for representing its structures. Here's a simple example of a text marked up with LMNL “sawtooth” syntax — notice that the structures tagged as [l] (line) and [s] (sentence) overlap in the second line:

[excerpt [source}The Housekeeper{source] [author}Robert Frost{author]}
  [s}[l [n}144{n]}He manages to keep the upper hand{l]
  [l [n}145{n]}On his own farm.{s] [s}He's boss.{s] [s}But as to hens:{l]
  [l [n}146{n]}We fence our flowers in and the hens range.{l]{s]

Page last edited Dec 26, 2008