<<Rapid Access Notation>>

Rick Jelliffe (C) 2021-2022

Rapid Access Notation (RAN) is a  possible document format current under design, to allow fast and efficient access to elements in fragments on the raw text1.  It is designed to be lighter-weight than XML by being lexically richer (rather than use schemas), with much richer datatypes,  more expressive delimiters, and better relation/graph support. 

A RAN document is a sequence of independent fragments, with lexically-determined datatyped values and relational links.  A RAN document is a series of trees of nodes, overlaid with multi-stage addressed links: it is not a tree.

  • RAN is designed to support streaming, parallel, vectorized, speculative and lazy parsing.
  • It is designed with a layered, “russian doll” approach so that systems that only need sparse access in large documents can have it efficiently, and so that the syntax can be augmented (as distinct from extended) to support specialist notations.  
  • It has an eco-system of supporting technologies, include very comprehensive data-typing, validation method Apatak and a CSV-embedding convention.

Here is a very simple RAN document: it has two fragments (specified using "<<<" and ">>>") with anchors (specified with "#=#") and an internal link (specified with "=#").

<<<my-document id#=#abc123 date=2022-02-22 "A 53 Code" = "1257B">
           <p>Hello </p>
</my-document id#=#abc123 >>>

<<<my-document id#=#abc124 date=2022-02-22 "A 53 Code" = "1257A">
</my-document id@=@bc124>>>

RAN considered as a syntax has been influenced by XML, SGML, XBRL, CSV, SQLite, XPath, DSSSL and  NLJSON. An important design goal has been that it is not merely another syntax for these existing notations, but goes well beyond.

1 By raw text is meant that the stream can be lexed, parsed and transduced (i.e. data-type-annotated) in-place, without allocating extra buffer space or requiring schemas.  For information on the kinds of parsing and application that motivate the design of RAN, see the papers  “Mison: A Fast JSON Parser for Data Analytics” (Li, et al.,  2017) and "Parsing Gigabytes of JSON per Second"  (  Langdale and Lemire, 2020)