id: https://w3id.org/biolink/biolink-model
name: Biolink-Model
description: Entity and association taxonomy and datamodel for life-sciences data
license: https://creativecommons.org/publicdomain/zero/1.0/

# Version should be kept in sync with primary Git repository release tag

version: 2.2.0

## ------------
## PREFIXES
## ------------

#
# CURIE namespaces (prefixes/base URI's) mappings of prefixes used in the body of the Biolink Model specification
# are resolved using a specific precedence order, for use in the generation of the Biolink Model context.jsonld
# mappings to namespaces. Any prefixes encountered in the Biolink Model but not resolved by the following
# precedence sources, are anonymously declared by linkml as http://example.org/UNKNOWN/ rooted base URI's
# which should ideally be repaired in one of the precedence lists.
#
# 1. The following 'prefixes:' delimited list has first precedence in resolution.
#
prefixes:
  Aeolus: 'http://translator.ncats.nih.gov/Aeolus_'
  alliancegenome: 'https://www.alliancegenome.org/'
  apollo: 'https://github.com/GMOD/Apollo'
  biolink: 'https://w3id.org/biolink/vocab/'
  linkml: 'https://w3id.org/linkml/'
  CAID: 'http://reg.clinicalgenome.org/redmine/projects/registry/genboree_registry/by_caid?caid='
  # Placeholder: just points to GMOD Chado wiki
  CHADO: 'http://gmod.org/wiki/Chado/'
  # Placeholders: not sure how 'chembio'and CHEMBL.MECHANISM really resolve
  ChemBank: 'http://chembank.broadinstitute.org/chemistry/viewMolecule.htm?cbid='
  chembio: 'http://translator.ncats.nih.gov/chembio_'
  CHEMBL.MECHANISM: 'https://www.ebi.ac.uk/chembl/mechanism/inspect/'
  CID: 'http://pubchem.ncbi.nlm.nih.gov/compound/'
  COAR_RESOURCE: 'http://purl.org/coar/resource_type/'
  CPT: 'https://www.ama-assn.org/practice-management/cpt/'
  CTD: 'http://translator.ncats.nih.gov/CTD_'
  DGIdb: 'https://www.dgidb.org/interaction_types'
  dcat: 'http://www.w3.org/ns/dcat#'
  dct: 'http://purl.org/dc/terms/'
  doi: 'https://doi.org/'
  DrugCentral: 'http://translator.ncats.nih.gov/DrugCentral_'
  ECTO: 'http://purl.obolibrary.org/obo/ECTO_'
  EDAM-DATA: 'http://edamontology.org/data_'
  EDAM-FORMAT: 'http://edamontology.org/format_'
  EDAM-OPERATION: 'http://edamontology.org/operation_'
  EDAM-TOPIC: 'http://edamontology.org/topic_'
  EFO: 'http://www.ebi.ac.uk/efo/EFO_'
  ExO: 'http://purl.obolibrary.org/obo/ExO_'
  fabio: 'http://purl.org/spar/fabio/'
  foaf: 'http://xmlns.com/foaf/0.1/'
  foodb.compound: 'http://foodb.ca/compounds/'
  GAMMA: 'http://translator.renci.org/GAMMA_'
  gff3: 'https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md#'
  GOREL: 'http://purl.obolibrary.org/obo/GOREL_'
  # GOP: Gene Ontology Property (not really a GO term but an associated metadatum)
  GOP: 'http://purl.obolibrary.org/obo/go#'
  gpi: 'https://github.com/geneontology/go-annotation/blob/master/specs/gpad-gpi-2-0.md#'
  GSID: 'https://scholar.google.com/citations?user='
  GTEx: 'https://www.gtexportal.org/home/gene/'
  GTOPDB: 'https://www.guidetopharmacology.org/GRAC/LigandDisplayForward?ligandId='
  gtpo: 'https://rdf.guidetopharmacology.org/ns/gtpo#'
  HANCESTRO: 'http://www.ebi.ac.uk/ancestro/ancestro_'
  HCPCS: 'http://purl.bioontology.org/ontology/HCPCS/'
  hetio: 'http://translator.ncats.nih.gov/hetio_'
  HsapDv: 'http://purl.obolibrary.org/obo/HsapDv_'
  ICD0: 'http://translator.ncats.nih.gov/ICD0_'
  ICD10: 'http://translator.ncats.nih.gov/ICD10_'
  ICD9: 'http://translator.ncats.nih.gov/ICD9_'
  interpro: 'https://www.ebi.ac.uk/interpro/entry/'
  INO: 'http://purl.obolibrary.org/obo/INO_'
  isbn: 'https://www.isbn-international.org/identifier/' # note: a resolvable base URI not available from isbn-international
  isni: 'https://isni.org/isni/'
  issn: 'https://portal.issn.org/resource/ISSN/'
  KEGG.BRITE: 'http://www.kegg.jp/entry/'
  KEGG.DGROUP: 'http://www.kegg.jp/entry/'
  KEGG.ENZYME: 'http://www.kegg.jp/entry/'
  KEGG.GENE: 'http://www.kegg.jp/entry/'
  KEGG.RCLASS: 'http://www.kegg.jp/entry/'
  LOINC: 'http://loinc.org/rdf/'
  medgen: 'https://www.ncbi.nlm.nih.gov/medgen/'
  MetaCyc: 'http://translator.ncats.nih.gov/MetaCyc_'
  MI: 'http://purl.obolibrary.org/obo/MI_'
  MSigDB: 'https://www.gsea-msigdb.org/gsea/msigdb/'
  NCBIGene: 'http://identifiers.org/ncbigene/'
  NDDF: 'http://purl.bioontology.org/ontology/NDDF/'
  NLMID: 'https://www.ncbi.nlm.nih.gov/nlmcatalog/?term='
  OBAN: 'http://purl.org/oban/'
  oboformat: 'http://www.geneontology.org/formats/oboInOWL#'
  OBOREL: 'http://purl.obolibrary.org/obo/RO_'
  ORCID: 'https://orcid.org/'
  ORPHA: 'http://www.orpha.net/ORDO/Orphanet_'
  os: 'https://github.com/cmungall/owlstar/blob/master/owlstar.ttl'
  PathWhiz: 'http://smpdb.ca/pathways/#'  # See also https://smpdb.ca/pathwhiz/
  PATO-PROPERTY: 'http://purl.obolibrary.org/obo/pato#'  # Phenotypic Quality Ontology properties, not core terms
  pav: 'http://purl.org/pav/'
  PDQ: 'https://www.cancer.gov/publications/pdq#'   # Physician Data Query
  PHAROS: 'http://pharos.nih.gov'
  prov: 'http://www.w3.org/ns/prov#'
  qud: 'http://qudt.org/1.1/schema/qudt#'
  REPODB: 'http://apps.chiragjpgroup.org/repoDB/'
  ResearchID: 'https://publons.com/researcher/'
  RO: 'http://purl.obolibrary.org/obo/RO_'
  RTXKG1: 'http://kg1endpoint.rtx.ai/'
  RXNORM: 'http://purl.bioontology.org/ontology/RXNORM/'
  RXCUI: 'https://mor.nlm.nih.gov/RxNav/search?searchBy=RXCUI&searchTerm='
  schema: 'http://schema.org/'
  ScopusID: 'https://www.scopus.com/authid/detail.uri?authorId='
  SEMMEDDB: 'https://skr3.nlm.nih.gov/SemMedDB'
  SIO: 'http://semanticscience.org/resource/SIO_'
  SNPEFF: 'http://translator.ncats.nih.gov/SNPEFF_'
  UBERGRAPH: 'http://translator.renci.org/ubergraph-axioms.ofn#'
  UBERON_CORE: 'http://purl.obolibrary.org/obo/uberon/core#'
  # The UMLS Semantic types and groups namespaces don't have a directly
  # resolvable Base URI, but we point to a pair of sensible web documents
  UMLSSC: 'https://metamap.nlm.nih.gov/Docs/SemanticTypes_2018AB.txt/code#'
  UMLSSG: 'https://metamap.nlm.nih.gov/Docs/SemGroups_2018.txt/group#'
  UMLSST: 'https://metamap.nlm.nih.gov/Docs/SemanticTypes_2018AB.txt/type#'
  VANDF: 'https://www.nlm.nih.gov/research/umls/sourcereleasedocs/current/VANDF/'
  # The "Variation Modelling Collaboration" (VMC) is not (yet) a conventional namespace so we point to its Github repo
  # See also: https://www.ga4gh.org/work_stream/genomic-knowledge-standards/#existing-standards and
  # https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7153148/
  VMC: 'https://github.com/ga4gh/vr-spec/'
  WBVocab: 'http://bio2rdf.org/wormbase_vocabulary'
  WIKIDATA: 'https://www.wikidata.org/wiki/'            # Wikidata Entity
  WIKIDATA_PROPERTY: 'https://www.wikidata.org/wiki/Property:'  # Wikidata Property - not a conventional namespace prefix
  wgs: 'http://www.w3.org/2003/01/geo/wgs84_pos'
  XPO: 'http://purl.obolibrary.org/obo/XPO_'  # Xenopus Phenotype Ontology

default_prefix: biolink
default_range: string

# 2. The following prefix maps are retrieved from the
#    specified contexts defined at https://prefixcommons.org/
default_curi_maps:
  - obo_context
  - idot_context
  - monarch_context
  - semweb_context

# The following 'standard' prefixes are also used.
emit_prefixes:
  - rdf
  - rdfs
  - xsd
  - skos
  - OIO
  - BIOGRID

## ------------
## SUBSETS
## ------------
enums:
  logical_interpretation_enum:
    permissible_values:
      SomeSome:
        description: >-
          A modifier on a triple that causes the triple to be interpreted as a some-some statement
        meaning: os:SomeSomeInterpretation
      AllSome:
        description: >-
          A modifier on a triple that causes the triple to be interpreted as an all-some statement.
        meaning: os:AllSomeInterpretation
      InverseAllSome:

  reaction_direction_enum:
    permissible_values:
      left_to_right:
      right_to_left:
      bidirectional:
      neutral:

  reaction_side_enum:
    permissible_values:
      left:
      right:

  phase_enum:
    description: phase
    permissible_values:
      0:
      1:
      2:

  strand_enum:
    description: strand
    permissible_values:
      "+":
        description: Positive
      "-":
        description: Negative
      ".":
        description: Unstranded
      "?":
        description: Unknown

  sequence_enum:
    description: type of sequence
    permissible_values:
      "NA":
        description: nucleic acid
      "AA":
        description: amino acid

  drug_availability_enum:
    description: >-
    permissible_values:
      "over the counter":
        description: >-
          chemical entity is available over the counter without a prescription.
      "prescription":
        description:
          chemical entity is available by prescription.

  FDA_approval_status_enum:
    description: >-
    permissible_values:
      "Discovery & Development Phase":
        description: >-
          Discovery & Development Phase. Discovery involves researchers finding new possibilities
          for medication through testing molecular compounds, noting unexpected effects from existing treatments,
          or the creation of new technology that allows novel ways of targeting medical products to sites in the body.
          Drug development occurs after researchers identify potential compounds for experiments.
      "Preclinical Research Phase":
        description: >-
          Preclinical Research Phase.  Once researchers have examined the possibilities a new drug may contain,
          they must do preliminary research to determine its potential for harm (toxicity).
          This is categorized as preclinical research and can be one of two types: in vitro or in vivo.
      "FDA Clinical Research Phase":
        description: >-
          Clinical Research Phase. Clinical research involves trials of the drug on people,
          and it is one of the most involved stages in the drug development and approval process.
          Clinical trials must answer specific questions and follow a protocol determined by
          the drug researcher or manufacturer.
      "FDA Review Phase 4":
        description: >-
          FDA Review
      "FDA Post-Market Safety Monitoring":
        description: >-
          FDA Post-Market Safety Monitoring.  The last phase of drug approval is an ongoing one
          while the drug is on the marketplace. If a developer wants to change anything about the
          drug formulation or approve it for a new use, they must apply with the FDA. The FDA also
          frequently reviews the drug’s advertising and its manufacturing facility to make sure
          everything involved in its creation and marketing is in compliance with regulations.
      "FDA Clinical Research Phase 1":
        description: >-
          In the FDA Clinical Research Phase, the Clinical Research Phase 1 involves 20 – 100 study participants and
          lasts several months. This phase is used to determine the safety and dosage of the drug,
          and about 70% of these drugs move on to the next clinical research phase.
      "FDA Clinical Research Phase 2":
        description: >-
          In the FDA Clinical Research Phase, the Clinical Research Phase 2 involves up to several hundred people,
          who must have the disease or condition the drug supposes to treat. This phase can last
          from a few months to two years, and its purpose is to monitor the efficacy of the drug,
          as well as note side effects that may occur.
      "FDA Clinical Research Phase 3":
        description: >-
          In the FDA Clinical Research Phase, the Clinical Research Phase 3 involves 300 – 3000 volunteers
          and can last up to four years. It is used to continue monitoring the efficacy of
          the drug, as well as exploring any longer-term adverse reactions.
      "FDA Clinical Research Phase 4":
        description: >-
          In the FDA Clinical Research Phase, the Clinical Research Phase 4 involves several thousands of
          volunteers who have the disease or condition and continues to monitor safety and efficacy.
          If a drug passes this phase, it goes on to FDA review.
      "FDA Fast Track":
        description: >-
          Fast track is a process designed to facilitate the development, and expedite the
          review of drugs to treat serious conditions and fill an unmet medical need.
          The purpose is to get important new drugs to the patient earlier. Fast Track
          addresses a broad range of serious conditions. For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/fast-track
      "FDA Breakthrough Therapy":
        description: >-
          Breakthrough Therapy designation is a process designed to expedite the
          development and review of drugs that are intended to treat a serious
          condition and preliminary clinical evidence indicates that the drug may
          demonstrate substantial improvement over available therapy on a clinically significant endpoint(s).
          For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/breakthrough-therapy
      "FDA Accelerated Approval":
        description: >-
          When studying a new drug, it can sometimes take many years to learn whether a drug actually
          provides a real effect on how a patient survives, feels, or functions. A positive therapeutic
          effect that is clinically meaningful in the context of a given disease is known as “clinical benefit”.
          Mindful of the fact that it may take an extended period of time to measure a drug’s intended clinical
          benefit, in 1992 FDA instituted the Accelerated Approval regulations. These regulations allowed drugs
          for serious conditions that filled an unmet medical need to be approved based on a surrogate endpoint.
          Using a surrogate endpoint enabled the FDA to approve these drugs faster.
          For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/accelerated-approval
      "FDA Priority Review":
        description: >-
          Prior to approval, each drug marketed in the United States must go through a detailed FDA review process.
          In 1992, under the Prescription Drug User Act (PDUFA), FDA agreed to specific goals for improving
          the drug review time and created a two-tiered system of review times – Standard Review and Priority
          Review. A Priority Review designation means FDA’s goal is to take action on an application
          within 6 months (compared to 10 months under standard review).
          For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/priority-review
      "regular approval":
      "post-approval withdrawal":
        
subsets:

  model_organism_database:
    description: >-
      Subset that is relevant for a typical Model Organism Database (MOD)

  translator_minimal:
    description: >-
      Minimum subset of translator work

  samples:
    description: >-
      Sample/biosample datamodel

  testing:
    description: >-
      TBD


## ------------
## TYPES
## ------------

imports:
  - linkml:types

types:

  chemical formula value:
    uri: xsd:string
    base: str
    description: A chemical formula
    notes:
      - Should be implemented as a stronger type

  category type:
    typeof: uriorcurie
    description: >-
      A primitive type in which the value denotes a class within the biolink model.
      The value must be a URI or a CURIE. In a Neo4j representation, the value should
      be the CURIE for the biolink class, for example biolink:Gene. For an RDF representation,
      the value should be a URI such as https://w3id.org/biolink/vocab/Gene

  iri type:
    typeof: uriorcurie
    description: >-
      An IRI

  label type:
    typeof: string
    description: >-
      A string that provides a human-readable name for an entity

  predicate type:
    typeof: uriorcurie
    description: >-
      A CURIE from the biolink related_to hierarchy.
      For example, biolink:related_to, biolink:causes, biolink:treats.

  narrative text:
    typeof: string
    description: >-
      A string that provides a human-readable description of something

  symbol type:
    typeof: string

  frequency value:
    typeof: string
    uri: UO:0000105

  percentage frequency value:
    typeof: double
    uri: UO:0000187

  quotient:
    aliases: ['ratio']
    typeof: double
    uri: UO:0010006

  unit:
    typeof: string
    uri: UO:0000000
    id_prefixes:
      - UO
    exact_mappings:
      - qud:Unit

  time type:
    typeof: time

  biological sequence:
    typeof: string

## ------------
## SLOTS
## ------------

slots:

## ---------------
## ATTRIBUTE SLOTS
## ---------------

  has attribute:
    description: >-
      connects any entity to an attribute
    domain: entity
    range: attribute
    multivalued: true
    in_subset:
      - samples
    close_mappings:
      # RTX term meaning 'specifies value of' tagged as inverse of 'biolink:has attribute'
      - OBI:0001927
    exact_mappings:
      - SIO:000008
    narrow_mappings:
      # if 'has attribute' annotates a NamedThing as subject or
      # object of an association, these OBAN mappings may apply
      - OBAN:association_has_subject_property
      - OBAN:association_has_object_property
      - CPT:has_possibly_included_panel_element
      - DRUGBANK:category
      # RTX contributed terms. Could perhaps review for more semantically precise mappings?
      - EFO:is_executed_in
      - HANCESTRO:0301
      - LOINC:has_action_guidance
      - LOINC:has_adjustment
      - LOINC:has_aggregation_view
      - LOINC:has_approach_guidance
      - LOINC:has_divisor
      - LOINC:has_exam
      - LOINC:has_method
      - LOINC:has_modality_subtype
      - LOINC:has_object_guidance
      - LOINC:has_scale
      - LOINC:has_suffix
      - LOINC:has_time_aspect
      - LOINC:has_time_modifier
      - LOINC:has_timing_of
      - NCIT:disease_is_grade
      - NCIT:disease_is_stage
      - NCIT:eo_disease_has_property_or_attribute
      - NCIT:has_data_element
      - NCIT:has_pharmaceutical_administration_method
      - NCIT:has_pharmaceutical_basic_dose_form
      - NCIT:has_pharmaceutical_intended_site
      - NCIT:has_pharmaceutical_release_characteristics
      - NCIT:has_pharmaceutical_state_of_matter
      - NCIT:has_pharmaceutical_transformation
      - NCIT:is_qualified_by
      - NCIT:qualifier_applies_to
      - NCIT:role_has_domain
      - NCIT:role_has_range
      - INO:0000154
      - HANCESTRO:0308
      - OMIM:has_inheritance_type
      - ORPHA:C016
      - ORPHA:C017
      - RO:0000053
      # RTX tagged a few RO terms as 'biolink:related_to' but semantics suggest a better mapping here
      - RO:0000086
      - RO:0000087
      - SNOMED:has_access
      - SNOMED:has_clinical_course
      - SNOMED:has_count_of_base_of_active_ingredient
      - SNOMED:has_dose_form_administration_method
      - SNOMED:has_dose_form_release_characteristic
      - SNOMED:has_dose_form_transformation
      - SNOMED:has_finding_context
      - SNOMED:has_finding_informer
      - SNOMED:has_inherent_attribute
      - SNOMED:has_intent
      - SNOMED:has_interpretation
      - SNOMED:has_laterality
      - SNOMED:has_measurement_method
      - SNOMED:has_method
      - SNOMED:has_priority
      - SNOMED:has_procedure_context
      - SNOMED:has_process_duration
      - SNOMED:has_property
      - SNOMED:has_revision_status
      - SNOMED:has_scale_type
      - SNOMED:has_severity
      - SNOMED:has_specimen
      - SNOMED:has_state_of_matter
      - SNOMED:has_subject_relationship_context
      - SNOMED:has_surgical_approach
      - SNOMED:has_technique
      - SNOMED:has_temporal_context
      - SNOMED:has_time_aspect
      - SNOMED:has_units
      - UMLS:has_structural_class
      - UMLS:has_supported_concept_property
      - UMLS:has_supported_concept_relationship
      - UMLS:may_be_qualified_by

  has attribute type:
    description: >-
      connects an attribute to a class that describes it
    domain: attribute
    range: ontology class
    multivalued: false
    required: true
    in_subset:
      - samples
    narrow_mappings:
      - LOINC:has_modality_type
      - LOINC:has_view_type

  # TRAPI Attribute schema alignment:
  # value: NamedThing.name
  # value_type: NamedThing.category
  # value_type_name: quantity_value.NamedThing.name
  has qualitative value:
    description: >-
      connects an attribute to a value
    domain: attribute
    range: named thing
    multivalued: false
    in_subset:
      - samples

  # TRAPI Attribute schema alignment:
  # value: quantity_value.has_numeric_value[double] - may be a vector?
  # value_type: quantity_value.has_unit.unit.uri
  # value_type_name: quantity_value.has_unit.unit.name[string]
  has quantitative value:
    description: >-
      connects an attribute to a value
    domain: attribute
    range: quantity value
    multivalued: true
    exact_mappings:
      - qud:quantityValue
    narrow_mappings:
      - SNOMED:has_concentration_strength_numerator_value
      - SNOMED:has_presentation_strength_denominator_value
      - SNOMED:has_presentation_strength_numerator_value
    in_subset:
      - samples

  has numeric value:
    description: >-
      connects a quantity value to a number
    domain: quantity value
    range: double
    multivalued: false
    exact_mappings:
      - qud:quantityValue
    in_subset:
      - samples

  has unit:
    description: >-
      connects a quantity value to a unit
    domain: quantity value
    range: unit
    multivalued: false
    close_mappings:
      # These RTX contributed terms mean "is unit of" which is the semantic inverse of this biolink:has_unit term
      - EFO:0001697
      - OBO:uo#is_unit_of
    exact_mappings:
      - qud:unit
      - IAO:0000039
    narrow_mappings:
      - SNOMED:has_concentration_strength_denominator_unit
      - SNOMED:has_concentration_strength_numerator_unit
      - SNOMED:has_presentation_strength_denominator_unit
      - SNOMED:has_presentation_strength_numerator_unit
      - SNOMED:has_unit_of_presentation
    in_subset:
      - samples

  base coordinate:
    is_a: sequence localization attribute
    aliases: [ 'one-based', 'fully-closed' ]
    description: >-
      A position in the base coordinate system.  Base coordinates start at position 1 instead of position 0.
    range: integer

## --------------------
## NODE PROPERTY SLOTS
## --------------------

  node property:
    description: >-
      A grouping for any property that holds between a node and a value
    domain: named thing

  id:
    identifier: true
    description: >-
      A unique identifier for an entity.
      Must be either a CURIE shorthand for a URI or a complete URI
    in_subset:
      - translator_minimal
    required: true
    exact_mappings:
      - alliancegenome:primaryId
      - gff3:ID
      - gpi:DB_Object_ID

  iri:
    description: >-
      An IRI for an entity. This is determined by the id using expansion rules.
    range: iri type
    in_subset:
      - translator_minimal
      - samples
    exact_mappings:
      - WIKIDATA_PROPERTY:P854

  type:
    slot_uri: rdf:type
    exact_mappings:
      - alliancegenome:soTermId
      - gff3:type
      - gpi:DB_Object_Type

  category:
    is_a: type
    domain: entity
    range: category type
    description: >-
      Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class.
       * In a neo4j database this MAY correspond to the neo4j label tag.
       * In an RDF database it should be a biolink model class URI.
      This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have
      category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ...

      In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class
      more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site,
      which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}
    is_class_field: true
    multivalued: true
    in_subset:
      - translator_minimal

  name:
    aliases: [ 'label', 'display name', 'title' ]
    description: >-
      A human-readable name for an attribute or entity.
    range: label type
    in_subset:
      - translator_minimal
      - samples
    #
    # linkML doesn't like this name slot to be "required: true".
    # Besides, some entity nodes/attributes may not have names?
    # required: true
    slot_uri: rdfs:label
    exact_mappings:
      - gff3:Name
      - gpi:DB_Object_Name
    narrow_mappings:
      - dct:title
      - WIKIDATA_PROPERTY:P1476

  source:
    description: >-
      a lightweight analog to the association class 'has provider' slot, which is the string name, or
      the authoritative (i.e. database) namespace, designating the origin of the entity to which the slot belongs.
    range: label type
    in_subset:
      - translator_minimal

  filler:
    is_a: node property
    range: named thing
    description: >-
      The value in a property-value tuple

  stoichiometry:
    description: >-
      the relationship between the relative quantities of substances taking part in a reaction or
      forming a compound, typically a ratio of whole integers.
    is_a: association slot
    range: integer

  reaction direction:
    description: >-
      the direction of a reaction as constrained by the direction_enum (ie: left_to_right, neutral, etc.)
    is_a: association slot
    range: reaction_direction_enum
    narrow_mappings:
      - NCIT:C42677

  reaction balanced:
    is_a: association slot
    range: boolean

  reaction side:
    description: >-
      the side of a reaction being modeled (ie: left or right)
    is_a: association slot
    range: reaction_side_enum

  symbol:
    is_a: node property
    domain: named thing
    description: >-
      Symbol for a particular thing
    exact_mappings:
      - alliancegenome:symbol
      - gpi:DB_Object_Symbol

  synonym:
    is_a: node property
    aliases: ['alias']
    domain: named thing
    range: label type
    description: >-
      Alternate human-readable names for a thing
    multivalued: true
    in_subset:
      - translator_minimal
    narrow_mappings:
      # there is an interesting debate here: are these terms "narrower" a.k.a. more specialized instances of
      # 'biolink:synonym' or should they be binned into their respective namesake class of mappings?
      # namely, is 'oboInOwl:hasExactSynonym' an instance 'exact_mappings', etc.
      - skos:altLabel
      - gff3:Alias
      - alliancegenome:synonyms
      - gpi:DB_Object_Synonyms
      - oboInOwl:hasExactSynonym
      - oboInOwl:hasNarrowSynonym
      - oboInOwl:hasBroadSynonym
      - oboInOwl:hasRelatedSynonym
      # TODO: RTX contributed terms mapped here... May need review?
      - HANCESTRO:0330
      - IAO:0000136
      - RXNORM:has_tradename

  has topic:
    aliases: ['topic', 'descriptors']
    is_a: node property
    range: ontology class
    exact_mappings:
      - foaf:topic
    description: >-
      Connects a node to a vocabulary term or ontology class that describes some aspect of the entity. In general specific characterization is preferred.
      See https://github.com/biolink/biolink-model/issues/238

  xref:
    is_a: node property
    aliases: ['dbxref', 'Dbxref', 'DbXref']
    domain: named thing
    range: iri type
    description: >-
      Alternate CURIEs for a thing
    multivalued: true
    in_subset:
      - translator_minimal
    narrow_mappings:
      - gff3:Dbxref
      - gpi:DB_Xrefs

  full name:
    is_a: node property
    domain: named thing
    range: label type
    description: >-
      a long-form human readable name for a thing

  description:
    aliases: ['definition']
    range: narrative text
    description: >-
      a human-readable description of an entity
    in_subset:
      - translator_minimal
    slot_uri: dct:description
    exact_mappings:
      - IAO:0000115
      - skos:definitions
    narrow_mappings:
      - gff3:Description

  systematic synonym:
    is_a: node property
    domain: named thing
    range: label type
    multivalued: true
    slot_uri: GOP:systematic_synonym
    description: >-
      more commonly used for gene symbols in yeast

  affiliation:
    is_a: node property
    description: >-
      a professional relationship between one provider (often a person) within another provider (often an organization).
      Target provider identity should be specified by a CURIE. Providers may have multiple affiliations.
    domain: agent
    range: uriorcurie
    multivalued: true

  address:
    is_a: node property
    description: >-
      the particulars of the place where someone or an organization is situated.  For now, this slot is a
      simple text "blob" containing all relevant details of the given location for fitness of purpose.
      For the moment, this "address" can include other contact details such as email and phone number(?).

  ## Space

  latitude:
    is_a: node property
    range: float
    description: >-
      latitude
    exact_mappings:
      - wgs:lat

  longitude:
    is_a: node property
    range: float
    description: >-
      longitude
    exact_mappings:
      - wgs:long

  ## Time

  timepoint:
    is_a: node property
    range: time type
    description: >-
      a point in time

  creation date:
    is_a: node property
    aliases: ['publication date']
    range: date
    description: >-
      date on which an entity was created. This can be applied to nodes or edges
    exact_mappings:
      - dct:createdOn
      - WIKIDATA_PROPERTY:P577

  update date:
    is_a: node property
    range: date
    description: >-
      date on which an entity was updated. This can be applied to nodes or edges

  ## Statistics

  aggregate statistic:
    is_a: node property
    abstract: true

  has count:
    description: >-
      number of things with a particular property
    is_a: aggregate statistic
    range: integer
    exact_mappings:
      - LOINC:has_count

  has total:
    description: >-
      total number of things in a particular reference set
    is_a: aggregate statistic
    range: integer

  has quotient:
    is_a: aggregate statistic
    range: double

  has percentage:
    description: >-
      equivalent to has quotient multiplied by 100
    is_a: aggregate statistic
    range: double

  ## Properties for Information Content Entity and Publication Nodes

  has dataset:
    is_a: node property
    domain: dataset version
    range: dataset
    slot_uri: dct:source

  source web page:
    is_a: node property
    domain: dataset summary
    broad_mappings:
      - dct:source

  source logo:
    is_a: node property
    domain: dataset summary
    slot_uri: schema:logo

  retrieved on:
    is_a: node property
    domain: dataset
    range: date
    exact_mappings:
      - pav:retrievedOn

  version of:
    is_a: node property
    domain: dataset version
    range: dataset summary
    exact_mappings:
      - dct:isVersionOf

  version:
    is_a: node property
    domain: dataset
    broad_mappings:
      - pav:version
      - owl:versionInfo

  license:
    is_a: node property
    domain: information content entity
    exact_mappings:
      - dct:license
    narrow_mappings:
      - WIKIDATA_PROPERTY:P275

  rights:
    is_a: node property
    domain: information content entity
    exact_mappings:
      - dct:rights

  format:
    is_a: node property
    domain: information content entity
    exact_mappings:
      - dct:format
      - WIKIDATA_PROPERTY:P2701

  created_with:
    is_a: node property
    domain: dataset
    exact_mappings:
      - pav:createdWith

  download url:
    is_a: node property
    domain: information content entity
    slot_uri: dcat:downloadURL

  dataset download url:
    is_a: node property
    domain: dataset
    slot_uri: dcat:downloadURL

  distribution download url:
    is_a: node property
    domain: dataset distribution
    exact_mappings:
      - dcat:downloadURL

  ingest date:
    is_a: node property
    domain: dataset version
    slot_uri: pav:version

  has distribution:
    is_a: node property
    domain: dataset version
    range: dataset distribution
    slot_uri: dct:distribution

  published in:
    is_a: node property
    description: >-
      CURIE identifier of a broader publication context within which the publication may be placed,
      e.g. a specified book or journal.
    domain: publication
    range: uriorcurie
    values_from:
      - NLMID
      - issn
      - isbn
    exact_mappings:
      - WIKIDATA_PROPERTY:P1433

  iso abbreviation:
    is_a: node property
    description: >-
      Standard abbreviation for periodicals in the International Organization for Standardization (ISO) 4 system
      See https://www.issn.org/services/online-services/access-to-the-ltwa/. If the 'published in' property is set,
      then the iso abbreviation pertains to the broader publication context (the journal) within which the given
      publication node is embedded, not the publication itself.
    domain: publication
    exact_mappings:
      - WIKIDATA_PROPERTY:P1160

  authors:
    is_a: node property
    singular_name: author
    description: >-
      connects an publication to the list of authors who contributed to the publication.
      This property should be a comma-delimited list of author names. It is recommended that an author's name
      be formatted as "surname, firstname initial.".   Note that this property is a node annotation expressing
      the citation list of authorship which might typically otherwise be more completely documented in
      biolink:PublicationToProviderAssociation defined edges which point to full details about an author
      and possibly, some qualifiers which clarify the specific status of a given author in the publication.
    multivalued: true
    domain: publication

  volume:
    is_a: node property
    description: >-
      volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication
    domain: publication
    exact_mappings:
      - WIKIDATA_PROPERTY:P478

  chapter:
    is_a: node property
    description: >-
      chapter of a book
    domain: book chapter
    exact_mappings:
      - WIKIDATA:Q1980247

  issue:
    is_a: node property
    description: >-
      issue of a newspaper, a scientific journal or magazine for reference purpose
    domain: publication
    exact_mappings:
      - WIKIDATA_PROPERTY:P433

  pages:
    is_a: node property
    description: >-
      page number of source referenced for statement or publication
    domain: publication
    multivalued: true
    exact_mappings:
      - WIKIDATA_PROPERTY:P304

  summary:
    is_a: node property
    # since 'abstract' is a linkML keyword denoting a non-instantiable class or slot,
    # it is generally recommended that knowledge graphs use 'summary' instead to tag a Publication 'abstract'
    aliases: ['abstract']
    description: >-
      executive  summary of a publication
    domain: publication
    exact_mappings:
      - dct:abstract
      - WIKIDATA:Q333291

  keywords:
    is_a: node property
    description: >-
      keywords tagging a publication
    domain: publication
    multivalued: true

  mesh terms:
    is_a: node property
    description: >-
      mesh terms tagging a publication
    domain: publication
    range: uriorcurie
    values_from:
      - MESH
    multivalued: true

  ## Biology

  has biological sequence:
    is_a: node property
    description: >-
      connects a genomic feature to its sequence
    range: biological sequence

  has gene or gene product:
    is_a: node property
    description: >-
      connects an entity with one or more gene or gene products
    range: gene
    multivalued: true

  has gene:
    is_a: has gene or gene product
    description: >-
      connects an entity associated with one or more genes
    range: gene
    multivalued: true

  has zygosity:
    is_a: node property
    domain: nucleic acid entity
    range: zygosity

  ## Chemistry, drugs and food

  has chemical formula:
    is_a: node property
    range: chemical formula value
    description: >-
      description of chemical compound based on element symbols
    exact_mappings:
      - WIKIDATA_PROPERTY:P274

  is metabolite:
    is_a: node property
    domain: molecular entity
    range: boolean
    description: >-
      indicates whether a molecular entity is a metabolite
    exact_mappings:
      - CHEBI:25212

  has constituent:
    description: >-
      one or more molecular entities within a chemical mixture
    is_a: node property
    range: molecular entity
    multivalued: true

  has drug:
    is_a: node property
    description: >-
      connects an entity to one or more drugs
    range: drug
    multivalued: true

  has device:
    is_a: node property
    description: >-
      connects an entity to one or more (medical) devices
    range: device
    multivalued: true

  has procedure:
    is_a: node property
    description: >-
      connects an entity to one or more (medical) procedures
    range: procedure
    multivalued: true

  ## Clinical exposures

  has receptor:
    is_a: node property
    domain: exposure event
    range: organismal entity
    description: >-
      the organism or organism part being exposed
    exact_mappings:
      - ExO:0000001

  has stressor:
    is_a: node property
    domain: exposure event
    aliases: ['has stimulus']
    description: >-
      the process or entity that the receptor is being exposed to
    exact_mappings:
      - ExO:0000000

  has route:
    is_a: node property
    domain: exposure event
    description: >-
      the process that results in the stressor coming into direct contact with the receptor
    exact_mappings:
      - ExO:0000055
    narrow_mappings:
      - LOINC:has_pharmaceutical_route
      - SNOMED:has_dose_form_intended_site
      - SNOMED:has_route_of_administration

  has population context:
    description: >-
      a biological population (general, study, cohort, etc.) with a specific
      set of characteristics to constrain an association.
    is_a: association slot
    range: population of individual organisms

  has temporal context:
    description: >-
      a constraint of time placed upon the truth value of an association.
    is_a: association slot
    # this resolves to the 'time' datatype, but not sure
    # if this also represents an interval of time.
    range: time type

  is supplement:
    description: >-
    is_a: node property
    range: chemical mixture

  trade name:
    description: >-
    is_a: node property
    range: chemical entity

  available from:
    description: >-
    is_a: node property
    multivalued: true
    range: drug_availability_enum

  animal model available from:
    description: >-
    is_a: node property
    multivalued: true
    range: disease or phenotypic feature

  highest FDA approval status:
    description: >-
      Should be the highest level of FDA approval this chemical entity or device has, regardless of which
      disease, condition or phenotype it is currently being reviewed to treat.  For specific levels of FDA
      approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'

## --------------------
## PREDICATES/RELATIONS
## --------------------

  related to:
    description: >-
      A relationship that is asserted between two named things
    domain: named thing
    range: named thing
    multivalued: true
    inherited: true
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - skos:relatedMatch
      - SEMMEDDB:ASSOCIATED_WITH
      - SEMMEDDB:associated_with
      - UMLS:related_to
    broad_mappings:
      - owl:topObjectProperty
    narrow_mappings:
      - SEMMEDDB:compared_with
      - SEMMEDDB:higher_than
      - SEMMEDDB:lower_than
      - BFO:0000054
      - UBERON_CORE:protects
      - GOREL:0002005
      - GOREL:0012006
      # several of the following terms mapped here by RTX could merit upgrade to new Biolink terms
      - BTO:related_to
      - CHEBI:is_conjugate_acid_of
      - CHEBI:is_conjugate_base_of
      - CPT:has_add_on_code
      - CPT:mapped_to
      - EFO:0006351
      - FMA:connected_to
      - FMA:continuous_with
      - FMA:homonym_of
      - FMA:related_developmental_entity_of
      - RO:0002093
      - RO:0002092
      - RO:0002084
      - GOREL:0002005
      - GOREL:0012006
      - HCPCS:mapped_to
      # RTX contributed terms, perhaps belong somewhere else with more precise semantics?
      - HMDB:disease
      - HMDB:has_protein_association
      - IAO:0000136
      - LOINC:has_answer
      - LOINC:has_challenge
      - LOINC:has_evaluation
      - LOINC:mapped_to
      - LOINC:mth_has_expanded_form
      - MESH:RO
      - MESH:has_mapping_qualifier
      - MESH:mapped_to
      - MONDO:disease_shares_features_of
      - NCIT:disease_may_have_associated_disease
      - NCIT:human_disease_maps_to_eo_disease
      - NCIT:is_abnormal_cell_of_disease
      - NCIT:is_related_to_endogenous_product
      - OBO:core#connected_to
      - OBO:core#innervated_by
      - OBO:envo#has_increased_levels_of
      - OBO:has_role
      - OBO:nbo#is_about
      - RO:0000053 # bearer_of
      - PATO-PROPERTY:decreased_in_magnitude_relative_to
      - PATO-PROPERTY:has_cross_section
      - PATO-PROPERTY:has_relative_magnitude
      - PATO-PROPERTY:increased_in_magnitude_relative_to
      - PATO-PROPERTY:reciprocal_of
      - RO:0000052
      - RO:0002001
      - RO:0002002
      - RO:0002003
      - RO:0002008
      - RO:0002134
      - RO:0002150
      - RO:0002159
      - RO:0002176
      - RO:0002177
      - RO:0002178
      - RO:0002179
      - RO:0002314
      - RO:0002322
      - RO:0002328
      - RO:0002332
      - RO:0002338
      - RO:0002339
      - RO:0002341
      - RO:0002342
      - RO:0002344
      - RO:0002348
      - RO:0002349
      - RO:0002356
      - RO:0002371
      - RO:0002372
      - RO:0002373
      - RO:0002374
      - RO:0002385
      - RO:0002387
      - RO:0002451
      - RO:0002494
      - RO:0002495
      - RO:0002568
      - RO:0002573
      - RO:0004026
      - RO:0004027
      - RO:0009001
      - RO:0009004
      - RTXKG1:functionally_related_to
      - RXNORM:has_form
      - RXNORM:reformulated_to
      - SNOMED:has_associated_morphology
      - SNOMED:has_associated_procedure
      - SNOMED:has_direct_morphology
      - SNOMED:has_disposition
      - SNOMED:has_indirect_morphology
      - SNOMED:has_modification
      - SNOMED:has_procedure_morphology
      - SNOMED:has_specimen_source_morphology
      - SNOMED:inheres_in
      - SNOMED:is_interpreted_by
      - SNOMED:relative_to_part_of
      - UBERON:synapsed_by
      - UMLS:RO
      - UMLS:RQ
      - UMLS:class_code_classified_by
      - UMLS:exhibited_by
      - UMLS:has_context_binding
      - UMLS:has_form
      - UMLS:has_mapping_qualifier
      - UMLS:larger_than
      - UMLS:mapped_to
      - UMLS:owning_section_of

  superclass of:
    is_a: related to
    description: >-
      holds between two classes where the domain class is a super class of the range class
    domain: ontology class
    range: ontology class
    multivalued: True
    inverse: subclass of
    in_subset:
      - translator_minimal
    exact_mappings:
      - WIKIDATA:Q66088480
      - CHEMBL.MECHANISM:superset_of
      # RTX terms tagged as inverse of 'biolink:subclass_of'
      - GO:inverse_isa
      - MESH:inverse_isa
      - RXNORM:inverse_isa
      - VANDF:inverse_isa
    narrow_mappings:
      # RTX terms tagged as inverse of 'biolink:subclass_of'
      - NCIT:cdrh_parent_of
      - NCIT:ctcae_5_parent_of
      - NCIT:subset_includes_concept
      - OMIM:has_manifestation
      - SNOMED:has_basic_dose_form
      - UMLS:RB

  subclass of:
    is_a: related to
    description: >-
      holds between two classes where the domain class is a specialization of the range class
    domain: ontology class
    range: ontology class
    multivalued: True
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # RTX mapped terms, would this rather mean that a 'class A' class of an 'instance B'
      # and a an 'instance B' has class 'class A' (inverse term)
      - LOINC:class_of
      - LOINC:has_class
    exact_mappings:
      - rdfs:subClassOf
      - SEMMEDDB:IS_A
      - SEMMEDDB:isa
      - WIKIDATA_PROPERTY:P279
      - CHEMBL.MECHANISM:subset_of
      - GO:isa
      - MESH:isa
      - RTXKG1:subclass_of
      - RXNORM:isa
      - VANDF:isa
    narrow_mappings:
      - CHEBI:has_parent_hydride
      - LOINC:has_archetype
      - LOINC:has_parent_group
      - LOINC:is_presence_guidance_for
      - NCIT:gene_product_has_chemical_classification
      # RTX mapped terms classes for biomarkers
      - NCIT:R36
      - NCIT:R42
      - NCIT:A16
      - NCIT:A11
      - NCIT:A14
      - NCIT:A3
      - NDDF:has_dose_form
      - OBO:intersection_of
      - RXNORM:has_dose_form
      - RXNORM:has_doseformgroup
      - SNOMED:entire_anatomy_structure_of
      - SNOMED:has_dose_form
      # RTX mapping
      - rdfs:subPropertyOf

  same as:
    is_a: exact match
    description: >-
      holds between two entities that are considered equivalent to each other
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # identical class extension with identical sets of individuals
      - owl:equivalentClass
    exact_mappings:
      # identical individual, or identical class concept/meaning
      - owl:sameAs
      - skos:exactMatch
      # Semantic Medline definition: "comparative predicate" where the equivalence could simply be functional
      # RTX suggests mapping this to proposed new "biolink:close_match" predicate instead
      #- SEMMEDDB:SAME_AS
      - WIKIDATA_PROPERTY:P2888
      - CHEMBL.MECHANISM:equivalent_to
      - MONDO:equivalentTo
    narrow_mappings:
      - DRUGBANK:external-identifier

  close match:
    is_a: related to
    description: >-
      a list of terms from different schemas or terminology systems that have
      a semantically similar but not strictly equivalent, broader, or narrower
      meaning. Such terms often describe the same general concept from
      different ontological perspectives (e.g. drug as a type of chemical
      entity versus drug as a type of role borne by a chemical entity).
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - skos:closeMatch
      # Semantic Medline definition: "comparative predicate" where the equivalence could simply be functional
      - SEMMEDDB:SAME_AS
      - SEMMEDDB:same_as
    narrow_mappings:
      - CHEBI:is_enantiomer_of
      - CHEBI:is_tautomer_of
      - MEDDRA:classified_as
      - OBO:xref
      - oboformat:xref
      - RXNORM:has_quantified_form
      - UMLS:SY

  exact match:
    is_a: close match
    description: >-
      holds between two entities that have strictly equivalent
      meanings, with a high degree of confidence
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - skos:exactMatch
      - WIKIDATA:Q39893449
      - WIKIDATA:P2888

  broad match:
    description: >-
      a list of terms from different schemas or terminology systems
      that have a broader, more general meaning. Broader terms are
      typically shown as parents in a hierarchy or tree.
    is_a: related to
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - skos:broadMatch
      - WIKIDATA:Q39894595

  narrow match:
    description: >-
      a list of terms from different schemas or terminology systems
      that have a narrower, more specific meaning. Narrower terms are
      typically shown as children in a hierarchy or tree.
    is_a: related to
    inverse: broad match
    in_subset:
      - translator_minimal
    exact_mappings:
      - skos:narrowMatch
      - WIKIDATA:Q39893967

  opposite of:
    description: >-
      x is the opposite of y if there exists some distance metric M, and there exists
      no z such as M(x,z) <= M(x,y) or M(y,z) <= M(y,x). (This description is from RO. Needs to be rephrased).
    is_a: related to
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002604
    see_also:
      - https://doi.org/10.1101/108977
      - https://github.com/biolink/biolink-model/issues/657

  active in:
    is_a: related to
    domain: gene or gene product
    range: cellular component
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002432

  acts upstream of:
    is_a: related to
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002263

  has upstream actor:
    is_a: related to
    inverse: acts upstream of
    domain: biological process
    range: gene or gene product

  acts upstream of positive effect:
    is_a: acts upstream of
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0004034

  has positive upstream actor:
    is_a: has upstream actor
    inverse: acts upstream of positive effect
    domain: biological process
    range: gene or gene product

  acts upstream of negative effect:
    is_a: acts upstream of
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0004035

  has negative upstream actor:
    is_a: has upstream actor
    inverse: acts upstream of negative effect
    domain: biological process
    range: gene or gene product

  acts upstream of or within:
    is_a: acts upstream of
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0004032

  has upstream or within actor:
    is_a: has upstream actor
    inverse: acts upstream of or within
    domain: biological process
    range: gene or gene product

  acts upstream of or within positive effect:
    is_a: acts upstream of
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002264

  has positive upstream or within actor:
    is_a: has upstream or within actor
    inverse: acts upstream of or within positive effect
    domain: biological process
    range: gene or gene product

  acts upstream of or within negative effect:
    is_a: acts upstream of
    domain: gene or gene product
    range: biological process
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0004033

  has negative upstream or within actor:
    is_a: has upstream or within actor
    inverse: acts upstream of or within negative effect
    domain: biological process
    range: gene or gene product

    ## Publication related predicates
  mentions:
    description: >-
      refers to is a relation between one information content entity and the named thing
      that it makes reference to.
    is_a: related to
    exact_mappings:
      - IAO:0000142
    narrow_mappings:
      - SIO:000628

  ## Publication related predicates

  contributor:
    is_a: related to
    domain: information content entity
    range: agent
    comments:
      - This is a grouping for predicates relating entities to their associated contributors realizing them
    abstract: true
    exact_mappings:
      - dct:contributor

  provider:
    is_a: contributor
    description: >-
      person, group, organization or project that provides a piece of information (e.g. a knowledge association).

  publisher:
    is_a: contributor
    domain: publication
    description: >-
      organization or person responsible for publishing books, periodicals, podcasts, games or software.
      Note that in the case of publications which have a containing "published in" node property, the publisher
      association may not be attached directly to the embedded child publication, but only made in between the
      parent's publication node and the publisher agent of the encompassing publication
      (e.g. only from the Journal referenced by the 'published_in' property of an journal article Publication node).
    exact_mappings:
      - dct:publisher
      - WIKIDATA_PROPERTY:P123

  editor:
    is_a: contributor
    domain: publication
    description: >-
      editor of a compiled work such as a book or a periodical (newspaper or an academic journal).
      Note that in the case of publications which have a containing "published in" node property, the editor
      association may not be attached directly to the embedded child publication, but only made in between the
      parent's publication node and the editorial agent of the encompassing publication
      (e.g. only from the Book referenced by the 'published_in' property of a book chapter Publication node).
    exact_mappings:
      - WIKIDATA_PROPERTY:P98

  author:
    is_a: contributor
    domain: publication
    description: >-
      an instance of one (co-)creator primarily responsible for a written work
    exact_mappings:
      - dct:creator
      - WIKIDATA_PROPERTY:P50

  ## end of Publication related predicates

  interacts with:
    domain: named thing
    range: named thing
    description: >-
      holds between any two entities that directly or indirectly interact with each other
    is_a: related to
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002434
    narrow_mappings:
      # RO terms RTX mapped to 'biolink:related_to' but which imply a chemical interaction
      - RO:0002103
      - RO:0002120
      - RO:0002130
      - SEMMEDDB:complicates

  physically interacts with:
    is_a: interacts with
    description: >-
      holds between two entities that make physical contact as part of some interaction
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - WIKIDATA_PROPERTY:P129
      - RTXKG1:physically_interacts_with
    close_mappings:
      # Agents of some interaction but not the relationship of interaction
      # These RTX mapped terms may need to be reclassified to more meaningful terms (perhaps not yet created)
      - CHEMBL.MECHANISM:binding_agent
      - CHEMBL.MECHANISM:chelating_agent
      - CHEMBL.MECHANISM:cross-linking_agent
      - CHEMBL.MECHANISM:oxidative_enzyme
      - CHEMBL.MECHANISM:sequestering_agent
      - CHEMBL.MECHANISM:substrate
      - DRUGBANK:target
    narrow_mappings:
      # Defined more narrowly as "substance interaction", thus specific applies to a subclass entities?
      - SEMMEDDB:INTERACTS_WITH
      - SEMMEDDB:interacts_with
      - DRUGBANK:drug-interaction
      - FMA:adheres_to
      - NCIT:A7
      - PR:non-covalently_bound_to

  chemically interacts with:
    is_a: physically interacts with
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    symmetric: true


  molecularly interacts with:
    is_a: physically interacts with
    domain: molecular entity
    range: molecular entity
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - DGIdb:antibody
    exact_mappings:
      - RO:0002436
      - CTD:molecularly_interacts_with
      - RTXKG1:targets

  genetically interacts with:
    is_a: interacts with
    description: >-
      holds between two genes whose phenotypic effects are dependent on each
      other in some way - such that their combined phenotypic effects are the
      result of some interaction between the activity of their gene products.
      Examples include epistasis and synthetic lethality.
    domain: gene
    range: gene
    in_subset:
      - translator_minimal
    symmetric: true
    exact_mappings:
      - RO:0002435

  affects:
    is_a: related to
    description: >-
      describes an entity that has a direct affect on the state or quality
      of another existing entity. Use of the 'affects' predicate implies that
      the affected entity already exists, unlike predicates such as
      'affects risk for' and 'prevents, where the outcome is something
      that may or may not come to be.
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      # Contributed by RTX. Seems possible that a new predicate "biolink:in_pathway" could be justified?
      - DRUGBANK:pathway
    exact_mappings:
      - SEMMEDDB:AFFECTS
      - SEMMEDDB:affects
      - DGIdb:affects
      - RTXKG1:affects
    narrow_mappings:
      - SEMMEDDB:administered_to
      - CTD:prediction_hypothesis
      - GOREL:0001006
      - CTD:inferred
      - UPHENO:0000001
      - RO:0002263
      - RO:0002264
      - NCIT:R158
      - NCIT:R160
      - NCIT:R30
      - NCIT:R150
      - NCIT:R72
      - NCIT:R146
      - NCIT:R124
      - NCIT:R173
      - NCIT:R100
      - NCIT:R102
      - NCIT:R101
      - NCIT:R113
      - NCIT:R23
      - NCIT:R25
      - NCIT:gene_mapped_to_disease
      - NCIT:R133
      - RO:0002343
      - RO:0002355
      - RO:0002591
      - RO:0002592
      - RO:0012003
      - SNOMED:has_pathological_process

  affected by:
    is_a: related to
    description: >-
      describes an entity of which the state or quality is affected by
      another existing entity.
    inverse: affects

  ## role mixins for use in tagging corresponding role predicates

  chemical role mixin:
    description: >-
      A role played by the chemical entity or part thereof within a chemical context.
    mixin: true
    exact_mappings:
      - CHEBI:51086

  biological role mixin:
    description: >-
      A role played by the chemical entity or part thereof within a biological context.
    mixin: true
    narrow_mappings:
      - CHEBI:24432

  affects abundance of:
    description: >-
      holds between two chemical entities where the action or effect of one changes the amount of the 
      other within a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity

    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_abundance_of

  abundance affected by:
    is_a: affects
    inverse: affects abundance of
    domain: chemical entity
    range: chemical entity

  increases abundance of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the amount of the other within a system of interest
    is_a: affects abundance of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - UBERGRAPH:is_increase_of
    exact_mappings:
      - CTD:increases_abundance_of

  abundance increased by:
    is_a: affects abundance of
    inverse: increases abundance of
    domain: chemical entity
    range: chemical entity

  decreases abundance of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the amount of the other within a system of interest
    is_a: affects abundance of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      - tag: biolink:canonical_predicate
        value: true
    related_mappings:
      - UBERGRAPH:is_decrease_of
    exact_mappings:
      - CTD:decreases_abundance_of

  abundance decreased by:
    is_a: affects abundance of
    inverse: decreases abundance of
    domain: chemical entity
    range: chemical entity

  affects activity of:
    description: >-
      holds between two chemical entities where the action or effect of one changes the activity of the 
      other within a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    exact_mappings:
      - CTD:affects_activity_of
    narrow_mappings:
      - GAMMA:allosteric_modulator
      - GAMMA:modulator
      - GAMMA:regulator
      - DGIdb:modulator
      - DGIdb:allosteric_modulator

  activity affected by:
    description: >-
      holds between two chemical entities where the action or effect of one is changed by the
      activity of the other within a system of interest
    is_a: affects
    domain: chemical entity
    range: chemical entity

  activity affects:
    is_a: affects
    domain: chemical entity
    range: chemical entity
    inverse: activity affected by

  increases activity of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the activity of the other within a system of interest
    is_a: affects activity of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    related_mappings:
      - GAMMA:ec50
      - GAMMA:ac50
    exact_mappings:
      - CTD:increases_activity_of
    narrow_mappings:
      - GAMMA:activator
      - GAMMA:partial_agonist
      - GAMMA:agonist
      - GAMMA:opener
      - GAMMA:positive_allosteric_modulator
      - GAMMA:positive_modulator
      - GAMMA:inducer
      - GAMMA:potentiator
      - GAMMA:stimulator
      - CHEMBL.MECHANISM:agonist
      - CHEMBL.MECHANISM:opener
      - CHEMBL.MECHANISM:partial_agonist
      - CHEMBL.MECHANISM:positive_allosteric_modulator
      - CHEMBL.MECHANISM:positive_modulator
      - DGIdb:agonist
      - DGIdb:partial_agonist
      - DGIdb:inducer
      - DGIdb:positive_allosteric_modulator
      - DGIdb:stimulator

  activity increased by:
    is_a: affects activity of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases activity of

  decreases activity of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the 
      activity of the other within a system of interest
    is_a: affects activity of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    related_mappings:
      - GAMMA:ic50
      - GAMMA:ki
      - DGIdb:vaccine
    exact_mappings:
      - CTD:decreases_activity_of
    narrow_mappings:
      - GAMMA:allosteric_antagonist
      - GAMMA:partial_antagonist
      - GAMMA:antagonist
      - GAMMA:weak_inhibitor
      - GAMMA:inhibitor
      - GAMMA:channel_blocker
      - GAMMA:gating_inhibitor
      - GAMMA:blocker
      - GAMMA:inverse_agonist
      - GAMMA:inactivator
      - GAMMA:downregulator
      - GAMMA:negative_modulator
      - GAMMA:negative_allosteric_modulator
      - GAMMA:inhibitory_allosteric_modulator
      - GAMMA:aggregation_inhibitor
      - GAMMA:conversion_inhibitor
      - GAMMA:suppressor
      - CHEMBL.MECHANISM:antagonist
      - CHEMBL.MECHANISM:allosteric_antagonist
      - CHEMBL.MECHANISM:inverse_agonist
      - DGIdb:antagonist
      - DGIdb:blocker
      - DGIdb:channel_blocker
      - DGIdb:gating_inhibitor
      - DGIdb:inhibitor
      - DGIdb:negative_modulator
      - DGIdb:inhibitory_allosteric_modulator
      - DGIdb:inverse_agonist

  activity decreased by:
    is_a: affects activity of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases activity of


  affects expression of:
    description: >-
      holds between a chemical entity and a nucleic acid entity where the action or effect of one changes the
      level of expression of the other within a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    exact_mappings:
      - CTD:affects_expression_of

  expression affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: affects expression of

  increases expression of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the level of expression of the
      other within a system of interest
    is_a: affects expression of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    close_mappings:
      # Agent of the action or effect, not the relationship itself
      - CHEMBL.MECHANISM:releasing_agent
    exact_mappings:
      - RO:0003003
      - CTD:increases_expression_of

  expression increased by:
    is_a: expression affected by
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: increases expression of

  decreases expression of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the level of expression of the
      other within a system of interest
    is_a: affects expression of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    related_mappings:
      - DGIdb:antisense
      - DGIdb:antisense_oligonucleotide
    exact_mappings:
      - RO:0003002
      - CTD:decreases_expression_of
    narrow_mappings:
      - CHEMBL.MECHANISM:antisense_inhibitor

  expression decreased by:
    is_a: expression affected by
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: decreases expression of

  affects folding of:
    description: >-
      holds between two chemical entities where the action or effect of one changes the rate
      or quality of folding of the other
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_folding_of

  folding affected by:
    is_a: affects
    inverse: affects folding of
    domain: nucleic acid entity
    range: chemical entity

  increases folding of:
    description: >-
      holds between two chemical entities where the action or effect of one 
      increases the rate or quality of folding of the other
    is_a: affects folding of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_folding_of

  folding increased by:
    is_a: affects folding of
    inverse: increases folding of
    domain: nucleic acid entity
    range: chemical entity

  decreases folding of:
    description: >-
      holds between a chemical entity and a nucleic acid entity where the action or effect of one
      decreases the rate or quality of folding of the other
    is_a: affects folding of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_folding_of

  folding decreased by:
    is_a: affects folding of
    inverse: decreases folding of
    domain: nucleic acid entity
    range: chemical entity

  affects localization of:
    description: >-
      holds between two chemical entities where the action or effect of one changes the
      localization of the other within a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - GAMMA:storage
    exact_mappings:
      - CTD:affects_localization_of
      - GOREL:0002003

  localization affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects localization of

  increases localization of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the proper
      localization of the other within a system of interest
    is_a: affects localization of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_localization_of

  localization increased by:
    is_a: affects localization of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases localization of

  decreases localization of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the proper localization of the other within a system of interest
    is_a: affects localization of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_localization_of

  localization decreased by:
    is_a: affects localization of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases localization of

  affects metabolic processing of:
    description: >-
      holds between two chemical entities where the action or effect of one impacts the
      metabolic processing of the other within a system of interest
    is_a: affects
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - GAMMA:catalytic_activity
    exact_mappings:
      - CTD:affects_metabolic_processing_of

  metabolic processing affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects metabolic processing of

  increases metabolic processing of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the rate of
      metabolic processing of the other within a system of interest
    is_a: affects metabolic processing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_metabolic_processing_of
    narrow_mappings:
      - NCIT:enzyme_metabolizes_chemical_or_drug

  metabolic processing increased by:
    is_a: affects metabolic processing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases metabolic processing of

  decreases metabolic processing of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the rate of
      metabolic processing of the other within a system of interest
    is_a: affects metabolic processing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_metabolic_processing_of

  metabolic processing decreased by:
    is_a: affects metabolic processing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases metabolic processing of

  affects molecular modification of:
    description: >-
      holds between two chemical entities where the action or effect of one leads changes in the molecular
      modification(s) of the other (e.g. via post-translational modifications of proteins such as the addition of
      phosphoryl group, or via redox reaction that adds or subtracts electrons)
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_molecular_modification_of
    narrow_mappings:
      - CTD:affects_acetylation
      - CTD:affects_acylation
      - CTD:affects_alkylation
      - CTD:affects_amination
      - CTD:affects_carbamoylation
      - CTD:affects_ethylation
      - CTD:affects_glutathionylation
      - CTD:affects_glycation
      - CTD:affects_glycosylation
      - CTD:affects_glucuronidation
      - CTD:affects_N-linked_glycosylation
      - CTD:affects_O-linked_glycosylation
      - CTD:affects_hydroxylation
      - CTD:affects_lipidation
      - CTD:affects_farnesylation
      - CTD:affects_geranoylation
      - CTD:affects_myristoylation
      - CTD:affects_palmitoylation
      - CTD:affects_prenylation
      - CTD:affects_methylation
      - CTD:affects_nitrosation
      - CTD:affects_nucleotidylation
      - CTD:affects_phosphorylation
      - CTD:affects_ribosylation
      - CTD:affects_ADP-ribosylation
      - CTD:affects_sulfation
      - CTD:affects_sumoylation
      - CTD:affects_ubiquitination
      - CTD:affects_oxidation
      - CTD:affects_reduction
      - CTD:affects_carboxylation

  molecular modification affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects molecular modification of

  increases molecular modification of:
    description: >-
      holds between two chemical entities where the action or effect of one leads to
      increased molecular modification(s) of the other (e.g. via post-translational modifications of
      proteins such as the addition of phosphoryl group, or via redox reaction that adds or subtracts electrons)
    is_a: affects molecular modification of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_molecular_modification_of
    narrow_mappings:
      - CTD:increases_acetylation
      - CTD:increases_acylation
      - CTD:increases_alkylation
      - CTD:increases_amination
      - CTD:increases_carbamoylation
      - CTD:increases_ethylation
      - CTD:increases_glutathionylation
      - CTD:increases_glycation
      - CTD:increases_glycosylation
      - CTD:increases_glucuronidation
      - CTD:increases_N-linked_glycosylation
      - CTD:increases_O-linked_glycosylation
      - CTD:increases_hydroxylation
      - CTD:increases_lipidation
      - CTD:increases_farnesylation
      - CTD:increases_geranoylation
      - CTD:increases_myristoylation
      - CTD:increases_palmitoylation
      - CTD:increases_prenylation
      - CTD:increases_methylation
      - CTD:increases_nitrosation
      - CTD:increases_nucleotidylation
      - CTD:increases_phosphorylation
      - CTD:increases_ribosylation
      - CTD:increases_ADP-ribosylation
      - CTD:increases_sulfation
      - CTD:increases_sumoylation
      - CTD:increases_ubiquitination
      - CTD:increases_oxidation
      - CTD:increases_reduction
      - CTD:increases_carboxylation
      - GAMMA:acetylation
      - GAMMA:oxidizer

  molecular modification increased by:
    is_a: affects molecular modification of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases molecular modification of

  decreases molecular modification of:
    description: >-
      holds between two chemical entities where the action or effect of one leads to
      decreased molecular modification(s) of the other (e.g. via post-translational modifications of
      proteins such as the addition of phosphoryl group, or via redox reaction that adds or subtracts electrons)
    is_a: affects molecular modification of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_molecular_modification_of
    narrow_mappings:
      - CTD:decreases_acetylation
      - CTD:decreases_acylation
      - CTD:decreases_alkylation
      - CTD:decreases_amination
      - CTD:decreases_carbamoylation
      - CTD:decreases_ethylation
      - CTD:decreases_glutathionylation
      - CTD:decreases_glycation
      - CTD:decreases_glycosylation
      - CTD:decreases_glucuronidation
      - CTD:decreases_N-linked_glycosylation
      - CTD:decreases_O-linked_glycosylation
      - CTD:decreases_hydroxylation
      - CTD:decreases_lipidation
      - CTD:decreases_farnesylation
      - CTD:decreases_geranoylation
      - CTD:decreases_myristoylation
      - CTD:decreases_palmitoylation
      - CTD:decreases_prenylation
      - CTD:decreases_methylation
      - CTD:decreases_nitrosation
      - CTD:decreases_nucleotidylation
      - CTD:decreases_phosphorylation
      - CTD:decreases_ribosylation
      - CTD:decreases_ADP-ribosylation
      - CTD:decreases_sulfation
      - CTD:decreases_sumoylation
      - CTD:decreases_ubiquitination
      - CTD:decreases_oxidation
      - CTD:decreases_reduction
      - CTD:decreases_carboxylation
      - GAMMA:deoxidizer

  molecular modification decreased by:
    is_a: affects molecular modification of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases molecular modification of

  affects synthesis of:
    description: >-
      holds between two chemical entities where the action or effect 
      of one impacts the rate of chemical synthesis of the other
    is_a: affects
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_synthesis_of

  sythesis affected by:
    is_a: affects
    domain: chemical entity
    range: chemical entity
    inverse: affects synthesis of
    in_subset:
      - translator_minimal

  increases synthesis of:
    description: >-
      holds between two chemical entities where the action or effect
      of one increases the rate of chemical synthesis of the other
    is_a: affects synthesis of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_synthesis_of

  synthesis increased by:
    is_a: affects synthesis of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases synthesis of

  decreases synthesis of:
    description: >-
      holds between two chemical entities where the action or effect
      of one decreases the rate of chemical synthesis of the other
    is_a: affects synthesis of
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_synthesis_of
      - GAMMA:inhibition_of_synthesis

  synthesis decreased by:
    is_a: affects synthesis of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases synthesis of

  affects degradation of:
    description: >-
      holds between two chemical entities where the action or effect of one
      impacts the rate of degradation of the other within a system of interest,
      where chemical degradation is defined act or process of simplifying or breaking
      down a molecule into smaller parts, either naturally or artificially
      (Oxford English Dictionary, UK, 1995)
    is_a: affects
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_degradation_of
    narrow_mappings:
      - CTD:affects_cleavage
      - CTD:affects_hydrolysis

  degradation affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects degradation of

  increases degradation of:
    description: >-
      holds between two chemical entities where the action or effect of one
      increases the rate of degradation of the other within a system of interest
    is_a: affects degradation of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      # An enzyme or reagent acts upon a substrate but that substrate may
      # not necessarily be "degraded", i.e. broken into smaller parts
      - GAMMA:substrate
      # RTX put this under "biolink:physically_interacts_with" but rather we also put next to the GAMMA mapping
      # That said, neither mapping feels like a comfortable fit here
      - CHEMBL.MECHANISM:substrate
    close_mappings:
      # terms refer less to the action or effect than the agent of that action or effect
      - CHEMBL.MECHANISM:degrader
      - CHEMBL.MECHANISM:proteolytic_enzyme
      - CHEMBL.MECHANISM:hydrolytic_enzyme
    exact_mappings:
      - CTD:increases_degradation_of
    narrow_mappings:
      - CTD:increases_cleavage
      - CTD:increases_hydrolysis
      - GOREL:0002004

  degradation increased by:
    is_a: affects degradation of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases degradation of

  decreases degradation of:
    description: >-
      holds between two chemical entities where the action or effect of one
      decreases the rate of degradation of the other within a system of interest
    is_a: affects degradation of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_degradation_of
    narrow_mappings:
      - CTD:decreases_cleavage
      - CTD:decreases_hydrolysis

  degradation decreased by:
    is_a: affects degradation of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases degradation of

  affects mutation rate of:
    description: >-
      holds between a chemical entity and a nucleic acid entity where the action or effect of the
      chemical entity impacts the rate of mutation of the nucleic acid entity within a system of interest
    is_a: affects
    domain: chemical entity
    range: nucleic acid entity
    broad_mappings:
      # Term 'mutagenesis' generally speaks generally of the process of
      # 'production of genetic mutations':  this term says it is affected
      # but not specifically how
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_mutation_rate_of

  mutation rate affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: affects mutation rate of

  increases mutation rate of:
    description: >-
      holds between a chemical entity and a nucleic acid entity where the action or effect of the
      chemical entity increases the rate of mutation of the nucleic acid entity within a system of interest
    is_a: affects mutation rate of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_mutation_rate_of
    broad_mappings:
      # See 'affects mutation rate of' above
      - CTD:increases_mutagenesis

  mutation rate increased by:
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: increases mutation rate of

  decreases mutation rate of:
    description: >-
      holds between a chemical entity and a nucleic acid entity where the action or effect of the
      chemical entity decreases the rate of mutation of the nucleic acid entity within a system of interest
    is_a: affects mutation rate of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_mutation_rate_of
    broad_mappings:
      # See 'affects mutation rate of' above
      - CTD:decreases_mutagenesis

  mutation rate decreased by:
    is_a: affects mutation rate of
    in_subset:
      - translator_minimal
    domain: nucleic acid entity
    range: chemical entity
    inverse: decreases mutation rate of

  affects response to:
    description: >-
      holds between two chemical entities where the action or effect
      of one impacts the susceptibility of a biological entity or system
      (e.g. an organism, cell, cellular component, macromolecular machine mixin,
      biological or pathological process) to the other
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_response_to

  response affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects response to

  increases response to:
    description: >-
      holds between two chemical entities where the action or effect of one
      increases the susceptibility of a biological entity or system (e.g. an
      organism, cell, cellular component, macromolecular machine mixin, biological
      or pathological process) to the other
    is_a: affects response to
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_response_to

  response increased by:
    is_a: affects response to
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases response to

  decreases response to:
    description: >-
      holds between two chemical entities where the action or effect of one
      decreases the susceptibility of a biological entity or system (e.g. an
      organism, cell, cellular component, macromolecular machine mixin, biological
      or pathological process) to the other
    is_a: affects response to
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_response_to
    narrow_mappings:
      - CTD:decreases_response_to_substance
      - GAMMA:desensitize_the_target

  response decreased by:
    is_a: affects response to
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases response to

  affects splicing of:
    description: >-
      holds between a chemical entity and an mRNA where the action or effect
      of the chemical entity impacts the splicing of the mRNA
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: transcript
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_RNA_splicing
    broad_mappings:
      - CTD:affects_splicing_of

  splicing affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: transcript
    range: chemical entity
    inverse: affects splicing of

  increases splicing of:
    description: >-
      holds between a chemical entity and an mRNA where the action or effect
      of the chemical entity increases the proper splicing of the mRNA
    is_a: affects splicing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: transcript
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_RNA_splicing
    broad_mappings:
      - CTD:increases_splicing_of

  splicing increased by:
    is_a: affects splicing of
    in_subset:
      - translator_minimal
    domain: transcript
    range: chemical entity
    inverse: increases splicing of

  decreases splicing of:
    description: >-
      holds between a chemical entity and an mRNA where the action or
      effect of the chemical entity decreases the proper splicing of the mRNA
    is_a: affects splicing of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: transcript
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_RNA_splicing
    broad_mappings:
      - CTD:decreases_splicing_of

  splicing decreased by:
    is_a: affects splicing of
    in_subset:
      - translator_minimal
    domain: transcript
    range: chemical entity
    inverse: decreases splicing of

  affects stability of:
    description: >-
      holds between two chemical entities where the action or effect of one impacts
      the stability of the other within a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      - GAMMA:stabilization
    exact_mappings:
      - CTD:affects_stability_of

  stability affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects stability of

  increases stability of:
    description: >-
      holds between two chemical entities where the action or effect of one
      increases the stability of the other within a system of interest
    is_a: affects stability of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # agent of the action or effect, not the relationship
      - CHEMBL.MECHANISM:stabiliser
    exact_mappings:
      - CTD:increases_stability_of

  stability increased by:
    is_a: affects stability of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases stability of

  decreases stability of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases
      the stability of the other within a system of interest
    is_a: affects stability of
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_stability_of

  stability decreased by:
    is_a: affects stability of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases stability of

  affects transport of:
    description: >-
      holds between two chemical entities where the action or effect of one impacts
      the rate of transport of the other across some boundary in a system of interest
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_transport_of
    narrow_mappings:
      - RO:0002313
      - RO:0002340
      - RO:0002345

  transport affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects transport of

  increases transport of:
    description: >-
      holds between two chemical entities where the action or effect of one
      increases the rate of transport of the other across some boundary in a system of interest
    is_a: affects transport of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      - GAMMA:carrier
      - GAMMA:transporter
    exact_mappings:
      - CTD:increases_transport_of

  transport increased by:
    is_a: affects transport of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases transport of

  decreases transport of:
    description: >-
      holds between two chemical entities where the action or effect of one
      decreases the rate of transport of the other across some boundary in a system of interest
    is_a: affects transport of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_transport_of

  transport decreased by:
    is_a: affects transport of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases transport of

  affects secretion of:
    description: >-
      holds between two chemical entities where the action or effect of one impacts the
      rate of secretion of the other out of a cell, gland, or organ
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_secretion_of
    broad_mappings:
      # 'export' more general than 'secretion'
      - CTD:affects_export

  secretion affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects secretion of

  increases secretion of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the
      rate of secretion of the other out of a cell, gland, or organ
    is_a: affects secretion of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_secretion_of
    broad_mappings:
      # 'export' more general than 'secretion'
      - CTD:increases_export

  secretion increased by:
    is_a: affects secretion of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases secretion of

  decreases secretion of:
    description: >-
      holds between two chemical entities where the action or effect of one decreases the
      rate of secretion of the other out of a cell, gland, or organ
    is_a: affects secretion of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_secretion_of
    broad_mappings:
      # 'export' more general than 'secretion'
      - CTD:decreases_export

  secretion decreased by:
    is_a: affects secretion of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases secretion of

  affects uptake of:
    description: >-
      holds between two chemical entities where the action or effect of one impacts the rate of
      uptake of the other into of a cell, gland, or organ
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:affects_uptake_of
    broad_mappings:
      # 'import' more general than 'uptake'
      - CTD:affects_import

  uptake affected by:
    is_a: affects
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: affects uptake of

  increases uptake of:
    description: >-
      holds between two chemical entities where the action or effect of one increases the rate of
      uptake of the other into of a cell, gland, or organ
    is_a: affects uptake of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_uptake_of
    broad_mappings:
      # 'import' more general than 'uptake'
      - CTD:increases_import

  uptake increased by:
    is_a: affects uptake of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: increases uptake of

  decreases uptake of:
    description: >-
      holds between two chemical entities where the action or effect
      of one decreases the rate of uptake of the other into of a cell, gland, or organ
    is_a: affects uptake of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_uptake_of
    broad_mappings:
      # 'import' more general than 'uptake'
      - CTD:decreases_import

  uptake decreased by:
    is_a: affects uptake of
    in_subset:
      - translator_minimal
    domain: chemical entity
    range: chemical entity
    inverse: decreases uptake of

  regulates:
    # direct is_a inheritance from a non-mixin class is not allowed
    # we defer this inheritance to the classes which this mixin in its mixins
    # is_a: affects
    comments:
      - This is a grouping for process-process and entity-entity regulation.
    mixin: true
    domain: physical essence or occurrent
    range: physical essence or occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      - RO:0002334
    exact_mappings:
      - RO:0002211
    narrow_mappings:
      # https://www.wikidata.org/wiki/Property:P128 - regulates (molecular biology)
      - WIKIDATA_PROPERTY:P128
      - CHEMBL.MECHANISM:modulator
      # RTX mapping was 'biolink:related_to' but this term seems a more precise mapping?
      - RO:0002295
      - RO:0002332
      - RO:0002578
      - RTXKG1:regulates_activity_of
      - RTXKG1:regulates_expression_of
  
  regulated by:
    domain: physical essence or occurrent
    range: physical essence or occurrent
    mixin: true
    inverse: regulates

  positively regulates:
    comments:
      - This is a grouping for positive process-process and entity-entity regulation.
    is_a: regulates
    mixin: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # This RTX contributed term is tagged as a inverse of this Biolink predicate
      - RO:0002336
    exact_mappings:
      - RO:0002213
    narrow_mappings:
      - CHEMBL.MECHANISM:activator
      - DGIdb:activator
      - RO:0004032
      - RO:0004034
      - RO:0002629
      - SEMMEDDB:augments

  positively regulated by:
    is_a: regulated by
    mixin: true
    inverse: positively regulates

  negatively regulates:
    comments:
      - This is a grouping for negative process-process and entity-entity regulation.
    is_a: regulates
    mixin: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # This RTX contributed term is tagged as a inverse of this Biolink predicate
      - RO:0002335
    exact_mappings:
      # Strict interpretation here is that entity A causally affects levels of B
      - RO:0004035
      - RO:0002212
    broad_mappings:
      # This term is slightly broader in that it includes that A acts within B as well
      - RO:0004033
    narrow_mappings:
      - CHEMBL.MECHANISM:blocker
      - CHEMBL.MECHANISM:inhibitor
      - CHEMBL.MECHANISM:negative_allosteric_modulator
      - CHEMBL.MECHANISM:negative_modulator
      - RO:0002630
  
  negatively regulated by:
    is_a: regulated by
    mixin: true
    inverse: negatively regulates

  process regulates process:
    is_a: affects
    mixins:
      - regulates
    domain: occurrent
    range: occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002211

  process regulated by process:
    is_a: affected by
    domain: occurrent
    range: occurrent
    inverse: process regulates process

  process positively regulates process:
    is_a: process regulates process
    mixins:
      - positively regulates
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002213

  process positively regulated by process:
    is_a: process regulated by process
    inverse: process positively regulates process

  process negatively regulates process:
    is_a: process regulates process
    mixins:
      - negatively regulates
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002212

  process negatively regulated by process:
    is_a: process regulated by process
    inverse: process negatively regulates process

  entity regulates entity:
    aliases: ['activity directly regulates activity of']
    is_a: affects
    mixins:
      - regulates
    domain: chemical entity
    range: chemical entity
    inverse: entity regulated by entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    local_names:
      translator: regulates
      ro: activity directly regulates activity of
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0002448
    narrow_mappings:
      # Wikidata mapping copied over from 'regulates' above;
      # considered a slightly narrower term since it applies to
      # protein and RNA as subject regulator whereas molecular_entity
      # may also be another class of chemical_substance?
      - WIKIDATA_PROPERTY:P128

  entity regulated by entity:
    is_a: affected by
    domain: chemical entity
    range: chemical entity
    inverse: entity regulates entity

  entity positively regulates entity:
    aliases: ['activity directly positively regulates activity of']
    is_a: entity regulates entity
    mixins:
      - positively regulates
    annotations:
      tag: biolink:canonical_predicate
      value: true
    local_names:
      translator: positively regulates
      ro: activity directly positively regulates activity of
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0002450
    broad_mappings:
      # causally positive effect of A over B but not specific to nature of B
      - RO:0004034
    narrow_mappings:
      # Defined more narrowly as increasing, facilitating the
      # action or function of a "substance interaction", where "substance" is deemed a subclass of possible entity
      - SEMMEDDB:STIMULATES
      - SEMMEDDB:stimulates
      # Positive regulation is defined more narrowly here, as "Anatomy upregulates Gene"
      - hetio:UPREGULATES_AuG
      # Positive regulation is defined more narrowly here, as "Disease upregulates Gene"
      - hetio:UPREGULATES_DuG

  entity positively regulated by entity:
    is_a: entity regulated by entity
    inverse: entity positively regulates entity

  entity negatively regulates entity:
    aliases: ['activity directly negatively regulates activity of']
    is_a: entity regulates entity
    mixins:
      - negatively regulates
    annotations:
      tag: biolink:canonical_predicate
      value: true
    local_names:
      translator: negatively regulates
      ro: activity directly negatively regulates activity of
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0002449
    narrow_mappings:
      # SemMedDb definition focuses on (chemical?) "substance interactions" which is a bit narrower?
      - SEMMEDDB:INHIBITS
      - SEMMEDDB:inhibits
      # Down regulation is defined more narrowly here, as "Anatomy downregulates Gene"
      - hetio:DOWNREGULATES_AdG
      # Down regulation is defined more narrowly here, as "Disease downregulates Gene"
      - hetio:DOWNREGULATES_DdG

  entity negatively regulated by entity:
    is_a: entity regulated by entity
    inverse: entity negatively regulates entity

  disrupts:
    is_a: affects
    description: >-
      describes a relationship where one entity degrades or interferes
      with the structure, function, or occurrence of another.
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SEMMEDDB:DISRUPTS
      - SEMMEDDB:disrupts
      - CHEMBL.MECHANISM:disrupting_agent
    narrow_mappings:
      - RO:0004024
      - RO:0004025
      - RTXKG1:disease_causes_disruption_of

  disrupted by:
    is_a: affected by
    description: >-
      describes a relationship where the structure, function, or occurrence
      of one entity is degraded or interfered with by another.
    inverse: disrupts

  gene product of:
    is_a: related to
    description: >-
      definition x has gene product of y if and only if y is a gene (SO:0000704)
      that participates in some gene expression process (GO:0010467) where the output of thatf
      process is either y or something that is ribosomally translated from x
    exact_mappings:
      - RO:0002204
    domain: gene product mixin
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    inverse: has gene product
    in_subset:
      - translator_minimal

  has gene product:
    is_a: related to
    description: >-
      holds between a gene and a transcribed and/or
      translated product generated from it
    domain: gene
    range: gene product mixin
    inverse: gene product of
    in_subset:
      - translator_minimal
    close_mappings:
      # RTX term tagged as inverse mapping
      - PR:has_gene_template
    exact_mappings:
      - RO:0002205
      - WIKIDATA_PROPERTY:P688
      - NCIT:gene_encodes_gene_product
    narrow_mappings:
      - NCIT:R178

  transcribed to:
    is_a: related to
    domain: gene
    range: transcript
    description: >-
      inverse of transcribed from
    inverse: transcribed from
    exact_mappings:
      - RO:0002511
      - SIO:010080

  transcribed from:
    is_a: related to
    domain: transcript
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      x is transcribed from y if and only if x is synthesized from template y
    exact_mappings:
      - RO:0002510
      - SIO:010081

  translates to:
    is_a: related to
    domain: transcript
    range: protein
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      x (amino acid chain/polypeptide) is the ribosomal translation of y (transcript) if and only if a ribosome
      reads y (transcript) through a series of triplet codon-amino acid adaptor activities (GO:0030533)
      and produces x (amino acid chain/polypeptide)
    close_mappings:
      - RO:0002513
      - SIO:010082

  translation of:
    is_a: related to
    domain: protein
    range: transcript
    description: >-
      inverse of translates to
    inverse: translates to
    close_mappings:
      - RO:0002512
      - SIO:010083

  homologous to:
    is_a: similar to
    aliases: ['in homology relationship with']
    description: >-
      holds between two biological entities that have common evolutionary origin
    comments:
      - typically used to describe homology relationships between genes or gene products
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:HOM0000001
      - SIO:010302
    narrow_mappings:
      # This is a tricky one to place; seems narrower than the RO mapping but that mapping, RO:0002158
      - UBERON_CORE:sexually_homologous_to

  paralogous to:
    is_a: homologous to
    description: >-
      a homology relationship that holds between entities (typically genes) that diverged after a duplication event.
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:HOM0000011

  orthologous to:
    is_a: homologous to
    description: >-
      a homology relationship between entities (typically genes) that diverged after a speciation event.
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:HOM0000017
      - WIKIDATA_PROPERTY:P684

  xenologous to:
    is_a: homologous to
    description: >-
      a homology relationship characterized by an interspecies (horizontal) transfer since the common ancestor.
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:HOM0000018

  coexists with:
    is_a: related to
    description: >-
      holds between two entities that are co-located in the same aggregate object, process, or spatio-temporal region
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SEMMEDDB:COEXISTS_WITH
      - SEMMEDDB:coexists_with
    narrow_mappings:
      - BSPO:0000096
      - BSPO:0000097
      - BSPO:0000098
      - BSPO:0000099
      - BSPO:0000100
      - BSPO:0000102
      - BSPO:0000104
      - BSPO:0000110
      - BSPO:0000113
      - BSPO:0015001
      - BSPO:0015002
      - BSPO:0015003
      - BSPO:0015005
      - BSPO:0015006
      - BSPO:0015007
      - BSPO:0015008
      - BSPO:0015009
      - BSPO:0015012
      - BSPO:0015014
      - BSPO:parallel_to
      - UBERON_CORE:anastomoses_with
      - UBERON_CORE:anteriorly_connected_to
      - UBERON_CORE:posteriorly_connected_to
      - UBERON_CORE:channel_for
      - UBERON_CORE:channels_from
      - UBERON_CORE:channels_into
      - UBERON_CORE:conduit_for
      - UBERON_CORE:distally_connected_to
      - UBERON_CORE:extends_fibers_into
      - UBERON_CORE:filtered_through
      - UBERON_CORE:indirectly_supplies
      - UBERON_CORE:proximally_connected_to
      - UBERON_CORE:synapsed_by
      - UBERON_CORE:transitively_anteriorly_connected_to
      - UBERON_CORE:transitively_connected_to
      - UBERON_CORE:transitively_distally_connected_to
      - UBERON_CORE:transitively_proximally_connected_to
      # RTX contributed Environmental Ontology term meaning "partially surrounded by"
      - ENVO:01001307
      - FMA:adjacent_to
      - FMA:afferent_to
      - FMA:anterior_to
      - FMA:anteroinferior_to
      - FMA:anterolateral_to
      - FMA:anteromedial_to
      - FMA:anterosuperior_to
      # RTX contributed terms (also inverses to one another?) might better be mapped to another term with more precise functional semantics?
      # Some of these terms also seem to be semantic inverses of one another, thus, perhaps not simple narrow_mappings to Biolink
      - FMA:arterial_supply_of
      - FMA:has_arterial_supply
      - FMA:articulates_with
      - FMA:attaches_to
      - FMA:bounded_by
      - FMA:bounds
      - FMA:branch_of
      - FMA:connection_type_of
      - FMA:continuation_branch_of
      - FMA:continuous_distally_with
      - FMA:continuous_proximally_with
      - FMA:corresponds_to
      - FMA:development_type_of
      - FMA:developmental_stage_of
      - FMA:direct_cell_shape_of
      - FMA:direct_left_of
      - FMA:direct_right_of
      - FMA:distal_to
      - FMA:drains_into
      - FMA:efferent_to
      - FMA:external_to
      - FMA:formed_by
      - FMA:forms
      # these next two RTX mapped terms also seem to be inverses of one another
      - FMA:full_grown_phenotype_of
      - FMA:has_full_grown_phenotype
      # these next two RTX mapped terms also seem to be inverses of one another
      - FMA:fuses_with
      - FMA:fusion_of
      - FMA:has_fusion
      - FMA:germ_origin_of
      - FMA:has_germ_origin
      - FMA:has_adherent
      - FMA:has_branch
      - FMA:has_connection_type
      - FMA:has_continuation_branch
      - FMA:has_development_type
      - FMA:has_developmental_stage
      - FMA:has_direct_cell_shape
      - FMA:has_inherent_3d_shape
      - FMA:has_insertion
      - FMA:has_lymphatic_drainage
      - FMA:has_nerve_supply
      - FMA:has_observed_anatomical_entity
      - FMA:has_origin
      - FMA:has_primary_segmental_supply
      - FMA:has_projection
      - FMA:has_regional_part
      - FMA:has_related_developmental_entity
      - FMA:has_secondary_segmental_supply
      - FMA:has_segmental_composition
      - FMA:has_segmental_supply
      - FMA:has_tributary
      - FMA:has_venous_drainage
      - FMA:inferior_to
      - FMA:inferolateral_to
      - FMA:inferomedial_to
      - FMA:inherent_3d_shape_of
      - FMA:insertion_of
      - FMA:internal_to
      - FMA:lateral_to
      - FMA:left_lateral_to
      - FMA:left_medial_to
      - FMA:lymphatic_drainage_of
      - FMA:matures_from
      - FMA:matures_into
      - FMA:medial_to
      - FMA:merges_with
      - FMA:nerve_supply_of
      - FMA:origin_of
      - FMA:posterior_to
      - FMA:posteroinferior_to
      - FMA:posterolateral_to
      - FMA:posteromedial_to
      - FMA:posterosuperior_to
      - FMA:primary_segmental_supply_of
      - FMA:projects_from
      - FMA:projects_to
      - FMA:proximal_to
      - FMA:receives_attachment_from
      - FMA:receives_drainage_from
      - FMA:receives_input_from
      - FMA:receives_projection
      - FMA:related_part
      - FMA:right_lateral_to
      - FMA:right_medial_to
      - FMA:secondary_segmental_supply_of
      - FMA:segmental_composition_of
      - FMA:segmental_supply_of
      - FMA:sends_output_to
      - FMA:superior_to
      - FMA:superolateral_to
      - FMA:superomedial_to
      - FMA:surrounded_by
      - FMA:surrounds
      - FMA:tributary_of
      - FMA:venous_drainage_of
      # These LOINC: terms contributed by RTX were only tagged as 'biolink:has_attribute'
      # but seem more aligned to the FMA entries in this biolink term, so I leave them here for now
      - LOINC:has_lateral_anatomic_location
      - LOINC:has_lateral_location_presence
      - OBO:core#distally_connected_to
      - OBO:core#subdivision_of
      # These RO terms seem similar to the FMA terms above, so I place them here rather than under 'biolink:related_to'
      - RO:0002219
      - RO:0002220
      - RO:0002221
      - SO:has_origin
      # RTX mapped these UBERON terms all here
      - UBERON:anastomoses_with
      - UBERON:anteriorly_connected_to
      - UBERON:channel_for
      - UBERON:channels_from
      - UBERON:channels_into
      - UBERON:conduit_for
      - UBERON:distally_connected_to
      - UBERON:existence_starts_and_ends_during
      - UBERON:extends_fibers_into
      - UBERON:filtered_through
      - UBERON:in_central_side_of
      - UBERON:in_innermost_side_of
      - UBERON:in_outermost_side_of
      - UBERON:indirectly_supplies
      - UBERON:posteriorly_connected_to
      - UBERON:protects
      - UBERON:proximally_connected_to
      - UBERON:sexually_homologous_to

  in pathway with:
    description: >-
      holds between two genes or gene products that are part of in the same biological pathway
    is_a: coexists with
    domain: gene or gene product
    range: gene or gene product
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      # generally pertains to membership of a (subject) component - gene,
      # metabolite, etc? - in an (object) metabolic pathway
      - SIO:010532

  in complex with:
    description: >-
      holds between two genes or gene products that are part of (or code for
      products that are part of) in the same macromolecular complex mixin
    is_a: coexists with
    domain: gene or gene product
    range: gene or gene product
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      # generally pertains to membership of a (subject) protein in an (object) protein complex (doesn't cover RNA-Protein, Lipid-Protein, etc complexes though)
      - SIO:010497
    broad_mappings:
      # generally pertains to membership of any (subject) constituent molecule in an (object) molecular complex (might also generically cover RNA-Protein, Lipid-Protein, etc complexes)
      - SIO:010285

  in cell population with:
    description: >-
      holds between two genes or gene products that are expressed in the same cell type or population
    is_a: coexists with
    domain: gene or gene product
    range: gene or gene product
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true

  colocalizes with:
    description: >-
      holds between two entities that are observed to be located in the same place.
    is_a: coexists with
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:00002325

  # Despite the name, note that this particular entity is
  # NOT a biolink:Association but rather, a biolink:predicate
  genetic association:
    is_a: related to
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      Co-occurrence of a certain allele of a genetic marker and the phenotype
      of interest in the same individuals at above-chance level
    exact_mappings:
      - WIKIDATA_PROPERTY:P2293

  gene associated with condition:
    is_a: genetic association
    description: >-
      holds between a gene and a disease or phenotypic feature that the gene or its alleles/products may influence, contribute to, or correlate with
    domain: gene
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - RTXKG1:gene_associated_with_condition
    broad_mappings:
      # broader than a single gene: 'genotype' pathogenic for condition?
      - GENO:0000840
      - GENO:0000841
    narrow_mappings:
      # narrower: just diseases, not phenotypic features as well
      - NCIT:R38
      - NCIT:R175
      - NCIT:R48

  condition associated with gene:
    is_a: genetic association
    description: >-
      holds between a gene and a disease or phenotypic feature that may be influenced, contribute to, or be correlated with the gene or its alleles/products
    domain: disease or phenotypic feature
    range: gene
    in_subset:
      - translator_minimal
    inverse: gene associated with condition
    narrow_mappings:
      # narrower since just diseases, not phenotypic features as well
      - NCIT:R176
      - hetio:ASSOCIATES_DaG

  affects risk for:
    is_a: related to
    description: >-
      holds between two entities where exposure to one entity alters the chance of developing the other
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal

  risk affected by:
    is_a: related to
    inverse: affects risk for

  predisposes:
    is_a: affects risk for
    description: >-
      holds between two entities where exposure to one entity increases the chance of developing the other
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SEMMEDDB:PREDISPOSES
      - SEMMEDDB:predisposes

  # TODO: inverse of predisposes

  contributes to:
    is_a: related to
    description: >-
      holds between two entities where the occurrence, existence, or activity of one causes or contributes to the occurrence or generation of the other
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # RTX contributed mapping tagged as 'inverse' of this Biolink predicate
      - IDO:0000664
    exact_mappings:
      - RO:0002326
    narrow_mappings:
      - CTD:marker_mechanism
      - MONDO:predisposes_towards
      # RTX mapped this to 'biolink:related_to' but this term seems a more precise mapping
      - RO:0002255
      # RTX term 'contributes to condition' mapped to 'biolink:causes' seems more suitable here
      - RO:0003304

  contribution from:
    is_a: related to
    in_subset:
      - translator_minimal
    inverse: contributes to

  causes:
    description: >-
      holds between two entities where the occurrence, existence, or activity of one causes the occurrence
      or generation of the other
    is_a: contributes to
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SEMMEDDB:CAUSES
      - SEMMEDDB:causes
      - WIKIDATA_PROPERTY:P1542
      - SNOMED:cause_of
    broad_mappings:
      - RO:0002410
      - RO:0002506
    narrow_mappings:
      - MONDO:disease_triggers
      - GOREL:0000040
      - MONDO:disease_causes_feature
      - MONDO:disease_triggers
      - NCIT:allele_has_abnormality
      - NCIT:biological_process_has_result_biological_process
      - NCIT:chemical_or_drug_has_physiologic_effect
      # RTX mapped terms as 'biolink:part_of' but implied sequence of causality suggests 'biolink:causes'?
      - NCIT:chemical_or_drug_initiates_biological_process
      - NCIT:process_initiates_biological_process
      - NCIT:chromosome_mapped_to_disease
      - NCIT:disease_has_normal_tissue_origin
      - OBO:nbo#in_response_to
      - ORPHA:317343
      - ORPHA:317344
      - ORPHA:317346
      - ORPHA:410295
      - ORPHA:410296
      # RTX mapped this term to 'biolink:related_to' but this term seems a more precise mapping
      - RO:0002256
      - RO:0002315
      - RO:0002507
      - RO:0002509
      - RO:0004001
      # RTX mapping
      - RTXKG1:capable_of_part_of
      - SNOMED:causative_agent_of
      - SNOMED:has_realization
      - UMLS:has_physiologic_effect

  caused by:
    description: >-
      holds between two entities where the occurrence, existence,
      or activity of one is caused by the occurrence or generation of the other
    is_a: related to
    in_subset:
      - translator_minimal
    inverse: causes
    exact_mappings:
      - WIKIDATA_PROPERTY:P828
    narrow_mappings:
      - RO:0001022
      - RO:0002608
      - RO:0004019
      - RO:0004020
      - RO:0004028
      - RO:0009501
      - RTXKG1:disease_caused_by_disruption_of
      - RTXKG1:disease_has_basis_in_dysfunction_of
      - RTXKG1:realized_in_response_to
      - RTXKG1:realized_in_response_to_stimulus

  # TODO: ameliorates and exacerbates inverses.
  ameliorates:
    is_a: affects
    description: >-
      A relationship between an entity (e.g. a genotype,
      genetic variation, chemical, or environmental exposure)
      and a condition (a phenotype or disease), where the
      presence of the entity reduces or eliminates some or
      all aspects of the condition.
    # 'biological entity' currently includes 'exposure event' which covers alot of related ground
    domain: biological entity
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0003307
      - CTD:therapeutic

  exacerbates:
    is_a: affects
    description: >-
      A relationship between an entity (e.g. a chemical,
      environmental exposure, or some form of genetic variation)
      and a condition (a phenotype or disease), where the presence
      of the entity worsens some or all aspects of the condition.
    # 'biological entity' currently includes 'exposure event' which covers alot of related ground
    domain: biological entity
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0003309

  treats:
    aliases: ['is substance that treats']
    is_a: ameliorates
    description: >-
      holds between a therapeutic procedure or chemical entity
      and a disease or phenotypic feature that it is used to treat
    domain: chemical or drug or treatment
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    related_mappings:
      - MONDO:disease_responds_to
    exact_mappings:
      - DRUGBANK:treats
      - SEMMEDDB:TREATS
      - SEMMEDDB:treats
      - WIKIDATA_PROPERTY:P2175
    narrow_mappings:
      # "is substance that treats" constrains statements to
      # a subset of the universe of all possible treatments
      - RO:0002606
      - NCIT:regimen_has_accepted_use_for_disease
      # RTX mapped REPODB terms
      - REPODB:clinically_tested_approved_unknown_phase
      - REPODB:clinically_tested_suspended_phase_0
      - REPODB:clinically_tested_suspended_phase_1
      - REPODB:clinically_tested_suspended_phase_1_or_phase_2
      - REPODB:clinically_tested_suspended_phase_2
      - REPODB:clinically_tested_suspended_phase_2_or_phase_3
      - REPODB:clinically_tested_suspended_phase_3
      - REPODB:clinically_tested_terminated_phase_0
      - REPODB:clinically_tested_terminated_phase_1
      - REPODB:clinically_tested_terminated_phase_1_or_phase_2
      - REPODB:clinically_tested_terminated_phase_2
      - REPODB:clinically_tested_terminated_phase_2_or_phase_3
      - REPODB:clinically_tested_terminated_phase_3
      - REPODB:clinically_tested_withdrawn_phase_0
      - REPODB:clinically_tested_withdrawn_phase_1
      - REPODB:clinically_tested_withdrawn_phase_1_or_phase_2
      - REPODB:clinically_tested_withdrawn_phase_2
      - REPODB:clinically_tested_withdrawn_phase_2_or_phase_3
      - REPODB:clinically_tested_withdrawn_phase_3
      - RTXKG1:indicated_for
      - SNOMED:plays_role

  treated by:
    is_a: related to
    description: >-
      holds between a disease or phenotypic feature and a therapeutic
      process or chemical entity that is used to treat the condition
    domain: disease or phenotypic feature
    range: chemical or drug or treatment
    # range: chemical or drug or treatement
    in_subset:
      - translator_minimal
    inverse: treats
    exact_mappings:
      - WIKIDATA_PROPERTY:P2176
      # RTX contributed term tagged as inverse of 'biolink:treats'
      - MONDO:disease_responds_to
    narrow_mappings:
      # "is treated by substance" constrains statements to
      # subset of the universe of all possible treatments
      - RO:0002302

  approved to treat:
    description: >-
      holds between a therapeutic procedure or chemical entity
      and a disease or phenotypic feature for which it is approved
      for treatment to some level of clinical trial. Note that in
      terms of REPODB narrow mappings, terms containing 'suspended',
      'terminated' or 'withdrawn' should be mapped onto associations
      using this term for which 'negated: true' is asserted.
    is_a: treats
    domain: chemical or drug or treatment
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - NCIT:C172573
    narrow_mappings:
      - NCIT:R172
      - NCIT:regimen_has_accepted_use_for_disease
      # RTX mapped REPODB terms
      - REPODB:clinically_tested_approved_unknown_phase
      - REPODB:clinically_tested_suspended_phase_0
      - REPODB:clinically_tested_suspended_phase_1
      - REPODB:clinically_tested_suspended_phase_1_or_phase_2
      - REPODB:clinically_tested_suspended_phase_2
      - REPODB:clinically_tested_suspended_phase_2_or_phase_3
      - REPODB:clinically_tested_suspended_phase_3
      - REPODB:clinically_tested_terminated_phase_0
      - REPODB:clinically_tested_terminated_phase_1
      - REPODB:clinically_tested_terminated_phase_1_or_phase_2
      - REPODB:clinically_tested_terminated_phase_2
      - REPODB:clinically_tested_terminated_phase_2_or_phase_3
      - REPODB:clinically_tested_terminated_phase_3
      - REPODB:clinically_tested_withdrawn_phase_0
      - REPODB:clinically_tested_withdrawn_phase_1
      - REPODB:clinically_tested_withdrawn_phase_1_or_phase_2
      - REPODB:clinically_tested_withdrawn_phase_2
      - REPODB:clinically_tested_withdrawn_phase_2_or_phase_3
      - REPODB:clinically_tested_withdrawn_phase_3

  approved for treatment by:
    description: >-
      holds between a disease or phenotypic feature and a therapeutic process
      or chemical entity that is approved for treatment of the condition
      (or not, if negated) to some level of clinical trial
    is_a: treated by
    range: chemical or drug or treatment
    inverse: approved to treat

  prevents :
    is_a: affects risk for
    description: >-
      holds between an entity whose application or use reduces
      the likelihood of a potential outcome. Typically used to associate
      a chemical entity, exposure, activity, or medical intervention
      that can prevent the onset a disease or phenotypic feature.
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - SEMMEDDB:PREVENTS
      - SEMMEDDB:prevents
    narrow_mappings:
      # more restricted case of a material entity mitigating a pathological process
      - RO:0002599
  
  prevented by:
    is_a: related to
    description: >-
      holds between a potential outcome of which the likelihood
      was reduced by the application or use of an entity.
    inverse: prevents

  correlated with:
    is_a: related to
    description: >-
      holds between any two named thing entities. For example, correlated_with
      holds between a disease or phenotypic feature and a measurable molecular
      entity that is used as an indicator of the presence or state of the disease or feature.
    domain: named thing
    range: named thing
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002610
      - PATO:correlates_with
    narrow_mappings:
      # RTX contributed term: note that association is not always correlation?
      - LOINC:associated_with
      - NCIT:is_associated_disease_of
      # RTX term deemed inverse of this biolink term?
      - NCIT:is_cytogenetic_abnormality_of_disease
      - ORPHA:317345
      - PDQ:associated_disease
      # RTX mapping for this term was just 'related_to' but there seems to be a stronger correlation implied
      - RO:0004029
      - RTXKG1:associated_with_disease
      - SNOMED:associated_with
      - SNOMED:has_associated_finding

  # proposed positive and negative semantic extensions to the general "correlated with" predicate

  positively correlated with:
    is_a: correlated with
    description: >-
      holds between any two named thing entities "correlated with" one another in a positive manner.
    domain: named thing
    range: named thing
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:positive_correlation

  negatively correlated with:
    is_a: correlated with
    description: >-
      holds between any two named thing entities "correlated with" one another in a negative manner.
    domain: named thing
    range: named thing
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:negative_correlation

  coexpressed with:
    is_a: correlated with
    description: >-
      holds between any two genes or gene products, in which both are
      generally expressed within a single defined experimental context.
    domain: gene or gene product
    range: gene or gene product
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true

  has biomarker:
    is_a: correlated with
    description: >-
      holds between a disease or phenotypic feature and a measurable
      chemical entity that is used as an indicator of the presence
      or state of the disease or feature.
      # metabolite
    domain: disease or phenotypic feature
    range: chemical entity
    in_subset:
      - translator_minimal
    inverse: biomarker for
    narrow_mappings:
      # some RTX terms contributed as inverses of 'biolink:biomarker_for'
      - NCIT:disease_has_finding
      - NCIT:disease_has_molecular_abnormality
      - NCIT:disease_is_marked_by_gene

  biomarker for:
    is_a: correlated with
    description: >-
      holds between a measurable chemical entity and a disease
      or phenotypic feature, where the entity is used as an indicator
      of the presence or state of the disease or feature.
    domain: chemical entity
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - NCIT:R39
    broad_mappings:
      # Generic marker definition not specific to biomarkers per say
      - RO:0002607
    narrow_mappings:
      - NCIT:R47
      # RTX term was tagged as 'biolink:actively_involved_in' but maps better here?
      - NCIT:genetic_biomarker_related_to
      - NCIT:is_molecular_abnormality_of_disease
      - ORPHA:465410
      - SEMMEDDB:diagnoses

  # It may be helpful to introduce an intermediate predicate in between 'related_to' and 'expressed in'
  # which would have a domain of 'biological entity' and range of 'anatomical entity', to map predicates
  # which are biological which have manifestation in an anatomical site, e.g. RO:0004026, RO:0004027 and others
  expressed in:
    is_a: related to
    description: >-
      holds between a gene or gene product and an anatomical entity in which it is expressed
    domain: gene or gene product
    range: anatomical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0002206
    narrow_mappings:
      - NCIT:R49
      - NCIT:R46
      - RTXKG1:expressed_in

  expresses:
    is_a: related to
    description: >-
      holds between an anatomical entity and gene or gene product that is expressed there
    domain: anatomical entity
    range: gene or gene product
    in_subset:
      - translator_minimal
    inverse: expressed in
    exact_mappings:
      - RO:0002292
      - hetio:EXPRESSES_AeG

  has phenotype:
    is_a: related to
    description: >-
      holds between a biological entity and a phenotype, where a phenotype
      is construed broadly as any kind of quality of an organism part,
      a collection of these qualities, or a change in quality or qualities
      (e.g. abnormally increased temperature).
    domain: biological entity
    range: phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    notes:
      - check the range
    in_subset:
      - translator_minimal
    close_mappings:
      # RTX contributed term tagged as 'inverse'
      - OMIM:phenotype_of
    exact_mappings:
      - RO:0002200
      - RTXKG1:has_phenotype
      - SNOMED:characterized_by
    broad_mappings:
      # Disease–presents–Symptom; symptom or finding may be a phenotype but not necessarily
      - hetio:PRESENTS_DpS
      - NCIT:R115
      - OMIM:has_phenotype
    narrow_mappings:
      - NCIT:R89
      - OBO:doid#has_symptom
      - RO:0004022

  phenotype of:
    is_a: related to
    description: >-
      holds between a phenotype and a biological entity, where a phenotype
      is construed broadly as any kind of quality of an organism part,
      a collection of these qualities, or a change in quality or qualities
      (e.g. abnormally increased temperature).
    domain: phenotypic feature
    range: biological entity
    inverse: has phenotype
    notes:
      - check the domain
    in_subset:
      - translator_minimal

  # TODO: predicate inverse for occurs in
  occurs in:
    is_a: related to
    description: >-
      holds between a process and a material entity or site within which the process occurs
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # These RTX mapped terms tagged as the inverse of "biolink:occurs_in", i.e. Entity/Site contains Process"
      - BFO:0000067
      - SNOMED:has_occurrence
      - UBERON:site_of
    exact_mappings:
      - BFO:0000066
      - PathWhiz:has_location
      - SNOMED:occurs_in
    narrow_mappings:
      # SemMedDb term 'OCCURS_IN' constrained to something (other than process) occurring in a group or population
      - SEMMEDDB:OCCURS_IN
      - SEMMEDDB:occurs_in
      # SemMedDb term 'PROCESS_IN' constrained specifically to a process occurring in the object concept entity
      - SEMMEDDB:PROCESS_OF
      - SEMMEDDB:process_of
      # Uberon term constrained to a 'site' as object concept
      - UBERON_CORE:site_of
      - LOINC:has_imaged_location
      - PathWhiz:in_species
      - RO:0002231
      - RO:0002232
      - SNOMED:has_direct_procedure_site
      - SNOMED:has_direct_site
      - SNOMED:has_procedure_site

  located in:
    is_a: related to
    description: >-
      holds between a material entity and a material entity or site
      within which it is located (but of which it is not considered a part)
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0001025
      - FMA:has_location
    narrow_mappings:
      - GOREL:0001004
      - BSPO:0000107
      - BSPO:0000108
      - BSPO:0000120
      - BSPO:0000121
      - BSPO:0000122
      - BSPO:0000123
      - BSPO:0000124
      - BSPO:0000125
      - BSPO:0000126
      - BSPO:0001100
      - BSPO:0001101
      - BSPO:0001107
      - BSPO:0015101
      - BSPO:0015102
      - BSPO:0015202
      - UBERON_CORE:in_central_side_of
      - UBERON_CORE:in_innermost_side_of
      - UBERON_CORE:in_outermost_side_of
      - NCIT:R100
      - EFO:0000784
      - FMA:has_location
      - HMDB:at_cellular_location
      - HMDB:at_tissue
      - HMDB:in_biospecimen
      - LOINC:has_imaging_focus
      - NCIT:R156
      - NCIT:R155
      - NCIT:R145
      - NCIT:R40
      - NCIT:is_location_of_anatomic_structure
      - NCIT:R171
      - NCIT:R167
      - NCIT:R165
      - NCIT:R169
      - NCIT:R170
      - NCIT:R166
      - NCIT:R168
      - RO:0002303
      - RTXKG1:disease_has_location
      - SNOMED:has_finding_site
      - SNOMED:has_indirect_procedure_site
      - SNOMED:has_inherent_location

  location of:
    is_a: related to
    description: >-
      holds between material entity or site and a material entity
      that is located within it (but not considered a part of it)
    in_subset:
      - translator_minimal
    inverse: located in
    exact_mappings:
      - RO:0001015
      - SEMMEDDB:LOCATION_OF
      - SEMMEDDB:location_of
      - WIKIDATA_PROPERTY:P276
      # RTX tagged this as an inverse of biolink:located_in
      - FMA:location_of
      - RTXKG1:site_of
    narrow_mappings:
      - SNOMED:inherent_location_of

  similar to:
      is_a: related to
      description: >-
        holds between an entity and some other entity with similar features.
      in_subset:
        - translator_minimal
      symmetric: true
      annotations:
        tag: biolink:canonical_predicate
        value: true
      exact_mappings:
        - RO:HOM0000000               #I don't understand this identifier, but I think it's equivalent
        - SO:similar_to               #equivalent

  chemically similar to:
    is_a: similar to
    description: >-
      holds between one small molecule entity and another that it approximates
      for purposes of scientific study, in virtue of its exhibiting
      similar features of the studied entity.
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      - CHEBI:has_parent_hydride    #subproperty
      - CHEBI:has_functional_parent #subproperty
      - CHEBI:is_conjugate_acid_of  #subproperty
      - CHEBI:is_conjugate_base_of  #subproperty
      - CHEBI:is_enantiomer_of      #subproperty
      - CHEBI:is_tautomer_of        #subproperty
      - NCIT:has_salt_form

  has sequence location:
    is_a: related to
    description: >-
      holds between two nucleic acid entities when the subject can be localized
      in sequence coordinates on the object. For example, between
      an exon and a chromosome/contig.
    domain: nucleic acid entity
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - faldo:location

  sequence location of:
    is_a: related to
    domain: nucleic acid entity
    range: nucleic acid entity
    inverse: has sequence location

  model of:
    is_a: related to
    description: >-
      holds between a thing and some other thing it approximates
      for purposes of scientific study, in virtue of its exhibiting
      similar features of the studied entity.
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0003301
    narrow_mappings:
      - FOODON:00001301

  models:
    is_a: related to
    inverse: model of

  overlaps:
    is_a: related to
    description: >-
      holds between entities that overlap in their extents (materials or processes)
    in_subset:
      - translator_minimal
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - RO:0002131
    narrow_mappings:
      - BSPO:0005001
      - CHEMBL.MECHANISM:overlaps_with
      - RO:0002100
      - RO:0002102
      - RO:0002433

  has part:
    is_a: overlaps
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      holds between wholes and their parts (material entities or processes)
    in_subset:
      - translator_minimal
    exact_mappings:
      - BFO:0000051
      # term name seems to be 'realizes' but RTX maps this term here
      - BFO:0000055
      - WIKIDATA_PROPERTY:P527
      - RO:0001019
      - RTXKG1:has_part
      - RXNORM:consists_of
      - RXNORM:has_part
    broad_mappings:
      # To 'contain' is 'to have something inside or include something as a part'; slightly broader?
      - RO:0001019
      - FMA:contains
      - RXNORM:contains
    narrow_mappings:
      - BFO:0000117
      # RTX term originally mapped to 'biolink:coexists_with'?
      - FMA:has_constitutional_part
      - FMA:has_part
      # Several of the following RTX terms were originally mapped as inverses to 'biolink:part_of'?
      - FMA:has_member
      - FOODON:00001563
      - FOODON:00002420
      - LOINC:has_component
      - LOINC:has_member
      - MEDDRA:has_member
      - MONDO:disease_has_major_feature
      - NCIT:complex_has_physical_part
      - NDDF:has_ingredient
      - PathWhiz:has_element_in_bound
      # This RTX contributed term was tagged as 'biolink:has_gene_product' but seems more compositional in nature
      - NCIT:R50
      - PDQ:has_component
      - PathWhiz:has_protein_in_complex
      - RO:0002104
      - RO:0002180
      - RO:0002351
      - RO:0002473
      - RO:0002524
      - RO:0002551
      - RTXKG1:composed_primarily_of
      - RTXKG1:contains_process
      - RTXKG1:has_plasma_membrane_part
      - RXNORM:has_ingredient
      - SNOMED:has_component
      - UMLS:has_component

  part of:
    is_a: overlaps
    description: >-
      holds between parts and wholes (material entities or processes)
    in_subset:
      - translator_minimal
    inverse: has part
    exact_mappings:
      - BFO:0000050
      - SEMMEDDB:PART_OF
      - SEMMEDDB:part_of
      - WIKIDATA_PROPERTY:P361
      - FMA:part_of
      - RXNORM:constitutes
      - RXNORM:part_of
    broad_mappings:
      # To 'contain' is 'to have something inside or include something as a part'
      - RO:0001018
      - FMA:contained_in
      - RXNORM:contained_in
    narrow_mappings:
      - BSPO:0001106
      - BSPO:0001108
      - BSPO:0001113
      - BSPO:0001115
      - UBERON_CORE:layer_part_of
      - UBERON_CORE:subdivision_of
      - UBERON_CORE:trunk_part_of
      - CHEBI:is_substituent_group_from
      - CPT:panel_element_of
      - CPT:panel_element_of_possibly_included
      - DRUGBANK:component_of
      - FMA:constitutional_part_of
      - FMA:member_of
      - FMA:regional_part_of
      - FMA:related_developmental_entity_of
      - LOINC:component_of
      - LOINC:has_supersystem
      - LOINC:member_of
      - LOINC:multipart_of
      - MEDDRA:member_of
      - MONDO:part_of_progression_of_disease
      - NCIT:R82
      - NCIT:R27
      - NCIT:is_component_of_chemotherapy_regimen
      - NDDF:ingredient_of
      - PDQ:component_of
      - RO:0002007
      - RO:0002350
      - RO:0002376
      - RO:0002380
      - RO:0002571
      - RO:0002572
      - RO:0002576
      - RXNORM:ingredient_of
      - RXNORM:ingredients_of
      - RXNORM:precise_ingredient_of
      - SNOMED:active_ingredient_of
      - SNOMED:basis_of_strength_substance_of
      - SNOMED:component_of
      - SNOMED:direct_substance_of
      - SNOMED:during
      - SNOMED:focus_of
      - SNOMED:has_dependent
      - SNOMED:part_anatomy_structure_of
      - SNOMED:precise_active_ingredient_of
      - UBERON:subdivision_of
      - UMLS:component_of
      - UMLS:has_owning_affiliate
      - UMLS:owning_subsection_of
      - VANDF:ingredient_of

  has input:
    is_a: has participant
    description: >-
      holds between a process and a continuant, where the continuant is an input into the process
    domain: occurrent
    range: biological process or activity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    close_mappings:
      # RTX inverse mapping to to 'biolink:has_input'
      - RO:0002352
    exact_mappings:
      - RO:0002233
      - SEMMEDDB:USES
      - SEMMEDDB:uses
    narrow_mappings:
      - LOINC:has_fragments_for_synonyms
      - LOINC:has_system
      - PathWhiz:has_left_element
      - RO:0002590
      - RO:0004009
      - SNOMED:has_finding_method
      - SNOMED:has_precondition
      - SNOMED:has_specimen_source_identity
      - SNOMED:has_specimen_substance
      - SNOMED:uses_access_device
      - SNOMED:uses_device
      - SNOMED:uses_energy
      - SNOMED:uses_substance

  is input of:
    is_a: has participant
    domain: biological process or activity
    range: occurrent
    inverse: has input
    in_subset:
      - translator_minimal

  has output:
    is_a: has participant
    description: >-
      holds between a process and a continuant, where the continuant is an output of the process
    domain: occurrent
    range: biological process or activity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    close_mappings:
      # RTX inverse mapping to to 'biolink:has_output'
      - RO:0002353
      - RO:0002354
      - RTXKG1:output_of
    exact_mappings:
      - RO:0002234
    narrow_mappings:
      - NCIT:R31
      - OBI:0000299
      - PathWhiz:has_right_element
      - RO:0002296
      - RO:0002297
      - RO:0002298
      - RO:0002299
      - RO:0002588
      - RO:0004008

  is output of:
    is_a: has participant
    range: occurrent
    domain: biological process or activity
    inverse: has output
    in_subset:
      - translator_minimal

  has participant:
    is_a: related to
    description: >-
      holds between a process and a continuant, where the continuant is somehow involved in the process
    domain: occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    close_mappings:
      - WIKIDATA_PROPERTY:P2283
    exact_mappings:
      - RO:0000057
      - RO:has_participant
    narrow_mappings:
      - BFO:0000167
      # Several of the following RTX terms tagged as inverse to 'biolink:participates_in'
      - LOINC:has_subject
      - NCIT:pathway_has_gene_element
      - NCIT:process_involves_gene
      - OBO:nbo#has_participant
      - PathWhiz:has_bound
      - PathWhiz:has_compound
      - PathWhiz:has_element_collection
      - PathWhiz:has_enzyme
      # RTX mapped the following term as 'biolink:superclass_of' but term seem compositional in nature
      - NCIT:process_includes_biological_process
      - OBI:0000293
      - PathWhiz:has_nucleic_acid
      - PathWhiz:has_protein
      - PathWhiz:has_reaction
      - RO:0004007
      - RO:0004020
      - RO:0004021
      - SNOMED:has_indirect_device
      - SNOMED:has_procedure_device
      - SNOMED:has_recipient_category

  catalyzes:
    is_a: has participant
    # domain: nucleic acid entity
    # range: molecular activity
    annotations:
      tag: biolink:canonical_predicate
      value: true

  is catalyst of:
    is_a: participates in
    inverse: catalyzes

  has substrate:
    is_a: has participant
    # domain: molecular activity
    # range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true

  is substrate of:
    is_a: participates in
    inverse: has substrate

  participates in:
    is_a: related to
    description: >-
      holds between a continuant and a process, where the continuant is somehow involved in the process
    range: occurrent
    inverse: has participant
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0000056
      - BFO:0000056
      - RTXKG1:participates_in
    narrow_mappings:
      - DRUGBANK:pathway
      - HMDB:in_pathway
      - LOINC:is_given_pharmaceutical_substance_for
      - NCIT:R130
      - NCIT:R37
      - NCIT:R131
      - NCIT:R51
      - NCIT:R53
      - OBI:0000295
      - RO:0002216
      - RO:0002505
      - RO:0002565
      - SNOMED:has_direct_device

  actively involved in:
    is_a: participates in
    description: >-
      holds between a continuant and a process or function, where
      the continuant actively contributes to part or all of
      the process or function it realizes
    domain: molecular activity
    range: occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    close_mappings:
      # RTX term tagged as inverse
      - NCIT:biological_process_involves_chemical_or_drug
    broad_mappings:
      # could the involvement be either active or passive?
      - RTXKG1:involved_in
    exact_mappings:
      - RO:0002331
      - RO:0002432
    narrow_mappings:
      # RTX contribute mapping, may belong somewhere else?
      - NCIT:gene_involved_in_molecular_abnormality
      - OBO:nbo#by_means
      - ORPHA:317348
      - ORPHA:317349
      - ORPHA:327767
      - RO:0002503

  actively involves:
    is_a: participates in
    domain: occurrent
    range: molecular activity
    inverse: actively involved in
    exact_mappings:
      - RO:0002331
    in_subset:
      - translator_minimal

  capable of:
    is_a: actively involved in
    description: >-
      holds between a physical entity and process or function, where the
      continuant alone has the ability to carry out the process or function.
    range: occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - RO:0002215
      - RTXKG1:capable_of
    narrow_mappings:
      - NCIT:R52
      - RO:0002500

  enables:
    is_a: participates in
    description: >-
      holds between a physical entity and a process, where the physical entity executes the process
    domain: physical entity
    range: biological process or activity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    inverse: enabled by
    exact_mappings:
      - RO:0002327

  enabled by:
    is_a: has participant
    description: >-
      holds between a process and a physical entity, where the physical entity executes the process
    domain: biological process or activity
    range: physical entity
    in_subset:
      - translator_minimal
    inverse: enables
    exact_mappings:
      - RO:0002333

  derives into:
    is_a: related to
    description: >-
      holds between two distinct material entities, the old entity and
      the new entity, in which the new entity begins to exist when
      the old entity ceases to exist, and the new entity inherits
      the significant portion of the matter of the old entity
    in_subset:
      - translator_minimal
    inverse: derives from
    exact_mappings:
      - RO:0001001
      - SEMMEDDB:CONVERTS_TO
      - SEMMEDDB:converts_to
      # RTX posted terms as inverse of 'biolink:derives_from'
      - FMA:derives
      - NCIT:is_normal_cell_origin_of_disease
      - NCIT:may_be_normal_cell_origin_of_disease

  derives from:
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      holds between two distinct material entities, the new entity
      and the old entity, in which the new entity begins to exist
      when the old entity ceases to exist, and the new entity
      inherits the significant portion of the matter of the old entity
    in_subset:
      - translator_minimal
      - samples
    inverse: derives into
    exact_mappings:
      - RO:0001000
      - FMA:derives_from
      - OBO:doid#derives_from
    narrow_mappings:
      - CHEBI:has_functional_parent
      - SNOMED:has_specimen_source_topography

  is metabolite of:
    is_a: derives from
    description: >-
      holds between two molecular entities in which the first one is derived
      from the second one as a product of metabolism
    domain: molecular entity
    range: molecular entity
    in_subset:
      - translator_minimal
    inverse: has metabolite
    comments:
      - The CHEBI ID represents a role rather than a predicate
    exact_mappings:
      - CHEBI:25212

  has metabolite:
    is_a: derives into
    description: >-
      holds between two molecular entities in which the second one is derived from the first
      one as a product of metabolism
    domain: molecular entity
    range: molecular entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    comments:
      - The CHEBI ID represents a role rather than a predicate
    exact_mappings:
      - CHEBI:25212

  food component of:
    is_a: part of
    description: >-
      holds between a one or more chemical entities present in food,
      irrespective of nutritional value (i.e. could also be a contaminant or additive)
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    inverse: has food component
    #mappings:
    #  -

  has food component:
    is_a: has part
    description: >-
      holds between food and one or more chemical entities composing it,
      irrespective of nutritional value (i.e. could also be a contaminant or additive)
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal

  nutrient of:
    is_a: food component of
    description: >-
      holds between a one or more chemical entities present in food,
      irrespective of nutritional value (i.e. could also be a contaminant or additive)
    domain: chemical entity
    range: chemical entity
    in_subset:
      - translator_minimal
    inverse: has nutrient
    #exact_mappings:
    #  -

  has nutrient:
    is_a: has food component
    description: >-
      one or more nutrients which are growth factors for a living organism
    domain: chemical entity
    range: chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - WIKIDATA:Q181394

  is active ingredient of:
    is_a: part of
    description: >-
      holds between a molecular entity and a drug, in which the former
      is a part of the latter, and is a biologically active component
    domain: molecular entity
    range: drug
    in_subset:
      - translator_minimal
    inverse: has active ingredient
    mappings:
      - RO:0002249

  has active ingredient:
    is_a: has part
    description: >-
      holds between a drug and a molecular entity in which the latter
      is a part of the former, and is a biologically active component
    domain: drug
    range: molecular entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    inverse: is active ingredient of
    mappings:
      - RO:0002248

  is excipient of:
    is_a: part of
    description: >-
      holds between a molecular entity and a drug in which the former is
      a part of the latter, and is a biologically inactive component
    domain: molecular entity
    range: drug
    in_subset:
      - translator_minimal
    inverse: has excipient
    mappings:
      - WIKIDATA:Q902638

  has excipient:
    is_a: has part
    description: >-
      holds between a drug and a molecular entities in which the latter
      is a part of the former, and is a biologically inactive component
    domain: drug
    range: molecular entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    mappings:
      - WIKIDATA:Q902638

  manifestation of:
    is_a: related to
    description: >-
      that part of a phenomenon which is directly observable or
      visibly expressed, or which gives evidence to the underlying
      process; used in SemMedDB for linking things like dysfunctions
      and processes to some disease or syndrome
    range: disease
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    exact_mappings:
      - SEMMEDDB:MANIFESTATION_OF
      - SEMMEDDB:manifestation_of
      - OMIM:manifestation_of
    broad_mappings:
      # Wikidata definition slightly broader: "inherent and characteristic embodiment of a given concept"
      - WIKIDATA_PROPERTY:P1557
    narrow_mappings:
      - SNOMED:has_definitional_manifestation

  has manifestation:
    is_a: related to
    domain: disease
    inverse: manifestation of

  produces:
    is_a: related to
    description: >-
      holds between a material entity and a product that is generated
      through the intentional actions or functioning of the material entity
    in_subset:
      - translator_minimal
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - GOREL:0001010
    exact_mappings:
      - RO:0003000
      - WIKIDATA_PROPERTY:P1056
      - SEMMEDDB:PRODUCES
      - SEMMEDDB:produces
    narrow_mappings:
      - NCIT:R29
      - SNOMED:has_process_output
      - SNOMED:specimen_procedure_of

  produced by:
    is_a: related to
    inverse: produces
    exact_mappings:
      - RO:0003001

  consumes:
    is_a: has input
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      - RO:0004009

  consumed by:
    inverse: consumes

  temporally related to:
    is_a: related to
    description: >-
      holds between two entities with a temporal relationship
    domain: occurrent
    range: occurrent
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SNOMED:temporally_related_to
    narrow_mappings:
      # The These RTX mappings are temporal in nature, but not with precedes ordering, so mapped here
      - RO:0002082
      - RO:0002083
      - RO:0002092
      - RO:0002093
      - RO:0002223
      - RO:0002224
      - RO:0002229
      - RO:0002230
      - RO:0002488
      - RO:0002489
      - RO:0002492
      - RO:0002493
      - RO:0002496
      - RO:0002497

  precedes:
    is_a: temporally related to
    description: >-
      holds between two processes, where one completes before the other begins
    domain: occurrent
    range: occurrent
    annotations:
      tag: biolink:canonical_predicate
      value: true
    in_subset:
      - translator_minimal
    close_mappings:
      # the subject of these terms is a material entity, not a process,
      # but affects a process which causes a second process to occur
      - RO:0002263
      - RO:0002264
    exact_mappings:
      - BFO:0000063
      - SEMMEDDB:PRECEDES
      - SEMMEDDB:precedes
      - SNOMED:occurs_before
    broad_mappings:
      # the Wikidata definition is subtly broader, focusing on a series not strictly temporal in nature
      - WIKIDATA_PROPERTY:P156
    narrow_mappings:
      - FMA:transforms_into
      - RO:0002090
      - RO:0002411
      - RO:0002412

  preceded by:
    is_a: temporally related to
    description: >-
      holds between two processes, where the other is completed before the one begins
    domain: occurrent
    range: occurrent
    inverse: precedes
    in_subset:
      - translator_minimal
    exact_mappings:
      - BFO:0000062
    broad_mappings:
      # Contributed by RTX as inverse of 'precedes'. Seems more generic to just processes, so we tag it as 'broad'?
      - GENEPIO:0001739
    narrow_mappings:
      # RTX contributed mapping was given as the inverse of 'biolink:precedes'
      - FMA:transforms_from
      - RO:0002087
      - RO:0002285

  directly interacts with:
    is_a: interacts with
    description: Holds between chemical entities that physically and directly interact
      with each other
    domain: chemical entity
    range: chemical entity
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    related_mappings:
      - GAMMA:kd
      - GAMMA:kb
      - GAMMA:potency
    exact_mappings:
      - chembio:interacts
      - CTD:interacts_with
      - GAMMA:interacts_with
    broad_mappings:
      # Definition of this term is more generic than direct physical molecular interactions:
      # A is connected to B iff there exists a fiat, material or temporal path between A and B.
      - SIO:000203
    narrow_mappings:
      - PHAROS:drug_targets
      - DRUGBANK:chelator
      - GAMMA:antibody_binding
      - GAMMA:pharmacological_chaperone
      - GAMMA:releasing_agent
      - GAMMA:pharmacological_chaperone
      - GAMMA:releasing_agent
      - GAMMA:binder
      - GAMMA:binding
      - GAMMA:ligand
      - GAMMA:cofactor
      - GAMMA:multitarget
      - GAMMA:chaperone
      - GAMMA:component
      - GAMMA:adduct
      - GAMMA:antibody
      - CTD:affects_binding
      - DGIdb:binder
      - DGIdb:cofactor

  affects expression in:
    is_a: affects
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: Holds between a variant and an anatomical entity where the expression of the variant
       is located in.
    exact_mappings:
      - GTEx:affects_expression_in

  has variant part:
    is_a: has part
    description: holds between a nucleic acid entity and a nucleic acid entity that is a sub-component of it
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - GENO:0000382

  variant part of:
    is_a: part of
    inverse: has variant part

  related condition:
    is_a: related to
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - GENO:0000790

  ## Predicates relating variants to genes

  is sequence variant of:
    is_a: related to
    description: holds between a sequence variant and a nucleic acid entity
    domain: sequence variant
    range: nucleic acid entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      # RTX contributed term mappings tagged elsewhere but mapped better here
      - NCIT:gene_product_sequence_variation_encoded_by_gene_mutant
      - NCIT:gene_product_variant_of_gene_product
      - OMIM:allelic_variant_of
      - WIKIDATA:P3433

  has sequence variant:
    is_a: related to
    inverse: is sequence variant of
    domain: nucleic acid entity
    range: sequence variant

  is missense variant of:
    is_a: is sequence variant of
    description: holds between a gene  and a sequence variant, such the sequence variant
      results in a different amino acid sequence but where the length is preserved.
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SO:0001583
      - SNPEFF:missense_variant
    narrow_mappings:
      - SNPEFF:initiator_codon_variant
      - SNPEFF:structural_interaction_variant

  has missense variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is missense variant of

  is synonymous variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene, such the sequence variant
      is in the coding sequence of the gene, but results in the same amino acid sequence
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SO:0001819
      - SNPEFF:synonymous_variant
    narrow_mappings:
      - SNPEFF:start_retained
      - SNPEFF:stop_retained_variant

  has synonymous variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is synonymous variant of

  is nonsense variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene, such the sequence variant
      results in a premature stop codon
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SNPEFF:stop_gained
    broad_mappings:
      # Term definition broader than nonsense codon: A sequence variant whereby
      # the gene product has diminished or abolished function.
      - SO:0002054

  has nonsense variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is nonsense variant of

  is frameshift variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene, such the sequence variant
      causes a disruption of the translational reading frame, because the number of
      nucleotides inserted or deleted is not a multiple of three.
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SO:0001589
      - SNPEFF:frameshift_variant
    narrow_mappings:
      # These are particular narrow consequences of a frameshift variant?
      - SNPEFF:start_lost
      - SNPEFF:stop_lost

  has frameshift variant:
    is_a: is sequence variant of
    inverse: is frameshift variant of
    domain: gene
    range: sequence variant

  is splice site variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene, such the sequence variant
      is in the canonical splice site of one of the gene's exons.
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - SO:0001629
    narrow_mappings:
      # These are particular narrow consequences of a splice site variant
      - SNPEFF:splice_region_variant
      - SNPEFF:splice_acceptor_variant
      - SNPEFF:splice_donor_variant

  has splice site variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is splice site variant of

  is nearby variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene sequence that the variant
      is genomically close to.
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - GAMMA:0000102
    narrow_mappings:
      # these are more precisely positioned 'nearby variant' locations
      - SNPEFF:downstream_gene_variant
      - SNPEFF:upstream_gene_variant

  has nearby variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is nearby variant of

  is non coding variant of:
    is_a: is sequence variant of
    description: holds between a sequence variant and a gene, where the variant does
      not affect the coding sequence
    domain: sequence variant
    range: gene
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - GAMMA:0000103
    narrow_mappings:
      # More narrow but precisely defined instances of non coding sequence variants
      - SNPEFF:3_prime_UTR_variant
      - SNPEFF:5_prime_UTR_variant
      - SNPEFF:5_prime_UTR_premature_start_codon_gain_variant
      - SNPEFF:non_coding_transcript_exon_variant
      - SNPEFF:intron_variant

  has non coding variant:
    is_a: is sequence variant of
    domain: gene
    range: sequence variant
    inverse: is non coding variant of

  # relating disease to process

  disease has basis in:
    description: A relation that holds between a disease and an entity where the state
      of the entity has contribution to the disease.
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      # These two MONDO terms seem more particular than the predicate
      - MONDO:disease_has_basis_in_development_of
      - MONDO:disease_has_basis_in_accumulation_of


  # These may be pushable to causal relationships, but seem important for clarity
  # Also because causes adverse event tends to be very noisy and it's useful to be able
  # to distinguish it.  maybe not the best way to do that though.

  causes adverse event:
    is_a: causes
    description: holds between a drug and a disease or phenotype that can be caused
      by the drug
    domain: drug
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - Aeolus:0000001

  adverse event caused by:
    is_a: causes
    domain: disease or phenotypic feature
    range: drug
    inverse: causes adverse event

  contraindicated for:
    is_a: related to
    description: Holds between a drug and a disease or phenotype, such that a person
      with that disease should not be treated with the drug.
    domain: drug
    range: disease or phenotypic feature
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - NCIT:C37933
      - RTXKG1:contraindicated_for

  has contraindication:
    is_a: related to
    domain: disease or phenotypic feature
    range: drug
    inverse: contraindicated for

  # The remaining new slots are here because we ran across them somewhere and
  # they didn't seem to map well to anything else.

  has not completed:
    is_a: related to
    description: holds between an entity and a process that the entity is capable of,
      but has not completed
    exact_mappings:
      - CL:has_not_completed
    annotations:
      tag: biolink:canonical_predicate
      value: true

  not completed by:
    is_a: related to
    inverse: has not completed

  has completed:
    is_a: related to
    description: holds between an entity and a process that the entity is capable of
      and has completed
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CL:has_completed
      - RTXKG1:has_completed

  completed by:
    is_a: related to
    inverse: has completed

  decreases molecular interaction:
    is_a: molecularly interacts with
    description: indicates that the source decreases the molecular interaction between
      the target and some other chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:decreases_molecular_interaction_with

  molecular interaction decreased by:
    is_a: molecularly interacts with
    inverse: decreases molecular interaction

  increases molecular interaction:
    is_a: molecularly interacts with
    description: indicates that the source increases the molecular interaction between
      the target and some other chemical entity
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CTD:increases_molecular_interaction_with

  molecular interaction increased by:
    is_a: molecularly interacts with
    inverse: increases molecular interaction

  in linkage disequilibrium with:
    is_a: related to
    description: holds between two sequence variants, the presence of which are correlated
      in a population
    symmetric: true
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - NCIT:C16798

  has increased amount:
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      - CL:has_high_plasma_membrane_amount

  increased amount of:
    is_a: related to
    inverse: has increased amount

  has decreased amount:
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      - CL:has_low_plasma_membrane_amount

  decreased amount in:
    is_a: related to
    inverse: has decreased amount

  lacks part:
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    exact_mappings:
      - CL:lacks_part
      - PR:lacks_part
      - RTXKG1:lacks_part
    narrow_mappings:
      - CL:lacks_plasma_membrane_part

  missing from:
    is_a: related to
    inverse: lacks part

  develops from:
    is_a: related to
    annotations:
      tag: biolink:canonical_predicate
      value: true
    close_mappings:
      # RTX mapping seems to be inverse of 'biolink:develops_from'
      - RO:0002203
      - FMA:develops_into
    exact_mappings:
      - BTO:develops_from
      - DDANAT:develops_from
      - FMA:develops_from
      - RO:0002202
    narrow_mappings:
      - RO:0002207
      - RO:0002225 # x develops from part of y if and only if there exists some z such that x develops from z and z is part of y
      - RO:0002226 # x develops_in y if x is located in y whilst x is developing

  develops into:
     is_a: related to
     inverse: develops from

  in taxon:
    aliases:
      - instance of
    is_a: related to
    domain: thing with taxon
    range: organism taxon
    annotations:
      tag: biolink:canonical_predicate
      value: true
    description: >-
      connects an entity to its taxonomic classification. Only certain kinds
      of entities can be taxonomically classified; see 'thing with taxon'
    in_subset:
      - translator_minimal
    related_mappings:
      # RO term 'never in taxon' is a negation of this biolink term
      - RO:0002162
    close_mappings:
      # RTX contributed term is an inverse mapping
      - NCIT:is_organism_source_of_gene_product
      - NCIT:organism_has_gene
    exact_mappings:
      - WIKIDATA_PROPERTY:P703
    narrow_mappings:
      - NCIT:gene_found_in_organism
      - NCIT:gene_product_has_organism_source
      - RO:0002160

  has molecular consequence:
    is_a: related to
    description: >-
      connects a sequence variant to a class describing the molecular
      consequence. E.g.  SO:0001583
    range: ontology class
    annotations:
      tag: biolink:canonical_predicate
      value: true
    narrow_mappings:
      - NCIT:allele_has_activity

  is molecular consequence of:
    is_a: related to
    domain: ontology class
    inverse: has molecular consequence

## --------------------
## ASSOCIATION SLOTS
## --------------------

  association slot:
    abstract: true
    domain: association
    aliases: ['edge property', 'statement property']
    description: >-
      any slot that relates an association to another entity

  original_subject:
    is_a: association slot
    description: >-
      used to hold the original subject of a relation (or predicate) that an external knowledge
      source uses before transformation to match the biolink-model specification.

  original_object:
    is_a: association slot
    description: >-
      used to hold the original object of a relation (or predicate) that an external knowledge
      source uses before transformation to match the biolink-model specification.

  original_predicate:
    aliases: ['original relation', 'relation']
    is_a: association slot
    description: >-
      used to hold the original relation/predicate that an external knowledge
      source uses before transformation to match the biolink-model specification.
    id_prefixes:
      - RO
      - BSPO
      - SIO
    domain: association
    range: uriorcurie

  subject:
    is_a: association slot
    local_names:
      ga4gh: annotation subject
      neo4j: node with outgoing relationship
    description: >-
      connects an association to the subject of the association.
      For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.
    required: true
    range: named thing
    slot_uri: rdf:subject
    exact_mappings:
      - owl:annotatedSource
      - OBAN:association_has_subject

  object:
    is_a: association slot
    description: >-
      connects an association to the object of the association.
      For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.
    required: true
    range: named thing
    local_names:
      ga4gh: descriptor
      neo4j: node with incoming relationship
    slot_uri: rdf:object
    exact_mappings:
      - owl:annotatedTarget
      - OBAN:association_has_object

  predicate:
    is_a: association slot
    description: >-
      A high-level grouping for the relationship type. AKA minimal predicate.
      This is analogous to category for nodes.
    domain: association
    notes: >-
      Has a value from the Biolink related_to hierarchy. In RDF,  this
      corresponds to rdf:predicate and in Neo4j this corresponds to the
      relationship type. The convention is for an edge label in snake_case
      form. For example, biolink:related_to, biolink:causes, biolink:treats
    range: predicate type
    required: true
    local_names:
      ga4gh: annotation predicate
      translator: predicate
    slot_uri: rdf:predicate
    exact_mappings:
      - owl:annotatedProperty
      - OBAN:association_has_predicate

  logical interpretation:
    is_a: association slot
    required: false
    domain: association
    range: logical_interpretation_enum
    exact_mappings:
      - os:LogicalInterpretation

  relation:
    is_a: association slot
    description: >-
      The relation which describes an association between a subject and
      an object in a more granular manner. Usually this is a term from
      Relation Ontology, but it can be any edge CURIE.
    domain: association
    range: uriorcurie
    required: true
    id_prefixes:
      - RO
      - BSPO
      - SIO

  negated:
    is_a: association slot
    range: boolean
    description: >-
      if set to true, then the association is negated i.e. is not true

  has confidence level:
    is_a: association slot
    range: confidence level
    description: >-
      connects an association to a qualitative term denoting the level of confidence

  has evidence:
    is_a: association slot
    range: evidence type
    description: >-
      connects an association to an instance of supporting evidence
    exact_mappings:
      - RO:0002558

  knowledge source:
    is_a: association slot
    description: >-
      An Information Resource from which the knowledge expressed in an Association was
      retrieved, directly or indirectly. This can be any resource through which the
      knowledge passed on its way to its currently serialized form. In practice,
      implementers should use one of the more specific subtypes of this generic property.
    range: information resource
    multivalued: true
    close_mappings:
      - pav:providedBy

  provided by:
    is_a: association slot
    deprecated: >-
      This slot is deprecated and replaced by a set of more precise slots for describing
      the source retrieval provenance of an Association.  These include 'knowledge source'
      and its descendants 'primary knowledge source', 'original knowledge source', and
      'aggregator knowledge source'.
    # deprecated_element_has_exact_replacement: knowledge source
    description: >-
      connects an association to the agent (person, organization or group) that provided it
    range: agent
    multivalued: true
    exact_mappings:
      - pav:providedBy

  primary knowledge source:
     is_a: knowledge source
     description: >-
       The most upstream source of the knowledge expressed in an Association that an
       implementer can identify (may or may not be the 'original' source).
     range: information resource
     multivalued: false

  original knowledge source:
    is_a: primary knowledge source
    description: >-
      The Information Resource that created the original record of the knowledge expressed
      in an Association (e.g. via curation of the knowledge from the literature, or
      generation of the knowledge de novo through computation, reasoning, inference over
      data).
    range: information resource
    multivalued: false

  aggregator knowledge source:
    is_a: knowledge source
    description: >-
      An intermediate aggregator resource from which knowledge expressed in an Association was
      retrieved downstream of the original source, on its path to its current serialized form.
    range: information resource
    multivalued: true

  supporting data source:
    is_a: association slot
    description: >-
      An Information Resource from which data was retrieved and subsequently used as
      evidence to generate the knowledge expressed in an Association (e.g. through
      computation on, reasoning or inference over the retrieved data).
    range: information resource
    multivalued: true

  association type:
    is_a: association slot
    range: category type
    deprecated: >-
      This slot is deprecated in favor of 'category' slot.
    deprecated_element_has_exact_replacement: category
    description: >-
      connects an association to the category of association (e.g. gene to phenotype)

  chi squared statistic:
    is_a: association slot
    range: float
    description: >-
      represents the chi-squared statistic computed from observations
    exact_mappings:
      - STATO:0000030

  p value:
    is_a: association slot
    range: float
    description: >-
      A quantitative confidence value that represents the probability of
      obtaining a result at least as extreme as that actually obtained,
      assuming that the actual value was the result of chance alone.
    exact_mappings:
      - OBI:0000175
      - NCIT:C44185
      - EDAM-DATA:1669

  interacting molecules category:
    is_a: association slot
    range: ontology class
    exact_mappings:
      - MI:1046
    values_from:
      - MI
    examples:
      - value: MI:1048
        description: smallmolecule-protein

  quantifier qualifier:
    is_a: association slot
    range: ontology class
    description: >-
      A measurable quantity for the object of the association
    narrow_mappings:
      # TODO: RTX contributed terms mapped here... May need review?
      - LOINC:analyzes
      - LOINC:measured_by
      - LOINC:property_of
      - SEMMEDDB:measures
      - UMLS:measures

  catalyst qualifier:
    is_a: association slot
    multivalued: true
    range: macromolecular machine mixin
    description: >-
      a qualifier that connects an association between two causally connected
      entities (for example, two chemical entities, or a chemical entity in
      that changes location) and the gene product, gene, or complex that
      enables or catalyzes the change.

  expression site:
    description: >-
      location in which gene or protein expression takes place.
      May be cell, tissue, or organ.
    is_a: association slot
    range: anatomical entity
    examples:
      - value: UBERON:0002037
        description: cerebellum

  stage qualifier:
    description: >-
      stage during which gene or protein expression of takes place.
    is_a: association slot
    range: life stage
    # path: "object/during"
    examples:
      - value: UBERON:0000069
        description: larval stage

  phenotypic state:
    description: >-
      in experiments (e.g. gene expression) assaying diseased or unhealthy
      tissue, the phenotypic state can be put here, e.g. MONDO ID.
      For healthy tissues, use XXX.
    is_a: association slot
    range: disease or phenotypic feature

  qualifiers:
    singular_name: qualifier
    description: >-
      connects an association to qualifiers that modify or
      qualify the meaning of that association
    local_names:
      ga4gh: annotation qualifier
    is_a: association slot
    multivalued: true
    range: ontology class

  frequency qualifier:
    description: >-
      a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject
    is_a: association slot
    range: frequency value

  severity qualifier:
    description: >-
      a qualifier used in a phenotypic association to state
      how severe the phenotype is in the subject
    is_a: association slot
    range: severity value

  sex qualifier:
    description: >-
      a qualifier used in a phenotypic association to state whether
      the association is specific to a particular sex.
    is_a: association slot
    range: biological sex

  onset qualifier:
    description: >-
      a qualifier used in a phenotypic association to state
      when the phenotype appears is in the subject
    is_a: association slot
    range: onset

  clinical modifier qualifier:
    description: >-
      Used to characterize and specify the phenotypic abnormalities
      defined in the Phenotypic abnormality subontology,
      with respect to severity, laterality, age of onset, and other aspects
    is_a: association slot
    range: clinical modifier

  sequence variant qualifier:
    description: >-
      a qualifier used in an association with the variant
    is_a: association slot
    range: sequence variant

  publications:
    singular_name: publication
    description: >-
      connects an association to publications supporting the association
    is_a: association slot
    multivalued: true
    range: publication

  associated environmental context:
    is_a: association slot
    description: >-
      An attribute that can be applied to an association where the association holds between two entities
      located or occurring in a particular environment. For example, two microbial taxa may interact in the context of
      a human gut; a disease may give rise to a particular phenotype in a particular environmental exposure.
  # TODO: add examples of values for this property.
      
  sequence localization attribute:
    is_a: association slot
    domain: genomic sequence localization
    description: >-
      An attribute that can be applied to a genome sequence localization edge. These edges
      connect a nucleic acid entity such as an exon to an entity such as a chromosome. Edge properties are used
      to ascribe specific positional information and other metadata to the localization. In pragmatic terms
      this can be thought of as columns in a GFF3 line.

  interbase coordinate:
    is_a: sequence localization attribute
    aliases: ['zero-based', 'half-open', 'space-based']
    description: >-
      A position in interbase coordinates. Interbase coordinates start at position 0 instead of position 1.
      This is applied to a sequence localization edge.
    range: integer

  start interbase coordinate:
    is_a: interbase coordinate
    description: >-
      The position at which the subject nucleic acid entity starts
      on the chromosome or other entity to which it is located on.
      (ie: the start of the sequence being referenced is 0).
    close_mappings:
      - faldo:begin

  end interbase coordinate:
    is_a: interbase coordinate
    description: >-
      The position at which the subject nucleic acid entity ends
      on the chromosome or other entity to which it is located on.
    close_mappings:
      - faldo:end

  start coordinate:
    is_a: base coordinate
    aliases: ['start']
    description: >-
      The position at which the subject genomic entity starts
      on the chromosome or other entity to which it is located on.
      (ie: the start of the sequence being referenced is 1).
    exact_mappings:
      - gff3:start
    close_mappings:
      - faldo:begin

  end coordinate:
    is_a: base coordinate
    aliases: ['end']
    description: >-
      The position at which the subject genomic entity ends
      on the chromosome or other entity to which it is located on.
    exact_mappings:
      - gff3:end
    close_mappings:
      - faldo:end

  genome build:
    is_a: sequence localization attribute
    description: >-
      The version of the genome on which a feature is located.
      For example, GRCh38 for Homo sapiens.
    range: strand_enum
    exact_mappings:
      - gff3:strand

  strand:
    is_a: sequence localization attribute
    description: >-
      The strand on which a feature is located. Has a value of '+'
      (sense strand or forward strand) or '-' (anti-sense strand or reverse strand).
    range: strand_enum
    exact_mappings:
      - gff3:strand

  phase:
    is_a: sequence localization attribute
    domain: coding sequence
    description: >-
      The phase for a coding sequence entity. For example, phase of a
      CDS as represented in a GFF3 with a value of 0, 1 or 2.
    range: phase_enum
    exact_mappings:
      - gff3:phase

  FDA approval status:
    is_a: association slot
    description: >-
    range: FDA_approval_status_enum

classes:

  ## ----------
  ## ATTRIBUTES
  ## ----------

  ## Ontology Classes

  ontology class:
    mixin: true
    description: >-
      a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in
      a biolink compatible KG can be considered both instances of biolink classes, and
      OWL classes in their own right. In general you should not need to use this class directly.
      Instead, use the appropriate biolink class. For example, for the GO concept of endocytosis (GO:0006897),
      use bl:BiologicalProcess as the type.
    exact_mappings:
      - owl:Class
      - schema:Class
    comments:
      - >-
         This is modeled as a mixin. 'ontology class' should not be the primary type of a
         node in the KG. Instead you should use an informative bioloink category, such as AnatomicalEntity
         (for Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc
      - >-
         Note that formally this is a metaclass. Instances of this class are instances in the graph,
         but can be the object of 'type' edges. For example, if we had a node in the graph representing
         a specific brain of a specific patient (e.g brain001), this could have a category of bl:Sample,
         and by typed more specifically with an ontology class UBERON:nnn, which has as category bl:AnatomicalEntity
    see_also:
      - https://github.com/biolink/biolink-model/issues/486
    examples:
      - value: UBERON:0000955
        description: >-
          the class 'brain' from the Uberon anatomy ontology
    id_prefixes:
      - MESH
      - UMLS
      - KEGG.BRITE ## br/ko number
  
  annotation:
    description: >-
      Biolink Model root class for entity annotations.
    abstract: true

  quantity value:
    is_a: annotation
    description: >-
      A value of an attribute that is quantitative and measurable,
      expressed as a combination of a unit and a numeric value
    slots:
      - has unit
      - has numeric value

  # Alignment attempted of the biolink:Attribute model
  # to the proposed TRAPI Release 1.1 Attribute schema, i.e.
  #
  # attribute_name: "assertionAuthoredBy",
  # attribute_type: SEPIO:0000130,
  # value: "ORCID:12345",
  # value_type: "wd:Q51044",
  # value_type_name: "ORCID ID"
  # url: https://orcid.org/12345
  # source: ORCID

  attribute:
    is_a: annotation
    mixins:
      - ontology class
    description: >-
      A property or characteristic of an entity.
      For example, an apple may have properties such as color, shape, age, crispiness.
      An environmental sample may have attributes such as depth, lat, long, material.
    slots:
      - name                   # 'attribute_name'
      - has attribute type     # 'attribute_type'
      # 'value', 'value_type', 'value_type_name'
      # extracted from either of the next two slots
      - has quantitative value
      - has qualitative value
      - iri                    # 'url'
      - source                 # 'source'
    slot_usage:
      name:
        description: >-
          The human-readable 'attribute name' can be set to a string which reflects its context of
          interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default
          to the name associated with the 'has attribute type' slot ontology term.
    id_prefixes:
      - EDAM-DATA
      - EDAM-FORMAT
      - EDAM-OPERATION
      - EDAM-TOPIC
    exact_mappings:
      - SIO:000614
    in_subset:
      - samples

  biological sex:
    is_a: attribute
    exact_mappings:
     - PATO:0000047

  phenotypic sex:
    is_a: biological sex
    description: >-
      An attribute corresponding to the phenotypic sex of the individual,
      based upon the reproductive organs present.
    exact_mappings:
     - PATO:0001894

  genotypic sex:
    is_a: biological sex
    description: >-
      An attribute corresponding to the genotypic sex of the individual,
      based upon genotypic composition of sex chromosomes.
    exact_mappings:
     - PATO:0020000

  severity value:
    is_a: attribute
    description: >-
      describes the severity of a phenotypic feature or disease

  relationship quantifier:
    mixin: true

  sensitivity quantifier:
    is_a: relationship quantifier
    mixin: true

  specificity quantifier:
    is_a: relationship quantifier
    mixin: true

  pathognomonicity quantifier:
    is_a: specificity quantifier
    description: >-
      A relationship quantifier between a variant or symptom and a disease, which is
      high when the presence of the feature implies the existence of the disease
    mixin: true

  frequency quantifier:
    is_a: relationship quantifier
    mixin: true
    slots:
      - has count
      - has total
      - has quotient
      - has percentage

  chemical or drug or treatment:
    mixin: true


  ## ------
  ## THINGS
  ## ------

  entity:
    description: >-
      Root Biolink Model class for all things and informational relationships, real or imagined.
    abstract: true
    slots:
      - id
      - iri
      - category
      - type   # rdf:type
      - name
      - description
      - source
      - provided by
      - has attribute

  named thing:
    is_a: entity
    description: "a databased entity or concept/class"
    slot_usage:
      category:
        range: named thing
        required: true
    exact_mappings:
      - BFO:0000001
      - WIKIDATA:Q35120
      # UMLS Semantic Group "Objects"
      - UMLSSG:OBJC
      # Entity
      - UMLSSC:T071
      - UMLSST:enty

  relationship type:
    is_a: ontology class
    description: >-
      An OWL property used as an edge label

  gene ontology class:
    mixin: true
    description: >-
      an ontology class that describes a functional aspect of a gene, gene prodoct or complex
    is_a: ontology class
    in_subset:
      - testing

  unclassified ontology class:
    mixin: true
    description: >-
      this is used for nodes that are taken from an ontology but are not typed using an existing biolink class
    is_a: ontology class
    in_subset:
      - testing

  taxonomic rank:
    description: >-
      A descriptor for the rank within a taxonomic classification.
      Example instance: TAXRANK:0000017 (kingdom)
    is_a: ontology class
    id_prefixes:
      - TAXRANK
    mappings:
      - WIKIDATA:Q427626

  organism taxon:
    aliases:
      - taxon
      - taxonomic classification
    description: >-
      A classification of a set of organisms. Example instances:
      NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria).
      Can also be used to represent strains or subspecies.
    is_a: named thing
    slot_usage:
      has taxonomic rank:
        range: taxonomic rank
        multivalued: false
        mappings:
          - WIKIDATA:P105
      subclass of:
        description: >-
          subclass of holds between two taxa, e.g. human subclass of mammal
        range: organism taxon
    values_from:
      - NCBITaxon
    exact_mappings:
      - WIKIDATA:Q16521
    narrow_mappings:
      # Virus
      - UMLSSC:T005
      - UMLSST:virs
      # Bacterium
      - UMLSSC:T007
      - UMLSST:bact
      # Archaeon
      - UMLSSC:T194
      - UMLSST:arch
      # Eukaryote
      - UMLSSC:T204
      - UMLSST:euka
      # Plant
      - UMLSSC:T002
      - UMLSST:plnt
      # Fungus
      - UMLSSC:T004
      - UMLSST:fngs
      # Animal
      - UMLSSC:T008
      - UMLSST:anim
      # Vertebrate
      - UMLSSC:T010
      - UMLSST:vtbt
      # Amphibian
      - UMLSSC:T011
      - UMLSST:amph
      # Bird
      - UMLSSC:T012
      - UMLSST:bird
      # Fish
      - UMLSSC:T013
      - UMLSST:fish
      # Reptile
      - UMLSSC:T014
      - UMLSST:rept
      # Mammal
      - UMLSSC:T015
      - UMLSST:mamm
      # Human
      - UMLSSC:T016
      - UMLSST:humn
    id_prefixes:
      - NCBITaxon
      - MESH
    in_subset:
      - model_organism_database
  
  ## Temporal Entities
  
  event:
    is_a: named thing
    description: >-
      Something that happens at a given place and time.
    exact_mappings:
      - NCIT:C25499
      # UMLS "Event"
      - UMLSSC:T051
      - UMLSST:evnt

  ## Administrative Entities

  administrative entity:
    is_a: named thing
    abstract: true

  agent:
    is_a: administrative entity
    aliases: ['group']
    description: >-
      person, group, organization or project that provides
      a piece of information (i.e. a knowledge association)
    slots:
      - affiliation
      - address
    exact_mappings:
      - prov:Agent
      - dct:Agent
    narrow_mappings:
      # Organization
      - UMLSSG:ORGA
      - UMLSSC:T092
      - UMLSST:orgt
      # Health Care Related Organization
      - UMLSSC:T093
      - UMLSST:hcro
      # Professional Society
      - UMLSSC:T094
      - UMLSST:pros
      # Self-help or Relief Organization
      - UMLSSC:T095
      - UMLSST:shro
      # Group
      - UMLSSC:T096
      - UMLSST:grup
    slot_usage:
      id:
        required: true
        description: >-
          Different classes of agents have distinct preferred identifiers.
          For publishers, use the ISBN publisher code.
          See https://grp.isbn-international.org/ for publisher code lookups.
          For editors, authors and  individual providers, use the individual's
          ORCID if available; Otherwise, a ScopusID, ResearchID or
          Google Scholar ID ('GSID') may be used if the author ORCID is unknown.
          Institutional agents could be identified by an
          International Standard Name Identifier ('ISNI') code.
        values_from:
          # CURIE space for publishers
          - isbn
          # CURIE space for authors
          - ORCID
          - ScopusID
          - ResearchID
          - GSID
          # Institutional agents
          - isni
      name:
        description: >-
          it is recommended that an author's 'name' property
          be formatted as "surname, firstname initial."
    id_prefixes:
      - isbn
      - ORCID
      - ScopusID
      - ResearchID
      - GSID
      - isni

  ## General Information Entities

  information content entity:
    aliases: ['information', 'information artefact', 'information entity']
    abstract: true
    is_a: named thing
    description: >-
      a piece of information that typically describes
      some topic of discourse or is used as support.
    slots:
      - license
      - rights
      - format
      - creation date
    id_prefixes:
      - doi
    exact_mappings:
      - IAO:0000030
    narrow_mappings:
      # UMLS Semantic Group "Concepts & Ideas"
      - UMLSSG:CONC
      # Conceptual Entity
      - UMLSSC:T077
      - UMLSST:cnce
      # Idea or Concept
      - UMLSSC:T078
      - UMLSST:idcn
      # Temporal Concept
      - UMLSSC:T079
      - UMLSST:tmco
      # Qualitative Concept
      - UMLSSC:T080
      - UMLSST:qlco
      # Quantitative Concept
      - UMLSSC:T081
      - UMLSST:qnco
      # Spatial Concept
      - UMLSSC:T082
      - UMLSST:spco
      # Regulation or Law
      - UMLSSC:T089
      - UMLSST:rnlw
      # Group Attribute
      - UMLSSC:T102
      - UMLSST:grpa
      # Functional Concept
      - UMLSSC:T169
      - UMLSST:ftcn
      # Language
      - UMLSSC:T171
      - UMLSST:lang
      # Classification
      - UMLSSC:T185
      - UMLSST:clas

  dataset:
    description: >-
      an item that refers to a collection of data from a data source.
    is_a: information content entity
    exact_mappings:
      - IAO:0000100
      - dctypes:Dataset
      - schema:dataset

  dataset distribution:
    is_a: information content entity
    description: >-
      an item that holds distribution level information about a dataset.
    slots:
      - distribution download url
    exact_mappings:
      - dcat:Distribution

  dataset version:
    description: >-
      an item that holds version level information about a dataset.
    is_a: information content entity
    slots:
      - has dataset
      - ingest date
      - has distribution

  dataset summary:
    description: >-
      an item that holds summary level information about a dataset.
    is_a: information content entity
    slots:
      - source web page
      - source logo

  confidence level:
    is_a: information content entity
    description: >-
      Level of confidence in a statement
    values_from:
      - cio
    exact_mappings:
      - CIO:0000028
      # statement confidence
      - SEPIO:0000187
    close_mappings:
      # assertion confidence levels
      - SEPIO:0000167

  evidence type:
    is_a: information content entity
    aliases: ['evidence code']
    description: >-
      Class of evidence that supports an association
    values_from:
      - eco
    exact_mappings:
      - ECO:0000000

  information resource:
    is_a: information content entity
    aliases: ['knowledgebase']
    description: >-
      A database or knowledgebase and its supporting ecosystem of interfaces 
      and services that deliver content to consumers (e.g. web portals, APIs, 
      query endpoints, streaming services, data downloads, etc.).
      A single Information Resource by this definition may span many different datasets or
      databases, and include many access endpoints and user
      interfaces. Information Resources include project-specific resources
      such as a Translator Knowledge Provider, and community knowledgebases like ChemBL, OMIM, or DGIdb.
    in_subset:
        - translator_minimal      


  ## Publications

  # TODO: to review additional ontology relating to Publications, such as http://www.sparontologies.net/ontologies
  publication:
    is_a: information content entity
    description: >-
      Any published piece of information. Can refer to a whole publication,
      its encompassing publication (i.e. journal or book) or to a part of a
      publication, if of significant knowledge scope (e.g. a figure, figure
      legend, or section highlighted by NLP). The scope is intended to be
      general and include information published on the web, as well as printed
      materials, either directly or in one of the Publication Biolink
      category subclasses.
    slots:
      - authors
      - pages
      - summary
      - keywords
      - mesh terms
      - xref
    # In addition to embedded slots, instances of 'contributor association'
    # may be used to more extensively document publisher, editor and author details
    slot_usage:
      id:
        description: >-
          Different kinds of publication subtypes will have different preferred
          identifiers (curies when feasible). Precedence of identifiers for
          scientific articles is as follows: PMID if available; DOI if not; actual
          alternate CURIE otherwise. Enclosing publications (i.e. referenced by
          'published in' node property) such as books and journals, should have
          industry-standard identifier such as from ISBN and ISSN.
      name:
        description: >-
          the 'title' of the publication is generally recorded in the 'name'
          property (inherited from NamedThing). The field name 'title' is now also
          tagged as an acceptable alias for the node property 'name' (just in case).
      type:
        slot_uri: dct:type
        required: true
        description: >-
          Ontology term for publication type may be drawn from
          Dublin Core types (https://www.dublincore.org/specifications/dublin-core/dcmi-type-vocabulary/),
          FRBR-aligned Bibliographic Ontology (https://sparontologies.github.io/fabio/current/fabio.html),
          the MESH publication types (https://www.nlm.nih.gov/mesh/pubtypes.html),
          the Confederation of Open Access Repositories (COAR) Controlled Vocabulary for Resource Type Genres
          (http://vocabularies.coar-repositories.org/documentation/resource_types/),
          Wikidata (https://www.wikidata.org/wiki/Wikidata:Publication_types), or
          equivalent publication type ontology. When a given publication type ontology term
          is used within a given knowledge graph, then the CURIE identified term must be
          documented in the graph as a concept node of biolink:category biolink:OntologyClass.
        values_from:  # Not sure which takes precedence, if any...
          - dctypes
          - fabio
          - MESH_PUB
          - COAR_RESOURCE
          - WIKIDATA
      pages:
        multivalued: true
        description: >-
          When a 2-tuple of page numbers are provided, they represent
          the start and end page of the publication within its parent publication context.
          For books, this may be set to the total number of pages of the book.
    exact_mappings:
      - IAO:0000311
    narrow_mappings:
      - IAO:0000013
      # UMLS Semantic Type "Intellectual Product"
      - UMLSSC:T170
      - UMLSST:inpr
    id_prefixes:
      - NLMID
    in_subset:
      - model_organism_database

  book:
    is_a: publication
    description: >-
      This class may rarely be instantiated except if use cases
      of a given knowledge graph support its utility.
    slot_usage:
      id:
        required: true
        description: >-
          Books should have industry-standard identifier such as from ISBN.
      type:
        description: >-
          Should generally be set to an ontology class defined term for 'book'.
    id_prefixes:
      - isbn
      - NLMID
    in_subset:
      - model_organism_database

  book chapter:
    is_a: publication
    slots:
      - published in
      - volume
      - chapter
    slot_usage:
      published in:
        required: true
        description: >-
          The enclosing parent book containing the chapter
          should have industry-standard identifier from ISBN.
    in_subset:
      - model_organism_database

  serial:
    aliases: ['journal']
    is_a: publication
    description: >-
      This class may rarely be instantiated except if use cases
      of a given knowledge graph support its utility.
    slots:
      - iso abbreviation
      - volume
      - issue
    slot_usage:
      id:
        required: true
        description: >-
          Serials (journals) should have industry-standard identifier such as from ISSN.
      type:
        description: >-
          Should generally be set to an ontology class defined term for 'serial' or 'journal'.
    id_prefixes:
      - issn
      - NLMID
    in_subset:
      - model_organism_database

  article:
    is_a: publication
    slots:
      - published in
      - iso abbreviation
      - volume
      - issue
    slot_usage:
      published in:
        required: true
        description: >-
          The enclosing parent serial containing the article should
          have industry-standard identifier from ISSN.
      iso abbreviation:
        description: >-
          Optional value, if used locally as a convenience, is set
          to the iso abbreviation of the 'published in' parent.
    id_prefixes:
      # By inheritance, a DOI may be used as a publication identifier; there may be other relevant namespaces
      - PMID
    in_subset:
      - model_organism_database

  ## Top Level Abstractions of Material & Process Entities

  physical essence or occurrent:
    description: >-
      Either a physical or processual entity.
    mixin: true


  physical essence:
    description: >-
      Semantic mixin concept.  Pertains to entities that have
      physical properties such as mass, volume, or charge.
    is_a: physical essence or occurrent
    mixin: true

  physical entity:
    is_a: named thing
    mixins:
      - physical essence
    description: >-
      An entity that has material reality (a.k.a. physical essence).
    exact_mappings:
      # Physical Object
      - UMLSSC:T072
      - UMLSST:phob
    narrow_mappings:
      # Manufactured Object
      - UMLSSC:T073
      - UMLSST:mnob

  occurrent:
    description: >-
      A processual entity.
    # biolink:Occurrent is most consistently used as a mixin thus it should
    # be declared as such and cannot inherit from the non-mixin biolink:NamedThing
    is_a: physical essence or occurrent
    mixin: true
    exact_mappings:
      - BFO:0000003

  activity and behavior:
    is_a: occurrent
    mixin: true
    description: >-
      Activity or behavior of any independent integral living,
      organization or mechanical actor in the world
    exact_mappings:
      # Activities & Behaviors
      - UMLSSG:ACTI

  activity:
    is_a: named thing
    mixins:
      - activity and behavior
    description: >-
      An activity is something that occurs over a period of time and acts upon
      or with entities; it may include consuming, processing, transforming,
      modifying, relocating, using, or generating entities.
    exact_mappings:
      - prov:Activity
      - NCIT:C43431
      # Activity
      - UMLSSC:T052
      - UMLSST:acty
    narrow_mappings:
      # Daily or Recreational Activity
      - UMLSSC:T056
      - UMLSST:dora
      # Occupational Activity
      - UMLSSC:T057
      - UMLSST:ocac
      # Governmental or Regulatory Activity
      - UMLSSC:T064
      - UMLSST:gora
      # Machine Activity
      - UMLSSC:T066
      - UMLSST:mcha
      # Research Activity
      - UMLSSC:T062
      - UMLSST:resa
      # Educational Activity
      - UMLSSC:T065
      - UMLSST:edac
      # Health Care Activity
      - UMLSSC:T058
      - UMLSST:hlca

  procedure:
    is_a: named thing
    mixins:
      - activity and behavior
    description: >-
      A series of actions conducted in a certain order or manner
    exact_mappings:
      # Procedures
      - UMLSSG:PROC
    narrow_mappings:
      # Laboratory Procedure
      - UMLSSC:T059
      - UMLSST:lbpr
      # Diagnostic Procedure
      - UMLSSC:T060
      - UMLSST:diap
      # Therapeutic or Preventive Procedure
      - UMLSSC:T061
      - UMLSST:topp
      # Molecular Biology Research Technique
      - UMLSSC:T063
      - UMLSST:mbrt

  phenomenon:
    is_a: named thing
    mixins:
      - occurrent
    description: >-
      a fact or situation that is observed to exist or happen,
      especially one whose cause or explanation is in question
    broad_mappings:
      # the inclusion of 'process' in the definition of these
      # terms broadens them, relative to 'phenomenon'
      # Phenomenon or Process
      - UMLSSC:T067
      - UMLSST:phpr
      # Human-caused Phenomenon or Process
      - UMLSSC:T068
      - UMLSST:hcpp
      # Natural Phenomenon or Process
      - UMLSSC:T070
      - UMLSST:npop
    exact_mappings:
      # Phenomena
      - UMLSSG:PHEN
    narrow_mappings:
      # Laboratory or Test Result
      - UMLSSC:T034
      - UMLSST:lbtr
      # Biologic Function
      - UMLSSC:T038
      - UMLSST:biof
      # Environmental Effect of Humans
      - UMLSSC:T069
      - UMLSST:eehu

  device:
    is_a: named thing
    description: >-
      A thing made or adapted for a particular purpose, especially
      a piece of mechanical or electronic equipment
    narrow_mappings:
      # Devices
      - UMLSSG:DEVI
      # Medical Device
      - UMLSSC:T074
      - UMLSST:medd
      # Research Device
      - UMLSSC:T075
      - UMLSST:resd
      # Drug Delivery Device
      - UMLSSC:T203
      - UMLSST:drdd
      # Biomedical or Dental Material
      - UMLSSC:T122
      - UMLSST:bodm

  ## Scientific Studies

  study population:
    is_a: population of individual organisms
    description: >-
      A group of people banded together or treated as a group as participants in a research study.
    close_mappings:
      - WIKIDATA:Q7229825

  subject of investigation:
    mixin: true
    description: >-
      An entity that has the role of being studied in an investigation, study, or experiment

  material sample:
    aliases: ['biospecimen', 'sample', 'biosample', 'physical sample']
    is_a: physical entity
    mixins:
      - subject of investigation
    description: >-
      A sample is a limited quantity of something (e.g. an individual or set of individuals
      from a population, or a portion of a substance) to be used for testing, analysis,
      inspection, investigation, demonstration, or trial use. [SIO]
    exact_mappings:
      - OBI:0000747
      - SIO:001050
    id_prefixes:
      - BIOSAMPLE
      - GOLD.META

  ## Earth Sciences

  planetary entity:
    is_a: named thing
    description: >-
      Any entity or process that exists at the level of the whole planet

  environmental process:
    is_a: planetary entity
    mixins:
      - occurrent
    exact_mappings:
      - ENVO:02500000

  environmental feature:
    is_a: planetary entity
    exact_mappings:
      - ENVO:01000254

  geographic location:
    is_a: planetary entity
    description: >-
      a location that can be described in lat/long coordinates
    slots:
      - latitude
      - longitude
    exact_mappings:
      # Geographic Areas
      - UMLSSG:GEOG
      # Geographic Area
      - UMLSST:geoa
      - UMLSSC:T083

  geographic location at time:
    is_a: geographic location
    description: >-
      a location that can be described in lat/long coordinates, for a particular time
    slots:
      - timepoint

  ## Biological Sciences

  biological entity:
    is_a: named thing
    aliases: ['bioentity']
    abstract: true
    narrow_mappings:
      - WIKIDATA:Q28845870
      # UMLS Semantic Type "Experimental Model of Disease"
      - UMLSSC:T050
      - UMLSST:emod
      # SIO term is 'biological entity' but less inclusive than the Biolink scope
      - SIO:010046

  thing with taxon:
    mixin: true
    description: >-
      A mixin that can be used on any entity that can be taxonomically classified.
      This includes individual organisms; genes, their products and other molecular
      entities; body parts; biological processes
    slots:
      - in taxon

  genomic entity:
    mixin: true
    is_a: thing with taxon
    slots:
      - has biological sequence
    in_subset:
      - translator_minimal
    narrow_mappings:
      - UMLSSC:T028   # Gene or Genome
      - GENO:0000897  # Genomic Entity

  molecular entity:
    is_a: chemical entity
    description: >-
      A molecular entity is a chemical entity composed of individual or
      covalently bonded atoms.
    slots:
      - is metabolite
    narrow_mappings:
      - UMLSSC:T088 # Carbohydrate
      - UMLSSC:T085 # Molecular Sequence
    in_subset:
      - translator_minimal
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  ## G number
      - KEGG.DRUG    ## D number
      - KEGG.DGROUP  ## DG number
      - KEGG.ENVIRON ## E number

  chemical entity:
    is_a: named thing
    mixins:
      - physical essence
      - chemical or drug or treatment # issue 701
      - chemical entity or gene or gene product
      - chemical entity or protein or polypeptide
    description: >-
      A chemical entity is a physical entity that pertains to chemistry or
      biochemistry.
    slots:
      - trade name
      - available from
    exact_mappings:
      - CHEBI:24431
      - SIO:010004 # Chemical entity
      - WIKIDATA:Q79529 # Chemical substance
    narrow_mappings:
      - WIKIDATA:Q43460564
      - UMLSSC:T103 # Chemical
      - UMLSSC:T120 # Chemical Viewed Functionally
      - UMLSSC:T104 # Chemical Viewed Structurally
      - UMLSSC:T197 # Inorganic Chemical
      - UMLSSC:T109 # Organic Chemical
      - UMLSSC:T125 # Hormone
      - UMLSSC:T123 # Biologically Active Substance
      - UMLSSC:T129 # Immunologic Factor
      - UMLSSC:T131 # Hazardous or Poisonous Substance
      # - UMLSSC:T130 # Indicator, Reagent, or Diagnostic Aid
    broad_mappings:
      - UMLSSC:T167 # Substance
    in_subset:
      - translator_minimal
    id_prefixes:
      - UNII
      - MESH
      - CAS #CAS numbers are given for things like plant extracts as well.

  chemical substance:
    deprecated: >-
      This class is deprecated in favor of 'small molecule.'

  small molecule:
    is_a: molecular entity
    aliases: [ 'chemical substance']
    description: >-
        A small molecule entity is a molecular entity characterized by availability
        in small-molecule databases of SMILES, InChI, IUPAC, or other
        unambiguous representation of its precise chemical structure; for
        convenience of representation, any valid chemical representation is
        included, even if it is not strictly molecular (e.g., sodium ion).
    narrow_mappings:
      - UMLSSC:T196 # Element, Ion, or Isotope
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  ## G number
      - KEGG.DRUG    ## D number
      - KEGG.DGROUP  ## DG number
      - KEGG.ENVIRON ## E number
    slot_usage:
      id:
        examples:
          - value: CHEBI:29101
            description: sodium ion
    in_subset:
      - model_organism_database
      - translator_minimal

  chemical mixture:
    is_a: chemical entity
    description: >-
      A chemical mixture is a chemical entity composed of two or more
      molecular entities.
    slots:
      - is supplement
      - highest FDA approval status
    in_subset:
      - translator_minimal
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  ## G number
      - KEGG.DRUG    ## D number
      - KEGG.DGROUP  ## DG number
      - KEGG.ENVIRON ## E number

  nucleic acid entity:
    is_a: molecular entity
    description: >-
      A nucleic acid entity is a molecular entity characterized by
      availability in gene databases of nucleotide-based sequence
      representations of its precise sequence; for convenience of
      representation, partial sequences of various kinds are included.
    aliases: [ 'sequence feature', 'genomic entity' ]
    mixins:
      - genomic entity
      - physical essence
      - ontology class
    exact_mappings:
      - SO:0000110
    narrow_mappings:
      - UMLSSC:T086   # Nucleotide Sequence
      - UMLSSC:T114   # Nucleic Acid, Nucleoside, or Nucleotide
    in_subset:
      - model_organism_database
      - translator_minimal
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  # G number
      - KEGG.DRUG    # D number
      - KEGG.DGROUP  # DG number
      - KEGG.ENVIRON # E number

  molecular mixture:
    is_a: chemical mixture
    description: >-
      A molecular mixture is a chemical mixture composed of two or more
      molecular entities with known concentration and stoichiometry.
    in_subset:
      - translator_minimal
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  ## G number
      - KEGG.DRUG    ## D number
      - KEGG.DGROUP  ## DG number
      - KEGG.ENVIRON ## E number

  complex molecular mixture:
    is_a: chemical mixture
    description: >-
      A complex molecular mixture is a chemical mixture composed of two or
      more molecular entities with unknown concentration and stoichiometry.
    in_subset:
      - translator_minimal
    id_prefixes:
      - PUBCHEM.COMPOUND
      - CHEMBL.COMPOUND
      - UNII
      - CHEBI
      - DRUGBANK
      - MESH
      - CAS
      - DrugCentral
      - GTOPDB
      - HMDB
      - KEGG.COMPOUND
      - ChemBank
      - Aeolus
      - PUBCHEM.SUBSTANCE
      - SIDER.DRUG
      - INCHI
      - INCHIKEY
      # - iupac # is not actually a CURIE namespace but only a naming convention for chemistry
      # - SMILES  # is not actually a CURIE namespace but only a query language for chemistry
      - KEGG.GLYCAN  ## G number
      - KEGG.DRUG    ## D number
      - KEGG.DGROUP  ## DG number
      - KEGG.ENVIRON ## E number

  biological process or activity:
    description: >-
      Either an individual molecular activity, or a collection of
      causally connected molecular activities in a biological system.
    is_a: biological entity
    mixins:
      - occurrent
      - ontology class
    id_prefixes:
      - GO
      - REACT
    slots:
      - has input
      - has output
      - enabled by

  molecular activity:
    description: >-
      An execution of a molecular function carried out by a
      gene product or macromolecular complex.
    is_a: biological process or activity
    aliases: ['molecular function', 'molecular event', 'reaction']
    mixins:
      - occurrent
      - ontology class
    slot_usage:
      has input:
        range: molecular entity
        description: >-
          A chemical entity that is the input for the reaction
      has output:
        range: molecular entity
        description: >-
          A chemical entity that is the output for the reaction
      enabled by:
        range: macromolecular machine mixin
        description: >-
          The gene product, gene, or complex that catalyzes the reaction
    exact_mappings:
      - GO:0003674
      # UMLS Semantic Type "Molecular Function"
      - UMLSSC:T044
      - UMLSST:moft
    id_prefixes:
      - GO
      - REACT
      - RHEA
      - MetaCyc
      - EC
      - TCDB
      - KEGG.REACTION  ## R number
      - KEGG.RCLASS    ## RC number
      - KEGG.ENZYME    ## EC number

  biological process:
    is_a: biological process or activity
    mixins:
      - occurrent
      - ontology class
    description: >-
      One or more causally connected executions of molecular functions
    exact_mappings:
      - GO:0008150
      - SIO:000006
      - WIKIDATA:Q2996394
    broad_mappings:
      - WIKIDATA:P682
    id_prefixes:
      - GO
      - REACT
      - MetaCyc
      - KEGG.MODULE ## M number

  pathway:
    is_a: biological process
    mixins:
      - ontology class
    exact_mappings:
      - PW:0000001
      - WIKIDATA:Q4915012
    narrow_mappings:
      - SIO:010526
      - GO:0007165
    id_prefixes:
      - GO
      - REACT
      - KEGG
      - SMPDB
      - MSigDB
      - PHARMGKB.PATHWAYS
      - WIKIPATHWAYS
      - FB  # FlyBase FBgg*
      - PANTHER.PATHWAY

  physiological process:
    aliases: ['physiology']
    is_a: biological process
    mixins:
      - ontology class
    close_mappings:
    exact_mappings:
      # Physiologic Function
      - UMLSSC:T039
      - UMLSST:phsf
      - WIKIDATA:Q30892994
    narrow_mappings:
      # Organism Function
      - UMLSSC:T040
      - UMLSST:orgf
      # Organ or Tissue Function
      - UMLSSC:T042
      - UMLSST:ortf
      # Cell Function
      - UMLSSC:T043
      - UMLSST:celf
      # Genetic Function
      - UMLSSC:T045
      - UMLSST:genf
    id_prefixes:
      - GO
      - REACT

  behavior:
    is_a: biological process
    mixins:
      - ontology class
      - activity and behavior
    exact_mappings:
      - GO:0007610
      # Behavior
      - UMLSSC:T053
      - UMLSST:bhvr
    narrow_mappings:
      # Mental Process
      - UMLSSC:T041
      - UMLSST:menp
      # Social Behavior
      - UMLSSC:T054
      - UMLSST:socb
      # Individual Behavior
      - UMLSSC:T055
      - UMLSST:inbe

  death:
    is_a: biological process
    exact_mappings:
      - GO:0016265

  ## (Bio)chemistry

  processed material:
    is_a: chemical mixture
    description: >-
      A chemical entity (often a mixture) processed
      for consumption for nutritional, medical or technical use.
      Is a material entity that is created or changed during material processing.
    exact_mappings:
      - OBI:0000047

  drug:
    is_a: molecular mixture
    mixins:
      - chemical or drug or treatment
      - ontology class
    description: >-
      A substance intended for use in the diagnosis, cure,
      mitigation, treatment, or prevention of disease
    comments:
      - The CHEBI ID represents a role rather than a substance
    broad_mappings:
      # Pharmacologic Substance: Any natural, endogenously-derived,
      # synthetic or semi-synthetic compound with pharmacologic activity.
      - UMLSSC:T121
      - UMLSST:phsu
    exact_mappings:
      - WIKIDATA:Q12140
      - CHEBI:23888
      # UMLS Semantic Type "Clinical Drug"
      - UMLSSC:T200
      - UMLSST:clnd
    narrow_mappings:
      # Antibiotic
      - UMLSSC:T195
      - UMLSST:antb
    id_prefixes:
      - RXCUI
      - NDC
      - PHARMGKB.DRUG
      - DRUGBANK
      - DrugCentral
      - KEGG.DRUG    # D number
      - KEGG.DGROUP  # DG number
      - SIDER.DRUG

  ## Food

  environmental food contaminant:
    is_a: chemical entity
    related_mappings:
      # substance role
      - CHEBI:78299

  food additive:
    is_a: chemical entity
    related_mappings:
      # substance role
      - CHEBI:64047

  nutrient:
    is_a: chemical entity
    related_mappings:
      # substance role
      - CHEBI:33284

  macronutrient:
    is_a: nutrient
    related_mappings:
      # substance role
      - CHEBI:33937

  micronutrient:
    is_a: nutrient
    related_mappings:
      # substance role
      - CHEBI:27027

  vitamin:
    is_a: micronutrient
    related_mappings:
      # substance role
      - CHEBI:33229
      # Vitamin
      - UMLSSC:T127
      - UMLSST:vita

  food:
    is_a: chemical mixture
    description: >-
      A substance consumed by a living organism as a source of nutrition
    id_prefixes:
      - foodb.compound
    exact_mappings:
      # Food
      - UMLSSC:T168
      - UMLSST:food

  ## Biology and Biomedical Sciences

  ## Biological Attributes

  organism attribute:
    is_a: attribute
    description: >-
      describes a characteristic of an organismal entity.
    exact_mappings:
      # Organism Attribute
      - UMLSSC:T032
      - UMLSST:orga

  phenotypic quality:
    aliases: ['phenotypic properties']
    is_a: organism attribute
    description: >-
      A property of a phenotype
    mappings:
      - PATO:0000001

  inheritance:
    is_a: organism attribute
    description: >-
      The pattern or 'mode' in which a particular genetic trait or disorder is passed from one
      generation to the next, e.g. autosomal dominant, autosomal recessive, etc.
    exact_mappings:
      - HP:0000005
      - GENO:0000141
      - NCIT:C45827

  ## Biological Entities

  organismal entity:
    description: >-
      A named entity that is either a part of an organism, a whole organism,
      population or clade of organisms, excluding chemical entities
    abstract: true
    is_a: biological entity
    slot_usage:
      has attribute:
        description: >-
          may often be an organism attribute
    exact_mappings:
      - WIKIDATA:Q7239
      # UMLS Semantic Group "Living Beings"
      # Several of the associated semantic types here are probably not
      # that relevant to the Biolink world but we keep them here for now.
      - UMLSSG:LIVB

  life stage:
    is_a: organismal entity
    mixins:
      - thing with taxon
    description: >-
      A stage of development or growth of an organism,
      including post-natal adult stages
    exact_mappings:
      - UBERON:0000105
    narrow_mappings:
      # constrained to human life cycles
      - HsapDv:0000000
    in_subset:
      - model_organism_database

  individual organism:
    aliases:
      - organism
    description: >-
      An instance of an organism. For example, Richard Nixon,
      Charles Darwin, my pet cat. Example ID: ORCID:0000-0002-5355-2576
    mixins:
      - thing with taxon
    is_a: organismal entity
    exact_mappings:
      - SIO:010000
      # Organism
      - UMLSSC:T001
      - UMLSST:orgm
    narrow_mappings:
      # Wikidata considers its definition of 'individual' to be constrained to human persons?
      - WIKIDATA:Q795052
      - foaf:Person
    id_prefixes:
      - ORCID

  population of individual organisms:
    description: >-
      A collection of individuals from the same taxonomic class
      distinguished by one or more characteristics.  Characteristics can
      include, but are not limited to, shared geographic location, genetics,
      phenotypes [Alliance for Genome Resources]
    local_names:
      ga4gh: population
      agr: population
    mixins:
      - thing with taxon
    is_a: organismal entity
    exact_mappings:
      - PCO:0000001
      - SIO:001061
      # UMLS Semantic Type "Population Group"
      - UMLSSC:T098
      - UMLSST:popg
      - OBI:0000181
    id_prefixes:
      - HANCESTRO
    in_subset:
      - model_organism_database

  disease or phenotypic feature:
    aliases: ['phenome']
    is_a: biological entity
    description: >-
      Either one of a disease or an individual phenotypic feature.
      Some knowledge resources such as Monarch treat these as
      distinct, others such as MESH conflate.
    mixins:
      - thing with taxon
    union_of:
      - disease
      - phenotypic feature
    narrow_mappings:
      # UMLS Semantic Type "Finding" - more specialized use of 'disease or phenotypic feature'
      - UMLSSC:T033
      - UMLSST:fndg

  disease:
    aliases: ['condition', 'disorder', 'medical condition']
    is_a: disease or phenotypic feature
    exact_mappings:
      - MONDO:0000001
      - DOID:4
      - NCIT:C2991
      - WIKIDATA:Q12136
      - SIO:010299
      # UMLS Semantic Group "Disorders"
      - UMLSSG:DISO
      # Disease or Syndrome
      - UMLSSC:T047
      - UMLSST:dsyn
    narrow_mappings:
      # Congenital Abnormality
      - UMLSSC:T019
      - UMLSST:cgab
      # Acquired Abnormality
      - UMLSSC:T020
      - UMLSST:acab
      # Injury or Poisoning
      - UMLSSC:T037
      - UMLSST:inpo
      # Pathologic Function
      - UMLSSC:T046
      - UMLSST:patf
      # Mental or Behavioral Dysfunction
      - UMLSSC:T048
      - UMLSST:mobd
      # Cell or Molecular Dysfunction
      - UMLSSC:T049
      - UMLSST:comd
      # Anatomical Abnormality
      - UMLSSC:T190
      - UMLSST:anab
      # Neoplastic Process
      - UMLSSC:T191
      - UMLSST:neop
    id_prefixes:
      - MONDO
      - DOID
      - OMIM
      - ORPHANET
      - EFO
      - UMLS
      - MESH
      - MEDDRA
      - NCIT
      - SNOMEDCT
      - medgen
      - ICD10
      - ICD9
      - ICD0
      - KEGG.DISEASE ## H number
      - HP
      - MP
    in_subset:
      - model_organism_database

  phenotypic feature:
    aliases: ['sign', 'symptom', 'phenotype', 'trait', 'endophenotype']
    is_a: disease or phenotypic feature
    exact_mappings:
      - UPHENO:0001001
      - SIO:010056
      - WIKIDATA:Q104053
    narrow_mappings:
      # Sign or Symptom
      - UMLSSC:T184
      - UMLSST:sosy
      - WIKIDATA:Q169872
      # presentation of a disease in clinical medicine
      - WIKIDATA:Q25203551
    id_prefixes:
      - HP
      - EFO
      - NCIT
      - UMLS
      - MEDDRA
      - MP
      - ZP
      - UPHENO
      - APO
      - FBcv
      - WBPhenotype
      - SNOMEDCT
      - MESH
      - XPO
    in_subset:
      - model_organism_database

  behavioral feature:
    description: >-
      A phenotypic feature which is behavioral in nature.
    is_a: phenotypic feature
    exact_mappings:
      - NBO:0000243

  anatomical entity:
    is_a: organismal entity
    mixins:
      - thing with taxon
      - physical essence
    description: >-
      A subcellular location, cell type or gross anatomical part
    exact_mappings:
      - UBERON:0001062
      - WIKIDATA:Q4936952
      # UMLS Semantic Group "Anatomy"
      - UMLSSG:ANAT
    narrow_mappings:
      # Body System
      - UMLSSC:T022
      - UMLSST:bdsy
      # Body Location or Region
      - UMLSSC:T029
      - UMLSST:blor
      # Body Space or Junction
      - UMLSSC:T030
      - UMLSST:bsoj
      # Body Substance
      - UMLSSC:T031
      - UMLSST:bdsu
    id_prefixes:
      - UBERON
      - GO
      - CL
      - UMLS
      - MESH
      - NCIT
    in_subset:
      - model_organism_database

  cellular component:
    is_a: anatomical entity
    description: >-
      A location in or around a cell
    exact_mappings:
      - GO:0005575
      - SIO:001400
      - WIKIDATA:Q5058355
      # Cell Component
      - UMLSSC:T026
      - UMLSST:celc
    broad_mappings:
      - WIKIDATA:P681
    id_prefixes:
      - GO
      - MESH
      - UMLS
      - NCIT
      - SNOMEDCT
      - CL
      - UBERON

  cell:
    is_a: anatomical entity
    exact_mappings:
      - GO:0005623
      - CL:0000000
      - SIO:010001
      - WIKIDATA:Q7868
      # UMLS Semantic Type "Cell"
      - UMLSSC:T025
      - UMLSST:cell
    id_prefixes:
      - CL
      - PO
      - UMLS
      - NCIT
      - MESH
      - UBERON
      - SNOMEDCT

  cell line:
    is_a: organismal entity
    exact_mappings:
      - CLO:0000031
    id_prefixes:
      - CLO

  gross anatomical structure:
    aliases: ['tissue', 'organ']
    is_a: anatomical entity
    exact_mappings:
      - UBERON:0010000
      - WIKIDATA:Q4936952
      # UMLS Semantic Type "Anatomical Structure"
      - UMLSSC:T017
      - UMLSST:anst
      # UMLS Semantic Type "Fully Formed Anatomical Structure"
      - UMLSSC:T021
      - UMLSST:ffas
    narrow_mappings:
      # UMLS Semantic Type "Body Part, Organ, or Organ Component"
      - UMLSSC:T023
      - UMLSST:bpoc
      # UMLS Semantic Type "Tissue"
      - UMLSSC:T024
      - UMLSST:tisu
      # Embryonic Structure
      - UMLSSC:T018
      - UMLSST:emst
    id_prefixes:
      - UBERON
      - UMLS
      - MESH
      - NCIT
      - PO
      - FAO
      

  ## genetic entity mixins

  chemical entity or gene or gene product:
    description: >-
      A union of chemical entities and children, and gene or gene product.
      This mixin is helpful to use when searching across
      chemical entities that must include genes and their children as chemical entities.
    mixin: true

  chemical entity or protein or polypeptide:
    description: >-
      A union of chemical entities and children, and protein and polypeptide.
      This mixin is helpful to use when searching across
      chemical entities that must include genes and their children as chemical entities.
    mixin: true

  macromolecular machine mixin:
    description: >-
      A union of gene locus, gene product, and macromolecular complex mixin. These are
      the basic units of function in a cell. They either carry out individual
      biological activities, or they encode molecules which do this.
    mixin: true
    slots:
      - name
    slot_usage:
      name:
        range: symbol type
        description: >-
          genes are typically designated by a short symbol and a full name.
          We map the symbol to the default display name
          and use an additional slot for full name

  gene or gene product:
    description: >-
      A union of gene loci or gene products.
      Frequently an identifier for one will be used as proxy for another
    is_a: macromolecular machine mixin
    mixin: true
    id_prefixes:
      - CHEMBL.TARGET
      - IUPHAR.FAMILY

  gene:
    description: >-
      A region (or regions) that includes all of the sequence elements
      necessary to encode a functional transcript. A gene locus may include
      regulatory regions, transcribed regions and/or other
      functional sequence regions.
    is_a: biological entity
    mixins:
      - gene or gene product
      - genomic entity
      - chemical entity or gene or gene product
      - physical essence
      - ontology class
    aliases: ['locus']
    slots:
      - symbol
      - synonym
      - xref
    exact_mappings:
      - SO:0000704
      - SIO:010035
      - WIKIDATA:Q7187
    id_prefixes:
      - NCBIGene
      - ENSEMBL
      - HGNC
      - MGI
      - ZFIN
      - dictyBase
      - WB
      - WormBase # we have two prefixes here as worbase supports WormBase:WBGene00000898
                 # and alliancegenome.org and identifiers.org supports WB:WBGene00000898.
      - FB  # FlyBase FBgn*
      - RGD
      - SGD
      - POMBASE
      - OMIM
      - KEGG.GENE ## org:gene
      - UMLS
      - Xenbase
      # - IUPHAR
    in_subset:
      - model_organism_database

  gene product mixin:
    description: >-
      The functional molecular product of a single gene locus.
      Gene products are either proteins or functional RNA molecules.
    is_a: gene or gene product
    mixin: true
    slots:
      - synonym
      - xref
    exact_mappings:
      - WIKIDATA:Q424689
      - GENO:0000907
      - NCIT:C26548
    id_prefixes:
      - UniProtKB
      - gtpo
      - PR

  gene product isoform mixin:
    description: >-
      This is an abstract class that can be mixed in with different kinds of
      gene products to indicate that the gene product is intended to represent
      a specific isoform rather than a canonical or reference or generic
      product. The designation of canonical or reference may be arbitrary,
      or it may represent the superclass of all isoforms.
    is_a: gene product mixin
    mixin: true

  macromolecular complex mixin:
    description: >-
      A stable assembly of two or more macromolecules, i.e. proteins,
      nucleic acids, carbohydrates or lipids, in which at least one
      component is a protein and the constituent parts function together.
    is_a: macromolecular machine mixin
    mixin: true
    exact_mappings:
      - GO:0032991
      - WIKIDATA:Q22325163
    id_prefixes:
      - INTACT
      - GO
      - PR
      - REACT
    in_subset:
      - model_organism_database

  ## Genomic Classes

  genome:
    is_a: biological entity
    mixins:
      - genomic entity
      - physical essence
      - ontology class
    description: >-
      A genome is the sum of genetic material within a cell or virion.
    exact_mappings:
      - SO:0001026
      - SIO:000984
      - WIKIDATA:Q7020
    in_subset:
      - model_organism_database

  exon:
    is_a: nucleic acid entity
    description: >-
      A region of the transcript sequence within a gene which is not
      removed from the primary RNA transcript by RNA splicing.
    exact_mappings:
      - SO:0000147
      - SIO:010445
      - WIKIDATA:Q373027

  transcript:
    is_a: nucleic acid entity
    description: >-
      An RNA synthesized on a DNA or RNA template by an RNA polymerase.
    exact_mappings:
      - SO:0000673
      - SIO:010450
      - WIKIDATA:Q7243183
    id_prefixes:
      - ENSEMBL # ENSEMBL:ENST for human
      - FB      # FlyBase:FBtr
    in_subset:
      - model_organism_database

  coding sequence:
    is_a: nucleic acid entity
    exact_mappings:
      - SO:0000316
      - SIO:001390

  polypeptide:
    aliases: [ 'amino acid entity' ]
    is_a: biological entity
    description: >-
      A polypeptide is a molecular entity characterized by availability
      in protein databases of amino-acid-based sequence representations
      of its precise primary structure; for convenience of representation,
      partial sequences of various kinds are included, even if they do not
      represent a physical molecule.
    mixins:
      - thing with taxon
      - chemical entity or gene or gene product
      - chemical entity or protein or polypeptide
    id_prefixes:
      - UniProtKB
      - PR
      - ENSEMBL # ENSEMBL:ENSP*
      - FB      # FlyBase FBpp*
      - UMLS
    in_subset:
      - model_organism_database
    narrow_mappings:
      - SO:0000104 # polypeptide definde in SO conflates protein and polypeptide
      # Amino Acid, Peptide, or Protein
      - UMLSSC:T116
      - UMLSST:aapp
      # Amino Acid Sequence
      - UMLSSC:T087
      - UMLSST:amas

  protein:
    description: >-
      A gene product that is composed of a chain of amino acid sequences
      and is produced by ribosome-mediated translation of mRNA
    is_a: polypeptide
    mixins:
      - gene product mixin
      - thing with taxon
    id_prefixes:
      - UniProtKB
      - PR
      - ENSEMBL # ENSEMBL:ENSP*
      - FB      # FlyBase FBpp*
      - UMLS
    exact_mappings:
      - PR:000000001
      - SIO:010043
      - WIKIDATA:Q8054
    narrow_mappings:
      # Enzyme
      - UMLSSC:T126
      - UMLSST:enzy
      # Receptor
      - UMLSSC:T192
      - UMLSST:rcpt      

  protein isoform:
    aliases: ['proteoform']
    is_a: protein
    description: >-
      Represents a protein that is a specific isoform of the canonical or
      reference protein. See https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4114032/
    mixins:
      - gene product isoform mixin
    id_prefixes:
      - UniProtKB # UniProtKB:([A-Z0-9]+-\d+)
      - UNIPROT.ISOFORM 
      - PR
      - ENSEMBL

  RNA product:
    is_a: transcript
    mixins:
      - gene product mixin
    exact_mappings:
      - CHEBI:33697
      # This SIO term here also mapped to 'biolink:Transcript'; however,
      # since this 'biolink:RNAProduct' relates more to the biochemical
      # essence of RNA, then map the SIO term instead to 'biolink:Transcript'
      # - SIO:010450
      - WIKIDATA:Q11053
    id_prefixes:
      - RNACENTRAL

  RNA product isoform:
    is_a: RNA product
    description: >-
      Represents a protein that is a specific isoform of the canonical or reference RNA
    mixins:
      - gene product isoform mixin
    id_prefixes:
      - RNACENTRAL

  noncoding RNA product:
    is_a: RNA product
    id_prefixes:
      - RNACENTRAL
      - NCBIGene
      - ENSEMBL
    exact_mappings:
      - SO:0000655
      - SIO:001235

  microRNA:
    is_a: noncoding RNA product
    exact_mappings:
      - SO:0000276
      - SIO:001397
      - WIKIDATA:Q310899
    id_prefixes:
      - MIR
      - HGNC
      - WormBase
    in_subset:
      - model_organism_database

  siRNA:
    aliases: ['small interfering RNA', 'RNAi']
    description: >-
      A small RNA molecule that is the product of a longer exogenous or
      endogenous dsRNA, which is either a bimolecular duplex or very long
      hairpin, processed (via the Dicer pathway) such that numerous siRNAs
      accumulate from both strands of the dsRNA. SRNAs trigger the cleavage
      of their target molecules.
    is_a: noncoding RNA product
    exact_mappings:
      - SO:0000646
      - WIKIDATA:Q203221
    id_prefixes:
      - MIR
      - HGNC
      - WormBase
    in_subset:
      - model_organism_database

  gene grouping mixin:
    description: >-
      any grouping of multiple genes or gene products
    mixin: true
    slots:
      - has gene or gene product

  gene family:
    aliases: ['orthogroup','protein family']
    is_a: biological entity
    exact_mappings:
      - NCIT:C26004
      - WIKIDATA:Q2278983
    narrow_mappings:
      # These term definitions focus only on proteins;
      # the 'biolink:GeneFamily' term would be more inclusive
      # to describe gene loci, non-coding RNA, etc.
      - SIO:001380
      - NCIT:C20130
      - WIKIDATA:Q417841
    mixins:
      - gene grouping mixin
      - chemical entity or gene or gene product
    description: >-
      any grouping of multiple genes or gene products related by common descent
    id_prefixes:
      - PANTHER.FAMILY
      - HGNC.FAMILY
      - FB       # FlyBase FBgg*
      - interpro # note: may be better to introduce a protein domain/family
      - CATH
      - CDD
      - HAMAP
      - PFAM
      - PIRSF
      - PRINTS
      - PRODOM
      - PROSITE
      - SMART
      - SUPFAM
      - TIGRFAM
      - CATH.SUPERFAMILY
      - RFAM ## RNAs only
      - KEGG.ORTHOLOGY ## aka KEGG.KO: K number
      - EGGNOG
    in_subset:
      - model_organism_database

  zygosity:
    is_a: attribute
    exact_mappings:
      - GENO:0000133

  genotype:
    is_a: biological entity
    mixins:
      - physical essence
      - genomic entity
      - physical essence
      - ontology class
    description: >-
      An information content entity that describes a genome by specifying the
      total variation in genomic sequence and/or gene expression, relative to
      some established background
    comments:
      - Consider renaming as genotypic entity
    slots:
      - has zygosity
    exact_mappings:
      - GENO:0000536
      - SIO:001079
    id_prefixes:
      - ZFIN
      - FB   # FlyBase FBba*
    in_subset:
      - model_organism_database

  haplotype:
    is_a: biological entity
    mixins:
      - genomic entity
      - physical essence
      - ontology class
    description: >-
      A set of zero or more Alleles on a single instance of a Sequence[VMC]
#    slots:
#      - completeness
    exact_mappings:
      - GENO:0000871
      - SO:0001024
      - VMC:Haplotype

  sequence variant:
    aliases: ['allele']
    local_names:
      agr: allele
    is_a: biological entity
    mixins:
      - genomic entity
      - physical essence
      - ontology class
    description: >-
      An allele that varies in its sequence from what is considered
      the reference allele at that locus.
    comments:
      - This class is for modeling the specific state at a locus.
        A single DBSNP rs ID could correspond to more than one sequence variants
        (e.g CIViC:1252 and CIViC:1253, two distinct BRCA2 alleles for rs28897743)
    broad_mappings:
      # slightly broader semantics than SO:0001059 - 'sequence alteration'
      # describes a sequence feature that may have 1..* sequence alterations
      - SO:0001060
    exact_mappings:
      - GENO:0000002
      - WIKIDATA:Q15304597
      - SIO:010277
      - VMC:Allele
      - SO:0001059
    id_prefixes:
      - CAID # ClinGen Allele Registry
      - CLINVAR
      - ClinVarVariant
      - WIKIDATA
      # - CIViC needs IRI mapping
      - DBSNP
      - DBSNP
      # - MYVARIANT_HG19 needs IRI mapping
      # - MYVARIANT_HG38 needs IRI mapping
      # - HGVS needs IRI mapping
      - MGI
      - ZFIN # ZFIN:ZDB-ALT-*
      - FB   # FlyBase FBa*
      - WB
      - WormBase ## WormBase:WBVar*
    alt_descriptions:
      AGR: >-
        An entity that describes a single affected, endogenous allele.
        These can be of any type that matches that definition
      VMC: >-
        A contiguous change at a Location
    slots:
      - has gene
    slot_usage:
      has gene:
        multivalued: true
        description: Each allele can be associated with any number of genes
      has biological sequence:
        description: >-
          The state of the sequence w.r.t a reference sequence
      id:
        examples:
          - value: ZFIN:ZDB-ALT-980203-1091
            description: ti282a allele from ZFIN
          - value: ClinVarVariant:17681
            description: NM_007294.3(BRCA1):c.2521C>T (p.Arg841Trp)
    in_subset:
      - model_organism_database

  snv:
    aliases: ['single nucleotide variant','single nucleotide polymorphism', 'snp']
    is_a: sequence variant
    description: >-
      SNVs are single nucleotide positions in genomic DNA at
      which different sequence alternatives exist
    exact_mappings:
      - SO:0001483

  reagent targeted gene:
    aliases: ['sequence targeting reagent']
    is_a: biological entity
    description: >-
      A gene altered in its expression level in the context of some
      experiment as a result of being targeted by gene-knockdown
      reagent(s) such as a morpholino or RNAi.
    mixins:
      - genomic entity
      - physical essence
      - ontology class
    exact_mappings:
      - GENO:0000504
    in_subset:
      - model_organism_database

  ## --------------------
  ## Clinical
  ## Attributes, Cohort,
  ## Exposures & Outcomes
  ## --------------------

  ## Clinical Attributes

  clinical attribute:
    is_a: attribute
    description: >-
      Attributes relating to a clinical manifestation
    exact_mappings:
      # Clinical Attribute
      - UMLSSC:T201
      - UMLSST:clna

  clinical measurement:
    is_a: clinical attribute
    description: >-
      A clinical measurement is a special kind of attribute which results
      from a laboratory observation from a subject individual or sample.
      Measurements can be connected to their subject by the 'has attribute' slot.
    slot_usage:
      has attribute type:
        required: true
        multivalued: false
        values_from:
          - EFO
          - LOINC
    exact_mappings:
      - EFO:0001444

  clinical modifier:
    is_a: clinical attribute
    description: >-
      Used to characterize and specify the phenotypic abnormalities
      defined in the phenotypic abnormality sub-ontology, with respect
      to severity, laterality, and other aspects
    exact_mappings:
      - HP:0012823

  clinical course:
    is_a: clinical attribute
    description: >-
      The course a disease typically takes from its onset, progression in time, and
      eventual resolution or death of the affected individual
    exact_mappings:
      - HP:0031797

  onset:
    is_a: clinical course
    description: >-
      The age group in which (disease) symptom manifestations appear
    exact_mappings:
      - HP:0003674

  clinical entity:
    is_a: named thing
    description: >-
      Any entity or process that exists in the clinical domain and outside the
      biological realm. Diseases are placed under biological entities

  clinical trial:
    is_a: clinical entity

  clinical intervention:
    is_a: clinical entity

  clinical finding:
    is_a: phenotypic feature
    description: >-
      this category is currently considered broad enough to tag clinical lab
      measurements and other biological attributes taken as 'clinical traits'
      with some statistical score, for example, a p value in genetic associations.
    slot_usage:
      has attribute:
        range: clinical attribute
    id_prefixes:
      - LOINC
      - NCIT
      - EFO

  hospitalization:
    is_a: clinical intervention
    exact_mappings:
      - SNOMEDCT:32485007
      - WIKIDATA:Q3140971

  socioeconomic attribute:
    is_a: attribute
    description: >-
      Attributes relating to a socioeconomic manifestation
    #slot_usage:
    # need a suitable qualifying socioeconomic ontology target here?
    # Perhaps some subset of ECTO: https://github.com/EnvironmentOntology/environmental-exposure-ontology
    #  has attribute type:
    #     range: socioeconomic ontology
    # exact_mappings:
    #  - ??

  ## Cohorts

  case:
    aliases: ['patient', 'proband']
    is_a: individual organism
    description: >-
      An individual (human) organism that has a patient role in some clinical context.

  cohort:
    is_a: study population
    description: >-
      A group of people banded together or treated as a group who share common characteristics.
      A cohort 'study' is a particular form of longitudinal study that samples a cohort,
      performing a cross-section at intervals through time.
    #
    # As of this moment (Nov. 22), the jury is still out on what metadata of a cohort
    # will be common to all cohort descriptions versus cohort-specific annotation.
    # The former should be embedded as explicit slots in the cohort category. The latter
    # ought to be documented as (ontology term constrained) extended node attributes.
    #
    #slots:
    #  - general disease focus,
    #  - specific inclusion/exclusion criteria,
    #  - year(s) of cohort creation,
    #  - institution.
    exact_mappings:
      - WIKIDATA:Q1303415
    narrow_mappings:
      # Professional or Occupational Group
      - UMLSSC:T097
      - UMLSST:prog
      # Family Group
      - UMLSSC:T099
      - UMLSST:famg
      # Age Group
      - UMLSSC:T100
      - UMLSST:aggp
      # Patient or Disabled Group
      - UMLSSC:T101
      - UMLSST:podg

  ## Exposures

  exposure event:
    aliases: ['exposure', 'experimental condition']
    mixin: true
    slots:
      - timepoint
    description: >-
      A (possibly time bounded) incidence of a feature of the environment of an organism that
      influences one or more phenotypic features of that organism, potentially mediated by genes
    exact_mappings:
      - XCO:0000000
    in_subset:
      - model_organism_database

  # TODO - confirm that genomic backgrounds are exposures
  genomic background exposure:
    mixins:
      - exposure event
      - gene grouping mixin
      - physical essence
      - genomic entity
      - ontology class
    description: >-
      A genomic background exposure is where an individual's specific genomic background
      of genes, sequence variants or other pre-existing genomic conditions constitute
      a kind of 'exposure' to the organism, leading to or influencing an outcome.

  pathological entity mixin:
    description: >-
      A pathological (abnormal) structure or process.
    mixin: true
    exact_mappings:
      - MPATH:0
    narrow_mappings:
      - HP:0000118

  pathological process:
    description: >-
      A biologic function or a process having an abnormal or deleterious
      effect at the subcellular, cellular, multicellular, or organismal level.
    is_a: biological process
    mixins:
      - pathological entity mixin
    exact_mappings:
      - OBI:1110122
      - NCIT:C16956
    narrow_mappings:
      # metastasis
      - NCIT:C19151
      - EFO:0009708

  pathological process exposure:
    mixins:
      - exposure event
    description: >-
      A pathological process, when viewed as an exposure, representing
      a precondition, leading to or influencing an outcome,
      e.g. autoimmunity leading to disease.

  pathological anatomical structure:
    description: >-
      An anatomical structure with the potential of have an abnormal or deleterious
      effect at the subcellular, cellular, multicellular, or organismal level.
    is_a: anatomical entity
    mixins:
      - pathological entity mixin

  pathological anatomical exposure:
    mixins:
      - exposure event
    description: >-
      An abnormal anatomical structure, when viewed as an exposure,
      representing an precondition, leading to or influencing an outcome,
      e.g. thrombosis leading to an ischemic disease outcome.

  disease or phenotypic feature exposure:
    mixins:
      - exposure event
      - pathological entity mixin
    description: >-
      A disease or phenotypic feature state, when viewed as an exposure,
      represents an precondition, leading to or influencing an outcome,
      e.g. HIV predisposing an individual to infections; a relative deficiency
      of skin pigmentation predisposing an individual to skin cancer.

  chemical exposure:
    mixins:
      - exposure event
    description: >-
      A chemical exposure is an intake of a particular
      chemical entity.
    exact_mappings:
      # this ECTO term is not visibly defined but
      # the 9000000-series identifiers seems to be the
      # numeric space of chemical exposure definitions
      - ECTO:9000000
      - SIO:001399

  complex chemical exposure:
    description: >-
      A complex chemical exposure is an intake of a chemical
      mixture (e.g. gasoline), other than a drug.

  drug exposure:
    is_a: chemical exposure
    aliases: ['drug intake', 'drug dose', 'medication intake']
    description: >-
      A drug exposure is an intake of a particular drug.
    mixins:
      - exposure event
    broad_mappings:
      # slightly broader than just drug effects on a biological system
      - SIO:001005
    exact_mappings:
      - ECTO:0000509

  # TODO: deprecate?
  drug to gene interaction exposure:
    description: >-
      drug to gene interaction exposure is a drug exposure is where the
      interactions of the drug with specific genes are known to constitute
      an 'exposure' to the organism, leading to or influencing an outcome.
    is_a: drug exposure
    mixins:
      - gene grouping mixin

  treatment:
    aliases: ['medical action', 'medical intervention']
    # 'named thing' seems too generic here but not sure what applies better here
    is_a: named thing
    mixins:
      - exposure event
      - chemical or drug or treatment
    description: >-
      A treatment is targeted at a disease or phenotype and may involve
      multiple drug 'exposures', medical devices and/or procedures
    slots:
      - has drug
      - has device
      - has procedure
    exact_mappings:
      - OGMS:0000090
      - SIO:001398

  biotic exposure:
    aliases: ['viral exposure','bacterial exposure']
    mixins:
      - exposure event
    description: >-
      An external biotic exposure is an intake of (sometimes pathological)
      biological organisms (including viruses).

  geographic exposure:
    is_a: environmental exposure
    mixins:
      - exposure event
    description: >-
      A geographic exposure is a factor relating to geographic
      proximity to some impactful entity.

  environmental exposure:
    mixins:
      - exposure event
    description: >-
      A environmental exposure is a factor relating to abiotic processes
      in the environment including sunlight (UV-B), atmospheric (heat,
      cold, general pollution) and water-born contaminants.

  behavioral exposure:
    mixins:
      - exposure event
    description: >-
      A behavioral exposure is a factor relating to behavior impacting an individual.

  socioeconomic exposure:
    mixins:
      - exposure event
    description: >-
      A socioeconomic exposure is a factor relating to social and
      financial status of an affected individual (e.g. poverty).
    slot_usage:
      has attribute:
        range: socioeconomic attribute
        required: true

  ## Outcomes

  outcome:
    mixin: true
    description: >-
      An entity that has the role of being the consequence of an exposure event.
      This is an abstract mixin grouping of various categories of possible
      biological or non-biological (e.g. clinical) outcomes.

  pathological process outcome:
    mixins:
      - outcome
    description: >-
      An outcome resulting from an exposure event which
      is the manifestation of a pathological process.

  pathological anatomical outcome:
    mixins:
      - outcome
    description: >-
      An outcome resulting from an exposure event which
      is the manifestation of an abnormal anatomical structure.

  disease or phenotypic feature outcome:
    mixins:
      - outcome
    description: >-
      Physiological outcomes resulting from an exposure event which
      is the manifestation of a disease or other characteristic phenotype.

  behavioral outcome:
    mixins:
      - outcome
    description: >-
      An outcome resulting from an exposure event which is
      the manifestation of human behavior.

  hospitalization outcome:
    mixins:
      - outcome
    description: >-
      An outcome resulting from an exposure event which is
      the increased manifestation of acute (e.g. emergency
      room visit) or chronic (inpatient) hospitalization.

  mortality outcome:
    mixins:
      - outcome
    description: >-
      An outcome of death from resulting from an exposure event.

  epidemiological outcome:
    mixins:
      - outcome
    description: >-
      An epidemiological outcome, such as societal disease
      burden, resulting from an exposure event.
    related_mappings:
      - NCIT:C19291

  socioeconomic outcome:
    mixins:
      - outcome
    description: >-
      An general social or economic outcome, such as
      healthcare costs, utilization, etc., resulting from an exposure event

  ## ------------
  ## ASSOCIATIONS
  ## ------------

  association:
    is_a: entity
    description: >-
      A typed association between two entities, supported by evidence
    comments:
      - This is roughly the model used by biolink and ontobio at the moment
    slots:
      - subject
      - predicate
      - object
      - relation
      - negated
      - qualifiers
      - publications
    slot_usage:
      type:
        description: rdf:type of biolink:Association should be fixed at rdf:Statement
      category:
        range: category type
        required: false
    exact_mappings:
      - OBAN:association
      - rdf:Statement
      - owl:Axiom

  contributor association:
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    description: >-
      Any association between an entity (such as a publication)
      and various agents that contribute to its realisation
    slot_usage:
      subject:
        range: information content entity
        description: >-
          information content entity which an agent has helped realise
      predicate:
        subproperty_of: contributor
        description: >-
          generally one of the predicate values 'provider', 'publisher', 'editor' or 'author'
      object:
        range: agent
        description: >-
          agent helping to realise the given entity (e.g. such as a publication)
      qualifiers:
        description: >-
          this field can be used to annotate special characteristics of an
          agent relationship, such as the fact that a given author agent of
          a publication is the 'corresponding author'

  genotype to genotype part association:
    is_a: association
    defining_slots:
      - subject
      - object
    description: >-
      Any association between one genotype and a genotypic entity that is a sub-component of it
    slot_usage:
      predicate:
        subproperty_of: has variant part
      subject:
        range: genotype
        description: >-
          parent genotype
      object:
        range: genotype
        description: >-
          child genotype

  genotype to gene association:
    description: >-
      Any association between a genotype and a gene.
      The genotype have have multiple variants in that gene or a single one.
      There is no assumption of cardinality
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      predicate:
        description: >-
          the relationship type used to connect genotype to gene
      subject:
        range: genotype
        description: >-
          parent genotype
      object:
        range: gene
        description: >-
          gene implicated in genotype

  genotype to variant association:
    description: >-
      Any association between a genotype and a sequence variant.
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      predicate:
        # subproperty_of: ???
        description: >-
          the relationship type used to connect genotype to gene
      subject:
        range: genotype
        description: >-
          parent genotype
      object:
        range: sequence variant
        description: >-
          gene implicated in genotype

  gene to gene association:
    aliases: ['molecular or genetic interaction']
    description: >-
      abstract parent class for different kinds of gene-gene or gene product
      to gene product relationships. Includes homology and interaction.
    abstract: true
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: gene or gene product
        description: >-
          the subject gene in the association. If the relation is symmetric,
          subject vs object is arbitrary. We allow a gene product to stand
          as a proxy for the gene or vice versa.
      object:
        range: gene or gene product
        description: >-
          the object gene in the association. If the relation is symmetric,
          subject vs object is arbitrary. We allow a gene product to stand
          as a proxy for the gene or vice versa.

  gene to gene homology association:
    description: >-
      A homology association between two genes. May be orthology (in which
      case the species of subject and object should differ) or paralogy
      (in which case the species may be the same)
    is_a: gene to gene association
    defining_slots:
      - subject
      - predicate
      - object
    slot_usage:
      predicate:
        subproperty_of: homologous to
        symmetric: true
        description: >-
          homology relationship type

  gene expression mixin:
    description: >-
      Observed gene expression intensity, context (site, stage) and
      associated phenotypic status within which the expression occurs.
    mixin: true
    slots:
      - quantifier qualifier
      - expression site
      - stage qualifier
      - phenotypic state
    slot_usage:
      quantifier qualifier:
        description: >-
          Optional quantitative value indicating degree of expression.

  gene to gene coexpression association:
    description: >-
      Indicates that two genes are co-expressed,
      generally under the same conditions.
    is_a: gene to gene association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - gene expression mixin
    slot_usage:
      predicate:
        subproperty_of: coexpressed with
        symmetric: true

  pairwise gene to gene interaction:
    description: >-
      An interaction between two genes or two gene products.
      May be physical (e.g. protein binding) or genetic (between genes).
      May be symmetric (e.g. protein interaction) or directed (e.g. phosphorylation)
    is_a: gene to gene association
    defining_slots:
      - subject
      - predicate
      - object
    slot_usage:
      predicate:
        subproperty_of: interacts with
        symmetric: true
      relation:
        values_from:
          - ro
          - mi
        description: "interaction relationship type"

  pairwise molecular interaction:
    description: >-
      An interaction at the molecular level between two physical entities
    is_a: pairwise gene to gene interaction
    slots:
      # need to declare a slot before it is used,
      # then list it in 'slots', not just a slot_usage
      - interacting molecules category
    defining_slots:
      - subject
      - predicate
      - object
    slot_usage:
      subject:
        range: molecular entity
      id:
        description: >-
          identifier for the interaction. This may come from an interaction database such as IMEX.
        examples:
          - value: WB:WBInteraction000538741
        values_from:
          - IMEX
          - BioGRID
      predicate:
        subproperty_of: molecularly interacts with
      relation:
        values_from:
          - ro
          - mi
        description: "interaction relationship type"
        examples:
          - value: RO:0002447
            description: the subject molecular phosphorylates the object molecule
      object:
        range: molecular entity

  cell line to entity association mixin:
    description: >-
      An relationship between a cell line and another entity
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: cell line

  # TODO: figure out what gives with subject range
  cell line to disease or phenotypic feature association:
    is_a: association
    mixins:
      - cell line to entity association mixin
      - entity to disease or phenotypic feature association mixin
    description: >-
      An relationship between a cell line and a disease or a phenotype, where
      the cell line is derived from an individual with that disease or phenotype.
    slot_usage:
      subject:
#        - range: cell line
#        - range: disease or phenotypic feature
        range: disease or phenotypic feature

  chemical entity to entity association mixin:
    description: >-
      An interaction between a chemical entity and another entity
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: chemical entity
        description: "the chemical entity that is an interactor"

  drug to entity association mixin:
    description: >-
      An interaction between a drug and another entity
    is_a: chemical entity to entity association mixin
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: drug
        description: "the drug that is an interactor"

  chemical to entity association mixin:
    description: >-
      An interaction between a chemical entity and another entity
    is_a: chemical entity to entity association mixin
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: chemical entity
        description: "the chemical entity or entity that is an interactor"

  case to entity association mixin:
    description: >-
      An abstract association for use where the case is the subject
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: case
        description: "the case (e.g. patient) that has the property"

  chemical to chemical association:
    description: >-
      A relationship between two chemical entities. This can encompass actual
      interactions as well as temporal causal edges, e.g. one chemical converted to another.
    is_a: association
    defining_slots:
      - subject
      - object
    mixins:
      - chemical to entity association mixin
    slot_usage:
      object:
        range: chemical entity
        description: "the chemical element that is the target of the statement"

  reaction to participant association:
    description:
    is_a: chemical to chemical association
    slots:
      - stoichiometry
      - reaction direction
      - reaction side
    slot_usage:
      subject:
        range: molecular entity
    defining_slots:
      - subject
      - predicate
      - object

  reaction to catalyst association:
    description:
    is_a: reaction to participant association
    slot_usage:
      object:
        range: gene or gene product

  chemical to chemical derivation association:
    description: >-
      A causal relationship between two chemical entities, where the subject
      represents the upstream entity and the object represents the downstream.
      For any such association there is an implicit reaction:
        IF
        R has-input C1 AND
        R has-output C2 AND
        R enabled-by P AND
        R type Reaction
        THEN
        C1 derives-into C2 <<catalyst qualifier P>>
    is_a: chemical to chemical association
    defining_slots:
      - subject
      - predicate
      - object
    slots:
      - catalyst qualifier
    slot_usage:
      subject:
        range: chemical entity
        description: >-
          the upstream chemical entity
      object:
        range: chemical entity
        description: >-
          the downstream chemical entity
      predicate:
        subproperty_of: derives into
      catalyst qualifier:
        description: >-
          this connects the derivation edge to the chemical entity that
          catalyzes the reaction that causes the subject chemical to
          transform into the object chemical.

  chemical to disease or phenotypic feature association:
    description: >-
      An interaction between a chemical entity and a phenotype or disease,
      where the presence of the chemical gives rise to or exacerbates the phenotype.
    is_a: association
    narrow_mappings:
      - SIO:000993
    defining_slots:
      - subject
      - object
    mixins:
      - chemical to entity association mixin
      - entity to disease or phenotypic feature association mixin
    slot_usage:
      object:
        range: disease or phenotypic feature
        description: "the disease or phenotype that is affected by the chemical"

  chemical to pathway association:
    description: >-
      An interaction between a chemical entity and a biological process or pathway.
    is_a: association
    exact_mappings:
      - SIO:001250
    defining_slots:
      - subject
      - object
    mixins:
      - chemical to entity association mixin
    slot_usage:
      object:
        range: pathway
        description: "the pathway that is affected by the chemical"

  chemical to gene association:
    description: >-
      An interaction between a chemical entity and a gene or gene product.
    is_a: association
    exact_mappings:
      - SIO:001257
    defining_slots:
      - subject
      - object
    mixins:
      - chemical to entity association mixin
    slot_usage:
      object:
        range: gene or gene product
        description: >-
          the gene or gene product that is affected by the chemical.

  drug to gene association:
    description: >-
      An interaction between a drug and a gene or gene product.
    is_a: association
    related_mappings:
      - SIO:001257
    defining_slots:
      - subject
      - object
    mixins:
      - drug to entity association mixin
    slot_usage:
      object:
        range: gene or gene product
        description: "the gene or gene product that is affected by the drug"

  material sample to entity association mixin:
    description: >-
      An association between a material sample and something.
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: material sample
        description: >-
          the material sample being described

  material sample derivation association:
    description: >-
      An association between a material sample and
      the material entity from which it is derived.
    is_a: association
    defining_slots:
      - subject
      - predicate
    slot_usage:
      subject:
        range: material sample
        description: >-
          the material sample being described
      object:
        description: >-
          the material entity the sample was derived from. This may be another
          material sample, or any other material entity, including for example
          an organism, a geographic feature, or some environmental material.
      predicate:
        description: >-
          derivation relationship
        subproperty_of: derives from

  material sample to disease or phenotypic feature association:
    description: >-
      An association between a material sample and a disease or phenotype.
    is_a: association
    mixins:
      - material sample to entity association mixin
      - entity to disease or phenotypic feature association mixin
    defining_slots:
      - subject
      - object

  disease to entity association mixin:
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: disease
        description: "disease class"
        values_from: ['mondo', 'omim', 'orphanet', 'ncit', 'doid']
        examples:
          - value: MONDO:0017314
            description: "Ehlers-Danlos syndrome, vascular type"

  entity to exposure event association mixin:
    description: >-
      An association between some entity and an exposure event.
    mixin: true
    defining_slots:
      - object
    slot_usage:
      object:
        range: exposure event

  disease to exposure event association:
    description: >-
      An association between an exposure event and a disease.
    is_a: association
    mixins:
      - disease to entity association mixin
      - entity to exposure event association mixin
    defining_slots:
      - subject
      - object

  exposure event to entity association mixin:
    deprecated: true

  entity to outcome association mixin:
    description: >-
      An association between some entity and an outcome
    mixin: true
    defining_slots:
      - object
    slot_usage:
      object:
        range: outcome

  exposure event to outcome association:
    description: >-
      An association between an exposure event and an outcome.
    is_a: association
    mixins:
      - exposure event to entity association mixin
      - entity to outcome association mixin
    slots:
      - has population context
      - has temporal context
    defining_slots:
      - subject
      - object

  frequency qualifier mixin:
    mixin: true
    description: >-
      Qualifier for frequency type associations
    slots:
      - frequency qualifier

  entity to feature or disease qualifiers mixin:
    description: >-
      Qualifiers for entity to disease or phenotype associations.
    mixin: true
    is_a: frequency qualifier mixin
    slots:
      - severity qualifier
      - onset qualifier

  entity to phenotypic feature association mixin:
    mixin: true
    is_a: entity to feature or disease qualifiers mixin
    defining_slots:
      - object
    slot_usage:
      description:
        description: >-
          A description of specific aspects of this phenotype, not otherwise
          covered by the phenotype ontology class
      object:
        range: phenotypic feature
        description: "phenotypic class"
        values_from: ['upheno', 'hp', 'mp', 'wbphenotype']
        examples:
          - value: HP:0002487
            description: Hyperkinesis
          - value: WBPhenotype:0000180
            description: axon morphology variant
          - value: MP:0001569
            description: abnormal circulating bilirubin level
    slots:
      - sex qualifier

  named thing to information content entity association:
    description: >-
      association between a named thing and a information content entity where the specific context
      of the relationship between that named thing and the publication is unknown. For
      example, model organisms databases often capture the knowledge that a gene is found in a
      journal article, but not specifically the context in which that gene was documented in the article.
      In these cases, this association with the accompanying predicate 'mentions' could be used.
      Conversely, for more specific associations (like 'gene to disease association', the publication should
      be captured as an edge property).
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        domain: named thing
      object:
        range: publication
      predicate:
        subproperty_of: mentions
    in_subset:
      - model_organism_database

  entity to disease association mixin:
    description: >-
      mixin class for any association whose object (target node) is a disease
    mixin: true
    is_a: entity to feature or disease qualifiers mixin
    defining_slots:
      - object
    slot_usage:
      object:
        range: disease
        description: "disease"
        examples:
          - value: MONDO:0020066
            description: "Ehlers-Danlos syndrome"

  disease or phenotypic feature to entity association mixin:
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: disease or phenotypic feature
        description: "disease or phenotype"
        examples:
          - value: MONDO:0017314
            description: "Ehlers-Danlos syndrome, vascular type"
          - value: MP:0013229
            description: "abnormal brain ventricle size"

  disease or phenotypic feature to location association:
    description: >-
      An association between either a disease or a phenotypic feature and
      an anatomical entity, where the disease/feature manifests in that site.
    is_a: association
    mixins:
      - disease or phenotypic feature to entity association mixin
    slot_usage:
      object:
        range: anatomical entity
        description: >-
          anatomical entity in which the disease or feature is found.
        examples:
          - value: UBERON:0002048
            description: "lung"

  entity to disease or phenotypic feature association mixin:
    mixin: true
    defining_slots:
      - object
    slot_usage:
      object:
        range: disease or phenotypic feature
        description: "disease or phenotype"
        examples:
          - value: MONDO:0017314
            description: "Ehlers-Danlos syndrome, vascular type"
          - value: MP:0013229
            description: "abnormal brain ventricle size"

  genotype to entity association mixin:
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: genotype
        description: "genotype that is the subject of the association"

  genotype to phenotypic feature association:
    is_a: association
    defining_slots:
      - subject
      - object
    description: >-
      Any association between one genotype and a phenotypic feature, where having
      the genotype confers the phenotype, either in isolation or through environment
    mixins:
      - entity to phenotypic feature association mixin
      - genotype to entity association mixin
    slot_usage:
      predicate:
        subproperty_of: has phenotype
      subject:
        range: genotype
        description: >-
          genotype that is associated with the phenotypic feature

  # ie: smoke exposure to coughing phenotype? is this a denormalization?
  exposure event to phenotypic feature association:
    is_a: association
    defining_slots:
      - subject
      - object
    description: >-
      Any association between an environment and a phenotypic feature,
      where being in the environment influences the phenotype.
    mixins:
      - entity to phenotypic feature association mixin
    slot_usage:
      subject:
        range: exposure event

  disease to phenotypic feature association:
    is_a: association
    defining_slots:
      - subject
      - object
    description: >-
      An association between a disease and a phenotypic feature in which the
      phenotypic feature is associated with the disease in some way.
    mixins:
      - entity to phenotypic feature association mixin
      - disease to entity association mixin

  case to phenotypic feature association:
    description: >-
      An association between a case (e.g. individual patient) and a phenotypic
      feature in which the individual has or has had the phenotype.
    is_a: association
    defining_slots:
      - subject
      - object
    mixins:
      - entity to phenotypic feature association mixin
      - case to entity association mixin

  behavior to behavioral feature association:
    description: >-
      An association between an mixture behavior and
      a behavioral feature manifested by
      the individual exhibited or has exhibited the behavior.
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: behavior
        description: >-
          behavior that is the subject of the association
      object:
        range: behavioral feature
        description: >-
          behavioral feature that is the object of the association
    mixins:
      - entity to phenotypic feature association mixin

  gene to entity association mixin:
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: gene or gene product
        description: >-
          gene that is the subject of the association

  variant to entity association mixin:
    local_names:
      ga4gh: variant annotation
    mixin: true
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: sequence variant
        description: >-
          a sequence variant in which the allele state is associated with some other entity
        examples:
          - value: ClinVar:38077
            description: "ClinVar representation of NM_000059.3(BRCA2):c.7007G>A (p.Arg2336His)"
          - value: ClinGen:CA024716
            description: "chr13:g.32921033G>C (hg19) in ClinGen"

  gene to phenotypic feature association:
    is_a: association
    exact_mappings:
      - WBVocab:Gene-Phenotype-Association
    defining_slots:
      - subject
      - object
    mixins:
      - entity to phenotypic feature association mixin
      - gene to entity association mixin
    slot_usage:
      subject:
        range: gene or gene product
        description: "gene in which variation is correlated with the phenotypic feature"
        examples:
          - value: HGNC:2197
            description: "COL1A1 (Human)"

  gene to disease association:
    is_a: association
    comments:
      - NCIT:R176 refers to the inverse relationship
    exact_mappings:
      - SIO:000983
    defining_slots:
      - subject
      - object
    mixins:
      - entity to disease association mixin
      - gene to entity association mixin
    slot_usage:
      subject:
        range: gene or gene product
        description: >-
          gene in which variation is correlated with the disease,
          may be protective or causative or associative, or as a model

  variant to gene association:
    description: >-
      An association between a variant and a gene, where the variant has
      a genetic association with the gene (i.e. is in linkage disequilibrium)
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - variant to entity association mixin
    slot_usage:
      object:
        range: gene
      predicate:
        subproperty_of: genetic association

  variant to gene expression association:
    description: >-
      An association between a variant and expression of a gene (i.e. e-QTL)
    is_a: variant to gene association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - gene expression mixin
    slot_usage:
      predicate:
        subproperty_of: affects expression of

  variant to population association:
    description: >-
      An association between a variant and a population, where the variant has
      particular frequency in the population
    is_a: association
    defining_slots:
      - subject
      - object
    mixins:
      - variant to entity association mixin
      - frequency quantifier
      - frequency qualifier mixin
    slot_usage:
      subject:
        range: sequence variant
        description: >-
          an allele that has a certain frequency in a given population
        examples:
          - value: "NC_000017.11:g.43051071A>T"
            description: >-
              17:41203088 A/C in gnomad
      object:
        range: population of individual organisms
        description: >-
          the population that is observed to have the frequency
        examples:
          - value: HANCESTRO:0010
            description: African
      has quotient:
        description: >-
          frequency of allele in population, expressed as a number with allele
          divided by number in reference population, aka allele frequency
        examples:
          - value: "0.0001666"
      has count:
        description: >-
          number in object population that carry a particular allele, aka allele count
        examples:
          - value: "4"
            description: 4 individuals in gnomad set
      has total:
        description: >-
          number all populations that carry a particular allele, aka allele number
        examples:
          - value: "24014"
            description: 24014 individuals in gnomad set

  population to population association:
    description: >-
      An association between a two populations
    is_a: association
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: population of individual organisms
        description: >-
          the population that form the subject of the association
      object:
        range: population of individual organisms
        description: >-
          the population that form the object of the association
      predicate:
        # subproperty_of: ???
        description: >-
          A relationship type that holds between the subject and object
          populations. Standard mereological relations can be used.
          E.g. subject part-of object, subject overlaps object.
          Derivation relationships can also be used

  variant to phenotypic feature association:
    is_a: association
    defining_slots:
      - subject
      - object
    mixins:
      - variant to entity association mixin
      - entity to phenotypic feature association mixin
    slot_usage:
      subject:
        range: sequence variant
        description: >-
          a sequence variant in which the allele state is
          associated in some way with the phenotype state

  variant to disease association:
    is_a: association
    comments:
      - TODO decide no how to model pathogenicity
    defining_slots:
      - subject
      - object
    mixins:
      - variant to entity association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        description: >-
          a sequence variant in which the allele state
          is associated in some way with the disease state
        examples:
          - value: ClinVar:52241
            description: "NM_000059.3(BRCA2):c.7007G>C (p.Arg2336Pro)"
      predicate:
        description: >-
          E.g. is pathogenic for
        subproperty_of: related condition
      object:
        description: >-
          a disease that is associated with that variant
        examples:
          - value: MONDO:0016419
            description: hereditary breast cancer

  genotype to disease association:
    is_a: association
    comments:
      - TODO decide no how to model pathogenicity
    defining_slots:
      - subject
      - object
    mixins:
      - genotype to entity association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        description: >-
          a genotype that is associated in some way with a disease state
      predicate:
        description: >-
          E.g. is pathogenic for
        subproperty_of: related condition
      object:
        description: >-
          a disease that is associated with that genotype
        examples:
          - value: MONDO:0016419
            description: hereditary breast cancer

  model to disease association mixin:
    description: >-
      This mixin is used for any association class for which the subject
      (source node) plays the role of a 'model', in that it recapitulates some
      features of the disease in a way that is useful for studying the disease
      outside a patient carrying the disease
    mixin: true
    slot_usage:
      subject:
        description: >-
          The entity that serves as the model of the disease. This may be
          an organism, a strain of organism, a genotype or variant that exhibits
          similar features, or a gene that when mutated exhibits features of the disease
      predicate:
        subproperty_of: model of
        description: >-
          The relationship to the disease

  gene as a model of disease association:
    is_a: gene to disease association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - model to disease association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        range: gene or gene product
        description: >-
          A gene that has a role in modeling the disease. This may be a model
          organism ortholog of a known disease gene, or it may be a gene whose
          mutants recapitulate core features of the disease.

  variant as a model of disease association:
    is_a: variant to disease association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - model to disease association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        range: sequence variant
        description: >-
          A variant that has a role in modeling the disease.

  genotype as a model of disease association:
    is_a: genotype to disease association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - model to disease association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        range: genotype
        description: >-
          A genotype that has a role in modeling the disease.

  cell line as a model of disease association:
    is_a: cell line to disease or phenotypic feature association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - model to disease association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        range: cell line
        description: >-
          A cell line derived from an organismal entity with a disease state that is used
          as a model of that disease.

  organismal entity as a model of disease association:
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    mixins:
      - model to disease association mixin
      - entity to disease association mixin
    slot_usage:
      subject:
        range: organismal entity
        description: >-
          A organismal entity (strain, breed) with a predisposition to a disease, or bred/created
          specifically to model a disease.

  organism to organism association:
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    slot_usage:
      subject:
        range: individual organism
      relation:
        values_from:
          - ro
      object:
        range: individual organism
        description: >-
          An association between two individual organisms.

  taxon to taxon association:
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    slot_usage:
      subject:
        range: organism taxon
      relation:
        values_from:
          - ro
      object:
        range: organism taxon
        description: >-
          An association between individuals of different taxa.

  gene has variant that contributes to disease association:
    is_a: gene to disease association
    defining_slots:
      - subject
      - predicate
      - object
    slots:
      - sequence variant qualifier
    slot_usage:
      subject:
        range: gene or gene product
        description: >-
          A gene that has a role in modeling the disease. This may be
          a model organism ortholog of a known disease gene, or it may be
          a gene whose mutants recapitulate core features of the disease.

  gene to expression site association:
    is_a: association
    defining_slots:
      - subject
      - predicate
      - object
    description: >-
      An association between a gene and an expression site,
      possibly qualified by stage/timing info.
    notes:
      - "TBD: introduce subclasses for distinction between wild-type and experimental conditions?"
    see_also: "https://github.com/monarch-initiative/ingest-artifacts/tree/master/sources/BGee"
    slots:
      - stage qualifier
      - quantifier qualifier
    slot_usage:
      subject:
        range: gene or gene product
        description: "gene in which variation is correlated with the phenotypic feature"
      object:
        range: anatomical entity
        description: "location in which the gene is expressed"
        examples:
          - value: UBERON:0002037
            description: cerebellum
      predicate:
        description: "expression relationship"
        subproperty_of: expressed in
      stage qualifier:
        range: life stage
        description: "stage at which the gene is expressed in the site"
        examples:
          - value: UBERON:0000069
            description: larval stage
      quantifier qualifier:
        description: >-
          can be used to indicate magnitude, or also ranking

  sequence variant modulates treatment association:
    is_a: association
    description: >-
      An association between a sequence variant and a treatment or health intervention.
      The treatment object itself encompasses both the disease and the drug used.
    comments:
      - An alternate way to model the same information could be via a qualifier
    defining_slots:
      - subject
      - object
    abstract: true
    slot_usage:
      subject:
        range: sequence variant
        description: "variant that modulates the treatment of some disease"
      object:
        range: treatment
        description: "treatment whose efficacy is modulated by the subject variant"

  functional association:
    is_a: association
    description: >-
      An association between a macromolecular machine mixin (gene, gene product or
      complex of gene products) and either a molecular activity, a biological
      process or a cellular location in which a function is executed.
    slot_usage:
      subject:
        range: macromolecular machine mixin
#          aliases:
#            bioentity:
#              schema: amigo
        description: >-
          gene, product or macromolecular complex mixin that
          has the function associated with the GO term
        examples:
          - value: ZFIN:ZDB-GENE-050417-357
            description: twist1b
      object:
        range: gene ontology class
#          aliases:
#            class:
#              schema: amigo
        description: >-
          class describing the activity, process or
          localization of the gene product
        values_from:
          - go
        examples:
          - value: GO:0016301
            description: kinase activity
          - value: GO:0045211
            description: postsynaptic membrane

  macromolecular machine to entity association mixin:
    description: >-
      an association which has a macromolecular machine mixin as a subject
    mixin: true
    slot_usage:
      subject:
        domain: macromolecular machine mixin

  macromolecular machine to molecular activity association:
    description: >-
      A functional association between a macromolecular machine (gene,
      gene product or complex) and a molecular activity (as represented
      in the GO molecular function branch), where the entity
      carries out the activity, or contributes to its execution.
    is_a: functional association
    mixins:
      - macromolecular machine to entity association mixin
    slot_usage:
      object:
        range: molecular activity

  macromolecular machine to biological process association:
    description: >-
      A functional association between a macromolecular machine (gene,
      gene product or complex) and a biological process or pathway
      (as represented in the GO biological process branch), where the entity
      carries out some part of the process, regulates it, or acts upstream of it.
    is_a: functional association
    mixins:
      - macromolecular machine to entity association mixin
    slot_usage:
      object:
        range: biological process

  macromolecular machine to cellular component association:
    description: >-
      A functional association between a macromolecular machine (gene,
      gene product or complex) and a cellular component (as represented
      in the GO cellular component branch), where the entity
      carries out its function in the cellular component.
    is_a: functional association
    mixins:
      - macromolecular machine to entity association mixin
    slot_usage:
      object:
        range: cellular component

  gene to go term association:
    aliases: ['functional association']
    is_a: functional association
    exact_mappings:
      - WBVocab:Gene-GO-Association
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: gene
#          aliases:
#            bioentity:
#              schema: amigo
        description: >-
          gene, product or macromolecular complex that has
          the function associated with the GO term
        examples:
          - value: ZFIN:ZDB-GENE-050417-357
            description: twist1b
      object:
        range: gene ontology class
#          aliases:
#            class:
#              schema: amigo
        description: >-
          class describing the activity, process or
          localization of the gene product
        values_from:
          - go
        examples:
          - value: GO:0016301
            description: kinase activity

  entity to disease association:
    is_a: association
    exact_mappings:
    slots:
      - FDA approval status
    defining_slots:
      - subject
      - object

  entity to phenotypic feature association:
    is_a: association
    exact_mappings:
    slots:
      - FDA approval status
    defining_slots:
      - subject
      - object

  ## -----------------
  ## SEQUENCE FEATURES
  ## -----------------

  sequence association:
    is_a: association
    description: >-
      An association between a sequence feature and a nucleic acid entity it is localized to.

  genomic sequence localization:
    is_a: sequence association
    description: >-
      A relationship between a sequence feature and a nucleic acid entity
      it is localized to. The reference entity may be a chromosome,
      chromosome region or information entity such as a contig.
    slot_usage:
      subject:
        aliases: ['sequence feature']
        range: nucleic acid entity
      object:
        aliases: ['reference']
        range: nucleic acid entity # typically a chromosome use monochrom
      predicate:
        subproperty_of: has sequence location
    slots:
      - start interbase coordinate
      - end interbase coordinate
      - genome build
      - strand
      - phase

  sequence feature relationship:
    is_a: association
    defining_slots:
      - subject
      - object
    description: >-
      For example, a particular exon is part of a particular transcript or gene
    slot_usage:
      subject:
        range: nucleic acid entity
      object:
        range: nucleic acid entity # typically a chromosome
    exact_mappings:
      - CHADO:feature_relationship

  transcript to gene relationship:
    is_a: sequence feature relationship
    defining_slots:
      - subject
      - object
    description: >-
      A gene is a collection of transcripts
    slot_usage:
      subject:
        range: transcript
      object:
        range: gene

  gene to gene product relationship:
    is_a: sequence feature relationship
    defining_slots:
      - subject
      - object
    description: >-
      A gene is transcribed and potentially translated to a gene product
    slot_usage:
      subject:
        range: gene
      object:
        range: gene product mixin
      predicate:
        subproperty_of: has gene product

  exon to transcript relationship:
    is_a: sequence feature relationship
    defining_slots:
      - subject
      - object
    description: >-
      A transcript is formed from multiple exons
    slot_usage:
      subject:
        range: exon
      object:
        range: transcript

  gene regulatory relationship:
    is_a: association
    description: >-
      A regulatory relationship between two genes
    slot_usage:
      predicate:
        # subproperty_of: ???
        description: >-
          the direction is always from regulator to regulated
      subject:
        range: gene or gene product
        role: regulatory gene
      object:
        range: gene or gene product
        role: regulated gene

  anatomical entity to anatomical entity association:
    # schema: gocam
    is_a: association
    abstract: true
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: anatomical entity
      object:
        range: anatomical entity

  anatomical entity to anatomical entity part of association:
#      schema: gocam
    is_a: anatomical entity to anatomical entity association
    description: >-
      A relationship between two anatomical entities where the relationship
      is mereological, i.e the two entities are related by parthood. This
      includes relationships between cellular components and cells, between
      cells and tissues, tissues and whole organisms
    defining_slots:
      - predicate
    slot_usage:
      subject:
        range: anatomical entity
        description: >-
          the part
      object:
        range: anatomical entity
        description: >-
          the whole
      predicate:
        subproperty_of: part of

  anatomical entity to anatomical entity ontogenic association:
    is_a: anatomical entity to anatomical entity association
    description: >-
      A relationship between two anatomical entities where the relationship
      is ontogenic, i.e. the two entities are related by development. A number
      of different relationship types can be used to specify the precise
      nature of the relationship.
    defining_slots:
      - predicate
    slot_usage:
      subject:
        range: anatomical entity
        description: >-
          the structure at a later time
      object:
        range: anatomical entity
        description: >-
          the structure at an earlier time
      predicate:
         subproperty_of: develops from

  organism taxon to entity association:
    mixin: true
    description: >-
      An association between an organism taxon and another entity
    defining_slots:
      - subject
    slot_usage:
      subject:
        range: organism taxon
        description: >-
          organism taxon that is the subject of the association
      
  organism taxon to organism taxon association:
    is_a: association
    abstract: true
    mixins:
      - organism taxon to entity association
    description: >-
      A relationship between two organism taxon nodes
    defining_slots:
      - subject
      - object
    slot_usage:
      subject:
        range: organism taxon
      object:
        range: organism taxon

  organism taxon to organism taxon specialization:
    is_a: organism taxon to organism taxon association
    description: >-
      A child-parent relationship between two taxa.
      For example: Homo sapiens subclass_of Homo
    defining_slots:
      - predicate
    slot_usage:
      subject:
        range: organism taxon
        role: child taxon
        description: >-
          the more specific taxon
      object:
        range: organism taxon
        role: parent taxon
        description: >-
          the more general taxon
      predicate:
         subproperty_of: subclass of

  organism taxon to organism taxon interaction:
    is_a: organism taxon to organism taxon association
    description: >-
      An interaction relationship between two taxa. This may be a symbiotic
      relationship (encompassing mutualism and parasitism), or it may be non-symbiotic.
      Example: plague transmitted_by flea; cattle domesticated_by Homo sapiens; plague infects Homo sapiens
    defining_slots:
      - predicate
    slots:
      - associated environmental context
    slot_usage:
      subject:
        range: organism taxon
        role: interactor taxon
        description: >-
          the taxon that is the subject of the association
      object:
        range: organism taxon
        role: interactee taxon
        description: >-
          the taxon that is the subject of the association
      predicate:
         subproperty_of: interacts with
      associated environmental context:
         description: >-
           the environment in which the two taxa interact

  organism taxon to environment association:
    is_a: association
    abstract: true
    mixins:
      - organism taxon to entity association
    slot_usage:
      subject:
        range: organism taxon
        role: interactor taxon
        description: >-
          the taxon that is the subject of the association
      object:
        role: environmental context
        description: >-
          the environment in which the organism occurs
      predicate:
        description: >-
          predicate describing the relationship between the taxon and the environment
           
