[11265] in www-talk@info.cern.ch
UA specification
daemon@ATHENA.MIT.EDU (Yuriy Guskov)
Sat Jan 30 10:24:56 1999
Date: Sat, 30 Jan 1999 17:10:08 +0200
From: Yuriy Guskov <ygheimth@adm.univd.kharkov.ua>
To: www-talk@w3.org, www-announce@w3.org
Resent-From: www-talk@w3.org
This is a multi-part message in MIME format.
--------------60512F9BDDFA4DDA49C947FF
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 7bit
Dear Sir or Madam,
It is submitted specification of Uniform Abstract language. This language can greatly relieve many pains of html and not only of this one. It is FIRST draft of specification so it might have a lot of unclear and ambiguous things.
Sincerely yours,
Yuriy Guskov.
____________________________________________
The solution to the problem
changes the nature of the problem.
--------------60512F9BDDFA4DDA49C947FF
Content-Type: text/html; charset=koi8-r;
name="ua-spec.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="ua-spec.html"
<html>
<head>
<title>Uniform Abstract Language</title>
</head>
<body>
<h2>Uniform Abstract Language (UA)</h2>
<h4>Specification Draft</h4>
<h3>Abstract</h3>
<p>The Uniform Abstract Language has been designed for ease of organizing and interpretation of various forms of data. Its goal is to make portable any form of data, code, definition, and variance to be processed on the Web.</p>
<h3>Table of Contents</h3>
<a href="#1">1 Introduction</a><br>
<a href="#11">1.1 What the UA is</a><br>
<a href="#12">1.2 Notes</a><br>
<a href="#2">2 Documents</a><br>
<a href="#21">2.1 Characters</a><br>
<a href="#22">2.2 Common Syntactic Constructs</a><br>
<a href="#23">2.3 Comments</a><br>
<a href="#24">2.4 Prolog and Expression List</a><br>
<a href="#3">3 Elements of definition</a><br>
<a href="#31">3.1 Operations</a><br>
<a href="#311">3.1.1 Disjunction</a><br>
<a href="#312">3.1.2 Conjunction</a><br>
<a href="#313">3.1.3 Junction</a><br>
<a href="#314">3.1.4 Subjunction</a><br>
<a href="#32">3.2 Contexts</a><br>
<a href="#321">3.2.1 Quantitative context (values)</a><br>
<a href="#322">3.2.2 Abstract context (names)</a><br>
<a href="#323">3.2.3 Relational context (types)</a><br>
<a href="#324">3.2.4 Modal context (modes)</a><br>
<a href="#ua-a">Appendices</a><br>
<a href="#ua-bibliography">A. References</a><br>
<a href="#ua-existing-stds">A.1 Normative References</a><br>
<a href="#ua-examples">A.2 Examples</a><br>
<a href="#ua-ex1">A.2.1 Hypertext table</a><br>
<a href="#ua-ex2">A.2.2 Programming</a><br>
<a href="#ua-ex3">A.2.3 Query (SQL).</a><br>
<a name="1">
<h3>1 Introduction</h3>
<p>Universal Abstract Language, abbreviated UA, describes structure, abstract interpretation of information as well as its relation meaning and modal organization of the data.</p>
<p>UA documents are made of <a href="#value">value</a>. Structural elements are associated with the help of <a href="#operation">operations</a> and are considered in different <a href="#context">contexts</a>.</p>
<a name="12">
<h3>1.1 What the UA is</h3>
<p>The UA is structural language for information transfer over the Web.
<p>The design goals of UA are:
<ol>
<li>UA shall be compatible with any form of data, code, definition, and variance.
<li>UA shall provide information transfer not depending on platform and implementation (application).
<li>UA shall provide structured environment of information for applications.
<li>The number of optional features in UA should be zero.
</ol>
</p>
<a name="12">
<h3>1.2 Notes</h3>
<p>There are several notes on issues that stem from the UA design goals:]
<ol>
<li>UA is not compliant with any language or technology. Any compatibility comes through defining this language with the help of UA constructions and assigning them specific values of this language.
<li>As UA is strictly and well structured language it is strictly and well visualized.
</ol>
</p>
<a name="2">
<h3>2 Documents</h3>
<p>Each UA document consists of <a href="#value">value</a>. Structural elements are associated with the help of <a href="#operation">operations</a> (<a href="#disjunction">disjunction</a>, <a href="#conjunction">conjunction</a>, <a href="#junction">junction</a>, and <a href="#subjunction">subjunction</a>) and are considered in different <a href="#context">contexts</a> (<a href="#structural">structural</a>, <a href="#abstract">abstract</a>, <a href="#relational">relational</a>, and <a href="#modal">modal</a>).</p>
<p>A textual object is an UA document if taken as a whole, it matches the production labeled <code><a href='#UA-document'>document</A></code>.</p>
<table cellpadding=5 border=1 bgcolor=#ffd700 width=100%>
<tr align=left><td><strong>Document</strong></td></tr>
<tr><td>
<table border=0>
<tr valign=top><td align=right><a name=UA-document></a>[1] </td>
<td align=right><code>document</code></td>
<td align=center><code> ::= </code></td>
<td align=left><code><a href=#UA-prolog>prolog</a> <a href='#UA-exprList'>ExprList</a></code></td></tr>
</table>
</td></tr>
</table>
<a name="21">
<h3>2.1 Characters</h3>
<p>A structural elements contains <b>text</b>, a sequence of <a href='#ua-character'>characters</a>, which may represent value or identifiers. <a name='ua-character'></a>A <b>character</b> is an atomic unit of text as specified by ISO/IEC 10646 <a href='#ISO10646'>[ISO/IEC 10646]</a>. Legal characters are tab, carriage return, line feed, and the legal graphic characters of Unicode and ISO/IEC 10646. The use of "compatibility characters", as defined in section 6.8 of <a href='#Unicode'>[Unicode]</a>, is discouraged.</p>
<table cellpadding='5' border='1' bgcolor=#ffd700 width='100%'>
<tr align='left'><td><strong>Character Range</strong></td></tr><tr><td>
<table border='0'>
<tr valign='top'><td align='right'><a name='UA-Char'></a>[2] </td><td align='right'><code>Char</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</code></td>
<td align='center'><code> /* </code></td>
<td align='left'><code>any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */</code></td></tr>
</table>
</td></tr>
</table>
<a name="22">
<h3>2.2 Common Syntactic Constructs</h3>
<p>This section defines some symbols used widely in the grammar.</p>
<p><code><a href="#UA-S">S</a></code> (white space) consists of one or more space (#x20) characters, carriage returns, line feeds, or tabs.</p>
<table cellpadding='5' border='1' bgcolor=#ffd700 width='100%'>
<tr align='left'><td><strong>White Space</strong></td></tr>
<tr><td>
<table border='0'>
<tr valign='top'><td align='right'><a name="UA-S"></a>[3] </td>
<td align='right'><code>S</code></td>
<td align='center'><code> ::= </code></td>
<td align='left'><code>(#x20 | #x9 | #xD | #xA)+</code></td></tr>
</table>
</td></tr>
</table>
<p><a name='UA-value'></a>A <b>Value</b> is a token
beginning with a letter or one of a few punctuation characters, and continuing
with letters, digits, hyphens, underscores, colons, or full stops, together
known as name characters or enclosed with quotation marks.</p>
<table cellpadding='5' border='1' bgcolor=#ffd700 width='100%'>
<tr align='left'><td><strong>Values and Operations</strong></td></tr>
<tr><td>
<table border='0'>
<tr valign='top'><td align='right'><a name='UA-Value'></a>[4] </td><td align='right'><code>Value</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>((<a href="#UA-Char">Char</a> | '_')
(<a href='#UA-Char'>Char</A>)*) | '"' (<a href='#UA-Char'>Char</A>)* '"' | _</code></td></tr>
<!-- <tr valign='top'><td align='right'><a name='UA-OpeningBr'></a>[5] </td><td align='right'><code>OpeningBr</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>'(' | '[' | '<' | '{'</code>
<tr valign='top'><td align='right'><a name='UA-ClosingBr'></a>[6] </td><td align='right'><code>ClosingBr</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>')' | ']' | '>' | '}'</code>-->
<tr valign='top'><td align='right'><a name='UA-Op'></a>[5] </td><td align='right'><code>Op</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>('-' | ';') | ('+' | ',') | ('*' | '.') | ('/' | ':')</code>
<!-- <tr valign='top'><td align='right'><a name='UA-ConjOp'></a>[8] </td><td align='right'><code>ConjOp</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code></code>
<tr valign='top'><td align='right'><a name='UA-JuncOp'></a>[9] </td><td align='right'><code>JuncOp</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code></code>
<tr valign='top'><td align='right'><a name='UA-SubjOp'></a>[10] </td><td align='right'><code>SubjOp</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code></code>-->
</table>
</td></tr>
</table>
<a name="23">
<h3>2.3 Comments</h3>
<p><a name="UA-comment"'></a><b>Comments</b> may appear anywhere in a document.</p>
<table cellpadding=5 border=1 bgcolor=#ffd700 width=100%>
<tr align='left'><td><strong>Comments</strong></td></tr>
<tr><td>
<table border='0'>
<tr valign='top'><td align='right'><a name='UA-Comment'></a>[6] </td>
<td align='right'><code>Comment</code></td>
<td align='center'><code> ::= </code></td>
<td align='left'><code>'/*' (<a href='#UA-Char'>Char</a>)* '*/'</code></td></tr>
<tr valign='top'><td align='right'><a name='UA-Comment'></a>[7] </td>
<td align='right'><code>OneLineComment</code></td>
<td align='center'><code> ::= </code></td>
<td align='left'><code>'//' (<a href='#UA-Char'>Char</a>)*</code></td></tr>
</table>
</td></tr>
</table>
<h3><a name="24">2.4 Prolog and Expression List</a></h3>
<p>Prolog defines imports for a document. Document expression list must appear after prolog.</p>
<table cellpadding='5' border='1' bgcolor=#ffd700 width='100%'>
<tr align='left'><td><strong>Prolog</strong></td></tr>
<tr><td>
<table border='0'>
<tr valign='top'><td align='right'><a name='UA-prolog'></a>[8] </td><td align='right'><code>prolog</code></td>
<td align='center'><code> ::= </code></td><td align='left'><code>('import' <a href='#UA-value'>Value</a> <a href="#UA-S">S</a>)+ </td></tr>
<tr valign='top'><td align='right'><a name="UA-Expr"></a>[9] </td><td align='right'><font><code>Expr</code></font></td>
<td align='center'><font><code> ::= </code></font></td><td align='left'><code>
<a href='#UA-ExprList'>ExprList</a>
(<a href='#UA-Op'>Op</a>
<a href='#UA-ExprList'>ExprList</a>)*</code></font></td></tr>
<tr valign='top'><td align='right'><a name="UA-ExprList"></a>[10] </td><td align='right'><font><code>ExprList</code></font></td>
<td align='center'><font><code> ::= </code></font></td><td align='left'><code>
'[' <a href='#UA-Expr'>Expr</a> ']' |
'(' <a href='#UA-Expr'>Expr</a> ')' |
'{' <a href='#UA-Expr'>Expr</a> '}' |
'<' <a href='#UA-Expr'>Expr</a> '>' |
<a href='#UA-Value'>Value</a>
</table>
</td></tr>
</table>
<a name="3">
<h3>3 Elements of definition</h3>
<a name="31">
<h3>3.1 Operations</h3>
<p>Operation is the way of assembling values in associations. Also an operation may define value's disposition to associating in specific way.</p>
<a name="311"><a name="disjunction">
<h3>3.1.1 Disjunction</h3>
<table width=100%>
<tr><td width=40%>
<pre>
+---+ +---+
| | | |
+---+ +---+
+---+
| |
+---+
</pre>
<td width=10><td valign=top>
<p>Disjunction represents structural elements as independent. (single)<br>
"A - B" means "A is independent from B".</p>
</table>
<a name="312"><a name="conjunction">
<h3>3.1.2 Conjunction</h3>
<table width=100%>
<tr><td width=40%>
<pre>
+---+ +---+ +---+
| |--| |--| |
+---+ +---+ +---+
</pre>
<td width=10><td valign=top>
<p>Conjunction represents structural elements as a group. (general)<br>
"A + B" means "A is grouped with B".</p>
</table>
<a name="313"><a name="junction">
<h3>3.1.3 Junction</h3>
<table width=100%>
<tr><td width=40%>
<pre>
+---+
+----| |----+
| +---+ |
+---+ | +---+
| |-----+----| |
+---+ | +---+
| +---+ |
+----| |----+
+---+
</pre>
<td width=10><td valign=top>
<p>Junction represents structural elements as an association. (plural)<br>
"A * B" means "A is related to B".</p>
</table>
<a name="314"><a name="subjunction">
<h3>3.1.4 Subjunction</h3>
<table width=100%>
<tr><td width=40%>
<pre>
+---+
| |
+---+
|
+-------+-------+
| |
+---+ +---+
| | | |
+---+ +---+
</pre>
<td width=10><td valign=top>
<p>Subjunction represents structural elements as a tree. (total)<br>
"A / B" means "B is part of A".</p>
</table>
<a name="32"><a name="context">
<h3>3.2 Contexts</h3>
<p>Any information could be considered in four contexts: quantitative, abstract, relational, and modal. Each context do not define information but the interpretation of it. Examining different contexts, we take this document as example.</p>
<a name="321"><a name="structural">
<h3>3.2.1 Quantitative context (values)</h3>
<p>Quantitative context used for:
<ul>
<li>organizing data in the most convenient and appropriate way;
<li>exposing organizational links between parts of data;
<li>constructing alternative complexes of data.
</ul>
</p>
<p>For example, this document "ua-spec" can be divided in the following values: <i>abstract</i>, <i>intro</i>, <i>defs</i>, and <i>examples</i> (each of them could represent either a hypertext document or a part of a document)
</p>
<table cellpadding=5 cellspacing=0 border='1' width='100%'>
<tr><td bgcolor=#87cefa colspan=2>value
<tr><td bgcolor=#f0ffff width=40%><code>[value1 - value2]</code>
<td>Used for separate values.
<tr><td bgcolor=#f0ffff><code>[abstract - "ua-spec"]</code>
<td>In this case <i>abstract</i> may be viewed instead of full specification <i>ua-spec</i> and vice versa.
<tr><td bgcolor=#87cefa colspan=2>list
<tr><td bgcolor=#f0ffff><code>[value1 + value2]</code>
<td>Used to express unity of several elements.
<tr><td bgcolor=#f0ffff><code>[abstract + intro]</code>
<td>Here, <i>abstract</i>, <i>intro</i> etc originally are pieces of hypertext results in the integral document.
<tr><td bgcolor=#87cefa colspan=2>graph
<tr><td bgcolor=#f0ffff><code>[value1 * value2]</code>
<td>Used to show dependencies (links) between various values.
<tr><td bgcolor=#f0ffff><code>[abstract * intro]</code>
<td>On the contrary to the previous example, if we want to represent <i>abstract</i> and <i>intro</i> as dependent but separate values we use <a href="#junction">junction</a> operation.
<tr><td bgcolor=#87cefa colspan=2>tree
<tr><td bgcolor=#f0ffff><code>[value1 / value2]</code>
<td>Used to convey hierarchical constructs within a single value.
<tr><td bgcolor=#f0ffff><code>[defs / "op-def" * "context-def"]</code>
<td><i>op-def</i> and <i>context-def</i> compose <i>defs</i> which can be either imaginary unity of them or a single value (document or part of document).
</table>
<a name="322"><a name="abstract">
<h3>3.2.2 Abstract context (names)</h3>
<p>Abstract context utilized:
<ul>
<li>interpreting and explaining information;
<li>make possible to treat information in different ways (eg, allow an user change some properties of it).
</ul>
</p>
<p>This document could be divided into two names <i>base</i> (consists of <i>abstract</i> and <i>intro</i>) and <i>desc</i> (consists of <i>intro</i> and <i>defs</i>).
</p>
<p><code>(base) [abstract (desc) [introduction] (base) defs] (desc) <b>or</b><br>
(base) [abstract introduction]<br>
(desc) [introduction defs]<br>
</code>
</p>
<p>Let's examine various variants of associating these two names with the help of different operations.
</p>
<table cellpadding=5 cellspacing=0 border='1' width='100%'>
<tr><td bgcolor=#87cefa colspan=2>element
<tr><td bgcolor=#f0ffff width=40%><code>(name1 - name2)</code>
<td>Used to interpret names that are independent by values included in it.
<tr><td bgcolor=#f0ffff><code>(base - desc)</code>
<td>Two names treated separately and can used for representation for beginners which make accents only on key items.
<tr><td bgcolor=#87cefa colspan=2>item
<tr><td bgcolor=#f0ffff><code>(name1 + name2)</code>
<td>Used to interpret a line of names which set up the whole.
<tr><td bgcolor=#f0ffff><code>(base + desc)</code>
<td>Names, taken as the whole, represent common or thorough view of this document.
<tr><td bgcolor=#87cefa colspan=2>unit
<tr><td bgcolor=#f0ffff><code>(name1 * name2)</code>
<td>Used to explain several names result in an unit.
<tr><td bgcolor=#f0ffff><code>(base * desc)</code>
<td>Such a representation can be used for concise expression of the document's meaning.
<tr><td bgcolor=#87cefa colspan=2>symbol
<tr><td bgcolor=#f0ffff><code>(name1 / name2)</code>
<td>Used to explain a value hierarchically structured.
<tr><td bgcolor=#f0ffff><code>(base / desc)</code>
<td>This form conform standard building of specification and can be used for formal purposes.
</table>
<a name="323"><a name="relational">
<h3>3.2.3 Relational context (types)</h3>
<p>Relational context used for:
<ul>
<li>serializing parts of information;
<li>building base structures for further extending.
</ul>
</p>
<p>Description of operations in this document can be typified like that:
</p>
<p>
<code>
<"ua-operation"> : ( desc + "desc-img")<br>
<"ua-operation2"> : (desc + "desc-aux") * "desc-img")
</code></p>
<p>We will examine various variants of associating these two types with the help of different operations.
</p>
<table cellpadding=5 cellspacing=0 border='1' width='100%'>
<tr><td bgcolor=#87cefa colspan=2>object
<tr><td bgcolor=#f0ffff width=40%><code><type1 - type2></code>
<td>Used for static representation of information.
<tr><td bgcolor=#f0ffff><code><"ua-operation" - "ua-operation2"></code>
<td>"ua-operation" and "ua-operation2" associated by <a href="#disjunction">disjunction</a> can be used separately.
<tr><td bgcolor=#87cefa colspan=2>action
<tr><td bgcolor=#f0ffff><code><type1 + type2></code>
<td>Used for dynamic representation of information.
<tr><td bgcolor=#f0ffff><code><"ua-operation" + "ua-operation2"></code>
<td>Type changing results in an action that is <a href="#conjunction">conjunction</a> of two or more objects.
<tr><td bgcolor=#87cefa colspan=2>entity
<tr><td bgcolor=#f0ffff><code><type1 * type2></code>
<td>Used for analytic representation of information.
<tr><td bgcolor=#f0ffff><code><"ua-operation" * "ua-operation2"></code>
<td>"ua-operation" and "ua-operation2" are linked as related to each other by some information ties.
<tr><td bgcolor=#87cefa colspan=2>principle
<tr><td bgcolor=#f0ffff><code><type1 / type2></code>
<td>Used for synthetic representation of information.
<tr><td bgcolor=#f0ffff><code><"ua-operation" / "ua-operation2"></code>
<td>"ua-operation" is a principle relating to "ua-operation2". Principle can be used excluding specific implementations. That is, "ua-operation" expresses principal construction consisting of description and image that can be applied to another information.
</table>
<a name="324"><a name="modal">
<h3>3.2.4 Modal context (modes)</h3>
<p>Modal context used for:
<ul>
<li>variating information;
<li>constructing manifold complexes of information.
</ul>
</p>
<p>This document could have modes "ua-html" and "ua-java". Let's examine various variants of associating these two modes with the help of different operations.
</p>
<table cellpadding=5 cellspacing=0 border='1' width='100%'>
<tr><td bgcolor=#87cefa colspan=2>mode (possible)
<tr><td bgcolor=#f0ffff width=40%><code>{mode1 - mode2}</code>
<td>Used to express sole variation of information.
<tr><td bgcolor=#f0ffff><code>{"ua-html" - "ua-java"}</code>
<td>Here, we could choose from two modes of the document.
<tr><td bgcolor=#87cefa colspan=2>variant (probable)
<tr><td bgcolor=#f0ffff><code>{mode1 + mode2}</code>
<td>Used to show several variations that integrated in a representation. It is definition by examples.
<tr><td bgcolor=#f0ffff><code>{"ua-html" + "ua-java"}</code>
<td>But here a browser should know about two variants of documents. Each of them is an exception as related to each other.
<tr><td bgcolor=#87cefa colspan=2>parity (arbitrary)
<tr><td bgcolor=#f0ffff><code>{mode1 * mode2}</code>
<td>Used to provide information with simultaneous variability.
<tr><td bgcolor=#f0ffff><code>{"ua-html" * "ua-java"}</code>
<td>In this case, <i>ua-html</i> and <i>ua-java</i> and two modes which, in general, can change each other.
<tr><td bgcolor=#87cefa colspan=2>goal (necessary)
<tr><td bgcolor=#f0ffff><code>{mode1 / mode2}</code>
<td>Used to form parts of information that is inducible from another ones.
<tr><td bgcolor=#f0ffff><code>{"ua-html" / "ua-java"}</code>
<td>One mode is subgoal for the another.
</table>
<HR>
<a name="ua-a">
<h3>Appendices</h3>
<h3><a name='ua-bibliography'>A. References</a></h3>
<h3><a name='ua-existing-stds'>A.1 Normative References</a></h3>
<dl>
<dt><a name='ISO10646'>ISO/IEC 10646</a></dt>
<dd>ISO (International Organization for Standardization). <em>ISO/IEC 10646-1993 (E). Information technology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane.</em> [Geneva]: International Organization for Standardization, 1993 (plus amendments AM 1 through AM 7).
</dd>
<dt><a name='Unicode'>Unicode</a></dt>
<dd>The Unicode Consortium. <em>The Unicode Standard, Version 2.0.</em> Reading, Mass.: Addison-Wesley Developers Press, 1996.
</dd>
</dl>
<h3><a name='ua-examples'>A.2 Examples</a></h3>
<h3><a name='ua-ex1'>A.2.1 Hypertext</a></h3>
<table cellpadding=5 cellspacing=0 bordercolor=#000000 border='1' width='100%'>
<tr><td width=40%>
This document
<td>
<pre>
<text/html> (Introduction)
["</pre>
<p>Universal Abstract Language, abbreviated UA, describes structure, ...
<pre>"];
...
(Introduction) +
(Documents)
("Elements of definition") / (
Operations /
(Disjunction *
Conjunction *
Junction *
Subjunction
)
+
Contexts /
("Quantitative context (values)" *
"Abstract context (names)" *
"Relational context (types)" *
"Modal context (modes)"
)
)
...
</pre>
</tr>
<tr><td>
Documents with the same header and footer. For a browser result of adding header, body and footer is a single document. But also a browser treat each of these parts separately that as the result diminish traffic and eliminate unnecessary routine (composing the similar documents, updating all similar documents).
<td>
<pre>
<hlink> (header) ["header.html"];
<hlink> (main) ["main.html"];
<hlink> (footer) ["footer.html"];
(header + body + footer)
</pre>
</tr>
<tr><td>
<pre>
<table>
<tr><th rowspan=2>col1<th colspan=2>col2
<tr><th>col21<th>col22
<tr><td>val11<td><td>val12
<tr><td>val21<td>val22<td>
</table>
</pre>
<table border=1 cellpadding=0 cellspacing=0>
<tr><th rowspan=2>col1<th colspan=2>col2
<tr><th>col21<th>col22
<tr><td>val11<td> <td>val13
<tr><td>val21<td>val22<td>
</table>
<td>
<pre>
(col1 + col2)
[val11 + _ + val13]
[val21 + val22 + _]
<b>or</b>
[(col1) val11 + (col22) val13]
[(col1) val21 + (col21) val22]
</pre>
</table>
<h3><a name='ua-ex2'>A.2.2 Programming</a></h3>
<table cellpadding=5 cellspacing=0 bordercolor=#000000 border='1' width='100%'>
<tr><td width=40%>
<pre>
interface AIntf {
int field1;
int field2;
int method1(int param1);
}
class AClass implements AIntf {
int field3;
int method1(int param1) {
if (param1 > 0)
result = 1;
else
result = 0;
}
}
</pre>
/* ...and some structures which might exist. For synchronization, content of a storage with knowledge and content of objects in any programming language.*/
<pre>
entity AnEntity {
int attr1;
int attr1;
}
</pre>
<td>
<pre>
<AIntf> (/(
<int> (field1) *
<int> (field2) *
<method1+> (<int> param1 * <int> result)
)
)
<AClass> (
<AIntf;> *
<int> (field3) *
<method1+> (<int> param1 * <int> result) [
</> ((param1) < ">" > [0])
[(result) [1] -
(result) [0]
]
]
)
<AnEntity*> (
<int> (attr1) *
<int> (attr2)
)
<AClass> [<AnEntity*>] /
(field1) [(attr1)] +
(field2) [(attr2)]
)
</pre>
</tr>
<tr><td>
<pre>
try {
i = i / j;
} catch (ArithmeticException) {
i = 0;
}
</pre>
<td>
<pre>
{
(i) [(i) / (j)]
} -
{
"AritmeticException"
} <+> [
(i) [0]
]
</pre>
</table>
<h3><a name='ua-ex3'>A.2.3 Queries</a></h3>
<table cellpadding=5 cellspacing=0 bordercolor=#000000 border='1' width='100%'>
<tr><td width=40%>
<pre>
select *
from customers
where customers.name = 'Henri'
</pre>
Such query conformed to UA form can be used throughout all applications recognized UA. Moreover, this entity can be used not depending on migration over different application. Eg, at first an entity could have form an appropriately structured text file then a simple database then an SQL query and so on.
<td>
<pre>
(customers / _)
</> (customers / name) ["Henri"]
</pre>
</table>
<hr>
<h4 align=center>Copyright © 1999 by Yuriy Guskov. All rights reserved.</h4>
</body>
</html>
--------------60512F9BDDFA4DDA49C947FF--