The Leaf Node of a Query Tree contains a pointer to a Predicate Tree. It can always be written out as an Objectivity predicate string. The Predicate Tree has the following nodes:

- Spatial Domains
- Flux Domains
- 'Other' queries:

- Numbers (Integers and Floats)
- Hexadecimals starting with 0x used for the bitwise-test-operations.
- Strings (in double quotes ")
- 8-bit single character (in single quotes ')
- Regular Expressions (in backslash-double quotes \" )
- Names

*Operational Nodes*

Symbol |
Name |

&& |
Logical conjunction operator |

|| |
Logical disjunction operator |

! |
Logical negation operator, unary |

> |
Greater than |

< |
Less than |

>= |
Greater equal |

<= |
Less equal |

=, == |
Equality relation |

<>, != |
Inequality |

=~ |
Regular expression string comparison |

!~ |
NOT form of regular expression string comparison |

=~~ |
Case insensitive regular expression string comparison |

!~~ |
Case insensitive NOT form of regular expresstion string comp |

+ |
Addition |

- |
Subtraction or unary minus |

* |
Multiplication |

/ |
Division |

% |
Remainder |

- Sky Domain
- Flux Domain

The Domain classes shold contain some methods for self-optimization. If a new Domain is generated from two Domains by logical AND or OR, it may well be that the outcoming Domain is much simpler than the initial ones. This optimization is needed since the optimization of the Predicate Trees in the Parser involves such operations on Domains.