BASE <https://w3id.org/biolink/vocab/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX pav: <http://purl.org/pav/>
PREFIX schema1: <http://schema.org/>
PREFIX UO: <http://purl.obolibrary.org/obo/UO_>


<ChemicalFormulaValue> xsd:string

<CategoryType> IRI

<IriType> IRI

<LabelType> xsd:string

<PredicateType> IRI

<NarrativeText> xsd:string

<SymbolType> xsd:string

<FrequencyValue> UO:0000105

<PercentageFrequencyValue> UO:0000187

<Quotient> UO:0010006

<Unit> UO:0000000

<TimeType> xsd:dateTime

<BiologicalSequence> xsd:string

linkml:String xsd:string

linkml:Integer xsd:integer

linkml:Boolean xsd:boolean

linkml:Float xsd:float

linkml:Double xsd:double

linkml:Decimal xsd:decimal

linkml:Time xsd:dateTime

linkml:Date xsd:date

linkml:Datetime xsd:dateTime

linkml:Uriorcurie IRI

linkml:Uri IRI

linkml:Ncname xsd:string

linkml:Objectidentifier IRI

linkml:Nodeidentifier NONLITERAL

<Activity> CLOSED {
    (  $<Activity_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ? ;
          &<ActivityAndBehavior_tes> ;
          rdf:type [ <ActivityAndBehavior> ] ?
       ) ;
       rdf:type [ <Activity> ]
    )
}

<ActivityAndBehavior> {
    (  $<ActivityAndBehavior_tes> (  &<Occurrent_tes> ;
          rdf:type [ <Occurrent> ] ?
       ) ;
       rdf:type [ <ActivityAndBehavior> ] ?
    )
}

<AdministrativeEntity>  (
    {
       (  $<AdministrativeEntity_tes> (  &<NamedThing_tes> ;
             rdf:type [ <NamedThing> ] ?
          ) ;
          rdf:type [ <AdministrativeEntity> ]
       )
    } OR @<Agent>
)

<Agent> CLOSED {
    (  $<Agent_tes> (  &<AdministrativeEntity_tes> ;
          rdf:type [ <AdministrativeEntity> ] ? ;
          <affiliation> @linkml:Uriorcurie * ;
          <address> @linkml:String ? ;
          rdfs:label @<LabelType> ?
       ) ;
       rdf:type [ <Agent> ]
    )
}

<AnatomicalEntity>  (
    CLOSED {
       (  $<AnatomicalEntity_tes> (  &<OrganismalEntity_tes> ;
             rdf:type [ <OrganismalEntity> ] ? ;
             &<ThingWithTaxon_tes> ;
             rdf:type [ <ThingWithTaxon> ] ? ;
             &<PhysicalEssence_tes> ;
             rdf:type [ <PhysicalEssence> ] ? ;
             <in_taxon> @<OrganismTaxon> *
          ) ;
          rdf:type [ <AnatomicalEntity> ]
       )
    } OR @<Cell> OR @<CellularComponent> OR @<GrossAnatomicalStructure> OR @<PathologicalAnatomicalStructure>
)

<AnatomicalEntityToAnatomicalEntityAssociation>  (
    @<AnatomicalEntityToAnatomicalEntityOntogenicAssociation> OR @<AnatomicalEntityToAnatomicalEntityPartOfAssociation>
)

<AnatomicalEntityToAnatomicalEntityAssociation_struct> {
    (  $<AnatomicalEntityToAnatomicalEntityAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<AnatomicalEntity> ;
          rdf:object @<AnatomicalEntity>
       ) ;
       rdf:type [ <AnatomicalEntityToAnatomicalEntityAssociation> ]
    )
}

<AnatomicalEntityToAnatomicalEntityOntogenicAssociation> CLOSED {
    (  $<AnatomicalEntityToAnatomicalEntityOntogenicAssociation_tes> (  &<AnatomicalEntityToAnatomicalEntityAssociation_tes> ;
          rdf:type [ <AnatomicalEntityToAnatomicalEntityAssociation> ] ? ;
          rdf:subject @<AnatomicalEntity> ;
          rdf:object @<AnatomicalEntity> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <AnatomicalEntityToAnatomicalEntityOntogenicAssociation> ]
    )
}

<AnatomicalEntityToAnatomicalEntityPartOfAssociation> CLOSED {
    (  $<AnatomicalEntityToAnatomicalEntityPartOfAssociation_tes> (  &<AnatomicalEntityToAnatomicalEntityAssociation_tes> ;
          rdf:type [ <AnatomicalEntityToAnatomicalEntityAssociation> ] ? ;
          rdf:subject @<AnatomicalEntity> ;
          rdf:object @<AnatomicalEntity> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <AnatomicalEntityToAnatomicalEntityPartOfAssociation> ]
    )
}

<Annotation>  (
    @<Attribute> OR @<QuantityValue>
)

<Annotation_struct> {
    (  $<Annotation_tes> rdf:type . * ;
       rdf:type [ <Annotation> ] ?
    )
}

<Article> CLOSED {
    (  $<Article_tes> (  &<Publication_tes> ;
          rdf:type [ <Publication> ] ? ;
          <published_in> @linkml:Uriorcurie ;
          <iso_abbreviation> @linkml:String ? ;
          <volume> @linkml:String ? ;
          <issue> @linkml:String ?
       ) ;
       rdf:type [ <Article> ]
    )
}

<Association>  (
    CLOSED {
       (  $<Association_tes> (  &<Entity_tes> ;
             rdf:type [ <Entity> ] ? ;
             rdf:subject @<NamedThing> ;
             rdf:predicate @<PredicateType> ;
             rdf:object @<NamedThing> ;
             <relation> @linkml:Uriorcurie ;
             <negated> @linkml:Boolean ? ;
             <qualifiers> @<OntologyClass> * ;
             <publications> @<Publication> * ;
             rdf:type @linkml:String ? ;
             <category> @<CategoryType> *
          ) ;
          rdf:type [ <Association> ]
       )
    } OR @<AnatomicalEntityToAnatomicalEntityAssociation> OR @<BehaviorToBehavioralFeatureAssociation> OR
    @<CaseToPhenotypicFeatureAssociation> OR @<CellLineToDiseaseOrPhenotypicFeatureAssociation> OR @<ChemicalToChemicalAssociation>
    OR @<ChemicalToDiseaseOrPhenotypicFeatureAssociation> OR @<ChemicalToGeneAssociation> OR @<ChemicalToPathwayAssociation> OR
    @<ContributorAssociation> OR @<DiseaseOrPhenotypicFeatureAssociationToLocationAssociation> OR
    @<DiseaseOrPhenotypicFeatureToLocationAssociation> OR @<DiseaseToExposureEventAssociation> OR
    @<DiseaseToPhenotypicFeatureAssociation> OR @<DrugToGeneAssociation> OR @<ExposureEventToOutcomeAssociation> OR
    @<ExposureEventToPhenotypicFeatureAssociation> OR @<FunctionalAssociation> OR @<GeneRegulatoryRelationship> OR
    @<GeneToDiseaseAssociation> OR @<GeneToExpressionSiteAssociation> OR @<GeneToGeneAssociation> OR
    @<GeneToPhenotypicFeatureAssociation> OR @<GenotypeToDiseaseAssociation> OR @<GenotypeToGeneAssociation> OR
    @<GenotypeToGenotypePartAssociation> OR @<GenotypeToPhenotypicFeatureAssociation> OR @<GenotypeToVariantAssociation> OR
    @<MaterialSampleDerivationAssociation> OR @<MaterialSampleToDiseaseOrPhenotypicFeatureAssociation> OR
    @<OrganismTaxonToEnvironmentAssociation> OR @<OrganismTaxonToOrganismTaxonAssociation> OR
    @<OrganismalEntityAsAModelOfDiseaseAssociation> OR @<PopulationToPopulationAssociation> OR @<SequenceAssociation> OR
    @<SequenceFeatureRelationship> OR @<SequenceVariantModulatesTreatmentAssociation> OR @<VariantToDiseaseAssociation> OR
    @<VariantToGeneAssociation> OR @<VariantToPhenotypicFeatureAssociation> OR @<VariantToPopulationAssociation>
)

<Attribute>  (
    CLOSED {
       (  $<Attribute_tes> (  &<Annotation_tes> ;
             rdf:type [ <Annotation> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ? ;
             rdfs:label @<LabelType> ? ;
             <has_attribute_type> @<OntologyClass> ;
             <has_quantitative_value> @<QuantityValue> * ;
             <has_qualitative_value> @<NamedThing> ? ;
             <iri> @<IriType> ? ;
             <source> @<LabelType> ?
          ) ;
          rdf:type [ <Attribute> ] ?
       )
    } OR @<BiologicalSex> OR @<ClinicalAttribute> OR @<OrganismAttribute> OR @<SeverityValue> OR @<SocioeconomicAttribute> OR
    @<Zygosity>
)

<Behavior>  (
    CLOSED {
       (  $<Behavior_tes> (  &<BiologicalProcess_tes> ;
             rdf:type [ <BiologicalProcess> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ?
          ) ;
          rdf:type [ <Behavior> ]
       )
    } OR @<BehavioralExposure> OR @<BehavioralOutcome> OR @<SocioeconomicExposure> OR @<SocioeconomicOutcome>
)

<BehaviorToBehavioralFeatureAssociation> CLOSED {
    (  $<BehaviorToBehavioralFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          rdf:subject @<Behavior> ;
          rdf:object @<BehavioralFeature> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <BehaviorToBehavioralFeatureAssociation> ]
    )
}

<BehavioralExposure> CLOSED {
    (  $<BehavioralExposure_tes> (  &<Behavior_tes> ;
          rdf:type [ <Behavior> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <BehavioralExposure> ]
    )
}

<BehavioralFeature> CLOSED {
    (  $<BehavioralFeature_tes> (  &<PhenotypicFeature_tes> ;
          rdf:type [ <PhenotypicFeature> ] ?
       ) ;
       rdf:type [ <BehavioralFeature> ]
    )
}

<BehavioralOutcome> CLOSED {
    (  $<BehavioralOutcome_tes> (  &<Behavior_tes> ;
          rdf:type [ <Behavior> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <BehavioralOutcome> ]
    )
}

<BiologicalEntity>  (
    @<BiologicalProcessOrActivity> OR @<DiseaseOrPhenotypicFeature> OR @<EpidemiologicalOutcome> OR @<MolecularEntity> OR
    @<OrganismalEntity>
)

<BiologicalEntity_struct> {
    (  $<BiologicalEntity_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ?
       ) ;
       rdf:type [ <BiologicalEntity> ]
    )
}

<BiologicalProcess>  (
    CLOSED {
       (  $<BiologicalProcess_tes> (  &<BiologicalProcessOrActivity_tes> ;
             rdf:type [ <BiologicalProcessOrActivity> ] ? ;
             &<Occurrent_tes> ;
             rdf:type [ <Occurrent> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ?
          ) ;
          rdf:type [ <BiologicalProcess> ]
       )
    } OR @<Behavior> OR @<Death> OR @<PathologicalProcess> OR @<Pathway> OR @<PhysiologicalProcess>
)

<BiologicalProcessOrActivity>  (
    CLOSED {
       (  $<BiologicalProcessOrActivity_tes> (  &<BiologicalEntity_tes> ;
             rdf:type [ <BiologicalEntity> ] ? ;
             &<Occurrent_tes> ;
             rdf:type [ <Occurrent> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ? ;
             <has_input> @<NamedThing> * ;
             <has_output> @<NamedThing> * ;
             <enabled_by> @<PhysicalEntity> *
          ) ;
          rdf:type [ <BiologicalProcessOrActivity> ]
       )
    } OR @<BiologicalProcess> OR @<MolecularActivity>
)

<BiologicalSex>  (
    CLOSED {
       (  $<BiologicalSex_tes> (  &<Attribute_tes> ;
             rdf:type [ <Attribute> ] ?
          ) ;
          rdf:type [ <BiologicalSex> ] ?
       )
    } OR @<GenotypicSex> OR @<PhenotypicSex>
)

<BioticExposure> CLOSED {
    (  $<BioticExposure_tes> (  &<OrganismTaxon_tes> ;
          rdf:type [ <OrganismTaxon> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <BioticExposure> ]
    )
}

<Book> CLOSED {
    (  $<Book_tes> (  &<Publication_tes> ;
          rdf:type [ <Publication> ] ? ;
          rdf:type @linkml:String
       ) ;
       rdf:type [ <Book> ]
    )
}

<BookChapter> CLOSED {
    (  $<BookChapter_tes> (  &<Publication_tes> ;
          rdf:type [ <Publication> ] ? ;
          <published_in> @linkml:Uriorcurie ;
          <volume> @linkml:String ? ;
          <chapter> @linkml:String ?
       ) ;
       rdf:type [ <BookChapter> ]
    )
}

<Carbohydrate> CLOSED {
    (  $<Carbohydrate_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ?
       ) ;
       rdf:type [ <Carbohydrate> ]
    )
}

<Case> CLOSED {
    (  $<Case_tes> (  &<IndividualOrganism_tes> ;
          rdf:type [ <IndividualOrganism> ] ?
       ) ;
       rdf:type [ <Case> ]
    )
}

<CaseToEntityAssociationMixin> {
    (  $<CaseToEntityAssociationMixin_tes> rdf:subject @<Case> ;
       rdf:type [ <CaseToEntityAssociationMixin> ] ?
    )
}

<CaseToPhenotypicFeatureAssociation> CLOSED {
    (  $<CaseToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          &<CaseToEntityAssociationMixin_tes> ;
          rdf:type [ <CaseToEntityAssociationMixin> ] ? ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <CaseToPhenotypicFeatureAssociation> ]
    )
}

<Cell> CLOSED {
    (  $<Cell_tes> (  &<AnatomicalEntity_tes> ;
          rdf:type [ <AnatomicalEntity> ] ?
       ) ;
       rdf:type [ <Cell> ]
    )
}

<CellLine> CLOSED {
    (  $<CellLine_tes> (  &<OrganismalEntity_tes> ;
          rdf:type [ <OrganismalEntity> ] ?
       ) ;
       rdf:type [ <CellLine> ]
    )
}

<CellLineAsAModelOfDiseaseAssociation> CLOSED {
    (  $<CellLineAsAModelOfDiseaseAssociation_tes> (  &<CellLineToDiseaseOrPhenotypicFeatureAssociation_tes> ;
          rdf:type [ <CellLineToDiseaseOrPhenotypicFeatureAssociation> ] ? ;
          &<ModelToDiseaseAssociationMixin_tes> ;
          rdf:type [ <ModelToDiseaseAssociationMixin> ] ? ;
          &<EntityToDiseaseAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
          rdf:subject @<CellLine> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ?
       ) ;
       rdf:type [ <CellLineAsAModelOfDiseaseAssociation> ]
    )
}

<CellLineToDiseaseOrPhenotypicFeatureAssociation>  (
    CLOSED {
       (  $<CellLineToDiseaseOrPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<CellLineToEntityAssociationMixin_tes> ;
             rdf:type [ <CellLineToEntityAssociationMixin> ] ? ;
             &<EntityToDiseaseOrPhenotypicFeatureAssociationMixin_tes> ;
             rdf:type [ <EntityToDiseaseOrPhenotypicFeatureAssociationMixin> ] ? ;
             rdf:subject @<DiseaseOrPhenotypicFeature>
          ) ;
          rdf:type [ <CellLineToDiseaseOrPhenotypicFeatureAssociation> ]
       )
    } OR @<CellLineAsAModelOfDiseaseAssociation>
)

<CellLineToEntityAssociationMixin> {
    (  $<CellLineToEntityAssociationMixin_tes> rdf:subject @<CellLine> ;
       rdf:type [ <CellLineToEntityAssociationMixin> ] ?
    )
}

<CellularComponent> CLOSED {
    (  $<CellularComponent_tes> (  &<AnatomicalEntity_tes> ;
          rdf:type [ <AnatomicalEntity> ] ?
       ) ;
       rdf:type [ <CellularComponent> ]
    )
}

<ChemicalExposure>  (
    CLOSED {
       (  $<ChemicalExposure_tes> (  &<ChemicalSubstance_tes> ;
             rdf:type [ <ChemicalSubstance> ] ? ;
             &<ExposureEvent_tes> ;
             rdf:type [ <ExposureEvent> ] ? ;
             <timepoint> @<TimeType> ?
          ) ;
          rdf:type [ <ChemicalExposure> ]
       )
    } OR @<ComplexChemicalExposure>
)

<ChemicalOrDrugOrTreatment> {
    (  $<ChemicalOrDrugOrTreatment_tes> rdf:type . * ;
       rdf:type [ <ChemicalOrDrugOrTreatment> ] ?
    )
}

<ChemicalSubstance>  (
    CLOSED {
       (  $<ChemicalSubstance_tes> (  &<MolecularEntity_tes> ;
             rdf:type [ <MolecularEntity> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ? ;
             <is_metabolite> @linkml:Boolean ?
          ) ;
          rdf:type [ <ChemicalSubstance> ]
       )
    } OR @<Carbohydrate> OR @<ChemicalExposure> OR @<EnvironmentalFoodContaminant> OR @<FoodAdditive> OR @<FoodComponent> OR
    @<Metabolite> OR @<Nutrient> OR @<ProcessedMaterial>
)

<ChemicalToChemicalAssociation>  (
    CLOSED {
       (  $<ChemicalToChemicalAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<ChemicalToEntityAssociationMixin_tes> ;
             rdf:type [ <ChemicalToEntityAssociationMixin> ] ? ;
             rdf:object @<ChemicalSubstance>
          ) ;
          rdf:type [ <ChemicalToChemicalAssociation> ]
       )
    } OR @<ChemicalToChemicalDerivationAssociation>
)

<ChemicalToChemicalDerivationAssociation> CLOSED {
    (  $<ChemicalToChemicalDerivationAssociation_tes> (  &<ChemicalToChemicalAssociation_tes> ;
          rdf:type [ <ChemicalToChemicalAssociation> ] ? ;
          <catalyst_qualifier> @<MacromolecularMachineMixin> * ;
          rdf:subject @<ChemicalSubstance> ;
          rdf:object @<ChemicalSubstance> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <ChemicalToChemicalDerivationAssociation> ]
    )
}

<ChemicalToDiseaseOrPhenotypicFeatureAssociation> CLOSED {
    (  $<ChemicalToDiseaseOrPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<ChemicalToEntityAssociationMixin_tes> ;
          rdf:type [ <ChemicalToEntityAssociationMixin> ] ? ;
          &<EntityToDiseaseOrPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseOrPhenotypicFeatureAssociationMixin> ] ? ;
          rdf:object @<DiseaseOrPhenotypicFeature>
       ) ;
       rdf:type [ <ChemicalToDiseaseOrPhenotypicFeatureAssociation> ]
    )
}

<ChemicalToEntityAssociationMixin> {
    (  $<ChemicalToEntityAssociationMixin_tes> (  &<MolecularEntityToEntityAssociationMixin_tes> ;
          rdf:type [ <MolecularEntityToEntityAssociationMixin> ] ? ;
          rdf:subject @<ChemicalSubstance>
       ) ;
       rdf:type [ <ChemicalToEntityAssociationMixin> ] ?
    )
}

<ChemicalToGeneAssociation> CLOSED {
    (  $<ChemicalToGeneAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<ChemicalToEntityAssociationMixin_tes> ;
          rdf:type [ <ChemicalToEntityAssociationMixin> ] ? ;
          rdf:object @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <ChemicalToGeneAssociation> ]
    )
}

<ChemicalToPathwayAssociation> CLOSED {
    (  $<ChemicalToPathwayAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<ChemicalToEntityAssociationMixin_tes> ;
          rdf:type [ <ChemicalToEntityAssociationMixin> ] ? ;
          rdf:object @<Pathway>
       ) ;
       rdf:type [ <ChemicalToPathwayAssociation> ]
    )
}

<ClinicalAttribute>  (
    CLOSED {
       (  $<ClinicalAttribute_tes> (  &<Attribute_tes> ;
             rdf:type [ <Attribute> ] ?
          ) ;
          rdf:type [ <ClinicalAttribute> ] ?
       )
    } OR @<ClinicalCourse> OR @<ClinicalMeasurement> OR @<ClinicalModifier>
)

<ClinicalCourse>  (
    CLOSED {
       (  $<ClinicalCourse_tes> (  &<ClinicalAttribute_tes> ;
             rdf:type [ <ClinicalAttribute> ] ?
          ) ;
          rdf:type [ <ClinicalCourse> ] ?
       )
    } OR @<Onset>
)

<ClinicalEntity>  (
    CLOSED {
       (  $<ClinicalEntity_tes> (  &<NamedThing_tes> ;
             rdf:type [ <NamedThing> ] ?
          ) ;
          rdf:type [ <ClinicalEntity> ]
       )
    } OR @<ClinicalIntervention> OR @<ClinicalTrial>
)

<ClinicalFinding> CLOSED {
    (  $<ClinicalFinding_tes> (  &<PhenotypicFeature_tes> ;
          rdf:type [ <PhenotypicFeature> ] ? ;
          <has_attribute> @<ClinicalAttribute> *
       ) ;
       rdf:type [ <ClinicalFinding> ]
    )
}

<ClinicalIntervention>  (
    CLOSED {
       (  $<ClinicalIntervention_tes> (  &<ClinicalEntity_tes> ;
             rdf:type [ <ClinicalEntity> ] ?
          ) ;
          rdf:type [ <ClinicalIntervention> ]
       )
    } OR @<Hospitalization>
)

<ClinicalMeasurement> CLOSED {
    (  $<ClinicalMeasurement_tes> (  &<ClinicalAttribute_tes> ;
          rdf:type [ <ClinicalAttribute> ] ? ;
          <has_attribute_type> @<OntologyClass>
       ) ;
       rdf:type [ <ClinicalMeasurement> ] ?
    )
}

<ClinicalModifier> CLOSED {
    (  $<ClinicalModifier_tes> (  &<ClinicalAttribute_tes> ;
          rdf:type [ <ClinicalAttribute> ] ?
       ) ;
       rdf:type [ <ClinicalModifier> ] ?
    )
}

<ClinicalTrial> CLOSED {
    (  $<ClinicalTrial_tes> (  &<ClinicalEntity_tes> ;
          rdf:type [ <ClinicalEntity> ] ?
       ) ;
       rdf:type [ <ClinicalTrial> ]
    )
}

<CodingSequence> CLOSED {
    (  $<CodingSequence_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ?
       ) ;
       rdf:type [ <CodingSequence> ]
    )
}

<Cohort> CLOSED {
    (  $<Cohort_tes> (  &<StudyPopulation_tes> ;
          rdf:type [ <StudyPopulation> ] ?
       ) ;
       rdf:type [ <Cohort> ]
    )
}

<ComplexChemicalExposure> CLOSED {
    (  $<ComplexChemicalExposure_tes> (  &<ChemicalExposure_tes> ;
          rdf:type [ <ChemicalExposure> ] ? ;
          &<Mixture_tes> ;
          rdf:type [ <Mixture> ] ? ;
          <has_constituent> @<ChemicalSubstance> *
       ) ;
       rdf:type [ <ComplexChemicalExposure> ]
    )
}

<ConfidenceLevel> CLOSED {
    (  $<ConfidenceLevel_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ?
       ) ;
       rdf:type [ <ConfidenceLevel> ]
    )
}

<ContributorAssociation> CLOSED {
    (  $<ContributorAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<InformationContentEntity> ;
          rdf:predicate @<PredicateType> ;
          rdf:object @<Agent> ;
          <qualifiers> @<OntologyClass> *
       ) ;
       rdf:type [ <ContributorAssociation> ]
    )
}

<Dataset> CLOSED {
    (  $<Dataset_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ?
       ) ;
       rdf:type [ <Dataset> ]
    )
}

<DatasetDistribution> CLOSED {
    (  $<DatasetDistribution_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ? ;
          <distribution_download_url> @linkml:String ?
       ) ;
       rdf:type [ <DatasetDistribution> ]
    )
}

<DatasetSummary> CLOSED {
    (  $<DatasetSummary_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ? ;
          <source_web_page> @linkml:String ? ;
          schema1:logo @linkml:String ?
       ) ;
       rdf:type [ <DatasetSummary> ]
    )
}

<DatasetVersion> CLOSED {
    (  $<DatasetVersion_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ? ;
          dcterms:source @<Dataset> ? ;
          pav:version @linkml:String ? ;
          dcterms:distribution @<DatasetDistribution> ?
       ) ;
       rdf:type [ <DatasetVersion> ]
    )
}

<Death>  (
    CLOSED {
       (  $<Death_tes> (  &<BiologicalProcess_tes> ;
             rdf:type [ <BiologicalProcess> ] ?
          ) ;
          rdf:type [ <Death> ]
       )
    } OR @<MortalityOutcome>
)

<Device> CLOSED {
    (  $<Device_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ?
       ) ;
       rdf:type [ <Device> ]
    )
}

<Disease> CLOSED {
    (  $<Disease_tes> (  &<DiseaseOrPhenotypicFeature_tes> ;
          rdf:type [ <DiseaseOrPhenotypicFeature> ] ?
       ) ;
       rdf:type [ <Disease> ]
    )
}

<DiseaseOrPhenotypicFeature>  (
    CLOSED {
       (  $<DiseaseOrPhenotypicFeature_tes> (  &<BiologicalEntity_tes> ;
             rdf:type [ <BiologicalEntity> ] ? ;
             &<ThingWithTaxon_tes> ;
             rdf:type [ <ThingWithTaxon> ] ? ;
             <in_taxon> @<OrganismTaxon> *
          ) ;
          rdf:type [ <DiseaseOrPhenotypicFeature> ]
       )
    } OR @<Disease> OR @<DiseaseOrPhenotypicFeatureExposure> OR @<DiseaseOrPhenotypicFeatureOutcome> OR @<PhenotypicFeature>
)

<DiseaseOrPhenotypicFeatureAssociationToLocationAssociation> CLOSED {
    (  $<DiseaseOrPhenotypicFeatureAssociationToLocationAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<DiseaseOrPhenotypicFeatureToEntityAssociationMixin_tes> ;
          rdf:type [ <DiseaseOrPhenotypicFeatureToEntityAssociationMixin> ] ? ;
          rdf:object @<AnatomicalEntity>
       ) ;
       rdf:type [ <DiseaseOrPhenotypicFeatureAssociationToLocationAssociation> ]
    )
}

<DiseaseOrPhenotypicFeatureExposure> CLOSED {
    (  $<DiseaseOrPhenotypicFeatureExposure_tes> (  &<DiseaseOrPhenotypicFeature_tes> ;
          rdf:type [ <DiseaseOrPhenotypicFeature> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          &<PathologicalEntityMixin_tes> ;
          rdf:type [ <PathologicalEntityMixin> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <DiseaseOrPhenotypicFeatureExposure> ]
    )
}

<DiseaseOrPhenotypicFeatureOutcome> CLOSED {
    (  $<DiseaseOrPhenotypicFeatureOutcome_tes> (  &<DiseaseOrPhenotypicFeature_tes> ;
          rdf:type [ <DiseaseOrPhenotypicFeature> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <DiseaseOrPhenotypicFeatureOutcome> ]
    )
}

<DiseaseOrPhenotypicFeatureToEntityAssociationMixin> {
    (  $<DiseaseOrPhenotypicFeatureToEntityAssociationMixin_tes> rdf:subject @<DiseaseOrPhenotypicFeature> ;
       rdf:type [ <DiseaseOrPhenotypicFeatureToEntityAssociationMixin> ] ?
    )
}

<DiseaseOrPhenotypicFeatureToLocationAssociation> CLOSED {
    (  $<DiseaseOrPhenotypicFeatureToLocationAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<DiseaseOrPhenotypicFeatureToEntityAssociationMixin_tes> ;
          rdf:type [ <DiseaseOrPhenotypicFeatureToEntityAssociationMixin> ] ? ;
          rdf:object @<AnatomicalEntity>
       ) ;
       rdf:type [ <DiseaseOrPhenotypicFeatureToLocationAssociation> ]
    )
}

<DiseaseToEntityAssociationMixin> {
    (  $<DiseaseToEntityAssociationMixin_tes> rdf:subject @<Disease> ;
       rdf:type [ <DiseaseToEntityAssociationMixin> ] ?
    )
}

<DiseaseToExposureEventAssociation> CLOSED {
    (  $<DiseaseToExposureEventAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<DiseaseToEntityAssociationMixin_tes> ;
          rdf:type [ <DiseaseToEntityAssociationMixin> ] ? ;
          &<EntityToExposureEventAssociationMixin_tes> ;
          rdf:type [ <EntityToExposureEventAssociationMixin> ] ?
       ) ;
       rdf:type [ <DiseaseToExposureEventAssociation> ]
    )
}

<DiseaseToPhenotypicFeatureAssociation> CLOSED {
    (  $<DiseaseToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          &<DiseaseToEntityAssociationMixin_tes> ;
          rdf:type [ <DiseaseToEntityAssociationMixin> ] ? ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <DiseaseToPhenotypicFeatureAssociation> ]
    )
}

<Drug>  (
    CLOSED {
       (  $<Drug_tes> (  &<MolecularEntity_tes> ;
             rdf:type [ <MolecularEntity> ] ? ;
             &<Mixture_tes> ;
             rdf:type [ <Mixture> ] ? ;
             &<ChemicalOrDrugOrTreatment_tes> ;
             rdf:type [ <ChemicalOrDrugOrTreatment> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ? ;
             <has_constituent> @<ChemicalSubstance> *
          ) ;
          rdf:type [ <Drug> ]
       )
    } OR @<DrugExposure>
)

<DrugExposure>  (
    CLOSED {
       (  $<DrugExposure_tes> (  &<Drug_tes> ;
             rdf:type [ <Drug> ] ? ;
             &<ExposureEvent_tes> ;
             rdf:type [ <ExposureEvent> ] ? ;
             <timepoint> @<TimeType> ?
          ) ;
          rdf:type [ <DrugExposure> ]
       )
    } OR @<DrugToGeneInteractionExposure>
)

<DrugToEntityAssociationMixin> {
    (  $<DrugToEntityAssociationMixin_tes> (  &<MolecularEntityToEntityAssociationMixin_tes> ;
          rdf:type [ <MolecularEntityToEntityAssociationMixin> ] ? ;
          rdf:subject @<Drug>
       ) ;
       rdf:type [ <DrugToEntityAssociationMixin> ] ?
    )
}

<DrugToGeneAssociation> CLOSED {
    (  $<DrugToGeneAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<DrugToEntityAssociationMixin_tes> ;
          rdf:type [ <DrugToEntityAssociationMixin> ] ? ;
          rdf:object @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <DrugToGeneAssociation> ]
    )
}

<DrugToGeneInteractionExposure> CLOSED {
    (  $<DrugToGeneInteractionExposure_tes> (  &<DrugExposure_tes> ;
          rdf:type [ <DrugExposure> ] ? ;
          &<GeneGroupingMixin_tes> ;
          rdf:type [ <GeneGroupingMixin> ] ? ;
          <has_gene_or_gene_product> @<Gene> *
       ) ;
       rdf:type [ <DrugToGeneInteractionExposure> ]
    )
}

<Entity>  (
    @<Association> OR @<NamedThing>
)

<Entity_struct> {
    (  $<Entity_tes> (  <iri> @<IriType> ? ;
          <category> @<CategoryType> * ;
          rdf:type @linkml:String ? ;
          rdfs:label @<LabelType> ? ;
          dcterms:description @<NarrativeText> ? ;
          <source> @<LabelType> ? ;
          <provided_by> @<Agent> * ;
          <has_attribute> @<Attribute> *
       ) ;
       rdf:type [ <Entity> ]
    )
}

<EntityToDiseaseAssociationMixin> {
    (  $<EntityToDiseaseAssociationMixin_tes> (  &<EntityToFeatureOrDiseaseQualifiersMixin_tes> ;
          rdf:type [ <EntityToFeatureOrDiseaseQualifiersMixin> ] ? ;
          rdf:object @<Disease>
       ) ;
       rdf:type [ <EntityToDiseaseAssociationMixin> ] ?
    )
}

<EntityToDiseaseOrPhenotypicFeatureAssociationMixin> {
    (  $<EntityToDiseaseOrPhenotypicFeatureAssociationMixin_tes> rdf:object @<DiseaseOrPhenotypicFeature> ;
       rdf:type [ <EntityToDiseaseOrPhenotypicFeatureAssociationMixin> ] ?
    )
}

<EntityToExposureEventAssociationMixin> {
    (  $<EntityToExposureEventAssociationMixin_tes> rdf:object @<ExposureEvent> ;
       rdf:type [ <EntityToExposureEventAssociationMixin> ] ?
    )
}

<EntityToFeatureOrDiseaseQualifiersMixin>  (
    @<EntityToDiseaseAssociationMixin> OR @<EntityToPhenotypicFeatureAssociationMixin>
)

<EntityToFeatureOrDiseaseQualifiersMixin_struct> {
    (  $<EntityToFeatureOrDiseaseQualifiersMixin_tes> (  &<FrequencyQualifierMixin_tes> ;
          rdf:type [ <FrequencyQualifierMixin> ] ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ?
       ) ;
       rdf:type [ <EntityToFeatureOrDiseaseQualifiersMixin> ] ?
    )
}

<EntityToOutcomeAssociationMixin> {
    (  $<EntityToOutcomeAssociationMixin_tes> rdf:object @<Outcome> ;
       rdf:type [ <EntityToOutcomeAssociationMixin> ] ?
    )
}

<EntityToPhenotypicFeatureAssociationMixin> {
    (  $<EntityToPhenotypicFeatureAssociationMixin_tes> (  &<EntityToFeatureOrDiseaseQualifiersMixin_tes> ;
          rdf:type [ <EntityToFeatureOrDiseaseQualifiersMixin> ] ? ;
          <sex_qualifier> @<BiologicalSex> ? ;
          dcterms:description @<NarrativeText> ? ;
          rdf:object @<PhenotypicFeature>
       ) ;
       rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ?
    )
}

<EnvironmentalExposure> CLOSED {
    (  $<EnvironmentalExposure_tes> (  &<EnvironmentalProcess_tes> ;
          rdf:type [ <EnvironmentalProcess> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <EnvironmentalExposure> ]
    )
}

<EnvironmentalFeature> CLOSED {
    (  $<EnvironmentalFeature_tes> (  &<PlanetaryEntity_tes> ;
          rdf:type [ <PlanetaryEntity> ] ?
       ) ;
       rdf:type [ <EnvironmentalFeature> ]
    )
}

<EnvironmentalFoodContaminant> CLOSED {
    (  $<EnvironmentalFoodContaminant_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ?
       ) ;
       rdf:type [ <EnvironmentalFoodContaminant> ]
    )
}

<EnvironmentalProcess>  (
    CLOSED {
       (  $<EnvironmentalProcess_tes> (  &<PlanetaryEntity_tes> ;
             rdf:type [ <PlanetaryEntity> ] ? ;
             &<Occurrent_tes> ;
             rdf:type [ <Occurrent> ] ?
          ) ;
          rdf:type [ <EnvironmentalProcess> ]
       )
    } OR @<EnvironmentalExposure>
)

<EpidemiologicalOutcome> CLOSED {
    (  $<EpidemiologicalOutcome_tes> (  &<BiologicalEntity_tes> ;
          rdf:type [ <BiologicalEntity> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <EpidemiologicalOutcome> ]
    )
}

<EvidenceType> CLOSED {
    (  $<EvidenceType_tes> (  &<InformationContentEntity_tes> ;
          rdf:type [ <InformationContentEntity> ] ?
       ) ;
       rdf:type [ <EvidenceType> ]
    )
}

<Exon> CLOSED {
    (  $<Exon_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ?
       ) ;
       rdf:type [ <Exon> ]
    )
}

<ExonToTranscriptRelationship> CLOSED {
    (  $<ExonToTranscriptRelationship_tes> (  &<SequenceFeatureRelationship_tes> ;
          rdf:type [ <SequenceFeatureRelationship> ] ? ;
          rdf:subject @<Exon> ;
          rdf:object @<Transcript>
       ) ;
       rdf:type [ <ExonToTranscriptRelationship> ]
    )
}

<ExposureEvent> {
    (  $<ExposureEvent_tes> <timepoint> @<TimeType> ? ;
       rdf:type [ <ExposureEvent> ] ?
    )
}

<ExposureEventToEntityAssociationMixin> {
    (  $<ExposureEventToEntityAssociationMixin_tes> rdf:subject @<ExposureEvent> ;
       rdf:type [ <ExposureEventToEntityAssociationMixin> ] ?
    )
}

<ExposureEventToOutcomeAssociation> CLOSED {
    (  $<ExposureEventToOutcomeAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<ExposureEventToEntityAssociationMixin_tes> ;
          rdf:type [ <ExposureEventToEntityAssociationMixin> ] ? ;
          &<EntityToOutcomeAssociationMixin_tes> ;
          rdf:type [ <EntityToOutcomeAssociationMixin> ] ? ;
          <has_population_context> @<PopulationOfIndividualOrganisms> ? ;
          <has_temporal_context> @<TimeType> ?
       ) ;
       rdf:type [ <ExposureEventToOutcomeAssociation> ]
    )
}

<ExposureEventToPhenotypicFeatureAssociation> CLOSED {
    (  $<ExposureEventToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          rdf:subject @<ExposureEvent> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <ExposureEventToPhenotypicFeatureAssociation> ]
    )
}

<Food> CLOSED {
    (  $<Food_tes> (  &<MolecularEntity_tes> ;
          rdf:type [ <MolecularEntity> ] ? ;
          &<Mixture_tes> ;
          rdf:type [ <Mixture> ] ? ;
          <has_constituent> @<ChemicalSubstance> *
       ) ;
       rdf:type [ <Food> ]
    )
}

<FoodAdditive> CLOSED {
    (  $<FoodAdditive_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ?
       ) ;
       rdf:type [ <FoodAdditive> ]
    )
}

<FoodComponent> CLOSED {
    (  $<FoodComponent_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ?
       ) ;
       rdf:type [ <FoodComponent> ]
    )
}

<FrequencyQualifierMixin>  (
    {
       (  $<FrequencyQualifierMixin_tes> <frequency_qualifier> @<FrequencyValue> ? ;
          rdf:type [ <FrequencyQualifierMixin> ] ?
       )
    } OR @<EntityToFeatureOrDiseaseQualifiersMixin>
)

<FrequencyQuantifier> {
    (  $<FrequencyQuantifier_tes> (  &<RelationshipQuantifier_tes> ;
          rdf:type [ <RelationshipQuantifier> ] ? ;
          <has_count> @linkml:Integer ? ;
          <has_total> @linkml:Integer ? ;
          <has_quotient> @linkml:Double ? ;
          <has_percentage> @linkml:Double ?
       ) ;
       rdf:type [ <FrequencyQuantifier> ] ?
    )
}

<FunctionalAssociation>  (
    CLOSED {
       (  $<FunctionalAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             rdf:subject @<MacromolecularMachineMixin> ;
             rdf:object @<GeneOntologyClass>
          ) ;
          rdf:type [ <FunctionalAssociation> ]
       )
    } OR @<GeneToGoTermAssociation> OR @<MacromolecularMachineToBiologicalProcessAssociation> OR
    @<MacromolecularMachineToCellularComponentAssociation> OR @<MacromolecularMachineToMolecularActivityAssociation>
)

<Gene> CLOSED {
    (  $<Gene_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ? ;
          &<GeneOrGeneProduct_tes> ;
          rdf:type [ <GeneOrGeneProduct> ] ? ;
          <symbol> @linkml:String ? ;
          <synonym> @<LabelType> * ;
          <xref> @<IriType> *
       ) ;
       rdf:type [ <Gene> ]
    )
}

<GeneAsAModelOfDiseaseAssociation> CLOSED {
    (  $<GeneAsAModelOfDiseaseAssociation_tes> (  &<GeneToDiseaseAssociation_tes> ;
          rdf:type [ <GeneToDiseaseAssociation> ] ? ;
          &<ModelToDiseaseAssociationMixin_tes> ;
          rdf:type [ <ModelToDiseaseAssociationMixin> ] ? ;
          &<EntityToDiseaseAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
          rdf:subject @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <GeneAsAModelOfDiseaseAssociation> ]
    )
}

<GeneExpressionMixin> {
    (  $<GeneExpressionMixin_tes> (  <quantifier_qualifier> @<OntologyClass> ? ;
          <expression_site> @<AnatomicalEntity> ? ;
          <stage_qualifier> @<LifeStage> ? ;
          <phenotypic_state> @<DiseaseOrPhenotypicFeature> ?
       ) ;
       rdf:type [ <GeneExpressionMixin> ] ?
    )
}

<GeneFamily> CLOSED {
    (  $<GeneFamily_tes> (  &<MolecularEntity_tes> ;
          rdf:type [ <MolecularEntity> ] ? ;
          &<GeneGroupingMixin_tes> ;
          rdf:type [ <GeneGroupingMixin> ] ? ;
          <has_gene_or_gene_product> @<Gene> *
       ) ;
       rdf:type [ <GeneFamily> ]
    )
}

<GeneGroupingMixin> {
    (  $<GeneGroupingMixin_tes> <has_gene_or_gene_product> @<Gene> * ;
       rdf:type [ <GeneGroupingMixin> ] ?
    )
}

<GeneHasVariantThatContributesToDiseaseAssociation> CLOSED {
    (  $<GeneHasVariantThatContributesToDiseaseAssociation_tes> (  &<GeneToDiseaseAssociation_tes> ;
          rdf:type [ <GeneToDiseaseAssociation> ] ? ;
          <sequence_variant_qualifier> @<SequenceVariant> ? ;
          rdf:subject @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <GeneHasVariantThatContributesToDiseaseAssociation> ]
    )
}

<GeneOntologyClass> {
    (  $<GeneOntologyClass_tes> (  &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <GeneOntologyClass> ] ?
    )
}

<GeneOrGeneProduct>  (
    {
       (  $<GeneOrGeneProduct_tes> (  &<MacromolecularMachineMixin_tes> ;
             rdf:type [ <MacromolecularMachineMixin> ] ?
          ) ;
          rdf:type [ <GeneOrGeneProduct> ] ?
       )
    } OR @<GeneProductMixin>
)

<GeneProductIsoformMixin> {
    (  $<GeneProductIsoformMixin_tes> (  &<GeneProductMixin_tes> ;
          rdf:type [ <GeneProductMixin> ] ?
       ) ;
       rdf:type [ <GeneProductIsoformMixin> ] ?
    )
}

<GeneProductMixin>  (
    {
       (  $<GeneProductMixin_tes> (  &<GeneOrGeneProduct_tes> ;
             rdf:type [ <GeneOrGeneProduct> ] ? ;
             <synonym> @<LabelType> * ;
             <xref> @<IriType> *
          ) ;
          rdf:type [ <GeneProductMixin> ] ?
       )
    } OR @<GeneProductIsoformMixin>
)

<GeneRegulatoryRelationship> CLOSED {
    (  $<GeneRegulatoryRelationship_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:predicate @<PredicateType> ;
          rdf:subject @<GeneOrGeneProduct> ;
          rdf:object @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <GeneRegulatoryRelationship> ]
    )
}

<GeneToDiseaseAssociation>  (
    CLOSED {
       (  $<GeneToDiseaseAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<EntityToDiseaseAssociationMixin_tes> ;
             rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
             &<GeneToEntityAssociationMixin_tes> ;
             rdf:type [ <GeneToEntityAssociationMixin> ] ? ;
             rdf:subject @<GeneOrGeneProduct> ;
             <frequency_qualifier> @<FrequencyValue> ? ;
             <severity_qualifier> @<SeverityValue> ? ;
             <onset_qualifier> @<Onset> ?
          ) ;
          rdf:type [ <GeneToDiseaseAssociation> ]
       )
    } OR @<GeneAsAModelOfDiseaseAssociation> OR @<GeneHasVariantThatContributesToDiseaseAssociation>
)

<GeneToEntityAssociationMixin> {
    (  $<GeneToEntityAssociationMixin_tes> rdf:subject @<GeneOrGeneProduct> ;
       rdf:type [ <GeneToEntityAssociationMixin> ] ?
    )
}

<GeneToExpressionSiteAssociation> CLOSED {
    (  $<GeneToExpressionSiteAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          <stage_qualifier> @<LifeStage> ? ;
          <quantifier_qualifier> @<OntologyClass> ? ;
          rdf:subject @<GeneOrGeneProduct> ;
          rdf:object @<AnatomicalEntity> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <GeneToExpressionSiteAssociation> ]
    )
}

<GeneToGeneAssociation>  (
    @<GeneToGeneCoexpressionAssociation> OR @<GeneToGeneHomologyAssociation> OR @<PairwiseGeneToGeneInteraction>
)

<GeneToGeneAssociation_struct> {
    (  $<GeneToGeneAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<GeneOrGeneProduct> ;
          rdf:object @<GeneOrGeneProduct>
       ) ;
       rdf:type [ <GeneToGeneAssociation> ]
    )
}

<GeneToGeneCoexpressionAssociation> CLOSED {
    (  $<GeneToGeneCoexpressionAssociation_tes> (  &<GeneToGeneAssociation_tes> ;
          rdf:type [ <GeneToGeneAssociation> ] ? ;
          &<GeneExpressionMixin_tes> ;
          rdf:type [ <GeneExpressionMixin> ] ? ;
          rdf:predicate @<PredicateType> ;
          <quantifier_qualifier> @<OntologyClass> ? ;
          <expression_site> @<AnatomicalEntity> ? ;
          <stage_qualifier> @<LifeStage> ? ;
          <phenotypic_state> @<DiseaseOrPhenotypicFeature> ?
       ) ;
       rdf:type [ <GeneToGeneCoexpressionAssociation> ]
    )
}

<GeneToGeneHomologyAssociation> CLOSED {
    (  $<GeneToGeneHomologyAssociation_tes> (  &<GeneToGeneAssociation_tes> ;
          rdf:type [ <GeneToGeneAssociation> ] ? ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <GeneToGeneHomologyAssociation> ]
    )
}

<GeneToGeneProductRelationship> CLOSED {
    (  $<GeneToGeneProductRelationship_tes> (  &<SequenceFeatureRelationship_tes> ;
          rdf:type [ <SequenceFeatureRelationship> ] ? ;
          rdf:subject @<Gene> ;
          rdf:object @<GeneProductMixin> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <GeneToGeneProductRelationship> ]
    )
}

<GeneToGoTermAssociation> CLOSED {
    (  $<GeneToGoTermAssociation_tes> (  &<FunctionalAssociation_tes> ;
          rdf:type [ <FunctionalAssociation> ] ? ;
          rdf:subject @<MolecularEntity> ;
          rdf:object @<GeneOntologyClass>
       ) ;
       rdf:type [ <GeneToGoTermAssociation> ]
    )
}

<GeneToPhenotypicFeatureAssociation> CLOSED {
    (  $<GeneToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          &<GeneToEntityAssociationMixin_tes> ;
          rdf:type [ <GeneToEntityAssociationMixin> ] ? ;
          rdf:subject @<GeneOrGeneProduct> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <GeneToPhenotypicFeatureAssociation> ]
    )
}

<Genome> CLOSED {
    (  $<Genome_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ?
       ) ;
       rdf:type [ <Genome> ]
    )
}

<GenomicBackgroundExposure> CLOSED {
    (  $<GenomicBackgroundExposure_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          &<GeneGroupingMixin_tes> ;
          rdf:type [ <GeneGroupingMixin> ] ? ;
          <timepoint> @<TimeType> ? ;
          <has_gene_or_gene_product> @<Gene> *
       ) ;
       rdf:type [ <GenomicBackgroundExposure> ]
    )
}

<GenomicEntity>  (
    CLOSED {
       (  $<GenomicEntity_tes> (  &<MolecularEntity_tes> ;
             rdf:type [ <MolecularEntity> ] ? ;
             <has_biological_sequence> @<BiologicalSequence> ?
          ) ;
          rdf:type [ <GenomicEntity> ]
       )
    } OR @<CodingSequence> OR @<Exon> OR @<Gene> OR @<Genome> OR @<GenomicBackgroundExposure> OR @<Genotype> OR @<Haplotype> OR
    @<Protein> OR @<ReagentTargetedGene> OR @<SequenceVariant> OR @<Transcript>
)

<GenomicSequenceLocalization> CLOSED {
    (  $<GenomicSequenceLocalization_tes> (  &<SequenceAssociation_tes> ;
          rdf:type [ <SequenceAssociation> ] ? ;
          <start_interbase_coordinate> @linkml:Integer ? ;
          <end_interbase_coordinate> @linkml:Integer ? ;
          <genome_build> @linkml:String ? ;
          <strand> @linkml:String ? ;
          <phase> @linkml:String ? ;
          rdf:subject @<GenomicEntity> ;
          rdf:object @<GenomicEntity> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <GenomicSequenceLocalization> ]
    )
}

<Genotype> CLOSED {
    (  $<Genotype_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ? ;
          <has_zygosity> @<Zygosity> ?
       ) ;
       rdf:type [ <Genotype> ]
    )
}

<GenotypeAsAModelOfDiseaseAssociation> CLOSED {
    (  $<GenotypeAsAModelOfDiseaseAssociation_tes> (  &<GenotypeToDiseaseAssociation_tes> ;
          rdf:type [ <GenotypeToDiseaseAssociation> ] ? ;
          &<ModelToDiseaseAssociationMixin_tes> ;
          rdf:type [ <ModelToDiseaseAssociationMixin> ] ? ;
          &<EntityToDiseaseAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
          rdf:subject @<Genotype>
       ) ;
       rdf:type [ <GenotypeAsAModelOfDiseaseAssociation> ]
    )
}

<GenotypeToDiseaseAssociation>  (
    CLOSED {
       (  $<GenotypeToDiseaseAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<GenotypeToEntityAssociationMixin_tes> ;
             rdf:type [ <GenotypeToEntityAssociationMixin> ] ? ;
             &<EntityToDiseaseAssociationMixin_tes> ;
             rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
             rdf:subject @<NamedThing> ;
             rdf:predicate @<PredicateType> ;
             rdf:object @<NamedThing> ;
             <frequency_qualifier> @<FrequencyValue> ? ;
             <severity_qualifier> @<SeverityValue> ? ;
             <onset_qualifier> @<Onset> ?
          ) ;
          rdf:type [ <GenotypeToDiseaseAssociation> ]
       )
    } OR @<GenotypeAsAModelOfDiseaseAssociation>
)

<GenotypeToEntityAssociationMixin> {
    (  $<GenotypeToEntityAssociationMixin_tes> rdf:subject @<Genotype> ;
       rdf:type [ <GenotypeToEntityAssociationMixin> ] ?
    )
}

<GenotypeToGeneAssociation> CLOSED {
    (  $<GenotypeToGeneAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:predicate @<PredicateType> ;
          rdf:subject @<Genotype> ;
          rdf:object @<Gene>
       ) ;
       rdf:type [ <GenotypeToGeneAssociation> ]
    )
}

<GenotypeToGenotypePartAssociation> CLOSED {
    (  $<GenotypeToGenotypePartAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:predicate @<PredicateType> ;
          rdf:subject @<Genotype> ;
          rdf:object @<Genotype>
       ) ;
       rdf:type [ <GenotypeToGenotypePartAssociation> ]
    )
}

<GenotypeToPhenotypicFeatureAssociation> CLOSED {
    (  $<GenotypeToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          &<GenotypeToEntityAssociationMixin_tes> ;
          rdf:type [ <GenotypeToEntityAssociationMixin> ] ? ;
          rdf:predicate @<PredicateType> ;
          rdf:subject @<Genotype> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <GenotypeToPhenotypicFeatureAssociation> ]
    )
}

<GenotypeToVariantAssociation> CLOSED {
    (  $<GenotypeToVariantAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:predicate @<PredicateType> ;
          rdf:subject @<Genotype> ;
          rdf:object @<SequenceVariant>
       ) ;
       rdf:type [ <GenotypeToVariantAssociation> ]
    )
}

<GenotypicSex> CLOSED {
    (  $<GenotypicSex_tes> (  &<BiologicalSex_tes> ;
          rdf:type [ <BiologicalSex> ] ?
       ) ;
       rdf:type [ <GenotypicSex> ] ?
    )
}

<GeographicExposure> CLOSED {
    (  $<GeographicExposure_tes> (  &<GeographicLocation_tes> ;
          rdf:type [ <GeographicLocation> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <GeographicExposure> ]
    )
}

<GeographicLocation>  (
    CLOSED {
       (  $<GeographicLocation_tes> (  &<PlanetaryEntity_tes> ;
             rdf:type [ <PlanetaryEntity> ] ? ;
             <latitude> @linkml:Float ? ;
             <longitude> @linkml:Float ?
          ) ;
          rdf:type [ <GeographicLocation> ]
       )
    } OR @<GeographicExposure> OR @<GeographicLocationAtTime>
)

<GeographicLocationAtTime> CLOSED {
    (  $<GeographicLocationAtTime_tes> (  &<GeographicLocation_tes> ;
          rdf:type [ <GeographicLocation> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <GeographicLocationAtTime> ]
    )
}

<GrossAnatomicalStructure> CLOSED {
    (  $<GrossAnatomicalStructure_tes> (  &<AnatomicalEntity_tes> ;
          rdf:type [ <AnatomicalEntity> ] ?
       ) ;
       rdf:type [ <GrossAnatomicalStructure> ]
    )
}

<Haplotype> CLOSED {
    (  $<Haplotype_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ?
       ) ;
       rdf:type [ <Haplotype> ]
    )
}

<Hospitalization>  (
    CLOSED {
       (  $<Hospitalization_tes> (  &<ClinicalIntervention_tes> ;
             rdf:type [ <ClinicalIntervention> ] ?
          ) ;
          rdf:type [ <Hospitalization> ]
       )
    } OR @<HospitalizationOutcome>
)

<HospitalizationOutcome> CLOSED {
    (  $<HospitalizationOutcome_tes> (  &<Hospitalization_tes> ;
          rdf:type [ <Hospitalization> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <HospitalizationOutcome> ]
    )
}

<IndividualOrganism>  (
    CLOSED {
       (  $<IndividualOrganism_tes> (  &<OrganismalEntity_tes> ;
             rdf:type [ <OrganismalEntity> ] ? ;
             &<ThingWithTaxon_tes> ;
             rdf:type [ <ThingWithTaxon> ] ? ;
             <in_taxon> @<OrganismTaxon> *
          ) ;
          rdf:type [ <IndividualOrganism> ]
       )
    } OR @<Case>
)

<InformationContentEntity>  (
    @<ConfidenceLevel> OR @<Dataset> OR @<DatasetDistribution> OR @<DatasetSummary> OR @<DatasetVersion> OR @<EvidenceType> OR
    @<Publication>
)

<InformationContentEntity_struct> {
    (  $<InformationContentEntity_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ? ;
          <license> @linkml:String ? ;
          <rights> @linkml:String ? ;
          <format> @linkml:String ? ;
          <creation_date> @linkml:Date ?
       ) ;
       rdf:type [ <InformationContentEntity> ]
    )
}

<Inheritance> CLOSED {
    (  $<Inheritance_tes> (  &<OrganismAttribute_tes> ;
          rdf:type [ <OrganismAttribute> ] ?
       ) ;
       rdf:type [ <Inheritance> ] ?
    )
}

<LifeStage> CLOSED {
    (  $<LifeStage_tes> (  &<OrganismalEntity_tes> ;
          rdf:type [ <OrganismalEntity> ] ? ;
          &<ThingWithTaxon_tes> ;
          rdf:type [ <ThingWithTaxon> ] ? ;
          <in_taxon> @<OrganismTaxon> *
       ) ;
       rdf:type [ <LifeStage> ]
    )
}

<MacromolecularComplexMixin> {
    (  $<MacromolecularComplexMixin_tes> (  &<MacromolecularMachineMixin_tes> ;
          rdf:type [ <MacromolecularMachineMixin> ] ?
       ) ;
       rdf:type [ <MacromolecularComplexMixin> ] ?
    )
}

<MacromolecularMachineMixin>  (
    @<GeneOrGeneProduct> OR @<MacromolecularComplexMixin>
)

<MacromolecularMachineMixin_struct> {
    (  $<MacromolecularMachineMixin_tes> rdfs:label @<SymbolType> ? ;
       rdf:type [ <MacromolecularMachineMixin> ] ?
    )
}

<MacromolecularMachineToBiologicalProcessAssociation> CLOSED {
    (  $<MacromolecularMachineToBiologicalProcessAssociation_tes> (  &<FunctionalAssociation_tes> ;
          rdf:type [ <FunctionalAssociation> ] ? ;
          &<MacromolecularMachineToEntityAssociationMixin_tes> ;
          rdf:type [ <MacromolecularMachineToEntityAssociationMixin> ] ? ;
          rdf:object @<BiologicalProcess>
       ) ;
       rdf:type [ <MacromolecularMachineToBiologicalProcessAssociation> ]
    )
}

<MacromolecularMachineToCellularComponentAssociation> CLOSED {
    (  $<MacromolecularMachineToCellularComponentAssociation_tes> (  &<FunctionalAssociation_tes> ;
          rdf:type [ <FunctionalAssociation> ] ? ;
          &<MacromolecularMachineToEntityAssociationMixin_tes> ;
          rdf:type [ <MacromolecularMachineToEntityAssociationMixin> ] ? ;
          rdf:object @<CellularComponent>
       ) ;
       rdf:type [ <MacromolecularMachineToCellularComponentAssociation> ]
    )
}

<MacromolecularMachineToEntityAssociationMixin> {
    (  $<MacromolecularMachineToEntityAssociationMixin_tes> rdf:subject @<NamedThing> ;
       rdf:type [ <MacromolecularMachineToEntityAssociationMixin> ] ?
    )
}

<MacromolecularMachineToMolecularActivityAssociation> CLOSED {
    (  $<MacromolecularMachineToMolecularActivityAssociation_tes> (  &<FunctionalAssociation_tes> ;
          rdf:type [ <FunctionalAssociation> ] ? ;
          &<MacromolecularMachineToEntityAssociationMixin_tes> ;
          rdf:type [ <MacromolecularMachineToEntityAssociationMixin> ] ? ;
          rdf:object @<MolecularActivity>
       ) ;
       rdf:type [ <MacromolecularMachineToMolecularActivityAssociation> ]
    )
}

<Macronutrient> CLOSED {
    (  $<Macronutrient_tes> (  &<Nutrient_tes> ;
          rdf:type [ <Nutrient> ] ?
       ) ;
       rdf:type [ <Macronutrient> ]
    )
}

<MaterialSample> CLOSED {
    (  $<MaterialSample_tes> (  &<PhysicalEntity_tes> ;
          rdf:type [ <PhysicalEntity> ] ? ;
          &<SubjectOfInvestigation_tes> ;
          rdf:type [ <SubjectOfInvestigation> ] ?
       ) ;
       rdf:type [ <MaterialSample> ]
    )
}

<MaterialSampleDerivationAssociation> CLOSED {
    (  $<MaterialSampleDerivationAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<MaterialSample> ;
          rdf:object @<NamedThing> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <MaterialSampleDerivationAssociation> ]
    )
}

<MaterialSampleToDiseaseOrPhenotypicFeatureAssociation> CLOSED {
    (  $<MaterialSampleToDiseaseOrPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<MaterialSampleToEntityAssociationMixin_tes> ;
          rdf:type [ <MaterialSampleToEntityAssociationMixin> ] ? ;
          &<EntityToDiseaseOrPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseOrPhenotypicFeatureAssociationMixin> ] ?
       ) ;
       rdf:type [ <MaterialSampleToDiseaseOrPhenotypicFeatureAssociation> ]
    )
}

<MaterialSampleToEntityAssociationMixin> {
    (  $<MaterialSampleToEntityAssociationMixin_tes> rdf:subject @<MaterialSample> ;
       rdf:type [ <MaterialSampleToEntityAssociationMixin> ] ?
    )
}

<Metabolite> CLOSED {
    (  $<Metabolite_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ?
       ) ;
       rdf:type [ <Metabolite> ]
    )
}

<Micronutrient>  (
    CLOSED {
       (  $<Micronutrient_tes> (  &<Nutrient_tes> ;
             rdf:type [ <Nutrient> ] ?
          ) ;
          rdf:type [ <Micronutrient> ]
       )
    } OR @<Vitamin>
)

<MicroRNA> CLOSED {
    (  $<MicroRNA_tes> (  &<NoncodingRNAProduct_tes> ;
          rdf:type [ <NoncodingRNAProduct> ] ?
       ) ;
       rdf:type [ <MicroRNA> ]
    )
}

<Mixture> {
    (  $<Mixture_tes> <has_constituent> @<ChemicalSubstance> * ;
       rdf:type [ <Mixture> ] ?
    )
}

<ModelToDiseaseAssociationMixin> {
    (  $<ModelToDiseaseAssociationMixin_tes> (  rdf:subject @<NamedThing> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <ModelToDiseaseAssociationMixin> ] ?
    )
}

<MolecularActivity> CLOSED {
    (  $<MolecularActivity_tes> (  &<BiologicalProcessOrActivity_tes> ;
          rdf:type [ <BiologicalProcessOrActivity> ] ? ;
          &<Occurrent_tes> ;
          rdf:type [ <Occurrent> ] ? ;
          &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ? ;
          <has_input> @<ChemicalSubstance> * ;
          <has_output> @<ChemicalSubstance> * ;
          <enabled_by> @<MacromolecularMachineMixin> *
       ) ;
       rdf:type [ <MolecularActivity> ]
    )
}

<MolecularEntity>  (
    CLOSED {
       (  $<MolecularEntity_tes> (  &<BiologicalEntity_tes> ;
             rdf:type [ <BiologicalEntity> ] ? ;
             &<ThingWithTaxon_tes> ;
             rdf:type [ <ThingWithTaxon> ] ? ;
             &<PhysicalEssence_tes> ;
             rdf:type [ <PhysicalEssence> ] ? ;
             &<OntologyClass_tes> ;
             rdf:type [ <OntologyClass> ] ? ;
             <in_taxon> @<OrganismTaxon> *
          ) ;
          rdf:type [ <MolecularEntity> ]
       )
    } OR @<ChemicalSubstance> OR @<Drug> OR @<Food> OR @<GeneFamily> OR @<GenomicEntity>
)

<MolecularEntityToEntityAssociationMixin>  (
    @<ChemicalToEntityAssociationMixin> OR @<DrugToEntityAssociationMixin>
)

<MolecularEntityToEntityAssociationMixin_struct> {
    (  $<MolecularEntityToEntityAssociationMixin_tes> rdf:subject @<MolecularEntity> ;
       rdf:type [ <MolecularEntityToEntityAssociationMixin> ] ?
    )
}

<MortalityOutcome> CLOSED {
    (  $<MortalityOutcome_tes> (  &<Death_tes> ;
          rdf:type [ <Death> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <MortalityOutcome> ]
    )
}

<NamedThing>  (
    CLOSED {
       (  $<NamedThing_tes> (  &<Entity_tes> ;
             rdf:type [ <Entity> ] ? ;
             <category> @<NamedThing> +
          ) ;
          rdf:type [ <NamedThing> ]
       )
    } OR @<Activity> OR @<AdministrativeEntity> OR @<BiologicalEntity> OR @<ClinicalEntity> OR @<Device> OR
    @<InformationContentEntity> OR @<OrganismTaxon> OR @<Phenomenon> OR @<PhysicalEntity> OR @<PlanetaryEntity> OR @<Procedure> OR
    @<Treatment>
)

<NoncodingRNAProduct>  (
    CLOSED {
       (  $<NoncodingRNAProduct_tes> (  &<RNAProduct_tes> ;
             rdf:type [ <RNAProduct> ] ?
          ) ;
          rdf:type [ <NoncodingRNAProduct> ]
       )
    } OR @<MicroRNA> OR @<SiRNA>
)

<Nutrient>  (
    CLOSED {
       (  $<Nutrient_tes> (  &<ChemicalSubstance_tes> ;
             rdf:type [ <ChemicalSubstance> ] ?
          ) ;
          rdf:type [ <Nutrient> ]
       )
    } OR @<Macronutrient> OR @<Micronutrient>
)

<Occurrent>  (
    {
       (  $<Occurrent_tes> (  &<PhysicalEssenceOrOccurrent_tes> ;
             rdf:type [ <PhysicalEssenceOrOccurrent> ] ?
          ) ;
          rdf:type [ <Occurrent> ] ?
       )
    } OR @<ActivityAndBehavior>
)

<Onset> CLOSED {
    (  $<Onset_tes> (  &<ClinicalCourse_tes> ;
          rdf:type [ <ClinicalCourse> ] ?
       ) ;
       rdf:type [ <Onset> ] ?
    )
}

<OntologyClass>  (
    @<GeneOntologyClass> OR @<RelationshipType> OR @<TaxonomicRank> OR @<UnclassifiedOntologyClass>
)

<OntologyClass_struct> {
    (  $<OntologyClass_tes> rdf:type . * ;
       rdf:type [ <OntologyClass> ] ?
    )
}

<OrganismAttribute>  (
    CLOSED {
       (  $<OrganismAttribute_tes> (  &<Attribute_tes> ;
             rdf:type [ <Attribute> ] ?
          ) ;
          rdf:type [ <OrganismAttribute> ] ?
       )
    } OR @<Inheritance> OR @<PhenotypicQuality>
)

<OrganismTaxon>  (
    CLOSED {
       (  $<OrganismTaxon_tes> (  &<NamedThing_tes> ;
             rdf:type [ <NamedThing> ] ? ;
             <has_taxonomic_rank> @<TaxonomicRank> ? ;
             <subclass_of> @<OrganismTaxon> *
          ) ;
          rdf:type [ <OrganismTaxon> ]
       )
    } OR @<BioticExposure>
)

<OrganismTaxonToEntityAssociation> {
    (  $<OrganismTaxonToEntityAssociation_tes> rdf:subject @<OrganismTaxon> ;
       rdf:type [ <OrganismTaxonToEntityAssociation> ] ?
    )
}

<OrganismTaxonToEnvironmentAssociation> {
    (  $<OrganismTaxonToEnvironmentAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<OrganismTaxonToEntityAssociation_tes> ;
          rdf:type [ <OrganismTaxonToEntityAssociation> ] ? ;
          rdf:subject @<OrganismTaxon> ;
          rdf:object @<NamedThing> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <OrganismTaxonToEnvironmentAssociation> ]
    )
}

<OrganismTaxonToOrganismTaxonAssociation>  (
    @<OrganismTaxonToOrganismTaxonInteraction> OR @<OrganismTaxonToOrganismTaxonSpecialization>
)

<OrganismTaxonToOrganismTaxonAssociation_struct> {
    (  $<OrganismTaxonToOrganismTaxonAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<OrganismTaxonToEntityAssociation_tes> ;
          rdf:type [ <OrganismTaxonToEntityAssociation> ] ? ;
          rdf:subject @<OrganismTaxon> ;
          rdf:object @<OrganismTaxon>
       ) ;
       rdf:type [ <OrganismTaxonToOrganismTaxonAssociation> ]
    )
}

<OrganismTaxonToOrganismTaxonInteraction> CLOSED {
    (  $<OrganismTaxonToOrganismTaxonInteraction_tes> (  &<OrganismTaxonToOrganismTaxonAssociation_tes> ;
          rdf:type [ <OrganismTaxonToOrganismTaxonAssociation> ] ? ;
          <associated_environmental_context> @linkml:String ? ;
          rdf:subject @<OrganismTaxon> ;
          rdf:object @<OrganismTaxon> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <OrganismTaxonToOrganismTaxonInteraction> ]
    )
}

<OrganismTaxonToOrganismTaxonSpecialization> CLOSED {
    (  $<OrganismTaxonToOrganismTaxonSpecialization_tes> (  &<OrganismTaxonToOrganismTaxonAssociation_tes> ;
          rdf:type [ <OrganismTaxonToOrganismTaxonAssociation> ] ? ;
          rdf:subject @<OrganismTaxon> ;
          rdf:object @<OrganismTaxon> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <OrganismTaxonToOrganismTaxonSpecialization> ]
    )
}

<OrganismalEntity>  (
    @<AnatomicalEntity> OR @<CellLine> OR @<IndividualOrganism> OR @<LifeStage> OR @<PopulationOfIndividualOrganisms>
)

<OrganismalEntity_struct> {
    (  $<OrganismalEntity_tes> (  &<BiologicalEntity_tes> ;
          rdf:type [ <BiologicalEntity> ] ? ;
          <has_attribute> @<Attribute> *
       ) ;
       rdf:type [ <OrganismalEntity> ]
    )
}

<OrganismalEntityAsAModelOfDiseaseAssociation> CLOSED {
    (  $<OrganismalEntityAsAModelOfDiseaseAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<ModelToDiseaseAssociationMixin_tes> ;
          rdf:type [ <ModelToDiseaseAssociationMixin> ] ? ;
          &<EntityToDiseaseAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
          rdf:subject @<OrganismalEntity> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ?
       ) ;
       rdf:type [ <OrganismalEntityAsAModelOfDiseaseAssociation> ]
    )
}

<Outcome> {
    (  $<Outcome_tes> rdf:type . * ;
       rdf:type [ <Outcome> ] ?
    )
}

<PairwiseGeneToGeneInteraction>  (
    CLOSED {
       (  $<PairwiseGeneToGeneInteraction_tes> (  &<GeneToGeneAssociation_tes> ;
             rdf:type [ <GeneToGeneAssociation> ] ? ;
             rdf:predicate @<PredicateType> ;
             <relation> @linkml:Uriorcurie
          ) ;
          rdf:type [ <PairwiseGeneToGeneInteraction> ]
       )
    } OR @<PairwiseMolecularInteraction>
)

<PairwiseMolecularInteraction> CLOSED {
    (  $<PairwiseMolecularInteraction_tes> (  &<PairwiseGeneToGeneInteraction_tes> ;
          rdf:type [ <PairwiseGeneToGeneInteraction> ] ? ;
          <interacting_molecules_category> @<OntologyClass> ? ;
          rdf:subject @<MolecularEntity> ;
          rdf:predicate @<PredicateType> ;
          <relation> @linkml:Uriorcurie ;
          rdf:object @<MolecularEntity>
       ) ;
       rdf:type [ <PairwiseMolecularInteraction> ]
    )
}

<PathognomonicityQuantifier> {
    (  $<PathognomonicityQuantifier_tes> (  &<SpecificityQuantifier_tes> ;
          rdf:type [ <SpecificityQuantifier> ] ?
       ) ;
       rdf:type [ <PathognomonicityQuantifier> ] ?
    )
}

<PathologicalAnatomicalExposure> CLOSED {
    (  $<PathologicalAnatomicalExposure_tes> (  &<PathologicalAnatomicalStructure_tes> ;
          rdf:type [ <PathologicalAnatomicalStructure> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <PathologicalAnatomicalExposure> ]
    )
}

<PathologicalAnatomicalOutcome> CLOSED {
    (  $<PathologicalAnatomicalOutcome_tes> (  &<PathologicalAnatomicalStructure_tes> ;
          rdf:type [ <PathologicalAnatomicalStructure> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <PathologicalAnatomicalOutcome> ]
    )
}

<PathologicalAnatomicalStructure>  (
    CLOSED {
       (  $<PathologicalAnatomicalStructure_tes> (  &<AnatomicalEntity_tes> ;
             rdf:type [ <AnatomicalEntity> ] ? ;
             &<PathologicalEntityMixin_tes> ;
             rdf:type [ <PathologicalEntityMixin> ] ?
          ) ;
          rdf:type [ <PathologicalAnatomicalStructure> ]
       )
    } OR @<PathologicalAnatomicalExposure> OR @<PathologicalAnatomicalOutcome>
)

<PathologicalEntityMixin> {
    (  $<PathologicalEntityMixin_tes> rdf:type . * ;
       rdf:type [ <PathologicalEntityMixin> ] ?
    )
}

<PathologicalProcess>  (
    CLOSED {
       (  $<PathologicalProcess_tes> (  &<BiologicalProcess_tes> ;
             rdf:type [ <BiologicalProcess> ] ? ;
             &<PathologicalEntityMixin_tes> ;
             rdf:type [ <PathologicalEntityMixin> ] ?
          ) ;
          rdf:type [ <PathologicalProcess> ]
       )
    } OR @<PathologicalProcessExposure> OR @<PathologicalProcessOutcome>
)

<PathologicalProcessExposure> CLOSED {
    (  $<PathologicalProcessExposure_tes> (  &<PathologicalProcess_tes> ;
          rdf:type [ <PathologicalProcess> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <PathologicalProcessExposure> ]
    )
}

<PathologicalProcessOutcome> CLOSED {
    (  $<PathologicalProcessOutcome_tes> (  &<PathologicalProcess_tes> ;
          rdf:type [ <PathologicalProcess> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <PathologicalProcessOutcome> ]
    )
}

<Pathway> CLOSED {
    (  $<Pathway_tes> (  &<BiologicalProcess_tes> ;
          rdf:type [ <BiologicalProcess> ] ? ;
          &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <Pathway> ]
    )
}

<Phenomenon> CLOSED {
    (  $<Phenomenon_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ? ;
          &<Occurrent_tes> ;
          rdf:type [ <Occurrent> ] ?
       ) ;
       rdf:type [ <Phenomenon> ]
    )
}

<PhenotypicFeature>  (
    CLOSED {
       (  $<PhenotypicFeature_tes> (  &<DiseaseOrPhenotypicFeature_tes> ;
             rdf:type [ <DiseaseOrPhenotypicFeature> ] ?
          ) ;
          rdf:type [ <PhenotypicFeature> ]
       )
    } OR @<BehavioralFeature> OR @<ClinicalFinding>
)

<PhenotypicQuality> CLOSED {
    (  $<PhenotypicQuality_tes> (  &<OrganismAttribute_tes> ;
          rdf:type [ <OrganismAttribute> ] ?
       ) ;
       rdf:type [ <PhenotypicQuality> ] ?
    )
}

<PhenotypicSex> CLOSED {
    (  $<PhenotypicSex_tes> (  &<BiologicalSex_tes> ;
          rdf:type [ <BiologicalSex> ] ?
       ) ;
       rdf:type [ <PhenotypicSex> ] ?
    )
}

<PhysicalEntity>  (
    CLOSED {
       (  $<PhysicalEntity_tes> (  &<NamedThing_tes> ;
             rdf:type [ <NamedThing> ] ? ;
             &<PhysicalEssence_tes> ;
             rdf:type [ <PhysicalEssence> ] ?
          ) ;
          rdf:type [ <PhysicalEntity> ]
       )
    } OR @<MaterialSample>
)

<PhysicalEssence> {
    (  $<PhysicalEssence_tes> (  &<PhysicalEssenceOrOccurrent_tes> ;
          rdf:type [ <PhysicalEssenceOrOccurrent> ] ?
       ) ;
       rdf:type [ <PhysicalEssence> ] ?
    )
}

<PhysicalEssenceOrOccurrent>  (
    @<Occurrent> OR @<PhysicalEssence>
)

<PhysicalEssenceOrOccurrent_struct> {
    (  $<PhysicalEssenceOrOccurrent_tes> rdf:type . * ;
       rdf:type [ <PhysicalEssenceOrOccurrent> ] ?
    )
}

<PhysiologicalProcess> CLOSED {
    (  $<PhysiologicalProcess_tes> (  &<BiologicalProcess_tes> ;
          rdf:type [ <BiologicalProcess> ] ? ;
          &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <PhysiologicalProcess> ]
    )
}

<PlanetaryEntity>  (
    CLOSED {
       (  $<PlanetaryEntity_tes> (  &<NamedThing_tes> ;
             rdf:type [ <NamedThing> ] ?
          ) ;
          rdf:type [ <PlanetaryEntity> ]
       )
    } OR @<EnvironmentalFeature> OR @<EnvironmentalProcess> OR @<GeographicLocation>
)

<PopulationOfIndividualOrganisms>  (
    CLOSED {
       (  $<PopulationOfIndividualOrganisms_tes> (  &<OrganismalEntity_tes> ;
             rdf:type [ <OrganismalEntity> ] ? ;
             &<ThingWithTaxon_tes> ;
             rdf:type [ <ThingWithTaxon> ] ? ;
             <in_taxon> @<OrganismTaxon> *
          ) ;
          rdf:type [ <PopulationOfIndividualOrganisms> ]
       )
    } OR @<StudyPopulation>
)

<PopulationToPopulationAssociation> CLOSED {
    (  $<PopulationToPopulationAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<PopulationOfIndividualOrganisms> ;
          rdf:object @<PopulationOfIndividualOrganisms> ;
          rdf:predicate @<PredicateType>
       ) ;
       rdf:type [ <PopulationToPopulationAssociation> ]
    )
}

<Procedure> CLOSED {
    (  $<Procedure_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ? ;
          &<ActivityAndBehavior_tes> ;
          rdf:type [ <ActivityAndBehavior> ] ?
       ) ;
       rdf:type [ <Procedure> ]
    )
}

<ProcessedMaterial> CLOSED {
    (  $<ProcessedMaterial_tes> (  &<ChemicalSubstance_tes> ;
          rdf:type [ <ChemicalSubstance> ] ? ;
          &<Mixture_tes> ;
          rdf:type [ <Mixture> ] ? ;
          &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ? ;
          <has_constituent> @<ChemicalSubstance> *
       ) ;
       rdf:type [ <ProcessedMaterial> ]
    )
}

<Protein>  (
    CLOSED {
       (  $<Protein_tes> (  &<GenomicEntity_tes> ;
             rdf:type [ <GenomicEntity> ] ? ;
             &<GeneProductMixin_tes> ;
             rdf:type [ <GeneProductMixin> ] ? ;
             <synonym> @<LabelType> * ;
             <xref> @<IriType> *
          ) ;
          rdf:type [ <Protein> ]
       )
    } OR @<ProteinIsoform>
)

<ProteinIsoform> CLOSED {
    (  $<ProteinIsoform_tes> (  &<Protein_tes> ;
          rdf:type [ <Protein> ] ? ;
          &<GeneProductIsoformMixin_tes> ;
          rdf:type [ <GeneProductIsoformMixin> ] ?
       ) ;
       rdf:type [ <ProteinIsoform> ]
    )
}

<Publication>  (
    CLOSED {
       (  $<Publication_tes> (  &<InformationContentEntity_tes> ;
             rdf:type [ <InformationContentEntity> ] ? ;
             <authors> @linkml:String * ;
             <pages> @linkml:String * ;
             <summary> @linkml:String ? ;
             <keywords> @linkml:String * ;
             <mesh_terms> @linkml:Uriorcurie * ;
             <xref> @<IriType> * ;
             rdfs:label @<LabelType> ? ;
             dcterms:type @linkml:String
          ) ;
          rdf:type [ <Publication> ]
       )
    } OR @<Article> OR @<Book> OR @<BookChapter> OR @<Serial>
)

<QuantityValue> CLOSED {
    (  $<QuantityValue_tes> (  &<Annotation_tes> ;
          rdf:type [ <Annotation> ] ? ;
          <has_unit> @<Unit> ? ;
          <has_numeric_value> @linkml:Double ?
       ) ;
       rdf:type [ <QuantityValue> ] ?
    )
}

<ReagentTargetedGene> CLOSED {
    (  $<ReagentTargetedGene_tes> (  &<GenomicEntity_tes> ;
          rdf:type [ <GenomicEntity> ] ?
       ) ;
       rdf:type [ <ReagentTargetedGene> ]
    )
}

<RelationshipQuantifier>  (
    @<FrequencyQuantifier> OR @<SensitivityQuantifier> OR @<SpecificityQuantifier>
)

<RelationshipQuantifier_struct> {
    (  $<RelationshipQuantifier_tes> rdf:type . * ;
       rdf:type [ <RelationshipQuantifier> ] ?
    )
}

<RelationshipType> CLOSED {
    (  $<RelationshipType_tes> (  &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <RelationshipType> ] ?
    )
}

<RNAProduct>  (
    CLOSED {
       (  $<RNAProduct_tes> (  &<Transcript_tes> ;
             rdf:type [ <Transcript> ] ? ;
             &<GeneProductMixin_tes> ;
             rdf:type [ <GeneProductMixin> ] ? ;
             <synonym> @<LabelType> * ;
             <xref> @<IriType> *
          ) ;
          rdf:type [ <RNAProduct> ]
       )
    } OR @<RNAProductIsoform> OR @<NoncodingRNAProduct>
)

<RNAProductIsoform> CLOSED {
    (  $<RNAProductIsoform_tes> (  &<RNAProduct_tes> ;
          rdf:type [ <RNAProduct> ] ? ;
          &<GeneProductIsoformMixin_tes> ;
          rdf:type [ <GeneProductIsoformMixin> ] ?
       ) ;
       rdf:type [ <RNAProductIsoform> ]
    )
}

<SensitivityQuantifier> {
    (  $<SensitivityQuantifier_tes> (  &<RelationshipQuantifier_tes> ;
          rdf:type [ <RelationshipQuantifier> ] ?
       ) ;
       rdf:type [ <SensitivityQuantifier> ] ?
    )
}

<SequenceAssociation>  (
    CLOSED {
       (  $<SequenceAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ?
          ) ;
          rdf:type [ <SequenceAssociation> ]
       )
    } OR @<GenomicSequenceLocalization>
)

<SequenceFeatureRelationship>  (
    CLOSED {
       (  $<SequenceFeatureRelationship_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             rdf:subject @<GenomicEntity> ;
             rdf:object @<GenomicEntity>
          ) ;
          rdf:type [ <SequenceFeatureRelationship> ]
       )
    } OR @<ExonToTranscriptRelationship> OR @<GeneToGeneProductRelationship> OR @<TranscriptToGeneRelationship>
)

<SequenceVariant>  (
    CLOSED {
       (  $<SequenceVariant_tes> (  &<GenomicEntity_tes> ;
             rdf:type [ <GenomicEntity> ] ? ;
             <has_gene> @<Gene> * ;
             <has_biological_sequence> @<BiologicalSequence> ?
          ) ;
          rdf:type [ <SequenceVariant> ]
       )
    } OR @<Snv>
)

<SequenceVariantModulatesTreatmentAssociation> {
    (  $<SequenceVariantModulatesTreatmentAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          rdf:subject @<SequenceVariant> ;
          rdf:object @<Treatment>
       ) ;
       rdf:type [ <SequenceVariantModulatesTreatmentAssociation> ]
    )
}

<Serial> CLOSED {
    (  $<Serial_tes> (  &<Publication_tes> ;
          rdf:type [ <Publication> ] ? ;
          <iso_abbreviation> @linkml:String ? ;
          <volume> @linkml:String ? ;
          <issue> @linkml:String ? ;
          rdf:type @linkml:String
       ) ;
       rdf:type [ <Serial> ]
    )
}

<SeverityValue> CLOSED {
    (  $<SeverityValue_tes> (  &<Attribute_tes> ;
          rdf:type [ <Attribute> ] ?
       ) ;
       rdf:type [ <SeverityValue> ] ?
    )
}

<SiRNA> CLOSED {
    (  $<SiRNA_tes> (  &<NoncodingRNAProduct_tes> ;
          rdf:type [ <NoncodingRNAProduct> ] ?
       ) ;
       rdf:type [ <SiRNA> ]
    )
}

<Snv> CLOSED {
    (  $<Snv_tes> (  &<SequenceVariant_tes> ;
          rdf:type [ <SequenceVariant> ] ?
       ) ;
       rdf:type [ <Snv> ]
    )
}

<SocioeconomicAttribute> CLOSED {
    (  $<SocioeconomicAttribute_tes> (  &<Attribute_tes> ;
          rdf:type [ <Attribute> ] ?
       ) ;
       rdf:type [ <SocioeconomicAttribute> ] ?
    )
}

<SocioeconomicExposure> CLOSED {
    (  $<SocioeconomicExposure_tes> (  &<Behavior_tes> ;
          rdf:type [ <Behavior> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          <has_attribute> @<SocioeconomicAttribute> + ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <SocioeconomicExposure> ]
    )
}

<SocioeconomicOutcome> CLOSED {
    (  $<SocioeconomicOutcome_tes> (  &<Behavior_tes> ;
          rdf:type [ <Behavior> ] ? ;
          &<Outcome_tes> ;
          rdf:type [ <Outcome> ] ?
       ) ;
       rdf:type [ <SocioeconomicOutcome> ]
    )
}

<SpecificityQuantifier>  (
    {
       (  $<SpecificityQuantifier_tes> (  &<RelationshipQuantifier_tes> ;
             rdf:type [ <RelationshipQuantifier> ] ?
          ) ;
          rdf:type [ <SpecificityQuantifier> ] ?
       )
    } OR @<PathognomonicityQuantifier>
)

<StudyPopulation>  (
    CLOSED {
       (  $<StudyPopulation_tes> (  &<PopulationOfIndividualOrganisms_tes> ;
             rdf:type [ <PopulationOfIndividualOrganisms> ] ?
          ) ;
          rdf:type [ <StudyPopulation> ]
       )
    } OR @<Cohort>
)

<SubjectOfInvestigation> {
    (  $<SubjectOfInvestigation_tes> rdf:type . * ;
       rdf:type [ <SubjectOfInvestigation> ] ?
    )
}

<TaxonomicRank> CLOSED {
    (  $<TaxonomicRank_tes> (  &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <TaxonomicRank> ] ?
    )
}

<ThingWithTaxon> {
    (  $<ThingWithTaxon_tes> <in_taxon> @<OrganismTaxon> * ;
       rdf:type [ <ThingWithTaxon> ] ?
    )
}

<Transcript>  (
    CLOSED {
       (  $<Transcript_tes> (  &<GenomicEntity_tes> ;
             rdf:type [ <GenomicEntity> ] ?
          ) ;
          rdf:type [ <Transcript> ]
       )
    } OR @<RNAProduct>
)

<TranscriptToGeneRelationship> CLOSED {
    (  $<TranscriptToGeneRelationship_tes> (  &<SequenceFeatureRelationship_tes> ;
          rdf:type [ <SequenceFeatureRelationship> ] ? ;
          rdf:subject @<Transcript> ;
          rdf:object @<Gene>
       ) ;
       rdf:type [ <TranscriptToGeneRelationship> ]
    )
}

<Treatment> CLOSED {
    (  $<Treatment_tes> (  &<NamedThing_tes> ;
          rdf:type [ <NamedThing> ] ? ;
          &<ExposureEvent_tes> ;
          rdf:type [ <ExposureEvent> ] ? ;
          &<ChemicalOrDrugOrTreatment_tes> ;
          rdf:type [ <ChemicalOrDrugOrTreatment> ] ? ;
          <has_drug> @<Drug> * ;
          <has_device> @<Device> * ;
          <has_procedure> @<Procedure> * ;
          <timepoint> @<TimeType> ?
       ) ;
       rdf:type [ <Treatment> ]
    )
}

<UnclassifiedOntologyClass> {
    (  $<UnclassifiedOntologyClass_tes> (  &<OntologyClass_tes> ;
          rdf:type [ <OntologyClass> ] ?
       ) ;
       rdf:type [ <UnclassifiedOntologyClass> ] ?
    )
}

<VariantAsAModelOfDiseaseAssociation> CLOSED {
    (  $<VariantAsAModelOfDiseaseAssociation_tes> (  &<VariantToDiseaseAssociation_tes> ;
          rdf:type [ <VariantToDiseaseAssociation> ] ? ;
          &<ModelToDiseaseAssociationMixin_tes> ;
          rdf:type [ <ModelToDiseaseAssociationMixin> ] ? ;
          &<EntityToDiseaseAssociationMixin_tes> ;
          rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
          rdf:subject @<SequenceVariant>
       ) ;
       rdf:type [ <VariantAsAModelOfDiseaseAssociation> ]
    )
}

<VariantToDiseaseAssociation>  (
    CLOSED {
       (  $<VariantToDiseaseAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<VariantToEntityAssociationMixin_tes> ;
             rdf:type [ <VariantToEntityAssociationMixin> ] ? ;
             &<EntityToDiseaseAssociationMixin_tes> ;
             rdf:type [ <EntityToDiseaseAssociationMixin> ] ? ;
             rdf:subject @<NamedThing> ;
             rdf:predicate @<PredicateType> ;
             rdf:object @<NamedThing> ;
             <frequency_qualifier> @<FrequencyValue> ? ;
             <severity_qualifier> @<SeverityValue> ? ;
             <onset_qualifier> @<Onset> ?
          ) ;
          rdf:type [ <VariantToDiseaseAssociation> ]
       )
    } OR @<VariantAsAModelOfDiseaseAssociation>
)

<VariantToEntityAssociationMixin> {
    (  $<VariantToEntityAssociationMixin_tes> rdf:subject @<SequenceVariant> ;
       rdf:type [ <VariantToEntityAssociationMixin> ] ?
    )
}

<VariantToGeneAssociation>  (
    CLOSED {
       (  $<VariantToGeneAssociation_tes> (  &<Association_tes> ;
             rdf:type [ <Association> ] ? ;
             &<VariantToEntityAssociationMixin_tes> ;
             rdf:type [ <VariantToEntityAssociationMixin> ] ? ;
             rdf:object @<Gene> ;
             rdf:predicate @<PredicateType>
          ) ;
          rdf:type [ <VariantToGeneAssociation> ]
       )
    } OR @<VariantToGeneExpressionAssociation>
)

<VariantToGeneExpressionAssociation> CLOSED {
    (  $<VariantToGeneExpressionAssociation_tes> (  &<VariantToGeneAssociation_tes> ;
          rdf:type [ <VariantToGeneAssociation> ] ? ;
          &<GeneExpressionMixin_tes> ;
          rdf:type [ <GeneExpressionMixin> ] ? ;
          rdf:predicate @<PredicateType> ;
          <quantifier_qualifier> @<OntologyClass> ? ;
          <expression_site> @<AnatomicalEntity> ? ;
          <stage_qualifier> @<LifeStage> ? ;
          <phenotypic_state> @<DiseaseOrPhenotypicFeature> ?
       ) ;
       rdf:type [ <VariantToGeneExpressionAssociation> ]
    )
}

<VariantToPhenotypicFeatureAssociation> CLOSED {
    (  $<VariantToPhenotypicFeatureAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<VariantToEntityAssociationMixin_tes> ;
          rdf:type [ <VariantToEntityAssociationMixin> ] ? ;
          &<EntityToPhenotypicFeatureAssociationMixin_tes> ;
          rdf:type [ <EntityToPhenotypicFeatureAssociationMixin> ] ? ;
          rdf:subject @<SequenceVariant> ;
          <frequency_qualifier> @<FrequencyValue> ? ;
          <severity_qualifier> @<SeverityValue> ? ;
          <onset_qualifier> @<Onset> ? ;
          <sex_qualifier> @<BiologicalSex> ?
       ) ;
       rdf:type [ <VariantToPhenotypicFeatureAssociation> ]
    )
}

<VariantToPopulationAssociation> CLOSED {
    (  $<VariantToPopulationAssociation_tes> (  &<Association_tes> ;
          rdf:type [ <Association> ] ? ;
          &<VariantToEntityAssociationMixin_tes> ;
          rdf:type [ <VariantToEntityAssociationMixin> ] ? ;
          &<FrequencyQuantifier_tes> ;
          rdf:type [ <FrequencyQuantifier> ] ? ;
          &<FrequencyQualifierMixin_tes> ;
          rdf:type [ <FrequencyQualifierMixin> ] ? ;
          rdf:subject @<SequenceVariant> ;
          rdf:object @<PopulationOfIndividualOrganisms> ;
          <has_quotient> @linkml:Double ? ;
          <has_count> @linkml:Integer ? ;
          <has_total> @linkml:Integer ? ;
          <has_percentage> @linkml:Double ? ;
          <frequency_qualifier> @<FrequencyValue> ?
       ) ;
       rdf:type [ <VariantToPopulationAssociation> ]
    )
}

<Vitamin> CLOSED {
    (  $<Vitamin_tes> (  &<Micronutrient_tes> ;
          rdf:type [ <Micronutrient> ] ?
       ) ;
       rdf:type [ <Vitamin> ]
    )
}

<Zygosity> CLOSED {
    (  $<Zygosity_tes> (  &<Attribute_tes> ;
          rdf:type [ <Attribute> ] ?
       ) ;
       rdf:type [ <Zygosity> ] ?
    )
}


