Pour ceux comme moi qui utilisent Calibre pour gérer leur bibliothèque d'ebooks, voici un script qui sert à déterminer l'emplacement de l'eBook dans le système de fichiers du lecteur :

program:
     firstTag = list_item(field('tags'), 0, ',');
     firstLang = list_item(field('languages'), 0, ',');
     contains(firstTag, '.*documentation.*',
         strcat('doc/', field('title')),
         test(firstLang,
             strcat(firstLang, '/', field('author_sort'), '/', field('title')),
             strcat(field('author_sort'), '/', field('title'))
         )
);

En gros j'ai trois sortes de eBooks : les documentations (étiquette: documentation), les livres en anglais et les livres en français. Je veux que les documentations aillent directement dans un répertoire 'doc', tandis que les livres sont triés par langue.
Ce script n'est sans doute pas parfait, c'est le premier que je fais. A noter que Calibre émet un warning lorsqu'il est validé mais cela fonctionne quand même.