o++oPS (ottoProgrammingScript) essentially is a linear query language, but it also allows a wide range of computations.
It uses repeating groups (hierarchies) and has several powerful but easy to use operations for selection, restructuring, computation and joining tables and documents.