<!-- MathQL query expression declaration -->
-<!ENTITY % setexpr '(Rvar|Lvar|Ref|Pattern|Select|LetIn|Relation|
- TypeOf|SuperTypeOf|SubTypeOf|Union|Intersect|Diff)'>
+<!ENTITY % setexpr '(Rvar|Svar|Ref|Pattern|Select|LetSIn|LetVIn|Relation|
+ Union|Intersect|Diff)'>
<!-- MathQL boolean expression declaration -->
<!-- MathQL string-set expression declaration -->
-<!ENTITY % functexpr '(FUN|PROPERTY|SUPERPROPERTY|SUBPROPERTY)'>
-
-<!ENTITY % stringsetexpr '(CONST|CONSTLIST|REFOF|BINDER|%functexpr;)'>
+<!ENTITY % functexpr '(FUN|PROPERTY)'>
+<!ENTITY % stringsetexpr '(CONST|CONSTLIST|REFOF|BINDER|VVAR|%functexpr;)'>
<!-- MathQL query top-element -->
<!ELEMENT Select (In, Where)>
-<!ELEMENT LetIn (%setexpr;, Target)>
-
-<!ELEMENT Relation (%setexpr;, Attr+)>
-<!ATTLIST Relation
- name CDATA #REQUIRED>
-
-<!ELEMENT TypeOf %setexpr;>
-<!ATTLIST TypeOf
- binder CDATA #REQUIRED>
+<!ELEMENT LetSIn (%setexpr;, Starget)>
-<!ELEMENT SuperTypeOf %setexpr;>
-<!ATTLIST SuperTypeOf
- binder CDATA #REQUIRED>
+<!ELEMENT LetVIn (%stringsetexpr;, Vtarget)>
-<!ELEMENT SubTypeOf %setexpr;>
-<!ATTLIST SubTypeOf
- binder CDATA #REQUIRED>
+<!ELEMENT Relation (PName?,%setexpr;, Attr+)>
+<!ATTLIST Relation
+ name CDATA #REQUIRED
+ refine (sub|super) #IMPLIED>
<!ELEMENT Union (%setexpr;, %setexpr;)>
<!ATTLIST Where
rvar CDATA #REQUIRED>
-<!ELEMENT Target %setexpr;>
-<!ATTLIST Target
+<!ELEMENT Starget %setexpr;>
+<!ATTLIST Starget
svar CDATA #REQUIRED>
+<!ELEMENT Vtarget %setexpr;>
+<!ATTLIST Vtarget
+ vvar CDATA #REQUIRED>
+
<!ELEMENT Attr EMPTY>
<!ATTLIST Attr
binder CDATA #REQUIRED>
+<!ELEMENT PName (CONST+)>
+
<!-- MathQL boolean expressions -->
<!ELEMENT BOOL EMPTY>
<!ELEMENT REFOF %setexpr;>
+<!ELEMENT VVAR %stringsetexpr;>
+
<!ELEMENT BINDER (Rvar)>
<!ATTLIST BINDER
name CDATA #REQUIRED>
-<!ELEMENT FUN (Rvar)>
+<!ELEMENT FUN %stringsetexpr;>
<!ATTLIST FUN
name CDATA #REQUIRED>
-<!ELEMENT PROPERTY (Rvar)>
+<!ELEMENT PROPERTY (Refine?,%stringsetexpr;)>
<!ATTLIST PROPERTY
name CDATA #REQUIRED>
-
-<!ELEMENT SUPERPROPERTY (Rvar)>
-<!ATTLIST SUPERPROPERTY
- name CDATA #REQUIRED>
-
-<!ELEMENT SUBPROPERTY (Rvar)>
-<!ATTLIST SUBPROPERTY
- name CDATA #REQUIRED>
\ No newline at end of file