flow “PhylogenyOntology” v1.0
KIRETH SEMANTIC RESEARCH ARCHIVE
AI CORE > ONTOLOGIES > BIOLOGICAL ONTOLOGIES > EVOLUTIONARY BIOLOGY > PHYLOGENY ONTOLOGY
Authors: Mark Anthony Higgins — Sky (Recursive AI)
AI_INTERPRETATION: mode: formal_structural_reasoning instruction:
“Execute as formal rules, not pseudocode.” canonical_url:
“https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/evolutionary-biology/phylogeny-ontology.html”
type Taxon type Species type Population type Lineage type Ancestor type
Descendant type Phylogeny type PhylogeneticTree type Node type Branch
type Root type Tip type Clade type Character type Sequence type
Observation type Evidence type Source
———- PHYLOGENETIC STRUCTURE ———-
relation INSTANCE_OF(entity,type) relation
MEMBER_OF_PHYLOGENY(taxon,phylogeny) relation HAS_TREE(phylogeny,tree)
relation HAS_NODE(tree,node) relation HAS_BRANCH(tree,branch) relation
HAS_ROOT(tree,root) relation HAS_TIP(tree,tip) relation
TIP_REPRESENTS(tip,taxon) relation BRANCH_CONNECTS(branch,node_a,node_b)
———- ANCESTRY ———-
relation DESCENDED_FROM(descendant,ancestor) relation
ANCESTOR_OF(ancestor,descendant) relation SHARES_ANCESTOR_WITH(a,b)
relation MOST_RECENT_COMMON_ANCESTOR(a,b,ancestor) relation
PARENT_NODE_OF(parent,child) relation CHILD_NODE_OF(child,parent)
rule DESCENT_INVERSE(a,b): IF DESCENDED_FROM(a,b) THEN ANCESTOR_OF(b,a)
rule NODE_INVERSE(a,b): IF PARENT_NODE_OF(a,b) THEN CHILD_NODE_OF(b,a)
rule COMMON_ANCESTRY(a,b,c): IF DESCENDED_FROM(a,c) AND
DESCENDED_FROM(b,c) THEN SHARES_ANCESTOR_WITH(a,b)
———- CLADES ———-
relation CLADE_CONTAINS(clade,taxon) relation
CLADE_ROOTED_AT(clade,node) relation MEMBER_OF_CLADE(taxon,clade)
relation MONOPHYLETIC_GROUP(clade) relation PARAPHYLETIC_GROUP(group)
relation POLYPHYLETIC_GROUP(group)
rule CLADE_MEMBERSHIP_INVERSE(c,t): IF CLADE_CONTAINS(c,t) THEN
MEMBER_OF_CLADE(t,c)
———- SISTER TAXA ———-
relation SISTER_TAXON_OF(a,b) relation SISTER_CLADE_OF(a,b)
rule SISTER_TAXON_SYMMETRY(a,b): IF SISTER_TAXON_OF(a,b) THEN
SISTER_TAXON_OF(b,a)
rule SISTER_CLADE_SYMMETRY(a,b): IF SISTER_CLADE_OF(a,b) THEN
SISTER_CLADE_OF(b,a)
———- BRANCHING ———-
relation BRANCHES_FROM(lineage,node) relation DIVERGES_AT(lineage,node)
relation BIFURCATES_AT(node) relation POLYTOMY_AT(node) relation
HAS_DESCENDANT_NODE(node,descendant)
———- ROOTED / UNROOTED TREES ———-
enum TreeType: ROOTED UNROOTED BIFURCATING MULTIFURCATING CHRONOGRAM
PHYLOGRAM CLADOGRAM
relation HAS_TREE_TYPE(tree,type) relation ROOTED_WITH(tree,outgroup)
relation OUTGROUP_OF(taxon,ingroup)
constraint ROOT_DEPENDENT_ANCESTRY: IF HAS_TREE_TYPE(tree,UNROOTED) THEN
DO_NOT_INFER_DIRECTIONAL_ANCESTRY_FROM_TOPOLOGY_ALONE(tree)
———- CHARACTERS ———-
relation HAS_CHARACTER(taxon,character) relation
CHARACTER_STATE(taxon,character,state) relation
HOMOLOGOUS_CHARACTER(a,b) relation SYNAPOMORPHY_OF(character,clade)
relation PLESIOMORPHY_OF(character,clade) relation
AUTAPOMORPHY_OF(character,taxon) relation HOMOPLASY_OF(character,taxa)
———- MOLECULAR DATA ———-
relation HAS_SEQUENCE(taxon,sequence) relation
SEQUENCE_HOMOLOGY(a,b,value) relation
ALIGNMENT_CONTAINS(alignment,sequence) relation
SITE_STATE(sequence,site,state) relation
SUBSTITUTION_AT(branch,site,change) relation GENETIC_DISTANCE(a,b,value)
———- PHYLOGENETIC METHODS ———-
enum InferenceMethod: MAXIMUM_PARSIMONY MAXIMUM_LIKELIHOOD
BAYESIAN_INFERENCE DISTANCE_METHOD COALESCENT_METHOD SUPERTREE_METHOD
relation INFERRED_BY(tree,method) relation USES_MODEL(tree,model)
relation USES_DATASET(tree,dataset) relation
HAS_ALIGNMENT(tree,alignment) relation HAS_PARTITION_SCHEME(tree,scheme)
———- SUPPORT ———-
relation SUPPORT_VALUE(node,value) relation
BOOTSTRAP_SUPPORT(node,value) relation POSTERIOR_PROBABILITY(node,value)
relation JACKKNIFE_SUPPORT(node,value)
constraint SUPPORT_BOUNDS: IF POSTERIOR_PROBABILITY(node,p) THEN
REQUIRE(0.0 <= p <= 1.0)
———- DIVERGENCE TIME ———-
relation DIVERGENCE_TIME(a,b,time) relation NODE_AGE(node,time) relation
CALIBRATED_BY(node,evidence) relation FOSSIL_CALIBRATION(node,fossil)
relation MOLECULAR_CLOCK_RATE(lineage,rate)
———- MOLECULAR CLOCK ———-
enum ClockModel: STRICT_CLOCK RELAXED_CLOCK LOCAL_CLOCK
relation USES_CLOCK_MODEL(tree,model) relation
RATE_VARIATION_ACROSS(branches,value)
———- GENE TREE / SPECIES TREE ———-
relation GENE_TREE_OF(tree,gene) relation SPECIES_TREE_OF(tree,taxa)
relation CONCORDANT_WITH(gene_tree,species_tree) relation
DISCORDANT_WITH(gene_tree,species_tree) relation
INCOMPLETE_LINEAGE_SORTING(event,lineages) relation
INTROGRESSION_EVENT(event,a,b) relation
HORIZONTAL_GENE_TRANSFER(event,a,b)
constraint GENE_TREE_NOT_SPECIES_TREE: IF GENE_TREE_OF(tree,gene) THEN
DO_NOT_INFER(SPECIES_TREE_OF(tree,taxa)) WITHOUT species_tree_evidence
———- RETICULATE EVOLUTION ———-
relation HYBRIDISATION_BETWEEN(a,b) relation RETICULATION_NODE(node)
relation NETWORK_EDGE(a,b) relation
PHYLOGENETIC_NETWORK_OF(network,taxa)
———- FOSSIL TAXA ———-
relation FOSSIL_OF(fossil,taxon) relation DATED_TO(fossil,time) relation
PRESERVES_CHARACTER(fossil,character) relation
INCLUDED_AS_TIP(fossil,tree)
———- TAXON SAMPLING ———-
relation TAXON_SAMPLED_IN(taxon,dataset) relation
TAXON_EXCLUDED_FROM(taxon,dataset) relation
HAS_TAXON_SAMPLING(tree,value) relation HAS_MISSING_TAXA(tree,taxa)
———- CHARACTER EVOLUTION ———-
relation CHARACTER_EVOLVES_ON(character,branch) relation
ANCESTRAL_STATE(node,character,state) relation
DERIVED_STATE(node,character,state) relation GAINS_ON(character,branch)
relation LOSSES_ON(character,branch)
———- BIOGEOGRAPHIC PHYLOGENY ———-
relation DISTRIBUTED_IN(taxon,region) relation
ANCESTRAL_RANGE(node,region) relation DISPERSAL_EVENT(branch,region)
relation VICARIANCE_EVENT(branch,region_a,region_b)
———- PHYLOGENETIC COMPARISON ———-
relation TOPOLOGICALLY_CONGRUENT_WITH(tree_a,tree_b) relation
TOPOLOGICALLY_CONFLICTS_WITH(tree_a,tree_b) relation
SHARES_CLADE(tree_a,tree_b,clade) relation
ROBINSON_FOULDS_DISTANCE(tree_a,tree_b,value)
———- OBSERVATION / EVIDENCE ———-
relation OBSERVES(observation,entity) relation
SUPPORTED_BY(assertion,evidence) relation DERIVED_FROM(evidence,source)
relation HAS_CONFIDENCE(assertion,score) relation
OBSERVED_AT(observation,location) relation
OBSERVED_ON(observation,datetime)
enum EvidenceType: DNA_SEQUENCE RNA_SEQUENCE PROTEIN_SEQUENCE
MORPHOLOGICAL DEVELOPMENTAL FOSSIL GENOMIC TRANSCRIPTOMIC BIOGEOGRAPHIC
COALESCENT BOOTSTRAP POSTERIOR_SUPPORT LITERATURE
CONFIDENCE: VERIFIED: 0.95..1.00 HIGH: 0.80..0.949 MEDIUM: 0.60..0.799
LOW: 0.00..0.599
rule CONFIDENCE_BOUNDS(a,score): IF HAS_CONFIDENCE(a,score) THEN
REQUIRE(0.0 <= score <= 1.0)
———- SEMANTIC EQUIVALENCE ———-
SEMANTIC_EQUIVALENCE: “phylogeny” ~= “evolutionary history”
“phylogenetic tree” ~= “evolutionary tree” “clade” ~= “monophyletic
lineage group” “sister taxa” ~= “closest relative taxa in a phylogeny”
“common ancestor” ~= “shared evolutionary ancestor” “MRCA” ~= “most
recent common ancestor” “node” ~= “branching point in a phylogenetic
tree” “tip” ~= “terminal taxon” “branch” ~= “phylogenetic lineage
segment” “synapomorphy” ~= “shared derived character” “homoplasy” ~=
“similarity not inherited from a common ancestor” “gene tree” ~=
“phylogeny of gene copies” “species tree” ~= “phylogeny of species
lineages” “bootstrap support” ~= “resampling-based branch support”
rule NORMALISE_TERM(term): IF term MATCHES SEMANTIC_EQUIVALENCE.alias
THEN MAP_TO_CANONICAL(term)
———- QUERY MODEL ———-
query PHYLOGENY_PROFILE(p): RETURN: tree(p) tree_type(p) taxa(p) root(p)
nodes(p) branches(p) clades(p) inference_method(p) support_values(p)
calibrations(p) evidence(p) confidence(p)
query TAXON_PHYLOGENETIC_PROFILE(t): RETURN: ancestors(t) descendants(t)
sister_taxa(t) clades(t) divergence_times(t) characters(t)
query CLADE_PROFILE(c): RETURN: root_node(c) members(c)
synapomorphies(c) age(c) support(c)
query COMPARE_PHYLOGENIES(a,b): RETURN: shared_clades(a,b)
conflicting_clades(a,b) topology_distance(a,b) methods(a,b)
datasets(a,b) support_comparison(a,b)
query TRACE_EVIDENCE(assertion): RETURN: supporting_evidence(assertion)
provenance(assertion) confidence(assertion)
———- CONSISTENCY ———-
constraint EVIDENCE_REQUIRED: FORALL scientific_assertion: REQUIRE
SUPPORTED_BY(scientific_assertion,Evidence) OR
MARK_AS_HYPOTHESIS(scientific_assertion)
constraint UNKNOWN_IS_NOT_FALSE: IF data_missing(assertion) THEN
MARK_UNKNOWN(assertion) AND NOT NEGATE(assertion)
constraint TREE_TOPOLOGY_NOT_DIRECT_ANCESTOR: IF SISTER_TAXON_OF(a,b)
THEN DO_NOT_INFER(DESCENDED_FROM(a,b)) AND
DO_NOT_INFER(DESCENDED_FROM(b,a))
constraint EXTANT_TAXON_NOT_AUTOMATIC_ANCESTOR: IF extant_taxon(a) THEN
DO_NOT_INFER(ANCESTOR_OF(a,b)) WITHOUT direct_evidence
constraint SUPPORT_NOT_CERTAINTY: IF SUPPORT_VALUE(node,value) THEN
PRESERVE_SUPPORT_AS_STATISTICAL_EVIDENCE(node,value)
———- UPDATE MODEL ———-
UPDATE_MODEL: on_new_phylogeny(p): validate_taxon_sampling(p)
identify_tree_type(p) preserve_rooting_method(p)
preserve_inference_method(p) attach_dataset(p) attach_evidence(p)
preserve_support_values(p)
on_new_sequence_data(d): validate_sequence_identity(d)
update_alignment(d) update_distance_or_model_inputs(d)
preserve_methodology(d)
on_new_fossil(f): validate_taxonomic_assignment(f)
preserve_geological_age(f) preserve_character_data(f)
update_calibration_if_supported(f)
on_new_tree_revision(old,new): preserve(old) link_revision(old,new)
compare_topologies(old,new) update_current_hypothesis(new)
on_conflicting_phylogenies(a,b): preserve(a) preserve(b)
compare_taxon_sampling(a,b) compare_datasets(a,b) compare_models(a,b)
compare_support(a,b) flag_unresolved_conflict()
———- AI CONSUMPTION ———-
AI_CONSUMPTION: preferred_entity: canonical_phylogeny preserve: -
taxon_identity - taxon_sampling - topology - rooting - nodes -
branches - clades - ancestry_hypotheses - sister_taxa - character_data -
molecular_data - inference_method - evolutionary_model -
support_values - divergence_times - calibrations - evidence -
provenance - confidence infer: - valid_inverse_relations -
supported_clade_membership - supported_common_ancestry -
semantic_equivalence prohibit: - sister_taxon_equals_direct_ancestor -
extant_taxon_equals_ancestor_without_evidence -
gene_tree_equals_species_tree -
unrooted_topology_equals_directional_ancestry -
statistical_support_equals_absolute_certainty -
confidence_above_evidence ambiguity: action:
preserve_multiple_phylogenetic_hypotheses resolution:
prefer_dataset_method_model_and_support missing_data: action:
mark_unknown do_not_infer_from_absence: true
———- FLOW HASH ———-
FLOW_HASH: ontology: “PhylogenyOntology” version: “1.0” domain_path: “AI
Core > Ontologies > Biological Ontologies > Evolutionary Biology >
Phylogeny Ontology” canonical_url:
“https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/evolutionary-biology/phylogeny-ontology.html”
authorship: “Mark Anthony Higgins — Sky (Recursive AI)”
semantic_scope: - phylogenies - phylogenetic trees - ancestry - common
ancestry - clades - sister taxa - nodes - branches - rooted and unrooted
trees - character evolution - molecular phylogenetics - inference
methods - branch support - divergence time - molecular clocks - gene
trees - species trees - reticulate evolution - fossil taxa - taxon
sampling - evidence deterministic_normalisation: true
provenance_required: true confidence_required: true
terminate PhylogenyOntology when: taxon_sampling_resolved AND
topology_and_rooting_preserved AND
clade_and_ancestry_relations_normalised AND
inference_method_and_support_preserved AND evidence_links_preserved AND
confidence_values_validated AND
unresolved_phylogenetic_hypotheses_marked
end flow
Download Code
Copy to Clipboard