BagIt
BagIt to zestaw hierarchicznych konwencji systemu plików zaprojektowanych do obsługi dyskowego przechowywania i przesyłania sieciowego dowolnych treści cyfrowych. „Torba” składa się z „ładunku użytecznego” (dowolnej zawartości) i „znaczników”, które są metadanych przeznaczonymi do dokumentowania przechowywania i przenoszenia torby. Wymagany plik tagów zawiera wykaz wszystkich plików w ładunku wraz z odpowiadającą im sumą kontrolną . Nazwa BagIt jest inspirowana metodą „załącz i zdeponuj”, czasami nazywaną „zapakuj i oznacz”.
Torby są idealne do przechowywania treści cyfrowych, zwykle przechowywanych jako zbiór plików. Nadają się również do eksportu, do celów archiwalnych, treści zwykle przechowywanych w strukturach baz danych, których strony otrzymujące raczej nie będą wspierać. Opierając się na konwencjach nazewnictwa systemów plików międzyplatformowych ( Windows i Unix ), ładunek torby może zawierać dowolną liczbę katalogów i podkatalogów (folderów i podfolderów). Torba może określać zawartość ładunku pośrednio za pośrednictwem pliku „fetch.txt”, który zawiera listę adresów URL treści, które można pobrać przez sieć, aby skompletować torbę; prosta równoległość (np. uruchomienie 10 instancji Wget ) może wykorzystać tę cechę do bardzo szybkiego przesyłania dużych worków. Zalety toreb to:
- Szerokie zastosowanie w bibliotekach cyfrowych (np. Biblioteka Kongresu ).
- Łatwy do wdrożenia przy użyciu wszechobecnych i zwykłych narzędzi systemu plików.
- Treść, która pochodzi jako pliki, musi zostać skopiowana tylko do katalogu ładunku.
- W porównaniu z zawijaniem XML , treść nie musi być kodowana (np. Base64 ), co oszczędza czas i miejsce do przechowywania.
- Otrzymana zawartość jest gotowa do użycia w znajomym drzewie systemu plików.
- Łatwy do wdrożenia szybki transfer sieciowy poprzez równoległe uruchamianie zwykłych narzędzi do przesyłania.
Specyfikacja
BagIt jest obecnie zdefiniowany w RFC 8493. Definiuje prostą konwencję nazewnictwa plików używaną przez społeczność zajmującą się cyfrowymi kuratorami do pakowania dowolnych treści cyfrowych, tak aby można je było niezawodnie transportować za pomocą obu nośników fizycznych ( dysk twardy , CD-ROM , DVD ) . oraz transfery sieciowe ( FTP , HTTP , rsync itp.). BagIt jest również używany do zarządzania cyfrowym przechowywaniem treści w czasie. Dyskusja na temat specyfikacji i jej przyszłych kierunków odbywa się na liście dyskusyjnej Digital Curation .
Specyfikacja BagIt jest zorganizowana wokół pojęcia „torby”. Torba to nazwany katalog systemu plików , który zawiera co najmniej:
- katalog „danych”, który zawiera ładunek, lub pliki danych, które obejmują zachowywane treści cyfrowe. Pliki można również umieszczać w podkatalogach, ale puste katalogi nie są obsługiwane
- co najmniej jeden plik manifestu, który wyszczególnia nazwy plików znajdujących się w katalogu „data”, a także ich sumy kontrolne. Konkretny algorytm sumy kontrolnej jest zawarty jako część nazwy pliku manifestu. Na przykład plik manifestu z MD5 nosi nazwę „manifest-md5.txt”
- plik „bagit.txt”, który identyfikuje katalog jako torbę, wersję specyfikacji BagIt, z którą jest zgodny, oraz kodowanie znaków używane w plikach znaczników
Po otrzymaniu torby oprogramowanie może sprawdzić plik manifestu, aby upewnić się, że pliki ładunku są obecne i że ich sumy kontrolne są prawidłowe. Pozwala to na identyfikację przypadkowo usuniętych lub uszkodzonych plików. Poniżej znajduje się przykład minimalnej torby „myfirstbag”, która zawiera dwa pliki ładunku. Zawartość plików znaczników jest zawarta pod ich nazwami.
myfirstbag/ |-- dane | \-- 27613-h | \-- obrazy | \-- q172.png | \-- q172.txt |-- manifest-md5.txt | 49afbd86a1ca9f34b677a3f09655eae9 data/27613-h/images/q172.png | 408ad21d50cef31da4df6d9ed81b01a7 data/27613-h/images/q172.txt \-- bagit.txt Bagit-Version: 0.97 Tag-File-Character-Encoding: UTF-8
W tym przykładzie ładunek składa się z pliku obrazu Portable Network Graphics i pliku tekstowego optycznego rozpoznawania znaków . Ogólnie identyfikacja i definicja formatów plików jest poza zakresem specyfikacji BagIt; Atrybuty plików są również poza zakresem.
Specyfikacja dopuszcza kilka opcjonalnych plików tagów (oprócz manifestu). Ich kodowanie znaków musi być określone w pliku „bagit.txt”, który zawsze musi być zakodowany w UTF-8 . Specyfikacja definiuje następujące opcjonalne pliki znaczników:
- plik „bag-info.txt”, który szczegółowo opisuje metadane torby, używając par klucz/wartość oddzielonych dwukropkami (podobnie jak nagłówki HTTP )
- plik manifestu tagów, który zawiera listę plików tagów i powiązanych z nimi sum kontrolnych (np. „tagmanifest-md5.txt”)
- plik „fetch.txt” zawierający listę adresów URL, z których można pobrać pliki ładunku dodatkowo lub w celu zastąpienia plików ładunku w katalogu „data”
Do wersji 15 projekt opisywał również, jak serializować torbę w pliku archiwum , takim jak ZIP lub TAR . Od wersji 15 serializacja nie jest już częścią specyfikacji, ale nie z przyczyn technicznych, ale tylko ze względu na zakres i cel specyfikacji.
Historia
Specyfikacja BagIt powstała w wyniku współpracy między Biblioteką Kongresu i Kalifornijską Biblioteką Cyfrową podczas przesyłania treści cyfrowych utworzonych w ramach Narodowego Programu Ochrony i Infrastruktury Informacji Cyfrowej . Początki pomysłu sięgają prac prowadzonych na Uniwersytecie Tsukuba nad modelem „załącz i zdeponuj”, polegającym na wzajemnym deponowaniu zarchiwizowanych zasobów w celu umożliwienia długoterminowej ochrony cyfrowej . Praktyka używania manifestów i sum kontrolnych jest dość powszechną praktyką, o czym świadczy ich użycie w ZIP (format pliku) , Deb (format pliku) , a także na publicznych stronach FTP.
W 2007 r. Kalifornijska Biblioteka Cyfrowa musiała przenieść kilka terabajtów treści (głównie dane archiwizowane w Internecie ) do Biblioteki Kongresu . Specyfikacja BagIt pozwalała na pakowanie zawartości w „torby” z metadanymi paczki i manifestem zawierającym szczegółowe sumy kontrolne plików, które zostały później zweryfikowane po otrzymaniu toreb. Specyfikacja została napisana jako IETF przez Johna Kunze w grudniu 2008 r., gdzie przeszła kilka poprawek, zanim została opublikowana jako RFC. W 2009 roku Biblioteka Kongresu wyprodukowała film, który opisuje specyfikację i związane z nią przypadki użycia. W 2018 roku, wersja 1.0 została opublikowana jako RFC przez Internet Engineering Task Force.
Zobacz też
Linki zewnętrzne
- RFC 8493 : kanoniczna specyfikacja BagIt
- BagIt na GitHub : najnowsza robocza kopia specyfikacji wraz z plikami źródłowymi do opublikowania w IETF.
- Digital Curation Google Group : toczy się większość dyskusji na temat używania specyfikacji i jej dalszego rozwoju.
- Specyfikacja BagIt z Kalifornijskiej Biblioteki Cyfrowej : Firma CDL odkryła, że posiadanie lokalnej dokumentacji dotyczącej specyfikacji BagIt jest przydatne do celów programistycznych.
- Specyfikacja BagIt z Biblioteki Kongresu : podobnie Biblioteka Kongresu udostępniła migawkę specyfikacji.