⏱️ Lectura: 10 min
La taxonomía sintética suena a ciencia ficción, pero es exactamente lo que un grupo de aficionados aplica desde hace años a uno de los objetos más ignorados de la cocina: el clip de plástico que cierra la bolsa del pan. El Holotypic Occlupanid Research Group (HORG) cataloga esas piezas como si fueran organismos vivos, con clases, órdenes, familias y especies.
📑 En este artículo
- TL;DR
- Qué es HORG y por qué alguien clasifica clips de pan
- Cómo funciona una taxonomía sintética
- De la biología al código: modelar la jerarquía
- Guardar la taxonomía sintética en una base de datos
- Recorrer el árbol: consultas ascendentes y descendentes
- Por qué esto le importa a quien programa
- Preguntas frecuentes
- Referencias
Detrás del humor hay una lección seria para quien programa: cómo se diseña, se nombra y se almacena una jerarquía cuando no hay genética ni fósiles que te guíen, solo formas que se parecen entre sí.
TL;DR
- HORG (Holotypic Occlupanid Research Group) clasifica los clips de pan plásticos con una taxonomía sintética inspirada en Linneo.
- Occlupanida significa cerrar (occlu) el pan (pan); la clase vive bajo el Phylum Plasticae y el Reino Microsynthera.
- Sin genética, fósiles ni reproducción, agrupa por rasgos visibles, sobre todo la ranura oral o dentición de la pieza.
- El catálogo abarca decenas de especies en familias como Archignathidae, Corrugatidae y Acutignathidae.
- Para quien programa es un caso real de modelado de jerarquías: árboles en memoria, listas de adyacencia y rutas materializadas.
- PostgreSQL resuelve estos árboles con CTE recursivas y la extensión ltree; el SQL estándar basta para consultas ascendentes y descendentes.
- El proyecto muestra cómo nombrar, documentar y versionar una clasificación abierta, igual que una ontología o un sistema de tipos.
Qué es HORG y por qué alguien clasifica clips de pan
El Holotypic Occlupanid Research Group define a los occlupánidos como esos clips planos —casi siempre de polietileno— que mantienen cerrada la bolsa del pan industrial. El nombre lo dice todo: occlu viene de cerrar y pan de, justamente, el pan. HORG los ubica en la clase Occlupanida, dentro del Phylum Plasticae y el Reino Microsynthera, un árbol completo inventado para objetos que la mayoría tira sin mirar.
El proyecto es deliberadamente paródico: imita el lenguaje de la biología sistemática con total seriedad formal. Pero esa seriedad es la clave de su encanto. Al tratar un objeto trivial con el rigor de una disciplina científica, HORG termina enseñando cómo funciona de verdad una clasificación: qué decisiones hay que tomar, qué información falta y cómo se documenta cada especie con su nombre binomial en latín, igual que Homo sapiens. Para un público técnico, HORG es en esencia una base de datos abierta y colaborativa: cada hallazgo se fotografía, se mide y se asigna a una rama del árbol. Es ciencia ciudadana aplicada al plástico, y comparte ADN conceptual con cualquier catálogo, ontología o sistema de etiquetas que hayamos construido alguna vez.
Cómo funciona una taxonomía sintética
En una taxonomía biológica normal, el árbol se sostiene con evidencia dura: genética, rasgos derivados, desarrollo embrionario, dimorfismo sexual, reproducción y registro fósil. En una taxonomía sintética, según admite el propio HORG, todos esos pilares están ausentes. No hay ADN de un clip de pan ni fósiles que cuenten su historia evolutiva.
El taxónomo sintético queda en la misma posición que Carl Linneo en el siglo XVIII: agrupar cosas que se parecen, dibujar diagramas complejos y confiar en que alguien, en el futuro, resuelva los detalles. La estrategia de HORG es elegir un rasgo estable y discriminante —la ranura oral o dentición de la pieza, esa muesca por donde entra la bolsa— y construir toda la jerarquía a partir de ella, tal como los entomólogos agrupan insectos por la nervadura de las alas. De esa decisión nacen las familias: Archignathidae se postula como el grupo más basal, parecido a un hipotético ancestro común, y de ahí derivan órdenes y familias como Acutignathidae, Corrugatidae o Concavigulidae según la forma de la dentición. Cada especie recibe un binomio —Protocrena gigantis, Stomatocardia maximus— y se ubica en una sola rama. Esa restricción, cada cosa cuelga de un único padre, es justo lo que convierte el problema en un árbol y no en un grafo arbitrario.
💭 Clave: una taxonomía sintética no busca la verdad evolutiva, sino una clasificación útil y consistente. Es la misma meta que persigue un buen esquema de tipos o una ontología de dominio: que cada elemento tenga un lugar inequívoco.
De la biología al código: modelar la jerarquía
Cuando un desarrollador mira este árbol, reconoce de inmediato una estructura familiar: un árbol n-ario donde cada nodo tiene un padre y cero o más hijos. Modelarlo en memoria es directo. En Python, una dataclass recursiva captura la idea con muy pocas líneas:
from dataclasses import dataclass, field
from typing import List
@dataclass
class Taxon:
nombre: str
rango: str # clase, orden, familia, genero, especie
hijos: List["Taxon"] = field(default_factory=list)
def agregar(self, hijo):
self.hijos.append(hijo)
return hijo
reino = Taxon("Microsynthera", "reino")
plasticae = reino.agregar(Taxon("Plasticae", "phylum"))
occlupanida = plasticae.agregar(Taxon("Occlupanida", "clase"))
archig = occlupanida.agregar(Taxon("Archignathidae", "familia"))
archig.agregar(Taxon("Protocrena gigantis", "especie"))
Con ese modelo ya podemos recorrer la jerarquía, contar especies por familia o serializarla a JSON para una API. La taxonomía sintética de HORG se vuelve, literalmente, una estructura de datos.
Guardar la taxonomía sintética en una base de datos
El árbol en memoria está bien para un script, pero una colección que crece necesita persistencia. El patrón más simple y robusto es la lista de adyacencia: cada fila guarda una referencia a su padre.
CREATE TABLE taxon (
id SERIAL PRIMARY KEY,
nombre TEXT NOT NULL,
rango TEXT NOT NULL,
padre_id INTEGER REFERENCES taxon(id)
);
INSERT INTO taxon (nombre, rango, padre_id) VALUES
('Plasticae', 'phylum', NULL),
('Occlupanida', 'clase', 1),
('Archignathidae', 'familia', 2),
('Protocrena gigantis', 'especie', 3);
La lista de adyacencia es fácil de entender y de mantener: insertar una especie nueva es un solo INSERT y mover una rama es actualizar un campo. Su debilidad es consultar ramas profundas, porque obliga a saltar de fila en fila. Para colecciones grandes existen alternativas como las rutas materializadas (guardar plasticae.occlupanida.archignathidae como texto) o los nested sets, cada una con su compromiso entre velocidad de lectura y costo de escritura.
PostgreSQL trae una herramienta hecha a medida para esto: la extensión ltree, que indexa rutas jerárquicas. Instalar el motor y habilitarla toma un par de comandos según tu sistema:
# Windows (Chocolatey)
choco install postgresql
# macOS (Homebrew)
brew install postgresql
# Linux (Debian/Ubuntu)
sudo apt install postgresql postgresql-contrib
CREATE EXTENSION IF NOT EXISTS ltree;
💡 Tip: con ltree podés pedir todos los descendientes de Occlupanida usando el operador <@ y un índice GiST, sin escribir recursión a mano.
Recorrer el árbol: consultas ascendentes y descendentes
Si te quedás con SQL estándar, las CTE recursivas resuelven ambas direcciones. Para bajar por el árbol —obtener toda la descendencia de una clase— el patrón es este:
WITH RECURSIVE descendientes AS (
SELECT id, nombre, rango, padre_id
FROM taxon
WHERE nombre = 'Occlupanida'
UNION ALL
SELECT t.id, t.nombre, t.rango, t.padre_id
FROM taxon t
JOIN descendientes d ON t.padre_id = d.id
)
SELECT * FROM descendientes;
Cambiando la condición de unión por t.id = d.padre_id recorrés en sentido inverso y obtenés el linaje completo de una especie hasta la raíz. Visualmente, la jerarquía que estamos consultando se ve así:
graph TD
A["Phylum Plasticae"] --> B["Clase Occlupanida"]
B --> C["Familia Archignathidae"]
B --> D["Familia Corrugatidae"]
C --> E["Genero Protocrena"]
E --> F["Especie P. gigantis"]
D --> G["Genero Rugoris"]
G --> H["Especie R. tenax"]
⚠️ Ojo: las CTE recursivas sin condición de corte pueden entrar en bucle si tus datos tienen un ciclo (un nodo que es su propio ancestro). Agregá una columna de profundidad y limitá el nivel máximo, o usáUNIONen vez deUNION ALLpara descartar repetidos.
Por qué esto le importa a quien programa
HORG es una broma con décadas de dedicación, pero el ejercicio que propone aparece en casi cualquier sistema real: categorías de un e-commerce, comentarios anidados, organigramas, el árbol del DOM, los namespaces de Kubernetes o el propio sistema de archivos. Todos son jerarquías que hay que nombrar, almacenar y recorrer.
La lección de la taxonomía sintética es que, cuando falta información perfecta, igual se puede construir un sistema consistente eligiendo bien el criterio de clasificación y respetando la regla de un único padre. Lo mismo hacemos al diseñar un esquema de tipos, una jerarquía de clases o una ontología: no buscamos la verdad absoluta, sino un modelo predecible, documentado y fácil de extender. Que el objeto clasificado sea un clip de pan en vez de un escarabajo no cambia la ingeniería; solo la hace más divertida de aprender.
📖 Resumen en Telegram: Ver resumen
Preguntas frecuentes
¿Qué es un occlupánido?
Es el término que HORG usa para el clip de plástico que cierra las bolsas de pan. El grupo lo clasifica formalmente dentro de la clase Occlupanida, bajo el Phylum Plasticae.
¿Qué significa taxonomía sintética?
Es una clasificación construida sin genética, fósiles ni datos de reproducción, agrupando objetos por rasgos visibles. Imita el método con el que Linneo ordenó la naturaleza en el siglo XVIII.
¿HORG es un proyecto científico real?
Es un proyecto paródico, pero aplica con rigor el lenguaje y el método de la sistemática biológica. En la práctica funciona como una base de datos abierta de objetos cotidianos.
¿Cuál es la mejor forma de guardar un árbol en SQL?
La lista de adyacencia (campo padre_id) por su simplicidad. Para consultas profundas frecuentes conviene rutas materializadas, nested sets o la extensión ltree de PostgreSQL.
¿Por qué usar CTE recursivas?
Permiten recorrer jerarquías de profundidad arbitraria con SQL estándar, sin mover la lógica a la aplicación. Solo hay que cuidar los ciclos para no caer en un bucle infinito.
¿Qué tienen que ver los clips de pan con programar?
Son un caso didáctico de modelado de jerarquías, el mismo problema que aparece al diseñar categorías, organigramas, comentarios anidados o árboles de archivos.
Referencias
- HORG — Taxonomy of the Occlupanida — página oficial con la jerarquía completa de familias y especies.
- Holotypic Occlupanid Research Group — sitio principal del proyecto y su guía de identificación.
- PostgreSQL — Extensión ltree — documentación oficial para indexar y consultar rutas jerárquicas.
- Wikipedia — Bread clip — contexto histórico y técnico del objeto que HORG clasifica.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
0 Comentarios