]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/xmathql.dtd
Modified Files:
[helm.git] / helm / mathql / xmathql.dtd
index 88462d5d27111d80a61ebda874cc3d8cea1ba8cb..69b0cab9e0eeb991bacededc4bfc2a50d657dca5 100644 (file)
@@ -40,6 +40,7 @@
 <!-- MathQL.                                                         -->
 <!-- Operators are unambiguous (binary or unary), so there isn't any -->
 <!-- grouping operator.                                              -->
+<!-- SORTBY operator for sorting query results.                      -->
 <!-- CONST is the constant string; rvar is for references and lvar   -->
 <!-- for list.                                                       -->
 <!-- The attributes binder, rvar, lvar declare variables which are   -->
@@ -50,6 +51,8 @@
 <!-- PROPERTY works on a specified RDF property returning its value. -->
 <!--*****************************************************************-->
 
+<!ENTITY % order '(ascendant|descendant)'>
+
 <!ENTITY % position '(MainHypothesis|Hypothesis|MainConclusion|Conclusion|
                       Body)'>
 
 
 <!-- MathQL list expression declaration -->
 
-<!ENTITY % listexpr '(Rvar|Lvar|Reference|Pattern|Select|Exists|LetIn|
+<!ENTITY % listexpr '(Rvar|Lvar|Reference|Pattern|Select|LetIn|SortBy|
                       Use|UsedBy|ConstructorsOf|InTheory|TheoryRefTo|
-                      TypeOf|SuperTypeOf|SubTypeOf|Union|Intersect|Diff)'>
+                      TypeOf|SuperTypeOf|SubTypeOf|Union|Intersect|Diff|
+                      Minimize)'>
 
 <!-- MathQL boolean expression declaration -->
 
-<!ENTITY % boolexpr '(BOOL|NOT|AND|OR|IS|SETEQUAL|SUBSET)'>
+<!ENTITY % boolexpr '(BOOL|NOT|AND|OR|IS|SETEQUAL|SUBSET|EXISTS)'>
 
 <!-- MathQL string expression declaration -->
 
@@ -93,8 +97,6 @@
 
 <!ELEMENT Select (In, Where)>
 
-<!ELEMENT Exists (In, Where)>
-
 <!ELEMENT LetIn (%listexpr;, Target)>
 
 <!ELEMENT Use (%listexpr;, Position)>
 
 <!ELEMENT Diff (%listexpr;, %listexpr;)>
 
+<!ELEMENT SortBy (%listexpr;, SortField)>
+
+<!ELEMENT Minimize %listexpr;>
+
 <!-- MathQL list sub-expressions -->
 
 <!ELEMENT RPrefix (CONST)>
 <!ATTLIST ItemType
           binder CDATA #REQUIRED>
 
+<!ELEMENT SortField %functexpr;>
+<!ATTLIST SortField 
+          order %order; #IMPLIED>
+
 <!-- MathQL boolean expressions -->
 
 <!ELEMENT BOOL EMPTY>
 
 <!ELEMENT SUBSET (%listexpr;, %listexpr;)>
 
+<!ELEMENT EXISTS (RVAR, %listexpr;)>
+
 <!-- MathQL string expressions -->
 
 <!ELEMENT CONST (#PCDATA)>