]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/grammar.txt
constant string quoting was fixed
[helm.git] / helm / mathql / grammar.txt
index 399a529f123320d802822f7873a9f42aca3fdb58..4f2ff8c76af8543080b0ed5b08b9cceb7006f249 100644 (file)
@@ -7,7 +7,8 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  <list> UNION <list>                  (* unione *)
        |  <list> INTERSECT <list>              (* intersezione *)
        |  <list> DIFF <list>                   (* differenza *)
-       |  <list> SORTEDBY <order>
+       |  <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 *)
@@ -33,17 +34,20 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  FALSE                                (* falso *)
        |  <string> IS <string>                 (* case sensitive matching *)
        
-<pattern> := <quoted-constant-string>          (* pattern costante *)
+<pattern> := <"-quoted-constant-string>        (* pattern costante *)
           
-<string> := <quoted-constant-string>           (* costante letterale *)
+<string> := <'-quoted-constant-string>         (* costante letterale *)
          |  CONCLUSION | HYPOTHESIS | BODY     (* costanti simboliche *)
          |  MAINCONCLUSION | MAINHYPOTHESIS
          |  <rvar>                             (* variabile *)
         |  <svar>                             (* variabile *)
         |  <function> <rvar>                  (* applicazione di funzione *)
         
-<function> := NAME                            (* rvar -> nome_oggetto *)
-           |  TITLE                           (* URI -> valore_Prop_DC *)
+<function> := NAME                            (* URIREF -> nome_oggetto *)
+          |  <property>
+
+<property> := THEORY                           (* URIREF -> valore_Proprieta' *)
+           |  TITLE                           (* URIREF -> valore_Prop_DC *)
            |  CONTRIBUTOR
            |  CREATOR
            |  PUBLISHER
@@ -62,28 +66,24 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
           |  CONTACT
           |  FIRSTVERSION
           |  MODIFIED
-           |  <refineop> <function>
+           |  <refineprop> <property>
 
-<refineop> := SUB                             (* proprieta' e sotto-proprieta'
+<refineprop> := SUB                           (* proprieta' e sotto-proprieta'
                                                   di *) 
-           |  SUPER                           (* proprieta' e super-proprieta'
+             |  SUPER                         (* proprieta' e super-proprieta'
                                                   di *)
 
-<order>    := THEORY                           (* ordinamento alfabetico in 
-                                                  base a teorie e default per
-                                                 gli oggetti *)
+<order>    := DESC                             (* ordinamento decrescente *)
           |  ASC                              (* ordinamento crescente *) 
-          |  DESC                             (* ordinamento decrescente *) 
-          |  KEY                              (* ordinamento in base a parole
-                                                  chiave o soggetto *)
 
 <rvar> := <not-reserved-identifier>            (* variabile per risorse *)
 <svar> := $ <not-reserved-identifier>          (* variabile per stringhe *)
 
 - le stringhe sono "case sensitive" 
 - la funzione non definita sull'argomento restituisce la stringa nulla
-- le <rvar> si presuppongono essere istanziate come URI complete o
-  URI#xpointer_expression e identificano risorse 
+- le <rvar> si presuppongono essere istanziate come URI references costituite
+  da un URI e da un fragment identifier opzionalecomplete; esse identificano 
+  risorse 
 - ogni binding lega una variabile libera (nuova) 
 - Precedenza operatori:
   NOT (+)  DIFF
@@ -99,6 +99,22 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
   teorema ci sono? 
 - L'ordinamento di default e' quello alfabetico crescente in base al nome 
   delle rvar
+- Note su <pattern>
+  Contiene un'espressione regolare per selezionare delle "reference" 
+  (cioe` delle uri eventualmente seguite da un fragment identifier)
+  L'espressione regolare contiene i seguenti costrutti:
+
+  costrutto        semanticamente fa match con                       
+  ?                un singolo carattere diverso da / # :             
+  *                la piu' lunga sottostringa che non contiene / # : 
+  **               la piu' lunga sottostringa che non contiene # :
+  altro carattere  solo se' stesso
 
+  costrutto        puo' appareire in
+  ?                "body"
+  *                dovunque
+  **               "body" e "fragment"
+  altro carattere  dovunque
 
+  "body"     parte compresa fra le occorrenze di ":/" e "#1" escluse
+  "fragment" parte successiva all'occorrenza "#1"