is a bit 'cheating' as TMQL PEs and TMRM PEs are quite similar

"give me all cities in which there happens a conference"

// city [ . <- location -> event * = conference ]

# expanding shortcuts
= (%_) [ @_[0] classes :>: = city ]
       [ @_[0] players :<: location players :>: event classes :>: = conference ]

# transforming into TMRM PEs
  ( {{%_}} ) . if ( pi_0 {{ classes :>: }} === city )
               then epsilon
               else ()
             . if ( ..... )
               then epsilon
               else ()
  • AND, & between PE predicates -> [...] . [...]

  • OR, | between PE predicates -> [ .... ||| .... ]

  • NOT in PE predicate -> swap then and else branch

  • = between PEs -> [ .... === .... ]