Listas de palabras clave jerárquicas frente a planas y rendimiento en Lightroom

Como sugirió @John Thomas, publiqué esto como seguimiento de: ¿ Cuántas palabras clave son posibles en Lightroom sin penalizar el rendimiento?

Dada la misma cantidad total de palabras clave, ¿existe una diferencia de rendimiento entre una lista de palabras clave "plana" y una lista de palabras clave jerárquica?

Respuestas (1)

Respuesta corta: Puede ser, dependiendo de lo que hagas.

Respuesta larga: por lo general, desde el punto de vista de la base de datos/almacenamiento, el motor de palabras clave se divide en dos (grupos de) tablas.

Ahora tomaré en consideración el caso más simple con solo dos tablas que explicarán bastante claramente (en mi humilde opinión) el fenómeno.

La primera (grupo de) tabla(s) es la tabla que contiene las propias palabras clave . En esta tabla puede haber un número variable de campos, pero para nuestro propósito solo hay los siguientes campos:

  • El ID de palabra clave único (clave principal de la tabla o PK para abreviar)
  • El ID de palabra clave único del padre (para geeks: una referencia al PK principal)
  • (solo para usuarios) El nombre de la palabra clave (el texto que se dibujará en la pantalla)

El campo importante aquí es el segundo que puede tener un valor especial ( 'null' , 0, -1, etc.) si dicha palabra clave no tiene un padre.

Como se puede ver aquí, cuando hablamos de la tabla de palabras clave NO hay diferencia si la lista de palabras clave es plana o jerárquica. .

Ok, si queremos ser puristas, podemos argumentar que un programa que admita solo listas planas de palabras clave puede ser un poco más rápido porque no tendrá el segundo campo, pero generalmente las listas de palabras clave son bastante pequeñas en comparación con el poder de procesamiento de las computadoras modernas, por lo que la diferencia será insignificante en este sentido.

Pero hay una segunda tabla, la tabla de enlaces de palabras clave , donde las cosas se complican más.

La tabla Keyword Links es la tabla en la que se almacenan los enlaces entre cada palabra clave y cada foto a la que está asignada.

En el caso más simple esta tabla tiene la siguiente estructura:

  • ID de palabra clave (el PK de la palabra clave de la tabla anterior)
  • ID de imagen (el PK de la imagen de la tabla de imágenes)

El gran problema de esta mesa es que crece muy rápido . Para 100.000 fotos (que es una colección de tamaño normal-mediano) poner solo 4-7 palabras clave en cada imagen (Qué, Dónde, Cuándo, Quién como mínimo, también, Género, Técnica, etc.) aumenta la tabla a 400.000 - 700.000 registros.

Teóricamente , como puede ver en la estructura de la tabla, no hay diferencia entre usar una estructura de palabras clave plana o jerárquica.

Pero en la práctica puede ser una diferencia, porque en la práctica la diferencia entre teoría y práctica es mucho mayor que en la teoría .

Concretamente, para nuestra discusión, hay un comportamiento peligroso en Lightroom cuando simultáneamente con la asignación de una palabra clave a una imagen, el programa considera que todas las palabras clave principales se asignan con ella .

Ok, si sabe lo que está haciendo, esto puede ser bueno (es por eso que casi todos los programas tienen esto), pero de lo contrario puede escalar virtualmente MUCHO la tabla de enlaces de palabras clave, lo que puede inducir (e induce) - dependiendo de lo que haga - problemas de rendimiento

Por lo tanto, (dependiendo de su hardware) aconsejo tener cuidado con la jerarquía de Lightroom. Si bien creo que una lista 'plana' (incluso si es la mejor solución en nuestra discusión) es demasiado restringida, yo recomendaría usar palabras clave jerárquicas, pero no hacer que el árbol sea demasiado profundo.

Aparte, no veo que la cardinalidad de la rama sea un problema (IOW, no hace mucha diferencia que el 'Root1' tenga 100 o 1000 hijos) sino, como dije, más bien el nivel de anidamiento .

Re: "no demasiado profundo", lo lamentable es que lo que realmente queremos aquí es una ontología . Sería genial si Lightroom se enviara con un conjunto de palabras clave basado en WordNet , por ejemplo. En lugar de una jerarquía estricta, como ahora, debería ser posible tener ciclos, de modo que agregar la palabra clave "paraguas" a una foto implicaría "lluvia" y "fuera" sin necesidad de aplicarlos explícitamente. Las limitaciones de Lr son un verdadero problema para un descriptivista como yo.