In the Materials Project database, 29 materials are given MPIDs which are derived from task IDs as described above. For instance, "mp-1518" represents CeRh 3 . While MPIDs are unique and persistent for a given task, they are not necessarily persistent for materials, as older calculations used to generate an MPID could be deprecated over time. Moreover, MPIDs do not carry any chemical information, human-interpretable or otherwise. The most widely used representations for molecules which could be used as IDs are the simplified molecular-input line-entry system (SMILES) and the International Chemical Identifier (InChI). To overcome the limitations of existing IDs and molecular representations, we have devised a new ID format: the MPculeID (Figure ). The basic ID has four parts that are separated by hyphens; these four parts represent the connectivity, composition, charge, and spin multiplicity of the molecule. For connectivity, we generate a graph representation of the molecule (see "Building molecules") and hash it using the Weisfeiler-Lehman graph hashing algorithm originally implemented in networkx. This hash can be augmented with features of the nodes (atoms) or edges (bonds). In the association stage of molecules building, where MoleculeDocs are differentiated by their exact structure, we augment the graph with the Cartesian (XYZ) coordinates of the atoms. In the collection stage, where MoleculeDocs are distinguished by connectivity only (without concern for exact bond lengths, angles, etc.), we instead augment only with the string representation of the element (e.g. "Li" for lithium).