# MARC

MARC (acronimo di MAchine Readable Cataloguing, "Catalogazione leggibile da una macchina") è un formato per la rappresentazione dell'informazione bibliografica sviluppato dalla Biblioteca del Congresso degli Stati Uniti nel 1966 per il trattamento e la diffusione dei dati bibliografici. Oggi è confluita nello standard ISO 2709.
La maternità del MARC è da attribuire nello specifico a Henriette Avram.

## Storia

Nei primi anni '60 del XX secolo, negli Stati Uniti e in altri paesi 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.
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, e fu individuato a questo scopo il formato descritto più avanti.
Il formato obbligava a individuare parti dell'informazione bibliografica attraverso etichette o tag costituite semplicemente da tre cifre. Per assicurare che, nelle fasi di registrazione e successiva lettura dell'informazione, non si confondesse, ad esempio, il titolo di una pubblicazione con il nome di un editore, fu necessario stabilire una corrispondenza fra etichette e campi della scheda bibliografica. Ad esempio, fu stabilito che l'etichetta 100 corrispondesse all'autore principale e la 240 al titolo proprio.
Il formato consentiva di suddividere i campi in unità più piccole, dette sottocampi, individuate da una singola lettera o cifra. Così, ad esempio, l'autore principale era rappresentato propriamente dal sottocampo a del campo 100 o, come spesso si scrive tuttora, dal campo 100$a o semplicemente 100a.
In sostanza, la specifica MARC definiva sia la sintassi, sia la semantica della rappresentazione dell'informazione bibliografica.
A lungo andare la confusione fra questi due obiettivi ha avuto effetti negativi. Si è arrivati così a separare la sintassi dalla semantica, e il formato è stato generalizzato e rigorosamente definito nello 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, UKMARC e molti altri.
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 e delle diverse comunità di utenti e professionisti. È anche molto più rigorosa di quelle nate in precedenza, 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, MARC21 e ISO 2709. In particolare, gli anglosassoni tendono a confondere la semantica MARC con il formato. La conseguenza più evidente di questo è il fatto che, 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.
Nel corso degli anni sono state create versioni specializzate di MARC, e in particolare per:
* record d'autorità (authority record), che descrivono autori, siano essi persone, società, convegni etc...
* record bibliografici, che descrivono pubblicazioni
* record di localizzazione (holding record), che descrivono il posseduto delle pubblicazioni
Recentemente, la diffusione di XML come formato per la rappresentazione dell'informazione ha portato a definire una rappresentazione dell'informazione bibliografica semanticamente equivalente a MARC21, nota come MARCXML, ma che adotta XML come sintassi. Si è molto discusso dell'opportunità di questa operazione, ma i vantaggi sono esclusivamente pratici: risulta molto più semplice manipolare file XML che non record nel formato ISO 2709, e soprattutto gli strumenti per farlo sono del tutto generali e molto diffusi.

## 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 (?) |

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