- Delineating phylogenetic hypotheses (as directed, acyclic graphs).
- Associating identifiers with definitions.
Homo sapiens, 2) a group called extant for all extant taxonomic units, and 3) a group called Kenya for all Kenyan taxonomic units, that query might look like this:<apply xmlns="http://www.w3.org/1998/Math/MathML">
<intersect/>
<ci>Kenya</ci>
<apply>
<setdiff/>
<apply>
<csymbol definitionURL="http://namesonnodes.org/ns/math/2009#def-Total"/>
<ci>Homo sapiens</ci>
<ci>extant</ci>
</apply>
<ci>Homo sapiens</ci>
</apply>
</apply>MathML is great for being flexible and extensible enough to cover concepts like this. But ... it's also really verbose. This is fine for my purposes so far, but it may be cumbersome for other purposes. So I've been playing around with a more succinct way to write these expressions. Today I tossed up some rough ideas here:This is a plain-text format loosely inspired by mathematical notation, the C language, etc. Using it, the above query becomes:
"Kenya" & (total("Homo sapiens", "extant") - "Homo sapiens")...which is quite a bit shorter.This is still in very early stages, so I thought I'd post it to get some feedback.
Here are a few of the simpler clade definition examples:
"Aves" := clade("Struthio camelus" | "Tetrao major" |
"Vultur gryphus").
"Saurischia" := clade("Megalosaurus bucklandii" <-
"Iguanodon bernissartensis").
"Avialae" := clade("wings used for powered flight" @
"Vultur gryphus").