<!ENTITY % position '(Conclusion|Hypothesis|Body|MainConclusion|
MainHypothesis)'>
-<!ENTITY % order '(ascendant|descendant)'>
-
<!ENTITY % bool '(True|False)'>
<!-- MathQL query expression declaration -->
-<!ENTITY % queryexpr '(Union|Intersect|Diff|SortBy|Select|Exists|Use|UsedBy|
+<!ENTITY % queryexpr '(Union|Intersect|Diff|Select|Exists|Use|UsedBy|
ConstructorsOf|Pattern|InTheory|TheoryRefTo|TypeOf|
SuperTypeOf|SubTypeOf|Group)'>
<!ELEMENT Diff (%queryexpr;, %queryexpr;)>
-<!ELEMENT SortBy (%queryexpr;, SortField)>
-
<!ELEMENT Select (In, Where)>
<!ELEMENT Exists (In, Where)>
<!ELEMENT ConstructorsOf %queryexpr;>
-<!ELEMENT Pattern (Prefix, (TokenList, (Extension, FragmentID?)?)?)>
+<!ELEMENT Pattern (Prefix, TokenList, (FragmentID?))>
<!ELEMENT InTheory (%queryexpr;, ItemType)>
<!-- MathQL query sub-expressions -->
-<!ELEMENT SortField %functexpr;>
-<!ATTLIST SortField
- order %order; #IMPLIED>
-
<!ELEMENT In %queryexpr;>
<!ELEMENT Where %boolexpr;>
<!ELEMENT QUESTIONMARK EMPTY>
-<!ELEMENT TokenList (CONST|STAR|TWOSTARS|SLASH|QUESTIONMARK)+>
+<!ELEMENT NUMBER EMPTY>
+<!ATTLIST NUMBER
+ value NMTOKEN #REQUIRED>
-<!ELEMENT Prefix (#PCDATA)>
+<!-- STAR expands only to objects of the specified dir before the last "/":
+ ex. cic:/Algebra/* expands to every object in Algebra only -->
+<!-- TWOSTARS expands till the most complete name (with extension if not
+ specifified) -->
+<!-- QUESTIONMARK matches one character except "/" -->
+<!ELEMENT TokenList (CONST|STAR|TWOSTARS|SLASH|QUESTIONMARK)+>
-<!ELEMENT Extension (#PCDATA)>
+<!ELEMENT Prefix (CONST|STAR)>
-<!ELEMENT FragmentID (#PCDATA)>
+<!-- XPointers have max depth = 2 (see CIC inductive definitions) -->
+<!ELEMENT FragmentID (NUMBER|TWOSTARS|STAR)+>
<!-- MathQL boolean expressions -->