Zarządzanie grupami książek, np. „gatunek”

Bywa, że ktoś chce poukładać książki w bibliotece w podgrupy, tak jak to jest w przypadku folderów i podfolderów. Najczęściej w ten sposób tworzy się hierarchię gatunków literackich, ale niekoniecznie. Jeden z użytkowników chciał uporządkować podręczniki wg przedmiotu i kursu. Ktoś inny chciał ułożyć książki, dane w prezencie, wg tematu i osoby, która dostała prezent. W tym rozdziale posłużymy się przykładem uporządkowania wg gatunków literackich.

Zanim przejdziemy dalej, należy wskazać, że nie mówimy tu o folderach na dysku. Podgrupy to nie foldery. Książki nie są nigdzie kopiowane, struktura plików biblioteki calibre nie zostanie naruszona. Pokazujemy natomiast sposób na organizowanie i wyświetlanie podgrup książek w bibliotece calibre.

Oto ogólne wymagania dotyczące podgrup, takich jak gatunki literackie:

  • Podgrupa (tj. gatunek) musi zawierać (wskazywać na) książki, a nie kategorie. To odróżnia podgrupy od kategorii definiowanych przez użytkownika.

  • Książka może być w wielu podgrupach (gatunkach). To odróżnia podgrupy od folderów na dyskach.

  • Podgrupy (gatunki) muszą tworzyć hierarchię; podgrupy mogą zawierać inne podgrupy.

Tags give you the first two. If you tag a book with the genre then you can use the Tag browser (or search) to find the books with that genre, giving you the first. Many books can have the same tag(s), giving you the second. The problem is that tags don’t satisfy the third requirement. They don’t provide a hierarchy.

sgtree The calibre hierarchy feature gives you the third – the ability to see the genres in a «tree» and the ability to easily search for books in genre or sub-genre. For example, assume that your genre structure is similar to the following:

Genre
    . History
    .. Japanese
    .. Military
    .. Roman
    . Mysteries
    .. English
    .. Vampire
    . Science Fiction
    .. Alternate History
    .. Military
    .. Space Opera
    . Thrillers
    .. Crime
    .. Horror
    etc.

By using the hierarchy feature, you can see these genres in the Tag browser in tree form, as shown in the screen image. In this example the outermost level (Genre) is a custom column that contains the genres. Genres containing sub-genres appear with a small triangle next to them. Clicking on that triangle will open the item and show the sub-genres, as you can see with History and Science Fiction.

Kliknięcie gatunku spowoduje wyszukanie wszystkich książek przypisanych do niego oraz wszystkich podporządkowanych mu podgatunków. Na przykład kliknięcie Science Fiction da w efekcie wszystkie trzy podgatunki - Alternate History, Military i Space Opera. Kliknięcie Alternate History wyszuka książki z tego gatunku, ale pominie Military i Space Opera. Rzecz jasna książka może być przypisana do kilku gatunków. Jeżeli należy np. do Space Opera i Military, zostanie odnaleziona po kliknięciu któregokolwiek z tych gatunków. Wyszukiwanie jest dokładniej omówione poniżej.

Zwróć uwagę, że na rysunku gatunek Military występuje dwukrotnie, raz pod Historią, a raz pod Science Fiction. Ponieważ mamy do czynienia z hierarchią, są to dwa oddzielne gatunki. Książka może być przypisana do jednego, do drugiego, albo (co w tym przypadku jest raczej wątpliwe) do obu. Na przykład książka Winstona Churchilla „Druga Wojna Światowa” mogłaby być w „History.Military”. Książki z serii „Honor Harrington” Davida Webera mogłyby się znaleźć w „Science Fiction.Military” oraz w „Science Fiction.Space Opera.”

Kiedy już gatunek istnieje, czyli jest choć jedna przypisana do niego książka, możesz łatwo dodać do niego inne książki z biblioteki, przeciągając je z listy i upuszczając na niego. Przyporządkować książki do gatunków możesz również w edytorze metadanych. Więcej na ten temat znajdziesz poniżej.

Ustawienia

By now, your question might be „How was all of this setup?” There are three steps: 1) create the custom column, 2) tell calibre that the new column is to be treated as a hierarchy, and 3) add genres.

You create the custom column in the usual way, using Preferences -> Add your own columns. This example uses „#genre” as the lookup name and „Genre” as the column heading. The column type is „Comma-separated text, like tags, shown in the Tag browser.”

_images/sg_cc.jpg

Then after restarting calibre, you must tell calibre that the column is to be treated as a hierarchy. Go to Preferences  →  Look & feel  →  Tag browser and enter the lookup name „#genre” into the „Categories with hierarchical items” box. Press Apply, and you are done with setting up.

_images/sg_pref.png

W tej chwili nie ma jeszcze wprowadzonych żadnych gatunków. Został nam jeszcze jeden krok: jak przypisać gatunki do książek. Gatunek nie istnieje w bazie danych, dopóki nie jest do niego przypisana choć jedna książka. Aby nauczyć się je dodawać, musisz się dowiedzieć trochę o tym, czym właściwie jest gatunek w metadanych książki.

Hierarchia jest budowana poprzez tworzenie elementów, składających się z nazw oddzielanych kropkami. Pozostając przy przykładzie podanym wyżej, elementy te to „History.Military”, „Mysteries.Vampire”, „Science Fiction.Space Opera” itp. Tak więc, by stworzyć nowy gatunek, wybierasz książkę, która do niego należy, edytujesz metadane i wprowadzasz nowy gatunek w kolumnie, którą uprzednio dodałeś. I dalej: jeśli chcesz przypisać książkę do gatunku „Comics” i podgatunku „Superheroes”, musisz otworzyć okno edycji metadanych tej książki (komiksu) i na zakładce Własne metadane, w polu oznaczonym „Genre” wprowadzić „Comics.Superheroes”, tak, jak to pokazano poniżej (pomijając inne kolumny).

_images/sg_genre.jpg

Po wykonaniu powyższego w przeglądarce tagów zobaczysz:

_images/sg_tb.jpg

Od tej chwili, by przypisać książkę do gatunku, możesz albo przeciągnąć ją z listy i upuścić w przeglądarce etykiet na wybrany gatunek, albo edytować metadane dokładnie tak samo, jak przy pierwszej książce.

Informacja

Hierarchical display only works if the Tag browser is set to sort items by name. This is the default and can be checked by clicking the Configure button at the bottom of the Tag browser.

Szukanie

_images/sg_search.jpg

The easiest way to search for genres is using the Tag browser, clicking on the genre you wish to see. Clicking on a genre with children will show you books with that genre and all child genres. However, this might bring up a question. Just because a genre has children doesn’t mean that it isn’t a genre in its own right. For example, a book can have the genre „History” but not „History.Military”. How do you search for books with only „History”?

The Tag browser search mechanism knows if an item has children. If it does, clicking on the item cycles through 5 searches instead of the normal three. The first is the normal green plus, which shows you books with that genre only (e.g., History). The second is a doubled plus (shown above), which shows you books with that genre and all sub-genres (e.g., History and History.Military). The third is the normal red minus, which shows you books without that exact genre. The fourth is a doubled minus, which shows you books without that genre or sub-genres. The fifth is back to the beginning, no mark, meaning no search.

Ograniczenia

If you search for a genre then create a saved search for it, you can use the «restrict to» box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named «History.Japanese» by first clicking on the genre Japanese in the Tag browser to get a search into the search field, entering History.Japanese into the saved search field, then pushing the „Save search” button (the green box with the white plus, on the right-hand side).

_images/sg_restrict.jpg

Po zapisaniu wyszukiwania możesz go użyć jako ograniczenia.

_images/sg_restrict2.jpg

Przydatne funkcje szablonów

Możesz też użyć informacji o gatunku w szablonie, np. w przypadku zapisywania na dysku lub wysyłania do urządzenia. Pojawia się jednak pytanie: „Jak mogę uzyskać nazwę gatunku literackiego?”. Można tego łatwo dokonać za pomocą funkcji szablonów - subitems.

Przypuśćmy na przykład, że chcesz dodać najwyższy poziom z hierarchii gatunków literackich do szablonu zapisu na dysk, by utworzyć foldery, np. „History/The Gathering Storm - Churchill, Winston”. Aby to zrobić musisz wydzielić pierwszy poziom hierarchii i dodać go na początku wraz z ukośnikiem, by zaznaczyć, że musi być utworzony folder. Szablon powinien wyglądać następująco:

{#genre:subitems(0,1)||/}{title} - {authors}

Więcej informacji o szablonach i funkcji subitems() znajdziesz w rozdziale Język szablonów