| <list> UNION <list> (* unione *)
| <list> INTERSECT <list> (* intersezione *)
| <list> DIFF <list> (* differenza *)
- | <list> SORTEDBY <order>
+ | <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 *)
| <svar> (* variabile *)
| <function> <rvar> (* applicazione di funzione *)
-<function> := NAME (* rvar -> nome_oggetto *)
- | TITLE (* URI -> valore_Prop_DC *)
+<function> := NAME (* URIREF -> nome_oggetto *)
+ | <property>
+
+<property> := THEORY (* URIREF -> valore_Proprieta' *)
+ | TITLE (* URIREF -> valore_Prop_DC *)
| CONTRIBUTOR
| CREATOR
| PUBLISHER
| CONTACT
| FIRSTVERSION
| MODIFIED
- | <refineop> <function>
+ | <refineprop> <property>
-<refineop> := SUB (* proprieta' e sotto-proprieta'
+<refineprop> := SUB (* proprieta' e sotto-proprieta'
di *)
- | SUPER (* proprieta' e super-proprieta'
+ | SUPER (* proprieta' e super-proprieta'
di *)
-<order> := THEORY (* ordinamento alfabetico in
- base a teorie e default per
- gli oggetti *)
+<order> := DESC (* ordinamento decrescente *)
| ASC (* ordinamento crescente *)
- | DESC (* ordinamento decrescente *)
- | KEY (* ordinamento in base a parole
- chiave o soggetto *)
<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 <rvar> si presuppongono essere istanziate come URI complete o
- URI#xpointer_expression e identificano risorse
+- le <rvar> si presuppongono essere istanziate come URI references costituite
+ da un URI e da un fragment identifier opzionalecomplete; esse identificano
+ risorse
- ogni binding lega una variabile libera (nuova)
- Precedenza operatori:
NOT (+) DIFF
teorema ci sono?
- L'ordinamento di default e' quello alfabetico crescente in base al nome
delle rvar
-
+- Note su <pattern>
+ Contiene un'espressione regolare per selezionare delle "reference"
+ (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 #
+ altro carattere solo se' stesso
+ Il costrutto ** non puo' comparire nella parte dell'espressione che
+ fa match con un fragment identifier.