+ <br>
+ This operators aligns strings containing numbers so that their alphabetic
+ order agrees with their numeric order.<br>
+ </blockquote>
+
+ <ul>
+ <li>The <b>intersect</b> operator now intersects the attribute
+ groups of the matching subject strings set-theoretically rather than making
+ their "Cartesian product". This semantics reduces the computational costs
+ and makes intersection the dual of union.</li>
+
+ </ul>
+
+ <ul>
+ <li>The <b>property</b> operator now accepts more than one <b>isfalse</b>
+ clause to increase the complexity of the constraint condition used to filter
+ the raw query results. This feature is exploited in the queries produced
+ by the <a href="implementation.html">HELM query generator</a>.</li>
+
+ </ul>
+ <br>
+
+ <hr width="100%" size="2">
+ <div align="center">
+ <h3>The PostgreSQL database map:</h3>
+ </div>
+ The <b>PostgreSQL database map</b> is a file describing how the MathQL-1
+ interpreter must interact with the underlying PostgreSQL database, when
+it is run in Postgres mode. Currently this file contains the following information:<br>
+
+ <ul>
+ <li>the <i>database connection string</i> to be used when the interpreter
+ opens a connection with the database;</li>
+
+ </ul>
+
+ <ul>
+ <li>the <i>map</i> describing the correspondence between the metadata
+ access paths used by the <i>property</i> operator and the fields of the
+database tables.</li>
+
+ </ul>
+ The format of the file is textual and line oriented, but a corresponding
+ XML syntax will be provided soon.<br>
+ The first line must contain the database connection string and the subsequent
+ lines contain the map with the following syntax:<br>
+
+ <ul>
+ <li>blank lines: ignored (used for separation);</li>
+
+ </ul>
+
+ <ul>
+ <li>lines starting with a # followed by a space: ignored (used
+for comments);<br>
+ </li>
+
+ </ul>
+
+ <ul>
+ <li><table_name> <field_name> "<-"
+ [ <path_component> ]*<br>
+ </li>
+
+ </ul>
+
+ <blockquote>the information about the metadata denoted by the given
+ path is found in the given field of the given table in the database. For
+example the line:<br>
+ <br>
+ refobj h_occurrence <- refObj h:occurrence<br>
+ <br>
+ tells that the metadata denoted by the path <b>/"refObj"/"h:occurrence"</b>
+ is found in the field "h_occurrence" of the table "refobj" in the database,
+ while:<br>
+ <br>
+ refobj source <-<br>
+ <br>
+ tells that the metadata denoted by the path <b>/</b> is found in the field
+ "source" of the table "refobj" in the database;<br>
+ </blockquote>
+
+ <ul>
+ <li><table_name> <field_name> "<+"
+ [ <path_component> ]*<br>
+ </li>
+
+ </ul>
+
+ <blockquote>same as the previous but defines a default table and field
+ for the given path. This is used to force the interpreter to query a particular
+ table when the information denoted by a path can be found in more than one
+ table and field. For example:<br>
+ <br>
+ objectname source <+<br>
+ refobj source <-<br>
+ refrel source
+<-<br>
+ refsort source <-<br>
+ <br>
+ tells that the metadata denoted by the path <b>/</b> is found in the "source"
+ field of the "objectname", "refobj", "refrel" and "refsort" tables, and
+that the first choice is preferred;<br>
+ </blockquote>
+
+ <ul>
+ <li><table_name> "<-" [ <path_component> ]*</li>
+
+ </ul>
+
+ <blockquote>the given path denotes a structured metadata whose components
+ are found in the fields of the given table. For example:<br>
+ <br>
+ refobj <- refObj<br>
+ <br>
+ tells that the path <b>/"refObj"</b> denotes a structured metadata whose
+ components are found in the fields of the table "refobj"; <br>
+ </blockquote>
+
+ <ul>
+ <li><table_name> "<+" [ <path_component> ]*</li>
+
+ </ul>
+
+ <blockquote>same as the previous but tells that this is a default correspondence;