]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/grammar.txt
Modified Files:
[helm.git] / helm / mathql / grammar.txt
index 4f2ff8c76af8543080b0ed5b08b9cceb7006f249..7bdd67c3aeec2efab71c1cde13d1859ad6fab4e5 100644 (file)
@@ -7,8 +7,6 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  <list> UNION <list>                  (* unione *)
        |  <list> INTERSECT <list>              (* intersezione *)
        |  <list> DIFF <list>                   (* differenza *)
-       |  <list> SORTEDBY <order> <function>   (* unione lista ordinata secondo
-                                                  ordine e valore funzione *)
        |  SELECT <rvar> IN <list> WHERE <bool> (* selezione *)
        |  EXISTS <rvar> IN <list> WHERE <bool> (* esistenziale *)
        |  USE <list> POSITION <svar>           (* unione lista backward *)
@@ -16,6 +14,7 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  CONTRUCTORS <list>                   (* unione costruttori della 
                                                  lista oggetti*)
        |  PATTERN <pattern>                    (* espansione del pattern *)
+       |  REFERENCE <reference>                (* oggetto referenziato *)
        |  INTHEORY <list> ITEMTYPE <svar>      (* unione oggetti lista teorie *)
        |  THEORYREFTO <list>                   (* unione teorie che fanno 
                                                  riferimento a lista oggetti *)
@@ -25,6 +24,7 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
                                                   classi e loro superclassi *)
        |  <list> OFSUBTYPE <svar>             (* unione oggetti in base a 
                                                   classi e loro sottoclassi *)
+       |  <rvar>                              (* valore della var*)
 
 <bool> := ( <bool> )                           (* parentesizzazione *)
        |  <bool> AND <bool>                    (* congiunzione *)
@@ -33,8 +33,11 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  TRUE                                 (* vero *)
        |  FALSE                                (* falso *)
        |  <string> IS <string>                 (* case sensitive matching *)
+       |  <list> SETEQUAL <list>               (* uguaglianza tra liste *)
+       |  <list> SUBSET <list>                (* operazione di sottoinsieme *)  
        
 <pattern> := <"-quoted-constant-string>        (* pattern costante *)
+<reference> := <'-quoted-constant-string>      (* riferimento costante *)
           
 <string> := <'-quoted-constant-string>         (* costante letterale *)
          |  CONCLUSION | HYPOTHESIS | BODY     (* costanti simboliche *)
@@ -73,17 +76,15 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
              |  SUPER                         (* proprieta' e super-proprieta'
                                                   di *)
 
-<order>    := DESC                             (* ordinamento decrescente *)
-          |  ASC                              (* ordinamento crescente *) 
-
 <rvar> := <not-reserved-identifier>            (* variabile per risorse *)
 <svar> := $ <not-reserved-identifier>          (* variabile per stringhe *)
 
+- () = lista vuota (?)
 - le stringhe sono "case sensitive" 
 - la funzione non definita sull'argomento restituisce la stringa nulla
 - le <rvar> si presuppongono essere istanziate come URI references costituite
-  da un URI e da un fragment identifier opzionalecomplete; esse identificano 
-  risorse 
+  da un URI e da un fragment identifier opzionale complete; i riferimenti 
+  identificano risorse 
 - ogni binding lega una variabile libera (nuova) 
 - Precedenza operatori:
   NOT (+)  DIFF
@@ -118,3 +119,17 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
 
   "body"     parte compresa fra le occorrenze di ":/" e "#1" escluse
   "fragment" parte successiva all'occorrenza "#1"
+- FUTURO: operatore di ordinamento sul risultato finale della query.
+  <query> SORTEDBY <order> <function>   (* unione lista ordinata secondo
+                                           ordine e valore funzione *)
+  <order>    := DESC                           (* ordinamento decrescente *)
+            |  ASC                            (* ordinamento crescente *)     
+  DTD:
+  <!ENTITY % order '(ascendant|descendant)'>
+  <!ELEMENT Query %queryexpr;>
+  <!ELEMENT SortBy (Query, SortField)>
+  <!ELEMENT SortField %functexpr;>
+  <!ATTLIST SortField 
+            order %order; #IMPLIED>
+- RILASSAMENTO degli operatori UNION e INTERSECT. Operatori fuzzy con 
+  introduzione di pesi associati ai risultati.
\ No newline at end of file