Utilitarios CISIS

Los utilitarios CISIS son un conjunto de aplicaciones (entre 25 y 30, según la versión y la plataforma), que permiten la manipulación a “bajo nivel” de bases de datos ISIS. Mediante estas herramientas, es posible realizar algunas de las tareas para las que se utiliza MicroIsis o Winisis (e.g., búsquedas, generación del archivo invertido, modificación de datos, exportación/importación de archivos ISO 2709), así como muchas otras que estos programas no contemplan.

El utilitario de uso más frecuente es mx, debido a su variada funcionalidad. También se usan habitualmente:

msrt, para ordenar archivos maestros,

i2id e id2i, para convertir bases ISIS en archivos de texto, y viceversa,

ifkeys, para obtener un listado de términos del diccionario.

crunchmf y crunchif, para convertir archivos maestros e invertidos, respectivamente, de una plataforma a otra (e.g., de Windows a Linux).

mxf0, para generar un informe sobre registros, campos y caracteres presentes en una base.

Estos utilitarios fueron desarrollados por Bireme, y su distribución es gratuita. El código fuente permanece cerrado.

Versiones

A julio de 2007, la última versión disponible es la 5.2, con las siguientes variantes:

Estándard (10/30). Maneja archivos maestros (.mst) con registros de hasta 32 Kbytes de tamaño --- totalmente compatible con CDS/ISIS for Windows. Posee claves cortas de hasta 10 caracteres y claves largas de 11 a 30 caracteres.

Claves grandes (16/60). Idem a la versión estándard, excepto por los tamaños de las claves. La clave corta puede tener hasta 16 caracteres y la clave larga de 17 a 60 caracteres.

LIND (16/60). Idem a la versión de claves grandes, excepto por los recursos de búsqueda con restricción de campo, búsqueda por ocurrencia y por proximidad. Estos recursos fueron eliminados en favor del desempeño de la búsqueda y el tamaño del archivo invertido. Las extensiones de algunos archivos que componen el invertido fueron alteradas para permitir una fácil identificación.

FFI (16/60). Idem a la versión LIND, excepto por el archivo maestro que fue alterado en su estructura de control para permitir registros de hasta 1 Mbyte de tamaño, tornándose incompatible con el de CDS/ISIS en cualquiera de sus versiones hasta esta fecha.

crunchif

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility CRUNCHIF
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
crunchif <dbn> <target_dbn> [<option> [...]]
options:
-ifp -> don't crunch .ifp file
/ifp -> crunch .ifp file if needed
tell=<n> -> tell <n> records processed
target={linux|hpux|sun|alpha|vax|unisys|mpe|cdc|pc} default: linux

crunchmf

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility CRUNCHMF
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
crunchmf <dbn> <target_dbn> [<option> [...]]
options:
{from|to|loop|count|tell}=<n>
target={pc|linux|hpux|sun|alpha|vax|unisys|mpe|cdc|same} default: linux
format={isis|cisisX} default: isis
mstxl={0|1|2|4} default: as <dbn>

ctlmfn

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility CTLMFN
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
ctlmfn <dbn>

i2id

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility CTLMFN
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
ctlmfn <dbn>

id2i

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility ID2I
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
id2i <filein> [create[/app]=]<dbout> [option [option] ... ]
options: {from/to/loop/count/offset/tell/id}=<n>
The logical record of <filin> has the format:
!ID mmmmmm
!vXXX!...contents of tag XXX.............
!vYYY!...contents of tag YYY.............
...
where mmmmmm is the MFN to be loaded
The contents of a tag may be split in 2 or more lines

ifkeys

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility IFKEYS
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
ifkeys <dbname> [from=<key>] [to=<key>] [+tags]
<dbname> input inverted file
from=<key> starting key
to=<key> ending key
+tags output tag information
tell=<n> produce a message every each <n> keys
Displays the dictionary terms preceeded by the total number of postings

ifload

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility IFLOAD
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
ifload <dbname> {<file_lk1>|void} {<file_lk2>|void} [<option> [...]]
<dbname> -> output inverted file
<file_lk1> -> sorted 10-byte link file
<file_lk2> -> sorted 30-byte link file
options:
master=<name> -> alternate master file
-reset -> keep IF update is pending
-posts -> do not load .ifp
-balan -> do not rebalance the dict
tell=<n> -> tell <n> links has been loaded
+fix[/m] -> read fixed link records

ifmerge

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility IFMERGE
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
ifmerge <out> <if1>[,n1] <if2>[,n2] [...] [<option> [...]]
<out> -> output inverted file
<if1>[,n1] -> input inverted file #1, maxmfn#1
<if2>[,n2] -> input inverted file #2, maxmfn#2
...
options:
+mstxrf -> create <out> M/F and its mstxrf <out>.pft
-posts -> do not load .ifp
-balan -> do not rebalance the dict
tell=<n> -> tell <n> keys has been loaded

mx

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility MX
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
mx [cipar=<file>] [{mfrl|load}=<n>] [cgi={mx|<v2000_fmt>}] [in=<file>]
{[db=]<db>|
seq[/1m]=<file>|
iso[={marc|<n>}]=<isofile> [isotag1=<tag>]|
dict=<if>[,<keytag>[,<posttag>[/<postsperrec>]]] [k{1|2}=<key>]}
options:
from|to|loop|count|tell|btell=<n>
text[/show]=<text>
[bool=]{<bool_expr>|@<file>} [invx=<tag101_mf>] [tmpx=<tmp_mf>]
gizmo=<gizmo_mf>[,<taglist>] [gizp[/h]=<out_mfx>] [decod=<mf>]
join=<mf>[:<offset>][,<taglist>]=<mfn=_fmt>
join=<db>[:<offset>][,<taglist>]=<upkey_fmt> [jmax=<n>]
jchk=<if>[+<stwfile>]=<upkey_fmt>
proc=[<proc_fmt>|@<file>]
D{<tag>[/<occ>]|*}
A<tag><delim><data><delim>
H<tag> <length> <data>
<TAG[ <stripmarklen>[ <minlen>]]><data></TAG>
S[<tag>]
R<mf>,<mfn>
G<gizmo_mf>[,<taglist>]
Gsplit[/clean]=<tag>[={<char>|words|letters|numbers|trigrams}]
Gsplit=<tag>=6words[/if=<if>]
Gload[/<tag>][/nonl][=<file>]
Gmark[/<tag>]{/<elem>|/keys|/decs|/<mf>,<otag>[,<ctag>]}=<if>
Gmarx[/<tag>]/<elem>[@<att>="x"] =<tag>[:&[<att>]|/c[=224]|/i]
Gdump[/<tag>][/nonl][/xml][=<file>]
=<mfn>
X[append=]<mf>
convert=ansi [uctab={<file>|ansi}] [actab={<file>|ansi}]
fst[/h]={<fst>|@[<file>]} [stw=@[<file>]]
[mono|mast|full] {create|copy|append|merge|updatf}=<out_mf>
[out]iso[={marc|<n>}]=<out_isofile> [outisotag1=<tag>]
fullinv[/dict][/m][/ansi]=<out_if> [-reset]
ln{1|2}=<out_file> [+fix[/m]]
fix=<out_file> tbin=<tag>
tab[/lines:100000/width:100/tab:<tag>]=<tab_fmt>
prolog|pft|epilog={<diplay_fmt>|@<file>} [lw={<n>|0}]
{+|-}control|leader|xref|dir|fields|all [now] [mfrl]

msrt

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility MSRT
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
msrt <dbname> <keylen> <keyfmt> [-mfn] [tell=<n>]
<dbname> master file to be sorted in place or <dbn>,<0>
<keylen> sort key length
<keyfmt> format specification to generate sort keys or tag=<n>
-mfn keep the original MFNs
+del delete duplicate tag=<n> keys
tell=<n> produce a message to the stderr every each <n> keys

mxcp

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility MXCP
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
mxcp {in=<file>|<dbin>} [create=]<dbout> [<option> [...]]
options: {from|to|loop|count|tell|offset}=<n>
gizmo=<dbgiz>[,tag_list>]
undelete
clean [mintag=1] [maxtag=9999]
period=.[,<tag_list>]
repeat=%[,<tag_list>]
log=<filename>
Ex: mxcp in create=out clean period=.,3 repeat=;,7
in = 3 « Field 3 occ 1. »
3 «Field 3 occ 2 . »
7 « Field 7/1;Field 7/2 ;Field 7/3.»
out = 3 «Field 3 occ 1»
3 «Field 3 occ 2»
7 «Field 7/1»
7 «Field 7/2»
7 «Field 7/3.»

mxf0

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility MXF0
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
mxf0 <dbname> [create=]<dbnout> [<tnrecs>] [noedit] [tell=<n>] [total]
<dbname> input master file
<dbnout> output master file for results
<tnrecs> expected number of input records (default=0)
noedit suppress all leading spaces in the output data fields
tell=<n> produce a message to the stderr every each <n> input records
The following tags are output to <dbnout>:
1001: input master file name
1003: date & time stamp
1009: total number of records
1010: number of active records
1011: number of logically deleted records
1012: number of physically deleted records
1013: next MFN to be assigned
1020: ^tTAG ^dDOCS ^oOCCS ^lMINLEN ^uMAXLEN ^nDATA BYTES
1030: ^tall ^xCHRCODE ^nCHRFREQ
Exit code is 0 if the total number of records is equal to <tnrecs>

mxtb

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility MXTB
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
mxtb <dbn> [create=|append=]<dbnout> <key> [<key> ...] [<option> [...]]
keys: keylen:key_fmtspec
options: {from|to|loop|count|tell|btell}=<n>
tab=<tab_val_fmt>
mfnsum=<#levels> [{min|max}{avg|freq}=<n>]
class=1000
bool=<expr>
uctab={<file>|ansi}
Ex: mxtb in out len1:fmt1 len2:fmt2 len3:fmt3
out = 1 key/key1_value (max len1 chars)
2 key/key2_value (max len2 chars)
3 key/key3_value (max len3 chars)
998 999999999 - key_frequency
999 key_frequency
Ex: mxtb in out len:fmt tab=Vtag
out = 1 key_value (max len chars)
998 999999999 - Vtag_subtotal
999 Vtag_subtotal

retag

CISIS Interface v5.2b/PC32/M/32767/10/30/I - Utility RETAG
Copyright (c)BIREME/PAHO 2006. [http://www.bireme.br/products/cisis]
retag <dbname> {<retag.tab>|unlock} [<option> [...]]
<dbname> master file to be retagged/unlocked
<retag.tab> retag table
options: {from|to|tell|shift}=<n>
The retag table is a sequential file in the format:
<tag> <new tag> (max 5461 entries)
The table:
24 240
70 700
changes tag 24 to 240 and 70 to 700