Dodatek A. Import MARC
Poprzedni |  | Następny

## Dodatek A. Import MARC

Import atrybutów z formatu komunikacyjnego MARC 21 w aplikacji dLibra opiera się domyślnie na konfiguracji wbudowanej w aplikację. Zamiast niej można używać innej konfiguracji, zdefiniowanej w zewnętrznych plikach tekstowych (zobacz ). Pliki te mają format prostego zbioru właściwości. W tym rozdziale zostaną omówione formaty plików konfiguracyjnych, które mogą być użyte w celu zmiany domyślnej konfiguracji aplikacji dLibra.

## A.1. Format pliku `marcImport.properties`

    Title=245:${a} ${b} ${n};130;210;222;240;246;730;740;Creator=100;110;111;
    Subject=
    Description=6XX;
    Publisher=260a;260b;260f;
    Contributor=700;710;711;
    Date=260c;
    Type=
    Identifier=920;856u;
    Source=
    Language=041;546;008/35-37
    Relation=250;534;440;490;800;810;811;830;
    Coverage=
    Rights=506;540;

Powyżej przedstawiona jest zawartość przykładowego pliku konfiguracyjnego `marcImport.properties`.

Każda linia w pliku konfiguracyjnym składa się z atrybutu i jego wartości, oddzielonych znakiem równości. W zależności od tego jakie atrybuty z dokumentu MARC mają zostać zaimportowane, w liniach muszą pojawić się nazwy RDF tych atrybutów. Po znaku równości występuje informacja o tym, jakie pola z formatu MARC mają zostać przepisane do wartości danego atrybutu. Składa się ona z numerów pól MARC zapisanych w ściśle określony sposób, omówiony dalej w tym rozdziale. Kolejne wartości muszą być zapisywane po sobie w tej samej linii bez żadnego znaku oddzielającego je od siebie. Brak którejkolwiek z nazw RDF atrybutów w pliku konfiguracyjnym jest równoznaczny z pozostawieniem przy tym atrybucie pustej listy numerów pól. W tej sytuacji do danego atrybutu nie zostanie zaimportowana żadna wartość.

Podstawowy zapis numerów pól MARC, z których mają zostać zaimportowane wartości atrybutów w aplikacji, ma składnię: `AAAb;`, gdzie `AAA` jest trzycyfrowym numerem pola, a `b` jest identyfikatorem podpola. Możliwy jest również zapis łączący podpola lub pobieranie zakresu znaków z pól kontrolnych (przypadki te opisane są poniżej). Należy zwrócić uwagę, że znak `;` (średnik) jest częścią niezbędną zapisu pola w konfiguracji.

Możliwe jest opuszczenie wartości podpola, jak również użycie identyfikatora wielowartościowego. Szczegóły i przykłady konfiguracji przedstawione są poniżej.przeds

- `100;` - przykład użycia numeru pola.

  Taki zapis spowoduje w przypadku pola specjalnego import wartości tego pola (należy pamiętać, że pola specjalne w formacie MARC, czyli te o wartości mniejszej niż 010, nie posiadają nigdy identyfikatorów podpól) do danego atrybutu, a w przypadku pozostałych pól import wszystkich wartości występujących we wszystkich podpolach tego pola do danego atrybutu. Każda wartość podpola będzie zaimportowana jako oddzielna wartość atrybutu.

- `260c;` - przykład użycia numeru pola oraz identyfikatora podpola.

  Taki zapis spowoduje import do atrybutu tylko wartości konkretnego podpola (w tym przypadku „c” danego pola (w tym przypadku pola „260”.

- `6XX;` - przykład użycia identyfikatora wielowartościowego.

  Taki zapis spowoduje import do atrybutu wszystkich wartości pól i ich podpól z zakresu 600 - 699. W tym przypadku nie można wyspecyfikować konkretnych podpól. Możliwy jest także przykładowo zapis `65X;`, który spowoduje analogiczny import wartości pól z zakresu 650 - 659.

- `245:${a} ${b} ${n};` - przykład łączenia podpól pola MARC w jedną wartość.

  Zapis ten możemy podzielić na dwie części, które oddzielone są od siebie znakiem „:” (dwukropkiem):

  1. `245` - jest to numer pola, którego podpola będą łączone w jedną wartość

  2. `${a} ${b} ${n}` - jest to szablon, który definiuje w jaki sposób łączyć podpola.

  Zapis `${a}` oznacza, że w jego miejsce ma zostać wstawiona wartość podpola „a” z pola o numerze zapisanym przez znakiem „:” - w tym przypadku pola `245`. Zatem zapis ten spowoduje, że podpola a, b oraz n zostaną połączone w jedną wartość i będą oddzielone spacją. Przykładowo jeśli podpole 245a ma wartość „wartość pierwsza”, podpole 245b ma wartość „wartość druga” oraz podpole 245n ma wartość „wartość trzecia” to wynikiem takiego zapisu będzie wartość „wartość pierwsza wartość druga wartość trzecia”. Jeżeli chcielibyśmy aby podpola te oddzielał jakikolwiek inny znak lub ciąg znaków , wystarczy je wpisać (np. `245:${a}-${b} popdole n: ${n};`). Jedynymi wyjątkami są znaki „;” (średnik), ukośnik „\” oraz „$” - aby te znaki zostały poprawnie zinterpretowane należy poprzedzić je takim ciągiem dwóch ukośników „\\” (np. `245:${a} ${b}\\;${n};`).

- `008/35-37` - dotyczy tylko pól kontrolnych - oznacza pobranie zakresu znaków z pola kontrolnego.

  Zapis ten składa się z dwóch części oddzielonych od siebie znakiem „/” (ukośnik):

  1. `008` - jest to numer pola kontrolnego z którego pobrane zostaną wartości

  2. `35-37` - jest to zakres znaków jaki zostanie pobrany z pola o numerze, który występuje przed znakiem „/”.

  Zapis ten oznacza, że znaki 35, 36 oraz 37 z pola 008 będą wartością tego zapisu. Jeśli pole 008 na pozycji 35 ma znak „p”, na pozycji 36 ma znak „o” a na pozycji 37 ma znak „l” to wartością takiego zapisu będzie „pol”. Jeśli chcemy pobrać tylko jeden znak z okeślonej pozycji wystarczy ją wyspecyfikować po znaku „/”, np `008/30`.

Poprzedni | Początek rozdziału | Następny
4.4. Zarządzanie domenami dostępu | Spis treści | A.2. Format pliku marcImpRemChars.properties