The ChemicalEnvironment object categorizes decorators on atoms and bonds based on the type of Boolean operator used to combine them; that is, the decorators are separated into OR and AND types. For example, consider "[#6X3H2,#7X2H1;A+0:1]-[#1:2]" in Figure , which is a SMIRKS pattern for a bond type, and hence has two indexed atoms. For atoms, OR types are composed of a base atom type (typically an atomic number) and a list of decorators to be combined via a logical OR (","). In this example, atom 1 has two OR types ("#6X3H2" and "#7X2H1") which are divided into OR bases ("#6" and "#7") and their corresponding decorators. For atoms, AND types are decorators that will be combined via a logical AND (";"). Our example atom 1 has two AND decorators ("A" and "+0") which apply to both the carbon and nitrogen OR types. Bonds connecting atoms can also have OR and AND decorators. When no Boolean operator is used then the decorator is considered an OR type, so the bond in the present example, "-", would be considered an OR.