04.08.2013 Views

Parametri obbligatori - Modelo da BVS

Parametri obbligatori - Modelo da BVS

Parametri obbligatori - Modelo da BVS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

BIREME / PAHO / WHO<br />

Latin American and Caribbean Center on Health Sciences Information<br />

Programmi d'utilità CISIS - Manuale di riferimento<br />

Versione 5.2<br />

São Paulo - 2005-2007


Copyright © 2005-2007 - BIREME / PAHO / WHO<br />

Programmi d'utilità CISIS - Manuale di riferimento<br />

È garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i<br />

termini della Licenza per Documentazione Libera GNU, Versione 1.2 o ogni versione successiva<br />

pubblicata <strong>da</strong>lla Free Software Foun<strong>da</strong>tion; con le Sezioni Non Modificabili ELENCARNE I TITOLI,<br />

con i Testi Copertina ELENCO, e con i Testi di Retro Copertina ELENCO. Una copia della licenza<br />

è acclusa nella sezione intitolata "GNU Free Documentation License".<br />

Sche<strong>da</strong> catalografica<br />

Avvertenza – Che determinate compagnie e/o istituzioni o prodotti vengano menzionati nel<br />

testo non implica che essi siano sostenuti o raccoman<strong>da</strong>ti <strong>da</strong> BIREME / PAHO / WHO, e non<br />

significa nemmeno che vi sia preferenza loro accor<strong>da</strong>ta in rapporto ad altri conismili, citati o<br />

meno.<br />

BIREME / PAHO / WHO<br />

Latin American and Caribbean Center on Health Sciences Information<br />

Rua Botucatu 862 V Clementino<br />

BIREME / PAHO / WHO (Brasile)<br />

Programmi d'utilità CISIS - Manuale di riferimento. /<br />

BIREME (org.). São Paulo : BIREME / PAHO / WHO, 2005-<br />

2007.<br />

214 p.<br />

1. Manuali per l'utente. 2. Basi di <strong>da</strong>ti. 3. Sistemi<br />

informativi. 4. Software CDS/ISIS. I. BIREME II. Titolo<br />

Questo documento è stato prodotto con la Metodologia per la Normalizzazione di Documenti (NorDoc)<br />

sviluppata <strong>da</strong>lla BIREME


Indice generale<br />

Abbreviazioni .................................................................................................. X<br />

Come usare il manuale...................................................................................... XII<br />

Prefazione .......................................................................................................1<br />

A proposito di BIREME .......................................................................................1<br />

La Biblioteca virtuale della salute (Biblioteca Virtual en Salud -<strong>BVS</strong>)...............................2<br />

Presentazione...................................................................................................5<br />

CISIS - Interfaccia ............................................................................................5<br />

CISIS – Programma di utilità ................................................................................6<br />

Installazione dei programmi d’utilità CISIS ..............................................................9<br />

Eseguire i programmi d’utilità ........................................................................... 10<br />

Convenzioni sintattiche ................................................................................... 12<br />

Programma di utilità MX .................................................................................... 14<br />

Presentazione............................................................................................... 14<br />

Introduzione ............................................................................................. 14<br />

Descrizione generale ................................................................................... 15<br />

Sintassi....................................................................................................... 19<br />

<strong>Parametri</strong>. Descrizione generale ..................................................................... 21<br />

<strong>Parametri</strong> di inizializzazione (setup)................................................................ 21<br />

<strong>Parametri</strong> che indicano la sorgente dei <strong>da</strong>ti in ingresso ......................................... 21<br />

<strong>Parametri</strong> per il trattamento dei <strong>da</strong>ti .............................................................. 21<br />

<strong>Parametri</strong> per selezionare dei record............................................................. 22<br />

<strong>Parametri</strong> per l’esecuzione di elaborazioni...................................................... 22<br />

<strong>Parametri</strong> di uscita (output) dei <strong>da</strong>ti ............................................................. 22<br />

<strong>Parametri</strong> generali ................................................................................... 23<br />

<strong>Parametri</strong> che indicano qual è l’origine dei <strong>da</strong>ti in ingresso ........................................ 23<br />

Base <strong>da</strong>ti di entrata (input) ........................................................................... 23<br />

File ISO-2709 di entrata (input) ...................................................................... 24<br />

Linee a lunghezza fissa.............................................................................. 26<br />

Lettura di file MARC ................................................................................. 26<br />

Dati del Leader del record MARC .................................................................. 26


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

File di testo ASCII in entrata (input) ................................................................ 26<br />

Base di <strong>da</strong>ti fittizia ..................................................................................... 30<br />

File di parametri........................................................................................ 31<br />

Inverted file come <strong>da</strong>ti in entrata (input).......................................................... 33<br />

<strong>Parametri</strong> che svolgono elaborazioni sui <strong>da</strong>ti in entrata (input) ................................... 36<br />

<strong>Parametri</strong> che applicano formati ai <strong>da</strong>ti in entrata (input) ..................................... 36<br />

Formulazione del formato di visualizzazione a partire della riga di<br />

comando ............................................................................................... 36<br />

Formulazione del formato di visualizzazione a partire <strong>da</strong> un file............................ 37<br />

Formati condizionali ................................................................................. 37<br />

Ampiezza della linea (line width) ................................................................. 38<br />

Estrarre <strong>da</strong>ti <strong>da</strong>l contenuto di una variabile CGI................................................ 38<br />

Produrre un file temporaneo vuoto ............................................................... 39<br />

<strong>Parametri</strong> che estraggono l’insieme di record <strong>da</strong> trattare ...................................... 39<br />

Formulazione dell’espressione di ricerca nella linea di comando............................ 39<br />

Caricare l’espressione di ricerca a partire <strong>da</strong> un file .......................................... 41<br />

Utilizzazione degli esiti intermedi di una ricerca............................................... 42<br />

Eliminazione del resoconto statistico di una ricerca ........................................... 44<br />

Ricerca in più di un inverted file.................................................................. 45<br />

Ricerche a testo libero .............................................................................. 46<br />

Parametro text/show................................................................................ 47<br />

Altre mo<strong>da</strong>lità per selezionare l’insieme dei record <strong>da</strong> trattare............................... 48<br />

Selezione per intervallo............................................................................. 48<br />

Selezionare ogni n record........................................................................... 49<br />

Selezionare n record................................................................................. 50<br />

<strong>Parametri</strong> che modificano i record .................................................................. 51<br />

Funzione ‘A' (aggiunta di un campo) att#str# ................................................... 55<br />

Funzione R,.............................................................................. 57<br />

Funzione ................................. 58<br />

Funzione X[{create|copy|append|merge}=] .............................................. 58<br />

Funzione G[,] ................................................................ 59<br />

Funzione<br />

Gsplit[/clean]=[={|words|letters|numbers|trigram}] .......................... 60<br />

Funzione Gsplit==6words[/if=] ......................................................... 60<br />

Funzione Gload[/][/nonl][=].......................................................... 61<br />

Funzione Gdump[/][/nonl][/xml][=] ................................................ 61<br />

Modifica globale di modelli ........................................................................... 61<br />

Descrizione ............................................................................................ 64<br />

Tabella di conversione mediante codici ASCII o esadecimali ................................. 65<br />

Statistica della conversione tramite gizmo ...................................................... 67<br />

Opzione [decod=] .............................................................................. 68<br />

Unire basi di <strong>da</strong>ti - JOIN................................................................................... 69<br />

Descrizione............................................................................................... 70<br />

Elenco per la selezione e la rinumerazione dei campi ................................... 74<br />

Contenuto dei campi di controllo (32001, 32002, etc.) .......................................... 75<br />

Join per numero di record............................................................................. 77<br />

Parametro [jmax=] ................................................................................. 78<br />

Confrontare basi <strong>da</strong>ti e inverted file................................................................ 78<br />

Contenuto dei campi di controllo (32001, 32002, etc.)........................................ 81<br />

Vantaggi del jchk rispetto al join.................................................................. 82<br />

Tabella per la conversione dei caratteri............................................................ 82<br />

IV


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

Tabella per la definizione dei caratteri alfanumerici ............................................ 82<br />

Tabella per la conversione in maiuscolo dei caratteri alfabetici............................... 83<br />

Tabella di selezione dei campi - generazione di chiavi - FST ................................... 83<br />

Riferimento ad una tabella di selezione dei campi esterna................................... 84<br />

File di parole non significative (stopwords) ..................................................... 85<br />

Tecniche de indicizzazione 1-8 / 1000 - 1008 ................................................... 87<br />

Generazione dei link file ........................................................................... 89<br />

Link file a lunghezza fissa .......................................................................... 89<br />

Output ....................................................................................................... 90<br />

Esecuzione di un programma esterno ............................................................... 90<br />

Opzione /show........................................................................................ 91<br />

<strong>Parametri</strong> che creano/modificano basi <strong>da</strong>ti........................................................ 92<br />

Creazione di un master file ........................................................................ 92<br />

Copiare record su un master file .................................................................. 93<br />

Aggiungere record a una base <strong>da</strong>ti ................................................................ 94<br />

Fondere/Intercalare record ........................................................................ 94<br />

Aggiornamento di campi ............................................................................ 95<br />

Generare un file ISO 2709 .......................................................................... 97<br />

Generare un file ASCII con separatori ............................................................ 98<br />

Recuperare i <strong>da</strong>ti del Leader del record ......................................................... 99<br />

Caricare <strong>da</strong>ti prodotti <strong>da</strong> una FST ..................................................................100<br />

Funzione fullinv ..................................................................................... 100<br />

Analisi tabellare delle frequenze ................................................................... 101<br />

<strong>Parametri</strong> di inizializzazione / variabili d’ambiente (setup)....................................... 102<br />

File di parametri CISIS ................................................................................ 102<br />

Dimensione massima di un record................................................................... 103<br />

Dimensione massima dell’esito di un formato formato .........................................103<br />

<strong>Parametri</strong> generali ........................................................................................ 103<br />

<strong>Parametri</strong> che controllano l’output a schermo ................................................... 103<br />

Parametro +.......................................................................................... 104<br />

Parametro - .......................................................................................... 104<br />

<strong>Parametri</strong> per ambienti multiutente ............................................................... 105<br />

Opzioni di mo<strong>da</strong>lità d’azione...................................................................... 105<br />

Altri parametri ......................................................................................... 107<br />

Delimitatori .......................................................................................... 107<br />

Indicatori (prompt) predefiniti ................................................................... 107<br />

Parametro trace..................................................................................... 108<br />

Parametro mfrl ...................................................................................... 108<br />

MX: codice di fine esecuzione........................................................................... 109<br />

Programmi d’utilità del master file .................................................................... 110<br />

MXF0 - Programma ........................................................................................ 110<br />

MXF0 - Presentazione..................................................................................... 111<br />

MXF0 - Sintassi............................................................................................. 112<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 112<br />

Nome del master file in entrata (input)......................................................... 112<br />

Nome del master file di uscita.................................................................... 112<br />

Creare master file di uscita (output) ............................................................ 113<br />

Numero di record approssimativo ................................................................ 113<br />

<strong>Parametri</strong> facoltativi.................................................................................. 113<br />

Eliminazione di spazi (blanks)..................................................................... 113<br />

Informazioni relative all’esecuzione della procedura......................................... 114<br />

V


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

MXF0 – Uscita (output) ................................................................................... 114<br />

MXTB - Programma........................................................................................ 115<br />

MXTB - Presentazione .................................................................................... 116<br />

MXTB - Sintassi............................................................................................. 118<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 118<br />

Nome del master file in entrata (input)......................................................... 118<br />

Nome del master file di uscita (output)......................................................... 119<br />

Creare un master file di uscita (output) ........................................................ 119<br />

Chiave................................................................................................. 119<br />

Lunghezza massima della chiave ................................................................. 119<br />

Formato che specifica la chiave .................................................................. 120<br />

<strong>Parametri</strong> facoltativi.................................................................................. 120<br />

Trattare il risultato di una ricerca ............................................................... 120<br />

Tabulazione del risultato del formato ........................................................... 120<br />

Numero di categorie ................................................................................ 121<br />

MXTB – Uscita (output) ................................................................................... 121<br />

MXCP - Presentazione .................................................................................... 122<br />

MXCP - Sintassi............................................................................................. 125<br />

Nome del master file in entrata (input)......................................................... 125<br />

Nome del master file di uscita (output)......................................................... 126<br />

Crear master file di uscita (output).............................................................. 126<br />

<strong>Parametri</strong> facoltativi [option] ....................................................................... 126<br />

Recuperare record cancellati ..................................................................... 127<br />

Cambiamento globale di modelli ................................................................. 127<br />

Convertire campi in ripetibili ..................................................................... 128<br />

Eliminazione degli spazi (blanks) ................................................................. 128<br />

Eliminazione di campi in base al TAG............................................................ 129<br />

Registrare i messaggi di sistema.................................................................. 129<br />

MXCP – Uscita (output) ................................................................................... 129<br />

MSRT - Programma ........................................................................................ 130<br />

MSRT - Presentazione..................................................................................... 130<br />

MSRT - Sintassi............................................................................................. 131<br />

<strong>Parametri</strong> <strong>obbligatori</strong>: ................................................................................ 131<br />

Nome del master file in entrata (input)......................................................... 131<br />

Lunghezza massima della chiave ................................................................. 131<br />

Generazione della chiave .......................................................................... 132<br />

<strong>Parametri</strong> facoltativi.................................................................................. 132<br />

Mantenere gli MFNs originali ...................................................................... 132<br />

Eliminare le chiavi identiche ...................................................................... 132<br />

MSRT – Uscita (output) ................................................................................... 133<br />

RETAG - Programma ...................................................................................... 133<br />

RETAG - Presentazione ................................................................................... 133<br />

RETAG - Sintassi ........................................................................................... 134<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 134<br />

Master file in entrata (input) ..................................................................... 134<br />

Tavola di rinumerazione ........................................................................... 135<br />

<strong>Parametri</strong> facoltativi.................................................................................. 135<br />

RETAG – Uscita (output).................................................................................. 135<br />

CTLMFN - Programma..................................................................................... 136<br />

CTLMFN - Presentazione ................................................................................. 136<br />

CTLMFN - Sintassi ......................................................................................... 137<br />

VI


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

Nome del master file di entrata (input) ........................................................... 137<br />

Prompt di conferma ................................................................................... 137<br />

CTLMFN – Uscita (output) ................................................................................ 137<br />

MKXRF - Programma ...................................................................................... 138<br />

MKXRF - Presentazione ................................................................................... 138<br />

MKXRF - Sintassi ........................................................................................... 139<br />

Master file di entrata (input)........................................................................ 139<br />

MKXRF – Uscita (output) .............................................................................. 139<br />

Ripristinare una base <strong>da</strong>ti <strong>da</strong>nneggiata.......................................................... 140<br />

Calcolo per approssimazione del MaxMFN....................................................... 140<br />

ID2I - Programma.......................................................................................... 141<br />

ID2I - Presentazione ...................................................................................... 141<br />

Struttura del file ASCII:............................................................................... 141<br />

ID2I - Sintassi............................................................................................... 142<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 142<br />

File ASCII in entrata (input) ....................................................................... 142<br />

Nome del master file di uscita (output)......................................................... 142<br />

Creare master file di uscita (output) ............................................................ 143<br />

<strong>Parametri</strong> facoltativi.................................................................................. 143<br />

I2ID - Programma.......................................................................................... 143<br />

I2ID - Presentazione ...................................................................................... 143<br />

I2ID - Sintassi............................................................................................... 144<br />

<strong>Parametri</strong> <strong>obbligatori</strong>: ................................................................................ 144<br />

Master file di entrata (input) ..................................................................... 145<br />

<strong>Parametri</strong> facoltativi.................................................................................. 145<br />

CRUNCHMF - Sintassi...................................................................................... 145<br />

Programmi d’utilità dell’inverted file ................................................................. 146<br />

IFKEYS - Programma ...................................................................................... 146<br />

IFKEYS - Presentazione ................................................................................... 146<br />

IFKEYS - Sintassi ........................................................................................... 147<br />

Inverted file in entrata (input)...................................................................... 147<br />

<strong>Parametri</strong> facoltativi.................................................................................. 148<br />

Primo termine a venire elencato .................................................................148<br />

Ultimo termine a venire elencato ................................................................ 148<br />

Mostra il <strong>da</strong>to relativo all’etichetta (tag = ID della FST) ..................................... 148<br />

IFKEYS – Uscita (output).................................................................................. 148<br />

IFLOAD - Programma...................................................................................... 149<br />

IFLOAD - Presentazione .................................................................................. 149<br />

IFLOAD - Sintassi .......................................................................................... 152<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 152<br />

Inverted file in entrata (input) ................................................................... 152<br />

Link file delle chiavi corte ........................................................................ 152<br />

Link file delle chiavi lunghe....................................................................... 153<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 153<br />

Reinizializzare il segnale di “aggiornamento in sospeso” ....................................153<br />

Aggiornamento in sospeso ......................................................................... 153<br />

Non riequilibrare dizionario ....................................................................... 153<br />

Non caricare i postings ............................................................................. 154<br />

Informazioni circa l’esecuzione della procedura............................................... 154<br />

Link file a lunghezza fissa ......................................................................... 154<br />

Caricare file a lunghezza fissa .................................................................... 154<br />

VII


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

Carica link file con formato ridotto.............................................................. 154<br />

IFLOAD – Uscita (output) ................................................................................. 155<br />

IFUPD - Programma ....................................................................................... 155<br />

IFUPD - Presentazione .................................................................................... 156<br />

IFUPD - Sintassi ............................................................................................ 156<br />

<strong>Parametri</strong> <strong>obbligatori</strong> ................................................................................. 157<br />

Inverted file <strong>da</strong> aggiornare ........................................................................ 157<br />

Tavola di selezione dei campi .......................................................................157<br />

FST per default ...................................................................................... 157<br />

Caricare una FST <strong>da</strong> un file esterno.............................................................. 158<br />

Specifica della FST nella linea di comando .....................................................158<br />

File delle parole non significative .................................................................. 158<br />

File STW di default.................................................................................. 158<br />

Carica la lista STW leggendolo <strong>da</strong> file esterno .................................................158<br />

Mantenere il contrassegno di aggiornamento in sospeso........................................ 158<br />

Non caricare i postings................................................................................159<br />

Master file alternativo................................................................................ 159<br />

IFUPD – Uscita (output)................................................................................... 159<br />

MYS - Sintassi .............................................................................................. 159<br />

MYS – Uscita ................................................................................................ 160<br />

IFMERGE - Sintaxis ........................................................................................ 160<br />

IFMERGE – Uscita (output) ............................................................................... 160<br />

MKIY0 - Sintassi ............................................................................................ 160<br />

MKIY0 – Uscita (output) .................................................................................. 161<br />

CRUNCHIF - Sintassi....................................................................................... 161<br />

CRUNCHIF - Uscita ........................................................................................ 161<br />

Riferimenti bibliografici .................................................................................. 162<br />

Glossario ..................................................................................................... 163<br />

Appendice I - <strong>Parametri</strong> di uso generale .............................................................. 166<br />

Relativi all’uscita (output) stan<strong>da</strong>rd: .................................................................. 166<br />

Disabilitare il prompt fra record.................................................................... 166<br />

Segnalare ogni n record............................................................................... 167<br />

Disabilitare l’invio di <strong>da</strong>ti a schermo............................................................... 167<br />

Reindirizzare l’uscita (output) stan<strong>da</strong>rd........................................................... 168<br />

Relativi alla selezione di record: ....................................................................... 169<br />

Iniziare <strong>da</strong>l record n................................................................................... 169<br />

Terminare col record n ............................................................................... 169<br />

Trattare un record ogni n ............................................................................ 169<br />

Selezionare n record .................................................................................. 169<br />

Relativi ai record in uscita (output):................................................................... 170<br />

Addiziona n al numero di record (MFN) ............................................................ 170<br />

Cambiamento globale di modelli .......................................................................171<br />

Appendice II - File CIPAR ................................................................................. 174<br />

<strong>Parametri</strong> che possono venire inclusi nel CIPAR ..................................................... 177<br />

<strong>Parametri</strong> solo per MX ................................................................................ 177<br />

<strong>Parametri</strong> per MX e applicazioni programmate per ambiente multiutente...................... 180<br />

Parametro maxmfrl ....................................................................................... 181<br />

Parametro mstxl nel CIPAR .............................................................................. 181<br />

Come superare il limite di 512 MB per il master file:...........................................181<br />

Parametro dbxtrace=y.................................................................................... 182<br />

Parametro mstload=.................................................................................. 183<br />

VIII


Programmi d'utilità CISIS - Manuale di riferimento Indice generale<br />

Parametro invload=................................................................................... 183<br />

Parametro mclose={y|n} ................................................................................. 183<br />

Parametro iflush={y|n}................................................................................... 183<br />

Parametro mflush={y|n} ................................................................................. 184<br />

Parametro what={y|n} ................................................................................... 184<br />

Appendice III - Struttura del record di una base ISIS............................................... 191<br />

Il record di CONTROL ..................................................................................... 192<br />

Il record di XREF........................................................................................... 193<br />

Il record del file MST ..................................................................................... 193<br />

Struttura del LEADER.................................................................................. 194<br />

Struttura della DIRECTORY........................................................................... 194<br />

Appendice IV - Lista dei file TAB disponibili.......................................................... 195<br />

ASCII CODE PAGE 437 (CP437)........................................................................... 195<br />

ASCII CODE PAGE 850 (CP850)........................................................................... 195<br />

ANSI (Windows) ............................................................................................ 196<br />

GIZMO disponibili per la conversione del contenuto di basi <strong>da</strong>ti ..................................196<br />

Conversione di insiemi di caratteri ................................................................. 196<br />

ASCII CODE PAGE 437 (CP437)........................................................................ 196<br />

ASCII CODE PAGE 850 (CP850)........................................................................ 197<br />

ANSI (Windows)......................................................................................... 197<br />

Conversione supplementare dei caratteri di marcatura ............................................ 197<br />

Conversione supplementare <strong>da</strong> e verso elementi HTML ............................................ 197<br />

Come riconoscere l’insieme di caratteri che è presente in una base CDS/ISIS ................. 198<br />

OSSERVAZIONI.............................................................................................. 198<br />

Appendice V - MX.PFT: Lista dei parametri che estrae <strong>da</strong>ll’ambiente CGI..................... 199<br />

IX


ANSI. American National Stan<strong>da</strong>rds Institute [Istituto nazionale<br />

americano di normalizzazione].<br />

Abbreviazioni<br />

ASCII. American Stan<strong>da</strong>rd Code for Information Interchange [Codice<br />

americano normalizzato per lo scambio dell’informazione].<br />

BIREME. Centro Latinoamericano y del Caribe de Informazione en<br />

Ciencias de la Salud [centro latinoamericano e caraibico per le<br />

scienze della salute].<br />

<strong>BVS</strong>. Biblioteca Virtual en Salud [Biblioteca virtuale della salute].<br />

CDS. Computerized Documentation System [Sistema di<br />

documentazione informatizzata].<br />

CP. Code Page [Pagina di codifica caratteri].<br />

FST. Field Selection Table [Tabella di selezione dei campi].<br />

FTP. File Transfer Protocol [Protocollo per il trasferimento di files].<br />

IFP. Inverted File Pointer [Puntatore dell’indice trasposto].<br />

X


Programmi di utilità CISIS: manuale di riferimento Abbreviazioni<br />

ISIS. Integrated Set of Information Systems [Insieme integrato di<br />

sistemi informativi].<br />

ISO. International Organization for Stan<strong>da</strong>rdization [Organizzazione<br />

internazionale per la normalizzazione].<br />

LILACS. Literatura Latinoamericana y del Caribe en Ciencias de la<br />

Salud [Letteratura latinoamericana e caraibica in scienze della<br />

salute].<br />

OMS. Organización Mundial de la Salud [Organizzazione mondiale<br />

della sanità].<br />

OPS. Organización Panamericana de la Salud [Organizzazione<br />

panamericana della sanità].<br />

UNESCO. United Nations Educational, Scientific and Cultural<br />

Organization [Organizzazione delle Nazioni Unite per l’educazione<br />

la scienza e la cultura].<br />

XI


Questo manuale è stato concepito come testo di riferimento per l’uso dei<br />

programmi di utilità CISIS, il contenuto sostanziale è trattato in quattro capitoli:<br />

Come usare il<br />

manuale<br />

1. Presentazione: descrizione di CISIS, interfaccia, installazione, esecuzione e<br />

convenzioni utilizzate ;<br />

2. Programma di utilità MX: contiene la descrizione completa di tutti i parametri<br />

e delle funzioni disponibili;<br />

3. Programma di utilità del master file: descrive la sintassi e l’uso dei programmi<br />

di utilità per il master file.<br />

4. Programma di utilità dell’inverted file: descrive la sintassi e l’uso dei<br />

programmi di utilità per l’inverted file.<br />

Vi sono poi quattro appendici che contengono informazioni supplementari<br />

trasversali ai vari capitoli nonché informazioni relative alla struttura interna di<br />

CDS/ISIS [talora indicato anche come MicroIsis].<br />

Un Glossario e una lista delle Abbreviazioni completano il documento.<br />

XII


A proposito di BIREME<br />

Anno dopo anno, BIREME assolve la sua funzione di centro specializzato<br />

nell’informazione scientifica e tecnica per la salute nell’area dell’America latina e<br />

dei Caraibi. Fon<strong>da</strong>ta in Brasile nel 1967, col nome di Biblioteca Regionale di<br />

Medicina (Biblioteca Regional de Medicina: <strong>da</strong> cui la sigla BIREME), sin <strong>da</strong>ll’inizio<br />

prestò attenzione alla crescente doman<strong>da</strong> di letteratura scientifica corrente<br />

proveniente <strong>da</strong>i sistemi sanitari nazionali e <strong>da</strong>lle comunità di ricercatori,<br />

professionisti e studenti. In seguito, nel 1982, prese il nome di Centro<br />

Latinoamericano e dei Caraibi per l’informazione in scienze della salute (Centro<br />

Latinoamericano y del Caribe de Informazione en Ciencias de la Salud), allo scopo<br />

di esprimere meglio le proprie funzioni, orientate all’irrobustimento e<br />

all’ampliamento del flusso dell’informazione scientifica e tecnica relativa alla<br />

salute in tutta l’area, tuttavia mantenne la stessa sigla.<br />

L’attività in rete, fon<strong>da</strong>ta sul decentramento, volta a sviluppare le capacità locali,<br />

condividere le risorse informative, sviluppare prodotti e servizi cooperativi,<br />

elaborare metodologie comuni, fu sempre la base del lavoro cooperativo di<br />

BIREME. In tale maniera il centro si consoli<strong>da</strong> come un modello internazionale<br />

che promuove le capacità dei professionisti dell’informazione a livello gestionale e<br />

Prefazione<br />

1


Programmi di utilità CISIS: manuale di riferimento Prefazione<br />

tecnico, affinché essi adottino protocolli di informazione e di comunicazione che<br />

meglio servano le esigenze locali.<br />

I principi fon<strong>da</strong>mentali che sono alla base e sostengono l’esistenza di BIREME<br />

sono:<br />

• l’ accesso all’informazione sanitaria scientifica e tecnica è essenziale per lo<br />

sviluppo della sanità;<br />

• la necessità di sviluppare le capacità dei paesi dell’America latina e dei Caraibi<br />

a sfruttare le fonti di informazione sanitaria scientifica e tecnica in maniera<br />

coperativa ed efficiente;<br />

• la necessità di promuovere l’uso e di rispondere alla richiesta di informazione<br />

sanitaria scientifica e tecnica <strong>da</strong> parte dei governi, dei sistemi sanitari, delle<br />

istituzioni educative e di ricerca.<br />

BIREME, in qualità di centro specializzato della Organizzazione panamericana<br />

della sanità (Organización Panamericana de la Salud - OPAS)/Organizzazione<br />

mondiale della sanità (OMS), coordina e realizza attività di cooperazione tecnica in<br />

gestione dell’informazione e della conoscenza scientifiche, coll’intento di rafforzare<br />

ed ampliare la circolazione dell’informazione sanitaria scientifica e tecnica in<br />

Brasile e negli altri paesi dell’America latina e dei Caraibi, come condizione<br />

essenziale per lo sviluppo della sanità, includendovi programmazione, gestione,<br />

promozione, ricerca, educazione e servizio.<br />

L’accordo che è alla base di BIREME viene rinnovato ogni cinque anni <strong>da</strong>i membri<br />

del Comité Asesor Nacional de la institución (OPAS, Ministerio de la Salud de<br />

Brasil, Ministerio de Educación y Cultura de Brasil, Secretaría de Salud del Estado<br />

de São Paulo y Universi<strong>da</strong>d Federal de São Paulo – Unifesp). Quest’ultima mette a<br />

disposizione l’infrastruttura fisica necessaria al funzionamento dell’istituzione.<br />

Nel 2004 l’istituzione prese la decisione di mutarsi in un’entità fon<strong>da</strong>ta sulla<br />

conoscenza.<br />

La Biblioteca virtuale della salute (Biblioteca<br />

Virtual en Salud -<strong>BVS</strong>)<br />

Con la nascita e il consoli<strong>da</strong>mento di Internet come mezzo prevalente di<br />

informazione e di comunicazione, il modello de cooperazione tecnica di BIREME<br />

2


Programmi di utilità CISIS: manuale di riferimento Prefazione<br />

prese ad evolvere <strong>da</strong>l 1998 verso la costruzione e lo sviluppo della Biblioteca<br />

virtuale della salute (Biblioteca Virtual en Salud <strong>BVS</strong>) quale spazio comune di<br />

confluenza del lavoro cooperativo dei produttori, degli intermediari e degli utenti<br />

di informazione. La <strong>BVS</strong> promuove lo sviluppo di una rete di fonti di informazione<br />

scientifica e tecnica con accesso universale in Internet. Per la prima volta si apre la<br />

possibilità di un accesso equo all’informazione sanitaria.<br />

BIREME cura la Biblioteca Virtual come modello per la gestione dell’informazione<br />

e della conoscenza, il che implica la cooperazione e la convergenza di istituzioni,<br />

sistemi, reti e iniziative di produttori, intermediari ed utenti per la messa in opera<br />

di reti di fonti di informazione locali, nazionali, regionali e internazionali,<br />

privilegiando in tal maniera l’accesso aperto ed universale.<br />

Attualmente, tutti i paesi dell’America latina e della regione dei Caraibi<br />

partecipano direttamente o indirettamente nella fornitura dei prodotti e dei servizi<br />

cooperativi promossi <strong>da</strong>lla <strong>BVS</strong>, il che significa oltre mille istituzioni in oltre 30<br />

paesi.<br />

La <strong>BVS</strong> si situa in uno spazio virtuale di Internet formato <strong>da</strong>lla raccolta o rete di<br />

fonti di informazione sanitaria di tutta l’area. Utenti di livelli e provenienza diversi<br />

possono interagire e navigare nello spazio di una o più fonti d’informazione, a<br />

prescindere <strong>da</strong>ll’ubicazione fisica. Le fonti informative vengono generate,<br />

aggiornate, conservate e trattate in Internet <strong>da</strong> produttori, integratori e<br />

intermediari, in regime di decentramento, impiegando metodologie condivise per<br />

la loro integrazione nella <strong>BVS</strong>.<br />

La <strong>BVS</strong> organizza l’informazione in una struttura che integra e interconnette basi<br />

di <strong>da</strong>ti referenziali, elenchi di specialisti, eventi ed enti, catalogo di risorse<br />

informative disponibili in Internet, collezioni di testi integrali con particolare<br />

risalto per la raccolta SciELO (Scientific Electronic Online) di riviste scientifiche,<br />

servizi di disseminazione selettiva dell’informazione, fonti di informazione di<br />

supporto all’educazione ed alle attività decisionali, notizie, liste di discussione e<br />

sostegno alle comunità virtuali. Conseguentemente, lo spazio della <strong>BVS</strong> costituisce<br />

una rete dinamica e decentrata di fonti informative a partire <strong>da</strong>lla quale si possono<br />

recuperare ed estrarre informazione e conoscenza per sostenere i processi<br />

decisionali nell’ambito della salute.<br />

3


Programmi di utilità CISIS: manuale di riferimento Prefazione<br />

La <strong>BVS</strong> Biblioteca Virtual en Salud è vista come la base <strong>da</strong>ti distribuita della<br />

conoscenza scientifica e tecnica in materia di salute memorizzata, organizzata<br />

conservata in formato elettronico nei paesi dell’area, accessibile universalmente<br />

inInternet in maniera compatibile con le altre basi <strong>da</strong>ti internazionali.<br />

4


CISIS - Interfaccia<br />

MicroISIS (CDS/ISIS for Mini-microcomputers) è un software sviluppato<br />

Presentazione<br />

<strong>da</strong>ll’UNESCO per basi di <strong>da</strong>ti eminentemente testuali. MicroISIS gestisce campi<br />

(unità di <strong>da</strong>ti) a lunghezza variabile. Un campo può mancare in uno o più record,<br />

può contenere una sola occorrenza dei <strong>da</strong>ti, o due o più sottocampi a lunghezza<br />

variabile. Del pari un campo può essere ripetibile ossia il record ne contiene più di<br />

un’occorrenza.<br />

L’interfaccia CISIS è una biblioteca (library) di funzioni, scritta in linguaggio di<br />

programmazione C, concepita per consentire lo sviluppo di applicazioni per basi<br />

<strong>da</strong>ti MicroISIS (senza dover attivare il software MicroISIS). Le applicazioni CISIS<br />

sono pienamente compatibili con MicroISIS, ivi incluse le applicazioni<br />

multiutente.<br />

Esistono ormai varie implementazioni attuate sopra la struttura originale di<br />

CDS/ISIS, al punto che è oggi più appropriato definire tutte queste varianti come<br />

la “famiglia Isis”. E’ importante mettere in evidenza che i <strong>da</strong>ti creati per mezzo di<br />

una qualsiasi delle varianti che compongono questa “famiglia” sono compatibili e<br />

interscambiabili fra di esse.<br />

5


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Le applicazioni sviluppate con l’interfaccia CISIS possono manipolare varie basi di<br />

<strong>da</strong>ti contemporaneamente; il master file e l’inverted file vengono elaborati<br />

indipendentemente l’uno <strong>da</strong>ll’altro. Né è indispensabile disporre della FDT tabella<br />

di definizione dei campi della base <strong>da</strong>ti per fare funzionare le applicazioni CISIS.<br />

L’interfaccia CISIS e i programmi di utilità CISIS sono stati concepiti e<br />

implementati presso il Centro de Informazione en Ciencias de la Salud para<br />

América Latina y el Caribe - BIREME, Organización Panamericana de la Salud -<br />

OPS, e al momento sono disponibili per le piattaforme:<br />

• PC IBM1 32 bits<br />

• UNIX su processori Intel (LINUX, SCO, etc.)<br />

• UNIX su altri processori (HP-UX, Sun, IBM-AIX, CDC/S4320, etc.)<br />

• VAX sotto VMS<br />

• HP3000/950 sotto MPE/XL<br />

CISIS – Programma di utilità<br />

I programmi di utilità CISIS (CISIS Interface Utility Programs) costituiscono un<br />

insieme di programmi sviluppati in linguaggio C che “chiamano” le funzioni offerte<br />

<strong>da</strong>ll’interfaccia CISIS al fine di realizzare varie funzioni su basi <strong>da</strong>ti della famiglia<br />

Isis, come ad esempio recuperare e visualizzare record, effettuare la manutenzione<br />

di basi <strong>da</strong>ti, etc. Parimenti si possono svolgere funzioni particolari che permettano<br />

l’ordinamento di un master file, generare tabelle a partire <strong>da</strong> quello stesso,<br />

cambiare i TAG (le etichette) dei campi, etc.<br />

Questo insieme di programmi di utilità è disponibile in quattro versioni: 10/30 e<br />

16/60, LIND, FFI. Le differenze sostanziali risiedono nella lunghezza delle chiavi<br />

dell’inverted file e nella dimensione massima del record misurata in byte che le<br />

diverse versioni consentono, così come illustrato nella tabella che segue.<br />

1 Per MS-DOS a 16 bit occorrerà usare le applicazioni CISIS fino alla versione 3.4<br />

6


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

10/30 16/60 LIND FFI<br />

Chiavi dell’inverted file 30 60 60 60<br />

Dimensione massima del<br />

record<br />

32.767 32.767 32.767 1.048.576<br />

Nota: La versione 10/30 è l’unica compatibile con CDS/ISIS Unesco<br />

Per ulteriori dettagli relativi alla struttura del master e dell’ inverted file<br />

cfr.l’Appendice III: Struttura del record di una base ISIS.<br />

Le caratteristiche particolari di questi programmi vengono evidenziate <strong>da</strong>lla<br />

dichiarazione di versione che si suscita col comando what<br />

Per esempio:<br />

mx what<br />

CISIS Interface v5.2a/PC32/M/32767/10/30/I - Utility MX<br />

CISIS Interface<br />

v5.2a/.iy0/Z/4GB/GIZ/DEC/ISI/UTL/INVX/B7/FAT/CIP/CGI/MX<br />

Copyright (c)BIREME/PAHO 2006.<br />

[http://www.bireme.br/products/cisis]<br />

Acronimo Spiegazione<br />

V5.2a numero di versione<br />

PC32 Compilatore usato (in questo caso Windows PC)<br />

L Versione Lind se presente<br />

M Versione anche multiutente<br />

32767 Dimensione massima del record in byte, approssimato per difetto<br />

10/30 Lunghezza delle voci dell’inverted file<br />

I Consente l’aggiornamento dell’I/F<br />

Utility MX Nome del programma<br />

.iy0 Un solo file fisico per l’I/F (costruito con mkiy0)<br />

Z I/F compresso (construito con myz – non più attivo)<br />

4GB Dimensione massima del master file<br />

GIZ Gizmo<br />

DEC Decod<br />

ISI Importazione Iso-2709<br />

UTL Modulo Ciutl<br />

INVX Ricerca multipla su I/F<br />

B7 Versione del meccanismo interno di ricerca<br />

FAT Fatal() - [errore]<br />

CIP Cipar()<br />

GCI Consente il funzionamento in ambiente CGI<br />

MX Cisis_mx()<br />

7


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Programma di utilità MX<br />

MX Il programma MX è un strumento di impiego generale per lavorare su<br />

basi di <strong>da</strong>ti MicroISIS. Può effettuare la maggior parte delle funzioni<br />

dell’interfaccia CISIS, inclusi l’importazione/esportazione di file ISO-<br />

2709, ricerche, cambiamenti globali di modelli, legame fra record del<br />

master file in base al numero di record o a voce dell’inverted file,<br />

inserimento nei campi di <strong>da</strong>ti generati <strong>da</strong>lla Tabella di selezione dei<br />

campi (FST), e operazioni di aggiunta/soppressione di campi.<br />

Programmi di utilità per il master file<br />

MXF0 Analizza tutti i record di un master file, fornendo informazioni circa i<br />

campi presenti ed i caratteri in essi usati.<br />

MXTB Il programma MXTB permette di fare calcoli sul contenuto dei campi,<br />

ad esempio il numero di volte che ricorre un autore, un descrittore, o la<br />

presenza congiunta di un autore e di un titolo di periodico, etc.<br />

Il risultato dell’esecuzione di MXTB è un master file che contiene un<br />

record per ogni diversa frase trovata (categoria). Questi record<br />

contengono campi per memorizzare la categoria e la sua frequenza.<br />

MXCP Copia i record a partire <strong>da</strong> un master file di partenza ad un master file<br />

di uscita, ammettendo che il <strong>da</strong>to di partenza venga modificato per<br />

cambiamento globale di modello e/o soppressione di spazi (blanks) in<br />

inizio o fine, caratteri non stampabili e segni di punteggiatura in fine.<br />

Trasforma pure in ripetibili campi che contengono uno specifico<br />

delimitatore di occorrenze e può scartare campi in entrata in base ai<br />

valori dei loro TAG (etichette).<br />

Altra caratteristica del MXCP è il recupero (undelete) di record del<br />

master file logicamente cancellati.<br />

MSRT Ordina i record di un master file in sequenza ascendente sulla base<br />

delle chiavi generate <strong>da</strong>ll’applicazione ai record di un formato.<br />

RETAG Questo programma comprende due funzioni:<br />

Cambiare i TAG (etichette) dei campi di un master file, sulla base di<br />

una tabella di rinumerazione.<br />

Sbloccare (unlock) un master file.<br />

CTLMFN Visualizza e fa aggiornare il record di controllo del master file.<br />

Va usato quando un master file viene reinizializzato per errore.<br />

MKXRF Programma per il recupero del master file, che legge un file .mst e crea<br />

il corrispondente file .xrf.<br />

Può venire usato per recuperare tutti i record attivi di un master file<br />

logicamente reinizializzato.<br />

I2ID Legge un master file e genera un file ASCII, che può venire editato e<br />

modificato.<br />

L’idea è di servirsene insieme al programma ID2I che svolge il compito<br />

inverso: legge un file ASCII e converte i <strong>da</strong>ti letti in record di un master<br />

8


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Programmi di utilità per il master file<br />

file.<br />

ID2I Legge un file ASCII prodotto <strong>da</strong> I2ID (o uno avente la medesima<br />

struttura di un file prodotto <strong>da</strong> questo) e converte i <strong>da</strong>ti letti in record<br />

del master file.<br />

CRUNCHMF Converte il master file <strong>da</strong> un sistema operativo ad un altro, per<br />

esempio <strong>da</strong> Windows a Linux.<br />

Programmi di utilità per l’inverted file<br />

IFKEYS Mostra i termini dell’inverted file e la quantità di postings di ciascuno<br />

di essi.<br />

Facoltativamente i termini possono venire disaggregati in base<br />

all’etichetta a partire <strong>da</strong>lla quale sono stati estratti.<br />

IFLOAD Carica un inverted file a partire <strong>da</strong>i link file, secondo certe opzioni di<br />

trattamento. Accetta altri formati oltre a quello dei link file stan<strong>da</strong>rd di<br />

MicroISIS.<br />

MYS Effettua l’ordinamento (sort) dei link file per creare l’inverted file.<br />

IFMERGE Riunisce più inverted file di diversi master file in un solo inverted file,<br />

grazie ad un procedimento che recupera i record <strong>da</strong>i master file di<br />

partenza.<br />

MKIY0 Combina i sei file che compongono l’inverted file in un solo file fisico.<br />

CRUNCHIF Converte l’inverted file <strong>da</strong> un sistema operativo ad un altro, per<br />

esempio <strong>da</strong> Windows a Linux.<br />

Installazione dei programmi d’utilità CISIS<br />

Tutta l’installazione dei programmi d’utilità CISIS consiste nel creare una cartella<br />

(directory), in genere \CISIS\SYS\, e copiarvi i programmi.<br />

Per comodità si può inserire il percorso \CISIS\SYS nel PATH del sistema<br />

operativo in modo <strong>da</strong> potere lanciare in esecuzione i programmi là dove ci si trova<br />

senza essere legati a posizionarsi in \CISIS\SYS.<br />

Esempi del manuale<br />

9


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

La maggior parte degli esempi del manuale sono basati sulla base <strong>da</strong>ti CDS<br />

[distribuita <strong>da</strong>ll’Unesco insieme a CDS/ISIS e a Winisis], e che si suppone venga<br />

posizionata nella cartella:<br />

\CISIS\BASES\<br />

Si lavorerà su questa base <strong>da</strong>ti modificandola varie volte, per cui è consigliato<br />

effettuarne previamente una copia di salvataggio.<br />

Eseguire i programmi d’utilità<br />

I programmi d’utilità CISIS si man<strong>da</strong>no in esecuzione come comandi, <strong>da</strong>l prompt<br />

del sistema operativo, o a partire <strong>da</strong> file .bat (file contenenti sequenze di<br />

operazioni eseguite in batch) del MS-DOS o scripts (shell scripts) di UNIX.<br />

Qualsiasi programma di utilità CISIS può venire eseguito scrivendo il suo nome<br />

seguito <strong>da</strong> uno o più parametri, assumendo che il nome del percorso della cartella<br />

\cisis\sys (directory dove sono ubicati i programmi di utilità CISIS) sia incluso fra<br />

quelli indicati nel PATH. Se nel lanciare un programma non si indicano parametri<br />

ogni strumento d’utilità CISIS visualizza a schermo una breve spiegazione della<br />

propria mo<strong>da</strong>lità d’uso. Per esempio, scrivendo solo il nome MXCP <strong>da</strong>l prompt di<br />

DOS, compare:<br />

CISIS Interface v5.2a/PC32/M/32767/10/30/I - Utility MXCP<br />

Copyright (c)BIREME/PAHO 2006.<br />

[http://www.bireme.br/products/cisis]<br />

mxcp {in=|} [create=] [ [...]]<br />

options: {from|to|loop|count|tell|offset}=<br />

gizmo=[,tag_list>]<br />

undelete<br />

clean [mintag=1] [maxtag=9999]<br />

period=.[,]<br />

repeat=%[,]<br />

log=<br />

10


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Ex: mxcp in create=out clean period=.,3 repeat=;,7<br />

in = 3 « Field 3 occ 1. »<br />

3 «Field 3 occ 2 . »<br />

7 « Field 7/1;Field 7/2 ;Field 7/3.»<br />

out = 3 «Field 3 occ 1»<br />

3 «Field 3 occ 2»<br />

7 «Field 7/1»<br />

7 «Field 7/2»<br />

7 «Field 7/3.»<br />

I parametri dell’invio in esecuzione vanno forniti come una lista separata <strong>da</strong> spazi<br />

(blanks) e conseguentemente ogni singolo parametro va racchiuso fra virgolette<br />

doppie quando a sua volte contiene spazi od un qualsiasi carattere d’uso speciale<br />

per il sistema operativo (come segni di maggiore minore, barra verticale, etc.).<br />

L’esempio seguente mostra l’esecuzione del programma MX con tre parametri<br />

(nome della base <strong>da</strong>ti, espressione di ricerca e specifiche del formato di<br />

visualizzazione):<br />

mx \cisis\bases\cds "plants*water" "pft=mfn/,'Ti: 'v24/,(|Au:<br />

|v70/)"<br />

Per potere usare le virgolette doppie all’interno di un parametro di esecuzione<br />

occorre fale precedere <strong>da</strong> una barra retroversa:<br />

mx \cisis\bases\cds "plants*water" "pft=mfn/, \" Ti: \"v24/,(|Au:<br />

|v70/)"<br />

!<br />

I segni di: dollaro, apostrofo, asterisco, punto<br />

interrogativo, punto fermo, virgola, ed altri<br />

caratteri che hanno valenza specifica per i sistemi<br />

operativi della famiglia UNIX, devono parimenti<br />

venire racchiusi fra virgolette.<br />

11


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Convenzioni sintattiche<br />

Vengono applicate le seguenti convenzioni per descrivere la sintassi propria dei<br />

programmi d’utilità CISIS:<br />

parametro <strong>obbligatori</strong>o<br />

[] parametro facoltativo<br />

{|} Scelta esclusiva fra o <br />

[...] che può venire ripetuta<br />

!<br />

Ad esempio, MXCP dispone di questa sintassi generale:<br />

mxcp [create=] [ [...]]<br />

options:<br />

{from|to|loop|count|tell|offset}=<br />

gizmo=[,]<br />

undelete<br />

clean [mintag=1] [maxtag=9999]<br />

period=.[,]<br />

repeat=%[,]<br />

log=<br />

Alcuni parametri sono parole riservate che,<br />

quando usate, devono venire scritte come<br />

prescritto, facendo caso a maiuscole e minuscole.<br />

Dove traspare che due parametri sono <strong>obbligatori</strong>: (a) nome della base <strong>da</strong>ti in<br />

entrata e (b) nome della base <strong>da</strong>ti in uscita.<br />

Pertanto il comando:<br />

mxcp \cisis\bases\cds newcds<br />

12


Programmi di utilità CISIS: manuale di riferimento Presentazione<br />

Copia il master file cds alloggiato nella cartella \cisis\bases nel master file newcds<br />

situato nella directory corrente. Il master file newcds dovrà già esistere, altrimenti<br />

l’esempio in questione produrrà un errore.<br />

Se newcds non esiste già lo si può creare mediante il parametro opzionale create<br />

come mostrato nell’esempio che segue:<br />

mxcp \cisis\bases\cds create=newcds<br />

Le opzioni di elaborazione possono venire indicate usando i parametri facoltativi.<br />

Per indicare, ad esempio, gli estremi dei record <strong>da</strong> trattare si usa from e to<br />

mxcp \cisis\bases\cds create=newcds from=10 to=20<br />

13


Presentazione<br />

Introduzione<br />

Programma di utilità MX<br />

MX è un programma di uso generale per basi <strong>da</strong>ti CDS/ISIS che svolge la maggior<br />

parte delle funzioni dell’interfaccia CISIS. Al pari degli altri programmi d’utilità<br />

CISIS, MX viene man<strong>da</strong>to in esecuzione a muovere <strong>da</strong>lla linea di comando del<br />

sistema operativo, indicando le operazioni <strong>da</strong> svolgere mediante parametri.<br />

MX può, ad esempio, venire usato per recuperare e visualizzare un insieme di<br />

record di una base <strong>da</strong>ti, in ragione di un’espressione di ricerca e di un formato di<br />

visualizzazione, come nella seguente linea di comandi:<br />

mx \cisis\bases\cds "plants * water" "pft=mfn,x1,v24/"<br />

Così pure, MX permette di effettuare ricerche a testo libero ogniqualvolta manchi<br />

un inverted file.<br />

MX può anche leggere files ISO-2709 o file in mero testo ASCII, che usano segni<br />

delimitatori come separatori di campo. In questi casi i record in ingresso vengono<br />

convertiti in record di master file via via che vengono letti.<br />

14


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

I record in entrata possono venire sottoposti alle seguenti manipolazioni:<br />

1. Cambiamento globale di modelli.<br />

2. Unione di record, grazie al numero di record o alla chiave interna all’inverted<br />

file.<br />

3. Unire campi e <strong>da</strong>ti generati <strong>da</strong> una FST Tabella di selezione dei campi.<br />

4. Aggiunta/soppressione di record, specificate tramite un linguaggio di<br />

formattazione.<br />

I record trattati con il MX possono venire inviati ad un master file, ad un file ISO-<br />

2709 o all’uscita stan<strong>da</strong>rd (che può venire reindirizzata verso un file o una<br />

stampante). Le linee prodotte <strong>da</strong> un formato possono venire inviate al sistema<br />

operativo.<br />

L’esecuzione del MX può fare scaturire una chiamata rivolta al sistema operativo<br />

affinché esso esegua un determinato programma.<br />

L’esito dell’applicazione di una Tabella di selezione dei campi (FST) ad un master<br />

file può venire inviato ai link file o essere integrato in un inverted file.<br />

Il file di uscita può essere lo stesso di quello di ingresso.<br />

MX può operare anche in ambiente multiutente.<br />

Descrizione generale<br />

Per man<strong>da</strong>re in esecuzione il MX è necessario indicargli dove si trovano i <strong>da</strong>ti su<br />

cui deve operare. Possono provenire <strong>da</strong> un master file, <strong>da</strong> un file ISO-2709 o <strong>da</strong> un<br />

file di testo. E’ questo l’unico parametro <strong>obbligatori</strong>o del programma.<br />

La sequenza<br />

mx \cisis\bases\cds<br />

invia sullo schermo la lista dei record della base cds, situata nella cartella<br />

\cisis\bases. I record elencati vengono visualizzati senza formattazione.<br />

Possono venire specificate altre opzioni tramite i relativi parametri, ad esempio:<br />

mx \cisis\bases\cds from=10 to=20<br />

15


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

il che mostra a schermo i record della base <strong>da</strong>ti cds <strong>da</strong>l 10 al 20. La base si trova<br />

nella directory \cisis\bases e i record vengono visualizzati senza formattazione.<br />

La stringa di comando:<br />

mx \cisis\bases\cds from=10 to=20 "pft=mfn,x1,v24(0,7)/"<br />

visualizza sullo schermo i record <strong>da</strong> 10 a 20 della base <strong>da</strong>ti cds, applicando loro il<br />

formato specificato col parametro pft=mfn,x1,v24(0,7)/. La base <strong>da</strong>ti si trova nella<br />

directory \cisis\bases.<br />

E’ importante considerare che l’ordine in cui i parametri opzionali vengono<br />

indicati non influisce sull’esecuzione del MX. L’esecuzione di questi parametri<br />

avverrà nell’ordine secondo cui sono elencati nella dichiarazione formale della<br />

sintassi del comando.<br />

Così la stringa di cui sopra potrebbe venire scritta come:<br />

mx \cisis\bases\cds to=20 "pft=mfn,x1,v24(0,7)/" from=10<br />

o come<br />

mx \cisis\bases\cds "pft=mfn,x1,v24(0,7)/" from=10 to=20<br />

Tuttavia, ancorché le dichiarazioni sottostanti siano equivalenti:<br />

mx \cisis\bases\cds pft=@file1 proc=@miproc.prc<br />

mx \cisis\bases\cds proc=@miproc.prc pft=@file1<br />

mx \cisis\bases\cds gizmo=gizfile1 proc=@miproc.prc<br />

mx \cisis\bases\cds proc=@miproc.prc gizmo=gizfile1<br />

il parametro gizmo verrà trattato prima del proc, perché così è stipulato nella<br />

sintassi.<br />

Se l’input principale (primo parametro) è una base <strong>da</strong>ti e il suo inverted file è<br />

disponibile, l’insieme di record <strong>da</strong> trattare può venire enucleato grazie ad una<br />

ricerca.<br />

L’esempio seguente recupera i record della base cds, ubicata nella directory<br />

\cisis\bases, che contengono le parole plants e water.<br />

mx \cisis\bases\cds "plants * water"<br />

16


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

MX può leggere i <strong>da</strong>ti in ingresso a partire <strong>da</strong> un file in formato ISO-2709 o <strong>da</strong> un<br />

file di testo con delimitatori.<br />

La seguente sequenza di comandi visualizza i primi 5 record di un file ISO-2709 di<br />

nome cds.iso, situato nella directory \cisis\bases.<br />

mx iso=\cisis\bases\cds.iso to=5<br />

Nell’esempio che segue MX utilizza un file ASCII di nome name come input, il cui<br />

contenuto è:<br />

Autore 1|titolo 1|^aParis^bUnesco^c1965<br />

|titolo 2|^aParis^bUnesco^c1965<br />

Autore 3|titolo 3|^aParis^bUnesco^c1965<br />

E può venire elencato a schermo tramite questa sequenza di comandi MX:<br />

mx seq=name "pft=mfn,c11,v1,c21,v2,c31,v3/" now<br />

Che genererà come output:<br />

000001 Autore 1 Titolo 1 ^aParis^bUnesco^c1965<br />

000002 Titolo 2 ^aParis^bUnesco^c1965<br />

000003 Autore 3 Titolo 3 ^aParis^bUnesco^c1965<br />

I record trattati possono venire memorizzati in un master file. Le seguenti stringhe<br />

di comandi creano il master file sample:<br />

mx\cisis\bases\cds "plants * water" create=sample -all now<br />

mx iso=\cisis\bases\cds.iso to=5 create=sample -all now<br />

mx seq=name create=sample -all now<br />

Questi record possono altresì venire esportati in un file di formato ISO-2709, per<br />

esempio sample.iso:<br />

mx \cisis\bases\cds "plants * water" iso=sample.iso -all now<br />

mx iso=\cisis\bases\cds.iso to=5 iso=sample.iso -all now<br />

mx seq=name iso=sample.iso -all now<br />

17


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Quando MX effettua uno o più procedimenti che modificano i record (provenienti<br />

vuoi <strong>da</strong>lla base <strong>da</strong>ti, vuoi <strong>da</strong> un file ISO-2709 o <strong>da</strong> un file di testo), queste<br />

modifiche si effettuano in memoria e non modificano la base <strong>da</strong>ti, a meno che<br />

ciò non venga esplicitamente indicato.<br />

I record modificati possono venire mostrati a schermo, memorizzati in una base<br />

<strong>da</strong>ti o in un file di output.<br />

Fra i principali procedimenti di modifica si possono annoverare:<br />

Cambiamenti globali di modelli (gizmo).<br />

Unificazione di record (o di loro parti) provenienti <strong>da</strong> basi <strong>da</strong>ti diverse (join).<br />

Aggiornamento di campi (proc).<br />

Sfruttare una Tabella di selezione dei campi (FST) di ISIS e associare i <strong>da</strong>ti che ne<br />

risultano a record in memoria (fst).<br />

L’esempio seguente serve a mostrare i record del master file di cds: l’utente <strong>da</strong><br />

tastiera decide quali visualizzare scrivendone il numero di record (mfn).<br />

• MS-DOS:<br />

mx seq=con "join=cds='mfn='v1" "proc='D1/1D32001'"<br />

• UNIX:<br />

mx seq=/dev/ttyp0 "join=cds='mfn='v1" "proc='D1/1D32001'"<br />

MX può aggiornare i record modificati all’interno del medesimo master file<br />

utilizzato come input:<br />

mx cds "proc='D24'" copy=cds -all now<br />

quest’esempio cancella il campo con etichetta (TAG) 24 in tutti i record della base<br />

<strong>da</strong>ti cds, realizzando la modifica nella stessa base <strong>da</strong>ti.<br />

MX può recepire i parametri <strong>da</strong> un file di testo, consentendo così di superare i<br />

limiti posti <strong>da</strong>l sistema operativo che si presenterebbero quando:<br />

1. Una stringa di comandi MX contiene più caratteri di quanti siano ammessi in<br />

una riga di comando del sistema operativo (128 caratteri in MS-DOS e 512<br />

caratteri in certi UNIX).<br />

2. La stringa di comandi che si sta immettendo <strong>da</strong> tastiera contiene caratteri<br />

riservati per il sistema operativo.<br />

18


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Quest’esempio mostra come utilizzare un file di parametri:<br />

mx in=somefile<br />

Laddove il file somefile contiene:<br />

\cisis\bases\cds<br />

proc='D1'<br />

copy=\cisis\bases\cds<br />

-all<br />

now<br />

Sintassi<br />

MX versione 5.2a, tavola della sintassi:<br />

CISIS Interface v5.2a/PC32/L/M/32767/16/60/I - Utility MX<br />

Copyright (c)BIREME/PAHO 2006.<br />

[http://www.bireme.br/products/cisis]<br />

mx [cipar=] [{mfrl|load}=] [cgi={mx|}]<br />

[in=]<br />

{[db=]|<br />

seq[/1m]=|<br />

iso[={marc|}]= [isotag1=]|<br />

dict=[,[,[/]]]<br />

[k{1|2}=]}<br />

options:<br />

{from|to|loop|count|tell|btell}=<br />

text[/show]=<br />

[bool=]{|@} [invx=] [tmpx=]<br />

gizmo=[,] [gizp[/h]=] [decod=]<br />

join=[:][,]=<br />

join=[:][,]= [jmax=]<br />

jchk=[+]=<br />

proc=[|@]<br />

19


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

D{[/]|*}<br />

A<br />

H <br />

<br />

S[]<br />

R,<br />

G[,]<br />

Gsplit[/clean]=[={|words|letters|numbers|trigrams}]<br />

Gsplit==6words[/if=]<br />

Gload[/][/nonl][=]<br />

Gmark[/]{/|/keys|/decs|/,[,]}=<br />

Gmarx[/]/[@="x"]<br />

=[:&[]|/c[=224]|/i]<br />

Gdump[/][/nonl][/xml][=]<br />

=<br />

X[append=]<br />

convert=ansi [uctab={|ansi}] [actab={|ansi}]<br />

fst[/h]={|@[]} [stw=@[]]<br />

[mono|mast|full] {create|copy|append|merge|up<strong>da</strong>tf}=<br />

[out]iso[={marc|}]= [outisotag1=]<br />

fullinv[/dict][/keep][/ansi]=<br />

[maxmfn=|master=]<br />

ln{1|2}= [+fix[/m]]<br />

fix= tbin=<br />

tab[/lines:100000/width:100/tab:]=<br />

{prolog|pft|epilog}={|@} [lw={|0}]<br />

{+|-}{control|leader|xref|dir|fields|all} mfrl now<br />

MX assume i parametri nell’ordine indicato nella tavola. In primo luogo devono<br />

trovarsi, se presenti, i parametri di inizializzazione (setup), poi la sorgente dei <strong>da</strong>ti<br />

in ingresso, ed infine i parametri d’elaborazione facoltativi. Vi sono alcune<br />

20


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

eccezioni che vengono indicate nel manuale, ad esempio btell= deve venire<br />

indicato prima di bool=.<br />

<strong>Parametri</strong>. Descrizione generale<br />

Se si immette il nome del programma MX senza parametri, si visualizza il menu di<br />

tutte le opzioni possibili e una breve illustrazione del suo uso così come mostrato<br />

nella tavola precedente.<br />

<strong>Parametri</strong> di inizializzazione (setup)<br />

I parametri facoltativi di inizializzazione (files, mfrl, fmtl, load), nel caso in cui uno<br />

o più siano presenti, devono venire elencati prima di qualsivoglia altro parametro.<br />

<strong>Parametri</strong> che indicano la sorgente dei <strong>da</strong>ti in ingresso<br />

Parametro <strong>obbligatori</strong>o che indica la sorgente dei <strong>da</strong>ti in input (nome della base<br />

<strong>da</strong>ti, file ISO-2709 o file di testo): deve essere il parametro indicato per primo, a<br />

meno che nella sequenza dei comandi non vi siano parametri di inizializzazione,<br />

nel qual caso va posto immediatamente dopo di questi.<br />

<strong>Parametri</strong> per il trattamento dei <strong>da</strong>ti<br />

<strong>Parametri</strong> facoltativi che svolgono il proprio compito sui <strong>da</strong>ti in ingresso. Nella<br />

sequenza dei comandi vengono dopo il parametro che indica i <strong>da</strong>ti sorgente.<br />

!<br />

MX dà per scontato (ossia assume per default)<br />

che qualunque stringa (sequenza di caratteri) che<br />

si trova dopo la sorgente dei <strong>da</strong>ti in ingresso e che<br />

non comincia con una parola riservata (from, to,<br />

join, etc.) sia un’espressione di ricerca.<br />

I parametri di trattamento possono venire classificati come:<br />

21


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

<strong>Parametri</strong> per selezionare dei record<br />

Con questi parametri si individua un sottoinsieme dell’input sul quale operare. La<br />

maniera di individuare questo sottoinsieme può consistere in:<br />

• Una ricerca (bool)<br />

• Un modello grazie al quale si effettua una ricerca a testo libero (text)<br />

• Un intervallo di record (i cui estremi si indicano con from, to)<br />

• Una certo numero di record (count)<br />

• Una sequenza discontinua di record <strong>da</strong> trattare (loop)<br />

<strong>Parametri</strong> per l’esecuzione di elaborazioni<br />

Si tratta di parametri che richiamano procedimenti interni che svolgono<br />

operazioni in memoria sull’insieme dei record letti.<br />

Queste operazioni possono essere:<br />

• Effettuare cambiamenti globali (gizmo)<br />

• Unificare record (join)<br />

• Confrontare master file e inverted file (jchk)<br />

• Effettuare modifiche nei campi dei record (proc)<br />

• Applicare la FST Tabella di selezione dei campi (fst) ai record<br />

• Applicare i formati ai record (pft)<br />

! La<br />

<strong>Parametri</strong> di uscita (output) dei <strong>da</strong>ti<br />

sequenza di esecuzione di queste elaborazioni<br />

è: gizmo, join e/o jchk, proc, fst e pft.<br />

Si tratta di parametri che consentono ad esempio di indicare:<br />

• La base <strong>da</strong>ti di uscita (create, copy, append, etc.)<br />

• Il nome di un file ISO-2709 di uscita (iso)<br />

• Il nome di un link file (ln1, ln2)<br />

• Chiamate al sistema operativo (sys)<br />

22


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

<strong>Parametri</strong> generali<br />

Sono parametri che servono a svolgere funzioni generali, ad esempio:<br />

Disattivare il prompt (interazione con l’utente) fra i vari record trattati (now)<br />

Cambiare il testo del prompt di mx (p1, p2)<br />

Modificare le opzioni di visualizzazione (+fields, +all, -all, etc.).<br />

° Reindirizzare l’uscita stan<strong>da</strong>rd (>, >>)<br />

° Mostrare i parametri del comando CISIS in esecuzione (trace=rec,<br />

trace=all, etc.).<br />

<strong>Parametri</strong> che indicano qual è l’origine dei <strong>da</strong>ti<br />

in ingresso<br />

Base <strong>da</strong>ti di entrata (input)<br />

<br />

Specifica il master file che deve venire letto. Le elaborazioni <strong>da</strong> effettuare saranno<br />

compiute sopra questo master file.<br />

C:\isis\<strong>da</strong>ta> mx cds<br />

o<br />

X:\[altra directory]> mx C:\isis\<strong>da</strong>ta\cds<br />

Genera un output senza formattazione, mostrando tutti i campi di un record per<br />

volta.<br />

mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

23


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

..<br />

!<br />

Il programma mostra il prompt (..) in attesa che<br />

<strong>da</strong>ll’utente venga indicata l’azione <strong>da</strong> effettuare.<br />

Se si preme il tasto(invio) verrà<br />

visualizzato il record successivo e così via.<br />

mfn= 2<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: » 24 « Controlled<br />

climate in the plant chamber and its influence upon assimilation<br />

and transpiration»<br />

26 «^c1965»<br />

30 «^ap. 225-232^billus.»<br />

70 «Bosian, G.»<br />

..<br />

A fronte del prompt(..) è possibile compiere tre azioni:<br />

a) Continuare a visualizzare record premendo <br />

b) Immettere una x minuscola e premere per uscire <strong>da</strong>l programma.<br />

c) Qualsiasi altro <strong>da</strong>to immesso verrà interpretato come un’espressione di ricerca<br />

e dopo avere premuto MX procederà ad effettuare la ricerca e a<br />

visualizzare i record reperiti.<br />

File ISO-2709 di entrata (input)<br />

iso[={marc|}]= [isotag1=]<br />

Finora si sono considerati come <strong>da</strong>ti sorgente in entrata delle basi <strong>da</strong>ti in formato<br />

CDS/ISIS. Il programma MX può leggere indifferentemente file in formato ISO-<br />

2709 e svolgere gli stessi procedimenti di quelli effettuabili sui master file<br />

(eccezione fatta per quelli che implicano l’uso dell’inverted file, o indice dizionario,<br />

come, ad esempio, la ricerca).<br />

24


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Ogni record in formato ISO-2709 in input viene letto e trasformato internamente<br />

in un record in formato ISIS, sul quale si passa ad operare.<br />

Esempi:<br />

!<br />

• Esaminare un file ISO-2709:<br />

mx iso=\isis\sys\cds.iso<br />

I separatori di campo e quelli di record nei file<br />

ISO-2709 non vengono presi in<br />

considerazione <strong>da</strong> MX.<br />

esamina un file in formato ISO-2709 di nome cds.iso ubicato nella cartella<br />

\isis\sys.<br />

• Leggere un file ISO e creare un master file con il suo contenuto. Il prompt<br />

viene soppresso <strong>da</strong>l parametro now (no wait).<br />

mx iso=cds.iso create=newcds now<br />

! Il<br />

parametro now verrà illustrato in dettaglio<br />

nell’Appendice I <strong>Parametri</strong> d’uso generale.<br />

• Leggere un file in formato ISO-2709 che risiede nella directory corrente e<br />

creare un master file newcds con i <strong>da</strong>ti forniti <strong>da</strong>l file ISO.<br />

Questo esempio svolge il medesimo procedimento del precedente però senza<br />

mostrare <strong>da</strong>ti sullo schermo. Il parametro -all disattiva l’invio delle<br />

informazioni sullo schermo.<br />

mx iso=cds.iso create=newcds now -all<br />

! Il<br />

parametro -all verrà illustrato in dettaglio<br />

nell’Appendice I <strong>Parametri</strong> d’uso generale.<br />

• Leggere un file ISO e creare un master file di nome newcds con i record d’input, cominciando<br />

con l’mfn 1001. Come nell’esempio precedente non verrà visualizzata alcuna informazione sullo<br />

schermo (-all) né ci si fermerà fra record e record attendendo l’intervento dell’utente (now).<br />

mx iso=cds.iso create=newcds from=1001 -all now<br />

25


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Linee a lunghezza fissa<br />

Il comando MX può leggere file ISO con linee a lunghezza fissa. Questa opzione si<br />

usa per scambiare file ISO creati su PC con altri elaboratori e software che così<br />

esigono (come il MINIISIS di HP). Per leggere file con righe a lunghezza fissa,<br />

occorre indicare l’ampiezza della linea di seguito al parametro ISO:<br />

mx iso=80=cds.iso create=newcds now -all<br />

Questop esempio legge il file ISO assumendo che l’ampiezza della linea sia di 80<br />

caratteri.<br />

Se la lunghezza delle linee è variabile il parametro sarà “0” (zero).<br />

mx iso=0=cds.iso create=newcds2 now -all<br />

Lettura di file MARC<br />

I file il cui formato osserva lo stan<strong>da</strong>rd MARC hanno a fine riga solamente il<br />

carattere ‘\0Bx’ e non recano anche il ‘\0Cx’ () aggiuntivo. Per trattare questi<br />

file si indicherà il parametro così:<br />

mx iso=marc=input.iso create=output.iso now –all<br />

Dati del Leader del record MARC<br />

I record MARC contengono nel Leader <strong>da</strong>ti che non vengono convertiti<br />

automaticamente in CDS/ISIS. Qualora questi <strong>da</strong>ti fossero indispensabili<br />

occorrerà convertirli in campi normali indicando un valore nel parametro<br />

isotag1= come base a partire <strong>da</strong>lla quale verranno caricati i byte del leader. Per<br />

esempio, se si indica isotag1=3000, il byte in posizione 5 del leader verrà caricato<br />

nel campo 3005.<br />

mx iso=marc=input.iso isotag1=3000 create=newcds now -all<br />

File di testo ASCII in entrata (input)<br />

seq[/1m]=<br />

={filename|con|null}<br />

26


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

MX può assumere come sorgente dei <strong>da</strong>ti in entrata un file di puro testo ASCII. La<br />

lunghezza della linea può arrivare fino ad 1MB, il che viene indicato con /1m.<br />

Ogni linea del file in ingresso diventerà un record del master file. I <strong>da</strong>ti all’interno<br />

di ciascuna linea possono essere separati con delimitatori, in tal modo ogni<br />

porzione della linea verrà immessa nel record come una serie di campi consecutivi.<br />

Il numero dei campi sarà uguale a quello dei delimitatori più uno.<br />

Il delimitatore predefinito in MX è la barra verticale (| pipe). Ogni riga del file<br />

ASCII in ingresso può arrivare fino a 32743 caratteri di lunghezza per il<br />

caricamento di un campo, 32740 per due campi, 32735 per tre campi, etc.<br />

Se si ha a che fare con un file di testo, di nome input.in, il cui contenuto è:<br />

agua|tierra|abono<br />

Con la sequenza:<br />

mx seq=input.in create=sali<strong>da</strong> now<br />

Lo si convertirà in:<br />

mfn= 1<br />

1 «agua»<br />

2 «tierra»<br />

3 «abono»<br />

Due delimitatori consecutivi produrrano un intervallo nel numero dei campi:<br />

agua||tierra||abono<br />

mfn= 1<br />

1 «agua»<br />

3 «tierra»<br />

5 «abono»<br />

!<br />

E’ possibile mutare il delimitatore in un qualsiasi<br />

altro carattere che non sia né numerico né<br />

alfabetico, indicandolo di seguito al nome del file<br />

in ingresso senza lasciare spazi.<br />

Nell’esempio che segue il punto e virgola (;) verrà inteso come delimitatore.<br />

27


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Il file input.in contiene la riga:<br />

agua;abono;tierra<br />

Per leggere il file input.in con punto e virgola (;) come separatoredi campo occorre<br />

scrivere:<br />

mx "seq=input.in;" create=sali<strong>da</strong> now<br />

E’ possibile anche assumere lo spazio (blank) come separatore:<br />

mx "seq=input.in " create=sali<strong>da</strong> now<br />

! Notare<br />

che nell’esempio fra la n finale di input.in e le<br />

virgolette di chiusura c’è uno spazio.<br />

Il file dei <strong>da</strong>ti in ingresso può venire creato anche scrivendo i <strong>da</strong>ti direttamente <strong>da</strong><br />

tastiera, grazie al parametro stan<strong>da</strong>rd di input con (console) assunto come origine.<br />

Pertanto è possibile creare record dentro una base CDS/ISIS scrivendo i <strong>da</strong>ti<br />

direttamente <strong>da</strong> tastiera.<br />

Si esamini la sequenza qui sotto riprodotta:<br />

Passo Spiegazione<br />

IMPIEGO DEL PARAMETRO con<br />

Comandi <strong>da</strong> scrivere<br />

C:\path> mx seq=con create=out<br />

1<br />

Dal prompt del sistema operativo<br />

si impartisce il comando<br />

(MS-DOS)<br />

unixuser:~$ mx seq=/dev/tty1 create=out<br />

(input <strong>da</strong> console 1 in UNIX)<br />

2<br />

3<br />

4<br />

Si inizia una fase di input <strong>da</strong>lla<br />

linea di comando che terminerà<br />

con l’<br />

Automaticamente si crea il record<br />

mfn=1 nel master file out<br />

e vengono visualizzati i campi del<br />

record<br />

Il prompt di MX rimane in attesa<br />

di nuovi comandi. Si continua a<br />

creare record premendo a<br />

agua|tierra|vegetales|abono<br />

mfn= 1<br />

1 «agua»<br />

2 «tierra»<br />

3 «vegetales»<br />

4 «abono»<br />

..<br />

28


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

IMPIEGO DEL PARAMETRO con<br />

Passo Spiegazione Comandi <strong>da</strong> scrivere<br />

5<br />

6<br />

7<br />

8<br />

fronte dell’invito del prompt di<br />

MX<br />

Si immette una nuova riga che<br />

terminerà col prossimo <br />

Si crea il record mfn=2<br />

e si visualizzano i campi del record<br />

Si conclude la creazione di record<br />

inserendo una x minuscola al<br />

prossimo invito del prompt del<br />

MX<br />

Si conclude l’esecuzione del<br />

comando<br />

bovinos|ovinos|equinos<br />

mfn= 2<br />

1 «bovinos»<br />

2 «ovinos»<br />

3 «equinos»<br />

..x<br />

C:\path><br />

(MS-DOS)<br />

unixuser:~$<br />

(UNIX)<br />

L’operazione può venire snellita eliminando l’invito del prompt di MX<br />

aggiungendo il parametro now. In questo caso per concludere la fase di<br />

immissione si dovrà premere la combinazione + o (in MS-DOS) e<br />

+ (in UNIX).<br />

La seguente tabella descrive lo stesso procedimento con l’uso del parametro now:<br />

Passi Spiegazione<br />

IMPIEGO DEL PARAMETRO now<br />

Comandi <strong>da</strong> scrivere<br />

Al prompt del sistema operativo C:\path>mx seq=con create=out now<br />

si impartisce il comando<br />

(MS-DOS)<br />

1<br />

unixuser:~$ mx seq=/dev/tty1<br />

create=out now<br />

(input <strong>da</strong>lla console 1 in UNIX)<br />

2<br />

3<br />

Si inizia una sessione di input <strong>da</strong><br />

linea di comando che viene<br />

conclusa premendo <br />

Si crea il record mfn=1<br />

e si visualizzano i campi del<br />

record<br />

agua|tierra|vegetales|abono<br />

mfn= 1<br />

1 «agua»<br />

2 «tierra»<br />

3 «vegetales»<br />

29


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

IMPIEGO DEL PARAMETRO now<br />

Passi Spiegazione Comandi <strong>da</strong> scrivere<br />

4<br />

5<br />

6<br />

7<br />

Si scrive una nuova riga che<br />

verrà chiusa premendo <br />

Si crea il record mfn=2<br />

e se ne visualizzano i campi<br />

Si pone termine alla creazione di<br />

record direttamente <strong>da</strong> tastiera<br />

premendo i tasti + (o<br />

F6) in DOS, o + in<br />

UNIX<br />

Si pone termine all’intero<br />

procedimento<br />

Base di <strong>da</strong>ti fittizia<br />

4 «abono»<br />

bovinos|ovinos|equinos<br />

mfn= 2<br />

1 «bovinos»<br />

2 «ovinos»<br />

3 «equinos»<br />

+ o <br />

(MS-DOS)<br />

+<br />

(UNIX)<br />

C:\path><br />

(MS-DOS)<br />

unixuser:~$<br />

(UNIX)<br />

con | null<br />

MX ammette che l’origine dei <strong>da</strong>ti sia una base <strong>da</strong>ti fittizia (dummy) denominata<br />

null (in modo generico). La base null consiste di un numero indefinito di record<br />

attivi senza campi per i <strong>da</strong>ti (record vuoti). E’ possibile immettere direttamente i<br />

<strong>da</strong>ti <strong>da</strong> tastiera impiegando il parametro di input con (console). Ogni crea<br />

un record. Per porre termine all’operazione si dovrà digitare +Z.<br />

L’utilizzazione di questo parametro non è direttamente correlata alle operazioni<br />

che si effettuano su una base di <strong>da</strong>ti. Si usa in procedimenti che implicano contare,<br />

generare elenchi di numeri, etc.<br />

Esempi:<br />

• Visualizzare un elenco di numeri consecutivi <strong>da</strong> 1 a 50:<br />

mx null to=50 pft=mfn(3)/ -all now<br />

30


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

• Creare un master file OUT con record <strong>da</strong> 100 a 200 che contengano la stringa<br />

di testo DBN nel campo 999:<br />

mx null from=100 to=200 proc='A999#DBN#' now -all create=OUT<br />

Il parametro proc effettua l’aggiunta/soppressione di campi in un record.<br />

Nell’esempio, proc aggiunge il campo 999 (A999) col contenuto DBN (#DBN#).<br />

!<br />

File di parametri<br />

Il parametro proc verrà illustrato in dettaglio nel<br />

Capitolo 3: <strong>Parametri</strong> che effettuano operazioni<br />

sull’input.<br />

in=<br />

I parametri di MX possono venire letti a partire <strong>da</strong> un file ASCII esterno, in cui<br />

ogni parametro sta su una linea a sé. In tal modo diventa possibile preparare linee<br />

di comandi per MX che va<strong>da</strong>no ben oltre quanto ammesso <strong>da</strong>l sistema operativo<br />

(normalmente limitato a 128 caratteri di lunghezza in MS-DOS e a 512 caratteri in<br />

UNIX).<br />

Supponendo di disporre di un file denominato input.in, il cui contenuto è:<br />

iso=entra<strong>da</strong>.iso<br />

create=sali<strong>da</strong><br />

now<br />

from=10<br />

to=20<br />

-all<br />

La riga di comando:<br />

mx iso=entra<strong>da</strong>.iso create=sali<strong>da</strong> now from=10 to=20 -all<br />

Potrebbe venire scritta come:<br />

mx in=input.in<br />

31


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Il parametro in può venire usato in una qualsiasi porzione della linea dei comandi<br />

a partire <strong>da</strong>lla prima posizione, può essere l’unico parametro o può fare parte di<br />

una serie di parametri per MX.<br />

Se si trova in prima posizione (o se è l’unico parametro) la prima linea di questo<br />

file deve contenere il nome del file <strong>da</strong>ti in ingresso.<br />

!<br />

Occorre tenere a mente che se sono presenti<br />

parametri di configurazione (setup) essi devono<br />

precedere tutti gli altri.<br />

E’ possibile usare più di un file in nella medesima linea di comando, e usare il<br />

parametro in all’interno di un file in fino ad 8 livelli anni<strong>da</strong>ti.<br />

L’esempio che segue mostra un’esecuzione di MX che usa un file di parametri in in<br />

mezzo ad altri parametri:<br />

Dato il file print:<br />

\cisis\bases\cds<br />

pft=v70+|; |, " / "v26". "/# mhl,(v69/)<br />

now<br />

-all<br />

tell=10<br />

La riga di comando potrebbe consistere di:<br />

mx in=print from=10 to=50 > archivo.txt<br />

!<br />

Si osservi che le linee del file di testo ASCII che<br />

vengono recepite come <strong>da</strong>ti in input per i<br />

parametri non vanno racchiuse fra virgolette<br />

doppie ("...") ancorché contengano caratteri<br />

riservati del sistema operativo.<br />

Ogni linea del file in potrà contenere fino a 512<br />

caratteri.<br />

L’uso del parametro in permette di preparare file di procedure batch (a lotti) (.bat<br />

del MS-DOS e scripts di UNIX). Sia <strong>da</strong>to il file imprimir.bat col seguente<br />

contenuto:<br />

32


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Versione MS-DOS<br />

REM Immettere i valori from= to=<br />

REM ad esempio: print 10 20<br />

mx in=print from=%1 to=%2 > archivo.txt<br />

Versione UNIX<br />

# Immettere i valori from= to=<br />

# Ad esempio: print 10 20<br />

mx in=print from=$1 to=$2 > archivo.txt<br />

Memento: il file imprimir.bat in UNIX deve avere i permessi di esecuzione.<br />

L’operatore ad esempio potrebbe scrivere:<br />

• MS-DOS<br />

C:\cisis\sys> imprimir 10 40<br />

• UNIX<br />

unixuser:~/cisis/sys$ imprimir 10 40<br />

il che si traduce in:<br />

mx in=print from=10 to=40 > archivo.txt<br />

che a sua volta diventa:<br />

mx \cisis\bases\cds pft=v70+|; |, " / "v26". "/# mhl,(v69/) now -<br />

all tell=10 from=10 to=40 > archivo.txt<br />

Inverted file come <strong>da</strong>ti in entrata (input)<br />

dict=[,[,[/]]]<br />

[k{1|2}=]<br />

MX legge come <strong>da</strong>ti in ingresso le chiavi di un inverted file producendo record con<br />

TAG (etichetta di campo) , fra le chiavi k1 e k2, coi seguenti parametri.<br />

if Nome dell’inverted file (I/F)<br />

keytag TAG (etichetta) che conterrà la chiave letta (key tag), per default 1<br />

Questo campo contiene i seguenti sottocampi<br />

^l il tipo di chiave (1=corta, 2=lunga)<br />

33


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

^s dimensione reale della chiave (numerodi caratteri = keylength)<br />

^t totale dei puntatori ai record (totalpostings)<br />

^k numero di posizione sequenziale (keyorder)<br />

posttag TAG (etichetta) che conterrà il puntatore letto (posting tag)<br />

Se si indica questo parametro, MX porrà insieme le chiavi dell’inverted file I/F<br />

e i loro corrispondenti postings. Il campo posttag conterrà i seguenti<br />

sottocampi<br />

^m MFN del puntatore in questione<br />

^t etichetta del campo [ID della FST e non TAG della FDT] in cui è stata<br />

reperita la chiave<br />

^o numero di occorrenza all’interno dell’etichetta in cui è stata reperita la<br />

chiave<br />

^c posizione della chiave nel campo, calcolata in base al numero delle parole<br />

^p numero sequenziale del puntatore in questione<br />

^k numero sequenziale di lettura della chiave<br />

postsperre Quantità massima di puntatori letti per ciascun record, per default (all)<br />

c<br />

k1= Prima chiave <strong>da</strong> considerare<br />

k2= Ultima chiave <strong>da</strong> considerare<br />

Esempio 1 Legge le chiavi dell’inverted file CDS comprese nell’intervallo fra i termini<br />

AFRICA e AFRICAN LANGUAGES<br />

Mx dict=cds k1=africa "k2=african languages" now<br />

mfn= 1<br />

1 «AFRICA^l1^s6^t5^k1»<br />

mfn= 2<br />

1 «AFRICAN LANGUAGES^l2^s17^t1^k2»<br />

Esempio 2 Legge 3 chiavi e i postings dell’inverted file CDS a muovere <strong>da</strong>l termine AFRICA<br />

mx dict=cds,1,2 k1=africa count=3 now<br />

mfn= 1<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m93^t69^o1^c9^p1^k1»<br />

2 «^m111^t24^o1^c3^p2^k1»<br />

2 «^m111^t69^o1^c3^p3^k1»<br />

2 «^m115^t69^o1^c7^p4^k1»<br />

2 «^m121^t69^o1^c4^p5^k1»<br />

mfn= 2<br />

1 «AFRICAN LANGUAGES^l2^s17^t1^k2»<br />

2 «^m75^t69^o1^c10^p1^k2»<br />

mfn= 3<br />

1 «AGE^l1^s3^t1^k3»<br />

2 «^m136^t24^o1^c7^p1^k3»<br />

34


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Esempio 3 Legge le chiavi dell’inverted file CDS considerando al massimo tre postings alla<br />

volta, a partire <strong>da</strong>l termine AFRICA, mostra tre record in uscita, in questo caso<br />

tre chiavi<br />

mx dict=cds,1,2/3 k1=africa count=3 now<br />

Esempio 4<br />

mfn= 1<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m93^t69^o1^c9^p1^k1»<br />

2 «^m111^t24^o1^c3^p2^k1»<br />

mfn= 2<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m115^t69^o1^c7^p4^k1»<br />

2 «^m121^t69^o1^c4^p5^k1»<br />

mfn= 3<br />

1 «AFRICAN LANGUAGES^l2^s17^t1^k2»<br />

2 «^m75^t69^o1^c10^p1^k2»<br />

Legge le chiavi dell’inverted file CDS considerando i postings del termine AFRICA uno alla volta<br />

mx dict=cds,1,2/1 k1=africa count=5 now<br />

mfn= 1<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m93^t69^o1^c9^p1^k1»<br />

mfn= 2<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m111^t24^o1^c3^p2^k1»<br />

mfn= 3<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m111^t69^o1^c3^p3^k1»<br />

mfn= 4<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m115^t69^o1^c7^p4^k1»<br />

mfn= 5<br />

1 «AFRICA^l1^s6^t5^k1»<br />

2 «^m121^t69^o1^c4^p5^k1»<br />

35


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

<strong>Parametri</strong> che svolgono elaborazioni sui <strong>da</strong>ti in<br />

entrata (input)<br />

<strong>Parametri</strong> che applicano formati ai <strong>da</strong>ti in entrata<br />

(input)<br />

Questo parametro impartisce le specifiche di formato per la visualizzazione dei<br />

record. I record logicamente cancellati (logically deleted) non vengono mostrati<br />

usando il parametro pft=.<br />

MX recepisce tutti comandi del linguaggio di formattazione di CDS/ISIS stan<strong>da</strong>rd<br />

per DOS (eccezione fatta per i format exits) e aggiunge alcune estensioni<br />

sviluppate per l’interfaccia CISIS. Molte di queste nuove istruzioni sono state<br />

incorporate in Winisis, tuttavia MX non accetta le istruzioni di Winisis concernenti<br />

i formati tipografici <strong>da</strong> realizzare in RTF (Rich text format).<br />

Il manuale completo dei formati è disponibile sul sito del “<strong>Modelo</strong>” della <strong>BVS</strong>,<br />

presso la URL: http://bvsmodelo.bvsalud.org/.<br />

Formulazione del formato di visualizzazione a partire della riga<br />

di comando<br />

pft=<br />

L’esempio seguente applica il formato mfn/v24/v26 ai record tratti <strong>da</strong>l master file<br />

di input (cds):<br />

mx cds pft=mfn/v24/v26<br />

Se i comandi di formattazione includono caratteri riservati del sistema operativo<br />

(quali: > | % etc.) o spazi (blanks) tutta la sequenza dei comandi andrà racchiusa<br />

fra virgolette doppie:<br />

mx cds "pft=mfn,/(v70+|; |)/v24/#"<br />

36


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Formulazione del formato di visualizzazione a partire <strong>da</strong> un file<br />

pft= @[]<br />

MX ammette che venga indicato un file (pft=@[]) in cui è memorizzato il<br />

formato che si vuole usare. É un modo più comodo per indicare un formato di<br />

visualizzazione, così l’esecuzione di MX risulta più chiara e d’altra parte non si<br />

perde il formato una volta eseguito il comando.<br />

Inoltre, in questo modo si supera uno dei limiti dei sistemi operativi, <strong>da</strong>l momento<br />

che la lunghezza di una stringa di comandi è limitata (128 caratteri in MS-DOS e<br />

512 caratteri in UNIX) e pertanto un formato ampio non potrebbe venire scritto<br />

tutto per esteso sulla stessa linea.<br />

Se non si indica alcun nome di file MX userà per default il formato che ha lo stesso<br />

nome della base <strong>da</strong>ti:<br />

mx cds pft=@ Equivale a mx cds pft=@cds.pft<br />

Se si indica un file, il nome di questo può essere lungo più di sei caratteri, può<br />

risiedere sul disco in un posizione diversa <strong>da</strong> quella della base <strong>da</strong>ti e può avere una<br />

estensione oppure non averla (qualora ce l’abbia bisognerà scriverla anche se fosse<br />

.pft).<br />

Esempi:<br />

mx cds pft=@cdsnew.pft<br />

mx cds pft=@\dbisis\otro_dir\otro.pft<br />

mx cds pft=@long_name.pft<br />

mx cds pft=@sin_ext<br />

! I<br />

Formati condizionali<br />

record cancellati non vengono visualizzati.<br />

prolog | epilog<br />

37


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

prolog è un comando che si applica al primo record prodotto in output e epilog<br />

all’ultimo.<br />

Esempio:<br />

mx cds prolog=’Primero: ‘ pft=mfn/ epilog=’ultimo’ from=10<br />

to=20 now<br />

Ampiezza della linea (line width)<br />

La linea di output ha un’ampiezza predefinita di 78 caratteri. E’ possibile<br />

modificare l’ampiezza della linea con il parametro lw=n.<br />

mx cds "pft=mfn,/(v70+|; |)/v24/#" lw=40 to=20 now<br />

Estrarre <strong>da</strong>ti <strong>da</strong>l contenuto di una variabile CGI<br />

lw={|0}<br />

getenv('cgi=',)<br />

è un’istruzione di formato che genera un nome di variabile cgi. Le varie<br />

occorrenze vengono separate con il carattere %<br />

set "REQUEST_METHOD=GET"<br />

set "QUERY_STRING=db~cds&btell~0&bool~plants*water"<br />

mx cds cgi=mx "pft='Cercando \"',getenv('cgi=bool'),'\" nella base:<br />

',getenv('cgi=db')/,' MFN Titulo'/,mfn,x2,mhl,v24.50,'...'/"<br />

che produce come output:<br />

Cercando "plants*water" nella base: cds<br />

MFN Titulo<br />

000004 Mc An Electric hygrometer apparatus for me...<br />

..<br />

Cercando "plants*water" nella base: cds<br />

MFN Titulo<br />

000011 Measurement of water stress in plants...<br />

..<br />

Cercando "plants*water" nella base: cds<br />

38


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

MFN Titulo<br />

000013 Experience with three vapour methods for measuring...<br />

->x<br />

Affinché quest’esempio possa funzionare occorre<br />

!<br />

avere a disposizione il file mx.pft fornito nel<br />

pacchetto delle applicazioni cisis. La spiegazione<br />

del parametro cgi=mx viene <strong>da</strong>ta nell’Appendice<br />

II nel paragrafo <strong>Parametri</strong> che possono venire<br />

inclusi nel CIPAR.<br />

Produrre un file temporaneo vuoto<br />

getenv('tmp=',[])<br />

Il formato produce il nome di un file vuoto nella directory di lavoro corrente, o in<br />

quella indicata nel percorso (path) che si specifica nel formato . Se si<br />

specifica ‘ci_tmpdir’ il percorso è desunto <strong>da</strong>lle seguenti variabili d’ambiente:<br />

ci_tempdir, temp, tmp.<br />

mx null pft=getenv('tmp=')<br />

TMP1.$$$<br />

mx null pft=getenv('tmp=','ci_tempdir')<br />

C:\windows\TEMP\TMP1.$$$<br />

set ci_tempdir=C:\work<br />

mx null pft=getenv('tmp=','ci_tempdir')<br />

C:\work\TMP1.$$$<br />

echo ci_tempdir=C:\work2 >xcip<br />

mx cipar=xcip null pft=getenv('tmp=','ci_tempdir')<br />

C:\work2\TMP1.$$$<br />

<strong>Parametri</strong> che estraggono l’insieme di record <strong>da</strong> trattare<br />

Formulazione dell’espressione di ricerca nella linea di comando<br />

bool=<br />

39


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Il parametro bool consente di effettuare ricerche dentro basi <strong>da</strong>ti. MX mette a<br />

disposizione tutte le espressioni booleane proprie del linguaggio di ricerca di<br />

CDS/ISIS.<br />

Il risultato di una ricerca è un insieme di record che corrispondono a quanto<br />

specificato nell’espressione di ricerca.<br />

Il parametro bool è facoltativo visto che MX assume come espressione di ricerca<br />

tutto quello che non è un parametro. I due esempi sottostanti producono il<br />

medesimo risultato:<br />

mx cds bool=water<br />

mx cds water<br />

L’esito dell’esecuzione della ricerca è:<br />

mx cds culture pft=mfn/<br />

2 CULTURE<br />

2 Set #000001<br />

Hits=2<br />

000050<br />

..<br />

000064<br />

-><br />

Anzitutto si visualizza il risultato della ricerca e gli si assegna un numero<br />

sequenziale (Set #000001). Dopodiché si visualizzano i record secondo il formato<br />

prestabilito.<br />

!<br />

Mentre si stanno visualizzando i record risultanti<br />

<strong>da</strong>lla ricerca si usa il prompt .. e quando si è finito<br />

di trattare i record il prompt muta in ->.<br />

Si può continuare a fare ricerche a partire <strong>da</strong>l prompt in mo<strong>da</strong>lità interattiva, però<br />

non è possibile, con questo parametro, fare riferimento a risultati precedenti come<br />

si farebbe -in una sessione CDS/ISIS- con #1 + #2, etc. Per farlo è necessario<br />

usare il parametro tmpx (che viene illustrato più oltre in questo stesso capitolo).<br />

40


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Non si dimentichi che nella stringa di comando<br />

!<br />

MS-DOS gli spazi blanks separano distinti<br />

parametri e dunque se l’espressione di ricerca<br />

contiene spazi o caratteri riservati del sistema<br />

operativo si dovrà racchiudere tutta l’espressione<br />

di ricerca ed anche il parametro bool fra virgolette<br />

doppie.<br />

mx cds "bool=water + soil"<br />

mx cds "water + soil"<br />

Il programma MX riconosce gli operatori booleani +, *, ^ usati in CDS/ISIS così come la loro<br />

versione testuale OR, AND, NOT.<br />

mx cds "bool=water or soil"<br />

mx cds "agricult$ and plants"<br />

Caricare l’espressione di ricerca a partire <strong>da</strong> un file<br />

bool=@<br />

bool=@ trae l’espressione di ricerca <strong>da</strong> un file ASCII esterno. In questo caso<br />

non è necessario racchiuderla fra virgolette.<br />

Assumendo che il file consulta.001 contenga l’espressione: agricult$ and plants,<br />

l’ultimo esempio si può rendere con una qualsiasi delle due seguenti formulazioni:<br />

mx cds bool=@consulta.001<br />

mx cds @consulta.001<br />

Il parametro bool è facoltativo, può però diventare <strong>obbligatori</strong>o se l’espressione di<br />

ricerca principia con una parola riservata di MX.<br />

! Il<br />

parametro bool= esclude l’uso del parametro<br />

text[/show]=.<br />

Se si desidera recuperare dei record che contengono la stringa now:<br />

mx cds now Non farà quanto voluto perché now viene letto come<br />

parametro, e non come un’espressione di ricerca.<br />

mx cds "now" Non farà quanto voluto perché now viene letto come<br />

parametro, e non come un’espressione di ricerca.<br />

mx cds bool=now Corretto.<br />

41


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

mx cds "bool=now" Corretto.<br />

Utilizzazione degli esiti intermedi di una ricerca<br />

tmpx=<br />

parametro obsoleto:<br />

b70=<br />

Il parametro tmpx conserva i risultati intermedi di una sessione di ricerca<br />

permettendo così di fare riferimento ai risultati precedenti con comandi del tipo #1<br />

+ #2.<br />

Il nome assegnato alla destra del segno di uguale è una base <strong>da</strong>ti ISIS che MX crea<br />

e inizializza automaticamente e che non viene cancellata alla fine.<br />

! Il parametro tmpx deve venire indicato prima<br />

dell’espressione di ricerca.<br />

mx cds tmpx=x70 plants water #1*#2 pft=mfn/ now<br />

8 PLANTS<br />

8 Set #000000001<br />

Hits=8<br />

14 WATER<br />

14 Set #000000002<br />

Hits=14<br />

3 Operation *<br />

3 Set #000000003<br />

Hits=3<br />

000004<br />

000011<br />

000013<br />

Si osservi che se si indica il parametro tmpx diventa possibile effettuare ricerche in<br />

mo<strong>da</strong>lità interattiva a partire <strong>da</strong>l prompt di MX facendo riferimento a risultati già<br />

ottenuti.<br />

42


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

! Per<br />

ragioni di compatibilità, MX accetta tanto il<br />

parametro b70 che il b40.<br />

Nell’esempio che segue i termini che vengono inseriti uno alla volta <strong>da</strong> chi opera in<br />

risposta al prompt, sono evidenziati in grassetto. L’esito dell’elaborazione viene<br />

memorizzato nella base <strong>da</strong>ti X70.<br />

mx cds tmpx=x70 plants pft=mfn/<br />

8 PLANTS<br />

8 Set #000000004<br />

Hits=8<br />

000001<br />

..water<br />

14 WATER<br />

14 Set #000000005<br />

Hits=14<br />

000004<br />

..#1 and #2<br />

3 Operation *<br />

3 Set #000000006<br />

Hits=3<br />

000004<br />

..<br />

000011<br />

..<br />

000013<br />

->x<br />

E’ possibile effettuare ricerche complesse leggendo l’espressione di ricerca <strong>da</strong> un<br />

file esterno. Assumendo che il file PERFIL.001 contenga la seguente espressione di<br />

ricerca:<br />

Water<br />

Plants<br />

#1 and #2<br />

Transpiration<br />

#3 or #4<br />

43


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

la sequenza di comandi mostrata qui sotto produce come esito un file di testo<br />

contenente i record recuperati sulla base del profilo di ricerca indicato. Si noti che<br />

ogni singola richiesta va scritta su una linea distinta dentro il file PERFIL.001.<br />

mx CDS tmpx=x70 in=perfil.001 pft=@cds.pft now > out_001.txt<br />

Eliminazione del resoconto statistico di una ricerca<br />

btell=0<br />

E’ possibile non man<strong>da</strong>re a schermo l’output che registra i singoli passi, intermedi<br />

e finale, di una ricerca. In questo caso il parametro btell=0 va specificato prima<br />

dell’espressione di ricerca.<br />

Esempio:<br />

Senza parametro btell= • Con il parametro btell=0<br />

mx cds "water *<br />

mx cds btell=0 "water<br />

plants" pft=mfn/ now<br />

* plants" pft=mfn/<br />

now<br />

14 WATER<br />

8 PLANTS<br />

3 Operation *<br />

3 Set<br />

#000000001<br />

Hits=3<br />

000004<br />

000011<br />

000013<br />

000004<br />

000011<br />

000013<br />

btell=2<br />

Elenca i termini del dizionario che soddisfano una richiesta con troncamento a<br />

destra $.<br />

44


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Ricerca in più di un inverted file<br />

Lo invx contiene record con il campo v101 ripetibile, con questo formato:<br />

^pPrefijo o asterisco^yArchivo[^uUseprefix][^mMessage]<br />

Esempio:<br />

Si crea un master file cdsinvx, con questi campi<br />

^p*^ycds^mText words<br />

^pAU ^ycdsaut^mAuthor<br />

^pTI ^ycdstit^mTitle words<br />

^pKW ^ycdkw^mKeywords<br />

Si creano gli inverted file associati a CDS<br />

mx cds "fst=1 0 (v70/)" fullinv=cdsaut<br />

mx cds "fst=1 4 v24" fullinv=cdstit<br />

mx cds "fst=1 2 v69" fullinv=cdskw<br />

invx=M/F<br />

Ricerche<br />

mx cds invx=cdsinvx "KW plants " pft=mfn,x1,v24,x1,v69<br />

2 PLANTS<br />

2 Set #000000001<br />

Hits=2<br />

000054 Vegetation as a geological agent in tropical deltas Paper<br />

on:<br />

..<br />

000069 Some important animal pests and parasites of East Pakistan<br />

Paper on:<br />

<br />

->x<br />

mx cds invx=cdsinvx "KW plants * east"<br />

2 PLANTS<br />

9 EAST<br />

45


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

1 Operation *<br />

1 Set #000000001<br />

Hits=1<br />

mfn= 69<br />

24 «Some important animal pests and parasites of East Pakistan»<br />

26 «^c1966»<br />

30 «^ap. 285-291^billus.»<br />

44 «Scientific problems of the humid tropical zone deltas and<br />

their implications: proceedings of the Dacca Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on:<br />

»<br />

70 «Yosufzai, H.K.»<br />

100 «1001»<br />

->x<br />

Se il prefisso viene indicato fra [ ] viene riferito a tutti i termini contenuti<br />

nell’espressione booleana:<br />

mx cds invx=cdsinvx "[KW] plants * east"<br />

2 PLANTS<br />

EAST<br />

Operation *<br />

Set #000000001<br />

Hits=0<br />

->x<br />

Ricerche a testo libero<br />

text[/show]=<br />

Questa funzione consente di effettuare ricerche a testo libero (senza richiedere di<br />

indicizzazione). Cerca la stringa di caratteri indicata in in tutti i campi della<br />

base <strong>da</strong>ti di input e seleziona i record che soddisfano la richiesta.<br />

46


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Esempio:<br />

!<br />

mx cds text=water iso=sali<strong>da</strong>.iso now -all<br />

Si tenga presente che il confronto effettuato in<br />

una ricerca a testo libero onora la differenza fra<br />

maiuscole e minuscole, pertanto Water non è la<br />

stessa cosa che water.<br />

questo esempio svolge una ricerca ed esporta i record reperiti dentro a un file ISO-<br />

2709.<br />

Parametro text/show<br />

Il parametro text/show fa visualizzare unicamente le informazioni relative al<br />

text/show<br />

record e al campo che contengono quanto cercato e reperito. Mostra a schermo<br />

due linee: una che contiene: numero di record, TAG, occorrenza in cui si trova il<br />

testo ricercato e il testo cercato; la secon<strong>da</strong> linea visualizza per intero l’occorrenza<br />

del campo che contiene la stringa cercata.<br />

Esempio:<br />

mx cds text/show=water now<br />

Output a schermo:<br />

mfn 56|tag 69|occ 1|water<br />

69 «Paper on: »<br />

Indica che il record con mfn=56 contiene la stringa di caratteri water nella prima<br />

occorrenza del campo con tag 69.<br />

47


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Altre mo<strong>da</strong>lità per selezionare l’insieme dei record <strong>da</strong><br />

trattare<br />

Selezione per intervallo<br />

mx cds from=24 to=50<br />

from= to=<br />

Questa sequenza di comandi visualizza allo schermo i record <strong>da</strong>l 24 al 50 incluso.<br />

Se non si specifica from come inizio verrà assunto il primo record della base, se non<br />

si indica to la base <strong>da</strong>ti verrà trattata fino all’ultimo record o fino a quando non si<br />

deci<strong>da</strong> di uscire premendo x.<br />

!<br />

Gli esempi seguenti NON sono corretti:<br />

mx cds<br />

FROM=10<br />

mx cds from=<br />

10<br />

mx cds from<br />

10<br />

I parametri devono venire scritti<br />

<strong>obbligatori</strong>amente in minuscolo col segno di<br />

eguale (=) e senza lasciare spazi in mezzo.<br />

Il parametro deve essere scritto in minuscole<br />

C’è uno spazio fra l’uguale = e il 10<br />

Manca il segno di uguale =<br />

Se la sintassi è scorretta due sono gli esiti<br />

!<br />

possibili: il programma non viene man<strong>da</strong>to in<br />

esecuzione e presenta un messaggio di<br />

interruzione con cui segnala il tipo di errore,<br />

oppure interpreta il parametro scritto male come<br />

una espressione di ricerca.<br />

• L’espressione dell’esempio (a) genererà il risultato:<br />

FROM=10<br />

Set #000001<br />

48


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Hits=0<br />

-><br />

il che significa che la stringa FROM=10 è stata presa come un termine <strong>da</strong> cercare<br />

dentro la base <strong>da</strong>ti.<br />

• L’espressione dell’esempio (b) genererà il risultato:<br />

FROM<br />

Set #000001<br />

Hits=0<br />

Expression syntax error 5: '='<br />

-><br />

MX riscontra un errore nell’espressione di ricerca a causa del segno = e del blank<br />

• L’espressione dell’esempio (c) genererà il risultato:<br />

FROM<br />

Set #00001<br />

Hits=0<br />

10<br />

Set #000002<br />

Hits=0<br />

-><br />

Questo significa che i termini FROM e 10 sono stati assunti come termini <strong>da</strong><br />

cercare e che non è stato reperito.alcun record che li contenesse<br />

Con questa istruzione verranno visualizzati unicamente i numeri di MFN dei<br />

record <strong>da</strong>l 24 al 50.<br />

mx cds from=24 to=50 pft=mfn/<br />

Selezionare ogni n record<br />

loop=<br />

Il parametro loop=n tratta un record, ne salta n, tratta il record n+1, ne evita altri<br />

n e così di seguito.<br />

49


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Esempio:<br />

mx cds loop=10<br />

Serve a recuperare i record 1, 11, 21, etc.<br />

Selezionare n record<br />

count=<br />

Il parametro count=n seleziona esattamente n record a partire <strong>da</strong> un inizio <strong>da</strong>to.<br />

Se non si indica il record di partenza comincia a lavorare <strong>da</strong>l primo record.<br />

Esempio Esito<br />

mx cds from=24 to=50 loop=5 pft=mfn/<br />

000024<br />

now<br />

000029<br />

000034<br />

000039<br />

000044<br />

000049<br />

mx cds from=24 to=50 count=3 loop=5<br />

pft=mfn/ now<br />

mx cds from=24 to=50 count=9 loop=5<br />

pft=mfn/ now<br />

!<br />

000024<br />

000029<br />

000034<br />

000024<br />

000029<br />

000034<br />

000039<br />

000049<br />

Quando nella medesima sequenza di comandi<br />

ricorrono parametri come count, to, etc.,<br />

l’elaborazione ha fine quando giunge a fine il<br />

primo dei parametri.<br />

50


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

<strong>Parametri</strong> che modificano i record<br />

proc=[][@]<br />

y sintaxis<br />

D{[/]|*}<br />

A<br />

H <br />

<br />

S[]<br />

R,<br />

G[,]<br />

Gsplit[/clean]=[={|words|letters|numbers|trigrams}<br />

]<br />

Gload[/][/nonl][=]<br />

Gmark[/]{/|/keys|/decs|/,[,]}=<br />

Gmarx[/]/[@="x"]<br />

=[:&[]|/c[=224]|/i]<br />

Gdump[/][/nonl][/xml][=]<br />

=<br />

X[append=]<br />

Il parametro proc consente di indicare, mediante un formato, modifiche <strong>da</strong><br />

effettuare sui campi dei record in entrata. Permette di cancellare, aggiungere e<br />

sostituire il contenuto dei campi. Le operazioni <strong>da</strong> svolgere vengono indicate<br />

tramite istruzioni di formato, formulabili sia direttamente <strong>da</strong>lla linea di comando<br />

sia a partire <strong>da</strong> un file di testo esterno.<br />

E’ d’altronde importante sottolineare che le modifiche ai record non hanno effetto<br />

sulla base <strong>da</strong>ti d’origine (<strong>da</strong> cui provengono i <strong>da</strong>ti trattati) ma su quella di<br />

destinazione. Se quella di destinazione non viene indicata, o manca, le modifiche<br />

vengono mostrate a schermo e si perdono a fine elaborazione. Affinché i<br />

cambiamenti siano effettivi sulla stessa base impiegata come input occorre<br />

specificarla anche come base <strong>da</strong>ti di output.<br />

Eesempi:<br />

mx cds from=1 to=10 now proc='d70'<br />

51


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

! L’istruzione<br />

proc='d70' cancella tutte le<br />

occorrenze del campo 70.<br />

Le modifiche saranno mostrate a video però non saranno effettive <strong>da</strong>l momento<br />

che non è stata indicata una base di destinazione. Affinché i mutamenti abbiano<br />

luogo nello stesso master file utilizzato come input occorre specificarlo indicando<br />

il parametro copy:<br />

mx cds from=1 to=10 proc='d70' copy=cds now<br />

Altra possibilità è quella di indicare il formato come file piuttosto che scriverlo in<br />

chiaro nella sequenza dei comandi:<br />

mx cds from=1 to=10 now proc=@modifica<br />

Porta ad effetto le modifiche indicate in un file (modifica) che contiene questa<br />

istruzione di formato:<br />

'd70'<br />

Quantità massima di parametri ammessi<br />

in= 1024<br />

File in= (anni<strong>da</strong>ti) 16<br />

proc= 1024<br />

Join= 128<br />

gizmo= 16<br />

Linee nel file stw 799<br />

In una linea di comandi MX è possibile indicare fino a 1024 parametri proc=<br />

inclusi fst, read, write, I/F up<strong>da</strong>te proc. Ogni proc supplementare interverrà sul<br />

record nelle condizioni in cui si trova al momento, per cui se un proc (o<br />

qualsivoglia elaborazione prodotta <strong>da</strong> altro comando precedente) modifica il<br />

record originale in input, il proc successivo agirà sui <strong>da</strong>ti –modificati- come sono<br />

al momento della sua esecuzione.<br />

52


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Vengono riconosciuti tutti i comandi di formattazione stan<strong>da</strong>rd di CDS/ISIS,<br />

inclusi quelli condizionali come IF, non sono però riconosciute le chiamate di<br />

programmi IsisPascal (format exits). Accetta anche le variabili e0...e9, s0 ..s9 e il<br />

comando while. E’ possibile anni<strong>da</strong>re ricorsivamente e senza limiti un proc dentro<br />

ad un altro proc.<br />

Anche il linguaggio di formattazione di CDS/ISIS accetta l’istruzione proc( ) –[ma<br />

non direttamente bensì incorporandola in comandi di <strong>da</strong>ta entry]. Per i dettagli si<br />

ve<strong>da</strong> il Manuale del linguaggio di formattazione CDS/ISIS.<br />

Nella tabella sottostante vengono descritti i comandi d’uso più frequente eseguibili<br />

<strong>da</strong>l proc, gli altri verranno illustrati singolarmente (MX riconosce tutti i comandi<br />

della funzione fldup<strong>da</strong>t( ) dell’interfaccia CISIS):<br />

Comandi della funzione fldup<strong>da</strong>t ( )<br />

Comando Descrizione Esempio<br />

D. Elimina il record logicamente. proc='d.'<br />

D* Elimina tutti i campi del record. proc='d*'<br />

Dtt Elimina tutte le occorrenze del<br />

campo tt.<br />

proc='d26'<br />

Dtt/occ Elimina l’occorrenza occ del<br />

campo tt.<br />

proc='d26/3'<br />

Att#str# Aggiunge la stringa di caratteri str<br />

come una nuova occorrenza del<br />

campo tt.<br />

proc='A999#cds#'<br />

Htt n str_n Aggiunge la stringa di caratteri<br />

str_n di n byte di lunghezza come<br />

una nuova occorrenza del campo<br />

tt.<br />

= Cambia il numero del record (mfn)<br />

in n .<br />

S Riordina la sequenza dei campi<br />

nella directory del record in base<br />

al TAG.<br />

!<br />

proc='H99 8 CDS/ISIS'<br />

proc='=10'<br />

proc='s'<br />

proc='s70'<br />

All’interno del medesimo parametro proc tutti i<br />

comandi di eliminazione devono precedere quelli<br />

di aggiunta.<br />

In uno stesso parametro proc non si possono<br />

utilizzare due o più comandi Dtt/occ per lo stesso<br />

campo tt.<br />

53


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

In uno stesso parametro proc non si può<br />

utilizzare il comando =n né il comando S insieme<br />

ad altri comandi.<br />

I comandi elencati nella precedente tabella possono venire scritti indistintamente<br />

in maiuscole o in minuscole.<br />

Sostanzialmente lo scopo è quello di realizzare un formato che come risultato dia<br />

luogo ad una stringa di caratteri tipo la seguente:<br />

d36a999#1999#a70#Magalhaes, A.C.#<br />

mediante la quale si elimina il campo 36, si aggiunge 1999 al campo 999 e si<br />

aggiunge Magalhaes, A.C. al campo 70.<br />

Questa stringa (sequenza di caratteri) può scaturire <strong>da</strong> un formato come questo:<br />

if p(v36) and a(v999) then 'd36a999#'v47'#'fi,"a70#"v36"#"<br />

La stringa viene generata in ragione dell’esistenza del campo 36 il cui contenuto è<br />

Magalhaes, A.C., e dell’assenza del campo 999.<br />

Esempi:<br />

Creare una base <strong>da</strong>ti con tutti i record della base d’origine (CDS) eliminando in<br />

questi –nell’output- i campi 69 e 70:<br />

mx cds proc='d69d70' create=sali<strong>da</strong> now -all<br />

! Se la base sali<strong>da</strong> esiste già verrà previamente<br />

azzerata.<br />

Aggiungere <strong>da</strong>ti nel campo 999 di un gruppo di record:<br />

mx cds proc='A999#1998#' from=100 to=120 copy=cds now -all<br />

In questo esempio le modifiche vengono effettuate sopra la stessa base <strong>da</strong>ti che è<br />

stata assunta come sorgente, e conseguentemente le modifiche saranno effettive<br />

nella stessa base.<br />

54


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Importare un file ISO-2709 con l’MFN memorizzato nel campo 999 dei record<br />

ISO:<br />

mx iso=<strong>da</strong>tos.iso proc='='v999 create=master -all now<br />

Esportare record in un file ISO-2709 aggiungendo l’MFN del record di origine al<br />

campo 999 dei record ISO:<br />

mx master proc='D999A999/'mfn'/' -all now iso=<strong>da</strong>to.iso<br />

Funzione ‘A' (aggiunta di un campo) att#str#<br />

La funzione ‘A' è composta <strong>da</strong>:<br />

Comando Descrizione<br />

a Indica che si aggiungerà un campo.<br />

tt TAG del campo in cui verranno aggiunti i <strong>da</strong>ti.<br />

# Separatore fra il tt e i <strong>da</strong>ti.<br />

Il separatore può essere rappresentato <strong>da</strong> un qualsiasi carattere<br />

purché non numerico e non presente all’interno della stringa di<br />

caratteri <strong>da</strong> aggiungere.<br />

str Stringa di caratteri <strong>da</strong> aggiungere.<br />

La stringa può venire immessa come stringa statica di caratteri<br />

oppure venire estratta <strong>da</strong> un campo <strong>da</strong>ti dello stesso record o di un<br />

altro (anche appartenente ad un’altra base <strong>da</strong>ti).<br />

# Separatore che marca la fine della stinga.<br />

Questo esempio:<br />

! Il<br />

separatore (#) usato per l’inizio e per la fine<br />

della stringa deve essere lo stesso.<br />

mx cds proc='A999#1998#' from=100 to=120 copy=cds now -all<br />

Equivale a questo:<br />

mx cds "proc='a999{1998{'" from=100 to=120 copy=cds now -all<br />

Esempi:<br />

55


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

• Eliminare il campo 70, aggiungere solo la prima occorrenza di questo campo<br />

come nuova occorrenza del campo 100.<br />

Gli esempi seguenti mostrano due maniere diverse di ottenere il medesimo<br />

risultato:<br />

mx cds "proc='d70a100#',v70[1],'#' " from=10 to=20 now -all<br />

mx cds "proc='d70',|a100@|v70[1]|@| " from=10 to=20 now -all<br />

• Cancellare tutti i campi del record quando il campo 24 contiene la parola<br />

water, ed esportare il record in una base di nome sali<strong>da</strong>. Il formato che contiene<br />

le istruzioni per il proc è ricavato <strong>da</strong> un file esterno (prueba).<br />

mx cds proc=@prueba now –all create=sali<strong>da</strong><br />

Il file prueba contiene l’istruzione di formato:<br />

If v24:'water' then ‘D*' fi<br />

La relazione comparativa qui [non in CDS/ISIS]<br />

!<br />

fa differenza fra maiuscole e minuscole, e dunque<br />

usare water o Water non produce lo stesso esito.<br />

Per contro, la comparazione tramite<br />

S(mpu,v24):'WATER' non fa differenza fra lettere<br />

maiuscole e minuscole.<br />

Si può anche lavorare sopra la stessa base <strong>da</strong>ti che viene usata come input.<br />

mx CDS proc='d70' copy=CDS now to=1<br />

• Ordinare i campi del record in base al numero di TAG<br />

mx CDS proc='s' copy=CDS now –all<br />

Record in entrata (input):<br />

mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

56


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Record in uscita:<br />

mfn= 1<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

si faccia caso che nell’esempio l’esito del processo ha luogo sulla stessa base <strong>da</strong>ti<br />

usata come origine.<br />

Funzione R,<br />

Aggiunge al master file di uscita i campi del record attivo<br />

nome del master file di entrata (input)<br />

numero del record<br />

mx null proc='a10/1/a20/1/' create=xxx<br />

10 «1»<br />

20 «1»<br />

mx null proc='a20/2/' append=xxx<br />

20 «2»<br />

mx out proc='Rxxx,1' proc='Rxxx,2' copy=out count=1 now<br />

mfn= 1<br />

10 «1»<br />

20 «1»<br />

20 «2»<br />

Scrive dentro al master file out nel record attivo (mfn=1) i campi dei record mfn=1<br />

e mfn=2 del master file xxx.<br />

57


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Funzione <br />

Aggiunge come nuova occorrenza del campo . I marcatori nella<br />

forma “” vengono eliminati <strong>da</strong>l testo fino ad un massimo di<br />

caratteri. Se il testo che dà luogo all’eliminazione dei delimitatori<br />

“” è più corto di caratteri, la modifica non viene effettuata.<br />

Etichetta (TAG) del campo<br />

Lunghezza massima del marcatore (per default: infinito)<br />

Lunghezza minima del campo risultante (per default: zero)<br />

• Aggiunge un’occorrenza con la stringa text nel campo 10<br />

mx null "proc='text'"<br />

mfn= 1<br />

10 «text»<br />

• Include un’occorrenza con la stringa xyz nel campo 10<br />

eliminando i marcatori ma non quanto contenuto fra essi<br />

mx null "proc='xyz'"<br />

mfn= 1<br />

10 «xyz»<br />

• Include un’occorrenza con la stringa xyz nel campo 10<br />

eliminando i marcatori usando come criterio la dimensione del<br />

marcatore, in questo caso sei caratteri.<br />

mx null "proc='xyz'"<br />

mfn= 1<br />

10 «xyz»<br />

• Include un’occorrenza con la stringa xyz nel campo 10<br />

eliminando i marcatori ma non quanto contenuto fra essi<br />

<strong>da</strong>to che questo ha il minimo richiesto di tre caratteri.<br />

mx null "proc='xyz'"<br />

mfn= 1<br />

10 «xyz»<br />

• Non include l’occorrenza con la stringa xyz nel campo 10,<br />

<strong>da</strong>to che dopo l’eliminazione dei marcatori il contenuto non<br />

arriva al minimo richiesto di quattro caratteri.<br />

mx null "proc='xyz'"<br />

mfn= 1<br />

Funzione X[{create|copy|append|merge}=]<br />

Scrive i <strong>da</strong>ti del record corrente nel file , e se non esiste lo crea. In una<br />

stessa riga di comandi è possibile assegnare ad uno stesso record distinti file di<br />

uscita.<br />

58


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

• Assegna come uscita il master file dbn1, dopodiché scrive il medesimo record<br />

nell’mfn=3 del master dbn2.<br />

mx null proc='a10/1/' proc='Xdbn1' proc='a20/2/' proc='=3'<br />

proc='Xdbn2'<br />

mx dbn1<br />

mfn= 1<br />

10 «1»<br />

mx dbn2<br />

mfn= 3<br />

10 «1»<br />

20 «2»<br />

• Crea <strong>da</strong>pprima un file xfile.pft, dopodiché usa come nomi di output per i<br />

master file la prima occorrenza del campo 70 dei record 1,2,3. Si osservi il<br />

formato xfile.pft che aggiunge al nome i segni -+. Il record mfn=1 di CDS viene<br />

scritto in un master di nome “Magalhae” e i record mfn=2, mfn=3 vengono<br />

scritti in un master di nome “Bosian-+”.<br />

echo replace(replace(s(v70[1].8),',','-'),' ','+') >xfile.pft<br />

mx cds proc='Xappend='@xfile.pft, pft=mfn,x1,v70[1]/ count=3 now<br />

000001 Magalhaes, A.C.<br />

000002 Bosian, G.<br />

000003 Bosian, G.<br />

mx Magalhae pft=mfn,x1,v70[1]/<br />

000001 Magalhaes, A.C.<br />

mx Bosian-+ pft=mfn,x1,v70[1]/<br />

000002 Bosian, G.<br />

000003 Bosian, G.<br />

Funzione G[,]<br />

Applica un gizmo al record, e può venire limitato ad un certo numero di campi<br />

specifici.<br />

echo transpiration~xxx> xxx.lst<br />

mx seq=xxx.lst~ create=xxx now<br />

mx cds proc=’Gxxx,2’ from=2 count=1 now<br />

mfn= 2<br />

24 « Controlled climate in the plant chamber and its<br />

influence upon assimilation and xxx»<br />

30 «^ap. 225-232^billus.»<br />

26 «^aParis^c1965»<br />

70 «Bosian, G.»<br />

59


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Funzione Gsplit[/clean]=[={|words|letters|numbers|trigram}]<br />

• Esempio con si usa il ;<br />

echo Perez, J.; Garcia, María; Machado, A. > xxx.lst<br />

mx seq=xxx.lst proc='Gsplit/clean=1=;'<br />

mfn= 1<br />

1 «Perez, J.»<br />

1 «Garcia, María»<br />

1 «Machado, A.»<br />

..<br />

• Si separa il campo 44 di CDS parola per parola<br />

mx cds proc='Gsplit=44=words'<br />

mfn= 1<br />

44 «Methodology»<br />

44 «of»<br />

44 «plant»<br />

44 «eco»<br />

44 «physiology»<br />

44 «proceedings»<br />

44 «of»<br />

44 «the»<br />

44 «Montpellier»<br />

44 «Symposium»<br />

..x<br />

Funzione Gsplit==6words[/if=]<br />

Estrae le parole di un testo secondo quest’ordine:<br />

• Parola 1, parole 1+2, parole 1+2+3 … parole 1+2+…6,<br />

• Quando conclude la serie passa alla secon<strong>da</strong> parola<br />

• ricomincia la medesima sequenza.<br />

Esempio:<br />

Methodology of plant eco-physiology: proceedings of the Montpellier Symposium<br />

mx cds proc='Gsplit=44=6words'<br />

Methodology<br />

Methodology of<br />

Methodology of plant<br />

60


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Methodology of plant eco<br />

Methodology of plant echo physiology<br />

Methodology of plant echo physiology proccedings<br />

of<br />

of plant<br />

of plant echo<br />

of plant echo physiology<br />

…<br />

Opzione /if=<br />

Compie un lookup ad un inverted file ed estrae unicamente le espressioni valide<br />

Funzione Gload[/][/nonl][=]<br />

Carica il file in formato binario nel campo <br />

Se si indica /nonl elimina gli accapo in fine di linea <br />

Funzione Gdump[/][/nonl][/xml][=]<br />

Scrive il contenuto del campo in un file.<br />

Opzione /nonl: elimina i salti di fine linea .<br />

Opzione /xml: scrive in una struttura xml.<br />

Modifica globale di modelli<br />

gizmo=[,] [gizp[/h]=]<br />

[decod=]<br />

Il parametro gizmo permette di realizzare cambiamenti globali del contenuto dei<br />

campi di una base CDS/ISIS, di convertire una sequenza di caratteri in un’altra e<br />

di realizzare così modifiche, codifiche/decodifiche, compressione di <strong>da</strong>ti, etc.<br />

Questi cambiamenti possono venire effettuati su tutti i record della base o su un<br />

insieme di record (selezionati tramite una ricerca, costituenti un intervallo, etc.). A<br />

61


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

loro volta i cambiamenti possono riguar<strong>da</strong>re tutto il record o solamente alcuni<br />

campi.<br />

Per effettuare cambiamenti come ad esempio mutare i segni < > in / /, o la stringa<br />

plants in PLANTS, etc., è necessario disporre di un master file gizmo. Questo<br />

master file di norma presenta due campi: il campo 1 contiene il <strong>da</strong>to <strong>da</strong> cambiare,<br />

e il campo 2 il nuovo valore. Ogni coppia di <strong>da</strong>ti costituirà un record del master file<br />

gizmo.<br />

Ogni record in input viene sottoposto al processo di cambiamento stabilito nella<br />

base gizmo. Quando si avvia l’esecuzione di MX i <strong>da</strong>ti della base gizmo vengono<br />

caricati in memoria come una tabella e si dispongono ordinatamente in base al<br />

valore alfabetico del campo 1 ed alla sua lunghezza (dimodoché le stringhe di<br />

caratteri più lunghe vengano convertite prima di quelle più corte).<br />

E’ possibile indicare fino a 16 gizmo in una riga di comando di MX. Ogni gizmo<br />

successivo agirà sul record nello stato in cui quello si troverà al momento, per cui<br />

se un gizmo modifica il record d’origine in ingresso, il gizmo seguente agirà sui<br />

<strong>da</strong>ti -già modificati- esistenti in quel momento.<br />

Esempi:<br />

• Per mezzo di quanto qui di seguito esemplificato si crea una base <strong>da</strong>ti di nome<br />

prueba usando i parametri di MX già noti e si immettono i <strong>da</strong>ti <strong>da</strong> tastiera:<br />

MS-DOS UNIX<br />

mx seq=con<br />

unixuser:~$ mx seq=/dev/tty1<br />

create=prueba -all<br />

create=prueba -all now<br />

now<br />

|/<br />

plants|PLANTAS<br />

plants|PLANTAS<br />

+ (o )<br />

+<br />

Ottenendo questi record:<br />

mfn= 1<br />

1 «


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

1 «>»<br />

2 «/»<br />

mfn= 3<br />

1 «plants»<br />

2 «PLANTAS»<br />

Il contenuto dei campi titolo e descrittori del record con MFN=1 è:<br />

mx cds to=1 "pft=mfn/v24/v69"<br />

000001<br />

Techniques for the measurement of transpiration of individual<br />

plants<br />

Paper on: <br />

man<strong>da</strong>ndo in esecuzione questo comando:<br />

mx cds gizmo=prueba to=1 "pft=mfn/v24/v69"<br />

si ottiene:<br />

000001<br />

Techniques for the measurement of transpiration of individual<br />

PLANTAS<br />

Paper on: /plant physiology//plant transpiration//measurement and<br />

instruments/<br />

La modifica non concerne la base <strong>da</strong>ti cds che fornisce i <strong>da</strong>ti in ingresso, perché<br />

l’esito del comando si realizza in uscita (lo schermo in questo caso).<br />

Per alterare realmente i record si dovrà inviare il risultato dell’elaborazione<br />

allo stesso master file d’origine come nell’esempio segeuente:<br />

mx cds gizmo=prueba to=1 copy=cds –all now<br />

Se invece si desidera generare una nuova base <strong>da</strong>ti è necessario crearla:<br />

mx cds gizmo=prueba to=1 create=sali<strong>da</strong> –all now<br />

La modifica può venire ristretta ad un campo specifico del record, indicando<br />

dopo il parametro gizmo la o le etichette (TAG) sulle quali si intende operare.<br />

E’ possibile indicare un intervallo di etichette separate <strong>da</strong> una barra (/).<br />

! In ogni parametro gizmo si possono specificare<br />

fino a 16 etichette e/o intervalli di etichette.<br />

mx cds gizmo=prueba,69,24 to=1 create=sali<strong>da</strong> -all now<br />

mx cds gizmo=prueba,35/56 to=1 create=sali<strong>da</strong> -all now<br />

• Un’altra applicazione del gizmo può consistere nella codifica ed eventuale<br />

compressione dei <strong>da</strong>ti per cui dei termini molto ricorrenti possono venire<br />

rimpiazzati <strong>da</strong> codici o <strong>da</strong> valori particolari:<br />

mx seq=con create=tabla1 now -all<br />

63


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

^aParis^bUnesco|*1*<br />

transpiration|*2*<br />

Z<br />

Prima della conversione:<br />

mx cds to=1 pft=mfn/v69/v24/v26<br />

000001<br />

Paper on: <br />

Techniques for the measurement of transpiration of individual<br />

plants<br />

^aParis^bUnesco^c1965<br />

Dopo la conversione:<br />

mx cds gizmo=tabla1 to=1 pft=mfn/v69/v24/v26<br />

000001<br />

Paper on: <br />

Techniques for the measurement of *2* of individual plants<br />

*1*^c1965<br />

!<br />

Per potere leggere file con <strong>da</strong>ti codificati o<br />

compressi, è necessario disporre di un’adeguata<br />

tabella di conversione e usare il parametro gizmo.<br />

Nell’esempio che segue si crea la tabla2 per effettuare la conversione inversa di<br />

quella della tabla1, usando il parametro proc :<br />

mx tabla1 create=tabla2 now -all "proc='d*a1#',v2,'#a2#',v1,'#'"<br />

Descrizione<br />

L’istruzione proc comincia con l’eliminare tutti i campi, poi aggiunge come campo<br />

1 il contenuto del campo 2 ed infine aggiunge come campo 2 il contenuto del<br />

campo 1.<br />

Servendosi delle basi tabla1 e tabla2 si può realizzare l’esempio seguente:<br />

mx CDS to=1 create=OUT gizmo=tabla1 now –all<br />

mx OUT gizmo=tabla2<br />

64


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

!<br />

E’ possibile impiegare più di un gizmo all’interno<br />

di una stessa linea di istruzioni. In tal caso ogni<br />

successiva conversione agisce sul risultato del<br />

gizmo precedente.<br />

• Alla base CDS vengono applicati due gizmo grazie a tabla1 e tabla2, che<br />

effettuano conversioni inverse (per cui i <strong>da</strong>ti originali non cambiano).<br />

mx CDS gizmo=tabla1 gizmo=tabla2<br />

Il parametro gizmo gode di un ampio ventaglio di applicazioni. Per esempio, si<br />

potrebbero allestire tavole in varie lingue con le equivalenze fra il codice numerico<br />

di un descrittore e la sua versione nella lingua in questione. La base <strong>da</strong>ti conterrà<br />

come <strong>da</strong>to il valore numerico e sarà durante il processo di formattazione che si<br />

effettuerà la conversione dei numeri nei termini della lingua trascelta.<br />

Altro esempio interessante consiste nel disporre di una tabella con caratteri<br />

accentati e simboli come campo 1 e il corrispettivo in codifica html (come &eacute<br />

per é) nel campo 2, in questo modo si possono ottenere in uscita documenti html.<br />

Un’altra applicazione ancora potrebbe essere quella di appaiare nomi e<br />

abbreviazioni o acronimi di enti, o abbreviazioni di nomi di lingue o di nomi di<br />

paesi, etc., che è quanto in CDS/ISIS stan<strong>da</strong>rd si suole realizzare mediante l’uso<br />

della funzione di ref+lookup.<br />

Tabella di conversione mediante codici ASCII o esadecimali<br />

Le tabelle di conversione gizmo sono master file composti di due campi, il cui<br />

contenuto è rappresentato <strong>da</strong>lla stringa <strong>da</strong> cambiare (campo 1) e <strong>da</strong>lla stringa che<br />

rimpiazzerà la prima (campo2).<br />

Parimenti è possibile indicare queste stringhe di caratteri mediante la<br />

rappresentazione numerica dei caratteri che le compongono, facendo sì che la<br />

tabella gizmo inclu<strong>da</strong> caratteri che non possono venire <strong>da</strong>ttiloscritti o visualizzati,<br />

o che non siano compatibili con una trasmissione <strong>da</strong>ti effettuata in mo<strong>da</strong>lità non<br />

transparente.<br />

Questo tipo di tabella può contenere fino a quattro campi: i campi 1 e 2 (stringa <strong>da</strong><br />

cambiare e stringa che rimpiazza) e i campi 11 e/o 21 dove si indica che tipo di <strong>da</strong>to<br />

65


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

ospitano i campi 1 e/o 2 rispettivamente. Il valore di questi campi può essere: hex<br />

(se il contenuto del campo 1 o 2 è codificato in due cifre esadecimali) o asc (se il<br />

contenuto del campo 1 o 2 è codificato in tre cifre decimali). E’ possibile immettere<br />

commenti in ogni record servendosi dei campi non riservati: 1, 2, 11, 21.<br />

Esempio:<br />

Le seguenti tabelle gizmo sono equivalenti:<br />

TAG Contenuto<br />

1 OF THE<br />

2 Ç<br />

TAG Contenuto<br />

1 OF THE<br />

2 128<br />

21 Asc<br />

TAG Contenuto<br />

1 079070032084072069<br />

2 Ç<br />

11 Asc<br />

TAG Contenuto<br />

1 4F4620544845<br />

2 Ç<br />

11 Hex<br />

1. Si ha a che fare con un master file in cui si vuole mutare il carattere -<br />

(esadecimale 2D), col carattere ~ (esadecimale 7E).<br />

Anzitutto è necessario allestire una tabella per potere effettuare la sostituzione,<br />

essa sarà dunque un master file contenente:<br />

TAG Contenuto<br />

1 2D<br />

2 7E<br />

11 Hex<br />

21 Hex<br />

Per realizzarlo si crea un file testo di nome cambio.seq, il cui contenuto è:<br />

2D|7E|hex|hex<br />

Poi si man<strong>da</strong> in esecuzione questa sequenza di comandi:<br />

66


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

mx seq=cambio.seq create=cambio -all now<br />

Con ciò si è creata una tabella coi quattro campi necessari alla realizzazione della<br />

sostituzione. Ancora, i campi 3 e 4 dovranno avere tag 11 e 21 rispettivamente, per<br />

cambiare i numeri dei tag si può fare ricorso ai programmi di utilità RETAG o<br />

ID2I, però in questo esempio lo si farà con MX usando il comando proc:<br />

mx cambio proc='d3d4a11#hex#a21#hex#' copy=cambio<br />

!<br />

Adesso tutto è pronto per effetuare la sostituzione:<br />

mx cds gizmo=cambio -all now<br />

Statistica della conversione tramite gizmo<br />

Per cambiare i numeri di tag si possono usare i<br />

programmi di utilità RETAG o ID2I, che vengono<br />

illustrati nei rispettivi capitoli.<br />

gizp/h=<br />

Il parametro gizp= genera un master file per ogni gizmo utilizzato<br />

nella linea di comando, producendo un resoconto sul trattamento cui i record sono<br />

stati sottoposti. Ogni base <strong>da</strong>ti avrà come prefisso ‘dbnx' più un numero<br />

sequenziale, ad esempio: dbnx0, dbnx1, dbnx2, etc. Il parametro /h indica che i<br />

<strong>da</strong>ti vengono memorizzati in esadecimale.<br />

Esempio:<br />

mx cds gizmo=codigo,80 gizmo=precod,87 now –all create=OUT<br />

gizp=dbnx<br />

Crea due master file in output: dbnx0 corrispondente all’elaborazione svolta con<br />

gizmo=codigo, e dbnx1 corrispondente all’elaborazione svolta con gizmo=precod.<br />

Ciascuno di questi master file conterrà un record per ogni voce del gizmo che sia<br />

stata effettivamente utilizzata durante l’esecuzione di MX. I campi creati sono:<br />

TAG Descrizione<br />

1 Campo 1 del file gizmo.<br />

67


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

TAG Descrizione<br />

2 Campo 2 del file gizmo.<br />

10 Numero di volte che questa conversione è stata effettuata durante l’elaborazione.<br />

31 Lunghezza in caratteri del campo 1.<br />

32 Lunghezza in caratteri del campo 2.<br />

Opzione [decod=]<br />

Nome di un master file che codifica/decodifica i <strong>da</strong>ti. Il file mf contiene il carattere<br />

che funge <strong>da</strong> separatore degli elementi <strong>da</strong> decodificare e il campo dove va<br />

applicato.<br />

Si dispone di due file di codifica, decodp e zdecsp:<br />

mx decodp<br />

mfn= 1<br />

1 "ZDECSP"<br />

2 ";"<br />

3 "87"<br />

3 "88"<br />

3 "71"<br />

3 "76"<br />

..<br />

mx zdecsp<br />

mfn= 2<br />

3 "Temefos"<br />

mfn= 3<br />

3 "Matadouros"<br />

mfn= 4<br />

3 "Abreviaturas"<br />

mfn= 5<br />

3 "Abdome"<br />

mx lilacs "pft=mfn/(|87=|v87/)(|88=|v88/)(|71=|v71/)(|76=|v76)#"<br />

432938<br />

87=^d731;^d9525^s22004;^d2465^s22004<br />

68


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

432937<br />

87=^d3977;^d1732^s22045;^d30912^s22045;^d7840;^d6893<br />

432936<br />

87=^d1942^s22004;^d2465^s22004;^d731<br />

76=841;21044;21030<br />

Unire basi di <strong>da</strong>ti - JOIN<br />

join=[:][,]=<br />

join=[:][,]= [jmax=]<br />

Il parametro join fa sì che uno o più record della stessa o di altre basi <strong>da</strong>ti si<br />

uniscano al record che sta venendo trattato al momento. Il record in fase di<br />

elaborazione può provenire <strong>da</strong> un master file ISIS, o <strong>da</strong> un ISO-2709, o <strong>da</strong> un file<br />

ASCII. Nel record di uscita si aggiungeranno tutti i campi dei record cui si è fatto<br />

riferimento (o solo i campi selezionati) e, inoltre, si creeranno campi di controllo<br />

recanti informazioni circa l’elaborazione (numerati a partire <strong>da</strong> 32001).<br />

Al parametro join possono venire passati i seguenti argomenti:<br />

Argomento Descrizione<br />

/ <br />

[:offset]<br />

[]<br />

<br />

@<br />

ARGOMENTI DEL PARAMETRO join<br />

Una base <strong>da</strong>ti alternativa in cui cercare record <strong>da</strong> unire al record che<br />

sta venendo elaborato. La base alternativa potrebbe essere la stessa<br />

di quella dei <strong>da</strong>ti in ingresso<br />

Posizionamento per i tag riuniti <strong>da</strong>l join<br />

Elenco dei campi che verranno estratti <strong>da</strong>i record della base <strong>da</strong>ti<br />

alternativa per aggiungerli al record in ingresso. Se non si specifica<br />

un elenco verranno aggiunti tutti i campi esistenti nei record<br />

reperiti. I campi del record reperito potranno venire rinumerati.<br />

Formato tramite cui si legge il record in entrata per estrarne chiavi<br />

che serviranno a reperire record nella base <strong>da</strong>ti alternativa. Può<br />

trattarsi di un formato esplicito o di un riferimento ad un file<br />

esterno.<br />

69


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Argomento Descrizione<br />

<br />

[jmax=]<br />

Esempio:<br />

ARGOMENTI DEL PARAMETRO join<br />

|@<br />

Bisogna generare la (le) chiave (i) in sintonia con l’I/F, e dunque in<br />

maiuscolo (uppercase)<br />

Limita la quantità di record che si aggiungono al record originale<br />

come effetto dell’azione del parametro join per ciascuna chiave<br />

generata. Questo limite viene applicato ad ogni parametro join della<br />

linea di comando.<br />

mx cds join=autor,2,3=mhu,(v70/) create=newcds -all now<br />

Descrizione<br />

1. Prende ogni record della base <strong>da</strong>ti cds.<br />

Per ogni nome di autore che scaturisce <strong>da</strong>ll’istruzione di formato mhu,(v70/)<br />

effettua una ricerca nella base autor. Se reperisce dei record nella base autor,<br />

aggiunge un campo di controllo e aggiunge i campi 2 e 3 di quei record dentro al<br />

record che sta venendo elaborato.<br />

Infine scrive il record nella base newcds.<br />

I seguenti diagrammi schematizzano il processo che si svolge quando MX esegue<br />

un join:<br />

70


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

71


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

72


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

E’ possibile indicare fino a 128 joins in una linea di comando MX. Ogni join<br />

successivo agirà sul record nello stato in cui si trova al momento, per cui se un<br />

join, o una qualsivoglia elaborazione anteriore, modifica il record d’origine in<br />

input, il join successivo lavorerà sui <strong>da</strong>ti esistenti al momento.<br />

Esempio:<br />

! Si<br />

ve<strong>da</strong> oltre la spiegazione sotto al parametro<br />

jmax=.<br />

• Si dispone di una base <strong>da</strong>ti AUTOR che contiene <strong>da</strong>ti normalizzati di autori,<br />

come si mostra qui di seguito:<br />

mfn= 1<br />

1 «Magalhaes, A.C.»<br />

2 «Ing. Agrónomo»<br />

3 «1935-1990»<br />

mfn= 2<br />

1 «Franco, C.M.»<br />

2 «Bioquímico»<br />

3 «1940-»<br />

...<br />

Si realizza la seguente operazione sulla base cds, il cui campo 70 contiene gli autori.<br />

mx cds join=AUTOR=mhu,(v70/)<br />

Dunque: si sommano tutti i campi della base autor alla base cds, si aggiungono i<br />

campi di controllo 32001. Le modifiche hanno effetto solo a schermo visto che non<br />

è stata indicata alcuna destinazione di output.<br />

!<br />

Il procedimento join comporta i seguenti passi:<br />

L’operazione presuppone che la base alternativa<br />

AUTOR sia munita di un inverted file in cui sarà<br />

possibile reperire le chiavi prodotte <strong>da</strong>i record<br />

della base cds quando letti con la specifica di<br />

formato mhu,(v70/).<br />

73


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

PROCEDIMENTO DEL PARAMETRO join<br />

Descrizione Nell’esempio<br />

1) Legge il record della base d’origine cds. Base origine: cds<br />

2) Applica il formato specificato nel join al record che sta venendo<br />

letto.<br />

Il modo di formato MHU, o MPU è necessario in generale per<br />

produrre le chiavi, visto che il file ISISUC.TAB stan<strong>da</strong>rd di CDS/ISIS<br />

converte le minuscole in maiuscole nella generazione dell’inverted<br />

file. Il record letto è il record proveniente <strong>da</strong>lla base cds.<br />

3) Per ogni chiave prodotta -ossia per ogni linea generata <strong>da</strong>l<br />

formato indicato- va ad estrarre l’MFN del prossimo posting trovato<br />

nell’inverted file della base <strong>da</strong>ti alternativa.<br />

4) Aggiunge al record originale un campo di controllo (ripetibile)<br />

32001 per il primo join, 32002 per il secondo join, etc. Il campo<br />

32001 conterrà tante occorrenze quante sono le diverse chiavi<br />

prodotte nel passo 2.<br />

5) Legge nella base alternativa il record corrispondente al MFN<br />

ottenuto e aggiunge i campi selezionati nella lista . Se non v’è<br />

indicazione particolare verranno presi tutti i campi.<br />

6) Torna ad eseguire il passo 2.<br />

mhu,(v70/)<br />

Elenco per la selezione e la rinumerazione dei campi<br />

<br />

• Selezione:<br />

Si possono selezionare campi del record alternativo nelle seguenti maniere:<br />

1. Indicando i numeros dei vari campi e separandoli con virgole<br />

mx cds join=AUTOR,1,2,3=mhu,(v70/)<br />

2. Indicando un intervallo di campi specificando estremi inferiore e<br />

superiore<br />

mx cds join=AUTOR,1/3=mhu,(v70/) copy=cds<br />

Base alternativa: AUTOR<br />

• Rinumerazione:<br />

Si indica il nuovo numero di un campo specificando nuovo numero:vecchio<br />

numero<br />

mx CDS "join=AUTOR,100:1=mhu,(v70/)"<br />

! In<br />

tutti i casi un campo verrà copiato per intero,<br />

tutte le occorrenze incluseo.<br />

74


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Contenuto dei campi di controllo (32001, 32002, etc.)<br />

I campi con tag 32001, 32002, etc. vengono generati <strong>da</strong> MX per documentare il<br />

procedimento del join.<br />

Esempio:<br />

32001 «AUTOR^l2^kFRANCO, C.M.^o2^m2»<br />

Campo Contenuto<br />

SOTTOCAMPI DEL CAMPO 32001<br />

Primo <strong>da</strong>to, senza indicatore di sottocampo: nome della base alternativa.<br />

^l[1|2] File subordinato dell’inverted file <strong>da</strong> cui è stata estratta la chiave:<br />

Per termini lunghi fino a 10 caratteri.<br />

Per termini con lunghezza compresa fra 11 e 30 caratteri.<br />

^k Chiave che ha originato la ricerca.<br />

^o Numero di occorrenza della chiave.<br />

^m MFN del record della base alternativa <strong>da</strong>lla quale provengono i <strong>da</strong>ti che si vanno ad<br />

aggiungere al record d’origine.<br />

Questo sottocampo non viene creato se nell’indice dizionario della base alternativa il<br />

termine cercato non viene trovato.<br />

Esempi:<br />

• L’esempio seguente produrrà l’esito mostrato più oltre. Si noti che il campo 1<br />

del record alternativo viene rinumerato come 100 quando viene copiato nel<br />

record originale.<br />

mx cds join=AUTOR,2,3,100:1=mhu,(v70/)<br />

mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

75


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

32001 «AUTOR^l2^kMAGALHAES, A.C.^o1^m1»<br />

100 «Magalhaes, A.C.»<br />

2 «Ing. Agrónomo»<br />

3 «1935-1990»<br />

32001 «AUTOR^l2^kFRANCO, C.M.^o2^m2»<br />

100 «Franco, C.M.»<br />

2 «Bioquimico»<br />

3 «1940-»<br />

..<br />

Si osservi che vengono prodotte più occorrenze del campo 32001, corrispondenti a<br />

ogni chiave generata <strong>da</strong>l record d’origine, e di seguito a ciascuna di esse<br />

compaiono i campi estratti <strong>da</strong> ciascuna chiave della base alternativa.<br />

Inoltre, siccome non è stata indicata alcuna destinazione per l’output le modifiche<br />

si concretizzano solamente sullo schermo.<br />

Lo stesso esito si sarebbe potuto ottenere con:<br />

mx cds join=AUTOR,1/3,100:1=mhu,(v70/)<br />

Dove il campo 1 è incluso nell’intervallo 1/3, e poi viene rinumerato come 100.<br />

!<br />

Come regola generale: indicare per prima la<br />

selezione dei campi <strong>da</strong> estrarre e poi le<br />

rinumerazioni che possono riguar<strong>da</strong>re campi<br />

compresi in detta selezione.<br />

E’ importante tenere presente che questi campi diventano campi della base <strong>da</strong>ti<br />

Per eliminarli si può utilizzare il parametro proc. Per esempio:<br />

mx cds proc='d32001' copy=cds -all now<br />

• Produrre un elenco di nomi di autori non validi:<br />

mx CDS join=AUTOR=mhu,(v70/) pft=@check.pft –all now<br />

Il file check.pft contiene le seguenti istruzioni di formato:<br />

if p(v32001) then (if a(v32001^m) then mfn,x2,v32001^k | No esiste|<br />

/ fi) fi<br />

76


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

!<br />

Join per numero di record<br />

Per effettuare la verifica dei termini il parametro<br />

jchk risulta più efficiente in quanto non esegue la<br />

fase di aggiunta dei campi dei record alternativi al<br />

record di origine.<br />

E’ possibile realizzare un join grazie al numero di MFN. In questo caso<br />

la’istruzione di formato dovrà incluidere, all’inizio, la stringa mfn seguita <strong>da</strong>l<br />

numero di record che si deve recuperare.<br />

Il procedimento di join per MFN non necessita dell’esistenza di un inverted file.<br />

Esempi:<br />

• Supponiamo che un file di nome NUMS contenga una lista con i numeri dei<br />

record che si desidera estrarre <strong>da</strong>lla base CDS.<br />

mx seq=NUMS join=CDS='mfn=',v1 create=EXPORT now -all proc='d1/1d32001'<br />

La base che ne scaturisce, di nome EXPORT, contiene due campi che non sono<br />

presenti nei record di CDS. Il campo 1 che proviene <strong>da</strong>l file NUMS, in cui ogni<br />

singola linea è stata assunta come un record costituito di un unico campo, e il<br />

campo 32001 che si genera per rendicontare il procedimento del join. Infine questi<br />

due campi vengono eliminati col procedimento proc.<br />

Supponiamo che il master file di nome SORTED contenga i propri record ordinati in<br />

base al campo 10 (non ripetibile).<br />

mx SORTED "join=SORTED=if mfn > 1 then 'mfn=',f(mfn-1,1,0) fi"<br />

pft=@unavez.pft –all now<br />

La seguente istruzione di formato estrae un’unica volta i distinti contenuti del<br />

campo 10:<br />

if v10[1] v10[2] then v10[1]/ fi<br />

77


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

!<br />

Parametro [jmax=]<br />

Si osservi che v10[1] è il contenuto del campo 10<br />

del record di origine e che v10[2] è il contenuto<br />

del campo 10 del record ottenuto grazie al<br />

parametro join. In altre parole, v10[1] è la chiave<br />

attuale e v10[2] è la chiave del record precedente<br />

(mfn-1).<br />

Il parametro jmax= limita il numero di record che vengono aggiunti al record<br />

d’origine come effetto dell’azione del parametro join a fronte d’ogni chiave<br />

generata. Questo limite si impone ad ogni parametro join della riga di comandi.<br />

Se si indicano più jmax, è solo l’ultimo che conterà, per cui si raccoman<strong>da</strong> di<br />

indicarlo una sola volta dopo avere indicato tutti i joins e jchks necessari al<br />

procedimento. Per default il valore di jmax è infinito.<br />

! E’<br />

Confrontare basi <strong>da</strong>ti e inverted file<br />

possibile usare fino a un massimo di 128<br />

parametri join e jchk insieme.<br />

jchk=[+]=}<br />

Il parametro jchk si usa per confrontare record (provenienti <strong>da</strong> un master file, <strong>da</strong><br />

un ISO-2709 o <strong>da</strong> un file ASCII) e le voci di un inverted file.<br />

Al parametro jchk possono venire passati i seguenti argomenti:<br />

Argomento Descrizione<br />

ARGOMENTI DEL PARAMETRO jchk<br />

Un inverted file alternativo nel quale verranno cercate le chiavi<br />

estratte <strong>da</strong>l record che si sta trattando.<br />

[+] Una lista di parole <strong>da</strong> scartare (stopword file), facoltativa.<br />

L’impiego di questa opzione fa sì che le chiavi vengano estratte<br />

secondo la tecnica di indicizzazione parola per parola (IT 4) e<br />

che ogni chiave generata venga filtrata attraverso il file delle<br />

stopwords.<br />

78


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

ARGOMENTI DEL PARAMETRO jchk<br />

Argomento Descrizione<br />

<br />

Formato grazie a cui si legge il record in ingresso per estrarre<br />

@<br />

chiavi tramite cui si cercheranno termini dentro l’inverted file.<br />

Può essere un formato esplicito o può consistere in un<br />

riferimento ad un file esterno.<br />

Lo schema seguente illustra come si svolgono le chiamate del jchk:<br />

79


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Per gli esempi si utilizzera la stessa base AUTOR che è stata utilizzata con il join.<br />

Esempio<br />

mx CDS jchk=AUTOR=mhu,(v70/)<br />

L’esecuzione del jchk si articola nei seguenti passi:<br />

ESECUZIONE DEL jchk<br />

SPIEGAZIONE NELL’ESEMPIO<br />

1) Prende un record nella base <strong>da</strong>ti d’ingresso, cioè di<br />

Un record di cds<br />

origine.<br />

2) Esegue il formato indicato come argomento del jchk sul<br />

record origine e considera ogni linea prodotta <strong>da</strong> tale<br />

formato come una chiave di ricerca. Il modo di formato Formato: mhu,(v70)/<br />

MHU, o MPU, è indispensabile, in generale, per produrre Record d’origine: record che proviene<br />

le chiavi, visto che il file ISISUC.TAB stan<strong>da</strong>rd di<br />

<strong>da</strong>lla base cds.<br />

CDS/ISIS converte le minuscole in maiuscole per generare<br />

l’inverted file.<br />

3) A fronte di ciascuna chiave prototta nel passo<br />

Inverted file alternativo: AUTOR<br />

precedente effettua una ricerca nell’inverted file.<br />

4) Aggiunge al record origine in input un campo<br />

(ripetibile) 32001 per il primo jchk, 32002 per il secondo Al record che sta venendo elaborato si<br />

jchk, etc. Il campo 32001 conterrà tante occorrenze quante sommano i campi di controllo.<br />

sono le chiavi prodotte durante il passo 2.<br />

! Il<br />

passo (3) non utilizza il file IFP.<br />

Se la chiave è presente nell’inverted file, jchk calcola che è una chiave vali<strong>da</strong> e nel<br />

passo (4) aggiungerà all’output nel campo 32001 un sottocampo ^m con valore 1,<br />

in caso contrario il campo 32001 non conterrà un sottocampo ^m.<br />

Esempio:<br />

L’esempio produrrà l’output che si mostra qui di seguito.<br />

mx cds jchk=AUTOR=MHU,(v70/)<br />

mfn= 1<br />

80


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

32001 «AUTOR^l2^kMAGALHAES, A.C.^o1^m1»<br />

32001 «AUTOR^l2^kFRANCO, C.M.^o2^m1»<br />

..<br />

Contenuto dei campi di controllo (32001, 32002, etc.)<br />

Il campo 32001 e i successivi vengono creati per rendicontare il risultato dello<br />

svolgimento di jchk, e si compone dei seguenti sottocampi:<br />

Esempio:<br />

32001 «AUTOR^l2^kFRANCO, C.M.^o2^m1»<br />

SOTTOCAMPI DEL CAMPO 32001<br />

Campo Contenuto<br />

Primo <strong>da</strong>to, senza indicatore di sottocampo: nome dell’inverted file alternativo;<br />

^l[1/2] File subordinato dell’inverted file <strong>da</strong> cui è stata estratta la chiave:<br />

1 per termini lunghi fino a 10 caratteri<br />

2 per termini con lunghezza compresa fra 11 e 30 caratteri.<br />

^k Chiave usata per la ricerca;<br />

^o Numero d’occorrenza del campo del record originale <strong>da</strong> cui è stata tratta la chiave.<br />

^m1 Se la chiave esiste si crea un sottocampo m che contiene: "1".<br />

Se la chiave non esiste nell’inverted file alternativo il sottocampo ^m non viene creato.<br />

Esempio:<br />

1. Produrre un elenco di nomi di autori non validi:<br />

mx CDS jchk=AUTOR=mhu,(v70/) pft=@check.pft –all now<br />

81


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Il file check.pft contiene le seguenti istruzioni di formato:<br />

if p(v32001) then (if a(v32001^m) then mfn,x2,v32001^k | No esiste|<br />

/ fi) fi<br />

Si noti che questo esempio è uguale a quello realizzato con join però il tempo di<br />

esecuzione è più breve <strong>da</strong>l momento che non è necessario effettuare un ref per<br />

ciascun termine e recuperare il record.<br />

Vantaggi del jchk rispetto al join<br />

L’esecuzione è molto più veloce perché non è necessario realizzare un accesso al<br />

record ma è sufficiente sapere che il termine esiste.<br />

Altro vantaggio risiede nel fatto che jchk non usa il file .IFP. Se si distribuiscono<br />

liste di voci controllate (authority files) non è necessario annettere questo file, il<br />

che si traduce in un risparmio di spazio disco.<br />

!<br />

Tabella per la conversione dei caratteri<br />

E’ possibile specificare fino a 16 jchk e join in una<br />

linea di comando MX. Si ve<strong>da</strong> oltre: jmax=<br />

nella sezione <strong>Parametri</strong> che modificano record<br />

del Capitolo: <strong>Parametri</strong> che effettuano<br />

elaborazioni sull’input.<br />

Il parametro convert=ansi converte i caratteri ASCII decimali in caratteri<br />

convert=ansi<br />

alfanumerici definiti in una tabella interna allestita all’uopo. Per default CISIS usa<br />

caratteri ASCII definiti per la versione IBM PC, secondo la pagina di codici (CP)<br />

attivata nell’elaboratore.<br />

Tabella per la definizione dei caratteri alfanumerici<br />

[actab= |ansi ]<br />

82


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Mediante il parametro actab si indica la tabella di codici ASCII in decimale per i<br />

caratteri alfanumerici che saranno considerati come componenti di parole. Questa<br />

tabella viene utilizzata <strong>da</strong>lla tecnica d’indicizzazione (IT indexing technique)<br />

parola per parola (IT 4, 8, 1004, 1008). actab=ansi utilizza una tabella interna per<br />

tale procedimento.<br />

Se questo parametro non viene specificato, CISIS usa la tabella stan<strong>da</strong>rd<br />

corrispondente di CDS/ISIS (ISISAC.TAB) definita per la versione IBM PC.<br />

Tabella per la conversione in maiuscolo dei caratteri<br />

alfabetici<br />

[uctab=|ansi]<br />

Tramite il parametro uctab si indica la tabella di conversione dei 256 caratteri<br />

ASCII nei corrispondenti in maiuscolo.<br />

Se non si specifica il parametro CISIS usa la tabella stan<strong>da</strong>rd corrispondente di<br />

CDS/ISIS (ISISUC.TAB) definita per la versione IBM PC. uctab=ansi utilizza una<br />

tabella interna per tale conversione.<br />

Tabella di selezione dei campi - generazione di chiavi -<br />

FST<br />

fst[/h]={|@[]} [stw=@[]]<br />

ln{1|2}= [+fix[/m]]<br />

Il parametro fst estrae le chiavi del record secondo le istruzioni della tabella FST e<br />

il file facoltativo delle stopword. Se si indicano gli argomenti ln1 e/o ln2, le chiavi<br />

generate vengono conservate in questi file. Se questi argomenti non vengono<br />

indicati le chiavi si aggiungono come nuovi campi al record che si sta trattando,<br />

con tag uguale all’identificatore della linea della FST <strong>da</strong> dove sono stati estratti.<br />

83


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Qualora già esistano occorrenze del campo con tale tag, le nuove si sommano a<br />

quelle.<br />

Esempio:<br />

mx cds "fst=24 4 v24"<br />

mfn= 1<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

24 «TECHNIQUES^m1^o1^c1^l1»<br />

24 «FOR^m1^o1^c2^l1»<br />

24 «THE^m1^o1^c3^l1»<br />

24 «MEASUREMENT^m1^o1^c4^l2»<br />

24 «OF^m1^o1^c5^l1»<br />

24 «TRANSPIRATION^m1^o1^c6^l2»<br />

24 «OF^m1^o1^c7^l1»<br />

24 «INDIVIDUAL^m1^o1^c8^l1»<br />

24 «PLANTS^m1^o1^c9^l1»<br />

Contenuto dei sottocampi:<br />

Sottocampo Contenuto<br />

CHIAVE Estratta con la FST indicata.<br />

^m MFN <strong>da</strong> cui si estrae la chiave.<br />

^o Occorrenza del campo in cui questa chiave compare.<br />

^c Posizione sequenziale di questa chiave dentro al campo.<br />

^l[1/2] File in cui viene memorizzata la chiave:<br />

1 per i termini fino a 10 caratteri di lunghezza<br />

2 per i termini lunghi <strong>da</strong> 11 a 30 caratteri.<br />

Riferimento ad una tabella di selezione dei campi esterna<br />

fst[/h]=@[]<br />

Piuttosto che scrivere sulla riga di comando le istruzioni di una FST si può<br />

richiamarne una esterna già pronta:<br />

84


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

mx CDS fst=@newcds.fst<br />

Esempio:<br />

!<br />

mx CDS fst=@cds.fst<br />

E’ equivalente a:<br />

mx CDS fst=@<br />

Se si usano nomi stan<strong>da</strong>rd di MicroISIS si può<br />

scrivere anche solo @, quando lo incontra MX lo<br />

assume che il nome della FST è il nome della base<br />

in ingresso con l’estensione fst.<br />

Il parametro /h consente che il formato di estrazione delle chiavi non sia limitato a<br />

30 (60) caratteri. Tutte le chiavi vengono generate dentro al campo 33000,<br />

generando un’occorrenza di tale campo a fronte di ogni riga di estrazione della FST<br />

e non a fronte di ogni occorrenza dei <strong>da</strong>ti d’origine.<br />

File di parole non significative (stopwords)<br />

stw=@[]<br />

Grazie all’impiego di un file di parole non significative (stopwords) si evita la<br />

creazione di termini d’indice non significativi (pronomi, preposizioni, etc.).<br />

Un file di parole non significative è un file ASCII con una parola per linea.<br />

Esempio:<br />

!<br />

mx cds fst=@cds.fst stw=@<br />

Se si scrive stw=@ MX intende che si tratta del<br />

nome stan<strong>da</strong>rd assegnato <strong>da</strong> MicroISIS, e<br />

dunque: .stw.<br />

85


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

E’ equivalente a:<br />

mx cds fst=@cds.fst stw=@cds.stw<br />

Esempio:<br />

!<br />

L’esempio seguente utilizza un file di stopwords.<br />

Si rammenti che un file di parole non significative<br />

ha senso solo se si utilizzano le tecniche di<br />

indicizzazione parola per parola: IT 4, IT 8, IT<br />

1004 o IT 1008. Inoltre, per definizione, le parole<br />

non significative possono avere una lunghezza<br />

massima di 10 caratteri.<br />

L’esempio presuppone l’esistenza di un file di stopwods (cds.stw) col seguente<br />

contenuto:<br />

A<br />

AN<br />

AND<br />

AS<br />

BY<br />

FOR<br />

FROM<br />

IN<br />

INTO<br />

ITS<br />

OF<br />

ON<br />

THE<br />

TO<br />

UPON<br />

WITH<br />

Sequenza di comandi:<br />

mx CDS "fst=24 4 v24" stw=@cds.stw<br />

Mfn= 1<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

86


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

24 «TECHNIQUES^m1^o1^c1^l1»<br />

24 «MEASUREMENT^m1^o1^c4^l2»<br />

24 «TRANSPIRATION^m1^o1^c6^l2»<br />

24 «INDIVIDUAL^m1^o1^c8^l1»<br />

24 «PLANTS^m1^o1^c9^l1»<br />

..<br />

!<br />

Gli esempi non recano l’indicazione di una base<br />

<strong>da</strong>ti o di un file di destinazione per cui le<br />

modifiche appariranno a schermo però poi<br />

svaniranno.<br />

Tecniche de indicizzazione 1-8 / 1000 - 1008<br />

L’interfaccia CISIS può trattare tutte le tecniche d’indicizzazione (IT indexing<br />

technique) stan<strong>da</strong>rd di MicroISIS, (IT 0 a IT 8), cui si sommano le nuove tecniche<br />

(IT 1000 - IT 1008).<br />

Le tecniche IT 1000...1008 generano una chiave composta di:<br />

1000+IT ‘/’, , ’/’, <br />

1. Carattere delimitatore di apertura.<br />

2. MFN.<br />

3. Un carattere delimitatore di chiusura (identico a quello d’apertura).<br />

4. La chiave normale estratta secondo la corrispondente IT, <strong>da</strong> 0 a 8 .<br />

Esempi:<br />

1 1004 ‘|’, f(l->idif(id.10),1,0), ’|’, (v83^*)<br />

1 1004 ‘|’, v98 ’|’, v83<br />

Come risultato di questa tecnica è possibile controllare <strong>da</strong> programma la<br />

componente MFN del posting prodotto.<br />

Esempio:<br />

1. Supponendo che nel campo 999 del primo record della base cds si trovi il valore<br />

23, e che il record 2 non abbia il campo 999. A questo punto la riga:<br />

mx CDS to=2 "fst=1 1000 '/', if p(v999) then v999 else mfn<br />

fi,'/',,,(|AU=|v70/) "<br />

87


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

produce l’esito:<br />

mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

999 «23»<br />

1 «AU=MAGALHAES, A.C.^m23^o1^c1^l2»<br />

1 «AU=FRANCO, C.M.^m23^o1^c2^l2»<br />

..<br />

mfn= 2<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 « Controlled climate in the plant chamber and its influence<br />

upon assimilation and transpiration»<br />

26 «^c1965»<br />

30 «^ap. 225-232^billus.»<br />

70 «Bosian, G.»<br />

1 «AU=BOSIAN, G.^m2^o1^c1^l2»<br />

..<br />

Si noti che nel record MFN=1 i postings degli autori sono segnalati come<br />

provenienti <strong>da</strong>l MFN=23, mentre nel record MFN=2 si è prodotto un posting<br />

stan<strong>da</strong>rd<br />

Esempio<br />

• Indicizzare le parole di un testo esterno associato ad un record<br />

1 1004 '/',mfn,'/' proc('Gload=archivo.txt'=v1)<br />

88


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

! La<br />

Generazione dei link file<br />

dimensione massima di un testo esterno è di<br />

32 kb.<br />

ln1=/ ln2=<br />

Se al parametro fst si aggiungono gli argomenti ln1 y/o ln2 si generano i link file<br />

corrispondenti.<br />

Se si desidera che tali file abbiano l’estensione stan<strong>da</strong>rd di CDS/ISIS occorrerà<br />

indicarlo esplicitamente. In CISIS i file possono avere le estensioni stan<strong>da</strong>rd di<br />

ISIS (pft, fst, ln1, ln2, etc.) oppure no.<br />

Esempi:<br />

mx CDS "fst=24 4 v24" ln1=cds.ln1 -all to=10 now<br />

mx CDS fst=@cds.fst ln2=cds.ln2 -all to=10 now<br />

mx CDS fst=@otra ln1=cds.ln1 ln2=cds.ln2 -all to=10 now<br />

mx CDS fst=@otra ln1=otro.1 ln2=otro.2 -all to=10 now<br />

Link file a lunghezza fissa<br />

Opzione +fix[/m]<br />

L’opzione +fix[/m] genera i file .ln[1/2] a lunghezza fissa, non secondo lo stan<strong>da</strong>rd<br />

di CDS/ISIS, e che potranno venire trattati solo con CISIS. I file a lunghezza fissa<br />

esigono più spazio disco però possono venire ordinati più rapi<strong>da</strong>mente.<br />

L’output stan<strong>da</strong>rd di CDS.LN1, riconosciuto <strong>da</strong> CDS/ISIS è:<br />

1 24 1 1 TECHNIQUES<br />

1 24 1 8 INDIVIDUAL<br />

1 24 1 9 PLANTS<br />

L’output speciale a lunghezza fissa ha invece questa struttura:<br />

89


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

CHIAVE MFN TAG OCC CNT<br />

mx CDS "fst=24 4 v24" ln1=cds.ln1 +fix<br />

Che produrrà il file seguente:<br />

TECHNIQUES<br />

INDIVIDUAL<br />

PLANTS<br />

1<br />

1<br />

1<br />

24<br />

24<br />

24<br />

1<br />

1<br />

1<br />

Con l’opzione +fix/m si genereranno file .ln[1/2] a lunghezza fissa e con solo la<br />

CHIAVE e l’MFN del posting.<br />

I link file con CHIAVE e MFN, privi delle componenti TAG e OCC, sono<br />

particolarmente indicati per applicazioni che utilizzano più di un inverted file, tutti<br />

generati a partire <strong>da</strong>llo stesso master file.<br />

Output<br />

Esecuzione di un programma esterno<br />

1<br />

8<br />

9<br />

sys[/show]={ | @}<br />

Il parametro sys= ritar<strong>da</strong> l’esecuzione di un comando del sistema operativo, e ciò<br />

va stabilito con un’istruzione di formato. Il risultato di questo formato deve<br />

produrre comandi validi per il sistema operativo.<br />

Ogni linea generata <strong>da</strong>l formato verrà man<strong>da</strong>ta in esecuzione come un comando<br />

del sistema operativo.<br />

Esempio:<br />

Supponendo che nel campo 777 dei record della base <strong>da</strong>ti si trovi il nome di un file<br />

di testo (alltext1.txt ) che si desidera mostrare, e che contiene testo ASCII (poniamo<br />

sia il testo completo di un lavoro):<br />

Aggiungere al record 1 della base cds il campo 777 avente per contenuto alltext1.txt<br />

mx cds to=1 proc='a777#alltext1.txt#’ copy=cds<br />

90


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Creare un file alltext1.txt con un qualche contenuto<br />

Man<strong>da</strong>re in esecuzione MX richiedendo con il parametro sys che mostri il file<br />

alltext1.txt<br />

mx cds "sys=if p(v777) then 'more 'v777 fi"<br />

!<br />

L’esempio seguente è sbagliato:<br />

L’istruzione di formato del sys non va confusa con<br />

la formattazione dei <strong>da</strong>ti in output, per formattare<br />

record si usa il parametro pft, già visto nella<br />

prima sezione del Capitolo <strong>Parametri</strong> che<br />

svolgono elaborazioni sui <strong>da</strong>ti in entrata (input).<br />

mx cds "sys=if v24:'water' then mfn/ ‘dir *.mst' fi"<br />

Va formulato invece così:<br />

mx cds "pft=if v24:'water' then mfn/ fi" "sys=if v24:'water' then ‘dir<br />

*.mst ' fi"<br />

Opzione /show<br />

L’opzione /show blocca l’esecuzione del comando indicato in sys, mostra il<br />

comando che verrà eseguito e attende l’intervento dell’operatore per procedere.<br />

mx cds "sys/show=if v24:'water' then ‘dir *.mst' fi" to=20 now<br />

Un’applicazione del parametro sys potrebbe consistere nell’eseguire un<br />

programma esterno sui <strong>da</strong>ti di un record, per visualizzare, ad esempio,<br />

un’immagine il cui nome di file è memorizzato in un campo.<br />

Esempio:<br />

mx cds -all "sys=|\isis\sys\vgif.exe |v100^a"<br />

!<br />

Perché l’esempio funzioni occorre che il file<br />

vgif.exe (programma di visualizzazione di<br />

immagini) si trovi in \isis\sys\.<br />

91


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

<strong>Parametri</strong> che creano/modificano basi <strong>da</strong>ti<br />

{create | copy | append | merge | up<strong>da</strong>tf}=<br />

Creazione di un master file<br />

create=<br />

Il parametro create crea e senz’altro inizializza un master file con il nome<br />

assegnato in , master file nel quale verranno memorizzati i record<br />

risultanti <strong>da</strong>ll’elaborazione.<br />

Esempi:<br />

!<br />

Se già esiste una base <strong>da</strong>ti con lo stesso nome<br />

questa verrà azzerata e reinizializzata senza<br />

chiedere nulla all’operatore, facendo perdere<br />

dunque tutti i <strong>da</strong>ti.<br />

• Il seguente esempio legge i record <strong>da</strong> 10 a 20 della base cds e li scrive nella base<br />

cds2;<br />

mx cds from=10 to=20 create=cds2 now -all<br />

!<br />

I record <strong>da</strong> 1 a 9 della base cds2 risultano<br />

cancellati fisicamente (ossia non esistono) e i<br />

record <strong>da</strong> 10 a 20 sono quelli che provengono<br />

<strong>da</strong>lla base cds.<br />

• Creare una base <strong>da</strong>ti coi record restituiti <strong>da</strong> una ricerca:<br />

mx cds "plants and water" create=plawat now -all<br />

! I<br />

record in uscita vengono scritti mantenendo gli<br />

stessi MFN di partenza.<br />

• Creare una base a partire <strong>da</strong> un file ISO-2709 (il file cds.iso dovrà essere<br />

presente):<br />

mx iso=cds.iso create=cds3 now -all<br />

92


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

!<br />

Copiare record su un master file<br />

Si tenga presente che in questi esempi si utilizza il<br />

parametro now, che fa sì che MX non presenti il<br />

prompt fra i vari record (e sosti attendendo<br />

risposta) e che il parametro -all fa sì che non<br />

vengano inviati <strong>da</strong>ti sullo schermo.<br />

copy=<br />

Il parametro copy scrive i record che sono stati trattati nel master file di uscita<br />

mantenendo l’MFN del record letto. Se in già esiste un<br />

record con lo stesso mfn il contenuto di questo verrà azzerato e se il record non<br />

esiste verrà creato.<br />

Quando la base di output () è la stessa di quella di input, copy funziona<br />

come una modifica dei record, essi vengono letti, modificati e scritti nella stessa<br />

base col medesimo mfn.<br />

A differenza del create il copy non reinizializza la base di destinazione.<br />

Se la base di destinazione non esiste, viene creata. In tal caso copy funziona<br />

esattamente come il create.<br />

Esempi:<br />

!<br />

Quando l’origine dei <strong>da</strong>ti è un file ISO 2709 o un<br />

file di testo, i record si aggiungono come nuovi<br />

dopo l’ultimo, in ragione del fatto che i record<br />

letti non recano un MFN (a meno che non venga<br />

specificato il parametro from=).<br />

• Copiare i record <strong>da</strong> 30 a 40 della base cds nella base cds2:<br />

mx cds copy=cds2 now from=30 to=40 -all<br />

• Copiare l’esito di una ricerca in una nuova base <strong>da</strong>ti:<br />

mx cds water copy=cds2 now -all<br />

• Leggere record di un file ISO 2709 e memorizzarli in una base già esistente:<br />

mx iso=cds.iso copy=cds2 now -all<br />

93


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

!<br />

Aggiungere record a una base <strong>da</strong>ti<br />

Si badi che in questi esempi si usa il parametro<br />

now, in virtù del quale MX non propone il prompt<br />

(fermandosi in attesa) fra record e il parametro -<br />

all fa sì che nessun output va<strong>da</strong> a schermo.<br />

append=<br />

Il parametro append memorizza i record trattati come nuovi record nella base di<br />

uscita dopo l’ultimo esistente. A differenza di create e di copy, i record trattati<br />

perdono il loro mfn d’origine.<br />

Se la base di arrivo non esiste viene creata.<br />

Esempi:<br />

• Aggiungere i record <strong>da</strong> 30 a 40 della base cds alla base cds2:<br />

mx cds append=cds2 now from=30 to=40 -all<br />

• Aggiungere il risultato di una ricerca a una nuova base <strong>da</strong>ti:<br />

mx cds "plants * water" append=cds2 now -all<br />

• Leggere i record di un file ISO 2709 e memorizzarli in una base già esistente:<br />

mx iso=cds.iso append=cds2 now -all<br />

Fondere/Intercalare record<br />

merge=<br />

Il parametro merge scrive i record trattati nella base di uscita solamente nel caso<br />

in cui essi non esistano in .<br />

Supponendo che nella base esistano tutti i record fra MFN=1 e<br />

MFN=20 ad eccezione del record MFN=10, e che consista di 15 record<br />

con MFN <strong>da</strong> 1 a 15. Se eseguiamo un merge, la base risultante sarà composta di 20<br />

record, fra cui il 10 proviene <strong>da</strong> e i restanti sono quelli che si trovavano<br />

già in .<br />

94


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Se la base di arrivo non esiste verrà creata.<br />

Esempi:<br />

!<br />

Quando l’origine dei <strong>da</strong>ti è un file ISO 2709 o un<br />

file di testo i record si aggiungono come nuovi<br />

record dopo l’ultimo. Accade così perché i record<br />

in ingresso non possiedono numero di record.<br />

• Inserire i record di cds, con mfn compreso fra 1 e 20, che non siano già in cds2:<br />

mx cds merge=cds2 now from=1 to=20<br />

• Inserire i record restituiti <strong>da</strong> una ricerca eseguita in cds e che non siano già in<br />

cds2:<br />

mx cds merge=cds2 energy$ -all now<br />

Aggiornamento di campi<br />

up<strong>da</strong>tf=<br />

Il parametro up<strong>da</strong>tf (up<strong>da</strong>te fields) prende i <strong>da</strong>ti del record in entrata e rimpiazza i<br />

campi del record di output nel caso che i tags coinci<strong>da</strong>no.<br />

out_dbn è la base che contiene i record coi campi <strong>da</strong> aggiornare e che verranno<br />

riscritti. Il processo di aggiornamento che MX attua su out_dbn è il seguente:<br />

1. Legge un record nella base di entrata ed esegue i procedimenti gizmo, join,<br />

proc, fst, se sono stati indicati;<br />

2. cerca un record col medesimo mfn dentro out_dbn, col seguente risultato:<br />

° tutti i campi del record letto in out_dbn che esistono nel record letto della<br />

base di partenza vengono rimpiazzati <strong>da</strong> quest’ultimi,<br />

° tutti i campi del record letto di out_dbn che non esistono nel record letto<br />

della base di partenza vengono conservati,<br />

3. Riscrive il record in out_dbn.<br />

!<br />

I record della base di partenza, eventualmente<br />

trattati <strong>da</strong> altri procedimenti di MX, devono<br />

necessariamente trovarsi in out_dbn.<br />

Quando si specifica il parametro up<strong>da</strong>tf non si<br />

possono specificare altri parametri di output.<br />

95


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Esempi:<br />

Ci sono due basi <strong>da</strong>ti:<br />

!<br />

INPUT CDS<br />

Mfn= 1<br />

Mfn= 1<br />

1 «campo 1<br />

nuevo»<br />

2 «campo 2<br />

nuevo»<br />

4 «campo 4<br />

nuevo»<br />

Il risultato della esecuzione del parametro up<strong>da</strong>tf<br />

non viene visualizzato <strong>da</strong> MX, cioè: il record che<br />

viene riscritto in out_dbn non viene visualizzato<br />

mentre si visualizza il record che va ad aggiornare<br />

quello.<br />

44 «Methodology of plant ecophysiology:<br />

proceedings<br />

69 «Paper on: <br />

24 «Techniques for the<br />

measurement of transpiration<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

1 «campo1»<br />

1 «campo 1b»<br />

2 «campo 2»<br />

2 «campo2b»<br />

2 «campo 2c»<br />

3 «campo3»<br />

Il seguente esempio esemplifica l’aggiornamento dei campi dei record di CDS<br />

assumendo come fonte i record della base INPUT<br />

mx INPUT up<strong>da</strong>tf=CDS -all now<br />

mx CDS<br />

Questo è il risultato di un record della base CDS con i mutamenti verificatisi:<br />

mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings<br />

96


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

69 «Paper on: <br />

24 «Techniques for the measurement of transpiration<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

3 «campo3»<br />

1 «campo 1 nuevo»<br />

2 «campo 2 nuevo»<br />

4 «campo 4 nuevo»<br />

Si osservi che i campi 1 e 2 di CDS sono stati rimpiazzati <strong>da</strong> quelli che provengono<br />

<strong>da</strong>lla base INPUT, mentre gli altri campi (ivi compreso il 3) non sono stati alterati, e<br />

nemmeno è stato aggiunto il campo 4.<br />

Generare un file ISO 2709<br />

[out]iso[={marc|}]= [outisotag1=]<br />

Il programma MX può leggere e scrivere indifferentemente file in formato ISO<br />

2709 e applicarvi gli stessi procedimenti che realizza su .MST/.XRF (a parte quelli<br />

che richiedono l’uso dell’inverted file ossia dell’indice dizionario).<br />

L’opzione iso= o iso=marc|= permette di generare<br />

file ISO 2709. Così come si crea un master file quale esito di un’elaborazione, del<br />

pari si può creare un file ISO 2709.<br />

Con l’opzione iso== si può indicare un lunghezza fissa di riga.<br />

Quest’opzione si usa per scambiare file .ISO di PC con programmi più potenti<br />

come il MINISIS della HP. Il separatore di campo e il separatore di record nel file<br />

prodotto <strong>da</strong> MX sono rappresentati <strong>da</strong>l carattere #. Indicando iso=0=<br />

le linee costituenti i record avranno lunghezza variabile.<br />

L’opzione iso=marc= genererà linee di output con le seguenti<br />

caratteristiche compatibili con quanto stipulato <strong>da</strong>l MARC:<br />

• Linee a lunghezza variabile<br />

• I separatori di campo e record saranno i caratteri ASCII ‘\029’ ‘\030’<br />

97


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

• Le linee saranno chiuse solo <strong>da</strong> ‘\012’ senza che vi sia anche il ‘\013’ (CR).<br />

Esempi:<br />

• Questo esempio produce un file ISO 2709 a partire <strong>da</strong>lla base CDS<br />

mx CDS iso=sali<strong>da</strong>.iso -all now<br />

• Prende in entrata una base <strong>da</strong>ti (CDS), esegue una ricerca (plants and water) e coi<br />

record reperiti genera un file ISO 2709 in uscita (cds.iso).<br />

mx cds "plants and water" iso=cds.iso now -all<br />

• Questo esempio genera un file ISO-2709 con il record 1 della base CDS, con<br />

lunghezza di linea fissa=40.<br />

mx cds iso=40=sali<strong>da</strong>.iso to=1 now -all<br />

• Crea un output del tipo:<br />

0040900000000010900045000440078000000690<br />

0790007802400690015702600230022603000210<br />

0249070001600270070001300286#Methodology<br />

of plant eco-physiology: proceedings of<br />

the Montpellier Symposium#Paper on: #Techniques for<br />

the measurement of transpiration of ind<br />

ividual plants#^aParis^bUnesco^c-1965#^a<br />

p. 211-224^billus.#Magalhaes, A.C.#Franc<br />

o, C.M.##<br />

! Si<br />

osservi che l’ultima linea è riempita con spazi<br />

sulla destra fino al margine.<br />

Si rammenti che un file ISO 2709 si può leggere con MX, anche indicando<br />

solamente che sarà <strong>da</strong> prendere come fonte dei <strong>da</strong>ti in ingresso:<br />

mx iso=cds.iso<br />

Generare un file ASCII con separatori<br />

fix=<br />

98


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Visualizza ogni record su una sola linea in formato ASCII puro, separando tutti i<br />

campi con la barra verticale ( | ). L’informazione relativa al TAG –etichetta- va<br />

perduta. L’ampiezza massima della linea dipende <strong>da</strong>l sistema operativo.<br />

Esempio:<br />

• Si dispone di una base <strong>da</strong>ti di nome ADMIN che contiene i <strong>da</strong>ti di<br />

pubblicazione, titolo e prezzo di ciascun libro. L’istruzione seguente genera il<br />

file d’uscita PRECIOS:<br />

mx admin fix=precios now -all<br />

File PRECIOS:<br />

Editorial 1|Titulo 1|124<br />

Editorial 1|Titulo 2|100<br />

Editorial 2|Titulo 3|89<br />

Editorial 2|Titulo 4|99<br />

Editorial 2|Titulo 5|101.50<br />

Questo file può venire importato in altri programmi che riconoscano campi <strong>da</strong>ti<br />

separati <strong>da</strong> delimitatori. Per esempio, lo si può importare in un foglio elettronico<br />

come Excel per effettuare calcoli e/o analisi di tipo statistico, economico, etc.<br />

Recuperare i <strong>da</strong>ti del Leader del record<br />

[[out]isotag1=]<br />

I record MARC memorizzano <strong>da</strong>ti anche nelle posizioni 5-8 e 17-19 della gui<strong>da</strong><br />

(leader) del record. Le istruzioni di formato di CISIS non accedono direttamente a<br />

queste posizioni, però è possibile convertire questi byte nei campi convenzionali<br />

del master file tanto all’entrata dei record come all’uscita in esportazione.<br />

Nella fase di ingresso i <strong>da</strong>ti del leader vengono caricati in una serie consecutiva di<br />

campi a partir <strong>da</strong> un valore base + la posizione del byte del leader. Por esempio, se<br />

si indica come valore base il campo 3000, il byte 5 del leader verrà caricato nel<br />

campo 3005. Durante l’esportazione <strong>da</strong> questi campi verranno estratti i valori<br />

presenti per registrarli nelle corrispondenti posizioni del leader. Se il campo non<br />

conteneva <strong>da</strong>ti verrà posto uno spazio blank nella corrispondente posizione del<br />

leader.<br />

99


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Esempio<br />

mx mrclte<br />

mfn= 1<br />

1 «00089048230 /AC/r91»<br />

3 «DLC»<br />

8 «891101s1990 maua j 001 0eng »<br />

10 «##^a###89048230 /AC/r91»<br />

20 «##^a0316107514»<br />

40 «##^aDLC^cDLC^dDLC»<br />

50 «00^aGV943.25^bB74 1990»<br />

82 «00^a796.334/2^220»<br />

100 «##^aApter, David Ernest^d1919-1999»<br />

245 «10^aMake the team.^pSoccer :^ba heads up guide to super<br />

soccer! /^cRi J. Brenner.»<br />

250 «##^a1st ed.»<br />

260 «##^aBoston :^bLittle, Brown,^cc1990.»<br />

300 «##^a127 p. :^bill. ;^c19 cm.»<br />

3005 «c»<br />

3006 «a»<br />

3007 «m»<br />

3017 «5»<br />

3018 «i»<br />

Caricare <strong>da</strong>ti prodotti <strong>da</strong> una FST<br />

Funzione fullinv<br />

L’opzione /dict crea solo il dizionario del file , non depone alcun<br />

contenuto nel file out_inf.ifp.<br />

mx CDS fst=@ ifupd/create/dict=cds now from=10 to=30<br />

!<br />

Opzione /dict<br />

Un inverted file creato con l’opzione /dict può<br />

venire utilizzato per procedimenti come il jchk di<br />

MX.<br />

100


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Estrae le chiavi (aggiorna l’I/F) solo con la componente MFN del posting<br />

Opzione /m<br />

Opzione /ansi<br />

Quando si precisa ansi si crea una tabella modello interna per l’insieme dei<br />

caratteri ANSI, rendendo superfluo l’impiego dei parametri actab e uctab<br />

! L’aggiornamento<br />

Analisi tabellare delle frequenze<br />

dell’I/f si attua con il<br />

programma IFUPD.<br />

tab[/lines:100000/width:100/tab:]=<br />

Genera una tabulazione della frequenza del contenuto di un campo/sottocampo. Il<br />

valore della frequenza è posto in tabella in sottrazione rispetto a 1.000.000.000<br />

(high-value), il che permette un ordinamento ascendente/discendente.<br />

Scrivere il tag in un file di nome .<br />

Esempio<br />

mx cds "tab=(v26^c/)" now lw=0 | sort | more<br />

999999949|50|1966<br />

999999962|37|1976<br />

999999974|25|1965<br />

999999991|8|1973<br />

999999994|5|1975<br />

999999995|4|1974<br />

999999997|2|1968<br />

999999997|2|1971<br />

999999997|2|27 Aug. 1976<br />

999999998|1|11 Dec. 1975<br />

999999998|1|14 June 1976<br />

999999998|1|15 June 1976<br />

999999998|1|17 Sept. 1976<br />

101


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

999999998|1|1983<br />

999999998|1|23 Oct. 1975<br />

999999998|1|25 June 1976<br />

999999998|1|6 Feb. 1976<br />

<strong>Parametri</strong> di inizializzazione / variabili<br />

d’ambiente (setup)<br />

Questi parametri consentono di alterare i valori che MX assume per default come<br />

ad es.: dimensione massima di un record o dell’output di un formato, la<br />

definizione delle variabili d’ambiente o dei nomi logici, etc.<br />

File di parametri CISIS<br />

cipar=<br />

Il file CIPAR è uno strumento che svolge le funzioni del SYSPAR.PAR e dei .<br />

par del CDS/ISIS stan<strong>da</strong>rd; e in aggiunta offre altre prestazioni.<br />

Il CIPAR è un file ASCII puro che –fra altre funzioni– unisce dei nomi logici<br />

definiti nel CIPAR ai nomi fisici (reali) dei file, e in questa maniera permette di<br />

svincolare il nome reale <strong>da</strong>lla sua posizione fisica.<br />

La spiegazione analitica di questo parametro è <strong>da</strong>ta nell’Appendice II File CIPAR.<br />

Esempio:<br />

Se il file \dir\filename contiene:<br />

cds.*=\cisis\bases\cds.*<br />

cds1.pft=\cisis\bases\cds1.pft<br />

Il comando:<br />

mx cipar=\dir\filename cds pft=@cds1.pft<br />

E’ equivalente a:<br />

mx \cisis\bases\cds pft=@\cisis\bases\cds1.pft<br />

102


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Dimensione massima di un record<br />

mfrl=<br />

Questo parametro determina la dimensione massima che un record può giungere<br />

ad avere in lettura, elaborazione e scrittura, includendo i join proc e fst. Il valore<br />

definito in MX è di 32767 byte, in CDS/ISIS MS-DOS è di 8.192 byte e in Winisis è<br />

di 64Kb<br />

Occorre tenere presente che quando i record vengono elaborati <strong>da</strong>lle varie<br />

procedure interne del MX (come join o proc) possono pervenire ad avere<br />

lunghezze temporanee maggiori di questi limiti.<br />

Esempi:<br />

mx mfrl=32000 CDS a$ join=AUTHORS=mhu,(v70/) create=OUT<br />

Dimensione massima dell’esito di un formato formato<br />

fmtl=<br />

Questo parametro determina la dimensione massima dell’area interna di memoria<br />

in cui viene memorizzato il risultato di ogni formato specificato (pft, sys, join,<br />

etc.). La lunghezza prestabilita è uguale alla lunghezza per default del record.<br />

Esempio:<br />

mx mfrl=20000 fmtl=20000 TITLES join=ISSUES=v30 pft=@holdgins.pft<br />

<strong>Parametri</strong> generali<br />

<strong>Parametri</strong> che controllano l’output a schermo<br />

{+ | -}{control | leader | xref | dir | fields | all }<br />

103


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Questi parametri definiscono l’uscita che verrà offerta <strong>da</strong>lla procedura di scarico,<br />

copia, (dump) dei <strong>da</strong>ti verso l’uscita stan<strong>da</strong>rd (per default lo schermo), il che ha la<br />

sua utilità per effettuare una revisione dei file fisici .MST e .XRF.<br />

L’uscita predefinita è +fields, che consiste nell’output senza formattazione di tutti i<br />

campi del record.<br />

I record cancellati vengono compresi nella procedura di scarico (dump) e vengono<br />

evidenziati col messaggio [DELETED].<br />

Parametro +<br />

Attiva l’opzione associata alla procedura di uscita a schermo. La prima volta che lo<br />

si usa si cancellano le opzioni predefinite.<br />

Parametro -<br />

Disattiva l’opzione associata alla procedura di uscita a schermo. La prima volta che<br />

lo si usa si attivano tutte le altre opzioni predefinite.<br />

Esempi:<br />

mx CDS +xref<br />

mx CDS -xref<br />

mx CDS +control +leader +dir<br />

mx CDS +all<br />

!<br />

Si osservi che l’esempio mx CDS -xref è<br />

equivalente a mx CDS +control +leader +dir<br />

+fields.<br />

Del pari, mx CDS -xref -fields è equivalente a mx<br />

CDS +control +leader +dir.<br />

I parametri se refiriscono a parti del .MST e del .XRF cui non si ha accesso tramite<br />

il CDS/ISIS stan<strong>da</strong>rd, e cioè:.<br />

Opzione Visualizza<br />

control Record di controllo del MST, identificato come MFN=0.<br />

leader Segmento a lunghezza fissa di 18 bytes all’inizio di ciascun MFN.<br />

dir Directory dello stesso record contenente l’elenco e la posizione dei campi <strong>da</strong>ti.<br />

104


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Opzione Visualizza<br />

fields I <strong>da</strong>ti effettivi contenuti nei campi del record.<br />

xref Contenuto del file .XRF.<br />

all Attiva o disattiva tutte le opzioni precedenti.<br />

Per apprezzare adeguatamente l’utilità di questi parametri è imprescindibile<br />

conoscere la struttura dei record di ISIS.<br />

Un record con struttura ISIS è munito di due caratteristiche particolari che<br />

consentono una grande flessibilità nel trattamento dell’informazione testuale:<br />

campi ripetibili e di lunghezza variabile.<br />

Assunto che i record non hanno lunghezza predefinita, e che nemmeno i campi<br />

hanno lunghezza fissa, né sono presenti un numero fisso di volte (occorrenze), non<br />

è possibile avere accesso diretto a qualsivoglia porzione di <strong>da</strong>ti all’interno della<br />

base.<br />

L’accesso al record si fa dunque in maniera indiretta, per il tramite di puntatori in<br />

un file ausiliare con estensione .XRF, e dentro al record si accede ai <strong>da</strong>ti mediante<br />

puntatori interni a una directory.<br />

Il file .XRF contiene tutta l’informazione necessaria per reperire il punto d’inizio<br />

del record cercato dentro al .MST.<br />

! Per<br />

<strong>Parametri</strong> per ambienti multiutente<br />

Opzioni di mo<strong>da</strong>lità d’azione<br />

maggiori dettagli cfr. l’Appendice III:<br />

Struttura del record di una base ISIS.<br />

[mono | mast | full]<br />

Se una base <strong>da</strong>ti viene aggiornata in ambiente multiutente va indicato inizialmente<br />

il parametro mast o full. Il valore mono (monoutente) è quello di default.<br />

105


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Modo monoutente: mono<br />

E’ la mo<strong>da</strong>lità per default, la stabilità e l’accesso ai <strong>da</strong>ti non sono sottoposti a<br />

verifica. Suppone che operi un unico utente.<br />

Questo parametro corrisponde al parametro 14=0 del Syspar di CDS/ISIS<br />

Accesso limitato ai <strong>da</strong>ti: mast<br />

Questo parametro consente il ripristino e l’aggiornamento del master file. Occorre<br />

assicurarsi che l’inverted file non venga aggiornato contemporaneamente.<br />

Questo parametro corrisponde al parametro 14=2 del Syspar di CDS/ISIS<br />

Accesso completo: full<br />

Quando questo parametro è presente si possono contemporaneamente recuperare<br />

e modificare <strong>da</strong>ti sia nel master file che nell’inverted file. D’altro canto il sistema<br />

diventa più lento.<br />

Questo parametro corrisponde al parametro 14=1 del Syspar di CDS/ISIS<br />

Esempi:<br />

• Situare due basi <strong>da</strong>ti in ambiente multiutente, CDS e OUT:<br />

mx mast CDS from=120 append=OUT now -all<br />

Porre in ambiente multiutente solo una base <strong>da</strong>ti. La base CDS starà in ambiente<br />

monoutente, mentre la base OUT starà in ambiente multiutente.<br />

mx CDS from=120 mast append=OUT now -all<br />

!<br />

Questo scenario funzionerà correttamente solo se<br />

tutte le altre procedure che leggono e/o scrivono<br />

nella base OUT verranno analogamente definite<br />

come operanti in ambiente multiutente.<br />

Se una base <strong>da</strong>ti deve venire trattata <strong>da</strong> più di una<br />

procedura e almeno una fra queste la modifica<br />

allora TUTTE le procedure devono potere operare<br />

su di essa in ambiente multiutente. Così si obbliga<br />

MX a leggere i <strong>da</strong>ti aggiornati (quelli che sono<br />

stati scritti su disco) ignorando i buffer<br />

temporanei di lettura dei <strong>da</strong>ti.<br />

106


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

Altri parametri<br />

Delimitatori<br />

Il segno di uguale impiegato come delimitatore può venire rimpiazzato <strong>da</strong>l punto<br />

interrogativo ?<br />

mx CDS from=10 corretto<br />

mx CDS from?10 equivalente al precedente<br />

Indicatori (prompt) predefiniti<br />

?<br />

p1|p2=<br />

E’ possibile cambiare gli indicatori (prompts) predefiniti di MX, per la durata di<br />

una sessione di MX.<br />

parametro p1= cambia .. in <br />

parametro p2= cambia -> in <br />

Esempio:<br />

I prompt vengono cambiati cosicché MX fra record e record dica: premere per<br />

il record successivo o per uscire (prompt1) e quando non ci sono più record <strong>da</strong><br />

visualizzare presenti il messaggio: premere per uscire o scrivere un’espressione di ricerca<br />

(prompt2).<br />

mx cds "p1= premere per il record successivo o per uscire"<br />

"p2= premere per uscire o scrivere un’espressione di ricerca:"<br />

plants<br />

Visualizzazione di uno dei record della ricerca (non l’ultimo):<br />

mfn= 13<br />

24 «Experience with three vapour methods for measuring water<br />

potential in plants»<br />

26 «^c1965»<br />

107


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

30 «^ap. 369-384^billus.»<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

69 «Paper on: »<br />

70 «Barrs, H.D.»<br />

70 «Slatyer, R.O.»<br />

50 «prueb»<br />

premere per il record successivo o per uscire<br />

Visualizazzione dell’ultimo record della ricerca:<br />

mfn= 68<br />

24 «Some important animal pests and parasites of East Pakistan»<br />

26 «^c1966»<br />

30 «^ap. 285-291^billus.»<br />

44 «Scientific problems of the humid tropical zone deltas and their<br />

implications: proceedi+»<br />

50 «Incl. bibl.»<br />

69 «Paper on:<br />


Programmi di utilità CISIS: manuale di riferimento Programma di utilità MX<br />

mx CDS now -all mfrl<br />

MFN=1 -> MFRmfrl=408<br />

MFN=3 -> MFRmfrl=450<br />

MFN=21 -> MFRmfrl=452<br />

MFN=27 -> MFRmfrl=822<br />

MFN=104 -> MFRmfrl=980<br />

MX: codice di fine esecuzione<br />

MX conclude l’esecuzione con valore d’output 1 o 0 a secon<strong>da</strong> che si sia verificato<br />

o meno un errore. Questo codice di fine esecuzione può venire usato per il<br />

controllo dello svolgimento delle procedure batch (errorlevel in MS-DOS).<br />

109


MXF0 - Programma<br />

Programmi d’utilità del<br />

master file<br />

Il programma MXF0 analizza tutti i record di un master file, producendo<br />

informazioni sui suoi campi e sulla frequenza dei caratteri.<br />

Il risultato dell’esecuzione del MXF0 è un master file con un record che contiene le<br />

seguenti informazioni:<br />

• Nome della base <strong>da</strong>ti, <strong>da</strong>ta, ora, numero di record, numero di record attivi,<br />

numero di record cancellati logicamente e numero di record cancellati<br />

fisicamente.<br />

• Per ogni diverso tag di campo trovato nei record in entrata presenta<br />

un’occorrenza di un campo ripetibile che contiene: l’etichetta (tag), la<br />

frequenza, il totale delle occorrenze, lunghezza maggiore e minore e quantità<br />

totale dei caratteri.<br />

• Un campo ripetibile con un’occorrenza per ogni carattere differente trovato nei<br />

<strong>da</strong>ti in ingresso, la sua codifica esadecimale e il numero di volte che compare.<br />

Questo programma d’utilità può venire usato per produrre un elenco di etichette<br />

dei campi presenti in una base di <strong>da</strong>ti. Serve anche per verificare se:<br />

• campi <strong>obbligatori</strong> sono presenti,<br />

• campi non ripetibili ricorrono più di una volta nello stesso record,<br />

110


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

• campi a lunghezza fissa (come le <strong>da</strong>te normalizzate) sono della giusta<br />

lunghezza, etc.<br />

MXF0 - Presentazione<br />

La seguente linea tratta il master file cds ubicato nella directory \cisis\cds,<br />

reinizializza il master file x (nella directory corrente) e memorizza il risultato nel<br />

primo record, come mostrato qui di seguito:<br />

mxf0 \cisis\cds\cds create=x 0<br />

Il record che ne risulta nella base x è<br />

mfn= 1<br />

1001 «cds»<br />

1003 «20051014 09:44:40 Fri»<br />

1009 « 149»<br />

1010 « 149»<br />

1011 « 0»<br />

1012 « 0»<br />

1013 « 150»<br />

1020 «^t024^d 148^o 148^l 6^u 179^n 9589»<br />

1020 «^t025^d 5^o 7^l 2^u 22^n 55»<br />

1020 «^t026^d 147^o 148^l 6^u 101^n 2897»<br />

1020 «^t030^d 146^o 146^l 6^u 36^n 2484»<br />

1020 «^t044^d 80^o 80^l 22^u 112^n 7525»<br />

1020 «^t050^d 99^o 99^l 11^u 209^n 2043»<br />

1020 «^t069^d 148^o 1134^l 3^u 36^n 16318»<br />

1020 «^t070^d 121^o 163^l 8^u 35^n 2493»<br />

1030 «^tall^x20^n 4516»<br />

1030 «^tall^x22^n 8»<br />

1030 «^tall^x27^n 29»<br />

...<br />

1030 «^tall^xa1^n 10»<br />

1030 «^tall^xa2^n 10»<br />

..x<br />

Questo record documenta che il master file \cisis\cds\cds contiene 149 record<br />

attivi, e 8 campi <strong>da</strong>ti con etichetta: 24, 25, 26, 30, 44, 50, 69 e 70.<br />

111


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Il campo con tag 24 (titolo) occorre una volta in ciascuno dei 148 record che lo<br />

contengono (l’occorrenza più breve ha 6 caratteri di lunghezza, la più lunga 179, e<br />

nell’insieme queste occorrenze assommano a 9589 byte).<br />

Il campo 70 (autore) manca in 27 record, e annovera in totale 163 occorrenze.<br />

Considerando tutti i campi <strong>da</strong>ti di \cisis\cds\cds, il carattere con codice 20<br />

(carattere di spaziatura in esadecimale, in ASCII decimale: 2x16 + 0 = 32) ricorre<br />

4.516 volte. Mentre, il carattere con codice esadecimale a1 (i con accento acuto, in<br />

ASCII decimale: 10x16+1=161) , solamente 10 volte.<br />

MXF0 - Sintassi<br />

mxf0 [create=] [] [noedit] [tell=]<br />

I parametri devono venire elencati nell’ordine indicato, ad esempio:<br />

mxf0 cds create=x noedit 0<br />

provocherà errore, la forma corretta di indicarlo è:<br />

mxf0 cds create=x 0 noedit<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

Nome del master file in entrata (input)<br />

Master file sul quale verrà condotta l’analisi<br />

Nome del master file di uscita<br />

<br />

<br />

<br />

112


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Master file di uscita, è il master file che contiene la tavola generata. Se già esiste<br />

un master file con questo nome i record si sommeranno.<br />

Creare master file di uscita (output)<br />

create=<br />

Il master file di output viene così creato. Se esiste un master file con questo nome<br />

tutti i suoi <strong>da</strong>ti andranno perduti.<br />

Numero di record approssimativo<br />

<br />

Numero dei record del master file in entrata. Se lo si ignora e lo si vuole indicare,<br />

deve essere zero. Quando il parametro è diverso <strong>da</strong> zero, il programma conclude<br />

l’esecuzione con codice di fine uguale a zero solamente se il numero di record letti<br />

è uguale al valore del parametro.<br />

<strong>Parametri</strong> facoltativi<br />

Eliminazione di spazi (blanks)<br />

[noedit] [tell=]<br />

noedit<br />

Quando è presente sopprime tutti gli spazi a sinistra (in testa) nei campi dei <strong>da</strong>ti in<br />

uscita.<br />

Quando questo parametro non è presente (situazione per default), il programma<br />

utilizza una lunghezza per i campi, allineando con spazi a sinistra (in testa al<br />

campo).<br />

113


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Informazioni relative all’esecuzione della procedura<br />

Invia un messaggio di stato allo stderr (stan<strong>da</strong>rd error) ogni record.<br />

! Questo<br />

MXF0 – Uscita (output)<br />

Il record di uscita di MXFO contiene i seguenti campi:<br />

tell=<br />

parametro viene illustrato in dettaglio<br />

nella Appendice I <strong>Parametri</strong> di uso generale.<br />

TAG CONTENUTO<br />

1001 Nome del master file in ingresso.<br />

1003 Data e ora.<br />

1009 Numero di record trattati.<br />

1010 Numero di record attivi.<br />

1011 Numero di record logicamente cancellati.<br />

1012 Numero di record fisicamente cancellati.<br />

1013 Prossimo MFN <strong>da</strong> assegnare.<br />

1020 ^tTAG ^dDOCS ^oOCCS ^lMINLEN ^uMAXLEN ^nDATA BYTES<br />

1030 ^tall ^xCHRCODE ^nCHRFREQ<br />

Il campo ripetibile 1020 presenta una occorrenza per ciascuna etichetta di campo<br />

differente trovata nei record in entrata:<br />

SOTTOCAMPO CONTENUTO<br />

TAG Etichetta.<br />

DOCS Numero di record che contengono TAG.<br />

OCCS Totale delle occorrenze<br />

MINLEN Lunghezza minima.<br />

MAXLEN Lunghezza massima.<br />

DATA BYTES Totale dei caratteri<br />

Il campo ripetibile 1030 contiene una singola occorrenza per ciascun carattere<br />

differente trovato nella totalità dei campi <strong>da</strong>ti dell’input:<br />

SOTTOCAMPO CONTENUTO<br />

CHRCODE Codice del carattere, in formato esadecimale (x00-xFF)<br />

CHRFREQ Frequenza del codice.<br />

114


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MXTB - Programma<br />

Il programma MXTB consente di fare calcoli sul contenuto dei campi, per esempio,<br />

quantità di volte che compare ciascun autore, quantità di volte che compare<br />

ciascun descrittore, quantità di volte che compaiono un autore e un titolo di rivista<br />

(insieme), etc.<br />

Il risultato dell’esecuzione di MXTB è un master file con un record per ogni<br />

parola/frase differente trovata. Ogni record contiene, fra gli altri <strong>da</strong>ti, stringa di<br />

caratteri, frequenza, etc.<br />

MXTB è un programma di tabulazione per colonne multiple per record del master<br />

file, che definisce le chiavi di tabulazione mediante il linguaggio di formattazione.<br />

A mano a mano che i record vengono letti, il formato viene eseguito e i <strong>da</strong>ti che<br />

scaturiscono vengono assunti come valori per le corrispondenti chiavi di<br />

tabulazione.<br />

Tutte le n-tuple possibili vengono tabulate e, alla fine, assegnate come singoli<br />

record del master file insieme alle loro frequenze.<br />

Il processo di tabulazione si compie in memoria, usando una tecnica di hashing.<br />

Ciò esige una quantità di memoria sufficiente per caricare tutte le n-tuple generate,<br />

le loro frequenze, ed anche dello spazio supplementare. Quanto più grande sarà<br />

questo spazio tanto più rapi<strong>da</strong> sarà l’esecuzione (lo si vedrà in maniera più<br />

accurata quando si illustrerà il parametro class, oltre in questo stesso capitolo).<br />

Questo programma d’utilità può venire impiegato per produrre tabelle cumulative<br />

di determinati <strong>da</strong>ti memorizzati nel master file. Per esempio: una lista di autori<br />

recante le frequenze con cui compaiono in una base <strong>da</strong>ti bibliografica, o un loro<br />

elenco con ripartizione per anno di pubblicazione o un altro criterio.<br />

Facoltativamente MXTB può assumere un’istruzione supplementare di formato<br />

per ottenere un valore <strong>da</strong> usare nella procedura di tabulazione. In questo caso<br />

l’informazione numerica di output equivale alla somma di tali valori per una ntupla<br />

in particolare.<br />

115


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MXTB - Presentazione<br />

mxtb \cisis\cds\cds create=frecaut 40:(v70/)<br />

Questa riga di comandi scrive un record nel master file frecaut per ciascuna<br />

diversa occorrenza del campo 70 in \cisis\cds\cds, come mostrato qui di seguito:<br />

MFN 1<br />

1 «Magalhaes, A.C.»<br />

998 «999999997»<br />

999 «2»<br />

MFN 2<br />

1 «Franco, C.M.»<br />

998 «999999998»<br />

999 «1»<br />

...<br />

Campi dei record di frecaut:<br />

TAG CONTENUTO<br />

1 Stringa di caratteri <strong>da</strong> contare, nell’esempio, un autore generato <strong>da</strong>l formato<br />

(v70/).<br />

(categoria)<br />

998 Massimo possibile di occorrenze di una categoria meno la frequenza trovata.<br />

(999999999 - frequenza)<br />

999 Numero di volte che ricorre il contenuto del campo con TAG 1 di frecaut nel file di<br />

input \cisis\cds\cds.<br />

(frequenza)<br />

Il campo 998 offre una maniera semplice per redigere liste in ordine discendente<br />

di categoria trovata (per esempio con il comando MSRT freqaut 10 v998).<br />

MXTB può parimenti assumere un valore esterno <strong>da</strong> tabulare, ciò significa che<br />

invece di addizionare il valore uno per ciascuna occorrenza trovata può sommare<br />

un valore inserito tramite un formato, senza che questo valore debba essere fisso,<br />

può trattarsi di un campo della medesima base <strong>da</strong>ti o di un’altra, Dove il contenuto<br />

del campo 999 sarà la somma dei valori trovati in ciascun caso.<br />

116


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Esempi di utilizzazione di MXTB<br />

Nella base <strong>da</strong>ti sono memorizzati il prezzo dei documenti, la <strong>da</strong>ta di acquisto e il<br />

settore a cui appartengono. Si può formare una tavola che contenga –per<br />

esempio– i soldi spesi in documenti durante l’ultimo anno per ciascun settore.<br />

Supponendo che in mezzo ai <strong>da</strong>ti immessi nei record figuri il costo del documento<br />

e la casa editrice, con MXTB si può facilmente creare una tabella che contenga la<br />

casa editrice e la somma versatale.<br />

mxtb holdings x 40:(v26^b/) tab=v90<br />

Per i primi 40 caratteri di ogni diverso editore memorizzato come sottocampo ^b<br />

del campo 26 nella base holdings, scrive un record nella base x, come mostrato qui<br />

di seguito:<br />

MFN 1<br />

1 «Unesco Press»<br />

998 «999993999»<br />

999 «6000»<br />

MFN 2<br />

1 «ESCAP»<br />

998 «999999969»<br />

999 «30»<br />

MFN 3<br />

1 «Praeger Publishers»<br />

998 «999999599»<br />

999 «400»<br />

...<br />

L’esempio pone nel campo 999 la somma del contenuto del campo v90 di ogni<br />

categoria, così –invece di sommare 1 per ciascun elemento trovato– somma<br />

quanto registrato nel campo 90. Per usare il parametro tab il campo 90 di tutti i<br />

record deve contenere un valor numerico, reciprocamente i record i cui campi 90<br />

non contengano un valore numerico non saranno tenuti in conto.<br />

117


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MXTB - Sintassi<br />

mxtb [create=] [ [...]] [ [...]]<br />

keys: keylen:key_fmtspec<br />

options: {from|to|loop|count|tell|btell}=<br />

tab=<br />

class=1000<br />

bool=<br />

{min|max}{avg|freq}= -<br />

uctab={|ansi}<br />

Ex: mxtb in out len1:fmt1 len2:fmt2 len3:fmt3<br />

out = 1 key/key1_value (max len1 chars)<br />

2 key/key2_value (max len2 chars)<br />

3 key/key3_value (max len3 chars)<br />

998 999999999 - key_frequency<br />

999 key_frequency<br />

Ex: mxtb in out len:fmt tab=Vtag<br />

out = 1 key_value (max len chars)<br />

998 999999999 - Vtag_subtotal<br />

999 Vtag_subtotal<br />

!<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

Nome del master file in entrata (input)<br />

I parametri vanno indicati nell’ordine prescritto,<br />

e cioè: , poi e infine le<br />

opzioni, in caso contrario si genereranno errori.<br />

<br />

<br />

118


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Nome del master file <strong>da</strong> cui MXTB ottiene i <strong>da</strong>ti per generare la tavola.<br />

Nome del master file di uscita (output)<br />

<br />

Il master file di uscita è il master file che contiene la tavola generata. Se già esiste<br />

un master file con questo nome i record si sommeranno.<br />

Creare un master file di uscita (output)<br />

create=<br />

Il master file di output viene creato. Se esiste un master file con questo nome tutti<br />

i suoi <strong>da</strong>ti andranno persi.<br />

Chiave<br />

<br />

Il parametro si applica ad ogni chiave di tabulazione fino ad un massimo di<br />

8, e ha questa sintassi:<br />

:<br />

Lunghezza massima della chiave<br />

<br />

è la quantità massima di caratteri restituita <strong>da</strong>ll’istruzione di formato<br />

. Ciò significa che se la stringa di caratteri generata <strong>da</strong><br />

è maggiore di , si prendono in considerazione solo i<br />

primi caratteri.<br />

119


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Formato che specifica la chiave<br />

Parametro <br />

E’ il formato che genera le chiavi di tabulazione. Per esempio, per tabulare per<br />

editore il formato deve generare gli editori, uno per linea. arámetros opcionale<br />

<strong>Parametri</strong> facoltativi<br />

!<br />

Trattare il risultato di una ricerca<br />

bool=<br />

{from|to|loop|count|tell|btell}=<br />

tab=<br />

class=<br />

I parametri from, to, loop, count, tell e btell<br />

vengono illustrati nell’Appendice I <strong>Parametri</strong> di<br />

uso generale.<br />

Si può tabulare il risultato di una ricerca, indicando il parametro bool e<br />

bool=<br />

l’espressione booleana. Ciò permette, per esempio, di contare tutti i libri che<br />

esibiscano una determinata proprietà: tutte le riviste della casa editrice X o tutti i<br />

libri di un certo settore e il costo totale, etc.<br />

Tabulazione del risultato del formato<br />

tab=<br />

Il valore per default di tabulazione (se non si specifica tab) è 1. Ciò fa sì che MXTB<br />

addizioni il valor 1 ad una categoria per ciascuna occorrenza trovata.<br />

120


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

tab permette di cambiare il valore per default tramite un formato, che può<br />

specificare un valore costante (come '5'), o può specificare un campo <strong>da</strong> cui trarre<br />

il valore (per esempio il campo prezzo di una base <strong>da</strong>ti relativa a libri).<br />

tab permette di realizzare tavole che contengano, ad esempio, le somme che la<br />

biblioteca ha investito in libri e riviste ripartite per ciascun settore.<br />

Il formato deve produrre una stringa di caratteri,<br />

!<br />

e non un numero. Per effettuare dei calcoli, si<br />

devono usare funzioni di formato come<br />

val() che convertono stringhe di<br />

caratteri in valori numerici. Poi va applicata la<br />

funzione di formato f(,1,0) che converte<br />

valori numerici in stringhe di caratteri.<br />

Se non restituisce un stringa che<br />

sia possibile convertire in un numero il record<br />

viene scartato.<br />

Numero di categorie<br />

Assegna spazio a fino a categorie perché vengano tabulate.<br />

Il valore per default per questo parametro è 1000.<br />

class=<br />

A beneficio dell’hashing, si raccoman<strong>da</strong> di indicare un parametro class con un<br />

valore compreso fra 2 3 volte il numero atteso di categorie.<br />

! E’ possibile visualizzare la quantità di memoria<br />

disponibile grazie al parametro facoltativo trace.<br />

MXTB – Uscita (output)<br />

I record di uscita di MXTB sono composti dei seguenti campi:<br />

MFN n<br />

TAG CONTENUTO<br />

1 Valore prodotto <strong>da</strong> , fino [characteres]<br />

2 Valore prodotto <strong>da</strong> , fino [characteres]<br />

121


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

3 Valore prodotto <strong>da</strong> , fino [characteres]<br />

998 Valore 999999999 meno il valore del campo 999<br />

999 Frequenza per la categoria formata <strong>da</strong>i campi 1, 2, 3, ...<br />

Quando si usa l’opzione tab= il campo 999 contiene la somma dei<br />

valori prodotti <strong>da</strong>ll’istruzione di formato per ogni record<br />

appartenente a quella categoria.<br />

I record che non generano output a fronte della prima istruzione vengono<br />

scartati e pertanto non inclusi nella tabulazione.<br />

MXCP - Presentazione<br />

Il comando:<br />

mxcp \cisis\cds\cds create=x clean undelete<br />

Reinizializza il master file x (nella directory corrente) e copia tutti i record del<br />

master file cds situato nella directory \cisis\cds.<br />

Dato che è stata inserita l’opzione clean nessun campo <strong>da</strong>ti nel master file x<br />

conterrà spazi bianchi all’inizio o alla fine. Inoltre, ogni carattere non stampabile<br />

presente nei campi in entrata verrà convertito in un carattere di spazio in output.<br />

E visto che si è formulata l’opzione undelete, tutti i record logicamente distrutti del<br />

master file \cisis\cds\cds ridiverranno attivi nel master file x.<br />

MXCP può convertire in ripetibili campi che non lo sono, a condizione che<br />

compaia un carattere separatore dei <strong>da</strong>ti.<br />

Nel seguente esempio MXCP converte in ripetibile il campo con tag 70 che<br />

contiene il segno ";" come delimitatore di occorrenza del campo.<br />

mxcp in create=out repeat=;,70<br />

Per quest’esempio assumiamo che i record 1 e 2 della base in contengano nel<br />

campo con tag 70:<br />

MFN 1<br />

70 «Magalhaes, A.C.; Franco, C.M.»<br />

MFN 2<br />

122


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

70 «Bosian, G.»<br />

Di conseguenza in out (il master file che ne risulta) i record presenteranno questa<br />

struttura:<br />

MFN 1<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

MFN 2<br />

70 «Bosian G.»<br />

Anche quando si usa il parametro repeat MXCP attua la sua operazione di<br />

"pulizia".<br />

Se non viene specificato alcun TAG (etichetta) nel parametro repeat tutti i campi<br />

presenti verranno presi in considerazione:<br />

mxcp in create=out repeat=%<br />

Può anche venire indicata una lista di campi:<br />

mxcp in create=out repeat=%,70,99,100,200<br />

Un intervallo:<br />

mxcp in create=out repeat=%,99/105<br />

O usati entrambi i criteri:<br />

mxcp in create=out repeat=%,70,99/105,110<br />

Altra caratteristica di MXCP è quella di sopprimere i segni di punteggiatura in fine<br />

campo. L’esempio seguente elimina il punto finale nel campo 70:<br />

mxcp in create=out period=.,70<br />

Per esempio supponiamo che i record 1 e 2 della base in contengano dentro al<br />

campo con tag 70:<br />

MFN 1<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

MFN 2<br />

«Bosian G.»<br />

«xxx.»<br />

Pertanto in out (il master file risultante) i record diventano:<br />

123


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MFN 1<br />

70 «Magalhaes, A.C»<br />

70 «Franco, C.M»<br />

MFN 2<br />

«Bosian G»<br />

«xxx.»<br />

MXCP attua anche un’operazione di cambi di modelli, facendo sì che i contenuti<br />

dei campi in ingresso indicati vengano modificati via via che vengono letti.<br />

Digitando esattamente quanto qui sotto riportato (e chiudendo ogni riga con<br />

) si crea una tabella di conversione per rimpiazzare le parentesi angolari<br />

col segno di percentuale (%):<br />

mx seq=con create=xtable -all now<br />

|<br />

>


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

69 «plant physiology»<br />

69 «plant transpiration»<br />

69 «measurement and instruments»<br />

MXCP - Sintassi<br />

mxcp {in=|} [create=] [ [...]]<br />

options: {from|to|loop|count|tell|offset}=<br />

gizmo=[,tag_list>]<br />

undelete<br />

clean [mintag=1] [maxtag=9999]<br />

period=.[,]<br />

repeat=%[,]<br />

log=<br />

Ex: mxcp in create=out clean period=.,3 repeat=;,7<br />

in = 3 « Field 3 occ 1. »<br />

3 «Field 3 occ 2 . »<br />

7 « Field 7/1;Field 7/2 ;Field 7/3.»<br />

out = 3 «Field 3 occ 1»<br />

3 «Field 3 occ 2»<br />

7 «Field 7/1»<br />

7 «Field 7/2»<br />

7 «Field 7/3.»<br />

I parametri utilizzati vanno indicati nell’ordine stipulato, prim poi<br />

e in ultimo le opzioni, altrimenti si genera una situazione di errore.<br />

Nome del master file in entrata (input)<br />

Master file di input.<br />

<br />

125


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Nome del master file di uscita (output)<br />

<br />

Il master file di output è l’ambito in cui verranno copiati i record provenienti <strong>da</strong><br />

dbin.<br />

Se dbout non esiste ciò provocherà errore; per crearlo si deve utilizzare il<br />

parametro create, che viene illustrato qui di seguito.<br />

Crear master file di uscita (output)<br />

create=<br />

Quando il master file di uscita non esiste lo si può creare mediante questo<br />

parametro.<br />

Se dbout esiste già tutti i suoi <strong>da</strong>ti andranno persi, visto che la base <strong>da</strong>ti di uscita<br />

viene inizializzata prima di copiarvi dentro i record.<br />

<strong>Parametri</strong> facoltativi [option]<br />

{from|to|loop|count|tell|offset}=<br />

undelete<br />

gizmo=[,tag_list>]<br />

period=.[,]<br />

repeat=%[,]<br />

clean [mintag=1] [maxtag=9999]<br />

log=<br />

I parametri from, to, loop, count, tell e offset vengono illustrati nell’Appendice I<br />

<strong>Parametri</strong> di uso generale.<br />

126


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Recuperare record cancellati<br />

Recupera i record del master file (ossia rende nuovamente attivi i record in<br />

ingresso che sono logicamente cancellati).<br />

mxcp cds newcds undelete<br />

Cambiamento globale di modelli<br />

undelete<br />

gizmo=[,]<br />

Applica una procedura gizmo ai <strong>da</strong>ti in ingresso, usando il master file dbgiz come<br />

tavola gizmo; può venire applicato a tutti i campi di un record o solo ai campi<br />

specificati in .<br />

La lista può venire formulata nei modi seguenti:<br />

• Un’etichetta.<br />

• Una lista di etichette separate <strong>da</strong> virgola.<br />

• Un intervallo di etichette nella forma valore inferiore / valore superiore.<br />

• Una combinazione di queste opzioni.<br />

Se si indicano più gizmo=[,], il secondo agisce sul risultato<br />

dell’azione del primo gizmo, e così di seguito.<br />

mxcp cds newcds gizmo=xtable<br />

mxcp cds newcds gizmo=xtable,24,50/70<br />

Ilparametro gizmo viene trattato diffusamente nell’Appendice I <strong>Parametri</strong> di uso<br />

generale.<br />

Soppressione di segni di punteggiatura<br />

period=[,]<br />

MXCP dà modo di sopprimere il carattere come segno di punteggiatura<br />

finale; può venire applicato a tutti i campi di un record o solo ai campi che<br />

vengono elencati in .<br />

La lista può venire formulata nei modi seguenti:<br />

127


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

• Un’etichetta.<br />

• Una lista di etichette separate <strong>da</strong> virgola.<br />

• Un intervallo di etichette nella forma valore inferiore / valore superiore.<br />

• Una combinazione di queste opzioni.<br />

mxcp cds newcds period=;<br />

mxcp cds newcds period=;,24,50/60,70<br />

Convertire campi in ripetibili<br />

repeat=[,]<br />

Converte in ripetibili i campi in ingresso che contengono come<br />

delimitatore; può venire applicato a tutti i campi di un record o solo ai campi<br />

specificati in .<br />

La lista può venire formulata nei modi seguenti:<br />

• Un’etichetta.<br />

• Una lista di etichette separate <strong>da</strong> virgola.<br />

• Un intervallo di etichette nella forma valore inferiore / valore superiore.<br />

• Una combinazione di queste opzioni.<br />

mxcp cds newcds period=;<br />

mxcp cds newcds period=;,24,50/60,70<br />

Eliminazione degli spazi (blanks)<br />

clean<br />

Sopprime tutti gli spazi bianchi in inizio e fine campo e sostituisce tutti i caratteri<br />

non stampabili con blanks.<br />

Se si indica repeat o period l’opzione clean viene automaticamente attivata.<br />

L’opzione clean verte su tutti i campi del record.<br />

mxcp cds newcds clean<br />

! Non<br />

è possibile usare clean nei confronti di una<br />

selezione di campi.<br />

128


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Eliminazione di campi in base al TAG<br />

mintag=<br />

Cancella tutte le occorrenze dei campi con tag inferiore a . Per default n=1<br />

mxcp cds newcds mintag=10<br />

maxtag=<br />

Cancella tutte le occorrenze dei campi con tag superiore a . Per default n=9999<br />

mxcp cds newcds maxtag=70<br />

Registrare i messaggi di sistema<br />

Invia i messaggi di controllo e di stato al file .<br />

MXCP – Uscita (output)<br />

log=<br />

MXCP non genera output con record vuoti. I record privi di campi in ingresso o<br />

dopo l’elaborazione vengono scartati. I record logicamente cancellati vengono<br />

trattati solo se si usa l’opzione undelete.<br />

Si può usare lo stesso master file tanto per l’input che per l’output, ancorché un<br />

master file potrà venire riorganizzato solo se lo si copia su uno nuovo. L’opzione<br />

create= fa sì che venga creato o reinizializzato.<br />

Il comando:<br />

mxcp in create=out period=.,3 repeat=;,7<br />

per il master file in:<br />

MFN 1<br />

3 «Field 3 occ 1. »<br />

3 «Field 3 occ 2 .»<br />

7 «Field 7/1; Field 7/2; Field 7/3.»<br />

MFN 2<br />

...<br />

129


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Crea out con:<br />

MFN 1<br />

3 «Field 3 occ 1»<br />

3 «Field 3 occ 2»<br />

7 «Field 7/1»<br />

7 «Field 7/2»<br />

7 «Field 7/3»<br />

MFN 2<br />

...<br />

Produce i seguenti messaggi:<br />

*** mfn 1 tag=3/1 -> rejected char<br />

*** mfn 1 tag=3/1 -> rejected char<br />

*** mfn 1 tag=3/1 . -> rejected char<br />

*** mfn 1 tag=3/2 -> rejected char<br />

*** mfn 1 tag=3/2 . -> rejected char<br />

*** mfn 1 tag=3/2 -> rejected char<br />

*** mfn 1 tag=7/1 -> rejected char<br />

MSRT - Programma<br />

Il programma MSRT ordina un master file, in sequenza ascendente, utilizzando le<br />

chiavi di sort generate <strong>da</strong> una determinata istruzione di formato.<br />

Dopo che un master file è stato ordinato, il record con mfn=1 contiene la chiave<br />

d’ordinamento più bassa, il record con mfn=2 quella seguente e appena superiore<br />

e così via.<br />

MSRT - Presentazione<br />

Il comando:<br />

msrt \cisis\cds\cds 60 mhu,v24<br />

ordina il master file cds ubicato nella directory \cisis\cds in base ai primi 60<br />

caratteri del campo 24 (dopo averlo volto in lettere maiuscole).<br />

130


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Il comando:<br />

msrt mxtb_out 9 v998<br />

ordina il master file mxtb_out in base ai valori memorizzati nel campo 998<br />

(ammesso che sia a lunghezza fissa e con degli zero a sinistra per l’ allineamento).<br />

Mentre il comando:<br />

msrt mxtb_out 9 f(999999999-val(v999),9,0)<br />

ordina il master file mxtb_out in sequenza discendente, in base al valore numerico<br />

registrato nel campo 999.<br />

MSRT - Sintassi<br />

msrt [-mfn] [tell=]<br />

I parametri indicati devono essere nell’ordine prefissato, e cioè ,<br />

, poi ed infine le opzioni, in caso contrario si genera errore.<br />

<strong>Parametri</strong> <strong>obbligatori</strong>:<br />

Nome del master file in entrata (input)<br />

Master file che verrà ordinato in base a sé stesso.<br />

Lunghezza massima della chiave<br />

Numero massimo dei caratteri <strong>da</strong> considerare.<br />

<br />

<br />

<br />

131


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Generazione della chiave<br />

Formato che applicato ai record genera le chiavi di ordinamento.<br />

| tag=<br />

Per potere indicare un campo <strong>da</strong>ti come chiave di ordinamento, senza per questo<br />

dovere eseguire un formato, occorre porre il parametro come tag=.<br />

<strong>Parametri</strong> facoltativi<br />

Il parametro tell verrà illustrato in dettaglio nell’Appendice I <strong>Parametri</strong> di uso<br />

generale.<br />

Mantenere gli MFNs originali<br />

-mfn<br />

+del<br />

tell=<br />

Conserva gli MFN originali. Per default i record vengono rinumerati, dopo essere<br />

stati ordinati.<br />

Eliminare le chiavi identiche<br />

Dopo avere ordinato i record elimina le chiavi di ordinamento uguali in record<br />

consecutivi.<br />

-mfn<br />

+del<br />

132


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MSRT – Uscita (output)<br />

Quando si ordina un master file, il programma MSRT aggiorna solamente il .xrf,<br />

scambiando le entrate corrispondenti di ciascun paio di record che vengono<br />

ordinati.<br />

Alla fine della procedura, a meno che non si utilizzi l’opzione -mfn, il file .mst<br />

viene aggiornato, assegnando i numeri di record al campo mfn del leader del<br />

record.<br />

Questo aggiornamento ha luogo nello stesso spazio fisico dei record, il che significa<br />

che i record vengono modificati lì dove si trovano e conseguentemente<br />

l’organizzazione del master file elaborato non muta. In questa maniera si<br />

risparmia il tempo che si spenderebbe a scrivere tutti i record ordinati nel master<br />

file.<br />

RETAG - Programma<br />

Il programma RETAG cambia il tag dei campi del master file, in base ad una<br />

determinata tabella di rinumerazione. Si può effettuare anche lo sblocco (unlock)<br />

del master file.<br />

Le operazioni effettuate <strong>da</strong> RETAG sono compiute sul medesimo record, il che<br />

significa che i record vengono modificati nella loro posizione fisica originaria e che<br />

pertanto l’organizzazione del master file trattato non muta.<br />

RETAG - Presentazione<br />

Il comando:<br />

retag \cisis\cds\cds xtable<br />

Tratta tutti i record attivi del master file cds situato nella cartella \cisis\cds,<br />

riscrivendo la porzione della directory dei record corrispondenti conformemente<br />

ad una tavola xtable di rinumerazione de tag situata nella directory corrente del<br />

disco.<br />

133


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Una tavola di rinumerazione è un file sequenziale recante una linea per ciascun<br />

TAG <strong>da</strong> rinumerare, come illustrato qui sotto:<br />

24 240<br />

70 700<br />

69 690<br />

Il comando precedente trasforma il tag 24 in 240, il tag 70 in 700, e il tag 69 in<br />

690.<br />

In tale esempio vengono riscritti unicamente i record che contengono almeno<br />

un’occorrenza dei tag 24, 70 o 69.<br />

Inoltre il programma RETAG può venire usato per neutralizzare i blocchi del<br />

master file.<br />

Il comando:<br />

retag \cisis\cds\cds unlock<br />

invece di specificare una tavola di rinumerazione di etichette, usa la parola chiave<br />

unlock, che inibisce gli exclusive write lock o <strong>da</strong>ta entry locks e tutti i record locks<br />

esistenti nel master file cds ubicato nella directory \cisis\cds.<br />

RETAG - Sintassi<br />

retag {|unlock} [ [...]]<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

Master file in entrata (input)<br />

<br />

Master file che deve subire mutamenti di TAG o che deve venire sbloccato<br />

(unlocked).<br />

<br />

134


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Tavola di rinumerazione<br />

<br />

Nome di un file sequenziale contenente una tavola di ri-etichettatura, oppure la<br />

parola chiave unlock.<br />

Se consiste di unlock ciò indica al programma che il master file va<br />

sbloccato.<br />

Una tavola per ribattezzare le etichette ha il seguente formato:<br />

<br />

Può contenere fino a 5.461 voci nella versione stan<strong>da</strong>rd.<br />

<strong>Parametri</strong> facoltativi<br />

from=<br />

to=<br />

tell=<br />

shift=<br />

I parametri from, to, shift e tell vengono trattati nell’Appendice I <strong>Parametri</strong> di uso<br />

generale.<br />

RETAG – Uscita (output)<br />

Le operazioni di RETAG vengono effettuate sul medesimo record fisico (in-place),<br />

a prescindere <strong>da</strong>l fatto che si tratti di un’alterazione di TAG o di uno sblocco.<br />

Nell’operazione di ri-etichettatura viene riscritta unicamente la porzione di<br />

directory dei record interessati.<br />

135


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Nell’operazione di sblocco si riscrive unicamente il record di controllo del master<br />

file e il segmento leader dei record trattati.<br />

CTLMFN - Programma<br />

Il programma CTLMFN visualizza ed aggiorna il record di controllo di un master<br />

file.<br />

Va usato prima di man<strong>da</strong>re in esecuzione il programma MKXRF per ripristinare<br />

tutti i record attivi in un master file reinizializzato logicamente, per stabilire il<br />

numero seguente <strong>da</strong> assegnare nel master file e definire la quantità di <strong>da</strong>ti <strong>da</strong><br />

analizzare.<br />

CTLMFN - Presentazione<br />

Il comando:<br />

ctlmfn \cisis\bases\cds<br />

Legge il record di controllo del master file \cisis\bases\cds.mst e permette che<br />

vengano aggiornati tutti i campi di questo record. Tali campi sono i seguenti:<br />

CAMPO CONTENUTO<br />

nxtmfn MFN <strong>da</strong> assegnare al prossimo record che verrà creato nella base <strong>da</strong>ti.<br />

nxtmfb Ultimo numero di blocco assignato al master file (il primo blocco è 1).<br />

nxtmfp Successiva posizione disponibile nell’ultimo blocco del master file.<br />

mftype Per base <strong>da</strong>ti utente (1 per file di messaggi di sistema).<br />

reccnt Riservato.<br />

mfcxx1 Riservato.<br />

mfcxx2 Numero di utenti che immettono <strong>da</strong>ti (Data Entry Lock).<br />

mfcxx3 Exclusive Write Lock.<br />

Se si scrive un valore non valido per nxtmfb apparirà il numero totale di blocchi<br />

del master file.<br />

I comandi<br />

ctlmfn \cisis\bases\cds<br />

136


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

e<br />

mkxrf \cisis\bases\cds<br />

consentono di cambiare uno o più campi di controllo in \cisis\bases\cds.mst (record<br />

di <strong>da</strong>ti) e così di creare, reinizializzare e scrivere il file dei riferimenti incrociati<br />

\cisis\bases\cds.xrf.<br />

CTLMFN - Sintassi<br />

Nome del master file di entrata (input)<br />

ctlmfn [ok]<br />

Parametro <strong>obbligatori</strong>o che indica il master file che deve venire trattato.<br />

Prompt di conferma<br />

CTLMFN – Uscita (output)<br />

Il programma CTLMFN scrive solamente i primi byte (i byte del record di<br />

<br />

controllo) di un file .mst. I byte rimanenti del primo blocco del master file non<br />

vengono modificati.<br />

!<br />

ok<br />

Quando MicroISIS reinizializza logicamente un<br />

master file aggiorna il primo blocco completo del<br />

master file, cancellando i <strong>da</strong>ti ivi memorizzati.<br />

137


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

MKXRF - Programma<br />

Il programma MKXRF legge un file .mst e crea il corrispondente file .xrf.<br />

Inoltre lo si può utilizzare per ripristinare tutti i record attivi in un master file<br />

logicamente inizializzato.<br />

!<br />

MKXRF - Presentazione<br />

Il comando:<br />

mkxrf \cisis\bases\cds<br />

In generale occorre usare il programma CTLMFN<br />

prima di man<strong>da</strong>re in esecuzione MKXRF per<br />

definire il numero massimo di mfn del master file<br />

e la quantità di <strong>da</strong>ti <strong>da</strong> analizzare.<br />

Crea reinizializza e scrive il file dei riferimenti incrociati \cisis\bases\cds.xrf relativo<br />

al master file \cisis\bases\cds.mst.<br />

Il programma MKXRF può ripristinare un master file che sia stato inizializzato per<br />

errore, a condizione che il suo record di controllo contenga i seguenti campi di<br />

controllo in assetto appropriato:<br />

CAMPO CONTENUTO<br />

nxtmfn MFN <strong>da</strong> assegnare al prossimo record che verrà creato nella base <strong>da</strong>ti.<br />

nxtmfb Ultimo numero di blocco assegnato al master file (il primo blocco è 1).<br />

nxtmfp Successiva posizione disponibile nell’ultimo blocco del master file.<br />

Questi valori possono venire definiti servendosi del programma CTLMFN, come<br />

mostrano gli esempi seguenti:<br />

ctlmfn \cisis\bases\cds<br />

mkxrf \cisis\bases\cds<br />

Questi comandi consentono di cambiare uno o più campi di controllo nel file<br />

\cisis\bases\cds.mst (record di <strong>da</strong>ti) per creare, reinizializzare e scrivere i file dei<br />

riferimenti incrociati \cisis\bases\cds.xrf.<br />

Descrizione della esecuzione di CTLMFN nell’esempio:<br />

138


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

a) Se il numero nxtmfn non è noto, occorrerà definire un massimo mfn possibile<br />

(vedi oltre la spiegazione); si potrà poi ottenere il nxtmfn reale eseguendo il<br />

programma MXF0 (campo 1013)<br />

b) nxtmfb indica il numero di blocchi del master file \cisis\bases\cds.mst che<br />

verranno analizzati; se si scrive un valore non valido apparirà a schermo il<br />

numero totale dei blocchi.<br />

c) nxtmfp è l’ultima posizione nel blocco nxtmfb del master file che si sta<br />

analizzando; un valore di 512 forza MKXRF ad elaborare tutti i contenuti del<br />

blocco nxtmfb del master file.<br />

MKXRF - Sintassi<br />

mkxrf <br />

Master file di entrata (input)<br />

Nome del master file che deve venire trattato (parametro <strong>obbligatori</strong>o).<br />

MKXRF – Uscita (output)<br />

<br />

Il programma MKXRF legge il record di controllo e così esamina il file di input<br />

.mst fino alla posizione nxtmfb e nxtmfp; nello svolgere quest’operazione identifica<br />

un record del master file se le seguenti condizioni vengono rispettate nelle<br />

componenti del leader:<br />

a) MFRmfn collocato nell’intervallo fra 1 e (nxtmfn-1).<br />

b) MFRmfrl collocato nell’intervallo <strong>da</strong> LEADER a MAXMFRL.<br />

c) MFRbase è fino a MFRmfrl.<br />

d) MFRmfbwb punta ad una posizione precedente vali<strong>da</strong>.<br />

e) MFRmfbwp collocato nell’intervallo fra 0 e MSBSIZ.<br />

f) MFRnvf è zero o positivo.<br />

g) MFRstatus è ACTIVE o DELETED.<br />

h) MFRbase è uguale a LEADER + MFRnvf*sizeof(DIRSTRU).<br />

La posizione di ogni record del master file identificato viene scritta nel file .xrf che<br />

viene creato e include le versioni dei record vecchi.<br />

139


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

!<br />

Ripristinare una base <strong>da</strong>ti <strong>da</strong>nneggiata<br />

Quando MicroISIS reinizializza logicamente un<br />

master file si aggiorna completamente il primo<br />

blocco del master file, cancellando i <strong>da</strong>to che vi<br />

sono memorizzati.<br />

Qui di seguito si illustrano in dettaglio i passi <strong>da</strong> compiere per ripristinare una<br />

base <strong>da</strong>ti in ragione delle sue possibili condizioni problematiche:<br />

MST<br />

Situazione<br />

XRF Informazioni<br />

Azione<br />

OK Danneggiato MaxMFN<br />

sconosciuto<br />

Usare MKXRF.<br />

Reinizializzato OK Dimensione di<br />

XRF<br />

Calcolare un maxMFN e usare CTLMFN.<br />

Bloccato OK Usare CTLMFN, scrivere degli zero nei<br />

campi mfcxx2, mfcxx3<br />

Calcolo per approssimazione del MaxMFN<br />

Una stima approssimativa del valore massimo del numero di record (maxMFN) si<br />

ottiene calcolando:<br />

(dimensione_in_byte_di_XRF/512) * 127<br />

Se il valore di maxMFN che si indica è maggiore del numero reale dei record, non<br />

si creeranno record nulli né in .mst né in .xrf. Il file .xrf si scrive solo per quei<br />

record che possono venire letti dentro lo .mst. La base potrà venire letta senza<br />

problema però non si potrà aggiornarla (<strong>da</strong>rà l’errore fatal: recxref/read).<br />

Occorrerà correggere il maxMFN seguendo una di queste due strade:<br />

Prendere il valor "x recs" che viene indicato alla fine dell’esecuzione di MKXRF e<br />

poi memorizzare x + 1 nel nxtmfn tramite CTLMFN.<br />

Creare un altro master file (con create, e non con copy) a partire <strong>da</strong> quello di cui si<br />

dispone, allo scopo di correggere il record di controllo nel nuovo master file.<br />

140


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

ID2I - Programma<br />

Il programma I2ID recepisce un file ASCII, con una determinata struttura e genera<br />

un master file.<br />

ID2I - Presentazione<br />

Il programma recepisce un file ASCII e restituisce un file di tipo master file.<br />

Struttura del file ASCII:<br />

• !ID nnnnnn Marcatore di inizio del record con mfn=nnnnnn<br />

• !vnnn Marcatore di inizio di un’occorrenza del campo con tag nnn.<br />

Il file avrà la forma:<br />

!ID nnnnnn<br />

!vXXX!...contenuto del tag XXX.............<br />

!vYYY!...contenuto del tag YYY.............<br />

...<br />

!ID nnnnnj<br />

!vXXQ!...contenuto del tag XXQ.............<br />

!vYYQ!...contenuto del tag YYQ.............<br />

...<br />

Non v’è limite alla lunghezza delle linee del file di<br />

!<br />

testo. Un’occorrenza può utilizzare tutte le linee<br />

di cui ha bisogno.<br />

Un’occorrenza termina quando si incontra una<br />

linea che comincia con !vnnn! (che indica inizio di<br />

occorrenza) o con !ID NNNNNN (inizio di<br />

record).<br />

Esempio:<br />

id2i x.txt create=newcds<br />

L’idea è quella di utilizzare ID2I insieme a I2ID, che prende un master file e<br />

restituisce un file di testo (editabile e modificabile).<br />

141


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Mediante ID2I si converte il file di testo modificato in un master file:<br />

I2ID cds >x.txt<br />

Edit x.txt (Edita il contenuto consentendo di creare, modificare e cancellare<br />

record e occorrenze)<br />

ID2I x.txt create=cds<br />

ID2I - Sintassi<br />

! I2ID<br />

è illustrato analiticamente in un Capitolo a<br />

parte.<br />

id2i [create[/app]=] [option [option] ... ]<br />

options: {from|to|loop|count|offset|tell|id}=<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

File ASCII in entrata (input)<br />

<br />

Si tratta di un file ASCII con la struttura che si è già vista nella presentazione.<br />

Nome del master file di uscita (output)<br />

Master file di uscita, dove si copieranno i record provenienti <strong>da</strong> filein.<br />

<br />

<br />

Se dbout non esiste <strong>da</strong>rà errore; per crearlo si deve utilizzare create. Se dbout<br />

esiste tutti i suoi <strong>da</strong>ti andranno perduti, <strong>da</strong>to che la base viene reinizializzata<br />

prima di copiarvi i record.<br />

142


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Creare master file di uscita (output)<br />

create/app=<br />

Crea il master file di uscita; se dbout esiste tutti i suoi <strong>da</strong>ti andranno perduti, <strong>da</strong>to<br />

che viene reinizializzato prima di copiarvi i record. L’opzione /app significa che si<br />

assegna una numerazione sequenziale.<br />

Inoltre non considera il <strong>da</strong>to di MFN nelle marcature di inizio record (!ID nnnnnn)<br />

e accetta marcature !ID 000000.<br />

<strong>Parametri</strong> facoltativi<br />

! Questi<br />

I2ID - Programma<br />

{from|to|loop|count|tell|offset|id}=<br />

parametri sono trattati nell’Appendice I<br />

<strong>Parametri</strong> di uso generale.<br />

Il programma I2ID riceve un master file e genera un file di testo.<br />

I2ID - Presentazione<br />

Il programma legge un master file e restituisce un file di testo con la seguente<br />

struttura:<br />

!ID nnnnnn Marcatura di inizio record con mfn=nnnnnn<br />

!vnnn Marcatura di inizio occorrenza del campo con<br />

tag nnn.<br />

File di testo restituito <strong>da</strong> I2ID:<br />

!ID nnnnnn<br />

!vXXX!...contenuto del tag XXX.............<br />

143


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

!vYYY!...contenuto del tag YYY.............<br />

...<br />

!ID nnnnnj<br />

!vXXQ!...contenuto del tag XXQ.............<br />

!vYYQ!...contenuto del tag YYQ.............<br />

...<br />

Non v’è limite alla lunghezza delle linee del file di testo. Un’occorrenza può<br />

utilizzare tutte le linee di cui ha bisogno.<br />

Un’occorrenza termina quando comincia una linea con !vnnn! (che indica inizio di<br />

occorrenza) o !ID NNNNNN (inizio di record).<br />

Esempio:<br />

I2ID cds >x.txt<br />

L’idea è quella di usare I2ID insieme a ID2I. Il primo restituisce un file di testo<br />

(che può venire editato e modificato) e poi, per mezzo di ID2I, si torna a convertire<br />

il file di testo in un master file.<br />

I2ID cds >x.txt<br />

edit x.txt<br />

(per editare il contenuto ad es. con l’edit di MS-DOS, si possono creare, modificare<br />

e cancellare record e occorrenze)<br />

ID2I x.txt create=cds<br />

ID2D viene illustrato in dettaglio in un Capitolo a parte.<br />

I2ID - Sintassi<br />

i2id [option [option] ... ]<br />

options: {from|to|loop|count|offset|tell}=<br />

1record==<br />

<strong>Parametri</strong> <strong>obbligatori</strong>:<br />

<br />

144


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità del master file<br />

Master file di entrata (input)<br />

Master file <strong>da</strong> convertire.<br />

<strong>Parametri</strong> facoltativi<br />

<br />

{from|to|loop|count|offset|tell}=<br />

Questi parametri sono trattati nell’Appendice I <strong>Parametri</strong> di uso generale.<br />

CRUNCHMF - Sintassi<br />

crunchmf [ [...]]<br />

Converte il master file (.mst e .xrf) <strong>da</strong> un sistema operativo a un altro, visto che<br />

che la struttura in codice binario non è compatible attraverso diversi sistemi<br />

operativi. Il programma riconosce automaticamente il sistema in cui sta operando.<br />

options:<br />

{from|to|loop|count|tell}=<br />

target={pc|linux|hpux|sun|alpha|vax|unisys|mpe|cdc|same} default:<br />

linux<br />

format={isis|cisisX} default:<br />

isis<br />

mstxl={0|1|2|4} default:<br />

as <br />

145


IFKEYS - Programma<br />

Programmi d’utilità<br />

dell’inverted file<br />

Il programma IFKEYS visualizza i termini dell’inverted file e il corrispondente<br />

totale dei postings, facoltativamente disaggrega i <strong>da</strong>ti in ragione dell’etichetta (ID<br />

della FST) <strong>da</strong> cui sono stati estratti.<br />

IFKEYS accetta un intervallo di termini come parametro e può venire impiegato<br />

per visualizzare un insieme di termini dell’inverted file.<br />

IFKEYS - Presentazione<br />

Il comando:<br />

ifkeys \cisis\bases\cds from=plant to=plants<br />

Legge l’inverted file cds situato nella directory \cisis\bases cominciando <strong>da</strong>l termine<br />

plant fino al termine plants e visualizza questi termini preceduti <strong>da</strong>l loro numero di<br />

postings:<br />

8|PLANT<br />

4|PLANT ECOLOGY<br />

146


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

1|PLANT EVAPOTRANSPIRATION<br />

1|PLANT PHOTOSYNTHESIS<br />

20|PLANT PHYSIOLOGY<br />

6|PLANT TRANSPIRATION<br />

8|PLANTS<br />

Mentre il comando:<br />

ifkeys \cisis\bases\cds from=plant to=plants +tags<br />

produce gli stessi <strong>da</strong>ti e in più (a) include i tag (Field ID della FST) <strong>da</strong> cui questi<br />

termini sono stati prodotti e (b) genera una linea a sé per ciascuna combinazione<br />

di termine e tag, come qui sotto mostrato:<br />

8| 24|PLANT<br />

4| 69|PLANT ECOLOGY<br />

1| 69|PLANT EVAPOTRANSPIRATION<br />

1| 69|PLANT PHOTOSYNTHESIS<br />

20| 69|PLANT PHYSIOLOGY<br />

6| 69|PLANT TRANSPIRATION<br />

6| 24|PLANTS<br />

2| 69|PLANTS<br />

I parametri from to non fanno distinzione fra maiuscole e minuscole, from=plant<br />

produrrà lo stesso output che from=PLANT.<br />

IFKEYS - Sintassi<br />

ifkeys [from=] [to=] [+tags] [tell=]<br />

Inverted file in entrata (input)<br />

Inverted file che verrà trattato.<br />

<br />

147


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

<strong>Parametri</strong> facoltativi<br />

from=<br />

to=<br />

Il parametro tell viene descritto in dettaglio nell’Appendice I <strong>Parametri</strong> di uso<br />

generale.<br />

Primo termine a venire elencato<br />

L’elenco comincia con il termine .<br />

Ultimo termine a venire elencato<br />

L’elenco finisce con il termine .<br />

Mostra il <strong>da</strong>to relativo all’etichetta (tag = ID della FST)<br />

Aggiunge all’elenco il tag <strong>da</strong> cui è stato estratto il termine.<br />

IFKEYS – Uscita (output)<br />

+tags<br />

tell=<br />

from=<br />

to=<br />

Se si usa l’opzione from= e il termine di partenza che si indica non esiste<br />

l’elenco comincia <strong>da</strong>l termine seguente all’interno dell’inverted file. Se si usa<br />

l’opzione to= e il termine finale indicato non esiste, l’elenco finisce col<br />

termine che nell’inverted file lo precede.<br />

+tags<br />

148


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

L’output di IFKEYS può venire reindirizzato ad un file per venire poi trattato <strong>da</strong>l<br />

programma MX. Ad esempio, i comandi:<br />

ifkeys cds +tags >x<br />

mx seq=x "pft=if val(v1)=1 and val(v2)=24 then v3/ fi" now<br />

mostrano le parole del titolo (campo 24 nella base cds) che ricorrono esattamente<br />

una volta.<br />

IFLOAD - Programma<br />

Il programma IFLOAD carica un inverted file usando i link file ordinati in base<br />

all’opzioni dell’elaborazione. Si accettano altri formati in aggiunta a quelli dei link<br />

file stan<strong>da</strong>rd di MicroISIS.<br />

Consente anche che venga creato solamente l’inverted file del dizionario.<br />

Il programma IFLOAD può venire impiegato anche per creare e reinizializzare un<br />

inverted file.<br />

IFLOAD - Presentazione<br />

Il comando:<br />

ifload \cisis\bases\cds \isis\work\cds.lk1 \isis\work\cds.lk2<br />

tell=99<br />

carica l’inverted file cds ubicato nella directory \cisis\bases usando i link file delle<br />

chiavi corte e lunghe cds.lk1 e cds.lk2, situati nella directory \isis\work.<br />

L’opzione tell=99 produce un messaggio ricorrente ogni 99 link record trattati,<br />

mostrando la chiave corrente che sta venendo caricata.<br />

Si suppone che i link file precedenti siano nel formato dei link file stan<strong>da</strong>rd di<br />

MicroISIS, che hanno questo assetto per ogni voce:<br />

102 24 1 1 ABOUT<br />

42 24 1 9 ABSENCE<br />

149


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

6 24 1 10 ABSORPTION<br />

87 24 1 5 ACCOUNT<br />

136 69 1 1 ACCOUNTING<br />

40 24 1 6 ACID<br />

101 24 1 5 ACTION<br />

49 24 1 6 ACTIVITIES<br />

130 24 1 7 ACTIVITIES<br />

23 24 1 5 ACTUAL<br />

Si tratta di un insieme di record a lunghezza variabile che contengono campi che<br />

identificano l’origine della chiave e la stessa chiave.<br />

I primi 4 campi costituiscono le componenti del posting.<br />

Campo Contenuto<br />

MFN Numero del record (master file record number).<br />

TAG Identificatore di campo, assegnato <strong>da</strong>lla FST (FI-field identifier).<br />

OCC Numero di occorrenza nel campo<br />

CNT Numero sequenziale del termine nel campo<br />

Per consentire l’uso di programmi d’ordinamento (sort) stan<strong>da</strong>rd, IFLOAD accetta<br />

link file con record a lunghezza fissa, come qui sotto mostrato:<br />

ABOUT 102 24 1 1<br />

ABSENCE 42 24 1 9<br />

ABSORPTION 6 24 1 10<br />

ACCOUNT 87 24 1 5<br />

ACCOUNTING 136 69 1 1<br />

ACID 40 24 1 6<br />

ACTION 101 24 1 5<br />

ACTIVITIES 49 24 1 6<br />

ACTIVITIES 130 24 1 7<br />

ACTUAL 23 24 1 5<br />

Il seguente comando carica l’inverted file cds situato nella directory \cisis\bases<br />

usando i link file a lunghezza fissa cds.lk1 e cds.lk2 ubicati nella directory \isis\work:<br />

ifload \cisis\bases\cds \isis\work\cds.lk1 \isis\work\cds.lk2 +fix<br />

La seguente è una procedura che permette di generare un inverted file x usando la<br />

Tavola di selezione dei campi (FST) di default e il file di stopword:<br />

mx x fst=@ stw=@ ln1=x.ln1 ln2=x.ln2 +fix tell=100<br />

del *.$$$<br />

150


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

mys 37 x.ln1 x.lk1<br />

del x.ln1<br />

del *.$$$<br />

mys 57 x.ln2 x.lk2<br />

del x.ln2<br />

ifload x x.lk1 x.lk2 +fix tell=1000<br />

del x.lk1<br />

del x.lk2<br />

Quando si creano più inverted file per uno stesso <strong>da</strong>to master file e non è<br />

indispensabile effettuare ricerche con operatori di prossimità, è unicamente<br />

necessaria la componente MFN del posting. Ai link file potrà bastare un formato<br />

del genere:<br />

ABOUT 102<br />

ABSENCE 42<br />

ABSORPTION 6<br />

ACCOUNT 87<br />

ACCOUNTING 136<br />

ACID 40<br />

ACTION 101<br />

ACTIVITIES 49<br />

ACTIVITIES 130<br />

ACTUAL 23<br />

essi verranno caricati con il comando:<br />

ifload \cisis\bases\cds \isis\work\cds.lk1 \isis\work\cds.lk2<br />

+fix/m<br />

Il programma IFLOAD permette di caricare solamente il dizionario dell’inverted<br />

file, usando l’opzione -posts:<br />

ifload authority x.lk1 x.lk2 -posts<br />

Dopo che si carica un inverted file, per default, il segnale: I/F up<strong>da</strong>te is pending si<br />

reinizializza in tutti i record interessati nel master file.<br />

151


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Quando si creano vari inverted file per uno stesso master file va specificato che il<br />

segnale I/F up<strong>da</strong>te is pending va mantenuto, come qui esemplificato:<br />

ifload au au.lk1 au.lk2 reset=0<br />

ifload ti ti.lk1 ti.lk2 reset=0<br />

Qualora si dovesse reinizializzare il segnale I/F up<strong>da</strong>te is pending e il nome del<br />

inverted file <strong>da</strong> caricare fosse diverso <strong>da</strong>l master file associato, si impiegherà<br />

l’opzione master<br />

ifload kw kw.lk1 kw.lk2 master=\cisis\bases\cds<br />

IFLOAD - Sintassi<br />

ifload {|void} {|void} [<br />

[...]]<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

Inverted file in entrata (input)<br />

<br />

<br />

<br />

<br />

Inverted file <strong>da</strong> caricare. L’inverted file viene creato e inizializzato<br />

anche se già esiste.<br />

Link file delle chiavi corte<br />

Link file delle chiavi brevi, ordinato.<br />

<br />

152


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Link file delle chiavi lunghe<br />

Link file delle chiavi lunghe, ordinato.<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

<br />

master=<br />

- {reset | posts | balan}<br />

Reinizializzare il segnale di “aggiornamento in sospeso”<br />

Reinizializza il contrassegno di I/F up<strong>da</strong>te is pending nel master file<br />

; per default viene trattato il master file .<br />

Aggiornamento in sospeso<br />

tell=<br />

+fix[/m]<br />

master=<br />

Non reinizializza il contrassegno di I/F up<strong>da</strong>te is pending nel master file<br />

o .<br />

Non riequilibrare dizionario<br />

Non riequilibra il dizionario (gli alberi B*–tree)<br />

-reset<br />

-balan<br />

153


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Non caricare i postings<br />

Carica unicamente il dizionario, non carica i postings nel file .ifp.<br />

Informazioni circa l’esecuzione della procedura<br />

Produce un messaggio progressivo nello stan<strong>da</strong>rd error ogni link record<br />

caricati.<br />

Link file a lunghezza fissa<br />

Caricare file a lunghezza fissa<br />

Carica link file con record a lunghezza fissa con il formato:<br />

KEY MFN TAG OCC CNT<br />

Carica link file con formato ridotto<br />

Carica link file con record a lunghezza fissa con il formato:<br />

KEY MFN<br />

-posts<br />

tell=<br />

+fix[/m]<br />

+fix<br />

+fix/m<br />

154


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

IFLOAD – Uscita (output)<br />

L’inverted file è composto <strong>da</strong> sei file fisici, cinque dei quali contengono il<br />

dizionario dei termini recuperabili in ricerca (organizzati come un albero B*) e il<br />

sesto contiene la lista dei postings associati ad ogni termine. Per ottimizzare la<br />

memorizzazione su disco, sono allestiti due distinti alberi B* (struttura di <strong>da</strong>ti per<br />

gli indici che consente di registrare informazioni ordinate), uno per le stringhe fino<br />

a 10 caratteri e l’altro per le stringhe di più di 10 caratteri e fino ad un massimo di<br />

30 caratteri. Entrambi gli indici ad albero B* sono strutturati come pagine a<br />

lunghezza fissa, con chiavi completate con spazi riempitivi alla destra.<br />

Si può conseguire un’occupazione ottimizzata di spazio disco usando il programma<br />

d’utilità di CISIS MYZ, che comprime il dizionario dell’inverted file per ciascuno<br />

degli alberi B*, come qui sotto esemplificato:<br />

myz ifn 1 ifn_z tell=10<br />

myz ifn 2 ifn_z tell=10<br />

Il dizionario dell’inverted file prodotto: ifn_z è formato <strong>da</strong>i file ifn_z.cnt, ifn_z.n01,<br />

ifn_z.l01, ifn_z.n02 e ifn_z.l02.<br />

Dopo avere eseguito i comandi il file ifn.ifp andrà rinominato ifn_z.ifp, dove ifn_z è<br />

la versione compressa dell’inverted file inf.<br />

IFUPD - Programma<br />

Il programma IFUPD aggiorna un inverted file, in base a quanto definito <strong>da</strong>:<br />

• La Tavola di selezione dei campi (FST);<br />

• Stopwords;<br />

• Record del master file;<br />

• Opzioni di elaborazione.<br />

Il programma IFUPD può anche venire usato per creare e reinizializzare un<br />

inverted file.<br />

155


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

IFUPD - Presentazione<br />

Il comando:<br />

ifupd \cisis\bases\cds fst=@ stw=@<br />

Legge il master file cds posizionato nella directory \cisis\bases e aggiorna<br />

l’inverted file corrispondente, in armonia con la Tavola di selezione dei campi<br />

(FST) di default e con il file di stopword -cds.fst e cds.stw- situati nella medesima<br />

directory.<br />

Il comando seguente usa una Tavola di selezione dei campi diversa e specifica che<br />

le chiavi dell’inverted file saranno estratte senza venire filtrate <strong>da</strong>l file Stopwords:<br />

ifupd \cisis\bases\cds fst=@\cisis\bases\another.fst<br />

IFUPD accetta istruzioni nella linea di input, come:<br />

ifupd \cisis\bases\cds "fst=70 0 (v70/); 69 2 v69"<br />

IFUPD permette di aggiornare vari inverted file per un unico master file <strong>da</strong>to. In<br />

questo casotutti gli aggiornamenti (salvo l’ultimo) devono specificare che il segnale<br />

di I/F up<strong>da</strong>te is pending deve restare in vigore, come qui sotto esemplificato:<br />

ifupd au fst=@au.fst master=\cisis\bases\cds reset=0<br />

ifupd ti fst=@ti.fst master=\cisis\bases\cds reset=0<br />

ifupd kw fst=@kw.fst master=\cisis\bases\cds<br />

Nell’ultima linea dell’esempio non compare reset=0 visto che già sono stati<br />

aggiornati tutti gli inverted file e che dunque non è più necessario mantenere<br />

attivo il segnale di aggiornamento in sospeso.<br />

IFUPD - Sintassi<br />

ifupd [mono|full] [create=] [ [...]]<br />

[mono|full] single/multi user<br />

operation<br />

[create=] to delete+create<br />

<br />

output inverted file<br />

156


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

options:<br />

fst=|@[fstfile] field select table<br />

stw=|@[stwfile] stop words<br />

-posts<br />

.ifp<br />

(init and) do not load<br />

master= alternate master file<br />

actab= alphabetic chars table<br />

uctab= upper case chars table<br />

from= initial mfn<br />

to= final mfn<br />

count= max mfns<br />

tell= tell % loaded<br />

<strong>Parametri</strong> <strong>obbligatori</strong><br />

Inverted file <strong>da</strong> aggiornare<br />

Inverted file <strong>da</strong> aggiornare.<br />

<br />

<br />

Se si specifica create= si crea l’inverted file e lo si inizializza<br />

anche se già c’è.<br />

Tavola di selezione dei campi<br />

FST per default<br />

fst=|@[fstfile]<br />

fst=@<br />

157


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Usa la Tavola di selezione dei campi (FST) di default.<br />

Caricare una FST <strong>da</strong> un file esterno<br />

La Tavola di selezione dei campi (FST) viene fornita via file esterno .<br />

Specifica della FST nella linea di comando<br />

fst=@<br />

fst=<br />

La Tavola di selezione dei campi (FST) viene fornita nella linea di comando come<br />

un elenco scandito <strong>da</strong> punto e virgola.<br />

File delle parole non significative<br />

File STW di default<br />

Usa il file di Stopword di default.<br />

Carica la lista STW leggendolo <strong>da</strong> file esterno<br />

stw=|@[stwfile]<br />

stw=@<br />

stw=@<br />

La lista delle parole non significative (stopwords) viene fornita nel file .<br />

Mantenere il contrassegno di aggiornamento in sospeso<br />

reset=0<br />

158


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Mantiene in vigore il segnale I/F up<strong>da</strong>te is pending; per default reinizializza tutti i<br />

record trattati.<br />

Non caricare i postings<br />

Aggiorna unicamente il dizionario. Non carica i postings nel file .ifp.<br />

Master file alternativo<br />

Per default assume come master file un file che abbia il medesimo nome<br />

-posts<br />

master=<br />

dell’inverted file su cui si sta lavorando, però se si specifica master=,<br />

ifupd utilizzerà un master file di nome .<br />

IFUPD – Uscita (output)<br />

Si elaborano unicamente i record master file marcati con I/F up<strong>da</strong>te is pending<br />

(aggiornamento in sospeso).<br />

Il parametro reset=0 fa sì che i record del master file sottoposti a trattamento<br />

possano poi venire usati per creare o aggiornare un altro inverted file.<br />

MYS - Sintassi<br />

mys {link1|link2|} [ [...]]<br />

options: tell=<br />

+fix/m<br />

Ex: mys 37 x.ln1 x.lk1<br />

mys link1 x.ln1 x.lk1 tell=0<br />

159


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

Ex: mys 57 x.ln2 x.lk2<br />

mys link2 x.ln2 x.lk2 tell=0<br />

MYS – Uscita<br />

Ordina i link file per creare l’inverted file<br />

IFMERGE - Sintaxis<br />

ifmerge [,n1] [,n2] [...] [ [...]]<br />

output inverted file<br />

[,n1] input inverted file #1, maxmfn#1<br />

[,n2] input inverted file #2, maxmfn#2<br />

options:<br />

+mstxrf<br />

.pft<br />

create M/F and its mstxrf<br />

-posts do not load .ifp<br />

-balan do not rebalance the dict<br />

tell= tell keys has been loaded<br />

IFMERGE – Uscita (output)<br />

Combina vari inverted file di diversi master file in un solo inverted file, grazie a<br />

una procedura che recupera i record a partire <strong>da</strong>i master file sorgente.<br />

MKIY0 - Sintassi<br />

mkiy0 [-ifp] [-v] [blksize=32768]<br />

160


Programmi di utilità CISIS: manuale di riferimento Programmi d’utilità dell’inverted file<br />

MKIY0 – Uscita (output)<br />

Combina i sei file che costituiscono l’inverted file in un solo file fisico.<br />

CRUNCHIF - Sintassi<br />

crunchif [ [...]]<br />

options:<br />

-ifp don't crunch .ifp file<br />

/ifp crunch .ifp file if needed<br />

tell= tell records processed<br />

target={linux|hpux|sun|alpha|vax|unisys|mpe|cdc|pc} default: linux<br />

CRUNCHIF - Uscita<br />

Converte l’inverted file <strong>da</strong> un sistema operativo a un altro, per esempio <strong>da</strong><br />

Windows a Linux.<br />

161


Riferimenti bibliografici<br />

1. UNESCO. Mini-micro CDS/ISIS: Reference manual (version 2.3). Organized<br />

by Giampaolo Del Bigio. Paris: United Nations Educational, Scientific and<br />

Cultural Organization, 1989. 286 p. ISBN 92-3-102-605-5.<br />

2. BUXTON, Andrew, HOPKINSON, Alan. The CDS/ISIS for Windows<br />

Handbook [online]. Paris: United Nations Educational, Scientific and<br />

Cultural Organization, 2001 [visto il 30 August 2006]. 164 p. Accessibile in<br />

internet: .<br />

3. SUTER, Tito. “Prehistoria” e historia del MicroISIS [online]. In: Manual<br />

para instructores de Winisis. Buenos Aires: Centro Atómico Constituyentes<br />

(CAC), Comisión Nacional de Energía Atómica (CNEA), 1999 [visto il 30<br />

Agosto 2006]. p. 21-26. Accessibile in internet:<br />

.<br />

162


Backup. Procedura grazie alla quale uno o più file e/o directories<br />

vengono duplicati su un altro supporto di memorizzazione (nastro o<br />

disco), allo scopo di produrre una copia di sicurezza, che potrà<br />

venire ripristinata nel caso in cui dei <strong>da</strong>ti vengano cancellati<br />

accidentalmente o si verifichi un <strong>da</strong>nno fisico ai <strong>da</strong>ti originali.<br />

Base <strong>da</strong>ti. Raccolta di <strong>da</strong>ti strutturati allo scopo di rendere possibile<br />

avere accesso ad essi e manipolarli facilmente. Composta di unità<br />

denominate record i cui diversi attributi sono rappresentati <strong>da</strong><br />

campi e sottocampi. Per esempio, in un archivio indirizzario dei<br />

clienti", ogni cliente rappresenta un record che possiede vari<br />

campi, come "NOME", "CODICE DEL CLIENTE", "TELEFONO" etc.<br />

Basi <strong>da</strong>ti bibliografica. Versione elettronica di un catalogo o indice<br />

bibliografico.<br />

Campo. Elemento di un record che consente di registrare delle<br />

informazioni particolari. Cfr. Base <strong>da</strong>ti.<br />

Glossario<br />

163


Programmi di utilità CISIS: manuale di riferimento Glossario<br />

CDS/ISIS – MicroISIS. Software sviluppato e mantenuto <strong>da</strong>ll’UNESCO<br />

per il trattammento di <strong>da</strong>ti bibliografici.<br />

Chiave. Espressione che identifica una o più informazioni incluse in<br />

una determinata classe o tipo e che può venire usata in fase di<br />

ricerca.<br />

File. In informatica, un insieme di <strong>da</strong>ti che può venire scritto su un<br />

supporto di memorizzazione. I file di <strong>da</strong>ti sono creati per delle<br />

applicazioni, come ad esempio un sistema di elaborazione testi.<br />

Formato di visualizzazione. Un insieme di comandi che definiscono<br />

l’aspetto che i <strong>da</strong>ti di una base <strong>da</strong>ti ISIS devono avere in uscita (output).<br />

Formato elettronico. Qualsiasi forma di memorizzazione, recupero e<br />

presentazione delle informazioni suscettibile di venire trasmessa<br />

online o per scrittura su supporti magnetici o ottici.<br />

Formato ISO (di scambio dei <strong>da</strong>ti). Modello definito <strong>da</strong>lla ISO per lo<br />

scambio di <strong>da</strong>ti fra istituzioni, reti ed utenti, ci si riferisce alla<br />

norma ISO 2709.<br />

Formato LILACS. Formato de Descrizione bibliografica definito <strong>da</strong><br />

BIREME, basato su UNISIST Reference Manual for Machine-rea<strong>da</strong>ble<br />

Bibliographic Descriptions.<br />

Indicizzazione. Procedimento attraverso cui si identifica e descrive<br />

il contenuto di un documento con termini che rapresentano i temi<br />

del documento, allo scopo di consentirne dopo il recupero.<br />

Inverted file. Un insieme di sei file fisici, cinque dei quali contengono<br />

i termini di ricerca del dizionario (organizzato come un albero B*-<br />

tree) e il sesto contiene la lista dei puntatori associati a ciascun<br />

termine. Per ottimizzare la memorizzazione su disco, sono allestiti<br />

due distinti alberi B*-tree: uno per i termini con lunghezza fino a<br />

164


Programmi di utilità CISIS: manuale di riferimento Glossario<br />

10 caratteri (memorizzati nei file .N01 e .L01) e l’altro per termini<br />

lunghi più di 10 caratteri (memorizzati nei file .N02 e .L02). Il file<br />

.CNT contiene campi de controllo per entrambi gli alberi B*. In<br />

ciascun file dell’albero B* il file .N0x contiene i nodi dell’albero e il<br />

file .L0x contiene le foglie. I record delle foglie puntano alla<br />

posizione dove si trovano i puntatori che contengono le<br />

informazioni per localizzare i record (postings) nella base <strong>da</strong>ti.<br />

Questo file è identificato <strong>da</strong>lla estensione .IFP.<br />

Posting. Rappresenta l’indirizzo di una chiave estratta <strong>da</strong>l master file.<br />

Record. Insieme strutturato di <strong>da</strong>ti che permitte di registrare una<br />

determinata informazione. Cfr. Basi <strong>da</strong>ti.<br />

Sottocampo. Elemento che contiene una porzione della<br />

informazione di tutto un campo, e il cui significato può risultare<br />

non chiaro se non viene analizzato assieme con gli altri elementi<br />

correlati.<br />

UNISIST. Programma intergovernativo relativo alla cooperazione nel<br />

campo dell’informazione scientifica e tecnologica.<br />

165


Relativi all’uscita (output) stan<strong>da</strong>rd:<br />

Disabilitare il prompt fra record<br />

Appendice I - <strong>Parametri</strong> di<br />

uso generale<br />

Questo parametro disabilita il prompt che MX presenta fra record e record.<br />

now, tell, -all, >, >><br />

Il parametro now o nowait consente di elaborare tutti i record senza intervento<br />

dell’operatore e sopprime l’output del “suggerimento” (prompt) offerto <strong>da</strong>l<br />

programma.<br />

now (nowait)<br />

Così si otterrà un output completo ed immediato senza che l’elaborazione si arresti tra<br />

record e record con il suggerimento dei due punti appaiati (prompt): ..<br />

mx cds from=24 to=50 pft=mfn/ now<br />

166


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

Segnalare ogni n record<br />

Il parametro tell=n fa comparire un breve messaggio sul dispositivo di output dei<br />

messaggi di errore (stderr, stan<strong>da</strong>rd error: normalmente lo schermo) ogni <br />

record.<br />

tell=<br />

Anche se il processo viene indirizzato verso un’uscita a stampa o a un file, i messaggi<br />

prodotti <strong>da</strong> tell=n non possono venire reindirizzati e continueranno ad an<strong>da</strong>re a<br />

schermo.<br />

Si raccoman<strong>da</strong> di usare questo parametro insieme al parametro -all che sopprime<br />

l’output a schermo dell’elenco dei record.<br />

Esempio:<br />

mx cds from=1 to=150 tell=30 now -all<br />

Ciò manderà sullo schermo del computer solo i seguenti messaggi:<br />

C:\>mx cds from=1 to=150 tell=30 now -all<br />

+++ 30<br />

+++ 60<br />

+++ 90<br />

+++ 120<br />

+++ 150<br />

C:\><br />

Disabilitare l’invio di <strong>da</strong>ti a schermo<br />

Il parametro -all fa in modo che nessun tipo di <strong>da</strong>to venga riflesso sullo schermo,<br />

eccettuati i messaggi di errore o le informazioni prodotte <strong>da</strong>l parametro tell (che<br />

utilizza lo stan<strong>da</strong>rd error per inviare i propri messaggi).<br />

-all<br />

167


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

Reindirizzare l’uscita (output) stan<strong>da</strong>rd<br />

> | >> <br />

Tutti i <strong>da</strong>ti che appaiono a schermo (uscita stan<strong>da</strong>rd per default, stan<strong>da</strong>rd output),<br />

possono venire reindirizzati verso un file, una stampante etc.<br />

E’ possibile volgere l’uscita verso un file o una stampante usando gli attributi di<br />

reindirizzamento del sistema operativo: > o >>.<br />

Se si aggiunge alla fine della linea di comandi l’istruzione >file, MX crea un file di<br />

nome file e ripone in esso tutte le informazioni che stavano per essere inviate verso<br />

l’uscita stan<strong>da</strong>rd (lo schermo).<br />

!<br />

Se esisteva un file col medesimo nome, questo verrà<br />

inizializzato, pertanto tutti i suoi <strong>da</strong>ti verranno<br />

cancellati.<br />

Se si pone >>file nella chiamata di MX, esso apre il file con nome file e vi stipa –<br />

aggiungendoveli- tutti i <strong>da</strong>ti che erano diretti verso l’uscita stan<strong>da</strong>rd (lo schermo), se il<br />

file non esiste viene creato.<br />

Esempi:<br />

! Se<br />

il file esiste le informazioni vengono aggiunte a<br />

quelle esistenti senza distruggerle.<br />

• Inviare il listato del risultato di una ricerca alla stampante:<br />

mx cds plants pft=@cds.pft now > LPT1<br />

• Inviare l’elenco di un intervallo di record ad un file:<br />

mx cds from=10 to=30 pft=@otro.pft lw=35 now > archivo.txt<br />

!<br />

Quando l’uscita stan<strong>da</strong>rd viene rediretta, il prompt<br />

viene inviato assieme con il resto dei <strong>da</strong>ti, pertanto,<br />

MX resterà in attesa ma senza presentare il<br />

prompt allo schermo. Di solito quando all’interno di<br />

una chiamata di MX c’è il parametro che reindirizza<br />

l’uscita stan<strong>da</strong>rd c’è anche il parametro now.<br />

168


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

Si tenga presente che se si pone il parametro -all non ci sarà output, e dunque il file cui<br />

si è inviato l’output resterà vuoto.<br />

Relativi alla selezione di record:<br />

Iniziare <strong>da</strong>l record n<br />

<br />

from=<br />

Inizia l’operazione <strong>da</strong>l record della base <strong>da</strong>ti in ingresso; se non lo si specifica<br />

l’operazione si avvia col primo record del master file.<br />

Terminare col record n<br />

Conclude l’operazione col record della base in ingresso; se non lo si specifica<br />

termina con l’ultimo record del master file.<br />

Trattare un record ogni n<br />

Salta record per ciascun record trattato.<br />

Per esempio, se questo parametro viene indicato e il valore preceduto <strong>da</strong>l segno è<br />

uguale a 5, si elaboreranno i record: 1, 6, 11, etc.<br />

Selezionare n record<br />

to=<br />

loop=<br />

count=<br />

169


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

Il parametro count=n seleziona esattamente n record a partire <strong>da</strong> un inizio <strong>da</strong>to. Se<br />

non si indica record di inizio comincia <strong>da</strong>l primo record.<br />

Esempio con MX Esito in uscita<br />

mx cds from=24 to=50 loop=5<br />

000024<br />

pft=mfn/ now<br />

000029<br />

000034<br />

000039<br />

000044<br />

000049<br />

mx cds from=24 to=50 count=3<br />

000024<br />

loop=5 pft=mfn/ now<br />

000029<br />

000034<br />

mx cds from=24 to=50 count=9<br />

000024<br />

loop=5 pft=mfn/ now<br />

000029<br />

000034<br />

000039<br />

000044<br />

000049<br />

!<br />

Quando nella medesima linea di istruzioni si<br />

trovano parametri come count, to, etc.,<br />

l’elaborazione termina quando finisce il lavoro del<br />

primo di essi.<br />

Relativi ai record in uscita (output):<br />

Addiziona n al numero di record (MFN)<br />

Addiziona all’MFN; cosí l’MFN che viene memorizzato in dbout è l’MFN del<br />

record d’input più offset.<br />

mxcp cds newcds offset=1000<br />

<br />

offset=<br />

170


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

Nell’esempio, indicando offset=1000, si immetteranno i record della base cds nella base<br />

newcds con mfn 1000, 1001, 1002, etc.<br />

Cambiamento globale di modelli<br />

Il parametro gizmo= permette di effettuare cambiamenti globali nel contenuto dei<br />

campi di una base CDS/ISIS, convertire una stringa di caratteri in un’altra, e cosí<br />

effettuare modifiche, codifica/decodifica, compressione di <strong>da</strong>ti, etc.<br />

gizmo<br />

Questi cambiamenti possono vertere su tutti i record della base o su un gruppo di<br />

record (selezionati tramite una ricerca, un intervallo, etc.). A sua volta, i cambiamenti<br />

possono riguar<strong>da</strong>re tutto il record o solo alcuni campi. Per esempio, si può agire per<br />

cambiare i segni < > in / /, o la stringa di caratteri plants in PLANTAS, etc.<br />

Per effettuare questi cambiamenti è necessario disporre di un master file gizmo.<br />

Questo master file contiene di norma due campi: il campo 1 contiene il <strong>da</strong>to <strong>da</strong><br />

cambiare, e il campo 2 il nuovo valore. Ogni coppia di <strong>da</strong>ti costituirà un record della<br />

base gizmo.<br />

Ogni record di input viene sottoposto all’operazione di cambiamento stabilita nel file<br />

gizmo. Quando l’esecuzione di MX comincia i <strong>da</strong>ti del file gizmo vengono caricati in<br />

memoria come una tabella e vi si ordinano alfabeticamente in base al valore del campo<br />

1 e della sua lunghezza (in modo che le stringhe di caratteri più lunghe vengano<br />

convertite prima di quelle più corte).<br />

Esempi:<br />

Si crea una base <strong>da</strong>ti di nome PRUEBA usando i parametri di MX già noti e si<br />

immettono i <strong>da</strong>ti direttamente <strong>da</strong>lla tastiera:<br />

mx seq=con create=prueba -all now<br />

|/<br />

plants|PLANTAS<br />

Z (o )<br />

171


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

ottenendo i record seguenti:<br />

mfn= 1<br />

1 «»<br />

2 «/»<br />

mfn= 3<br />

1 «plants»<br />

2 «PLANTAS»<br />

Il contenuto dei campi titolo e descrittori del record MFN=1 è:<br />

mx cds to=1 "pft=mfn/v24/v69"<br />

000001<br />

Techniques for the measurement of transpiration of individual plants<br />

Paper on: <br />

Se all’esempio seguente si applica il parametro gizmo:<br />

mx cds gizmo=prueba to=1 "pft=mfn/v24/v69"<br />

si otterrà:<br />

000001<br />

Techniques for the measurement of transpiration of individual PLANTAS<br />

Paper on: /plant physiology//plant transpiration//measurement and<br />

instruments/<br />

!<br />

La modifica NON tocca la base CDS che fornisce i<br />

<strong>da</strong>ti in entrata perché la modifica avviene a livello<br />

dell’output (in questo caso un esito a schermo).<br />

Per modificare realmente i record si dovrà inviare il risultato della procedura al<br />

medesimo master file, come nell’esempio seguente:<br />

172


Programmi di utilità CISIS: manuale di riferimento Appendice I - <strong>Parametri</strong> di uso generale<br />

mx cds gizmo=prueba to=1 copy=cds –all now<br />

Se per contro si desidera generare una nuova base <strong>da</strong>ti è necessario crearla:<br />

mx cds gizmo=prueba to=1 create=sali<strong>da</strong> –all now<br />

E’ possibile restringere la modifica ad un campo specifico del record, indicando di<br />

seguito al parametro gizmo l’etichetta o le etichette su cui si vuole operare il<br />

cambiamento. E’ possibile indicare un intervallo di etichette separate <strong>da</strong> /.<br />

mx cds gizmo=prueba,69,24 to=1 create=sali<strong>da</strong> -all now<br />

mx cds gizmo=prueba,35/56 to=1 create=sali<strong>da</strong> -all now<br />

173


Appendice II - File<br />

CIPAR<br />

L’interfaccia di programmazione CISIS fornisce un utensile denominato CIPAR, che<br />

svolge il ruolo del SYSPAR.PAR e dei vari .par di CDS/ISIS stan<strong>da</strong>rd, inoltre<br />

offre moltre altre funzioni proprie di CISIS. Il CIPAR è un file di puro testo ASCII che<br />

attiva meccanismi per la ricerca di nomi di file logici, nomi di basi <strong>da</strong>ti, stabilisce<br />

parametri dell’ambiente di lavoro, etc.<br />

Un file di parametri CIPAR è fatto di linee di comandi, un comando per linea, con<br />

istruzioni di equivalenza logica. Un’equivalenza logica è una proposizione di<br />

assegnazione dove il valore a sinistra del segno = riceve e rappresenta i valori a destra<br />

del segno di uguale.<br />

CISIS legge le linee del file CIPAR e le pone in memoria come una tavola di riferimenti.<br />

Ogni linea viene letta fino a che si arriva alla fine del file o fino a che si trova la<br />

combinazione di /* (barra, asterisco), secondo quale dei due capita per primo. Il testo<br />

che segue dopo il /* si considera come commento e documentazione relativi al CIPAR.<br />

Esempi:<br />

Supponendo che il file si chiami DATOS.CIP e che contenga le seguenti linee:<br />

174


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

CDS.*=\cisis\bases\cds.*<br />

CDS1.PFT=\cisis\bases\cds1.pft<br />

allora l’istruzione<br />

mx cipar=<strong>da</strong>tos.cip CDS pft=@CDS1.PFT from=10 ...<br />

è equivalente a:<br />

mx \cisis\bases\cds pft=\cisis\bases\cds1.pft from=10 ...<br />

Le assegnazioni e interpretazioni dei valori del<br />

!<br />

CIPAR fanno differenza fra maiuscole e minuscole.<br />

L’unica eccezione per il raffronto esatto fra i termini<br />

è rappresentata <strong>da</strong>l caso in cui le parti di una linea a<br />

sinistra e a destra del segno d’uguale terminano con<br />

la sequenza .* (punto e asterisco).<br />

Nell’esempio seguente:<br />

dbxtrace=y<br />

14=1<br />

cds.*=c:\cisis\bases\cds.*<br />

cds1.pft=c:\cisis\bases\cds1.pft<br />

lilacs.xrf=c:\lilacsok.xrf<br />

lilacs.*=d:\bases\lilacs\lilacs.*<br />

I termini a sinistra saranno o no convertiti nei termini di destra a secon<strong>da</strong> che la<br />

comparazione sia esatta o meno. Se il programma MX trova una sequenza di caratteri<br />

(che potrebbe essere il nome di una base <strong>da</strong>ti, di un formato, etc.), cercherà nelle righe<br />

del CIPAR ed effettuerà le trasformazioni corrispondenti se la trova in una riga di<br />

equivalenza.<br />

Trova Converte in:<br />

dbxTRACE Non lo converte<br />

dbxtrace y<br />

14 1<br />

cds.mst C:\cisis\bases\cds.mst<br />

lilacs.xxx d:\bases\lilacs\lilacs.xxx<br />

lilacs.xrf C:\lilacsok.xrf<br />

LILACS.xxx Non lo converte<br />

Oltre alla definizione di nomi logici di file è possibile assegnare valori di variabili di<br />

ambiente (environment) valide in forma globale per le applicazioni.<br />

Vi sono due modi per attivare il CIPAR:<br />

175


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

a) Usandolo direttamente dentro la linea dei comandi di MX grazie al parametro<br />

cipar=, dove specifica il nome del file che si userà come CIPAR<br />

durante l’esecuzione del programma. Solamente il programma MX può usare<br />

questa opzione.<br />

!<br />

Tutti gli altri programmi di CISIS (ivi compresi il<br />

Winisis dell’Unesco, le ISIS.DLL e il WWWISIS) lo<br />

possono usare solamente nella mo<strong>da</strong>lità (b).<br />

b) Come variabile di ambiente del sistema operativo. Per questo si userà il comando<br />

set=CIPAR= dove sarà il file CIPAR che si userà in tutte le<br />

esecuzioni successive dei programmi CISIS.<br />

Esempio:<br />

c:\>set cipar=\cipar.par<br />

Questa istruzione creerà una variabile d’ambiente (una variabile globale del sistema<br />

operativo) chiamata CIPAR il cui contenuto è c:\cipar.par. Tutte le applicazioni CISIS<br />

che si eseguiranno a partire <strong>da</strong> questo momento prenderanno questo file come CIPAR,<br />

a prescindere <strong>da</strong> dove i programmi vengano lanciati.<br />

E’ possibile cambiare il parametro in un altro file riassegnando la variabile di ambiente<br />

nuovamente con una istruzione set=.<br />

c:\> set cipar=\otro.par<br />

Per eliminare questa variabile <strong>da</strong>ll’ambiente del sistema operativo è sufficiente<br />

assegnarle un valor nullo:<br />

c:\> set cipar=<br />

La capacità di assegnare valori globali del sistema operativo non è un’esclusiva del MS-<br />

DOS; altri sistemi operativi come Unix hanno questa possibilità, quantunque ricorrano<br />

a comandi diversi:<br />

• SunOs e UNIX/CSH usano<br />

setenv cipar=x<br />

• HP-UX, UNISYS 6000 e UNIX/ksh usano<br />

cipar=x; export cipar<br />

Se esiste CIPAR come variabile d’ambiente e inoltre si dichiara il parametro cipar=<br />

nella linea dei comandi di MX, quest’ultimo prevarrà per questa la specifica esecuzione<br />

che lo implica.<br />

176


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Esempio:<br />

C:\> set cipar=c:\cipar.par<br />

C:\> mx cipar=otro.par CDS from=10 to= ... etc.<br />

L’esecuzione MX di questo comando userà le definizioni del file otro.par.<br />

<strong>Parametri</strong> che possono venire inclusi nel CIPAR<br />

<strong>Parametri</strong> solo per MX<br />

Riceve parametri <strong>da</strong> una chiamata CGI<br />

[cgitag=] [cgipfx=] cgi={|mx}<br />

Memorizza i <strong>da</strong>ti del CGI in un campo ripetibile con etichetta definita <strong>da</strong> cgitag, per<br />

default il campo 2000. Ogni coppia di <strong>da</strong>ti nome/valore è riposta nei sottocampi ^n<br />

^v. MX leggerà ogni linea mediante un formato ( o mx.pft) che dovrà venire<br />

incluso come parametro supplementare.<br />

cgitag= Etichetta di campo per i sottocampi n, v (per default 2000)<br />

cgipfx= Prefisso del nome dell’etichetta di campo (per default tag)<br />

cgi= Specifica i parametri del mx mediante un formato<br />

cgi=mx Specifica i parametri del mx tramite i nomi corrispondenti<br />

Esempi:<br />

• Nella linea di comando si definiscono le variabili REQUEST_METHOD=GET e<br />

QUERY_STRING, poi si invoca l’MX indicando il formato <strong>da</strong> interpretare in mo<strong>da</strong>lità<br />

CGI.<br />

° Per Windows<br />

set REQUEST_METHOD=GET<br />

set<br />

"QUERY_STRING=db~cds&count~2&now&btell~0&bool~plants*water&pft~mfn/"<br />

° Per Linux<br />

export REQUEST_METHOD=GET<br />

export<br />

QUERY_STRING="db~cds&count~2&now&btell~0&bool~plants*water&pft~mfn/"<br />

° Per Linux e Windows:<br />

mx cgi=mx<br />

000004<br />

177


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

000011<br />

Affinché il formato interpreti la variabile QUERY_STRING si deve utilizzare come<br />

separatore di occorrenze il carattere riservato & e come separatore di sottocampi il<br />

carattere ~. Il formato specificato deve trattare i sottocampi n (prima del ~ nel caso<br />

che exista) e v (dopo del ~ nel caso che exista) dell’etichetta di campo (tag) definita.<br />

• Nella linea di comando si definiscono le variabili REQUEST_METHOD=GET,<br />

QUERY_STRING, poi si richiama MX forzando la lettura dei <strong>da</strong>ti in un campo<br />

determinato (11000 nell’esempio) e indicando il formato che va interpretato <strong>da</strong>lla<br />

mo<strong>da</strong>lità CGI.<br />

° Per Windows<br />

set REQUEST_METHOD=GET<br />

set<br />

"QUERY_STRING=db~cds&count~2&now&btell~0&bool~plants*water&pft~mfn/"<br />

° Per Linux<br />

export REQUEST_METHOD=GET<br />

export<br />

QUERY_STRING="db~cds&count~2&now&btell~0&bool~plants*water&pft~mfn/"<br />

° Per Linux e Windows:<br />

mx cgitag=11000 “cgi=(if v11000^n=’db’ then v11000^n,’=’,v11000^v/<br />

fi)”<br />

mfn=1<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C»<br />

70 «Franco, C.M.»<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

...<br />

• In questo esempio i parametri vengono passati <strong>da</strong>ll’ambiente CGI e non <strong>da</strong>lle<br />

variabili d’ambiente. In un servente (server) web, col programma mx e il formato<br />

mx.pft scritti nell’area CGI, si compone la seguente pagina.<br />

<br />

<br />

Esempio di chiamata di MX in ambiente CGI<br />

<br />

<br />

178


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

<br />

Man<strong>da</strong>re in esecuzione MX con 'bool=' e 'count=' attribuendo i<br />

seguenti valori: <br />

Espressione di ricerca (bool=): &#160;<br />

Num. di record <strong>da</strong> mostrare (count=): <br />

&#160;<br />


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

echo maxmfrl=32767 >xcip<br />

mx cipar=xcip bigrecsdb<br />

cipar: ci_fststrip=<br />

Elimina qualsiasi marcatura del tipo o fino ad un massimo di<br />

caratteri di lunghezza per i campi <strong>da</strong>ti all’inizio dell’esecuzione di una FST (i<br />

campi <strong>da</strong>ti vengono riempiti con spazi blanks).<br />

echo ci_fststrip=21 >xcip<br />

mx cds<br />

mfn= 1<br />

69 «Paper on: »<br />

mx cipar=xcip cds "fst=690 4 v69"<br />

mfn= 1<br />

69 «Paper on: »<br />

690 «PAPER^m1^o1^c1^l1»<br />

690 «ON^m1^o1^c2^l1»<br />

690 «MEASUREMENT^m1^o1^c3^l2»<br />

690 «AND^m1^o1^c4^l1»<br />

690 «INSTRUMENTS^m1^o1^c5^l2»<br />

<strong>Parametri</strong> per MX e applicazioni programmate per<br />

ambiente multiutente<br />

{netws | 14} | .net ={0 | single | MONONETS} |<br />

{1 | full | FULLNETS} |{ 2 | master | MASTNETS }<br />

I valori dei parametri corrispondono ai valori 0, 1, 2, del parametro 14 del<br />

SYSPAR.PAR. Il valore per default è MONONETS. Si può anche assegnare il parametro<br />

di lavoro in rete ad una base <strong>da</strong>ti particolare mediante .net=<br />

Esempi:<br />

14=1<br />

netws=MASTNETS<br />

cds.net=FULLNET<br />

180


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Parametro maxmfrl<br />

maxmfrl=<br />

Attua la stessa specificazione che il parametro mfrl= della linea di comando del<br />

programma MX.<br />

Parametro mstxl nel CIPAR<br />

n=0 ... 4 (0 è valore per default, predefinito nell’interfaccia CISIS)<br />

mstxl=<br />

mstxl | /mstxl=<br />

Determina la dimensione massima che può avere il file .MST. Questo parametro viene<br />

letto e preso in conto solamente durante la creazione della base <strong>da</strong>ti.<br />

Massimo .MST Record en bytes múltiplo de<br />

0 512 MB 2 (valor por default)<br />

1 1 GB 2<br />

2 2 GB 4<br />

3 o 4 4 GB 8<br />

Esempio:<br />

cds/mstxl=3<br />

Questi parametri si applicano anche a WinISIS, ISIS.DLL e WWWISIS e a tutte le<br />

applicazioni sviluppate con l’interfaccia CISIS.<br />

Come superare il limite di 512 MB per il master file:<br />

Il puntatore di ogni record del file .MST è memorizzato dentro il file .XRF. Questo<br />

puntatore è ripartito in due campi: campo del numero di blocco e campo della<br />

posizione (offset) dentro al blocco. Questi due campi occupano rispettivamente 20 e 9<br />

bit.<br />

181


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

!<br />

In aggiunta a questi due campi, ci sono 2 bit per i<br />

contrassegni (flag) di "I/F up<strong>da</strong>te is pending" (uno<br />

per record Nuovo e un altro per record Modificato).<br />

Il puntatore è di 4 byte ed è trattato come un numero intero + segno (segno negativo<br />

indica record fisicamente/logicamente cancellato).<br />

In tal modo il limite è di 512 MB, come qui esemplificato:<br />

2**20-1 = 1048675 blocchi <strong>da</strong> 512 (offset <strong>da</strong> 0 fino a 2**9-1 = 511)<br />

L’implementazione di MSTXL nell’interfaccia CISIS usa offset per blocchi <strong>da</strong> 512 byte<br />

in unità di 2, 4 e 8 byte (usando pertanto 8, 7 e 6 bit per memorizzare l’offset) e<br />

numero di blocco in 21, 22, e 24 bit, rispettivamente, per mstxl = 1, 2, e 3 (o 4).<br />

L’identificazione di un master file in formato MSTXL è memorizzata nel byte<br />

all’estrema sinistra del campo MFTYPE del record di controllo del file .MST, che viene<br />

reinizializzato quando caricato in memoria a fine elaborazione. Questa identità viene<br />

tenuta presenta <strong>da</strong> CISIS durante le letture/scritture successive fino a che questo<br />

master file non viene chiuso.<br />

E’ sufficiente creare un master file con un CIPAR che contenga mstxl= o<br />

/mstxl= affinché le procedure successive onorino tale inizializzazione a<br />

prescindere <strong>da</strong>l CIPAR.<br />

Parametro dbxtrace=y<br />

Visualizza messaggi nell’uscita stan<strong>da</strong>rd (stdout - stan<strong>da</strong>rd output ):<br />

dbxopen - fd= [R]<br />

dbxopen - fd= [RW]<br />

file descriptor number<br />

[R] file was opened for read<br />

[RW] file was opened for read/write<br />

dbxtrace=y idem "trace=dbx" del MX (come trace=rec, trm, giz, b40, par, mul, etc)<br />

dbxtrace=y<br />

182


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Parametro mstload=<br />

Carica in memoria e chiude i master file (default=0).<br />

mstload= idem "load=" del MX, para M/F<br />

Parametro invload=<br />

Carica in memoria e chiude gli inverted file (default=0).<br />

invload= idem "load=" del MX, para I/F<br />

Parametro mclose={y|n}<br />

Chiude tutti i master file (default=n).<br />

mclose=y sólo permanece abierto un master file<br />

Parametro iflush={y|n}<br />

Svuota tutti gli inverted file (default=n).<br />

mstload=<br />

invload=<br />

mclose={y|n}<br />

iflush={y|n}<br />

iflush=y rimane aperto solamente un inverted file con il suo<br />

"<strong>da</strong>ta base descriptor" in memoria<br />

183


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Parametro mflush={y|n}<br />

Svuota tutti i master file (default=n).<br />

mflush={y|n}<br />

mflush=y rimane aperto solamente un master file con il suo "<strong>da</strong>ta<br />

Parametro what={y|n}<br />

base descriptor" in memoria. (<strong>da</strong>ta base descriptor<br />

include buffers di i/o e gizmo)<br />

Visualizza la versione CISIS in uso (default=n).<br />

what={y|n}<br />

what=y idem "what" del MX (indicato come unico parametro di<br />

MX)<br />

Esempi<br />

• Creare un master file senza record o reinizializzarne uno esistente<br />

mx seq=NUL create=NUOVA<br />

Se esiste una base <strong>da</strong>ti con tale nome, MX non emetterà avviso che questa verrà<br />

irreversibilmente cancellata.<br />

• Compattare una base <strong>da</strong>ti<br />

Quest’operazione serve a recuperare spazio occupato a vuoto nel file .MST a causa di<br />

ripetuti aggiornamenti dei record.<br />

mx DATOS -all now create=DBN_AUX tell=100<br />

xcopy DBN_AUX.* DATOS.*<br />

del DBN_AUX.*<br />

FULLINV DATOS DATOS.FST DATOS<br />

• Verificare elementi duplicati<br />

Si desidera verificare nel catalogo dei libri che non esistano numeri di inventario<br />

doppioni. I numero d’inventario sono registrati nel campo 7 e sono indicizzati con<br />

tecnica 0 e il prefisso INV=, cioè: |INV=|v7.<br />

184


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

mx LIBROS "pft=(if npost(|INV=|v7) > 1 then mfn,x3,v7/ fi)" tell=100<br />

now > duplic.lst<br />

La procedura necessita che l’inverted file sia presente.<br />

• Condurre una rapi<strong>da</strong> analisi dei campi utilizzati dentro ad una base <strong>da</strong>ti<br />

Sono richiesti i programmi MX.EXE e MXF0.EXE e questi due file di formato:<br />

DMXF0A.PFT<br />

'Analisis de los <strong>da</strong>tos della base ',v1001/#<br />

" 1001 = input master file name ................. "v1001/,<br />

" 1003 = <strong>da</strong>te & time stamp ...................... "v1003/,<br />

" 1009 = total number of records ................ "v1009/,<br />

" 1010 = number of active records ............... "v1010/,<br />

" 1011 = number of logically deleted records .... "v1011/,<br />

" 1012 = number of phisically deleted records ... "v1012/,<br />

DMXF0B.PFT<br />

/#<br />

"TAG DOCS OCCS"d1020/<br />

"---------------------"d1020/<br />

,(v1020^t,v1020^d,v1020^o/),<br />

Con ciò si prepara un file .bat, del tipo:<br />

MYSCAN.BAT<br />

REM %1 = %2 = <br />

REM<br />

mxf0 %1 create=lista %2 tell=100<br />

mx lista pft=@dmxf0a.pft now > %1.lst<br />

mx lista pft=@dmxf0b.pft now >> %1.lst<br />

L’esecuzione di MYSCAN.BAT necessita di due parametri in ingresso, la base <strong>da</strong>ti col suo<br />

percorso (path) e il numero stimato di record in essa contenuti.<br />

Come risultato verrà prodotto un file col nome della base e l’estensione .lst.<br />

Esempio:<br />

myscan c:\dbisis\cds\cds 150<br />

• Eliminare termini doppi in un campo ripetibile<br />

Supponendo che i descrittori vengano scritti nel campo v87, come campo ripetibile.<br />

mx DATOS fmtl=20000 proc=@LIMPIO from=1 to=100 now -all create=OUT<br />

185


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Il file LIMPIO contiene queste istruzioni di formato:<br />

proc('d870d871'),<br />

( if v870[1] : s(v87|~|)<br />

then<br />

else proc('D870A870|'v870[1],v87'~|','A871|'v87'|')<br />

fi ),<br />

proc('d870'),<br />

proc('d87d871',|A87~|v871|~|),<br />

• Controllo di qualità dei <strong>da</strong>ti<br />

Si presenta qui un modello semplificato di un file .bat per realizzare vari controlli su<br />

una base <strong>da</strong>ti. Per questo esempio si dispone di una base <strong>da</strong>ti di nome TEST sulla quale<br />

si effettuano i controlli indicati nel menu, e una base THES (thesaurus) nei confronti<br />

della quale si convali<strong>da</strong>no i descrittori di TEST.<br />

CHK.BAT<br />

@echo off<br />

:BEGIN<br />

cls<br />

echo ----------------------------------------------------------echo<br />

QUALITY CONTROL<br />

echo ----------------------------------------------------------echo.<br />

echo E - Delete invalid characters (clean records)<br />

echo O - Check man<strong>da</strong>tory fields<br />

echo D - Check Descriptors<br />

echo X - Exit<br />

echo.<br />

choice /c:EODX /N Select one option:<br />

if errorlevel 4 goto END<br />

if errorlevel 3 goto DESCRIPTORES<br />

if errorlevel 2 goto OBBLIGATORIOS<br />

if errorlevel 1 goto CLEAN<br />

:CONTINUA<br />

echo.<br />

echo (Press any key to continue...)<br />

pause > nul<br />

goto BEGIN<br />

:CLEAN<br />

call OPC_CLN. BAT<br />

186


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

goto CONTINUA<br />

:OBBLIGATORIOS<br />

call OPC_OBL.BAT<br />

goto CONTINUA<br />

:DESCRIPTORES<br />

call OPC_DES.BAT<br />

goto CONTINUA<br />

:END<br />

La procedura è completata <strong>da</strong> una serie di file .bat che realizanno ciascuno una delle<br />

opzioni offerte.<br />

I file si chiamano OPC_xxx, dove xxx rappresenta ciascuna delle opzioni del menu. Ogni<br />

OPC_xxx attiva un programma CISIS che richiama un file in= che contiene i<br />

parametri necessari per la funzione di vali<strong>da</strong>zione. Associato a quel si trova<br />

un file di formato col medesimo nome e con estensione .pft, che verrà impiegato per la<br />

convali<strong>da</strong> dei <strong>da</strong>ti.<br />

Se la vali<strong>da</strong>zione viene effettuata a fronte di un inverted file, il in= richiamerà<br />

una procedura di jchk.<br />

OPC_CLN.BAT<br />

@echo off<br />

mxcp \dbisis\TEST \dbisis\TEST clean > garbage<br />

OPC_OBL.BAT<br />

@echo off<br />

echo Wait..<br />

mx in=chk00 >> errores.tmp<br />

CHK00<br />

\dbisis\test<br />

pft=@chk00.pft<br />

-all<br />

now<br />

CHK00.PFT (esempio de un .PFT de vali<strong>da</strong>ción)<br />

if a(v02) then mfn,c8,'02->FATAL ERROR: field #2 missing!' fi/<br />

if a(v01) then mfn,c8,'01->ERROR: field #01 missing!' fi/<br />

if a(v923) and p(v23) then mfn,c8,'923->ERROR: field #923 missing!'<br />

fi/<br />

if v31'ENG' then mfn,c8,'31->ERROR: field #31 invalid!' fi/<br />

OPC_DES.BAT<br />

187


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

@echo off<br />

echo Wait...<br />

mx in=chk620 >> errores.tmp<br />

CHK620 (verifica el campo 620 contra un tesauro)<br />

\dbisis\test<br />

jchk=Thes=mhu,(v620/)<br />

pft=@chk620.pft<br />

-all<br />

now<br />

CHK620.PFT<br />

if p(v32001) then ( if a(v32001^m) then mfn,c8,|620-<br />

>|v32001^k,c65,'*invalid'/ fi ) fi<br />

• Indice particolare dei titoli<br />

Indicizzando il campo titolo (di seriali o monografie) con tecnica 0 (campo completo),<br />

l’ordinamento alfabetico nel dizionario non onora le norme biblioteconomiche secondo<br />

cui non si devono ordinare i titoli sotto parole come gli articoli: A, An, El, Los, The, etc.<br />

In CDS/ISIS è possibile ottenere una corretta uscita a stampa se tali parole vengono<br />

racchiuse tra , però tale accorgimento non ha effetti funzionali dentro l’ inverted<br />

file. L’esempio che segue risolve il problema.<br />

Si indicizza il campo v24 (titolo), nei record fra 15 e 20, in tre modi per potere<br />

raffrontare i risultati. Gli esempi 1 e 2 mostrano ciò che ottiene con CDS/ISIS<br />

stan<strong>da</strong>rd, mentre l’esempio 3 mostra la soluzione del problema.<br />

Si usa la seguente FST: 240 0 v24<br />

mx CDS from=15 to=20 now -all "fst=240 0 v24" ifupd/create=cds<br />

ifkeys cds +tags<br />

1| 240| METHOD OF DETERMINING EVAP<br />

1| 240| HEAT RESISTANCE OF PLANT<br />

1| 240| MEASUREMENT OF DROUGHT R<br />

1| 240| ROLE OF DEW IN PINE SURV<br />

1| 240|GAUGES FOR THE STUDY OF EVAPOT<br />

1| 240|MEASUREMENT OF DROUGHT RESISTA<br />

Tutti i titoli che contengono compaiono all’inizio del dizionario <strong>da</strong>to che il<br />

carattere < ha valore ASCII inferiore a quello della lettera "A".<br />

188


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

Si usa la seguente FST: 240 0 mhu,v24<br />

mx CDS "fst=240 0 mhu,v24" ifupd/create=cds now -all from=15 to=20<br />

Il risultato nel dizionario è il seguente:<br />

Ifkeys CDS +tags<br />

1| 240|A METHOD OF DETERMINING EVAPOT<br />

1| 240|GAUGES FOR THE STUDY OF EVAPOT<br />

1| 240|MEASUREMENT OF DROUGHT RESISTA<br />

1| 240|THE HEAT RESISTANCE OF PLANTS,<br />

1| 240|THE MEASUREMENT OF DROUGHT RES<br />

1| 240|THE ROLE OF DEW IN PINE SURVIV<br />

Dato che si è usato il modo MHU, le non compaiono nel dizionario. La sequenza<br />

alfabetica continua a considerare le parole non significative.<br />

La soluzione si ottiene usando un gizmo= WORDS, il cui contenuto è:<br />

mfn= 1<br />

1 « »<br />

mfn= 2<br />

1 « »<br />

mfn= 3<br />

1 « »<br />

mfn= 4<br />

1 « »<br />

mfn= 5<br />

1 «»<br />

..<br />

Non c’è campo 2 nel gizmo, perché la conversione trasforma il <strong>da</strong>to del campo 1 in<br />

nulla. Inoltre si lascia uno spazio alla fine di ogni campo affinché i campi titolo, dopo<br />

l’applicazione del gizmo non comincino con un blank.<br />

mx CDS from=15 to=20 now -all "fst=240 0 v24" ifupd/create=cds<br />

gizmo=words,24<br />

189


Programmi di utilità CISIS: manuale di riferimento Appendice II - File CIPAR<br />

ifkeys CDS +tags<br />

1| 240|GAUGES FOR THE STUDY OF EVAPOT<br />

1| 240|HEAT RESISTANCE OF PLANTS, ITS<br />

2| 240|MEASUREMENT OF DROUGHT RESISTA<br />

1| 240|METHOD OF DETERMINING EVAPOTRA<br />

1| 240|ROLE OF DEW IN PINE SURVIVAL I<br />

190


Appendice III - Struttura<br />

del record di una base<br />

ISIS<br />

Un record con struttura ISIS presenta due caratteristiche speciali che offrono grande<br />

flessibilità per la gestione delle informazioni testuali: campi ripetibili e a lunghezza<br />

variabile.<br />

Assunto che i record non hanno lunghezza predefinita, e che nemmeno i campi hanno<br />

lunghezza fissa, né sono presenti un numero fisso di volte (occorrenze), non è possibile<br />

avere accesso diretto a qualsivoglia porzione di <strong>da</strong>ti all’interno della base.<br />

L’accesso al record si fa dunque in maniera indiretta, per il tramite di puntatori<br />

residenti in un file ausiliare con estensione .XRF, e dentro al record si accede ai <strong>da</strong>ti<br />

mediante puntatori interni a una directory.<br />

Il file .XRF contiene tutta l’informazione necessaria per reperire il punto d’inizio del<br />

record cercato dentro al .MST<br />

Per tutti gli esempi che seguono si userà il record con MFN=1 della base CDS, il cui<br />

contenuto completo è il seguente:<br />

191


Programmi di utilità CISIS: manuale di riferimento Appendice III - Struttura del record di una base ISIS<br />

\cisis\bases\cds Base <strong>da</strong>ti<br />

Nxtmfn nxtmfb nxtmfp t reccnt mfcxx1 mfcxx2 mfcxx3 RC<br />

152 123 13 0 0 0 0 0 0<br />

Record di controllo(control)<br />

Mfn= 1|comb= 1|comp= 64| N| ... | 1+000=00000c40 xref<br />

Mfn= 1|mfrl= 370|mfbwb= 0|mfbwp= 0|base= 66|nvf= 8|status=<br />

0| 0<br />

Mfn= 1|dir= 1|tag= 44|pos= 0|len= 77<br />

Mfn= 1|dir= 2|tag= 50|pos= 77|len= 11<br />

Mfn= 1|dir= 3|tag= 69|pos= 88|len= 78<br />

Mfn= 1|dir= 4|tag= 24|pos= 166|len= 68<br />

Mfn= 1|dir= 5|tag= 26|pos= 234|len= 22<br />

Mfn= 1|dir= 6|tag= 30|pos= 256|len= 20<br />

Mfn= 1|dir= 7|tag= 70|pos= 276|len= 15<br />

Mfn= 1|dir= 8|tag= 70|pos= 291|len= 12<br />

Mfn= 1<br />

44 «Methodology of plant eco-physiology: proceedings of the<br />

Montpellier Symposium»<br />

50 «Incl. bibl.»<br />

69 «Paper on: »<br />

24 «Techniques for the measurement of transpiration of individual<br />

plants»<br />

26 «^aParis^bUnesco^c-1965»<br />

30 «^ap. 211-224^billus.»<br />

70 «Magalhaes, A.C.»<br />

70 «Franco, C.M.»<br />

..<br />

Il record di CONTROL<br />

leader<br />

dir<br />

fields<br />

Una base ISIS contiene un record particolare all’inizio (MFN=0) , record cui CDS/ISIS<br />

non fornisce accesso. Questo record è dotato di una struttura diversa <strong>da</strong> quella di tutti<br />

gli altri record del master file (MST).<br />

La struttura è:<br />

Le informazioni contenute in questo record si visualizzano<br />

grazie al parametro +control.<br />

Struttura del record di CONTROLLO<br />

Ctlmfn Sempre 0. Questo campo non viene mostrato con MX +control.<br />

Nxtmfn MFN <strong>da</strong> assegnare al prossimo record.<br />

Nxtmfb Ultimo blocco assegnato nel .MST. I blocchi sono di 512 byte.<br />

192


Programmi di utilità CISIS: manuale di riferimento Appendice III - Struttura del record di una base ISIS<br />

Struttura del record di CONTROLLO<br />

Nxtmfp Prima posizione libera dentro all’ultimo blocco assegnato. Un record può cominciare<br />

in qualsiasi posizione libera fra 0-498 e estendersi per uno o più blocchi. Nessun<br />

record può cominciare fra i 500 e 510.<br />

Mftype Tipo di base <strong>da</strong>ti: 0 base dell’utente, 1 base dei messaggi di sistema.<br />

Reccnt Riservato.<br />

Mfcxx1 Riservato.<br />

Mfcxx2 Blocco dell’input dei <strong>da</strong>ti, valori 0, 1...n, a secon<strong>da</strong> di quanti record si stanno<br />

editando in un determinato momento.<br />

Mfcxx3 Blocco di lettura esclusiva (read only), valori 0/1.<br />

Il record di XREF<br />

Il file .XRF è strutturato come una tavola di puntatori verso il master file (.MST). Il<br />

primo puntatore corrisponde al MFN=1, il secondo al MFN=2, etc.<br />

Ogni puntatore è costituito <strong>da</strong> due campi (4 byte) che nella tabella del precedente<br />

esempio indicano che l’MFN=1 comincia nel blocco 1 (comb) e dentro al blocco a<br />

partire <strong>da</strong>l byte 65 (comp) e che non presenta ‘aggiornamento in sospeso’ per<br />

l’inverted file. L’ultimo valore è il riferimento reale del puntatore espresso in valore<br />

esadecimale.<br />

Ogni blocco del .XRF è un file di 512 byte di lunghezza e contiene 127 puntatori (<strong>da</strong>to<br />

importante per la ricostruzione del .MST illustrata col programma d’utilità CTLMFN).<br />

Il record del file MST<br />

I record del master file vengono memorizzati consecutivamente, uno dopo l’altro, ogni<br />

record occupando esattamente MFRL byte. Ogni file viene memorizzato a blocchi fisici<br />

di 512 byte. Un record può cominciare in qualsiasi punto fra le posizioni 0 e 498 ed<br />

estendersi per uno o più blocchi.<br />

Il record MST ha lunghezza variabile e consiste di tre sezioni:<br />

• Una a lunghezza fissa (leader);<br />

• Una directory;<br />

• I campi per i <strong>da</strong>ti a lunghezza variabile.<br />

193


Programmi di utilità CISIS: manuale di riferimento Appendice III - Struttura del record di una base ISIS<br />

Struttura del LEADER<br />

Il leader è costituito <strong>da</strong> un blocco a lunghezza fissa di 18 byte.<br />

Mfn Numero di record<br />

Mfrl Lunghezza totale del record, includendovi le tre sezioni: leader, directory e area dei <strong>da</strong>ti.<br />

E’ sempre un numero pari.<br />

Mfbwb Puntatore alla versione precedente del record, numero di blocco dentro l’MST.<br />

Inizialmente sta a 0, e così pure dopo l’aggiornamento dell’inverted file.<br />

Mfbwp Puntatore alla versione precedente del record. Posizione offset dentro al blocco.<br />

Base Posizione dentro al record in cui comincia l’area dei <strong>da</strong>ti. Questo valore risulta <strong>da</strong>lla<br />

somma della lunghezza del leader più quella della directory.<br />

Nvf Numero di campi nel record, ossia la quantità di entrate nella directory del record.<br />

Status Indicatore di stato (0 = record attivo; 1 = logicamente borrado)<br />

Struttura della DIRECTORY<br />

La directory del record è un indice dei contenuti del record situati nella porzione dei<br />

<strong>da</strong>ti. Questo indice è costituito <strong>da</strong> tante entrate quanti sono i campi dentro al record<br />

(nvf), e consente di accedere ai <strong>da</strong>ti. Ogni entrata nella directory è composta di tre<br />

parti:<br />

Tag Identificatore del campo o etichetta.<br />

Pos Indirizzo espresso in byte del punto in cui comincia il primo carattere del campo<br />

all’interno dell’area <strong>da</strong>ti.<br />

Len Lunghezza del campo in bytes.<br />

194


Da usare sia per visualizzazione che per conversione di basi <strong>da</strong>ti<br />

ASCII CODE PAGE 437 (CP437)<br />

Appendice IV - Lista dei<br />

file TAB disponibili<br />

ac437.tab Caratteri validi dell’insieme ASCII CP437<br />

ac437n.tab Caratteri validi dell’insieme ASCII CP437 incl. 0-9<br />

ac437XT.tab Caratteri validi dell’insieme ASCII CP437 incl. 0-9 e &'()*+,-./:<br />

ma437.tab Conversione dei caratteri a maiuscole (con accento)<br />

mi437.tab Conversione dei caratteri a minuscole (con accento)<br />

na437.tab Elimina gli accenti mantenendo maiuscole/minuscole di caratteri<br />

uc437.tab Conversione dei caratteri a maiuscole (senza accenti)<br />

lc437.tab Conversione dei caratteri a minuscole (senza accenti)<br />

ASCII CODE PAGE 850 (CP850)<br />

ac850.tab Caratteri validi dell’insieme ASCII CP850<br />

ac850n.tab Caratteri validi dell’insieme ASCII CP850 incl. 0-9<br />

ac850XT.tab Caratteri validi dell’insieme ASCII CP850 incl. 0-9 e &'()*+,-./:<br />

ma850.tab Conversione a maiuscole (con accento) dei caratteri<br />

195


Programmi di utilità CISIS: manuale di riferimento Appendice IV - Lista dei file TAB disponibili<br />

mi850.tab Conversione a minuscole (con accento) dei caratteri<br />

na850.tab Elimina gli accenti mantenendo maiuscole/minuscole dei caratteri<br />

uc850.tab Conversione a maiuscole (senza accento) dei caratteri<br />

lc850.tab Conversione a minuscole (senza accento) dei caratteri<br />

ANSI (Windows)<br />

acans.tab Caratteri validi dell’insieme ANSI<br />

acansn.tab Caratteri validi dell’insieme ANSI incl. 0-9<br />

acansXT.tab Caratteri validi dell’insieme ANSI incl. 0-9 e &'()*+,-./:<br />

maans.tab Conversione a maiuscole (con accento) dei caratteri<br />

mians.tab Conversione a minuscole (con accento) dei caratteri<br />

naans.tab Elimina accenti mantenendo maiuscole/minuscole dei caratteri<br />

ucans.tab Conversione a maiuscole (senza accenti) dei caratteri<br />

lcans.tab Conversione a minuscole (senza accenti) dei caratteri<br />

GIZMO disponibili per la conversione del<br />

contenuto di basi <strong>da</strong>ti<br />

Conversione di insiemi di caratteri<br />

g437ans Conversione di ASCII CODE PAGE 437 vero ANSI<br />

gans437 Conversione di ANSI verso ASCII CODE PAGE 437<br />

g850ans Conversione di ASCII CODE PAGE 850 verso ANSI<br />

gans850 Conversione di ANSI verso ASCII CODE PAGE 850<br />

gutf8ans Conversione di UFT-8 verso ANSI<br />

gansutf8 Conversione di ANSI verso UFT-8<br />

ASCII CODE PAGE 437 (CP437)<br />

g437ma Conversione a maiuscole accentate<br />

g437mi Conversione a minuscole accentate<br />

g437na Toglie accenti lasciando maiuscole/minuscole<br />

g437uc Conversione a maiuscole senza accento (Upper case)<br />

g437lc Conversione a minuscole senza accento (Lower case)<br />

196


Programmi di utilità CISIS: manuale di riferimento Appendice IV - Lista dei file TAB disponibili<br />

ASCII CODE PAGE 850 (CP850)<br />

g850ma Conversione a maiuscole accentate<br />

g850mi Conversione a minuscole accentate<br />

g850na Toglie accenti lasciando maiuscole/minuscole<br />

g850uc Conversione a maiuscole senza accento (Upper case)<br />

g850lc Conversione a minuscole senza accento (Lower case)<br />

ANSI (Windows)<br />

Gansma Conversione a maiuscole accentate<br />

Gansmi Conversione a minuscole accentate<br />

Gansna Toglie accenti lasciando maiuscole/minuscole<br />

Gansuc Conversione a maiuscole senza accento (Upper case)<br />

Ganslc Conversione a minuscole senza accento (Lower case)<br />

Conversione supplementare dei caratteri di<br />

marcatura<br />

Gentit Conversione di caratteri per mezzo dell’elemento HTML corrispondente ("&')<br />

gchar Conversione verso l’elemento HTML per mezzo dei caratteri corrispondenti<br />

("&')<br />

Conversione supplementare <strong>da</strong> e verso elementi<br />

HTML<br />

Ghtmlans Converte elementi HTML in caratteri ANSI<br />

Ganshtml Converte caratteri ANSI in elementi HTML<br />

ghtml850 Converte elementi HTML in caratteri ASCII CP850<br />

g850html Converte caratteri ASCII CP850 in elementi HTML<br />

ghtml437 Converte elementi HTML in caratteri ASCII CP437<br />

g437html Converte caratteri ASCII CP437 in elementi HTML<br />

197


Programmi di utilità CISIS: manuale di riferimento Appendice IV - Lista dei file TAB disponibili<br />

Come riconoscere l’insieme di caratteri che è<br />

presente in una base CDS/ISIS<br />

Se nella distribuzione dei caratteri reperita <strong>da</strong> MXF0 NON SONO PRESENTI caratteri<br />

con codici compresi fra 127(0x7f) e 159(0x9f) (inclusi), allora la base usa l’insieme<br />

ANSI.<br />

Se nella distribuzione dei caratteri reperita <strong>da</strong> MXF0 c’è forte concentrazione di codici<br />

<strong>da</strong> 128(0x80) fino a 167(0xa7) (inclusive) è molto probabile che si tratti di un insieme<br />

con Code Page 437.<br />

Se nella distribuzione dei caratteri reperita <strong>da</strong> MXF0 sono presenti elementi con uno di<br />

questi codici: 181(0xb5), 182, 183, 198, 199, 210, 211, 212, 214, 215, 216, 222, 224, 226,<br />

227, 228, 229, 233, 234, 235, 236, 237 allora è molto probabile che si tratti di Code<br />

Page 859.<br />

E’ di rilievo la presenza di caratteri discriminanti per l’identificazione della Code Page:<br />

198(0xc6) e 199(0xc6), sono ã e Ã, e 228(0xe4) e 229(0xe5) sone õ e Õ.<br />

!<br />

I caratteri 198 e 199 degli insiemi ANSI e ASCII 859<br />

sono stampabili trattandosi rispettivamente di “Æ”<br />

legatura fra A E“ e Ç in ANSI e di ã e à in ASC850,<br />

anche 228 e 229 son stampabili essendo ä e “å” a<br />

con cerchietto in ANSI e õ e Õ in ASCII850.<br />

Elemento di ulteriore complicazione: Windows 95 e 98 usano codifiche diverse <strong>da</strong><br />

quelle di Windows 98SE e successive.<br />

OSSERVAZIONI<br />

I gizmo di conversione fra gli insiemi di caratteri: ANSI; ASCII CP437; e ASCII CP850,<br />

hanno l’obbietivo di produrre caratteri grafici simili.<br />

I gizmo di CONVERSIONE SUPPLEMENTARE si limitano solo a trattare i caratteri<br />

accentati.<br />

198


!<br />

Appendice V - MX.PFT:<br />

Lista dei parametri che<br />

estrae <strong>da</strong>ll’ambiente CGI<br />

La lista dei parametri che diventano attivi in<br />

mx.pft deve venire a<strong>da</strong>ttata in vista<br />

dell’applicazione e dei permessi di<br />

lettura/scrittura che si attribuiranno.<br />

Per esempio, se si abilitano parametri come<br />

create=, append=, ifupd=, fullinv=e simili, la<br />

base <strong>da</strong>ti può rimanere esposta ad attività<br />

‘malintenzionate’.<br />

Parametro Formato di estrazione<br />

What ,(if v2000^n='what' then v2000^n/ fi),<br />

prolog= ,(if v2000^n='prolog' then v2000^n'='v2000^v/ fi),<br />

epilog= ,(if v2000^n='epilog' then v2000^n'='v2000^v/ fi),<br />

in= ,(if v2000^n='in' then v2000^n'='v2000^v/ fi),<br />

Trace ,(if v2000^n='trace' then v2000^n/ fi),<br />

Trace=dbx ,(if v2000^n='trace=dbx' then v2000^n/ fi),<br />

Trace=rec ,(if v2000^n='trace=rec' then v2000^n/ fi),<br />

Trace=dec ,(if v2000^n='trace=dec' then v2000^n/ fi),<br />

Trace=trm ,(if v2000^n='trace=trm' then v2000^n/ fi),<br />

Trace=b50 ,(if v2000^n='trace=b50' then v2000^n/ fi),<br />

Trace=b40 ,(if v2000^n='trace=b40' then v2000^n/ fi),<br />

Trace=fmt ,(if v2000^n='trace=fmt' then v2000^n/ fi),<br />

Trace=fst ,(if v2000^n='trace=fst' then v2000^n/ fi),<br />

199


Programmi di utilità CISIS: manuale di riferimento Appendice V - MX.PFT: Lista dei parametri che estrae <strong>da</strong>ll’ambiente CGI<br />

Parametro Formato di estrazione<br />

Trace=all ,(if v2000^n='trace=all' then v2000^n/ fi),<br />

Cipar= ,(if v2000^n='cipar' then v2000^n'='v2000^v/ fi),<br />

mfrl= ,(if v2000^n='mfrl' then v2000^n'='v2000^v/ fi),<br />

fmtl= ,(if v2000^n='fmtl' then v2000^n'='v2000^v/ fi),<br />

load= ,(if v2000^n='load' then v2000^n'='v2000^v/ fi),<br />

Pages= ,(if v2000^n='pages' then v2000^n'='v2000^v/ fi),<br />

Uctab= ,(if v2000^n='uctab' then v2000^n'='v2000^v/ fi),<br />

Actab= ,(if v2000^n='actab' then v2000^n'='v2000^v/ fi),<br />

-all ,(if v2000^n='-all' then v2000^n/ fi),<br />

-control ,(if v2000^n='-control' then v2000^n/ fi),<br />

-leader ,(if v2000^n='-leader' then v2000^n/ fi),<br />

-xref ,(if v2000^n='-xref' then v2000^n/ fi),<br />

-dir ,(if v2000^n='-dir' then v2000^n/ fi),<br />

-fields ,(if v2000^n='-fields' then v2000^n/ fi),<br />

+hits ,(if v2000^n='+hits' then v2000^n/ fi),<br />

Cgiplushits ,(if v2000^n='+hits''cgiplushits' then v2000^n'+hits'/ fi),<br />

+fix ,(if v2000^n='+fix' then v2000^n/ fi),<br />

+fix/m ,(if v2000^n='+fix/m' then v2000^n/ fi),<br />

+all ,(if v2000^n='+all' then v2000^n/ fi),<br />

+control ,(if v2000^n='+control' then v2000^n/ fi),<br />

+leader ,(if v2000^n='+leader' then v2000^n/ fi),<br />

+xref ,(if v2000^n='+xref' then v2000^n/ fi),<br />

+dir ,(if v2000^n='+dir' then v2000^n/ fi),<br />

+fields ,(if v2000^n='+fields' then v2000^n/ fi),<br />

from= ,(if v2000^n='from' then v2000^n'='v2000^v/ fi),<br />

to= ,(if v2000^n='to' then v2000^n'='v2000^v/ fi),<br />

loop= ,(if v2000^n='loop' then v2000^n'='v2000^v/ fi),<br />

count= ,(if v2000^n='count' then v2000^n'='v2000^v/ fi),<br />

tell= ,(if v2000^n='tell' then v2000^n'='v2000^v/ fi),<br />

b50= ,(if v2000^n='b50' then v2000^n'='v2000^v/ fi),<br />

b40= ,(if v2000^n='b40' then v2000^n'='v2000^v/ fi),<br />

nb1= ,(if v2000^n='nb1' then v2000^n'='v2000^v/ fi),<br />

nbb= ,(if v2000^n='nbb' then v2000^n'='v2000^v/ fi),<br />

nb0= ,(if v2000^n='nb0' then v2000^n'='v2000^v/ fi),<br />

nb2= ,(if v2000^n='nb2' then v2000^n'='v2000^v/ fi),<br />

btell= ,(if v2000^n='btell' then v2000^n'='v2000^v/ fi),<br />

b50t= ,(if v2000^n='b50t' then v2000^n'='v2000^v/ fi),<br />

b40t= ,(if v2000^n='b40t' then v2000^n'='v2000^v/ fi),<br />

b40u= ,(if v2000^n='b40u' then v2000^n'='v2000^v/ fi),<br />

dupr= ,(if v2000^n='dupr' then v2000^n'='v2000^v/ fi),<br />

dupl= ,(if v2000^n='dupl' then v2000^n'='v2000^v/ fi),<br />

p1= ,(if v2000^n='p1' then v2000^n'='v2000^v/ fi),<br />

p2= ,(if v2000^n='p2' then v2000^n'='v2000^v/ fi),<br />

Nowait ,(if v2000^n='nowait' then v2000^n/ fi),<br />

Now ,(if v2000^n='now' then v2000^n/ fi),<br />

stderr=off ,(if v2000^n='stderr=off' then v2000^n/ fi),<br />

Mono ,(if v2000^n='mono' then v2000^n/ fi),<br />

Mast ,(if v2000^n='mast' then v2000^n/ fi),<br />

Full ,(if v2000^n='full' then v2000^n/ fi),<br />

200


Programmi di utilità CISIS: manuale di riferimento Appendice V - MX.PFT: Lista dei parametri che estrae <strong>da</strong>ll’ambiente CGI<br />

Parametro Formato di estrazione<br />

db= ,(if v2000^n='db' then v2000^n'='v2000^v/ fi),<br />

dbn= ,(if v2000^n='dbn' then v2000^n'='v2000^v/ fi),<br />

dict= ,(if v2000^n='dict' then v2000^n'='v2000^v/ fi),<br />

k1= ,(if v2000^n='k1' then v2000^n'='v2000^v/ fi),<br />

k2= ,(if v2000^n='k2' then v2000^n'='v2000^v/ fi),<br />

cgi= ,(if v2000^n='cgi' then v2000^n'='v2000^v/ fi),<br />

Null ,(if v2000^n='null' then v2000^n/ fi),<br />

Tmp ,(if v2000^n='tmp' then v2000^n/ fi),<br />

seq= ,(if v2000^n='seq' then v2000^n'='v2000^v/ fi),<br />

iso= ,(if v2000^n='iso' then v2000^n'='v2000^v/ fi),<br />

isotag1= ,(if v2000^n='isotag1' then v2000^n'='v2000^v/ fi),<br />

bool= ,(if v2000^n='bool' then if v2000^v>'' then v2000^n'='v2000^v/ fi<br />

fi),<br />

if v2000:'^nbool^v' then 'bool='<br />

(if v2000^n='bool' then if v2000^v>'' then v2000^v fi fi),/<br />

fi,<br />

Mfbw ,(if v2000^n='mfbw' then v2000^n/ fi),<br />

tbin= ,(if v2000^n='tbin' then v2000^n'='v2000^v/ fi),<br />

tb= ,(if v2000^n='tb' then v2000^n'='v2000^v/ fi),<br />

join= ,(if v2000^n='join' then v2000^n'='v2000^v/ fi),<br />

jchk= ,(if v2000^n='jchk' then v2000^n'='v2000^v/ fi),<br />

jch0= ,(if v2000^n='jch0' then v2000^n'='v2000^v/ fi),<br />

jch1= ,(if v2000^n='jch1' then v2000^n'='v2000^v/ fi),<br />

jmax= ,(if v2000^n='jmax' then v2000^n'='v2000^v/ fi),<br />

jtag= ,(if v2000^n='jtag' then v2000^n'='v2000^v/ fi),<br />

proc= ,(if v2000^n='proc' then v2000^n'='v2000^v/ fi),<br />

convert= ,(if v2000^n='convert' then v2000^n'='v2000^v/ fi),<br />

decod= ,(if v2000^n='decod' then v2000^n'='v2000^v/ fi),<br />

gizp= ,(if v2000^n='gizp' then v2000^n'='v2000^v/ fi),<br />

gizmo= ,(if v2000^n='gizmo' then v2000^n'='v2000^v/ fi),<br />

giz1= ,(if v2000^n='giz1' then v2000^n'='v2000^v/ fi),<br />

giz2= ,(if v2000^n='giz2' then v2000^n'='v2000^v/ fi),<br />

putdir= ,(if v2000^n='putdir' then v2000^n'='v2000^v/ fi),<br />

getdir= ,(if v2000^n='getdir' then v2000^n'='v2000^v/ fi),<br />

sys= ,(if v2000^n='sys' then v2000^n'='v2000^v/ fi),<br />

sys/show= ,(if v2000^n='sys/show' then v2000^n'='v2000^v/ fi),<br />

text= ,(if v2000^n='text' then v2000^n'='v2000^v/ fi),<br />

text/show= ,(if v2000^n='text/show' then v2000^n'='v2000^v/ fi),<br />

lw= ,(if v2000^n='lw' then v2000^n'='v2000^v/ fi),<br />

pft= ,(if v2000^n='pft' then v2000^n'='v2000^v/ fi),<br />

invx= ,(if v2000^n='invx' then v2000^n'='v2000^v/ fi),<br />

iso= ,(if v2000^n='iso' then v2000^n'='v2000^v/ fi),<br />

outiso= ,(if v2000^n='outiso' then v2000^n'='v2000^v/ fi),<br />

outisotag1= ,(if v2000^n='outisotag1' then v2000^n'='v2000^v/ fi),<br />

fix= ,(if v2000^n='fix' then v2000^n'='v2000^v/ fi),<br />

ln1= ,(if v2000^n='ln1' then v2000^n'='v2000^v/ fi),<br />

ln2= ,(if v2000^n='ln2' then v2000^n'='v2000^v/ fi),<br />

fst= ,(if v2000^n='fst' then v2000^n'='v2000^v/ fi),<br />

fst/h= ,(if v2000^n='fst/h' then v2000^n'='v2000^v/ fi),<br />

201


Programmi di utilità CISIS: manuale di riferimento Appendice V - MX.PFT: Lista dei parametri che estrae <strong>da</strong>ll’ambiente CGI<br />

Parametro Formato di estrazione<br />

stw= ,(if v2000^n='stw' then v2000^n'='v2000^v/ fi),<br />

ifupd= ,(if v2000^n='ifupd' then v2000^n'='v2000^v/ fi),<br />

ifupd/create= ,(if v2000^n='ifupd/create' then v2000^n'='v2000^v/ fi),<br />

ifupd/dict= ,(if v2000^n='ifupd/dict' then v2000^n'='v2000^v/ fi),<br />

ifupd/create/dict= ,(if v2000^n='ifupd/create/dict' then v2000^n'='v2000^v/ fi),<br />

fullinv= ,(if v2000^n='fullinv' then v2000^n'='v2000^v/ fi),<br />

fullinv/dict= ,(if v2000^n='fullinv/dict' then v2000^n'='v2000^v/ fi),<br />

fullinv/keep= ,(if v2000^n='fullinv/keep' then v2000^n'='v2000^v/ fi),<br />

fullinv/m= ,(if v2000^n='fullinv/m' then v2000^n'='v2000^v/ fi),<br />

fullinv/ansi= ,(if v2000^n='fullinv/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/dict/keep= ,(if v2000^n='fullinv/dict/keep' then v2000^n'='v2000^v/ fi),<br />

fullinv/dict/m= ,(if v2000^n='fullinv/dict/m' then v2000^n'='v2000^v/ fi),<br />

fullinv/dict/ansi= ,(if v2000^n='fullinv/dict/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/dict/m/ansi= ,(if v2000^n='fullinv/dict/m/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/ansi= ,(if v2000^n='fullinv/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/m/ansi= ,(if v2000^n='fullinv/m/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/keep/ansi= ,(if v2000^n='fullinv/keep/ansi' then v2000^n'='v2000^v/ fi),<br />

fullinv/keep/m/ansi= ,(if v2000^n='fullinv/keep/m/ansi' then v2000^n'='v2000^v/ fi),<br />

maxlk1= ,(if v2000^n='maxlk1' then v2000^n'='v2000^v/ fi),<br />

maxlk2= ,(if v2000^n='maxlk2' then v2000^n'='v2000^v/ fi),<br />

copy= ,(if v2000^n='copy' then v2000^n'='v2000^v/ fi),<br />

append= ,(if v2000^n='append' then v2000^n'='v2000^v/ fi),<br />

up<strong>da</strong>tf= ,(if v2000^n='up<strong>da</strong>tf' then v2000^n'='v2000^v/ fi),<br />

create= ,(if v2000^n='create' then v2000^n'='v2000^v/ fi),<br />

merge= ,(if v2000^n='merge' then v2000^n'='v2000^v/ fi),<br />

202

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!