<!-- MathQL query expression declaration -->
<!ENTITY % setexpr '(Rvar|Lvar|Ref|Pattern|Select|LetIn|Relation|
- TypeOf|SuperTypeOf|SubTypeOf|Union|Intersect|Diff)'>
+ Union|Intersect|Diff)'>
<!-- MathQL boolean expression declaration -->
<!-- MathQL string-set expression declaration -->
-<!ENTITY % functexpr '(FUN|PROPERTY|SUPERPROPERTY|SUBPROPERTY)'>
+<!ENTITY % functexpr '(FUN|PROPERTY)'>
<!ENTITY % stringsetexpr '(CONST|CONSTLIST|REFOF|BINDER|%functexpr;)'>
<!ELEMENT LetIn (%setexpr;, Target)>
-<!ELEMENT Relation (%setexpr;, Attr+)>
+<!ELEMENT Relation (Refine?,%setexpr;, Attr+)>
<!ATTLIST Relation
- name CDATA #REQUIRED>
-
-<!ELEMENT TypeOf %setexpr;>
-<!ATTLIST TypeOf
- binder CDATA #REQUIRED>
-
-<!ELEMENT SuperTypeOf %setexpr;>
-<!ATTLIST SuperTypeOf
- binder CDATA #REQUIRED>
-
-<!ELEMENT SubTypeOf %setexpr;>
-<!ATTLIST SubTypeOf
- binder CDATA #REQUIRED>
+ name CDATA #REQUIRED
+ refine (sub|super) #IMPLIED>
<!ELEMENT Union (%setexpr;, %setexpr;)>
<!ATTLIST BINDER
name CDATA #REQUIRED>
-<!ELEMENT FUN (Rvar)>
+<!ELEMENT FUN %stringsetexpr;>
<!ATTLIST FUN
name CDATA #REQUIRED>
-<!ELEMENT PROPERTY (Rvar)>
+<!ELEMENT PROPERTY %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
+ name CDATA #REQUIRED
+ refine (sub|super) #IMPLIED>
\ No newline at end of file