1 GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI- VERSIONE 2002-04-19 #1Irene
2 MATHEMATICAL QUERY LANGUAGE (MathQL)
4 <query> := <list> (* clausola iniziale *)
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 *)
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 *)
21 <bool> := ( <bool> ) (* parentesizazione *)
22 | <bool> AND <bool> (* congiunzione *)
23 | <bool> OR <bool> (* disgiunzione *)
24 | NOT <bool> (* negazione *)
27 | <string> IS <string> (* case sensitive matching *)
29 <pattern> := <quoted-constant-string> (* pattern costante *)
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 *)
38 <function> := NAME (* pvar -> nome_oggetto *)
39 | TITLE (* URI -> valore_Prop_DC *)
58 | <refineop> <function>
60 <refineop> := SUB (* sub-property of *)
61 | SUPER (* super-property of *)
63 <order> := THEORY (* ordinamento alfabetico in
64 base a teorie e default per
66 | ASC (* ordinamento crescente *)
67 | DESC (* ordinamento decrescente *)
68 | KEY (* ordinamento in base a parole
71 <pvar> := <not-reserved-identifier> (* variabile per pattern *)
72 <svar> := $ <not-reserved-identifier> (* variabile per stringhe *)
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:
83 - Possibili tipi di RELATION e DEPENDENCE sono rappresentati dalle loro
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
91 - L'ordinamento di default e' quello alfabetico crescente in base al nome