addresses some of these problems via usage of a SMARTSTool, that
can be used to create SMARTS at any atomic position using predefined templates
and logicals to connect them. As shown here, SMARTSTool is basically
a tree composer.
Predefined template palettes appear on the left and may be dragged and
dropped on to the right to compose a
parse tree for an atomic SMARTS. At any stage the user may also directly
edit the atomic SMARTS or the SMARTS associated with any node in the parse