Molecules (MoleculeDocs in emmet-core) are constructed in two stages: association and collection. In the first (association) stage (Figure In the second (collection) stage (Figure ), the structures of associated MoleculeDocs are compared on the basis of connectivity. Though we can define bonding using several methods informed by quantum chemistry (see "Molecular Properties" below), for the purpose of collecting MoleculeDocs we need to choose a definition of bonding such that the connectivity of every molecule in MPcules can be determined regardless of what calculations have been performed. We use the bond detection algorithm included in the OpenBabel cheminformatics toolkit 48 and then identify missing coordinate bonds to metals with the metal edge extender defined in pymatgen. This method is entirely based on heuristics and does not depend on any electronic structure calculations. Upon detecting bonds, we construct a molecular graph representation using the pymatgen MoleculeGraph functionality. When defining connectivity for a graph representation, we consider bonds to hydrogen atoms, which are always included explicitly in our 3D molecular structures. If there are multiple associated MoleculeDocs with the same formula, charge, spin, and connectivity, then we rank the different documents (again in terms of the level of theory used to optimize the best structure and the associated electronic energy) and choose the best to represent the group. All other associated MoleculeDocs with the same formula, charge, spin, and connectivity are linked to this representative as "similar molecules".