EBIB 
Nr 8/2001 (26).  Wiosna bibliotek publicznych
czy stracone złudzenia? Artykuł
Poprzedni artykuł Następny artykuł     
 
Rozmiar: 45 bajtów

Aleksander Radwański
Zakład Narodowy im. Ossolińskich
Instytut Bibliotekoznawstwa Uniwersytetu Wrocławskiego

Czy MAK może obsłużyć kartotekę haseł wzorcowych?

Rozmiar: 45 bajtów

Dla każdego, znającego choć pobieżnie sytuację bibliotek publicznych w Polsce, jest dość jasne, że większości z nich nie stać na inny system niż MAK. Jak pogodzić to z postulatem wdrażania formatu MARC i perspektywą kopiowania gotowych opisów z sieci?

Myślę, że w różnych dyskusjach błędnie stawiano przed MAK-iem wymóg integracji, którego oczywiście nie jest w stanie spełnić jako produkt od początku realizujący inną koncepcję. Stawiam tezę, że jeśli potraktujemy MAK-a jako część systemu, to może on obsłużyć komplet danych z kontrolą kartoteki haseł wzorcowych (khw) i pełną kompatybilnością z dużymi systemami! Trzeba go tylko odpowiednio użyć i uzupełnić dodatkowym oprogramowaniem. Jan Wierzbowski wprowadził już do testowej wersji MAK-a (idąc za sugestiami zawartymi w pierwszej, niepublikowanej wersji tego artykułu) możliwość przetwarzania wsadowego, czyli wykonania specyficznego "skryptu" zapisanego w zewnętrznym pliku tekstowym. Ta nowa funkcja zostanie zapewne dołączona do nowej wersji, która niedługo będzie proponowana do sprzedaży. W ramach bezpośrednich kontaktów z Biblioteką Narodową można uzyskać program do testowania już dziś.

MAK ma bardzo wiele, świetnie działających, funkcji i programowanie ich od nowa byłoby zupełnie bezsensowną pracą. Wielką zaletą MAK-a jest też jego samodzielność, tzn. fakt, że nie korzysta on z żadnych bibliotek czy runtimów innych producentów. Obecnie produkowane oprogramowanie jest zwykle aplikacją gotowych pakietów i działa gładko w momencie instalacji, ale z czasem zaczyna się "rozjeżdżać", bo każda systemowa "łata" (patch) powoduje konieczność "łatania" innych komponentów. Każdy administrator zna doskonale tę sytuację.

W mojej ocenie MAK zapewnia 90% oprogramowania całego systemu docelowego (oferuje gotowy interfejs do wprowadzania i modyfikacji danych, moduł wypożyczeń i OPAC). Pozostałe 10% stanowić będzie program realizujący przetwarzanie wsadowe. Prócz oprogramowania potrzebna będzie jeszcze odpowiednia pragmatyka wzorowana nieco na sposobie przetwarzania w systemie VTLS.

Proponowane rozwiązanie bazuje na systemie DOS, myślę jednak, że stosunkowo łatwo może być emulowane w LINUX-ie.

A. Komponenty systemu

System składa się z:

  • Pakietu MAK (od wersji 4.2)
  • Programu MAKPlus (pozostałe funkcje potrzebne do zbudowania systemu)
  • Zespołu czterech baz:
    1. Baza opisów bibliograficznych (USMARC) - BIB
    2. Baza zasobów / egzemplarzy (USMARC) - ZAS
    3. Baza khw (USMARC) - KHW
    4. Baza użytkowa (generowana automatycznie) - BAZA

B. Kartoteka haseł wzorcowych (khw)

Kartoteka haseł wzorcowych służy kontroli haseł bibliograficznych podczas ich wprowadzania. Kartoteka musi mieć możliwość automatycznej aktualizacji (wgrywania plików poprawek), wprowadzania, kasowania i modyfikowania rekordów khw. Kartotekę obsługuje baza KHW.

Struktura bazy składa się z:

  • pól zgodnych ze specyfikacją USMARC dla khw;
  • pola powiązań (numery kontrolne rekordów bibliograficznych).

Indeksy w bazie KHW:

  • indeks haseł głównych;
  • indeks haseł odrzuconych;
  • indeks wszystkich haseł;
  • indeks numerów kontrolnych.

B1. Wprowadzanie hasła i modyfikacja

Wprowadzanie może odbywać się równolegle z normalną pracą systemu. Wprowadzamy te hasła, które są niezbędne dla wprowadzenia rekordu bibliograficznego.

B1. a.
Kopiujemy rekord z sieci (CKHW VTLS, NUKat itp.) i zapamiętujemy go w postaci pliku tekstowego w standardzie wymiennym (taką postać zapisuje każdy z programów do ściągania rekordów).

B1. b.
Program MAKPlus sprawdza czy:

  • główne hasło nie dubluje się;
  • główne hasło nowego rekordu nie pokrywa się z jakimkolwiek hasłem odrzuconym;
  • którekolwiek z haseł odrzuconych nowego rekordu nie pokrywa się z jakimkolwiek hasłem khw;
  • w przypadku braku konfliktów hasło jest wprowadzane.

Sprawdzanie może odbywać się mechanizmami MAK-a.

Przykładowy skrypt sprawdzający istnienie hasła wygląda następująco (zapisany w pliku, np. request.txt w oparciu o język skryptowy załączony na końcu artykułu). Komentarze poprzedzone są znakiem ";":

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; linia 1
; początek pliku request.txt
;
; baza otwierana automatycznie odpowiednia konfiguracją "bazospisu"
\F6
W
I
; nazwa indeksu
hasło \SPAC główne
; potwierdzenie
\ENTE
\ENTE
=
; poszukiwane hasło
Adrenalina
\F7
\F7
\ENTE
\ESC
\F0
; obsługa listy zaznaczonych dokumentów
; drukowanie
\F8
\FS9
; nazwa pliku z wynikiem
odp.txt
\ENTE
\ENTE
; kasowanie listy i wyjście
\F6
\F0
\F0
;
; koniec pliku
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; linia 35

Chcąc uzyskać informację zwrotną wykorzystamy mechanizm listy zaznaczonych dokumentów wraz z opcją druku do pliku. Opisany skrypt działa poprawnie pod warunkiem, że lista zaznaczonych dokumentów istnieje. Jeśli żaden dokument nie zostanie zaznaczony, drukowanie nie jest możliwe. Można obejść ten problem dodając do listy zaznaczonych dokumentów umowny opis techniczny, który nie będzie brany pod uwagę przy weryfikacji haseł. Gdy umieścimy w rekordzie, o konkretnym numerze (np. pierwszym, by nie zmienić położenia po skasowaniu innych rekordów), spreparowany odpowiednio zapis (np. w polu numeru słowo "pusty"), wtedy dołączenie do listy zaznaczonych dokumentów będzie wymagało dodania następującego fragmentu po linii 20 skryptu oryginalnego:

; dodanie pustego dokumentu
\F5
1
\ENTE
\F6
\F0
\ENTE
; koniec wstawki

Trzeba zwrócić uwagę na to, że powyższy skrypt, przy zastosowaniu maski zerowej, wydobywa nam znaleziony rekord do zewnętrznego pliku. Może służyć zatem nie tylko do wyszukiwania, ale również modyfikacji. Modyfikacja jest bowiem niczym innym, jak złożeniem czterech czynności: wyszukanie (skrypt request), wprowadzenie zmiany (program MAKPlus), skasowanie rekordu oryginalnego (skrypt delete), wprowadzenie rekordu zmodyfikowanego (skrypt input). Jak widać trzy czwarte czynności można obsłużyć skryptami. Skrypt "input" będzie służył również do wprowadzenia nowego rekordu. Oto jak mogłyby wyglądać wymienione skrypty:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; początek pliku input.txt
;
; import
\F4
; pełny
P
; tworzyć raport o błędach
R
; błąd "podwójna wartość w indeksie"
t
; w systemie USMARC
M
; numer maski
0
\ENTE
; trzyznakowy separator
LDR
; nazwa zbioru
inrec01.txt
\ENTE
; po skończeniu ładowania
\ESC
\ENTE
\F0
\F0
; koniec pliku
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; początek pliku delete.txt
;
\F6
W
I
; nazwa indeksu
nr \SPAC kontrolny
; potwierdzenie
\ENTE
\ENTE
=
; poszukiwane hasło
124
\F7
\F7
\ENTE
\ESC
\F0
; obsługa listy zaznaczonych dokumentów
; kasowanie
\F8
us
TAK
\F0
\F0
;
; koniec pliku
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

B2. Automatyczna modyfikacja hasła

Na rekordach khw nie powinno się dokonywać żadnych ręcznych manipulacji! MAK tego nie zabroni, ale każda ręczna ingerencja prowadzi do "rozjechania się" z bazą centralną, co będzie skutkować niespójnością z nowo kopiowanymi rekordami bibliograficznymi.

Centrum Formatów i Kartotek Wzorcowych generuje codziennie plik poprawek, które powinny być pobierane i nanoszone na lokalne khw, by zachować spójność danych z bazami centralnymi. Plik generowany jest w postaci tekstowego formatu wymiennego, ściąganego przez FTP.

Jak modyfikować pojedyncze hasło, opisaliśmy skrótowo powyżej. Zadaniem programu MAKPlus, przy automatycznej modyfikacji, będzie wgranie pliku poprawek do bazy.

B2. a. Wygenerowanie pliku z numerami kontrolnymi
Chcąc podmienić rekordy we własnej bazie KHW i nie wprowadzać niepotrzebnie innych, trzeba wyeliminować z pliku poprawek niepotrzebne rekordy. Zrobi to MAKPlus, w oparciu o plik z numerami kontrolnymi. Wygenerowanie tego pliku można zrealizować następującym skryptem:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; początek pliku KHWnum.txt
;
; export
\F4
; standard
S
; numer maski przepuszczającej tylko numer kontrolny (np. 5)
5
\ENTE
; długość wiersza wynikowego (Enter=80)
\ENTE
; separator (Enter bez separatora)
\ENTE
; nazwa zbioru
numery.txt
\ENTE
t
; wybierz sposób wybierania dokumentów
; F7: od numeru do numeru
\F7
1 \ENTE
10000 \ENTE
\ESC
\FC0
\F0
;
; koniec pliku
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

B2. b. Podmiana rekordów
MAKPlus generuje przesiany plik z poprawkami (poprawki.txt) oraz plik z numerami kontrolnymi plików do zmiany (numery2.txt).

MAKPlus musi dopisać pola powiązań do nowych rekordów, a potem wymienić je przy pomocy znanych nam już skryptów. Zadaniem dodatkowego programu będzie też wymiana haseł w powiązanych rekordach bibliograficznych (patrz część C).

B3. Uwaga do kasowania hasła

Kasowanie hasła możemy przeprowadzić "ręcznie", bo i tak nie ma sposobu zablokowania rekordu, ze względu na jego powiązania. Oczywiście kasowanie rekordu, który jest powiązany z jakimiś rekordami bibliograficznymi jest psuciem bazy. Najpierw należy skasować odpowiednie rekordy bibliograficzne, później dopiero rekordy khw. Wtedy integralność danych jest zachowana.

C. Opisy bibliograficzne (BIB)

Opisy bibliograficzne powinny być kopiowane dopiero wtedy, gdy kartoteka haseł wzorcowych jest kompletna. Katalog obsługuje baza BIB.

Struktura bazy składa się z pól zgodnych ze specyfikacją USMARC dla rekordów bibliograficznych

Indeksy w bazie BIB:

  • indeks haseł formalnych;
  • indeks haseł przedmiotowych;
  • indeks numerów kontrolnych.

C1. Wprowadzanie opisu

Wprowadzanie może odbywać się równolegle z normalną pracą systemu. Dla większej klarowności zrezygnujemy z dalszego podawania zawartości skryptów - będą one budowane analogicznie do skryptów obsługujących bazę KHW.

C1. a.
Kopiujemy rekord z sieci i zapamiętujemy go w postaci pliku tekstowego w standardzie wymiennym.

C1. b.
Program MAKPlus dopisuje w polu powiązań bazy KHW numer nowego rekordu bibliograficznego (przy odpowiednich hasłach) i wprowadza go do bazy.

C2. Automatyczna modyfikacja opisu

Czy dla rekordów bibliograficznych w NUKat będą generowane analogiczne pliki poprawek jak dla Centralnej Kartoteki Haseł Wzorcowych (CKHW), jeszcze nie wiadomo. Jeśli tak, aktualizacja przebiegałaby podobnie, jak w przypadku rekordów haseł.

Na pewno będzie potrzebna automatyczna korekta pól zawierających hasła w oparciu o zmiany w bazie KHW. W punkcie B2. b. wspomniano o dopisywaniu powiązań do zmodyfikowanych rekordów khw. Jest to dobry moment do "wyłuskania" odpowiednich rekordów z bazy BIB i zmodyfikowaniu ich, zgodnie z nowymi zapisami w bazie KHW.

C3. Uwaga do kasowania opisu

Kasowanie opisu powinno pociągać za sobą modyfikację pola powiązań odpowiedniego hasła wzorcowego.

D. Zasoby (ZAS)

Opis zasobu (egzemplarza) jest najmniej skomplikowaną częścią naszego systemu, gdyż wszystko wprowadzane jest tutaj ręcznie (niczego nie kopiujemy z zewnątrz i nie ma potrzeby wprowadzania automatycznych poprawek - wystarczy więc "czysty" MAK). Zasoby obsługuje baza ZAS. Struktura bazy składa się z:

  • pól zgodnych ze specyfikacją USMARC dla rekordu zasobu;
  • pola zawierającego numer rekordu bibliograficznego, którego zasób dotyczy.

Indeksy w bazie BIB - indeks numerów kontrolnych opisów bibliograficznych.

E. Baza wynikowa (BAZA)

Poprzednio wymienione bazy będą stanowiły materiał do generowania bazy wynikowej, która będzie scalać wszystkie dane. Jej struktura może być dowolna, gdyż będzie ona automatycznie tworzona z pełnych rekordów MARC i nie nastąpi żadna utrata informacji (przypomnijmy: wszystkie modyfikacje będą wprowadzane w bazach źródłowych).

Proces generowania bazy będzie obsługiwany przez MAKPlus. Podstawą będą rekordy bibliograficzne, rozbudowane o informacje o egzemplarzach. Baza KHW posłuży do generowania odsyłaczy. Nowa wersja MAK-a proponuje bardzo sprawny mechanizm obsługujący odsyłacze w oparciu o podwiązaną bazę relacji.

Baza będzie generowana raz na dobę wraz ze szczegółowym raportem o możliwych niespójnościach, czyli:

  • rekordach bibliograficznych zawierających hasła, które nie występują w khw;
  • rekordach khw bez powiązań z hasłami bibliograficznymi;
  • rekordach zasobu bez powiązań z bibliograficznymi.

Dopiero baza wynikowa będzie właściwym katalogiem, który posłuży również do obsługi wypożyczeń.

F. Wnioski

Rozpowszechnienie szerzej rozwiązań, zawartych w przedstawionej tu koncepcji, wymaga dopracowania ogromnej ilości szczegółów, wykonania szeregu prób i wdrożeń testowych. Jeśli podjąłem próbę pierwszego szkicu technicznego, to po to by wykazać, że jest możliwa implementacja standardów bez potrzeby kupowania kosztownych systemów czy pisania całego oprogramowania od nowa. Stary, poczciwy MAK (chociaż trzeba dodać - wciąż doskonalony przez Jana Wierzbowskiego) może być jeszcze długo użyteczny, jeśli wkomponujemy go odpowiednio w dodatkowe oprogramowanie (nie istniejący jeszcze program MAKPlus). Są oczywiście osoby, które razi znakowy interfejs i które uważają, że bez mechanizmów kontroli w czasie rzeczywistym, pracować się nie da. Prawdą jest, że MAK nie oferuje żadnych mechanizmów kontroli i bardzo łatwo jest doprowadzić do chaosu w zawartości bazy. Tam jednak, gdzie nie wystarczy pieniędzy na kosztowniejsze oprogramowanie - musi wystarczyć to co jest, plus sprawna organizacja. Sądzę, że zdyscyplinowane i systematyczne osoby (a takich jest wśród bibliotekarzy bardzo wiele) mogłyby pracować w opisanym systemie zupełnie dobrze.

MAK i MAKPlus nie jest pomyślany jako system docelowy, ale jako substytut systemu, w którym można rozpocząć automatyzację biblioteki i przejść potem bez problemu do implementacji innego, zintegrowanego systemu (będziemy posiadali komplet danych w profesjonalnym standardzie, łatwym do przeniesienia). Natomiast, jeśli taka instalacja okazałaby się funkcjonalna, nie musimy jej zastępować niczym innym. Mam nadzieję, że pomysły zaprezentowane w tym artykule doczekają się z czasem realizacji. Jest to jednak zależne od bardzo wielu czynników, których nie potrafię w obecnej chwili przewidzieć.

Rozmiar: 45 bajtów
 

G. Dodatek - język skryptowy MAK-a

(Opis według dokumentacji dostarczonej przez Jana Wierzbowskiego).

wersja 4.2 z dnia 2001.08.17
Umożliwiono wykonanie poleceń zapisanych w zbiorze tekstowym, zwanym umownie skryptem; automatyczne wykonanie skryptu (po otwarciu bazy) jest wywoływane opcją WS=nazwa (w bazospisie, patrz niżej); wywołanie skryptu w czasie działania następuje po naciśnięciu Alt+W i podaniu nazwy skryptu. Skrypt jest to zbiór tekstowy, w którym klawisze funkcyjne są wywoływane ich nazwami; zasady budowy skryptu są następujące:

  • wszystkie (oprócz omówionych niżej) spacje i znaki końca wiersza są pomijane,
  • w tekście mogą występować wszystkie znaki ASCII wprowadzane z klawiatury, przy czym średnik i odwrotna kreska ukośna mają specjalne znaczenie (patrz niżej),
  • wszystkie znaki od średnika do końca wiersza są komentarzem;
  • klawisze funkcyjne, a także spacje, i niektóre inne znaki wprowadza się jako ciąg znaków zaczynający się od znaku "\" i kończący się spacją lub nową linią; ciągi te podane są poniżej;
  • wielkość liter w podanych skrótach niw ma znaczenia; znaki po podanym skrócie do spacji lub nowego wiersza (np. \ENTER zamiast \ENTE) są pomijane.

klawisz funkcyjny \Fn (n - nr klawisza, F0 oznacza F10)
Shift + klawisz funkcyjny \FSn (n - nr klawisza, F0 oznacza F10)
Ctrl + klawisz funkcyjny \FCn (n - nr klawisza, F0 oznacza F10)
Alt + klawisz funkcyjny \FAn (n - nr klawisza, F0 oznacza F10)
spacja \SPAC
średnik \;
enter \ENTE
odwr.kreska ukośna \\
Home \HOM
Ctrl + Home \HOMC
End \END
Ctrl + End \ENDC
PgUp \PGU
PgDn \PGD
Ctrl + PgUp \PGUC
Ctrl + PgDn \PGDC
strzałka do góry \STG
strzałka do dołu \STD
strzałka w lewo \STL
strzałka w prawo \STP
Ctrl + strzałka do góry \STGC
Ctrl + strzałka do dołu \STDC
Ctrl + strzałka w lewo \STLC
Ctrl + strzałka w prawo \STPC
Tab (Tabulator) \TBL
Shift + Tab (tab. odwr.) \TAB
Ins \INS
Del \DEL
Esc \ESC
Alt + Esc \ESCA
Backspace \COF

  Na początek
Rozmiar: 45 bajtów


EBIB 8/2001 (26), Wiosna bibliotek publicznych czy stracone złudzenia?
    A.Radwański, Czy MAK może obsłużyć kartotekę haseł wzorcowych?:   www.ebib.pl/2001/26/radwanski2.html