[HN Gopher] The seven specification ur-languages ___________________________________________________________________ The seven specification ur-languages Author : BerislavLopac Score : 99 points Date : 2023-05-09 14:11 UTC (8 hours ago) (HTM) web link (buttondown.email) (TXT) w3m dump (buttondown.email) | mcguire wrote: | Heh, eh, well, ah, ... (and other strange noises). | | Dijkstra's Guarded Command Language _is_ a specification | language, sort of, but it 's better looked at as a very simple | programming language for use with Floyd/Hoare/Dijkstra's | axiomatic semantics. (Which didn't get mentioned at all. Sniff.) | | Anyway, if you want a better specification language based on GCL, | check out Jayadev Misra's UNITY ( _A Discipline of | Multiprogramming_ , Springer-Verlag, 2001.) or Mohamed Gouda's | Abstract Protocols ( _Elements of network protocol design_ , | Whiley 2008.) | User23 wrote: | > Dijkstra's Guarded Command Language is a specification | language, sort of, but it's better looked at as a very simple | programming language for use with Floyd/Hoare/Dijkstra's | axiomatic semantics. (Which didn't get mentioned at all. | Sniff.) | | This struck me too. There is an ur-language there, but it's not | GCL rather it's Hoare triples and subsequently predicate | transformer semantics and Boolean structures, as defined by | Dijkstra and Scholten (among others, but they're the ones best | known to me). So in that sense the ur-language for program | specification is something we might call "mathematical logic." | And predicate transformer semantics, when you get right down to | it, is leaning on Leibniz's principle about as hard as biology | leans on H-bonds. As you say, GCL is just a simple language | that has a well defined predicate transformer semantic and an | interesting approach to nondeterminism that is suitable for the | kind of research Dijkstra was doing. One could theoretically | define predicate transformer semantics for any language, | although it would be a prohibitively difficult challenge for | most if not all languages in common use today. Whether that's a | problem with predicate transformer semantics or the languages | we have is a matter of opinion I suppose. | | Also predicate transformer semantics were extended to support | concurrency by Lamport[1]. | | I'm still hoping for the day when assertional arguments fully | banish behavioral ones, but it looks like it's still a long way | off. | | [1] https://lamport.azurewebsites.net/pubs/lamport-win.pdf | mcguire wrote: | For some reason, I ended up calling those "axiomatic | semantics"; predicate transformer semantics is a much better | name. | | One of the weaknesses of PTS for common languages is that | statements and expressions have very complicated semantics, | compared to the relatively simple semantics of GCL and other | simple treatments. One of the nice things about Frama-C (and | I think the GNAT SPARK tools) is that, when you are using the | WP (Weakest Precondition) module to prove properties of C | code, it can automatically generate assertions that describe | overflow/underflow, which then forces you to put the | appropriate preconditions on function parameters. :-) | | By the way, have you run across K. Rustan M. Leino's recent | book, _Program Proofs,_ and the Dafny language. It 's the | most recent and so far, best book I've seen on the style and | technology. | User23 wrote: | I was doing some work on defining PTS for a subset of Go, | so I'm definitely aware of how tricky it can get. While | handling early return requires some care, the existence of | goto and break in particular caused me considerable trouble | defining semantics for the loop construct. Needless to say | that's barely scratching the surface, and Go is a pretty | small and intentionally simple language as far as popular | ones go. | | If I were to try again, I think I'd look at building GCL as | as simple Lisp and then build higher level constructs as | macros that would inherit their semantics from the well- | defined GCL's composition rules. Then of course if I wanted | to succeed in the marketplace I'd throw that out, rewrite | the Lisp part as an AST library, probably in Rust or Go, | and then lex and parse it from some squiggly brace syntax. | That syntax in turn would probably be a subset of the | grammar of some popular language to ease practical use. At | then point it could get grafted on as a kind of linter | maybe. | | I'm also particularly excited about the prospect of | deducing appropriate preconditions from stated | postconditions/assertions. The very concept of working | backward from the desired end to the known beginning is so | elegant and intuitive that millions of school children | independently discovered it when solving mazes. | | I am somewhat familiar with Dafny. It looks really neat and | I've written some toy code. I'm not familiar with that book | though, so I'll have to add it to my reading list. | hwayne wrote: | _there are too many specification languages_ | mcguire wrote: | Ooohhhh, a specification language for specification | languages. | | The grammar that ties together graphical things like Petri | Nets and TLA+ is going to be _fantastic!_ | hwayne wrote: | Unrelated but the coolest thing I discovered while | researching this piece was that Petri Net reachability is | decidable but Ackermann-complete. ACK-COMPLETE is a thing. | That's wild. | sterlind wrote: | what does that mean exactly? I skimmed the paper you | linked briefly, but couldn't quite tell. | | Does it mean that deciding reachability of an N-state | petri net takes Ack(N) steps in the worst case? Or that | you can can construct a Petri net which has a node | reachable after Ack(N) steps? | | Those are different I think since you can compute Ack(N) | in fewer than Ack(N) steps. | | I also wonder if you can more efficiently rule out | polynomial-time reachability of a Petri net node, even if | it is eventually reachable. | hwayne wrote: | The former, though it grows a little slower than Ack(N). | If I read the paper write, they showed that an 18-state | Petri Net has a worst case reachability problem on the | order of Ack(3), and then every six states you add, n | goes up by one. So a 24 state Petri net can take Ack(4) | steps to decide, for a 30 state Petri net Ack(5), etc. | This is just the decision problem, not the length of the | path. | | (The paper is actually works on *Vector Addition | Systems*, but VASes are isomorphic to Petri nets.) | | Note these are loose boundaries: adding _at most_ six | states will definitely bump the hardness by _at least_ 1, | but it might grow faster than that. At the end of the | paper they note some people have gotten more precise | boundaries, that 10-states is "Tower-hard" (Ack(3)), and | every 2 states bumps it by 1. So worst case for a | 12-state net is on the order of Ack(4), etc. | leetrout wrote: | I am confused - what does "ur-" prefix mean? | nerpderp82 wrote: | I too am confused about what both authors think the definition | of "ur-" is in both of their contexts. | https://news.ycombinator.com/item?id=35818607 | | Nor do I understand why for TLA+, the second author needs to | demarcate a dichotomy between language/programming language and | specification language. And then the next thing they do is Tear | Down the Taxonomy! Tear it down from the beginning. | Jtsummers wrote: | > I too am confused about what both authors think the | definition of "ur-" is in both of their contexts. | | I'm confused why you're confused. The original author (of | "The seven programming ur-languages") stated what they meant | by an ur-language: | | > I am aware of seven _ur_ -languages in software today. I'll | name them for a _type specimen_ , the way a species in | paleontology is named for a particular fossil that defines it | and then other fossils are compared to the type specimen to | determine their identity. [emphasis in original] | | They didn't hide their meaning, they laid it out right before | listing the languages and then explaining why they selected | them. | darksaints wrote: | I'm assuming it is something like a Cradle of Civilization (the | city of Ur is recognized as one of a handful). They are | civilizations of which all other civilizations are | derived...they have no predecessor civilizations. | rodelrod wrote: | You're assuming wrong, I'm afraid. No relation to the city of | Ur. | darksaints wrote: | I get that the prefix entered our lexicon from german, but | frankly you don't have enough information to say that there | is no relation. The city of Ur is 4000 years older than Old | High German, and Ur has been used as a metaphor for the | origin of things for thousands of years, even ancient | Greece. You can't definitively say that the idea of Ur as | an origin of civilization had no influence on german. | rodelrod wrote: | > frankly you don't have enough information to say that | there is no relation | | I'm not a scholar of this subject. If there is good | scholarship out there presenting good arguments in your | direction I'll take it. I was just helping out a fellow | that has a doubt with my best knowledge of the subject, | which is not just a guess. | | > has been used as a metaphor for the origin of things | for thousands of years, even ancient Greece | | Has it really? I'd love to see an example. Sure it's | listed in the Bible along with a bunch of other place | names, but as a metaphor for the origin of things? | | Even if there are examples, I'd really love to see an | etymological trace of how it would end up as a prefix. | Was it used as such in ancient Greek? In Latin? Sounds | like a folk etymology. | darksaints wrote: | Yeah, on second glance I might be confusing some of my | sources here. I can't seem to find what I thought I was | remembering. | | Regardless, there seems to be a significant distinction | between words using a concatenated ur prefix and those | using a hyphenated ur-(noun) prefix. In this case, the | usage does seem to imply an original language from which | all others are derived, and the metaphor seems apt even | if it is not historically accurate to say that's where it | came from. | Name_Chawps wrote: | But in Old German, the prefix ir-/ur- meant "thoroughly", | from Proto-Germanic uz-, meaning "out", ultimately from | Proto-Indo-European ud-, meaning "outward"/"upward", | which is also the origin of the English word "out", as | well as the prefix "or-", as in "ordeal". Proto-Indo- | European coexisted with Ur, and it doesn't really make | sense that Ur would lead to the PIE prefix ud-. | sonusario wrote: | Glad you got responses because I sat there thinking it could | mean un-readable from the vantage of different styles. | darrenf wrote: | It means "proto", "primitive" or "original". See the | Wikitionary entry here: https://en.wiktionary.org/wiki/ur- | rodelrod wrote: | Original, primordial, the source. Comes from German. | tuatoru wrote: | Typically it means very old, and the progenitor of all that | followed. | | 1. https://en.wikipedia.org/wiki/Ur | rodelrod wrote: | The etymology is unrelated to the Sumerian city you link to. | xavxav wrote: | This is a good list but is almost more accurately called a list | of _modeling_ languages. At the very least it's a very particular | interpretation of specification, which makes sense from a TLA+ | expert but is incomplete. | | In particular I think there are a few candidate ur-specification | languages that could be included: | | * first-order logic, this captures what almost every deductive | verifier uses, and has a surprisingly rich diversity in features. | | * concurrent separation logic, this was a breakthrough | development and every language for specifying concurrent programs | is some flavor of this now. | | * dependent type theory? The big issue is that as the author | points out, taxonomies fail. Dependent type theories give rise to | languages which are both "specification" and "programming" | languages. | xavxav wrote: | Based on the state of academic conferences in formal methods, I | would have 4 languages: temporal logic, first order logic, | concurrent separation logic and dependent type theory. This | categorization provides generalizing powers because tools, | techniques and limitations mostly map onto it. | | * temporal logic: almost exclusively used by model checkers. | Usually propositional, has limited/no support for quantifiers. | Also usually only able to express path properties. This for | example makes it hard to state "is_sorted". | | * first-order logic: used by deductive (semi-automatic) | verifiers. Can reason about complex properties of state (ie : | `is_sorted`), harder but not impossible, to reason about | temporal properties. Ill-suited to describe properties | involving shared state or concurrency. Used by SMT solvers in | particular (good automation). Also used by most deductive | verifiers and liquid type systems. Examples: Dafny, Why3, SPARK | (spec part), liquid Haskell. | | * concurrent separation logic: can be either propositional, | first-order or higher order. Does much of the same kinds of | properties as FOL, but it _can_ reason about shared state and | concurrency, in fact it's quite good for that. This | expressivity usually means it's harder to reason about / prove | specifications. Examples: Iris, Viper, Verifast. | | * dependent type theory: when you start pondering what it even | means to specify something, the gods of CS bestow upon you a | vision of the haskell-curry isomorphism and your programs | become specifications and your specifications become programs. | This is the "ultimate" level of specification, and the | foundation for proof assistants. Examples: Coq, Lean | | Each of these categories is well represented at conferences and | pretty much every paper falls into one of these four buckets. | These also map roughly onto verification methodologies and | problem domains. | xavxav wrote: | On second thought, these are mostly too closely related, I | think that if you want to truly find the ur-specification | languages this is closely related to Girard's research | program. Specification languages are intrinsically tied to a | notion of _truth_ and also of _proof_ (method of establishing | / showing truth), these are central questions in Girard's | work. | | I think a revised list should also include proof-nets, and | other weirder specification languages like the [flower calcul | us](http://www.lix.polytechnique.fr/Labo/Pablo.DONATO/drafts/ | FJ....) or stellar resolution. These also stretch the usual | interpretation of language as a syntax tree. | NathanFulton wrote: | The feasibility of automatic verification and ease of | specification played incredibly important roles in the historical | development of specification languages. This raises an | interesting question: what new computational tools are coming on | the scene, and what role will those tools play in the next | generation of specification/programming languages? | | Reading this article, I was struck by how noneterminism was all | over the place in ur-specification languages. I think the answer | to the question above will turn out to be something about: 1. | nondeterminism, and 2. LLMs, RL, and diffusion as a way of | resolving/refining nondeterminism. | | That aside, I like the taxonomy. Some personal footnotes: | | 1. I would list Hoare Logic as the ur-language instead of GCL. | Dynamic logics are in this family. I had never considered Spin | and dynamic logic as being related in this way. That's kind of | neat, and I'm glad I read the article. | | 2. I would probably give type theories a place in the list, even | though you have to squint a little bit to make them fit in a list | of specification languages. | | 3. The history of temporal logics is fascinating, and | https://www.cs.rice.edu/~vardi/papers/etaps01-ver13.pdf is | probably on my top ten list of papers on formal methods. | | 4. I feel exactly the same way about Petri Nets -- kind of neat, | feel powerful, but never quite know what to do with them. Maybe | now that we're returning to office I will get a copy of "Petri | Net Theory and the Modeling of Systems" for the train ride. | simiansays wrote: | > All taxonomies are broken, full stop. Your categories are gonna | be completely wrong and everybody's going to argue over every | single thing. There is no such thing as a tree. | | Is this a serious statement? If so, wouldn't it be incompatible | with the theory of evolution? Would an alien taxonomy of human | binary numbers not be a legitimate tree? | jmillikin wrote: | The thing with taxonomies is that trying to make a category | more precise tends to exclude things you want to include in it, | and vice-versa. It is especially easy to find examples of this | in nature, because nature has existed since long before humans | had opinions about how things should be organized. | | What is a cat? It's a small furry quadruped in family Felidae. | | - Exception: cats may be quite large (lions, tigers). | | - Exception: cats may have no fur (sphinx cats). | | - Exception: cats may have fewer than four legs (e.g. due to | injury). | | Even questions that seem like they should be quite easy to | settle, like "are these two gulls of the same or different | species?", might be impossible to define formally due to things | like <https://en.wikipedia.org/wiki/Ring_species>. | | With the specific example of "no such thing as a tree", the | category of plants that humans call "trees" isn't a genetically | coherent group. Lots of different types of plants have woody | stems and bark and leaves, and you can't group together all the | things humans call trees without also including things that we | definitely don't. | all2 wrote: | I've pondered the "taxonomies as trees" as insufficient and | broken. What I arrived at as "maybe this will work" is | taxonomy as a high-dimensional sponge, where a thing may rest | at a given point in high dimensional space (where the | dimensions are characteristics of that thing) and may or may | not be clustered with other things on certain axes. | | Sort of like how word/semantic clustering works in LLMs. | | This obviously isn't a fully formed idea, but it might make | creating taxonomies easier? Taxonomic clusters? Something | like that. | simiansays wrote: | I definitely understand that the majority of taxonomies are | problematic for the reasons you cited. When OP said "no such | thing as a tree", I thought OP meant a taxonomic tree, not a | literal plant tree, hence my example of binary numbers! | Thanks for clarifying. | | That said, taxonomic groupings _can_ have both wide consensus | and be useful, can 't they? (Hand on chin... monotremes? | hominids??) | jhbadger wrote: | Although if you want to get get technical, even | evolutionary relationships are only trees if you throw out | some of the information that doesn't fit the tree. It's | truer to speak of phylogenetic networks that can take into | account things such as horizontal transfer of genes and | recombination. | | https://en.wikipedia.org/wiki/Phylogenetic_network | jacobr1 wrote: | The CS specific analogy might be, "Abstractions are leaky," | or more broadly the, "map is not the territory." | | Any complex-phenomena that is modeled with with a | simplification will have places where that simplification | fails. But models can still be highly useful, you just need | to choose an appropriate level of abstraction, accept and | manage any tradeoffs with exceptions, and move to better | paradigm if one emerges. | bryanrasmussen wrote: | should probably also reference metacrap here https://chnm.gmu | .edu/digitalhistory/links/pdf/preserving/8_1... especially | section 2.5 Schemas aren't neutral | ajuc wrote: | Taxonomy is just bureaucracy, evolution is real and breaks | taxonomy, because evolution works on the level of individuals | and genes, when taxonomy works on leaky abstractions called | species and groups of species. | culi wrote: | > If so, wouldn't it be incompatible with the theory of | evolution? | | It's very much not. The thing is that every model is a lie, but | they can often be very useful lies. The reason we use taxonomic | trees is because they're "good enough" but there are tons of | places where this really breaks down. | | For example, horizontal gene transfer is a huge problem in | microorganisms. If you take a soil fungi from one environment | and put it in a completely new one it'll become so stressed out | that it somehow increases it's rate of HGT and can borrow genes | from completely different clades of life like bacteria or | algae. HGT actually happens at more macro scales as well. Many | of our GMOs take genes from bacteria and put them into plants. | Parasitic plants like dodders are known for taking (and | spreading) genes from the wide variety of plants it can | parasitize (though this might be the wrong word to use given | that we now know it plays a host of beneficial ecological roles | to its hosts like acting as an above-ground myccorhizal network | allowing plants to "talk" to each other). We also know that HGT | is quite common across completely unrelated fish and sometimes | we even have certain animals, like the hoatzin ( _Opisthocomus | hoazin_ ), that push scientists to completely reevaluate their | "tree of life" assumptions[0] (aside: this one's particularly | bizarre because it even _looks_ like a medieval depiction of a | hybrid beast that took different parts of different animals and | mashed them together). | | Another more obvious problem is just simple hybridization. It | can happen across species with regularity (especially in some | plant families), but over the deep history of time much larger | jumps seem less "rare". On the micro scale it happens so often | that "species" is rarely a useful category. Both botany and | microbiology often refer to "species complex" instead | | Additionally, it's not really clear what an "organism" often | is. For example, lichen are actually a partnership between | algae and fungi but are given their own species name. Neither | of the two can live without each other. And actually we're | finding that it's basically a whole ecosystem of many different | algae and a fungi. That might not seem as complex but consider | that millions of years ago a germ ate another germ and that | eaten germ continued to live and reproduce inside it and | eventually came to be known as "mitochondria" and form the | basis of basically all animals and plants. To this day they | have their own DNA but their reproduction is completely tied to | us. Also consider the fact that a human is actually mostly | germs. Germs outnumber the number of cells in your body (well | this can vary based on antibiotic treatments or how long since | your last shit). These complex ecosystems that play critical | roles in our skin, eyes, guts, and even brains are necessary to | our survival. We wouldn't be able to EAT without them! Lastly, | take the example of the man o' war. Similar to lichen, it seems | at some point ~13 or so different animals came together and | worked together so strongly that they essentially merged and | became a single organism. Some of the parts of a man o war can | even survive without the rest of the "colony" for a short while | (imagine if your kidney could just do it's own thing). But, | like lichen, it gets its own species name | | As you can see there's a number of flaws in the "tree" view of | evolution. It works well enough for most cases and that's why | we still use it. But try looking up the debates around a | taxonomy of human languages. In theory the same approaches | should be able to be applied and the same problems (cultural | equivalents of "HGT", "hybridization", and blurry lines between | "symbiosis and dependency") can apply. | | Edit: oh hole #4: ring species! | | [0] https://www.newyorker.com/science/elements/the-bizarre- | bird-... | cratermoon wrote: | One word: siphonophores | culi wrote: | (I mentioned them already :P) | cratermoon wrote: | Oh, I missed it. Is man o' war (Physalia physalis) a | siphonophore? | simiansays wrote: | I get convergent evolution, but among large (let's say 10g+) | organisms, I'm not aware of convergent evolution resulting in | compatible species (with fertile offsping) that would not | otherwise have been compatible? | | I'm super rusty on this topic, but if there is theory that | large organism actual DNA-level speciation (resulting in | individuals who cannot reproduce together) has eventuated to | convergence back to a new species (who can reproduce together | with fertile offspring), I'd love a source. I definitely | could have very rusty knowledge on this but it seems | intuitive to me? | culi wrote: | I never once mentioned convergent evolution. Convergent | evolution is irrelevant in modern phylogeny-based taxonomy. | I'm talking about the actual genes themselves | kirushik wrote: | Well, this clearly references this wonderful article: | https://eukaryotewritesblog.com/2021/05/02/theres-no-such-th... | | The idea is that our taxonomy selects a group named "trees", | but there's little internal coherence in that group, which | probably results in more online hilly wars in the plant-loving | communities than we the laypeople can think of. | | See also: is Pluto a planet? | culi wrote: | > our taxonomy | | What exactly do you mean by "our taxonomy". There's no plant | order, family, or genus called trees. It's just a common | plant form. Do you just mean some people's personal mental | model? | dwohnitmok wrote: | I don't think this article is referring to physical organisms | known as trees (as your article does). It's talking about | abstract tree structures, in particular: | | 1. There is a coherent parent-child relationship | | 2. Children have only one parent | | 3. Children have no lateral relationships with other children | | 4. Relationships are mediated through parents, not e.g. | grandparent-child directly. | | 5. We can coherently differentiate between different children | | etc. | | All of these are assumptions that greatly simplify analysis | and therefore useful in any situations, but almost always | fail in some way on closer inspection. | | More generally we go to the saying "all models are wrong, | some are useful." | throw10920 wrote: | I'm 95% sure that the author (who is on HN[1]) is at | _least_ referring to the article "There's No Such Thing As | A Tree" in his line "There is no such thing as a tree." - | regardless of the fact that the article as a whole isn't | about trees made of wood. | | It's possible that he's _additionally_ making a double | entendre about abstract tree structures. | | [1] https://news.ycombinator.com/user?id=hwayne | hwayne wrote: | Yeah, I was thinking about biological trees. In | retrospect, I should've gone with "there's no such thing | as a fish." | jerf wrote: | My favorite example is "berry". Everything that you think | is a berry isn't botanically a berry... but tomatos and | bananas _are_. | | OK... technically it's _almost_ everything you think is a | berry isn 't. But it sure feels like it's everything. | simiansays wrote: | Haha yes please! I thought you were talking about literal | taxonomic trees. | simiansays wrote: | Yeah I definitely did not get the reference, I thought OP | literally meant that taxonomic trees in general are useless | and/or don't exist! | spenczar5 wrote: | Are you sure evolution is tree like? | https://en.m.wikipedia.org/wiki/Convergent_evolution | | That said, some categories _are_ real, precise, and useful, | like integers vs reals vs complex numbers. | oldgradstudent wrote: | I've been saying it for years. Life is not a tree, it's a | DAG. | simiansays wrote: | Sorry, as stated above I misunderstood "There is no such | thing as a tree." to mean that OP though taxonomic trees were | fundamentally broken in some way, I misunderstood OP! | | That said, if we had perfect knowledge of the speciation | process over the years, would our taxonomy not be extremely | close to a perfect tree, where every node has 2+ branches, | and branches don't converge to being species-compatible for | breeding? | | I get convergent evolution, but among large (let's say 10g+) | organisms, I'm not aware of convergent evolution resulting in | compatible species that would not otherwise have been | compatible? | | I'm super rusty on this topic, but if there is theory that | large organism actual DNA-level speciation (resulting in | individuals who cannot reproduce together) has eventuated to | convergence back to a new species (who can reproduce | together), I'd love a source. I definitely could have very | rusty knowledge on this but it seems intuitive to me? | masklinn wrote: | Convergent evolution doesn't make evolution non-tree-like, | that's just a tree with similar-looking branches or leaves at | different locations. Pretty standard really. Convergent | evolution makes _taxonomy_ less tree-like. | | Carcinization is a good example: it makes lots of things | crab-like, so from a _surface_ taxonomic point of view a | flattop crab, a coconut crab, and marbled crab are all pretty | crabby. But they 're completely different evolutionary | lineages, and only one of them is a "true crab". | | Where evolution gets less tree-like is MGEs | (https://en.wikipedia.org/wiki/Mobile_genetic_elements) as | some of them can move between branches. | spenczar5 wrote: | > Convergent evolution makes taxonomy less tree-like. | | Yes, exactly. "All taxonomies are don't broken" is not at | all "incompatible with the theory of evolution," is the | point. The taxonomic layer is pasted on top. | klyrs wrote: | Are real numbers actually "real" or do they just have good | PR? | dragonwriter wrote: | > If so, wouldn't it be incompatible with the theory of | evolution? | | It would be incompatible with viewing some past views of the | mechanisms of evolution as complete; the "theory of evolution" | beyond broad outline is something of a moving target that | accommodates things like the ways in which taxonomies are | approximate abstractions that aid in discussion rather than | exact descriptions of reality. | darksaints wrote: | What is the difference between a biological mutation and a new | species? There are thousands of years of grey area between the | two. The Theory of Evolution is a tree-like model to summarize | billions of years of biological mutations into neat little | branches, but we essentially have to ignore the vast periods of | grey area in order to turn that into a tree. | btilly wrote: | Where in a taxonomy of humans would you put the estimated 8% of | our genome that is from viruses trapped in our DNA? | | https://www.science.org/content/article/ancient-virus-may-be... | https://www.discovermagazine.com/planet-earth/mammals-made-b... | ummonk wrote: | Consider: https://en.wikipedia.org/wiki/Ring_species | cratermoon wrote: | I have a couple of sources that agree with the proposition that | taxonomies are broken, linked below. The short summary is that | they can be useful, but they are always just models of the real | world. As such, they will always be broken in some way. Even | the example of number is incomplete. Is infinity odd, even, or | something else? | | Voodoo categorisation and dynamic ontologies in the world of | OER: | https://web.archive.org/web/20190505064655/https://blog.mood... | | Ontology is Overrated: Categories, Links, and Tags: | https://web.archive.org/web/20070119210402/http://www.shirky... | jrochkind1 wrote: | The theory of evolution requires large and fundamental changes | in organisms over time due to natural selection over diverse | populations with characteristics being passed on by | reproduction. Such that very different organisms can have | common reproductive ancestors. | | It does not in fact require a specific number of clearly | delineated categories of organisms where all individual | organisms are in one and only one category. | | That part is a human invention to try to make sense of the | world, rather than part of the mechanics of the world itself. | The categorization is probably a necessary invention to try to | make sense of the world in a scientific systematic way, and is | also inevitably a broken inconsistent subjective biased over- | simplified map of the territory. | madhadron wrote: | I spent some time working on replacing the formulation of | descent as a tree of species with a chain-complete partial | order of organisms. Then you start trying to define things like | "species" or "strain" or "genus" on that and realize that they | don't correspond to any typical clumping of graphs. | | Someone else already linked to ring species. In microbiology, | the definition of species is "stop asking, we agreed to stop | fighting about that, no, really, la-la-la-la." Horizontal gene | transfer between species is ubiquitous. | | In the end I started talking about populations occupying a | niche in a specific place at a specific time, and very | cautiously tracing properties among linkages of those. But I'm | also the one who kept insisting to my labmates that a gene is | not a locus of DNA. | mcguire wrote: | Have you ever heard a discussion betweeen biologists about | where to put a given species in the family tree? | | Taxonomies are a human construction. | Errancer wrote: | This would be incompatible only if we require realistic | interpretation of our taxonomies and theory of evolution can be | true regardless of our (anti)realistic commitments. ___________________________________________________________________ (page generated 2023-05-09 23:00 UTC)