Rick Jelliffe (C) 2021-2023
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 text. It is designed to be lighter-weight than XML by being lexically richer (rather than use schemas), with much richer datatypes and tuples, more expressive delimiters, and better relation/graph support. It is designed to allow richer infosets or object bindings without requiring any schema loading or processing.
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.
Here is a very simple RAN document: it has two fragments (specified using "<<<" and ">>>")). The parser determines the datatypes of the attribute values (string, date, number) and whether they are serving as internal link targets (specified with "=:") or link anchors (specified with ":=")
<<<my-document x="y" date=2022-02-22 "A 53 Code" = "1257B" >>> <p belongs_with=:abc124>Hello </p> <<</my-document>>> <<<my-document id:=abc124 date=2022-02-22 "A 53 Code" = "1257A" >>> <p >World</> <<</my-document count=1 >>>
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.
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 “” (Li, et al., 2017) and "" ( Langdale and Lemire, 2020)