In order to meet these design goals, OSN pursues the following features.
</div>
<ul xmlns:ld="http://lambdadelta.info/">
- <span class="red-mark">
- <li>
- <span class="alpha">
- <a href="https://en.wikipedia.org/wiki/S-expression">Symbolic expressions</a>
+ <li class="red-mark">
+ <span class="alpha">
+ <a href="https://en.wikipedia.org/wiki/S-expression">Symbolic expressions</a>
based on widely accepted syntactical conventions
provide for a <span class="emph ">lightweight</span> and <span class="emph ">generic</span> grammar,
which is both <span class="emph ">easy for machines to process</span>,
Apparently, these features fall outside the scope of OSN,
which targets the data structures of <span class="emph ">formal languages</span>.
</span>
- </li>
- </span>
- <br />
- <span class="blue-mark">
- <li>
- <span class="alpha">
+ </li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="blue-mark">
+ <span class="alpha">
Optionally <a href="https://en.wikipedia.org/wiki/Namespace">qualified</a> symbolic expressions
allow OSN texts to mix data from different domains preserving their own semantics
because name conflicts can be avoided.
domain-specific OSN applications can work as expected even if
data from different domains is added to the text they process.
</span>
- </li>
- </span>
- <br />
- <span class="green-mark">
- <li>
- <span class="alpha">
+ </li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="green-mark">
+ <span class="alpha">
The <a href="https://en.wikipedia.org/wiki/ASCII">US-ASCII</a> character set,
extended to <a href="http://www.utf-8.com/">UTF-8</a> in
free-form text strings for the convenience of human readers,
makes OSN documents <span class="emph ">easy to visualize and transport</span> over communication media.
OSN design aims at supporting <span class="emph ">application-independent</span> standard encodings.
</span>
- </li>
- </span>
+ </li>
</ul>
<div xmlns:ld="http://lambdadelta.info/" class="head2dx" id="grammar">Grammar <img class="icon37" alt="[butterfly]" title="\lambda\delta butterfly" src="http://lambdadelta.info/images/b6.png" />
</div>
and are available for extensions of OSN.
</div>
<ul xmlns:ld="http://lambdadelta.info/">
- <li>
+ <li class="">
This token can represent the identifiers and the numerical constants of most programming languages:
<br />
<span class="emph ebnf">symbol = 1 * symbol-char ; <br />symbol-char = '+' | '-' | '.' | '0' | ... | '9' | 'A' | ... | 'Z' | '_' | '`' | 'a' | ... | 'z' ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token contains free-form text with commonly accepted escape sequences:
<br />
<span class="emph ebnf">string = '"' , * ( string-char | "'" | '\' escape ) , '"' ; <br />string-char = ( #0 | ... | #10FFFF ) - ( #0 | ... | #1F | "'" | '\' | '"' | #7F ) ; <br />escape = 1 * space | '"' | "'" | '(' | ')' | '0' | '\' | 'a' | 'b' | 'e' | 'f' | 'n' | 'r' | 't' | ( 'u' , 4 * 4 hex ) | 'v' | ( 'x' , 2 * 2 hex ) ; <br />space = #9 | ... | #D | #20 ; <br />hex = '0' | ... | '9' | 'A' | ... | 'F' | 'a' | ... | 'f' ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token is a widely used alternative of the former token:
<br />
<span class="emph ebnf">string-alt = "'" , * ( string-char | '"' | '\' escape ) , "'" ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token separates the qualifiers of a symbolic expression:
<br />
<span class="emph ebnf">sep = ':' ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token starts a compound symbolic expression:
<br />
<span class="emph ebnf">open = '(' | '<' | '[' | '{' ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token ends a compound symbolic expression:
<br />
<span class="emph ebnf">close = ')' | '>' | ']' | '}' ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
This token is ignored and separates the other tokens:
<br />
<span class="emph ebnf">gap = space | ',' | ';' | '=' ; </span>
Spaces of the form <span class="emph ebnf">1 * gap </span> can appear between any pair of tokens.
</div>
<ul xmlns:ld="http://lambdadelta.info/">
- <li>
+ <li class="">
An OSN text:
<br />
<span class="emph ebnf">text = * q-expr ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
A qualified symbolic expression:
<br />
<span class="emph ebnf">q-expr = * ( symbol , 1 * sep ) , expr ; </span>
</li>
- <br />
- <li>
+ </ul>
+ <ul xmlns:ld="http://lambdadelta.info/">
+ <li class="">
An unqualified symbolic expression:
<br />
<span class="emph ebnf">expr = symbol | string | string-alt | ( open , text , close ) ; </span>
<div xmlns:ld="http://lambdadelta.info/" class="spacer">
<br />
</div>
- <div xmlns:ld="http://lambdadelta.info/" class="spacer">Last update: Fri, 22 Jul 2016 19:08:41 +0200</div>
+ <div xmlns:ld="http://lambdadelta.info/" class="spacer">Last update: Thu, 19 Jan 2017 19:22:37 +0100</div>
</body>
</html>