]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/core_grammar.txt
Modified Files:
[helm.git] / helm / mathql / core_grammar.txt
diff --git a/helm/mathql/core_grammar.txt b/helm/mathql/core_grammar.txt
deleted file mode 100644 (file)
index 2ef292c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI
-       VERSIONE IMPLEMENTATA
-MATHEMATICAL QUERY LANGUAGE (MathQL) 
-
-<query> := <set>                               (* clausola iniziale *)
-
-<set> :=  ( <set> )                            (* parentesizzazione *)
-       |  <rvar>                              (* var per insieme singoletto 
-                                                 di una risorsa *)
-       |  <svar>                              (* var per insieme di risorse
-                                                 (insieme di valori) *)
-       |  REF <string-set>                     (* oggetto/i referenziato/i da 
-                                                 URI esplicita/e *)
-       |  PATTERN <string-set>                 (* oggetto/i referenziato/i da 
-                                                 URI ottenute da espansione 
-                                                 del pattern *)
-       |  SELECT <rvar> IN <set> WHERE <bool>  (* selezione *)
-       |  LET <svar> BE <set> IN <set>         (* assegnazione a set-var in 
-                                                  contesto *)
-       |  <relation> <quoted-constant-string> <set> ATTR <vvar-list>           
-                                               (* unione insieme risorse in
-                                                 relazione specificata con le
-                                                 risorse in set, ognuna con 
-                                                 attributi (ATTR) *)
-       |  <set> UNION <set>                    (* unione *)
-       |  <set> INTERSECT <set>                (* intersezione *)
-
-<relation> := RELATION                        (* relazione (proprieta') *)
-          |  SUBRELATION                      (* proprieta' e 
-                                                 sotto-proprieta' *)
-          |  SUPERRELATION                    (* proprieta' e 
-                                                 super-proprieta' *)
-
-<vvar-list> := <vvar>
-            |  <vvar> , <vvar-list>
-
-<bool> := ( <bool> )                           (* parentesizzazione *)
-       |  TRUE                                 (* vero *)
-       |  FALSE                                (* falso *)
-       |  NOT <bool>                           (* negazione *)
-       |  <bool> AND <bool>                    (* congiunzione *)
-       |  <bool> OR <bool>                     (* disgiunzione *)
-       |  <string-set> EQ <string-set>         (* uguaglianza tra insiemi 
-                                                 stringhe (case sensitive) *)
-       |  <string-set> SUB <string-set>        (* operazione di sottoinsieme 
-                                                 tra insiemi stringhe *)
-       |  <string-set> MEET <string-set>       (* operazione di meet tra 
-                                                 insiemi stringhe *)
-       |  EX <bool>                           (* existential on attributes
-                                                 of references *)
-
-<string-set> := {}                                (* insieme vuoto*)
-            |  <quoted-constant-string-set>       (* stringa singoletto *)
-             |  {<quoted-constant-string-set>}    (* insieme stringhe *)
-             |  REFOF <set>                       (* insieme riferimenti *)
-             |  <rvar>.<vvar>                      (* variabile per insieme
-                                                     stringhe, relativa a 
-                                                     riferimento *)
-            |  <function> <quoted-constant-string> <string-set> 
-                                                  (* applicazione di funzione
-                                                     specificata a riferimento
-                                                     o insiemi di rif. o var*)
-
-<quoted-constant-string-set> := <quoted-constant-string>
-                            |  <quoted-constant-string> , <quoted-constant-string-set>                                           
-                                                  (* lista di stringhe *)
-
-<function> := FUN                                 (* funzione generale *)
-
-<rvar> := @ <not-reserved-identifier>          (* variabile per riferimento *)
-<vvar> := $ <not-reserved-identifier>          (* variabile per insiemi 
-                                                 stringhe *)
-<svar> := % <not-reserved-identifier>          (* variabile per insiemi 
-                                                 riferimenti *)
-
-
-- MEET e' definito come "esiste almeno un elemento che appartiene 
-  all'interserzione tra due insiemi"
-- 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 opzionale complete; i riferimenti 
-  identificano risorse 
-- Precedenza operatori:
-  NOT (+)  DIFF
-  AND      INTERSECT
-  OR  (-)  UNION
-- L'ordinamento di default e' quello alfabetico crescente in base al nome 
-  delle rvar
-- REF aumenta performance perche' NON accede al data base (costoso).
-- L'argomento di PATTERN ha sintassi di una espressione regolare 
-  POSIX 1003.2-1992
-- Possibili FUN (<quoted-constant-string>):
-  NAME (* URIREF -> nome_oggetto *)
-- MEET aumenta performance nel caso si verifichi (a in S) oppure 
-  (b in S) = ({a,b} meet S) perche' valuta S una volta sola
-- Record <rvar>.<svar> serve per disambiguare nomi uguali di variabili
-- Operatori (come EQ) hanno nomi abbreviati rispetto ai costrutti del 
-  linguaggio
-- EX verfica che la sua condizione sia vera per almeno un insieme di attributi
-  associato all'URI in rvar
-- Possibili RELATION sono:
-  USE con attributo POSITION (riferimenti backward) e valori MAINHYPOTHESIS, 
-                   HYPOTHESIS, MAINCONCLUSION, CONCLUSION, BODY
-  USEBY con attributo POSITION (riferimenti forward) e valori MAINHYPOTHESIS, 
-                   HYPOTHESIS, MAINCONCLUSION, CONCLUSION, BODY
-  CONSTRUCTORS
-  INTHEORY con attributo ITEMTYPE (riferimenti oggetti contenuti in teorie)
-  THEORYREFTO con attributo ITEMTYPE (riferimenti teorie referenti a oggetti)
-- <string-set> invece di <set> come argomento di <function> poiche' la REF non
-  e' piu' restrittiva su argomento/i e quindi e' inutile imporne l'uso quando
-  si passano i riferimenti alle funzioni. Con <string-set> l'utente e' libero
-  di passare direttamente le stringhe dei riferimenti.
\ No newline at end of file