Konfiguracja repozytoriów danych

Źródła danych

Serwer SOWAI-PMH potrafi w ramach jednej instalacji obsługiwać dowolną liczbę repozytoriów. W odniesieniu do systemu SOWA - każdy katalog (np. katalog księgozbioru, bibliografia regionalna, kartoteka zagadnieniowa) to osobne repozytorium.

Każdy rekord udostępniany przez OAI-PMH musi posiadać unikalny (w skali Internetu) identyfikator. Konstrukcja identyfikatora jest ustandaryzowana i w przypadku serwera SOWAI-PMH przyjęty został następujący wzorzec identyfikatora rekordu:

Identyfikator rekordu OAI-PMH
oai:nazwa_domenowa:nazwa_zbioru/identyfikator_rekordu_sowa

Elementami identyfikatora OAI są:

  • nazwa_domenowa - najlepiej, jesli jest to główna nazwa domenowa instytucji, bez prefiksów typu www, czy oai (np. dla Wojewódzkiej Biblioteki Publicznej w Krakowie będzie to rajska.info). Jeśli biblioteka nie posiada własnej nazwy domenowej, firma SOKRATES-software udostępnia unikalne nazwy domenowe w ramach subdomeny sowwwa.pl.
  • nazwa_zbioru - nazwa identyfikująca zbiór danych. Musi to być pojedyncze słowo, pisane małymi literami bez znaków diakrytycznych. Może zawierać cyfry. Dobrze, jeśli nazwa ta odnosi się do zawartości katalogu. Np. katalog księgozbioru dla dorosłych może zostać nazwany "dorosli", katalog bibliografii regionalnej - "bibliografia", katalog zbiorów audiowizualnych - "audio", etc. WAŻNE: raz nadana nazwa po pierwszym udostępnieniu usługi w sieci, nie może być zmieniana. W przeciwnym przypadku Dostawcy Usług nie mogliby prawidłowo aktualizować swoich repozytoriów.
    identyfikator_rekordu_sowa - to wewnętrzny identyfikator rekordu w danym katalog systemu SOWA. Z uwagi na to, że przez protokół OAI-PMH udostępniane są wyłącznie rekordy bibliograficzne - będzie to rekord typu U<numer>, np. U35123

Przykłady:

  • oai:bibliotekaelblaska.pl:centralny/U10392
  • oai:muzeum.krakow.pl:muzeum/U50312

Konfiguracja dostępnych repozytoriów

Pod pojęciem repozytorium należy rozumieć konkretny zbiór danych dostępny w wybranej domenie. Znaczy to, że identyfikatorem repozytorium jest <nazwa_domenowa>:<nazwa_zbioru>. Np. bibliotekaelblaska.pl:centralny - będzie nazwą repozytorium.

Do zarządzania repozytoriami należy używać polecenia:

Przykład konfiguracji repozytorium
sowaipmh-config <nazwa_domenowa>:<nazwa_zbioru>

Polecenie to przeprowadza interaktywną konfigurację podanego repozytorium.

Listę skonfigurowanych repozytoriów uzyskuje się dzięki opcji -l

Wyświetlenie listy dostępnych repozytoriów
sowaipmh-config -l

 

Plik konfiguracyjny repozytoriów

Konfiguracja poszczególnych repozytoriów powinna być umieszczona w pliku .sowang/etc/sowaipmh/sowaipmh.cfg. Każda sekcja [REPOSITORY<no>] definiuje pojedyncze repozytorium.

Struktura sekcji jest następująca:

OpcjaOpisPrzykład
datasetNazwa zbioru danych (zob. wcześniej)centralny
domainNazwa domenowa (zob. wcześniej)muzeum.krakow.pl
hostnameOpcja ta pozwala na ograniczenie dostępności repozytorium tylko do połączeń wykonywanych na określoną nazwę domenową serwera. Jeśli wartością opcji jest *, wówczas akceptowane będą wszystkie połączenia, w przeciwnym razie zostanie sprawdzona zgodność nazwy użytek przez łączącego się klienta. Opcja ta akceptuje kilka nazw domenowych - należy je wymienić wówczas po przecinkach.oai.muzeum.krakow.pl
provider

Nazwa i parametry sterownika do dostawcy danych w postaci <nazwa>::<opcja1>=<wartość1>,<opcja2>=<wartość2>,...

(Obecnie dostępni dostawcy to: SowaSQL i SowaTCP)

zob. dalej
repository_nameNazwa opisowa repozytorium. Jest ona zwracana dla polecenia Identify protokołu OAI-PMH.Katalog Muzeum Narodowego w Krakowie
admin_emailAdres e-mail do administratora serwisu OAIoai-admin@muzeum.krakow.pl
Przykład konfiguracji zbiorów danych
[REPOSITORY1]
dataset=muzeum
domain=muzeum.krakow.pl
hostname=oai.muzeum.krakow.pl
provider=SowaSQL::ip=127.0.0.1,port=5432,db_user=username,db_pass=secret,db_name=mydb
repository_name=Katalog Muzeium Narodowego w Krakowie
admin_email=oai-admin@muzeum.krakow.pl

Dla takiej konfiguracji poprawne wywołanie polecenia Identify w protokole OAI-PMH będzie miało następującą postać:

http://oai.muzeum.krakow.pl/muzeum?verb=Identify

Dostawca danych - SowaTCP

Jest to uniwersalny dostawca danych z systemu Sowa (przy czym dla systemu SowaSQL jest dedykowany, wydajniejszy sterownik). Korzysta z protokołu SOWA-TCP do pozyskiwania danych z serwera aplikacji. Docelowy serwer aplikacji powinien posiadać zainstalowaną licencję na moduł SOWAI-PMH i ta sama licencja powinna być wgrana w części konfiguracji sterownika.

NazwaOpis
ipAdres IP (albo domenowy) serwera aplikacji systemu SOWA2
portNumer portu serwera aplikacji systemu SOWA2 (np. 8000)
licencePlik licencji zakodowany w BASE64

Dla tego dostawcy należy doinstalować do środowiska wirtualnego moduł pysowa:

Instalacja modułu pysowa
easy_install pysowa-0.5.0-py2.7.egg

Dostawca danych - SowaSQL

Jest to dostawca danych dla systemu SowaSQL operujący bezpośrednio na bazie danych PostgreSQL. Należy dla opcji provider przekazać następujące parametry (wszystkie są obowiązkowe!)

NazwaOpis
ipAdres IP (albo domenowy) serwera bazy danych PostgreSQL
portNumer portu - zazwyczaj serwer bazy danych PostgreSQL działa na porcie 5432.
db_userNazwa użytkownika bazodanowego
db_passHasło logowania się do bazy danych użytkownika db_user
db_nameNazwa bazy danych

Jest to dostawca korzystający z modułu psycopg2, który należy zainstalować przed utworzeniem środowiska wirtualnego.

Instalacja modułu w systemie Ubuntu Linux
sudo apt-get install python-psycopg2

W przypadku niektórych systemów moduł ten nie jest automatycznie widoczny w środowisku wirtualnym w tzw. site-packages. Dlatego w kolejnym kroku należy utworzyć dowiązania symboliczne do odpowiednich bibliotek.

Dowiązania symboliczne są tworzone przez sowizora
sowizor install psycopg2

Inicjacja źródła danych

Niektóre sterowniki źródeł danych mogą wymagać początkowej inicjalizacji. Dostępne obecnie sterowniki wymagają takiej inicjacji, dlatego konieczne jest wykonanie następującej procedury po skonfigurowaniu repozytorium.

Aby zainicjować źródło danych należy z poziomu konsoli wykonać polecenie:

Inicjacja źródła danych o nazwie "centralny"
sowaipmh-init-dataset centralny

Jeśli jest skonfigurowanych więcej repozytoriów o różnych domenach, ale z tą samą nazwą źródła danych, wówczas nazwę źródła danych trzeba poprzedzić nazwą domeny i dwukropkiem. Np,:

Inicjacja źródła danych repozytorium
sowaipmh-init-dataset bibliotekaelblaska.pl:centralny