]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/homepage/whatsnew.html
ocaml 3.09 transition
[helm.git] / helm / mathql / homepage / whatsnew.html
index e00096b641cb838c1f80638ce34da99f12e6cc9b..1a15631ba5f1ba3ca03324c2eab1ba2c307a94cb 100644 (file)
 <head>
   <title>MathQL</title>
                                                                         
-          
+                        
   <meta http-equiv="content-type"
  content="text/html; charset=ISO-8859-1">
-                                               
+                                                       
   <meta name="author" content="Ferruccio Guidi">
-                                               
+                                                       
   <meta name="description" content="MathQL Home Page">
 </head>
   <body>
-                      
+                          
 <h1 align="center">MathQL-1</h1>
-                   
-<h2 align="center">A query language for RDF metadata</h2>
                        
+<h2 align="center">A query language for RDF metadata</h2>
+                           
 <table cellpadding="10" cellspacing="2" border="0" width="95%"
  bgcolor="#ffffff">
-              <tbody>
-                <tr>
-                  <td valign="top" align="left">                        
-                                                           
+                <tbody>
+                  <tr>
+                    <td valign="top" align="left">                      
+                                                                        
+  
       <ul>
-                    <li><a href="index.html">Forward</a><br>
-                 </li>
+                      <li><a href="index.html">Forward</a><br>
+                   </li>
                                                                         
-                      
+                                      
       </ul>
-                                                                         
-     
+                                                                        
+                      
       <ul>
-                  <li><a href="features.html">Features</a></li>
-                                       
+                    <li><a href="features.html">Features</a></li>
+                                                       
       </ul>
-                                       
+                                                       
       <ul>
-             <li>What's new<br>
-             </li>
-                                                                         
-     
+               <li>What's new<br>
+               </li>
+                                                                        
+                      
       </ul>
-                                                                         
-     
-      <ul>
-                  <li><a href="documentation.html">Documentation</a></li>
                                                                         
                       
+      <ul>
+                    <li><a href="documentation.html">Documentation</a></li>
+                                                                        
+                                      
       </ul>
-                                                                       
+                                                                        
+              
       <ul>
-                 <li><a href="implementation.html">Implementation</a><br>
-                 </li>
-                                                                       
+                   <li><a href="implementation.html">Implementation</a><br>
+                   </li>
+                                                                        
+              
       </ul>
-                                                                       
+                                                                        
+              
       <ul>
-                 <li><a href="authors.html">The authors</a><br>
-                 </li>
+                   <li><a href="authors.html">The authors</a><br>
+                   </li>
                                                                         
-                      
+                                      
       </ul>
-                                                                       
+                                                                        
+              
       <ul>
-                 <li><a href="links.html">Links</a><br>
-                 </li>
-                                                                       
+                   <li><a href="links.html">Links</a><br>
+                   </li>
+                                                                        
+              
       </ul>
-               <br>
-                  </td>
-                  <td valign="top">                                     
-                         
+                 <br>
+                    </td>
+                    <td valign="top">                                   
+                                         
       <div align="right"><b>What's new</b><br>
-        <br>
-               </div>
-   This page reports the newly <a href="implementation.html">implemented</a> 
- features of MathQL-1 that are not included in the official <a
+          <br>
+                 </div>
+     This page reports the newly <a href="implementation.html">implemented</a> 
 features of MathQL-1 that are not included in the official <a
  href="documentation.html">documentation</a> yet.<br>
-           <br>
-      <hr width="100%" size="2">
-      <div align="center">
-      <h3>  Changes and additions to MathQL-1 operators:</h3>
-      </div>
+             <br>
                
+      <hr width="100%" size="2"><br>
+      <h3 align="center"><img
+ src="http://www.cs.unibo.it/%7Efguidi/download/bbb11.png" alt="New"
+ width="38" height="37" align="top">
+ &nbsp;MathQL-1 version 4 now under development ...</h3>
+We are now implementing the new unstable version of MathQL-1 (i.e. MathQL-1.4).
+The main goals of this release are:<br>
       <ul>
-          <li>The <b>add</b> operator now accepts a syntax extension allowing
- to specify more than one explicit attribute group.</li>
-               
+        <li>A clear distinction between the core language and the auxiliary
+functions, which should be part of an extensible library.<br>
+        </li>
       </ul>
-               
+      <ul>
+        <li>The elimination of the explicit casts between the &lt;query&gt;
+and &lt;value&gt; types in queries.<br>
+        </li>
+      </ul>
+      <ul>
+        <li>A tight connection with a query generator (i.e <a
+ href="implementation.html">HELM query generator</a>).<br>
+        </li>
+      </ul>
+      <hr width="100%" size="2">              
+      <div align="center">
+      <h3>Changes and additions to MathQL-1 operators:</h3>
+        </div>
+                               
+      <ul>
+            <li>The <b>add</b> operator now accepts a syntax extension allowing
+  to specify more than one explicit attribute group.</li>
+                               
+      </ul>
+                               
       <blockquote>The syntax now is:</blockquote>
-               
+                               
       <blockquote>&lt;query&gt; := "add" [ "distr" ]? [ &lt;groups&gt; |
 &lt;avar&gt; ] "in" &lt;query&gt;<br>
-  &lt;groups&gt; := &lt;group&gt; [ ";" &lt;group&gt; ]*<br>
-  &lt;group&gt; := &lt;attribute&gt; [ "," &lt;attribute&gt; ]*<br>
-  &lt;attribute&gt; := &lt;value&gt; "as" &lt;path&gt;<br>
-          <br>
-  Examples:<br>
-  the query <b>add "1" as "a", "2" as "b" in subj "A"</b> gives the result
-         <b>"A" attr {"a"="1"; "b"="2"}</b> while<br>
-  the query <b>add "1" as "a"; "2" as "b" in subj "A"</b> gives the result
-         <b>"A" attr {"a"="1"}, {"b"="2"}</b>.<br>
-        </blockquote>
-               
+    &lt;groups&gt; := &lt;group&gt; [ ";" &lt;group&gt; ]*<br>
+    &lt;group&gt; := &lt;attribute&gt; [ "," &lt;attribute&gt; ]*<br>
+    &lt;attribute&gt; := &lt;value&gt; "as" &lt;path&gt;<br>
+            <br>
+    Examples:<br>
+    the query <b>add "1" as "a", "2" as "b" in subj "A"</b> gives the result
+          <b>"A" attr {"a"="1"; "b"="2"}</b> while<br>
+    the query <b>add "1" as "a"; "2" as "b" in subj "A"</b> gives the result
+          <b>"A" attr {"a"="1"}, {"b"="2"}</b>.<br>
+          </blockquote>
+                               
       <ul>
-          <li>The new <b>align</b> operator takes an integer <i>i</i> (represented
- as a string), a multiple string value <i>v</i> and returns the same <i>v</i>
- where each string with length <i>n &lt; i</i> is prefixed with <i>i - n</i>
- spaces. The syntax of the add operator is:</li>
-               
+            <li>The new <b>align</b> operator takes an integer <i>i</i> (represented
 as a string), a multiple string value <i>v</i> and returns the same <i>v</i>
 where each string with length <i>n &lt; i</i> is prefixed with <i>i - n</i>
 spaces. The syntax of the add operator is:</li>
+                               
       </ul>
-               
+                               
       <blockquote>&lt;value&gt; := "align" &lt;string&gt; "in" &lt;value&gt;<br>
-          <br>
-  This operators aligns strings containing numbers so that their alphabetic
- order agrees with their numeric order.<br>
-        </blockquote>
-                          
+            <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>
-               
+            <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>
-               
+            <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">
+        <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>
+        </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>
+          <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>
+          <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>
+  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>
+          <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>
+          <li>lines starting with a # followed by a space: ignored (used
+for  comments);<br>
+          </li>
+               
       </ul>
+               
       <ul>
-        <li>&lt;table_name&gt;&nbsp; &lt;field_name&gt; &nbsp;"&lt;-"&nbsp;
-[&nbsp; &lt;path_component&gt; &nbsp;]*<br>
-        </li>
+          <li>&lt;table_name&gt;&nbsp; &lt;field_name&gt; &nbsp;"&lt;-"&nbsp;
+ [&nbsp; &lt;path_component&gt; &nbsp;]*<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
+ path is found in the given field of the given table in the database. For
 example the line:<br>
-        <br>
-refobj&nbsp; h_occurrence &nbsp;&lt;-&nbsp; refObj &nbsp;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&nbsp; source &nbsp;&lt;-<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>
+          <br>
+  refobj&nbsp; h_occurrence &nbsp;&lt;-&nbsp; refObj &nbsp;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&nbsp; source &nbsp;&lt;-<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>&lt;table_name&gt;&nbsp; &lt;field_name&gt; &nbsp;"&lt;+"&nbsp;
-[&nbsp; &lt;path_component&gt; &nbsp;]*<br>
-   </li>
+          <li>&lt;table_name&gt;&nbsp; &lt;field_name&gt; &nbsp;"&lt;+"&nbsp;
+ [&nbsp; &lt;path_component&gt; &nbsp;]*<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&nbsp; source &nbsp;&lt;+<br>
-refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source&nbsp; &lt;-<br>
-refrel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; source&nbsp; &lt;-<br>
-refsort&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source &nbsp;&lt;-<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>
+ 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&nbsp; source &nbsp;&lt;+<br>
+  refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source&nbsp; &lt;-<br>
+  refrel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; source&nbsp;
+&lt;-<br>
+  refsort&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source &nbsp;&lt;-<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>&lt;table_name&gt; &nbsp;"&lt;-" [ &lt;path_component&gt; &nbsp;]*</li>
+          <li>&lt;table_name&gt; &nbsp;"&lt;-" [ &lt;path_component&gt; &nbsp;]*</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 &nbsp;&lt;- &nbsp;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>
+ are found in the fields of the given table. For example:<br>
+          <br>
+  refobj &nbsp;&lt;- &nbsp;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>&lt;table_name&gt; &nbsp;"&lt;+" [ &lt;path_component&gt; &nbsp;]*</li>
+          <li>&lt;table_name&gt; &nbsp;"&lt;+" [ &lt;path_component&gt; &nbsp;]*</li>
+               
       </ul>
+               
       <blockquote>same as the previous but tells that this is a default &nbsp;correspondence;
-        <br>
-      </blockquote>
+         <br>
+        </blockquote>
+               
       <ul>
-        <li>&lt;virtual_table_name&gt; &nbsp;"-&gt;" &lt;concrete_table_name&gt;</li>
+          <li>&lt;virtual_table_name&gt; &nbsp;"-&gt;" &lt;concrete_table_name&gt;</li>
+               
       </ul>
+               
       <blockquote>defines a correspondence between a virtual table name an
-a concrete table name. All the &lt;table_name&gt; entries represent virtual
-table names that are mapped to concrete table names using the identity function
-unless a particular mapping is defined for them using the above construction.
-This mechanism allows to define several set of metadata on the same database
-table as in:<br>
-        <br>
-refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp;&lt;-<br>
-refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;h_occurrence &nbsp;&lt;-
-&nbsp;refObj&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; h:occurrence<br>
-backpointer &nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;
-&nbsp; &lt;- &nbsp;backPointer&nbsp; h:occurrence<br>
-backpointer &nbsp;h_occurrence&nbsp; &lt;-<br>
-backpointer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
-&nbsp; &nbsp; &nbsp; &nbsp;-&gt; &nbsp;refobj<br>
-      </blockquote>
+ a concrete table name. All the &lt;table_name&gt; entries represent virtual
+ table names that are mapped to concrete table names using the identity function
+ unless a particular mapping is defined for them using the above construction.
+ This mechanism allows to define several set of metadata on the same database
+ table as in:<br>
+          <br>
+  refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;&lt;-<br>
+  refobj&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;h_occurrence &nbsp;&lt;-
+ &nbsp;refObj&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; h:occurrence<br>
+  backpointer &nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;
+ &nbsp; &lt;- &nbsp;backPointer&nbsp; h:occurrence<br>
+  backpointer &nbsp;h_occurrence&nbsp; &lt;-<br>
+  backpointer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
+ &nbsp; &nbsp; &nbsp; &nbsp;-&gt; &nbsp;refobj<br>
+        </blockquote>
+               
       <blockquote>which defines four path accessing two virtual tables ("refobj"
-and "backpointer") and then maps these tables in a single concrete table;<br>
-      </blockquote>
+ and "backpointer") and then maps these tables in a single concrete table;<br>
+        </blockquote>
+               
       <ul>
-        <li>"-&gt;" <br>
-        </li>
+          <li>"-&gt;" <br>
+          </li>
+               
       </ul>
+               
       <blockquote>a line like this must end the map file.&nbsp; <br>
-      </blockquote>
-Here you can find the <a
+        </blockquote>
+  Here you can find the <a
  href="http://www.cs.unibo.it/cgi-bin/cvsweb/helm/mathql_db_map.txt">current
-version of PostgreSQL database map for HELM</a>.<br>
-      <br>
-      <b>How does the interpreter use the map?</b> The map file is read during
-the interpreter initialization process from the file pointed by the MATHQL_DB_MAP
-environment variable and is used during the execution of each <i>property</i>
-operation in the issued queries.When executing a <i>property</i> operation,
-the interpreter uses the map to find the smallest set of database tables
-containing the information required by the given access paths and then queries
-these tables to obtain the wanted information. <br>
-                      </td>
-          </tr>
-                       
-  </tbody>      
+ version of PostgreSQL database map for HELM</a>.<br>
+        <br>
+        <b>How does the interpreter use the map?</b> The map file is read 
+during the interpreter initialization process from the file pointed by the 
+MATHQL_DB_MAP environment variable and is used during the execution of each 
+      <i>property</i> operation in the issued queries.When executing a <i>property</i> 
+operation, the interpreter uses the map to find the smallest set of database 
+tables containing the information required by the given access paths and then
+queries these tables to obtain the wanted information. <br>
+                        </td>
+            </tr>
+                               
+  </tbody>        
 </table>
-      <br>
+        <br>
+ <br>
 </body>
 </html>