Openlibrary: Méthode pour convertir les LCC en noms de classe LCC

Créé le 23 avr. 2020  ·  5Commentaires  ·  Source: internetarchive/openlibrary

Les LCC peuvent être affichés sous forme de ~chemin vers le bas de l'arbre de classification. Ceux-ci fournissent des informations utiles que nous souhaitons afficher à l'utilisateur. Pour ce faire, nous devons être capables de décoder le LCC en classes. (Ce numéro s'est séparé du #3290)

Décrivez le problème que vous voudriez résoudre

Vous voulez pouvoir obtenir par programmation les données à droite :

| Exemple de LCC d'un vrai livre | Résultat attendu |
| -- | -- |
| F1047 .C95 | [
(« Histoire des Amériques », ( F )),
(« Américain britannique (y compris le Canada) », (F1001, F1145.2) ),
("Amérique britannique", (F1001, F1145.2) ),
("Canada", (F1001, F1145.2) ),
("Provinces maritimes", (F1035.8) ),
("Île-du-Prince-Édouard", (F1046, F1049.7) ),
] |
| NC760 .B2813 2004 | [
("Arts visuels", (N) ),
("Dessin. Conception. Illustration", (NC) ),
(" Matières spéciales",
] |
| QH81 .C3525 1996 | [
("Science", (Q) ),
("Histoire Naturelle - Biologie", (QH) ),
("Histoire Naturelle (Général)", (QH1, QH278.5) ),
] |
| RF290 .E73 2009 | [
("Médecine", (R) ),
("Otorhinolaryngologie", (RF) ),
("Otologie. Maladies de l'oreille", (RF110, RF320) ),
] |
| NB699.N4 B4 1969b | [
("Arts visuels", (N) ),
("Sculpture", (NB) ),
("Histoire", (NB60, NB1115) ),
] |

Voir https://github.com/internetarchive/openlibrary/issues/3290 pour plus d'exemples ; pas la table il manque la première classe LCC.

Proposition et contraintes

  • [ ] Nécessite une fonction qui, étant donné une chaîne, LCC entrée par l'homme à partir de la bibliothèque ouverte, renvoie une liste de classes LCC
  • [ ] Chaque classe doit également inclure une plage de LCC ou un préfixe LCC (voir les exemples ci-dessus)

Remarques:

  • Pour cette étape, bien que les LCC fournissent des informations au-delà du premier chiffre (par exemple NB699.A14), cette fonctionnalité sera considérée comme complète une fois que les classes seront données pour le LCC jusqu'au, mais non compris, le premier numéro de coupe (c'est-à-dire sans "A14" dans "NB699.A14"). Ce sont des extensions que nous pourrons faire dans les prochains numéros.
  • Extension facultative (pas nécessaire pour fermer ce problème ; peut être effectuée dans un prochain numéro) : devrait passer les noms de classe LCC via i18n.
  • Les exemples ci-dessus sont générés à l'aide de https://www.loc.gov/catdir/cpso/lcco/ . Le résultat n'a pas besoin d'être _identique_ à ce qui précède, mais il devrait être très similaire.

Contexte supplémentaire

Parties prenantes

@cclauss @BrittanyBunk

Librarians @cclauss 2 Identifiers Feature Request

Commentaire le plus utile

La prochaine étape est une fois que @cclauss a une méthode qu'il pense être prête, lui ou moi pouvons l'ajouter à l'interface utilisateur et la mettre sur dev.openlibrary.org pour le tester :) Cela semble-t-il correct @cclauss ?

Tous les 5 commentaires

@cdrini Il existe deux schémas, le LCCO et les schémas horaires. @cclauss utilisait les contours de l'horaire : https://www.loc.gov/aba/cataloging/classification/. Doit-on utiliser le LCCO si le travail de @cclauss est basé sur les horaires ?

Bien qu'incomplet, le LCCO est beaucoup plus facile à utiliser, car les horaires auront des sous-classes où l'indentation est à la fois en avant et en arrière et idk comment visualiser ou programmer cela d'une manière qui rend les téléspectateurs et les codeurs. Le LCCO ne fait que mettre en retrait, de sorte que les classes se succèdent toujours (pas à la fois avant et après l'autre).

Un exemple serait quand cela ressemble à ceci dans les horaires :
------sous-classe 1
sous-classe 2
------sous-classe 3

Comme comment cela peut-il être représenté facilement? Ça ne peut pas. Cependant, le LCCO peut, car il ressemble à ceci :
sous-classe 1
----sous-classe 2
-------sous-classe 3

C'est facile à représenter. Le seul problème avec le LCCO est que ce n'est pas la liste complète des classes et sous-classes, elle est incomplète. Les horaires sont complets.

C'est mon dilemme actuel, où quelque chose doit être sacrifié : 1) l'exhaustivité, 2) l'exactitude de la représentation.

C'est à vous et @cclauss que vous choisissez. Je pense qu'en raison de leur exhaustivité et de leur caractère officiel, les horaires sont le meilleur choix - car nous pouvons toujours trouver un moyen de représenter les informations, mais nous ne pouvons pas obtenir facilement ce qui nous manque.

Je crois que @cclauss utilise les dumps de https://github.com/thisismattmiller/lcc-pdf-to-json . Je pense que les utiliser semble le mieux, car nous pouvons faire fonctionner quelque chose et l'expérimenter pour voir comment il "se sent" :+1: Tout ce que nous choisissons n'est pas gravé dans le marbre. Nous pouvons toujours l'ajuster pour gérer plus de complexité si nous trouvons que nous en avons besoin :)

Un système complexe qui fonctionne s'avère invariablement avoir évolué à partir d'un système simple qui fonctionnait. La proposition inverse semble également vraie : un système complexe conçu à partir de zéro ne fonctionne jamais et ne peut pas fonctionner. Vous devez recommencer, en commençant par un système simple qui fonctionne. - John Gall

@cdrini a accepté. Allons-y avec ce qui est déjà utilisé avant d'en reprendre :) Cela dit, quelle est la suite ?

La prochaine étape est une fois que @cclauss a une méthode qu'il pense être prête, lui ou moi pouvons l'ajouter à l'interface utilisateur et la mettre sur dev.openlibrary.org pour le tester :) Cela semble-t-il correct @cclauss ?

Cette page vous a été utile?
0 / 5 - 0 notes