-GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI- VERSIONE 2002-04-19 #1Irene
+GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI
MATHEMATICAL QUERY LANGUAGE (MathQL)
<query> := <list> (* clausola iniziale *)
| <list> INTERSECT <list> (* intersezione *)
| <list> DIFF <list> (* differenza *)
| <list> SORTEDBY <order>
- | SELECT <pvar> IN <list> WHERE <bool> (* selezione *)
- | EXISTS <pvar> IN <list> WHERE <bool> (* esistenziale *)
+ | SELECT <rvar> IN <list> WHERE <bool> (* selezione *)
+ | EXISTS <rvar> IN <list> WHERE <bool> (* esistenziale *)
| USE <list> POSITION <svar> (* unione lista backward *)
| USEDBY <list> POSITION <svar> (* unione lista forward *)
- | CONTRUCTORS <list>
+ | CONTRUCTORS <list> (* unione costruttori della
+ lista oggetti*)
| PATTERN <pattern> (* espansione del pattern *)
| INTHEORY <list> ITEMTYPE <svar> (* unione oggetti lista teorie *)
| THEORYREFTO <list> (* unione teorie che fanno
riferimento a lista oggetti *)
+ | <list> OFTYPE <svar> (* unione oggetti in base a
+ classi *)
+ | <list> OFSUPERTYPE <svar> (* unione oggetti in base a
+ classi e loro superclassi *)
+ | <list> OFSUBTYPE <svar> (* unione oggetti in base a
+ classi e loro sottoclassi *)
-<bool> := ( <bool> ) (* parentesizazione *)
+<bool> := ( <bool> ) (* parentesizzazione *)
| <bool> AND <bool> (* congiunzione *)
| <bool> OR <bool> (* disgiunzione *)
| NOT <bool> (* negazione *)
<string> := <quoted-constant-string> (* costante letterale *)
| CONCLUSION | HYPOTHESIS | BODY (* costanti simboliche *)
| MAINCONCLUSION | MAINHYPOTHESIS
- | <pvar> (* variabile *)
+ | <rvar> (* variabile *)
| <svar> (* variabile *)
- | <function> <pvar> (* applicazione di funzione *)
+ | <function> <rvar> (* applicazione di funzione *)
-<function> := NAME (* pvar -> nome_oggetto *)
+<function> := NAME (* rvar -> nome_oggetto *)
| TITLE (* URI -> valore_Prop_DC *)
| CONTRIBUTOR
| CREATOR
| MODIFIED
| <refineop> <function>
-<refineop> := SUB (* sub-property of *)
- | SUPER (* super-property of *)
+<refineop> := SUB (* proprieta' e sotto-proprieta'
+ di *)
+ | SUPER (* proprieta' e super-proprieta'
+ di *)
<order> := THEORY (* ordinamento alfabetico in
base a teorie e default per
| KEY (* ordinamento in base a parole
chiave o soggetto *)
-<pvar> := <not-reserved-identifier> (* variabile per pattern *)
+<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 <pvar> si presuppongono essere istanziate come URI complete o
- URI#xpointer_expression
+- le <rvar> si presuppongono essere istanziate come URI complete o
+ URI#xpointer_expression e identificano risorse
- ogni binding lega una variabile libera (nuova)
- Precedenza operatori:
NOT (+) DIFF
operatori aritmetici e di confronto (< = >). Es. Quante proofs di un certo
teorema ci sono?
- L'ordinamento di default e' quello alfabetico crescente in base al nome
- delle pvar
+ delle rvar