The SynGraph python class, implementation of the homonym data model, is the backbone of the overall package, used as the underlying data structure for most of the code functions. It contains a graph-like structure implemented as a dictionary of sets: the key encodes a "parent" node having out edge(s), and the value is a python set containing all its "children" nodes. Using a set ensures no duplicates among the "children" nodes. While nodes are explicit, the edges stay implicit, and their direction is presumed to always be from the "parent" node to the "children" nodes (Fig. ). This data model captures only the first mandatory ontological layer of the NOC, linking chemical reactions together via reactants and products. We leave the business logic of constructing other (optional) layers of the NOC (including reagents, procedures, etc.) to dedicated translation procedures. This approach leaves the code open to the extension to any other data models that include other objects and relationships. It reduces the need to modify the SynGraph class, thus risking breaking any of its many dependencies.