Openlibrary: Método para convertir LCC en nombres de clases de LCC

Creado en 23 abr. 2020  ·  5Comentarios  ·  Fuente: internetarchive/openlibrary

Las LCC se pueden mostrar como una ruta hacia abajo en el árbol de clasificación. Estos proporcionan información útil que queremos mostrar al usuario. Para hacer eso, necesitamos poder decodificar el LCC en clases. (Este problema se separó del # 3290)

Describe el problema que te gustaría resolver.

Desea poder obtener los datos de la derecha mediante programación:

| Muestra LCC de un libro real | Resultado esperado |
| - | - |
| F1047 .C95 | [
("Historia de las Américas", ( F )),
("Británico Americano (incluido Canadá)", (F1001, F1145.2) ),
("América británica", (F1001, F1145.2) ),
("Canadá", (F1001, F1145.2) ),
("Provincias marítimas", (F1035.8) ),
("Isla del Príncipe Eduardo", (F1046, F1049.7) ),
] |
| NC760 .B2813 2004 | [
("Artes visuales", (N) ),
("Dibujo. Diseño. Ilustración", (NC) ),
("Temas especiales", (NC760, NC825) ),
] |
| QH81 .C3525 1996 | [
("Ciencia", (Q) ),
("Historia natural - Biología", (QH) ),
("Historia natural (general)", (QH1, QH278.5) ),
] |
| RF290 .E73 2009 | [
("Medicina", (R) ),
("Otorrinolaringología", (RF) ),
("Otología. Enfermedades del oído", (RF110, RF320) ),
] |
| NB699.N4 B4 1969b | [
("Artes visuales", (N) ),
("Escultura", (NB) ),
("Historial", (NB60, NB1115) ),
] |

Consulte https://github.com/internetarchive/openlibrary/issues/3290 para obtener más ejemplos; no en la mesa falta la primera clase LCC.

Propuesta y restricciones

  • [] Necesita una función que, dada una cadena, LCC ingresada por humanos de Open Library, devuelva una lista de clases de LCC
  • [] Cada clase también debe incluir un rango de LCC o un prefijo de LCC (consulte los ejemplos anteriores)

Notas:

  • Para esta etapa, aunque las LCC brindan información más allá del primer dígito (p. Ej., NB699.A14), esta función se considerará completa una vez que se den las clases para la LCC hasta, pero sin incluir, el primer número de cortador (es decir, sin incluir "A14" en "NB699.A14"). Estas son expansiones que podemos hacer en futuras ediciones.
  • Expansión opcional (no es necesaria para cerrar este problema; se puede realizar en un número futuro): debe pasar los nombres de las clases de LCC a través de i18n.
  • Los ejemplos anteriores se generan utilizando https://www.loc.gov/catdir/cpso/lcco/ . El resultado no tiene que ser _ idéntico_ al anterior, pero debería ser muy similar.

Contexto adicional

Partes interesadas

@cclauss @BrittanyBunk

Librarians @cclauss 2 Identifiers Feature Request

Comentario más útil

El siguiente paso es una vez que @cclauss tiene un método que cree que está listo, él o yo podemos agregarlo a la interfaz de usuario y ponerlo en dev.openlibrary.org para probar :) ¿ Eso parece correcto

Todos 5 comentarios

@cdrini Hay dos esquemas, el LCCO y los esquemas de programación. @cclauss estaba usando los esquemas de programación: https://www.loc.gov/aba/cataloging/classification/. ¿Deberíamos usar LCCO si el trabajo de @cclauss se basa en los horarios?

Aunque está incompleto, el LCCO es mucho más fácil de trabajar, porque los horarios tendrán subclases donde la sangría es tanto hacia adelante como hacia atrás y no sabrá cómo visualizar o programar eso de una manera que resulte atractiva para los espectadores y codificadores. El LCCO solo se sangra hacia adelante, por lo que las clases siempre vienen una después de la otra (no antes y después de la otra).

Un ejemplo sería cuando se ve así en los horarios:
------ subclase 1
subclase 2
------ subclase 3

¿Cómo se puede representar eso fácilmente? No puede. Sin embargo, el LCCO puede, porque tiene este aspecto:
subclase 1
---- subclase 2
------- subclase 3

Eso es fácil de representar. El único problema con LCCO es que no es la lista completa de clases y subclases, está incompleta. Los horarios es el completo.

Ese es mi dilema actual, donde hay que sacrificar algo: 1) integridad, 2) precisión en la representación.

Depende de ti y de

Creo que @cclauss está usando los volcados de https://github.com/thisismattmiller/lcc-pdf-to-json. Creo que usarlos parece lo mejor, porque podemos hacer que algo funcione y experimentar con él para ver cómo se "siente": +1: Lo que elijamos no está escrito en piedra. Siempre podemos ajustarlo para manejar una mayor complejidad si encontramos que es necesario :)

Un sistema complejo que funciona invariablemente ha evolucionado a partir de un sistema simple que funcionaba. La proposición inversa también parece ser cierta: un sistema complejo diseñado desde cero nunca funciona y no se puede hacer que funcione. Tienes que empezar de nuevo, comenzando con un sistema sencillo que funcione. - John Gall

@cdrini estuvo de acuerdo. Vayamos con lo que ya se está usando antes de tomar más :) Dicho esto, ¿qué sigue?

El siguiente paso es una vez que @cclauss tiene un método que cree que está listo, él o yo podemos agregarlo a la interfaz de usuario y ponerlo en dev.openlibrary.org para probar :) ¿ Eso parece correcto

¿Fue útil esta página
0 / 5 - 0 calificaciones