ISO 2709 è una specifica per la rappresentazione dell'informazione bibliografica. Costituisce una generalizzazione e una ridefinizione rigorosa del formato adottato dalla specifica MARC per la rappresentazione dell'informazione bibliografica.
ISO 2709 organizza l'informazione bibliografica in record successivi, divisi in campi, a loro volta divisi in sottocampi.
Per limitare al massimo lo spreco di spazio, almeno nelle situazioni più frequenti, l'accesso ai campi è mediato da una struttura ausiliaria denominata directory: scorrendo la directory, un'applicazione informatica può estrarre da un record un campo qualsiasi, o eventualmente solo qualcuno dei suoi sottocampi, in due soli passaggi molto rapidi.
Al tempo stesso, il record è praticamente privo di parti vuote o non significative. Per contro, qualsiasi modifica ai dati tale da alterare la lunghezza di qualche componente, obbliga a ricostruire la directory.
Normalmente, il formato ISO 2709 è usato per la trasmissione, la memorizzazione e la presentazione dell'informazione.
Un record è costituito da tre parti contigue:
Ogni record termina con il carattere RT (Record Terminator, il carattere IS3 della tabella ISO 646.)
Schematicamente, si ha dunque la seguente struttura:
LABEL | DIRECTORY | FT | CAMPO | FT | CAMPO | FT | ... | CAMPO | FT | RT |
I campi contengono solo i dati veri e propri. Le informazioni necessarie a distinguere i campi fra loro e ad accedere a uno qualsiasi di essi sono contenute nella directory. In particolare, nella directory si trovano i nomi dei campi, detti etichette, sempre costituiti da tre caratteri con eventuali zeri iniziali di riempimento.
La struttura dei campi e delle voci della directory non è completamente definita dallo standard: alcune caratteristiche sono determinate dal contenuto della label, e quindi dipendono dalle diverse implementazioni.
Sebbene le tre parti si presentino nel record nell'ordine sopra riportato, per illustrarle più in dettaglio conviene procedere in senso inverso.
Lo standard definisce due tipi di campo: campi dati e campi di controllo (in inglese, rispettivamente data fields e control fields).
Contengono i dati veri e propri, e hanno sempre etichetta di valore superiore a 10. Sono sempre divisi in sottocampi, il primo dei quali può essere preceduto da una serie di indicatori. La struttura si può dunque schematizzare come segue:
IND | SUBF_1 | SUBF_2 | ... | SUBF_N | FT |
Normalmente lo scopo degli indicatori è fornire informazioni sul modo di elaborare i dati nel campo, o un particolare significato da attribuire ad essi in certe circostanze. Sono quindi indicazioni per l'applicazione, e non si possono considerare strettamente come dei dati.
Un indicatore è semplicemente un carattere, per lo più una cifra o uno spazio bianco. Il numero di indicatori è fisso per ogni record, ed è stabilito nella label. Quasi tutte le specifiche basate su ISO 2709 prevedono due indicatori, ma è comunque possibile pensare ad una specifica che non faccia uso degli indicatori, o che non ne usi esattamente due.
I sottocampi di un campo dati sono costituiti da due parti: l'identificatore di sottocampo e i dati veri e propri. L'identificatore è costituito da una sequenza di caratteri la cui lunghezza è fissa per ciascun record ed è indicata nella label. Il primo di questi caratteri è invariabilmente il separatore di sottocampo (US, Unit Separator, il carattere IS1 della tabella ISO 646). Quasi tutte le specifiche basate su ISO 2709 prevedono due caratteri per l'identificatore, per cui i sottocampi, in definitiva, sono identificati da un singolo carattere, dato che il primo è sempre US. È comunque possibile pensare ad una specifica che non faccia uso di identificatore, o che adotti identificatori più lunghi di due soli caratteri. Nel primo caso, però, non ha più senso parlare di sottocampi.
Sono di solito usati per vari tipi di informazioni di controllo. Non sono mai divisi in sottocampi e non sono provvisti di indicatori. Per questi campi sono riservate le etichette da 001 a 009 e da 00A a 00Z. L'unico campo obbligatorio, per qualsiasi specifica conforme allo standard, è il campo 001, che costituisce l'identificatore del record, e deve quindi essere unico all'interno di uno stesso gruppo di record.
La directory è costituita da una serie di voci tutte di uguale lunghezza. Ognuna di esse è divisa a sua volta in quattro parti:
Schematicamente, la struttura di una voce si presenta come sotto:
ETICHETTA | LUNGHEZZA | POSIZIONE | CODICI |
La maggior parte delle specifiche basate su ISO 2709, e in particolare UNIMARC e MARC21, usano rispettivamente quattro, cinque e zero cifre per le tre parti variabili della voce. In particolare, quindi, non definiscono codici applicativi. Considerando i tre caratteri dedicati all'etichetta, in tutte queste specifiche la lunghezza della directory è sempre un multiplo di dodici, escludendo il terminatore di campo.
Come si è visto sopra, alcune caratteristiche del formato sono variabili, e i rispettivi valori sono indicati nella label. Essa però contiene anche alcune altre importanti informazioni, insieme ad alcuni valori fissati dallo standard stesso e che potrebbero essere utilizzati diversamente in future versioni dello standard.
I ventiquattro caratteri che costituiscono la label, numerati a partire da 0, sono così organizzati:
Da quanto visto sopra a proposito della label, si comprende che le differenze fra le singole specifiche basate su ISO 2709 sono concentrate nelle aree 5-11 e 17-22 della label.
Come esempi concreti, possiamo considerare UNIMARC e MARC21, praticamente identici per quanto riguarda l'aderenza allo standard ISO 2709. Entrambi, infatti, usano:
Riportiamo ora un esempio di label UNIMARC e di label MARC21. Per comodità, le label sono precedute da una riga utile a riconoscere le posizioni, e le parti fisse sono evidenziate in neretto:
012345678901234567890123 00830nam0M2200181 I450 00480nam 22001811 450
Altre parti della label non evidenziate hanno un significato troppo strettamente legato al trattamento dell'informazione bibliografica, per cui non sono esaminate in questo contesto.