]> matita.cs.unibo.it Git - helm.git/blob - helm/mathql/grammar.txt
Added Files:
[helm.git] / helm / mathql / grammar.txt
1 GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI- VERSIONE 2002-04-19 #1Irene
2 MATHEMATICAL QUERY LANGUAGE (MathQL) 
3
4 <query> := <list>                              (* clausola iniziale *)
5
6 <list> := ( <list> )                           (* parentesizazione *)
7        |  <list> UNION <list>                  (* unione *)
8        |  <list> INTERSECT <list>              (* intersezione *)
9        |  <list> DIFF <list>                   (* differenza *)
10        |  <list> SORTEDBY <order>
11        |  SELECT <pvar> IN <list> WHERE <bool> (* selezione *)
12        |  EXISTS <pvar> IN <list> WHERE <bool> (* esistenziale *)
13        |  USE <list> POSITION <svar>           (* unione lista backward *)
14        |  USEDBY <list> POSITION <svar>        (* unione lista forward *)
15        |  CONTRUCTORS <list>
16        |  PATTERN <pattern>                    (* espansione del pattern *)
17        |  INTHEORY <list> ITEMTYPE <svar>      (* unione oggetti lista teorie *)
18        |  THEORYREFTO <list>                   (* unione teorie che fanno 
19                                                  riferimento a lista oggetti *)
20
21 <bool> := ( <bool> )                           (* parentesizazione *)
22        |  <bool> AND <bool>                    (* congiunzione *)
23        |  <bool> OR <bool>                     (* disgiunzione *)
24        |  NOT <bool>                           (* negazione *)
25        |  TRUE                                 (* vero *)
26        |  FALSE                                (* falso *)
27        |  <string> IS <string>                 (* case sensitive matching *)
28        
29 <pattern> := <quoted-constant-string>          (* pattern costante *)
30           
31 <string> := <quoted-constant-string>           (* costante letterale *)
32          |  CONCLUSION | HYPOTHESIS | BODY     (* costanti simboliche *)
33          |  MAINCONCLUSION | MAINHYPOTHESIS
34          |  <pvar>                             (* variabile *)
35          |  <svar>                             (* variabile *)
36          |  <function> <pvar>                  (* applicazione di funzione *)
37          
38 <function> := NAME                             (* pvar -> nome_oggetto *)
39            |  TITLE                            (* URI -> valore_Prop_DC *)
40            |  CONTRIBUTOR
41            |  CREATOR
42            |  PUBLISHER
43            |  SUBJECT
44            |  DESCRIPTION
45            |  DATE
46            |  TYPE
47            |  FORMAT
48            |  IDENTIFIER
49            |  LANGUAGE
50            |  RELATION
51            |  SOURCE
52            |  COVERAGE
53            |  RIGHTS
54            |  INSTITUTION
55            |  CONTACT
56            |  FIRSTVERSION
57            |  MODIFIED
58            |  <refineop> <function>
59
60 <refineop> := SUB                              (* sub-property of *) 
61            |  SUPER                            (* super-property of *)
62
63 <order>    := THEORY                           (* ordinamento alfabetico in 
64                                                   base a teorie e default per
65                                                   gli oggetti *)
66            |  ASC                              (* ordinamento crescente *) 
67            |  DESC                             (* ordinamento decrescente *) 
68            |  KEY                              (* ordinamento in base a parole
69                                                   chiave o soggetto *)
70
71 <pvar> := <not-reserved-identifier>            (* variabile per pattern  *)
72 <svar> := $ <not-reserved-identifier>          (* variabile per stringhe *)
73
74 - le stringhe sono "case sensitive" 
75 - la funzione non definita sull'argomento restituisce la stringa nulla
76 - le <pvar> si presuppongono essere istanziate come URI complete o
77   URI#xpointer_expression 
78 - ogni binding lega una variabile libera (nuova) 
79 - Precedenza operatori:
80   NOT (+)  DIFF
81   AND      INTERSECT
82   OR  (-)  UNION
83 - Possibili tipi di RELATION e DEPENDENCE sono rappresentati dalle loro
84   subproperties
85 - FUTURO: thesauri di parole e sinonimi per ricerche testuali, ordinamenti sui 
86   risultati, caratteri jolly. Una volta reperito l'oggetto si possono 
87   visualizzare le info associate. 
88 - FUTURO: in output numeri ad esempio a fini statistici, aggiungendo anche 
89   operatori aritmetici e di confronto (< = >). Es. Quante proofs di un certo 
90   teorema ci sono? 
91 - L'ordinamento di default e' quello alfabetico crescente in base al nome 
92   delle pvar
93  
94
95