code: public static Model molecule2Model(IAtomContainer molecule) {
          Model model = createCDKModel();
          Resource subject = model.createResource(createIdentifier(model, molecule));
          model.add(subject, RDF.type, CDK.MOLECULE);
          Map<IAtom, Resource> cdkToRDFAtomMap = new HashMap<IAtom, Resource>();
          for (IAtom atom : molecule.atoms()) {
              Resource rdfAtom = model.createResource(createIdentifier(model, atom));
              cdkToRDFAtomMap.put(atom, rdfAtom);
              model.add(subject, CDK.HASATOM, rdfAtom);
              if (atom instanceof IPseudoAtom) {
                  model.add(rdfAtom, RDF.type, CDK.PSEUDOATOM);
                  serializePseudoAtomFields(model, rdfAtom, (IPseudoAtom) atom);
              } else {
                  model.add(rdfAtom, RDF.type, CDK.ATOM);
                  serializeAtomFields(model, rdfAtom, atom);
              }
          }
          for (IBond bond : molecule.bonds()) {
              Resource rdfBond = model.createResource(createIdentifier(model, bond));
              model.add(rdfBond, RDF.type, CDK.BOND);
              for (IAtom atom : bond.atoms()) {
                  model.add(rdfBond, CDK.BINDSATOM, cdkToRDFAtomMap.get(atom));
              }
              if (bond.getOrder() != null) {
                  model.add(rdfBond, CDK.HASORDER, order2Resource(bond.getOrder()));
              }
              model.add(subject, CDK.HASBOND, rdfBond);
              serializeElectronContainerFields(model, rdfBond, bond);
          }
          return model;
      }
docs: Converts a {@link IAtomContainer} into a {@link Model} representation using the CDK OWL.
  
  @param molecule {@link IAtomContainer} to serialize into a RDF graph.
  @return the RDF graph representing the {@link IAtomContainer}.