Skip to content

Latest commit

 

History

History
62 lines (51 loc) · 2.41 KB

separator.md

File metadata and controls

62 lines (51 loc) · 2.41 KB

alias ~ Delimiter.

idea ~ An element indicates the boundary between two other elements.

context ~ A sequence with at least two elements and a third separator element.

motivation ~ Indicate borders and connections between data elements.

implementations ~ Select data elements that must not occur in normal content (prohibition) or mark an element as (non)separator by a flag. A schema can tell which separators to use at which places.

examples ~ - Whitespace characters separate words. - Brackets and delimiters, such as {, [, (, ), ], } and ,, |, ;, : etc. are used as separators in JSON, INI, CSV and other data structuring languages. Similar characters are also popular for ad-hoc structuring of values, for instance to create lists and annotations. - ASCII defines four level separator characters (code 28 to 31). - Lines in conceptual diagrams are used as borders and connections.

counter examples ~ Being a separator is not an inherent property of a data element, so whitespace, brackets and delimiters may also occur as normal content.

difficulties ~ - Parts of elements can be misread as separator and vice versa. - Most elements divided by separators are divided by separators on their parts. Such hierarchic embeddings can be read ambiguously (for instance "( { ) }"). - It is not obvious whether separators indicate borders and connections between elements on the same level (for instance arrows in a diagram) or whether they also combine elements by subsumption (for instance subfield indicators). - In sequences it must be clear whether separators occur between, after, or before an element, otherwise one can unintentionally introduce empty elements, for instance by ending a comma-separated list with a comma.

related patterns ~ - One can alternatively use data elements of known size so no explicit delimiters are needed. - Separators can simultaneously act as flag to indicate the type of a connection. - If the actual form of a separator does not matter, the separator element is an example of the garbage pattern.

implied patterns ~ An embedding gives context to separating elements and makes clear which data elements are actually separated and connected.