Aller au contenu

Module:Classification ReptileDB

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 19 mars 2013 à 13:30 et modifiée en dernier par Hexasoft (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

Ce module est destiné à des pages de maintenance du projet Herpétologie.

Utilisation

  • acces(frame)

Détails et fonctions internes

  • p.levenshtein(mot1, mot2) – retourne la distance de Levenshtein entre deux mots. 0 signifie identique. La valeur la plus grande qui peut être retournée est la longueur de la plus grande des deux chaînes.

Exemples

Pour des exemples, voir le bac à sable permettant de tester diverses modifications apportées.

-- ce module est un test : il est destiné à contenir sous forme exploitable
-- la classification supérieure (>= famille) des reptiles.

local p = {}

-- utile : contient les noms wikifiés des rangs et les formes wikifiées des classifications
local data = require "Module:Taxobox-data"

-- structure des informations :
-- une liste de taxons (définit par son nom), chaque taxon étant un élément de la table (clé=nom)
-- chaque taxon contient :
--  [1] : le rang du taxon
--  [2] : une liste de noms synonymes ou nil
--  [3] : le nom du taxon supérieur
--  [4] : un champs commentaire
local taxons = {}
taxons["Anapsida"] = { "sous-classe", nil, "Sauropsida", "", Anapsida }
taxons["Testudines"] = { "ordre", nil, "Anapsida", "", Testudines }
taxons["Cryptodira"] = { "sous-ordre", nil, "Testudines", "", Cryptodira }
taxons["Chelydridae"] = { "famille", nil, "Cryptodira", "", Chelydridae }
taxons["Testudinoidea"] = { "super-famille", nil, "Cryptodira", "", Testudinoidea }
taxons["Emydidae"] = { "famille", nil, "Testudinoidea", "", Emydidae }
taxons["Testudinidae"] = { "famille", nil, "Testudinoidea", "", Testudinidae }
taxons["Geoemydidae"] = { "famille", nil, "Testudinoidea", "", Geoemydidae }
taxons["Platysternidae"] = { "famille", nil, "Testudinoidea", "", Platysternidae }
taxons["Trionychoidea"] = { "super-famille", nil, "Cryptodira", "", Trionychoidea }
taxons["Carettochelyidae"] = { "famille", nil, "Trionychoidea", "", Carettochelyidae }
taxons["Trionychidae"] = { "famille", nil, "Trionychoidea", "", Trionychidae }
taxons["Kinosternoidea"] = { "super-famille", nil, "Cryptodira", "", Kinosternoidea }
taxons["Dermatemydidae"] = { "famille", nil, "Kinosternoidea", "", Dermatemydidae }
taxons["Kinosternidae"] = { "famille", nil, "Kinosternoidea", "", Kinosternidae }
taxons["Chelonioidea"] = { "super-famille", nil, "Cryptodira", "", Chelonioidea }
taxons["Cheloniidae"] = { "famille", nil, "Chelonioidea", "", Cheloniidae }
taxons["Dermochelyidae"] = { "famille", nil, "Chelonioidea", "", Dermochelyidae }
taxons["Pleurodira"] = { "sous-ordre", nil, "Testudines", "", Pleurodira }
taxons["Chelidae"] = { "famille", nil, "Pleurodira", "", Chelidae }
taxons["Pelomedusoidea"] = { "super-famille", nil, "Pleurodira", "", Pelomedusoidea }
taxons["Pelomedusidae"] = { "famille", nil, "Pelomedusoidea", "", Pelomedusidae }
taxons["Podocnemididae"] = { "famille", nil, "Pelomedusoidea", "", Podocnemididae }
taxons["Lepidosauria"] = { "sous-classe", nil, "Sauropsida", "", Lepidosauria }
taxons["Rhynchocephalia"] = { "ordre", nil, "Lepidosauria", "", Rhynchocephalia }
taxons["Sphenodontida"] = { "sous-ordre", nil, "Rhynchocephalia", "", Sphenodontida }
taxons["Sphenodontidae"] = { "famille", nil, "Sphenodontida", "", Sphenodontidae }
taxons["Squamata"] = { "ordre", nil, "Lepidosauria", "", Squamata }
taxons["Sauria"] = { "sous-ordre", { "Lacertilia" }, "Squamata", "", Sauria }
taxons["Iguania"] = { "infra-ordre", nil, "Sauria", "", Iguania }
taxons["Agamidae"] = { "famille", nil, "Iguania", "", Agamidae }
taxons["Chamaeleonidae"] = { "famille", nil, "Iguania", "", Chamaeleonidae }
taxons["Iguanidae"] = { "super-famille", nil, "Iguania", "", Iguanidae }
taxons["Corytophanidae"] = { "famille", nil, "Iguanidae", "", Corytophanidae }
taxons["Crotaphytidae"] = { "famille", nil, "Iguanidae", "", Crotaphytidae }
taxons["Dactyloidae"] = { "famille", nil, "Iguanidae", "", Dactyloidae }
taxons["Hoplocercidae"] = { "famille", nil, "Iguanidae", "", Hoplocercidae }
taxons["Iguanidae"] = { "famille", nil, "Iguania", "", Iguanidae }
taxons["Leiocephalidae"] = { "famille", nil, "Iguanidae", "", Leiocephalidae }
taxons["Leiosauridae"] = { "famille", nil, "Iguanidae", "", Leiosauridae }
taxons["Liolaemidae"] = { "famille", nil, "Iguanidae", "", Liolaemidae }
taxons["Opluridae"] = { "famille", nil, "Iguanidae", "", Opluridae }
taxons["Phrynosomatidae"] = { "famille", nil, "Iguanidae", "", Phrynosomatidae }
taxons["Polychrotidae"] = { "famille", nil, "Iguanidae", "", Polychrotidae }
taxons["Tropiduridae"] = { "famille", nil, "Iguanidae", "", Tropiduridae }
taxons["Gekkota"] = { "infra-ordre", nil, "Sauria", "", Gekkota }
taxons["Gekkonidae"] = { "famille", nil, "Gekkota", "", Gekkonidae }
taxons["Carphodactylidae"] = { "famille", nil, "Gekkota", "", Carphodactylidae }
taxons["Diplodactylidae"] = { "famille", nil, "Gekkota", "", Diplodactylidae }
taxons["Eublepharidae"] = { "famille", nil, "Gekkota", "", Eublepharidae }
taxons["Phyllodactylidae"] = { "famille", nil, "Gekkota", "", Phyllodactylidae }
taxons["Sphaerodactylidae"] = { "famille", nil, "Gekkota", "", Sphaerodactylidae }
taxons["Pygopodidae"] = { "famille", nil, "Gekkota", "", Pygopodidae }
taxons["Scincomorpha"] = { "infra-ordre", nil, "Sauria", "", Scincomorpha }
taxons["Cordylidae"] = { "famille", nil, "Scincomorpha", "", Cordylidae }
taxons["Gerrhosauridae"] = { "famille", nil, "Scincomorpha", "", Gerrhosauridae }
taxons["Gymnophthalmidae"] = { "famille", nil, "Scincomorpha", "", Gymnophthalmidae }
taxons["Teiidae"] = { "famille", nil, "Scincomorpha", "", Teiidae }
taxons["Lacertidae"] = { "famille", nil, "Scincomorpha", "", Lacertidae }
taxons["Scincidae"] = { "famille", nil, "Scincomorpha", "", Scincidae }
taxons["Xantusiidae"] = { "famille", nil, "Scincomorpha", "", Xantusiidae }
taxons["Diploglossa"] = { "infra-ordre", nil, "Sauria", "", Diploglossa }
taxons["Anguidae"] = { "famille", nil, "Diploglossa", "", Anguidae }
taxons["Anniellidae"] = { "famille", nil, "Diploglossa", "", Anniellidae }
taxons["Xenosauridae"] = { "famille", nil, "Diploglossa", "", Xenosauridae }
taxons["Dibamia"] = { "infra-ordre", nil, "Sauria", "", Dibamia }
taxons["Dibamidae"] = { "famille", nil, "Dibamia", "", Dibamidae }
taxons["Platynota"] = { "infra-ordre", { "Varanoidea" }, "Sauria", "", Platynota }
taxons["Helodermatidae"] = { "famille", nil, "Platynota", "", Helodermatidae }
taxons["Lanthanotidae"] = { "famille", nil, "Platynota", "", Lanthanotidae }
taxons["Varanidae"] = { "famille", nil, "Platynota", "", Varanidae }
taxons["Shinisauroidea"] = { "super-famille", nil, "Platynota", "", Shinisauroidea }
taxons["Shinisauridae"] = { "famille", nil, "Shinisauroidea", "", Shinisauridae }
taxons["Amphisbaenia"] = { "sous-ordre", nil, "Squamata", "", Amphisbaenia }
taxons["Amphisbaenidae"] = { "famille", nil, "Amphisbaenia", "", Amphisbaenidae }
taxons["Bipedidae"] = { "famille", nil, "Amphisbaenia", "", Bipedidae }
taxons["Blanidae"] = { "famille", nil, "Amphisbaenia", "", Blanidae }
taxons["Cadeidae"] = { "famille", nil, "Amphisbaenia", "", Cadeidae }
taxons["Rhineuridae"] = { "famille", nil, "Amphisbaenia", "", Rhineuridae }
taxons["Trogonophiidae"] = { "famille", nil, "Amphisbaenia", "", Trogonophiidae }
taxons["Ophidia"] = { "sous-ordre", { "Serpentes" }, "Squamata", "", Ophidia }
taxons["Aniliidae"] = { "famille", nil, "Ophidia", "", Aniliidae }
taxons["Bolyeriidae"] = { "famille", nil, "Ophidia", "", Bolyeriidae }
taxons["Tropidophiidae"] = { "famille", nil, "Ophidia", "", Tropidophiidae }
taxons["Acrochordoidea"] = { "sous-famille", nil, "Tropidophiidae", "", Acrochordoidea }
taxons["Acrochordidae"] = { "famille", nil, "Ophidia", "", Acrochordidae }
taxons["Uropeltoidea"] = { "sous-famille", nil, "Acrochordidae", "", Uropeltoidea }
taxons["Anomochilidae"] = { "famille", nil, "Ophidia", "", Anomochilidae }
taxons["Cylindrophiidae"] = { "famille", nil, "Ophidia", "", Cylindrophiidae }
taxons["Uropeltidae"] = { "famille", nil, "Ophidia", "", Uropeltidae }
taxons["Pythonoidea"] = { "sous-famille", nil, "Uropeltidae", "", Pythonoidea }
taxons["Loxocemidae"] = { "famille", nil, "Ophidia", "", Loxocemidae }
taxons["Pythonidae"] = { "famille", nil, "Ophidia", "", Pythonidae }
taxons["Xenopeltidae"] = { "famille", nil, "Ophidia", "", Xenopeltidae }
taxons["Booidea"] = { "sous-famille", nil, "Xenopeltidae", "", Booidea }
taxons["Boidae"] = { "famille", nil, "Ophidia", "", Boidae }
taxons["Boinae"] = { "sous-famille", nil, "Boidae", "", Boinae }
taxons["Ungaliophiinae"] = { "sous-famille", nil, "Boidae", "", Ungaliophiinae }
taxons["Erycinae"] = { "sous-famille", nil, "Boidae", "", Erycinae }
taxons["Colubroidea"] = { "sous-famille", nil, "Boidae", "", Colubroidea }
taxons["Colubridae"] = { "famille", nil, "Ophidia", "", Colubridae }
taxons["Colubrinae"] = { "sous-famille", nil, "Colubridae", "", Colubrinae }
taxons["Grayiinae"] = { "sous-famille", nil, "Colubridae", "", Grayiinae }
taxons["Calamariinae"] = { "sous-famille", nil, "Colubridae", "", Calamariinae }
taxons["Dipsadinae"] = { "sous-famille", nil, "Colubridae", "", Dipsadinae }
taxons["Pseudoxenodontinae"] = { "sous-famille", nil, "Colubridae", "", Pseudoxenodontinae }
taxons["Natricinae"] = { "sous-famille", nil, "Colubridae", "", Natricinae }
taxons["Scaphiodontophiinae"] = { "sous-famille", nil, "Colubridae", "", Scaphiodontophiinae }
taxons["Lamprophiidae"] = { "famille", nil, "Ophidia", "", Lamprophiidae }
taxons["Aparallactinae"] = { "sous-famille", nil, "Lamprophiidae", "", Aparallactinae }
taxons["Atractaspidinae"] = { "sous-famille", nil, "Lamprophiidae", "", Atractaspidinae }
taxons["Lamprophiinae"] = { "sous-famille", nil, "Lamprophiidae", "", Lamprophiinae }
taxons["Psammophiinae"] = { "sous-famille", nil, "Lamprophiidae", "", Psammophiinae }
taxons["Prosymninae"] = { "sous-famille", nil, "Lamprophiidae", "", Prosymninae }
taxons["Pseudaspidinae"] = { "sous-famille", nil, "Lamprophiidae", "", Pseudaspidinae }
taxons["Pseudoxyrhophiinae"] = { "sous-famille", nil, "Lamprophiidae", "", Pseudoxyrhophiinae }
taxons["Elapidae"] = { "famille", nil, "Ophidia", "", Elapidae }
taxons["Elapoidea"] = { "sous-famille", nil, "Elapidae", "", Elapoidea }
taxons["Elapinae"] = { "sous-famille", nil, "Elapidae", "", Elapinae }
taxons["Hydrophiinae"] = { "sous-famille", nil, "Elapidae", "", Hydrophiinae }
taxons["Homalopsidae"] = { "famille", nil, "Ophidia", "", Homalopsidae }
taxons["Pareatidae"] = { "famille", nil, "Ophidia", "", Pareatidae }
taxons["Viperidae"] = { "famille", nil, "Ophidia", "", Viperidae }
taxons["Azemiopinae"] = { "sous-famille", nil, "Viperidae", "", Azemiopinae }
taxons["Crotalinae"] = { "sous-famille", nil, "Viperidae", "", Crotalinae }
taxons["Viperinae"] = { "sous-famille", nil, "Viperidae", "", Viperinae }
taxons["Xenodermatidae"] = { "famille", nil, "Ophidia", "", Xenodermatidae }
taxons["Typhlopoidea"] = { "sous-famille", { "Scolecophidia" }, "Xenodermatidae", "", Typhlopoidea }
taxons["Anomalepididae"] = { "famille", nil, "Ophidia", "", Anomalepididae }
taxons["Gerrhopilidae"] = { "famille", nil, "Ophidia", "", Gerrhopilidae }
taxons["Typhlopidae"] = { "famille", nil, "Ophidia", "", Typhlopidae }
taxons["Leptotyphlopidae"] = { "famille", nil, "Ophidia", "", Leptotyphlopidae }
taxons["Leptotyphlopinae"] = { "sous-famille", nil, "Leptotyphlopidae", "", Leptotyphlopinae }
taxons["Epictinae"] = { "sous-famille", nil, "Leptotyphlopidae", "", Epictinae }
taxons["Xenotyphlopidae"] = { "famille", nil, "Ophidia", "", Xenotyphlopidae }
taxons["Archosauria"] = { "sous-classe", nil, "Sauropsida", "", Archosauria }
taxons["Crocodylia"] = { "ordre", nil, "Archosauria", "", Crocodylia }
taxons["Eusuchia"] = { "sous-ordre", nil, "Crocodylia", "", Eusuchia }
taxons["Crocodylidae"] = { "famille", nil, "Eusuchia", "", Crocodylidae }
taxons["Alligatoridae"] = { "famille", nil, "Eusuchia", "", Alligatoridae }
taxons["Gavialidae"] = { "famille", nil, "Eusuchia", "", Gavialidae }



-- retourne vrai si le taxon est référencé, faux sinon.
-- retourne en plus vrai si le taxon est "natif" ou "obsolète"
function p.existe(nom)
    if (nom == nil or nom == "") then
        return false
    end
    local t = taxons[nom]
    if (t ~= nil) then
        return { true, true }
    end
    -- pas direct, on cherche si présent en synonyme
    for k, v in pairs(taxons) do
        if (v ~= nil) then
           if (v[2] ~= nil) then
               local i = 1
               while (v[2][i] ~= nil) do
                    if (v[2][i] == nom) then
                        return { true, false }
                    end
                    i = i + 1
                end
           end
        end
    end
    
    return false
end

-- retourne l'entrée du taxon si il existe (y compris synonyme)
function p.data(nom)
    if (nom == nil or nom == "") then
        return nil
    end
    local t = taxons[nom]
    if (t ~= nil) then
        return t
    end
    -- pas direct, on cherche si présent en synonyme
    for k, v in pairs(taxons) do
        if (v ~= nil) then
           if (v[2] ~= nil) then
               local i = 1
               while (v[2][i] ~= nil) do
                    if (v[2][i] == nom) then
                        return v[2]
                    end
                    i = i + 1
                end
           end
        end
    end
    
    return nil
end

-- affiche la liste des taxons supérieurs au taxon indiqué
function p.liste_sup(nom)
    local ret = ""
    if (nom == nil or nom == "") then
        return ""
    end
    
    local cur = p.data(nom)
    while (cur ~= nil) do
        local r = data.est_rang(cur[1])
        local rr
        if (r[1] == true) then
            rr = r[2][1]
        else
            rr = "<erreur>"
        end
        ret = ret .. rr .. " [[" .. cur[5] .. "]] "
        local z = cur[2]
        if (z ~= nil) then
            local i = 1
            ret = ret .. "("
            while (z[i] ~= nil) do
                if (i > 1) then ret = ret .. " " end
                ret = ret .. "[[" .. z[i] .. "]]"
            end
            ret = ret .. ")"
        end
        ret = ret .. " → "
        -- suivant
        cur = p.data(cur[3])
    end
    -- la fin
    ret = ret .. "<fin><br/>\n"
    return ret
end

-- wrapper
function p.acces(frame)
    return p.liste_sup(frame.args[1] or frame:getParent().args[1] or "")
end

return p