La recherche de texte est maintenant complètement opérationnelle. Comme prévu, des mots spéciaux, terminés par un deux-points ( : ) permettent de la configurer de manière fine: partout: ou anywhere: Recherche les mots suivants n'importe où dans le fichier. C'est le mode opératoire par défaut. paroles: ou lyrics: Recherche les mots suivants dans les paroles des chansons autre: ou other: Recherche les mots suivants n'importe où, sauf dans les paroles des chansons site: Restreint la recherche à la liste de sites qui suit. (ex. myriad-users.com cpdl.org) type: Restreint la recherche à la liste des types de fichiers qui suit. (ex. pdf myr ) Les mots à rechercher sont séparés par des espaces si on veut qu'ils soient recherchés dans n'importe quel ordre et qu'ils peuvent être séparés par d'autre mots, ou entre guillemets si on désire les chercher dans l'ordre, et consécutifs. Nous en avons également profité pour retraiter les 1600 fichiers PDF déjà dans la base, afin de prendre en compte plus de textes extraits par PDFtoMusic. Cela a permis d'améliorer les résultats de recherche textuelle sur ce type de fichiers. Je rappelle le lien provisoire: http://www.kooplet.com/main.html |
|
|
by Olivier Guillion | | |
| |
|
Alors que la base de données de Kooplet est proche d'atteindre la barre des 50000 fichiers, nous avons travaillé sur la recherche de texte, qui devrait être mise en place très prochainement. On pourra effectuer soit des recherches simples, comme par exemple: fugue Bach pour trouver tous les morceaux qui contiennent, n'importe où dans leur texte, les deux mots "fugue" et "Bach", soit des recherches complexes, comme celle-ci: paroles: Domine "in excelsis" autre: bach partout: orgue type: pdf site: superpartitions.net Cette recherche listera les fichiers satisfaisant à tous ces critères : - Contient le mot "Domine" et le couple de mots "in excelsis" dans ses paroles - Contient le mot "Bach" dans ses textes autres que des paroles (titre, compositeur, remarques, noms de portées...) - Contient le mot "orgue" n'importe où dans ses textes (paroles ou non) - Le type du fichier est PDF - Le site sur lequel est le fichier est "superpartitions.net" - et, bien entendu, si une séquence musicale a été entrée dans le plug-in, le fichier doit également la contenir. De telles recherches, même complexes, s'avèrent relativement rapides, donc cela ne devrait pas nécessiter des prouesses de programmation pour mettre en place ce nouveau module. |
|
|
by Olivier Guillion | | | |
|
On s'approche peu à peu du but. Les programmes de construction et maintenance de la base de données ainsi que ceux qui permettent la recherche par l'utilisateur étaient jusqu'ici testés en local, sur les ordinateurs de chez nous. Ils ont maintenant été transférés sur le serveur distant (www.kooplet.com) mais sont encore sur une page cachée, inaccessible au public. Nous avons effacé les 30000 morceaux de la base de données et avons recommencé une collecte depuis le départ. En effet, nos divers tests avaient émaillé les données d'enregistrements incomplets ou abîmés, nous préférons donc repartir sur des bases saines. Nous allons faire tourner le "crawler" cette nuit, afin de constituer une collection suffiamment importante pour permettre aux utilisateurs de tester tout cela, une fois que la dernière version du plug-in aura été diffusée en beta (ce qui ne saurait tarder). |
|
|
by Olivier Guillion | | | |
|
La recherche fonctionne maintenant correctement. La recherche de textes (nom de l'oeuvre ou du compositeur, mots dans les paroles, etc) n'est pas encore écrite, mais ce ne devrait pas être le plus difficile. Après avoir "séché" un petit moment sur un bug dans notre version du Perl sur PC, pourtant absent de la même version de Perl sur Linux, nous avons écrit les opérations de maintenance en tâche de fond de la base de données. En effet, il ne suffit pas de parcourir le web pour collecter des informations sur les musiques trouvées, encore faut-il faire le "ménage", en vérifiant que ces musiques sont toujours présentes en ligne, et en compactant la base de données de temps en temps, lorsqu'un nombre suffisant de liens brisés a ainsi été découvert et éliminé. Même si tout n'est pas encore finalisé, nous avons bon espoir de proposer très bientôt une préversion du plug-in incluant le module de recherche, ainsi qu'une première version de la page d'accueil de Kooplet. |
|
|
by Olivier Guillion | | | |
|
Nous avons passé la journée à optimiser et accélérer les recherches mélodiques dans la base de données. Cela a porté sur trois points principaux: - L'utilisation, dans le langage que nous utilisons (Perl), de fonctions rapides. Pour le même travail, la vitesse peut être multipliée par 10 selon la manière dont on s'y prend. - La création de tables d'index, permettant des accès rapides à notre base - La création de "hash-tables", qui permettent, lorsqu'une recherche de mélodie est demandée, d'éliminer très rapidement une très grosse proportion des musiques dans lesquelles on n'a aucune chance de retrouver la mélodie en question. Nous avons ainsi pu diminuer les temps de recherche de 80%. Nous nous sommes ensuite attaqués à la réduction de la taille de la base de données, qui prenait trop rapidement des dimensions considérables (plusieurs centaines de méga-octets). Un simple petit compactage "maison" des enregistrements a déjà permis de la réduire de 75%. Si ce n'est pas suffisant, il faudra alors voir si on peut réduire la quantité de données dont nous avons besoin pour chaque morceau. |
|
|
by Olivier Guillion | | | |
|
Les problèmes de l'étape 14 ont été résolus, et nous disposons donc maintenant d'une version du plug-in interrogeable en Javascript, sur tous les navigateurs que nous ayons pu tester. Nous pouvons permettre ainsi à la page Web d'interroger le plug-in pour connaitre son état actuel, la séquence rentrée, les options cochées, etc. Pour la petite histoire, le problème avec IE a été résolu après quelques heures à patauger par un simple redémarrage de la machine. Apparemment, Windows avait on ne sait comment conservé l'ancienne version du programme et s'obstinait à l'utiliser à la place de notre nouvelle mouture. Donc nous avons mis en place une version plus complète de la page de recherche et avons commencé les tests et optimisations. L'utilisation d'encodage simplifié des mélodies, comme le "Parsons", semble de moins en moins judicieux au fur et à mesure que la taille de la base de données des musiques augmente. Avec une recherche sur 230000 portées, la recherche exacte donne presque toujours des résultats, et y ajouter quelques dizaines de milliers de résultats approximatifs ne nous semble pas vraiment utile. |
|
|
by Olivier Guillion | | |
| |
|
Nous avons réussi à mettre en place la communication entre le plug-in et la page Web qui l'accueille. Ceci permet de récupérer, la séquence à rechercher lorsque l'utilisateur clique le bouton "Rechercher" de la page. Ce n'est donc plus le plug-in qui demande la recherche, nous autorisant une plus grande flexibilité et des mises à jour faciles. Malheureusement, si la méthode employée fonctionne sur tous les navigateurs Mac, et, sous Windows, sur Firefox, Opera, etc, elle ne fonctionne pas -qui l'eût cru- sur Internet Explorer. Sur Internet explorer en effet, les plug-ins sont des "objets ActiveX", technologie privée de chez Microsoft. Nous avions donc il y a quelque temps, créé un petit objet ActiveX servant de passerelle vers notre plug-in. Mais cet objet ne permet pas les fonctions avancées de contrôle du plug-in par la page Web. Nous essayons donc de mettre en place une communication entre l'objet ActiveX et la page Web, pour ensuite relayer ces communications vers le plug-in. Et c'est vraiment "galère"... |
|
|
by Olivier Guillion | | |
| |
|
Le robot a tourné pendant 24 heures, et a collecté jusqu'ici environ 15000 fichiers musicaux, contenant 80000 portées. La base de donnée prend rapidement de l'ampleur (250 Mo), et il faudra que nous trouvions un moyen de la réduire sans pénaliser la rapidité de recherche. Pour l'instant, les résultats de recherche donnent ce type de renseignements (la présentation n'est pas définitive): On a donc, pour chaque fichier: - La pertinence. Plus le nombre est élevé, plus le résultat trouvé est conforme à ce que l'on cherchait - Le type de fichier et son nom ou titre - Si disponible, le nom du compositeur - Si disponibles, les remarques - Le numéro et le nom de la portée dans laquelle la séquence a été trouvée, le numéro de mesure, et un petit bouton pour jouer la séquence trouvée - La page d'origine qui présente le fichier |
|
|
by Olivier Guillion | | | |
|
|