MARC
Acronimo di MAchine Readable Cataloguing. Specifica per la rappresentazione dell'informazione bibliografica. Confluita nello standard ISO 2709.
Cenni storici
Nei primi anni '60 del XX secolo, negli Stati Uniti e in altri paese anglosassoni si cominciava a registrare su sistemi informativi elettronici l'informazione bibliografica tradizionalmente costituita dalle schede bibliografiche cartacee che costituivano i cataloghi della maggior parte delle biblioteche di allora.
L'idea era quella di poter archiviare e trasmettere le informazioni bibliografiche con i mezzi allora disponibili, cioè nastri e reti telematiche primitive, caratterizzati da costi elevatissimi in rapporto alle prestazioni. La compattezza della rappresentazione dell'informazione era dunque un fattore cruciale, e infatti la specifica MARC originale mirava soprattutto a ridurre quanto possibile lo spreco di spazio, senza rendere però troppo complessa la gestione dell'informazione.
Il fattore spazio portava ad escludere rappresentazioni caratterizzate da campi di lunghezza fissa, anche se diversa a seconda del campo, perché molti dei campi costituenti una scheda bibliografica possono avere lunghezza imprevedibile. Era quindi necessario usare campi di lunghezza variabile.
La soluzione tecnica adottata consisteva nell'assemblare record bibliografici divisi in tre parti: una guida, una directory e una serie di campi raggruppati nella cosidetta area dei dati. Nella terminologia anglosassone originale, tuttora in uso, la guida era chiamata record label o anche leader. La riduzione dello spreco di spazio si otteneva grazie alla directory, divisa a sua volta in entry di uguale lunghezza, una per ogni campo presente nell'area dati: per ciascun campo, la relativa entry indicava la posizione del campo dall'inizio dell'area dati, la sua lunghezza e la sua etichetta (tag in inglese). In questo modo, i campi potevano essere accodati uno dietro l'altro, con notevole risparmio di spazio rispetto ad una struttura con campi a lunghezza fissa, e con la possibilità di rappresentare campi, e record, anche molto lunghi. L'unica informazione in eccesso era rappresentata proprio dalle entry della directory, ma questa perdita era minima e controllabile.
I dati veri e propri, come ad esempio il titolo di una pubblicazione, la sua data di pubblicazione, gli autori con le loro diverse responsabilità, erano contenuti nei campi, a loro volta divisi in sottocampi, salvo alcune eccezioni. Per delimitare i sottocampi, non gestiti dalla directory, era necessario un carattere di controllo. Altri opportuni caratteri erano usati solo a scopo di controllo per delimitare i campi e i record.
La guida del record, oltre ad indicare la lunghezza totale del record, riportava una serie di altre informazioni in una struttura a lunghezza fissa (24 caratteri).
Inizialmente, la specifica non si limitava a definire il formato sopra descritto, ma anche a stabilire la corrispondenza fra le etichette e le componenti di una scheda bibliografica. Le etichette, infatti, erano semplicemente numeri di tre cifre, e quindi la corrispondenza doveva essere esplicitata altrove. In altre parole, MARC definiva sia la sintassi, sia la semantica della rappresentazione.
A lungo andare la confusione fra questi due obiettivi si è rivelata negativa. Si è arrivati così a separare la sintassi dalla semantica, e il formato è stato generalizzato e rigorosamente definito con lo standard ISO 2709, mentre numerose diverse semantiche, grosso modo su base nazionale, sono state definite a partire dal formato neutrale. Ad esempio, negli Stati Uniti è stato adottato USMARC, poi confluito, insieme a CANMARC, nella specifica MARC21. In Europa sono nati FINMARC, DENMARC e molti altri. In realtà, tutte queste sono legate al formato ISO 2709 solo perché esso definisce comunque concetti, come campo e sottocampo, ormai molto diffusi e familiari. Oggi, per contro, è frequente rappresentare record anche con sintassi XML, come avviene ad esempio con la specifica XMLMARC per la rappresentazione di record MARC21.
Un tentativo di mettere ordine in questa selva di specifiche più o meno incompatibili fra loro è stato avviato molti anni fa dall'IFLA, con la definizione della specifica UNIMARC. Si tratta di una semantica condizionata ancora da ISO 2709, ma definita con l'obiettivo di essere universale, cioè adatta alle esigenze dei diversi paesi. È anche molto più rigorosa di quelle nate nei diversi paesi, perché sviluppata a tavolino da commissioni di studiosi di tutto il mondo, soggetta a revisioni periodiche e a continue evoluzioni.
Nel mondo anglosassone è frequente l'arbitraria confusione fra MARC e ISO 2709. Occorre ribadire che MARC si deve considerare un caso particolare di ISO 2709. Inoltre, gli anglosassoni tendono a confondere la semantica MARC con il formato. Invariabilmente o quasi, i software per la manipolazione di record in formato MARC sviluppati nel mondo anglosassone presuppongono che le etichette siano quelle di MARC21, e quindi, nonostante MARC21 condivida il formato con UNIMARC e molti altri, questi software tipicamente non sono in grado di elaborare record UNIMARC, ad esempio.
Struttura di un record MARC
Come già accennato sopra, MARC si può considerare come un caso particolare di ISO 2709, per cui si rimanda a quest'ultima voce per le generalità sulla struttura dei record MARC.
Struttura della guida
La guida riserva cinque caratteri per la lunghezza del record (compreso il terminatore di record). Le altre posizioni della guida sono usate come segue:
|| 6 || tipo di record (?)|| || 7 || livello bibliografico (?)|| || etc || etc ||
Struttura della directory entry
La guida di un record MARC stabilisce in sostanza che ogni entry della directory sia costituita da dodici caratteri: tre per l'etichetta, cinque per la posizione, quattro per la lunghezza del relativo campo. La directory è terminata dal terminatore di campo. Si tratta di una precauzione, in quanto la guida indica anche dove comincia l'area dati, e quindi dove finisce la directory. Nel corso di una trasmissione, di una registrazione o di una lettura, eventuali errori possono essere individuati facilmente controllando che questo terminatore sia proprio dove indicato dalla guida, eventualmente riparando l'errore stesso.
Struttura dell'area dati e dei campi
L'area dati, come già detto, è divisa in campi. La separazione di un campo dall'altro può essere fatta leggendo la sola directory, ma per rimediare ad eventuali errori di trasmissione o di input/output, i campi sono anche separati dal terminatore di campo (FT).
Diverso è il ruolo del separatore dei sottocampi (US', da Unit Separator): è l'unico modo per distinguere un sottocampo all'interno di un campo. I sottocampi possono solo essere scanditi in sequenza, appunto perché la directory non contiene alcuna informazione a loro riguardo.
Altre differenze significative fra MARC e ISO 2709
Oltre al fatto ovvio che MARC definisce come costanti alcuni parametri che ISO 2709 tratta come variabili, ci sono alcune altre differenze importanti.
MARC assegna un significato all'ordine con cui si presentano i sottocampi in certi campi particolari. ISO 2709 invece ignora completamente quest'ordine, anche se non vieta che implementazioni specifiche lo ritengano significativo.
MARC ...