Dodatek A. Rozszerzenie importu MARC

Import atrybutów z formatu komunikacyjnego MARC 21 w rozszerzeniu MARC domyślnie opiera się na konfiguracji wbudowanej w rozszerzenie. Zamiast domyślnej konfiguracji można używać innej, zdefiniowanej w zewnętrznych plikach tekstowych. Pliki te mają format prostego zbioru właściwości.

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. W pliku tym można zdefiniować konfigurację MARC - przyporządkować wartości elementów z formatu MARC do atrybutów w systemie dLibra.

Każda linia w pliku konfiguracyjnym zawiera konfigurację importu wartości dla jednego atrybutu. W każdej linii po lewej stronie znaku równości wyspecyfikowana jest nazwa RDF atrybutu do którego zostaną przypisane wartości z elementów MARC znajdujących się po prawej stronie znaku równości. Nazwy RDF atrybutów można znaleźć w aplikacji administratora (panel edycyjny dotyczący atrybutu). Elementy, które można importować z formatu MARC to m. in. wartość podpola, określone znaki z pól kontrolnych itp. 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 (lista po prawej stronie znaku równośći), 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:

  • 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 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.