Complex entries

It follows from the previous discussion that expressions can be reduced to a list of objects (location, device, wire) since, ultimately, they describe nothing but objects. At this point we will add that EXPRESSION JOIN EXPRESSION is also an EXPRESSION. We call this a joint expression.

Joint expressions permits to construct more complex entries, recursively, as, for example:

--> wire orange at frame with device ADA at rack RK-27

This joint expression attempts to find orange wires in all frames located in rack RK-27 that happens to have ADA devices inside.

Notice that the first JOIN (at) defines two expressions, but the one to the right is a joint expression (frame with device...) which is turn contains another joint expression (device ADA at rack RK-27).

We can extend this recursion indefinitely to obtain more accurate results, as long as the expression as a whole makes sense to the user.