# metamodel_version: 1.7.0
# version: 0.0.1
enum BondTypeEnum
  {
    covalent
    aromatic
    single
    double
    triple
    quadruple
    hydrogen
    ionic
    polycentric
    metal__HYPHEN_MINUS__metal
    salt_bridge
    polar_covalent
    sigma
  }

enum BronstedAcidBaseRoleEnum
  {
    acid
    base
  }

enum ClassificationLevelEnum
  {
    Uncategorized
    Class
    Species
    Category
    Subspecies
    StructuralSubspecies
    IsomericSubspecies
    MolecularSubspecies
  }

enum ConcentrationUnitEnum
  {
    M
    mM
    uM
    nM
    g__SOLIDUS__L
    mg__SOLIDUS__L
    ug__SOLIDUS__L
    ng__SOLIDUS__L
    percent_w__SOLIDUS__v
    percent_v__SOLIDUS__v
    percent_w__SOLIDUS__w
    ppm
    ppb
  }

enum ElementFamilyEnum
  {
    Alkali_Earth
    Alkaline_Earth
    Halogen
    Metalloids
    Noblegas
    Non__HYPHEN_MINUS__Metal
    Other_Metal
    Rare_Earth
    Transition
  }

enum ElementMetallicClassification
  {
    Metallic
    Non__HYPHEN_MINUS__Metallic
    Semi__HYPHEN_MINUS__Metallic
  }

enum HardOrSoftEnum
  {
    hard
    soft
    borderline
  }

enum IngredientRoleEnum
  {
    active_ingredient
    inactive_ingredient
    excipient
    solvent
  }

enum IngredientRoleTypeEnum
  {
    carbon_source
    nitrogen_source
    phosphorus_source
    sulfur_source
    electron_donor
    electron_acceptor
    buffer
    solvent
    vitamin
    mineral
    trace_element
    growth_factor
    antibiotic
    inducer
    substrate
  }

enum MoleculeClassificationEnum
  {
    lipid
    ester
  }

enum NanostructureMorphologyEnum
  {
    nanotube
    nanoparticle
    nanorod
    nanotubosome
    quantum_dot
    nanofibre
    nanocrystal
    nanoribbon
    nanosheet
    nanowire
  }

enum PeriodicTableBlockEnum
  {
    s__HYPHEN_MINUS__block
    p__HYPHEN_MINUS__block
    d__HYPHEN_MINUS__block
    f__HYPHEN_MINUS__block
    g__HYPHEN_MINUS__block
  }

enum ReactionTypeEnum
  {
    functional_group_interconversion
    bond_formation
    bond_breaking
    oxidation
    reduction
    acylation
    carbon_carbon_bond_formation
    heteroatom_alkylation_arylation
    addition
    cyclization
    condensation
    elimination
    ring_opening
    hydrolysis
    substitution
    isomerization
    functional_group_addition
    aromatic_heterocycle_formation
    protection
    deprotection
    resolution
  }

enum SubatomicParticleEnum
  {
    proton
    alpha_particle
    tau_neutrino
    positron
    muon
    hyperon
    boson
    fermion
    baryon
    top_quark
    hydron
    muon_neutrino
    nuclear_particle
    pi_minus_meson
    pi_meson
    nucleon
    triton
    deuteron
    neutrino
    meson
    quark
    Higgs_boson
    fundamental_particle
    electron_neutrino
    SubatomicParticle
    tau_lepton
    photon
    up_quark
    antimuon
    strange_quark
    Delta_baryon
    pi_zero_meson
    hadron
    bottom_quark
    composite_particle
    electron
    neutron
    lepton
    helion
    charm_quark
    down_quark
    pi_positive_meson
  }

type AcidAnionGroupingClass
  {
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
    name: String
  }

type AcidBaseConflationClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
  }

type Allotrope
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    allotropicAnalogOf: ChemicalElement!
    hasBondingStructure: String!
  }

type AminoAcidSequenceInterval
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasSequenceRepresentation: AminoAcidSequenceString
  }

interface AnionState
  {
    elementalCharge: Int
  }

interface Atom
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
  }

type AtomAnion implements AnionState
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    hasElement: ChemicalElement
    elementalCharge: Int
  }

type AtomCation implements CationState
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    hasElement: ChemicalElement
    elementalCharge: Int
  }

type AtomGroupingByPeriodicTableBlock
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Atom
    inPeriodicTableBlock: PeriodicTableBlockEnum
  }

type AtomGroupingByPeriodicTableGroup
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Atom
    inPeriodicTableGroup: PeriodicTableGroup
  }

interface AtomGroupingByPeriodicTablePlacement
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Atom
  }

type AtomGroupingByProperty
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Atom
  }

type AtomGroupingClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Atom
  }

type AtomicBond implements OwlClass
  {
    owlSubclassOf: OwlClass
    subject: AtomOccurrence
    object: AtomOccurrence
    bondType: BondTypeEnum
    bondOrder: Int
    bondLength: Float
    bondEnergy: Float
    bondLengthInAngstroms: Float
    bondAngle: Float
    torsionalAngle: Float
  }

interface AtomIonicForm
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    elementalCharge: Int
  }

type AtomOccurrence implements OwlClass
  {
    owlSubclassOf: OwlClass
    name: String!
    occurrenceOf: Atom!
    valence: Int
    oxidationNumber: Int
    formalCharge: Int
    coordinationNumber: Int
  }

type BufferRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

interface CationState
  {
    elementalCharge: Int
  }

interface Charged
  {
    elementalCharge: Int
  }

interface ChargeState
  {
    elementalCharge: Int
  }

type ChemicalElement
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    inPeriodicTableGroup: PeriodicTableGroup
    inPeriodicTableBlock: PeriodicTableBlockEnum
    symbol: String
    boilingPointInCelcius: Float
    meltingPointInCelcius: Float
    standardAtomicWeight: Float
    mass: Float
    monoisotopicMass: Float
    electronConfiguration: String
    hasStereocenter: [Stereocenter]
    hasMajorMicrospeciesAtPH73: ChemicalElement
  }

type ChemicalEntity implements OwlClass
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
  }

interface ChemicalEntityOrGrouping
  {
  }

type ChemicalGroup
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type ChemicalGroupingByCharge
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    classifies: ChemicalEntity
    subtypeOf: [MoleculeGroupingClass]
    hasChargeState: String
    chargeAgnosticEntity: ChemicalEntity
  }

type ChemicalGroupingClass implements OwlClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [ChemicalGroupingClass]
    classifies: ChemicalEntity
  }

interface ChemicalInformation
  {
  }

interface ChemicalMixture
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
  }

type ChemicalRelationship implements OwlClass
  {
    owlSubclassOf: OwlClass
  }

type ChemicalRole implements OwlClass
  {
    owlSubclassOf: OwlClass
  }

type ChemicalSalt
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
    elementalCharge: Int
    hasCationicComponent: CationState
    hasAnionicComponent: AnionState
  }

type ChemicalSaltByAnion
  {
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    hasCationicComponent: String
    classifies: ChemicalSalt
    hasAnionicComponent: String
    name: String
  }

type ChemicalSaltByCation
  {
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    hasAnionicComponent: String
    classifies: ChemicalSalt
    hasCationicComponent: String
    name: String
  }

type ChemicalSaltGroupingClass
  {
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    hasAnionicComponent: String
    hasCationicComponent: String
    name: String
    classifies: ChemicalSalt
  }

type ChemicalSimilarity
  {
    owlSubclassOf: OwlClass
  }

type ChiralityCenter
  {
  }

type Collection
  {
    entities: [DomainEntity]
  }

type Concentration
  {
    value: Float!
    unit: ConcentrationUnitEnum!
  }

interface Connectivity
  {
  }

type Copolymer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
    hasRepeatUnit: ChemicalEntity
    isBranched: Boolean
    polymerArchitectureType: String
    polymerOf: [Macromolecule]
  }

type DNASequenceInterval
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasSequenceRepresentation: DNASequenceString
  }

interface DomainEntity
  {
    id: String!
    name: String
    type: String
  }

type ElementSourceRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

type Enantiomer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    isomericSmilesString: ChemicalEncoding
    enantiomerFormOf: Molecule
    absoluteConfiguration: String
    relativeConfiguration: String
    opticalConfiguration: String
    inchiTetrahedralStereochemicalSublayer: String!
    inchiStereochemicalTypeSublayer: String!
  }

interface EntityWithAtomsEnumerated
  {
    inchiChemicalSublayer: String
  }

interface EntityWithChargeSpecified
  {
    inchiChargeSublayer: String
  }

interface EntityWithConnectivitySpecificied
  {
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
  }

interface EntityWithIsotopeSpecified
  {
    inchiIsotopicLayer: String
  }

interface EntityWithStereochemistrySpecified
  {
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
  }

type Ester
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasParentAlcohol: ChemicalEntity
    hasParentAcid: MoleculeByChargeState
  }

interface FullyCovalentlyBonded
  {
  }

type FullySpecifiedAtom
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    elementalCharge: Int
    neutronNumber: Count
  }

type FunctionalGroup
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    isSubstitutentGroupFrom: Molecule
  }

type GeneralAcidBaseGroupingClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
  }

type GeneralizedMolecularStructureClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
  }

type Glycan
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
  }

type GroupingClass implements OwlClass
  {
    id: String!
    name: String
    subtypeOf: [GroupingClass]
    owlSubclassOf: OwlClass
  }

interface GroupingClassForAcidsOrBases
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
  }

type Homopolymer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
    hasRepeatUnit: ChemicalEntity
    isBranched: Boolean
    polymerArchitectureType: String
    polymerOf: Macromolecule
  }

type ImpreciseChemicalMixture
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
    hasProportionalParts: [ProportionalPart]
    hasMixfileLocation: FileLocation
    hasMinchiRepresentation: ChemicalEncoding
  }

interface InchiObject
  {
  }

type IngredientRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

type Isobar
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    energyLevel: String
    hasElement: ChemicalElement
    nucleonNumber: Count
    isobarOf: ChemicalEntity
    halfLife: NumberOfYears
    decayProduct: Isotope
    decayMode: String
    decayEnergy: String
    modeOfFormation: String
  }

type IsomeraseReaction
  {
    id: String!
    name: String
    type: String
    leftParticipants: [ReactionParticipant]
    rightParticipants: [ReactionParticipant]
    direction: String
    isDiastereoselective: Boolean
    isStereo: Boolean
    isBalanced: Boolean
    isTransport: Boolean
    isFullyCharacterized: Boolean
    reactionCenter: String
    hasRinchiRepresentation: ChemicalEncoding
    hasReactionSmilesRepresentation: ChemicalEncoding
    reactionRateCoefficient: Float
    reactionRate: Float
    reactionType: ReactionTypeEnum
    description: String
  }

type Isotope
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    energyLevel: String
    hasElement: ChemicalElement
    neutronNumber: Count
    isotopeOf: Isotope
    halfLife: NumberOfYears
    decayProduct: Isotope
    decayMode: String
    decayEnergy: String
    modeOfFormation: String
  }

interface Location
  {
  }

type Macromolecule
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
  }

type Material
  {
    id: String!
    name: String
    type: String
    hasRepeatUnit: ChemicalEntity
    hasPart: ChemicalEntity
  }

type MaterialGroupingClass
  {
    id: String!
    name: String
    owlSubclassOf: OwlClass
    subtypeOf: [MaterialGroupingClass]
    classifies: Material
  }

type Mineral
  {
    id: String!
    name: String
    type: String
    hasRepeatUnit: ChemicalEntity
    hasPart: ChemicalEntity
  }

type MineralNutrientRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

type Moiety
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type MolecularAnion implements AnionState
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
    elementalCharge: Int
  }

type MolecularCation implements CationState
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
    elementalCharge: Int
  }

type MolecularComplex
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
  }

type MolecularComponent
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type MolecularComponentGroupingClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MolecularComponentGroupingClass]
    classifies: MolecularComponent
  }

type MolecularDerivativeGroupingClass
  {
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    derivativeOf: DomainEntity
    name: String
    classifies: Molecule
  }

type MolecularSpecies
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
  }

type MolecularSubsequence
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type Molecule implements FullyCovalentlyBonded
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
  }

interface MoleculeByChargeState
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
  }

type MoleculeGroupingClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
  }

type MoleculeGroupingClassDefinedByAdditionOfAGroup
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    hasGroup: [ChemicalGroup]
    derivativeOf: PolyatomicEntity
  }

type MoleculeGroupingClassDefinedByComponents
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    hasPart: ChemicalEntityOrGrouping
  }

type MoleculePairwiseSimilarity
  {
    owlSubclassOf: OwlClass
    leftMolecule: Molecule
    rightMolecule: Molecule
    score: Float
  }

type MonoatomicIon implements Charged
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    elementalCharge: Int
    hasElement: ChemicalElement
  }

type Monomer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type MonomericPolymericGroupingClass
  {
    name: String
    owlSubclassOf: OwlClass
    id: String!
    smartsString: ChemicalEncoding
    markushString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    subtypeOf: [MoleculeGroupingClass]
    classifies: Molecule
    hasRepeatUnit: ChemicalEntity
  }

type MonomolecularPolymer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
    polymerOf: Macromolecule
    hasRepeatUnit: ChemicalEntity
    isBranched: Boolean
    polymerArchitectureType: String
  }

type Nanomaterial
  {
    id: String!
    name: String
    type: String
    hasRepeatUnit: ChemicalEntity
    hasPart: ChemicalEntity
    hasMorphologicalCategory: NanostructureMorphologyEnum
  }

type NaturalProduct
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    derivedFromOrganisms: [String]
  }

type NetUnchargedMolecule implements Uncharged
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    elementalCharge: Int
  }

type NeutralMolecule
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    elementalCharge: Int
  }

type NonSpeciesMolecule
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
  }

type NucleotideSequenceInterval
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasSequenceRepresentation: DNASequenceString
  }

type Nuclide
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    energyLevel: String
  }

type NutrientRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

interface OwlClass
  {
    owlSubclassOf: OwlClass
  }

interface PartiallySpecifiedAtom
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
  }

type Peptide
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
  }

interface PeriodicTablePlacement
  {
  }

interface PhysicochemicalEntity
  {
    id: String!
    name: String
    type: String
  }

interface PhysicochemicalEntityGroupingClass
  {
    id: String!
    name: String
    owlSubclassOf: OwlClass
    subtypeOf: [PhysicochemicalEntityGroupingClass]
    classifies: PhysicochemicalEntity
  }

interface PolyatomicEntity
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type PolyatomicIon implements Charged
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    conjugateBaseOf: DomainEntity
    conjugateAcidOf: DomainEntity
    elementalCharge: Int
  }

type PolymerPart
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
  }

type PolymerRepeatUnit
  {
    owlSubclassOf: OwlClass
    repetitionOf: Molecule
    degreeOfPolymerization: Count
    mass: Float
  }

type PreciseChemicalMixture implements WeaklyBonded
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
  }

type ProportionalPart
  {
    owlSubclassOf: OwlClass
    composedOf: ChemicalEntity
    hasRole: IngredientRoleEnum
    hasIngredientRole: IngredientRole
    concentration: Concentration
    minimalPercentage: Float
    maximumPercentage: Float
  }

type Protein
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    hasSubmolecules: [Molecule]
  }

type RacemicMixture
  {
    id: String!
    name: String
    type: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
    hasLeftEnantiomer: Enantiomer!
    hasRightEnantiomer: Enantiomer!
    chiralityAgnosticForm: Molecule
    iUPACName: String
  }

type Radionuclide
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    energyLevel: String
  }

type Reaction
  {
    id: String!
    name: String
    type: String
    leftParticipants: [ReactionParticipant]
    rightParticipants: [ReactionParticipant]
    direction: String
    isDiastereoselective: Boolean
    isStereo: Boolean
    isBalanced: Boolean
    isTransport: Boolean
    isFullyCharacterized: Boolean
    reactionCenter: String
    hasRinchiRepresentation: ChemicalEncoding
    hasReactionSmilesRepresentation: ChemicalEncoding
    reactionRateCoefficient: Float
    reactionRate: Float
    reactionType: ReactionTypeEnum
    description: String
  }

type ReactionGroupingClass
  {
    id: String!
    name: String
    owlSubclassOf: OwlClass
    subtypeOf: [ReactionGroupingClass]
    classifies: Reaction
  }

type ReactionParticipant
  {
    owlSubclassOf: OwlClass
    participant: ChemicalEntity
    stoichiometry: Int
  }

type RNASequenceInterval
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasSequenceRepresentation: DNASequenceString
  }

interface SequenceInterval
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasSequenceRepresentation: SequenceString
  }

type SmallMolecule
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
  }

type SolventRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

interface SpecificityMixin
  {
  }

type StandardInchiObject
  {
    inchiVersionString: String!
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
  }

interface State
  {
  }

type Stereocenter
  {
  }

type Stereoisomer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    isomericSmilesString: ChemicalEncoding
  }

type SubatomicParticle
  {
    id: String!
    name: String
    type: String
    subatomicParticleType: SubatomicParticleEnum
  }

type SubatomicParticleOccurrence implements OwlClass
  {
    owlSubclassOf: OwlClass
    occurrenceOf: SubatomicParticle!
    count: Int
  }

type SupramolecularPolymer
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    ph: Float
    polymerOf: Macromolecule
    hasRepeatUnit: ChemicalEntity
  }

type TanimotoSimilarity
  {
    owlSubclassOf: OwlClass
    leftMolecule: Molecule
    rightMolecule: Molecule
    score: Float
  }

interface Uncharged
  {
    elementalCharge: Int
  }

type UnchargedAtom implements Uncharged
  {
    id: String!
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiAtomConnectionsSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    atomicNumber: Count
    symbol: String
    name: String
    hasNuclearParts: SubatomicParticleOccurrence
    hasPart: SubatomicParticle
    elementalCharge: Int
  }

type VitaminRole
  {
    owlSubclassOf: OwlClass
    sourceElement: ChemicalElement
    roleType: IngredientRoleTypeEnum
  }

interface WeaklyBonded
  {
  }

type Zwitterion
  {
    id: String!
    name: String
    type: String
    iUPACName: String
    isRadical: Boolean
    hasChemicalRole: ChemicalRole
    inchiString: ChemicalEncoding
    inchiChemicalSublayer: String
    inchiHydrogenConnectionsSublayer: String
    inchiChargeSublayer: String
    inchiProtonSublayer: String
    inchiStereochemicalDoubleBondSublayer: String
    inchiTetrahedralStereochemicalSublayer: String
    inchiStereochemicalTypeSublayer: String
    inchiIsotopicLayer: String
    smilesString: ChemicalEncoding
    cxsmilesString: ChemicalEncoding
    empiricalFormula: ChemicalEncoding
    hasMajorMicrospeciesAtPH73: ChemicalEntity
    molecularMass: Float
    waterSolubility: Float
    pkaIonizationConstant: [Float]
    pkaTemperature: Float
    pkaIonicStrength: Float
    pkaSolvent: String
    pkaPressure: Float
    classifiedBy: [ChemicalGroupingClass]
    owlSubclassOf: OwlClass
    inchiAtomConnectionsSublayer: String
    hasAtomOccurrences: [AtomOccurrence]
    hasBonds: [AtomicBond]
    hasSubmolecules: [Molecule]
    hasAtoms: [Atom]
    hasPart: String
    isOrganic: Boolean
    bronstedAcidBaseRole: BronstedAcidBaseRoleEnum
    acidity: Float
    hardOrSoft: HardOrSoftEnum
    acidFormOf: [MoleculeByChargeState]
    elementalCharge: Int
  }
