Searches of the primary tree in the database can be carried out using
a simple expression grammar. The resulting tree is then displayed
in an interactive 3D graph.
The expression grammar consists of 5 binary operators
and a unary operator.
The unary operator(@) retrieves a set of nodeids associated with a nodeid,the value of AB, or a tree index.
If no tree index is given then the primary tree is searched. Depth can also be specified.
For example:
-
@$1 searches the primary tree and returns the given nodeid if it exists.
- @d50%13:1:0:1 searches the primary tree to a depth of 50 for all nodes where either endpoint is equal to 13/1 and returns their nodeids if they exist.
- @%13:1:0:1t3 searches the tree loaded at index=3 for all nodes where one of the endpoint equals 13:1:0:1.
The 5 binary operators are:
- PATH (>)
- UNION (+)
- COMPLEMENT (-)
- INTERSECTION (#)
- SYMMETRIC DIFFERENCE (^)
UNION, COMPLEMENT, INTERSECTION, and SYMMETRIC DIFFERENCE are basic set operations and do NOT combine both sets of nodeids into a single subtree.
some examples ...
-
@$1 + @$567
returns the union of two sets of nodeids, both of which contain one nodeid. Returns the empty set when the tree being referenced does not contain what is being searhed for.
Unless one of the two nodes is parent to the other, two disconnected subtrees will be returned. The two subtress can be combined later with the click of a button but the same result would be immediately acheived if we were to use the PATH operator (@$1 > @$567), which always returns one fully connected subtree. -
(@$13 > @%2:1:0:1) + (@$13 > @%3:2:0:1)
subtree1 = the set of nodeids that contains nodeid=13, all nodeids associated with nodes where one endpoint is 2:1:0:1 and any extra nodeids necessary to make a single connected subtree.
subtree2 = the set of nodeids that contains nodeid=13, all nodeids associated with nodes where one endpoint is 3:2:0:1 and any extra nodeids necessary to make a single connected subtree.
subtree1 + subtree2 = the union of the two subtrees, which in this case will contain a single subtree since the two subtrees obviously share a node in common (nodeid=13).
Below are some examples and explanations of trees used
in some of the compositions

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @%2:1:0:1 > @%4:1:0:1
returns the subtree that contains all nodes where one endpoint equals 2:1:0:1 or 4:1:0:1.
Note that the value 2:1:0:1 is equal to 2/1, since the irrational part represented by 0:1 equals zero.
Used in the compostion "smallscale".

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @%4:1:0:1 > @%16:3:0:1
used in the compostion "smallscale". notice that this turnas out to simply extend the previous graph. The cones in both graphs represent the just ratios of 2/1, 4/1, 16/3.

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @$442 > @$69324
used in the compostion "xxcomp".

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @$69324 > @$349
used in the compostion "xxcomp".

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @$397 > @$376
Subtree displayed represents the path between two nodes with nodeids 397 and 376. Subtree can be displayed as a new tree or it can simply be overlaid on the current one using a different path color as it is here.

Database: template=0010100100000000 x 498; just stopping case = true; starting section = 1/360 * Φ11 || 1/360 * Φ12.
Search: @d400%1:1:0:1 + @d400%16:15:0:1 + @d400%9:8:0:1 + ... etc.
search of primary tree for all just ratios in the given list.
The subtrees (one for each just ratio) were then combined after the search into one connected subtree. This could have also been accomplished with @d400%1:1:0:1 > @d400%16:15:0:1 > @d400%9:8:0:1 + ... etc.