Un nome scientifico di solito consiste in 3 informazioni: Genere, specie epiteto e Autore. Un semplice esempio potrebbe essere il seguente:Dividere nomi scientifici
Acanthus ilicifolius L.
- Genere: Acanthus
- Specie epitheton: ilicifolious
- Autore: L.
facile. Tuttavia, la questione diventa più complicata quando si tratta di ibridi, sottospecie/varietà/forma, diversi autori e altre incongruenze. In questi casi, il nome di una specie potrebbe essere il seguente:
cf. Andrographis paniculata (Burm.f.) Muro. ex Nees
- cfr .: la specie non è stato determinato con certezza al 100%
- Genere: Andrographis
- Specie epitheton: Paniculata
- Autore: (Burm.f.) Wall. ex Nees
o questo:
Ipomoea pes-caprae (L.) DC. subsp. brasiliensis (L.) Ooststr.f
- Genere: Ipomea
- Specie epitheton: pes-caprae
- Specie autore: (L.) DC.
- Subspecies epitheton: brasiliensis
- Sottospecie Autore: (L.) Ooststr.f
Sto cercando di trovare un modo affidabile per decostruire tali nomi. Potrei scrivere qualche codice hacker usando tonnellate se/o dichiarazioni, ma sto cercando qualcosa di più elegante (e robusto). Stavo pensando ad una sorta di parser che analizza il nome in modo simile ad una calcolatrice che analizza un'espressione matematica. Sfortunatamente, non sono il programmatore più sofisticato e non ho mai scritto un vero parser in precedenza, né so se avrebbe senso in questo caso, dato che c'è una grande varietà di nomi scientifici. Quale pensi sia il modo migliore per affrontare questo problema? La lingua preferita è R, forse anche Julia se si adatta meglio al compito.
Vorrei suggerire di NON provare a scrivere un parser per qualsiasi tipo di dati biologici, a meno che nessuno lo abbia mai fatto prima. Incontrerai così tanti casi limite, a cui non hai pensato quando hai progettato il parser. I biologi sono una specie strana :) Suggerirei di provare a trovare un parser adatto alle proprie esigenze e utilizzarlo invece di reinventare la ruota. – cel
Dovresti trovare un elenco molto preciso di regole che un computer potrebbe seguire per analizzare queste espressioni. I tuoi tre esempi sembrano insufficienti per definire completamente come funzionerebbe l'analisi. Io come un essere umano farei fatica ad analizzare quelli. – MrFlick