| <svar> (* variabile *)
| <function> <rvar> (* applicazione di funzione *)
-<function> := NAME (* rvar -> nome_oggetto *)
+<function> := NAME (* URIREF -> nome_oggetto *)
| <property>
-<property> := THEORY (* URI -> valore_Proprieta' *)
- | TITLE (* URI -> valore_Prop_DC *)
+<property> := THEORY (* URIREF -> valore_Proprieta' *)
+ | TITLE (* URIREF -> valore_Prop_DC *)
| CONTRIBUTOR
| CREATOR
| PUBLISHER
- 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
<!DOCTYPE MathQL SYSTEM "xmathql.dtd">
-<!-- To validate: xmllint -valid -loaddtd -noout proquery.xml -->
+<!-- To validate: xmllint -valid -loaddtd -noout query.xml -->
<MathQL>
<Select>
<In>
<Use>
- <Pattern arg="cic:/Coq/Init/Logic/Equality/eq.ind"/>
+ <Pattern>
+ <Prefix>cic</Prefix>
+ <TokenList>
+ <SLASH/>
+ <CONST>Coq</CONST>
+ <SLASH/>
+ <CONST>Init</CONST>
+ <SLASH/>
+ <CONST>Logic</CONST>
+ <SLASH/>
+ <CONST>Equality</CONST>
+ <SLASH/>
+ <CONST>eq</CONST>
+ </TokenList>
+ <Extension>ind</Extension>
+ </Pattern>
<Position binder="$1"/>
</Use>
</In>
<!-- Operators are unambiguous (binary or unary), so there isn't any -->
<!-- grouping operator. -->
<!-- CONST is the constant string. -->
+<!-- The attributes binder and rvar declare variables which are -->
+<!-- referred to and used by means of respectively BINDER and RVAR -->
<!--*****************************************************************-->
<!ENTITY % position '(Conclusion|Hypothesis|Body|MainConclusion|
<!ELEMENT ConstructorsOf %queryexpr;>
-<!ELEMENT Pattern EMPTY>
-<!ATTLIST Pattern
- arg CDATA #REQUIRED>
+<!ELEMENT Pattern (Prefix, (TokenList, (Extension, FragmentID?)?)?)>
<!ELEMENT InTheory (%queryexpr;, ItemType)>
<!ATTLIST Where
rvar CDATA #REQUIRED>
+<!ELEMENT STAR EMPTY>
+
+<!ELEMENT TWOSTARS EMPTY>
+
+<!ELEMENT SLASH EMPTY>
+
+<!ELEMENT QUESTIONMARK EMPTY>
+
+<!ELEMENT TokenList (CONST|STAR|TWOSTARS|SLASH|QUESTIONMARK)+>
+
+<!ELEMENT Prefix (#PCDATA)>
+
+<!ELEMENT Extension (#PCDATA)>
+
+<!ELEMENT FragmentID (#PCDATA)>
+
<!-- MathQL boolean expressions -->
<!ELEMENT AND (%boolexpr;, %boolexpr;)>
value %bool; #REQUIRED>
<!-- MathQL string expressions -->
+
<!ELEMENT CONST (#PCDATA)>
<!ELEMENT RVAR EMPTY>
<!ELEMENT NAME (RVAR)>
-<!ELEMENT PROPERTY (RVAR|CONST)>
+<!ELEMENT PROPERTY (RVAR)>
<!ATTLIST PROPERTY
name CDATA #REQUIRED>
-<!ELEMENT SUPERPROPERTY (RVAR|CONST)>
+<!ELEMENT SUPERPROPERTY (RVAR)>
<!ATTLIST SUPERPROPERTY
name CDATA #REQUIRED>
-<!ELEMENT SUBPROPERTY (RVAR|CONST)>
+<!ELEMENT SUBPROPERTY (RVAR)>
<!ATTLIST SUBPROPERTY
name CDATA #REQUIRED>
\ No newline at end of file