III KRAKOWSKA KONFERENCJA BIBLIOTEK NAUKOWYCH
KOHA narzędzie open source do obsługi biblioteki naukowej

Kraków 27-28 listopada 2014

KOHA – zintegrowany system zarządzania biblioteką

 

Zarządzanie biblioteką często stawia jej Dyrekcję, a także pracowników przed trudnymi, czasem ryzykownymi wyborami. Znaczący wpływ na to ma postęp technologiczny w dziennie IT wraz z powszechnie wkraczającym Internetem stworzyły nową jakość w zarzadzaniu. Różne platformy teleinformatyczne wymuszają interoperacyjność systemów informatycznych podnosząc standardy obiegu informacji.

 

Przed decyzją, w kwestii wyboru systemu bibliotecznego, stanęła Biblioteka Główna Uniwersytetu Szczecińskiego w 2005 r., kiedy to dotychczasowy system, opracowany jeszcze w DOSie, jednostanowiskowy (przerobiony przez informatyka na system wielostanowiskowy), zaczął odmawiać współpracy. Do tego brak obsługi formatu MARC21, archaiczne gromadzenie i niewydolne przetwarzanie danych powodowało na tym etapie więcej problemów niż korzyści z informatyzacji.

 

Do 2005 r. biblioteka podążała starymi, utartymi drogami innych bibliotek szczecińskich, gdzie podjęto próbę wdrożenia jednego z kilku wchodzących w owym czasie na rynek usług bibliotecznych, komercyjnego systemu bibliotecznego Aleph. Ze względu na wysokie koszty programu próba taka zakończyła się wykorzystaniem programu wyłącznie przy tworzeniu bazy publikacji naukowych.

 

Zbiegło się to z rozszerzeniem struktury osobowej Odziały ds. Komputeryzacji biblioteki, gdzie zatrudniono nowe dynamicznie rozwijacie się osoby z wykształceniem informatycznym, które podjęły się testowego wdrożenia mało znanego w Polsce programu bibliotecznego Open Source – KOHA.

 

System biblioteczny KOHA narodził się w odległej Nowej Zelandii, został oparty na zasadach otwartego oprogramowania. Tworzony był na potrzeby Horowhenua Library Trust. W 2000 ukazała się pierwsza publiczna edycja oprogramowania z Powszechną Licencją Publiczną (GNU), która nie posiadała jeszcze zgodności z formatem MARC. Dopiero w 2004 r. ukazała się wersja 2.0 oprogramowania, która pracowała zarówno w standardzie MARC21, jak i UNIMARC. Dalecy Maorysi nadali mu nazwę KOHA, co oznacza „dar”. Tradycją Maorysów jest przynoszenie „koha” w postaci dań, owoców, napojów na wspólny stół z okazji wesela, pogrzebu i każdego innego spotkania towarzyskiego. Każdy uczestnik może podejść do wspólnego stołu, położyć na nim swoją potrawę oraz częstować się dowoli innymi. Na takiej zasadzie działa system biblioteczny KOHA.

 

Początki wdrożenia nie były łatwe, brak tłumaczenia na język polski był dużą barierą dla pracowników, tłumaczenie z języka angielskiego na język polski (z uwzględnieniem terminologii bibliotekarskiej) zajmowało mnóstwo czasu - ekran po ekranie, opcja po opcji. Takie rozwiązanie zazwyczaj sprawdzało się w mniejszych bibliotekach i stanowiło ogromne wyzwanie dla dużego środowiska biblioteki uniwersyteckiej. Analiza wymagań biblioteki uniwersyteckiej posiadające 12 bibliotek wydziałowych już od samego początku wymuszała wprowadzenie wielu zmian w kodzie, aby implementacja systemu w dostępnej wersji 2.0 była uzasadniona. Realizację tego przedsięwzięcia umożliwiło otwartość kodu źródłowego i gdyby nie fakt, że system Koha udostępniany jest na zasadach wolnego oprogramowania, gdzie nie ma ograniczeń licencyjnych, to takich zmian nie udałoby się wykonać i pewnie wdrożenie w szybkim tempie zakończyłoby się porażką.

 

Istotny wpływ na proces wdrożenia miało przekonanie się do systemu oraz zaangażowanie się wykwalifikowanej kadry pracowników – bibliotekarzy, dzięki którym zostały zainicjowane zmiany dostosowujące system do realiów polskiej biblioteki akademickiej. Im więcej pracowników zaczynało pracować w nowym systemie, tym więcej zadań spadało na dział komputeryzacji.

 

Topologia teleinformatyczna systemu rozpoczęła się od zainstalowania instancji systemu na jednym serwerze z 1.5GB pamięci i procesorem Pentium IV. Ponieważ wymagania szybko rosły, Koha została rozbudowana o nowe funkcje systemu, którego składowe zostały zoptymalizowane, ale w celu zapewnienia wydajności rosły wymagania sprzętowe. W krótkim czasie nastąpiło rozszczepienie składowych systemu: najpierw na dwie a obecnie na trzy maszyny serwerowe. Rotacje sprzętu polegają na wymienianych co 5 lat serwerach. Obecnie system obsługują 3 serwery z procesorami Xeon i 16GB pamięci każdy.

 

Na samym początku tworzona była w systemie baza Centrum Informacji i Dokumentacji Europejskiej (jako znacznie mniejsza od katalogu bardzo dobrze nadawała się na wdrożenie środowiska testowego) oraz baza publikacji naukowych, w ramach której przeprowadzono konwersje z bazy ISIS. Udana implementacja powyższych baz do systemu koha dała zielone światło przez dyrekcje BG na pełne wdrożenie systemu. Następny był już Katalog Główny – na początek najnowsze wpływy, a w międzyczasie opracowywane były procedury eksportu i migracji danych ze starego katalogu, w późniejszych etapach - baza dysertacji, bazy Biblioteki Narodowej (Bibliografia Zawartości Czasopism i Przewodnik Bibliograficzny), zbiory specjalne, katalog teologii i inne nasze bazy bibliograficzne. Wszystkie niezależne z własnym dostępem OPAC oraz administracyjnym.

 

Rozwój oryginalnej KOHY coraz bardziej mijał się z potrzebami biblioteki, powolność wdrożeń nowych funkcjonalności, powtarzalność pewnych rozwiązań po raz kolejny spowodowały podjęcie decyzji o niezależnym rozwoju systemu, z zachowaniem możliwości importowania nowych funkcjonalności z nowych wersji systemu. Dla zachowania spójności zachowano „2” w nazwie projektu.

 

Pierwszym etapem było przerobienie raportowania dostosowanego do polskiej biblioteki, powstały takie raporty jak chociażby „Księga Inwentarzowa” z możliwością wydruku zgodnym z polskimi normami, raporty dla GUS (których nie ma najnowszej wersji KOHA), liczniki inwentarzy z możliwością archiwizowania stanów licznika, sprawozdanie roczne (zawierające użytkowników aktywnych, wypożyczających wg. oddziału, zarejestrowanych ogółem, przyrost egzemplarzy, itd.), pracownicy (pozwalająca dokonać analizy wydajności konkretnego pracownika), skontrum, etc.

 

Kolejny etap to unifikacja kodu kreskowego, wydzielenie osobnej puli dla czytelników, pracowników oraz dla księgozbioru. Po wnikliwej analizie postanowiono wybrać sprawdzony kod EAN-13 , używany chociażby we wszystkich sklepach. Kod EAN-13 został zatwierdzony przez International Article Numbering Association (IANA) na podstawie standardu UPC-A. Kod liczbowy składa się z czterech obszarów: 1) system numerowania, 2) kod wytwórcy, 3) kod produktu, 4) cyfra kontrolna. Biblioteka zdecydowała się wybrać numery GTIN-13 z prefiksem 20, które przeznaczone są do oznaczania wewnętrznego przez dystrybutorów towarów standardowych, które nie zostały oznaczone przez ich producentów lub dostawców albo do innych celów, wynikających z potrzeb danej firmy. Po sprawdzeniu możliwości, jakie w zakresie drukowania kodów oferuje rynek, zdecydowaliśmy się na włączenie procesu druku kodów do KOHA.

 

Aby ułatwić proces oklejania i identyfikacji pozycji każdy kod został powiązany z numerem inwentarzowym, np. książka o numerze inwentarzowym CDE.1592 ma kod 2000600015921, gdzie 20 to stały prefix, 006 to prefix dla księgozbioru CDE, a 1592 to numer inwentarzowy. Natomiast 1 to cyfra kontrolna. Dzięki takiemu wyborowi biblioteka może korzystać ze wszystkich czytników dostępnych obecnie na rynku i na pewno będących dostępnymi za parę lat.

 

Przywiązanie numeru inwentarzowego do kodu kreskowego spowodowało powstanie opcji „generowania kodów” niezależnych od pozycji dostępnych w systemie, tzn. każda książka mogła zostać oklejona zanim informacja o niej trafiła do systemu. Dzięki temu mogła być również wypożyczona po szybkim dodaniu pozycji do rekordu zwanego „WSPÓLNY ZASÓB KSIĄŻEK – dla książek nie posiadających opisu bibliograficznego”.

 

Taki sposób pracy znacząco ułatwiał zadanie działowi opracowania, wszystkie rzeczywiście wypożyczane egzemplarze trafiały na listę, która później była na bieżąco opracowywana.

 

Wraz ze zmianą pracy na system przeglądarkowy, powstała możliwość zmniejszenia kosztów stanowiskowych, tzn. zastąpienie pełnego stanowiska komputerowego stanowiskiem terminalowym opartym na LTSP . Dzięki temu w przypadku awarii takiego stanowiska wymiana na nowy sprzęt zajmuje 5 minut, administracja sprowadza się do zarządzania jednym serwerem, a koszty zakupu komputera spadają poniżej tysiąca złotych. Do tego istnieje możliwość integracji systemu bibliotecznego z serwerem terminalowym np. do automatycznego skanowania dokumentów czy druku kodów na drukarce ZEBRA po wciśnięciu opcji dostępnej na ekranie systemu.

 

Otwartość systemu pozwoliła na dobudowanie całego spektrum niezależnych aplikacji integrujących całe środowisko biblioteczne, poczynając od powiązaniu strony głównej z nowościami (baner na stronie głównej biblioteki oraz pozycja w menu „nowe nabytki w katalogu” ), poprzez zarządzanie kadrami, gdzie każdy pracownik ma drukowany, wygenerowany z systemu identyfikator ze swoim zdjęciem oraz kodem kreskowym, pozwalające na oznaczanie wejścia/wyjścia do pracy i z pracy, a co za tym idzie wyliczanie efektywnego czasu pracy, czy generowanie w formie pdf comiesięcznego raportu dla kadr.

 

Kolejne aplikacje powiązane z systemem to zdalny dostęp do baz obcych za pomocą bramy z użyciem PROXY i generowanym hasłem 24-godzinnym w OPACu , dostęp do sieci bibliotecznej poprzez WiFi udostępniane w budynku głównym z wykorzystaniem dostępu generowanego w OPACu. Wyliczanie zakończyć można na bibliotece cyfrowej powiązanej z opisami bibliograficznymi istniejącymi w bazie.

 

Wdrożenie (które dalej trwa) nie polegało wyłącznie na dodawaniu nowych raportów, jego elementem była zmiana wyglądu, dostosowana do aktualnie panujących trendów w informatyce zgodnych z GUI ((ang. Graphical User Interface, GUI)). Zmieniono ekran startowy (rys.1) dodając niezbędne informacje o ostatnio zmienianych rekordach, dodano wszędzie licznik czasu po, którym następuje automatyczne wylogowanie (czas ustawiany również niezależnie dla każdego pracownika), zmieniono menu profilując je zależnie od pracownika lub grupy do jakiej pracownik należy, (np. pracownik gromadzenia w menu nie widzi opcji związanych z wypożyczaniem pozycji, a pracownik wypożyczalni opcji związanych z gromadzeniem). Rozbudowano opcje powiadomień czytelniczych o przeterminowanych książkach, rezerwacjach, potwierdzonych rezerwacjach z profilowaniem do konkretnego oddziału, czy dokumentów niezbędnych przy pracy z czytelnikiem jak karta zapisu czy karta obiegowa (rys. 2).

 

Napisano od podstaw cały moduł gromadzeniowy zgodnie ze specyfiką polskiej biblioteki uczelnianej, którego zadaniem jest umożliwienie planowania i ułatwienia realizacji zakupów wydawnictw zwartych od momentu złożenia zamówienia do momentu skierowania zamówionych egzemplarzy do wybranej księgi inwentarzowej.

 

Moduł umożliwia dokonywanie automatycznej rejestracji dowodów wpływów, kontrolę zamówień oraz uproszczenie procedur w tworzeniu opisów bibliograficznych i egzemplarzy. Warunkiem pracy w module jest wprowadzenie funduszy oraz utworzenie bazy dostawców. Dane o każdym nowym dostawcy wprowadza się w specjalnie przygotowanym formularzu. Oprócz danych adresowych, w tym także internetowego i e-mailowego, informacji o osobie odpowiedzialnej za kontakt, wysokości udzielanych rabatów, oceny oferty i współpracy, baza ta zawiera zestawienia dokonanych płatności.

 

Moduł Gromadzenia w Koha obsługuje wielopłaszczyznową strukturę wydatków, zawierającą nieograniczoną liczbę źródeł finansowania (granty, budżety wydziałów, dotacje. Itp.). Aktualizacje budżetów dokonywane są w czasie rzeczywistym. Składane zamówienia automatycznie tworzą „Listę zamówień zgłoszonych”, z której administrator modułu gromadzenia generuje zamówienia do wybranych dostawców. Potwierdzenie realizacji zamówienia dokonuje się poprzez wybranie opcji „ODBIERZ”. Następuje wówczas automatyczne powiązanie faktury z dostawcą oraz utworzenie numeru akcesji. Ponadto moduł ten umożliwia bibliotekom wydziałowym tworzenie zamówień w systemie, automatyzując proces przesyła informacji o potrzebach danej biblioteki. Obecnie formularz jest ustandaryzowany i podający na bieżąco dostępną pulę pieniędzy dla konkretnego oddziału. Każdy oddział na bieżąco widzi stan zamówień i w każdej chwili może interweniować, jeśli realizacja zamówienia się przedłuża.

 

Przebudowano silnik wyszukiwawczy poprzez ściślejszą integrację z bazą danych, a także dobudowano możliwość korzystania z alternatywnych silników dla opisów bibliograficznych jak np. wykorzystywana Zebra w aktualnej społecznościowej wersji systemu (ver. 3.16). Główny silnik bazy to nadal MySQL (lub MariaDB) z pełnym wykorzystaniem procedur, replikacji i wyrażeń regularnych. Taki wybór podyktowany był zapewnieniem bezpieczeństwa oraz integralności danych, w każdej chwili pracownik biblioteczny standardowym narzędziem może dokonać prostych analiz lub zmian w bazie bez angażowania programisty, co w przypadku aktualnej (ver. 3.16) wersji społecznościowej z silnikiem Zebra już takie proste nie jest.

 

Proces wprowadzania nowych opisów rozbudowano o wstępną weryfikację istniejących podobnych opisów w systemie oraz w bazie NUKAT (rys.3), co ma na celu zmniejszenie ilości duplikatów istniejących już opisów we własnym katalogu lub w bazach zewnętrznych (zasada współkatalogowania) Dodano możliwość łatwego duplikowania pól, poszerzono możliwości pluginów dla np. pól LDR .

 

Zmodyfikowano całkowicie moduł pracy z czytelnikiem, co wyeliminowało moduł Wypożyczalnia - wszelkie prace związane z wypożyczeniem, zwrotem, przedłużeniem czy rozliczeniem kary dokonywane jest na jednym, głównym ekranie czytelnika. Operację wypożyczenia i zwrotu dokonuje się z wykorzystaniem czytnika (wymagane jest wyłącznie aktywne okno przeglądarki) lub ręcznie po wciśnięciu przycisku F2 i wpisaniu z klawiatury numeru inwentarzowego. Aby nie wykonać podwójnie operacji wypożyczenia i zwrotu wprowadzono 30 sekundową karencję na tym samym egzemplarzu. W przypadku, gdy czytelnik tą książkę wypożyczał stosowna informacja pojawia się na ekranie. Pracownik nie musi przełączać ekranów, gdy przychodzi czytelnik - podaje on swoją legitymacje, którą pracownik odczytuję przy pomocy czytnika kodów kreskowych lub czytnika RFID, co powoduje automatyczne przejście na ekran czytelnika, gdzie pracownik skanując kolejne pozycję dokonuje wypożyczenia lub zwrotu.

 

Ostatnią dodaną nowością jest integracja z etykietami RFID (ang. Radio-frequency identification), do której wykorzystano istniejące rozwiązanie SIP2 w najnowszej wersji KOHy społecznościowej, poprawiając przy okazji błędy implementacyjne i dostosowując je do wymagań dostawcy sprzętu. Dzięki temu możliwe jest korzystanie z wrzutni, bramek czy czytników.

 

To nie są oczywiście wszystkie zmiany jakie dokonały się w oprogramowaniu przez te 9 lat trwającego wdrożenia, projekt ciągle jest udoskonalany i zmieniany zgodnie z panującymi trendami w bibliotekarstwie i zmianami w oryginalnej społecznościowej wersji systemu.

 

  1. http://pl.wikipedia.org/wiki/EAN [dostęp z dnia 19.10.2014]
  2. https://en.opensuse.org/Portal:KIWI-LTSP [dostęp z dnia 19.10.2014]
  3. http://bg.szczecin.pl/nowe_nabytki/pl/main/ [dostęp z dnia 19.10.2014]
  4. http://pl.wikipedia.org/wiki/Serwer_po%C5%9Brednicz%C4%85cy [dostęp z dnia 28.10.2014]
  5. http://bg.szczecin.pl/zdalny_dostep_do_baz/main/ dostęp z dnia 19.10.2014
  6. http://pl.wikipedia.org/wiki/Interfejs_graficzny [dostęp z dnia 19.10.2014]
  7. http://www.loc.gov/marc/bibliographic/bdleader.html [dostęp z dnia 19.10.2014]
  8. http://pl.wikipedia.org/wiki/RFID [dostęp z dnia 19.10.2014]
  9. http://en.wikipedia.org/wiki/Standard_Interchange_Protocol [dostęp z dnia 19.10.2014]