| <list> UNION <list> (* unione *)
| <list> INTERSECT <list> (* intersezione *)
| <list> DIFF <list> (* differenza *)
- | <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 *)
| CONTRUCTORS <list> (* unione costruttori della
lista oggetti*)
| PATTERN <pattern> (* espansione del pattern *)
+ | REFERENCE <reference> (* oggetto referenziato *)
| INTHEORY <list> ITEMTYPE <svar> (* unione oggetti lista teorie *)
| THEORYREFTO <list> (* unione teorie che fanno
riferimento a lista oggetti *)
classi e loro superclassi *)
| <list> OFSUBTYPE <svar> (* unione oggetti in base a
classi e loro sottoclassi *)
+ | <rvar> (* valore della var*)
<bool> := ( <bool> ) (* parentesizzazione *)
| <bool> AND <bool> (* congiunzione *)
| TRUE (* vero *)
| FALSE (* falso *)
| <string> IS <string> (* case sensitive matching *)
+ | <list> SETEQUAL <list> (* uguaglianza tra liste *)
+ | <list> SUBSET <list> (* operazione di sottoinsieme *)
-<pattern> := <quoted-constant-string> (* pattern costante *)
+<pattern> := <"-quoted-constant-string> (* pattern costante *)
+<reference> := <'-quoted-constant-string> (* riferimento costante *)
-<string> := <quoted-constant-string> (* costante letterale *)
+<string> := <'-quoted-constant-string> (* costante letterale *)
| CONCLUSION | HYPOTHESIS | BODY (* costanti simboliche *)
| MAINCONCLUSION | MAINHYPOTHESIS
| <rvar> (* variabile *)
| SUPER (* proprieta' e super-proprieta'
di *)
-<order> := DESC (* ordinamento decrescente *)
- | ASC (* ordinamento crescente *)
-
<rvar> := <not-reserved-identifier> (* variabile per risorse *)
<svar> := $ <not-reserved-identifier> (* variabile per stringhe *)
+- () = lista vuota (?)
- 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 opzionalecomplete; esse identificano
- risorse
+ da un URI e da un fragment identifier opzionale complete; i riferimenti
+ identificano risorse
- ogni binding lega una variabile libera (nuova)
- Precedenza operatori:
NOT (+) DIFF
(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 / e #
- * la piu' lunga sottostringa che non contiene / e #
- ** la piu' lunga sottostringa che non contiene #
+ 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
- Il costrutto ? non puo' comparire nella parte dell'espressione che
- fa match con un fragment identifier (tutti gli altri si).
+ 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"
+- FUTURO: operatore di ordinamento sul risultato finale della query.
+ <query> SORTEDBY <order> <function> (* unione lista ordinata secondo
+ ordine e valore funzione *)
+ <order> := DESC (* ordinamento decrescente *)
+ | ASC (* ordinamento crescente *)
+ DTD:
+ <!ENTITY % order '(ascendant|descendant)'>
+ <!ELEMENT Query %queryexpr;>
+ <!ELEMENT SortBy (Query, SortField)>
+ <!ELEMENT SortField %functexpr;>
+ <!ATTLIST SortField
+ order %order; #IMPLIED>
+- RILASSAMENTO degli operatori UNION e INTERSECT. Operatori fuzzy con
+ introduzione di pesi associati ai risultati.
\ No newline at end of file