MXCP(c)Bireme: Algumas aplicações úteis
Elysio Mira Soares de Oliveira
infoarte@elysio.com.br

Indicações:

Manutenção de bases de dados CDS/ISIS(c)Unesco
Eliminar espaços desnecessários na base de dados;
Eliminar ponto no final de campos;
Recuperar registros eliminados logicamente;
Transformar campos de dados simples em campos repetitivos;
Transformar termos assinalados em ocorrências de campos repetitivos;

Sintaxe:

mxcp <dbin> [create=]<dbout> [<opções> [...]]

Opções:
{from|to|loop|count|tell|offset}=<n> undelete gizmo=<dbgiz>[,<tag_list>] period=<char>[,<tag_list>] repeat=<char>[,<tag_list>] clean {mintag|maxtag}=<n> log=<arquivo>

Uma das principais funções do MXCP é contribuir com o controle de qualidade de dados de uma base de dados CDS/ISIS. Ele possibilita, a partir de uma base de dados, a criação de outra, isenta de espaços em branco no início e final dos campos de dados. Além desta “limpeza”, o MXCP pode substituir todos os caracteres invisíveis, inseridos acidentalmente na base de dados (ASCII<32), por caracteres brancos.

Outra inconsistência muito comum em bases de dados CDS/ISIS é a existência do ponto no final de uma ocorrência ou de um campo de dado. O MXCP também permite a eliminação desta pontuação, com a geração de uma cópia da base de dados, isenta desta pontuação.

Além destas funções de extrema utilidade no processo de controle de qualidade do dado, o MXCP permite uma série de outras aplicações, tais como: tornar ativo os registros logicamente eliminados; converter campos de dados únicos em repetitivos; converter palavras assinaladas em ocorrência de campo repetitivo, etc.

O MXCP não produz saídas de registros vazios. Os registros de entrada ou processados que não tenham campos, são descartados. Os registros eliminados logicamente só serão processados quando o parâmetro undelete for utilizado. Pode-se usar o mesmo arquivo mestre tanto para a entrada como para a saída, mas o resultado da operação destruirá o arquivo de entrada original. A opção create=<dbout> garante que <dbout> seja criado ou reinicializado.


Eliminação de espaços em branco

Apresentamos a seguir um exemplo de utilização do mxcp no processo de eliminação de espaços em branco no inicio e final de campos de dados. Neste exemplo, o MXCP irá ler uma base de dados de entrada e criar uma segunda base de dados, cópia da primeira, isenta destas inconsistências.

mxcp \cisis\cds\cds create=x clean

Onde:

mxcp

comando de execução do mxcp

 

\cisis\cds\cds

caminho e nome da base de dados de entrada “cds”

 

create=

parâmetro para indicar a criação de outra base de dados

 

x

nome da base de dados de saída, argumento do parâmetro "create="

 

clean parâmetro que indica a eliminação de brancos no início e final dos campos de dados

 


Recuperação de registros eliminados logicamente

Na instrução abaixo, apresentamos um exemplo da utilidade do mxcp na recuperação de registros eliminados (deletados). Esta instrução, composta com o parâmetro undelete, criará uma cópia da base de dados “cds” tornando ativo os registros eliminados. A base de dados de saída “x”, produto desta operação, passará a ter como ativos, todos os registros provenientes da “cds”, inclusive aqueles que haviam sido eliminados logicamente.

mxcp \cisis\cds\cds create=x undelete

Onde:

mxcp

comando de execução do mxcp

 

\cisis\cds\cds

caminho e nome da base de dados de entrada “cds”

 

create=

parâmetro para indicar a criação de outra base de dados

 

x

nome da base de dados de saída, argumento do parâmetro "create="

 

undelete parâmetro que indica a recuperação dos registros eliminados logicamente da base de dados "cds"

 


Transformar campos de dados simples em campos repetitivos

A conversão será feita sempre que houver um delimitador. No exemplo a seguir, o MXCP irá converter o campo 70, em repetitivo, considerando o ponto e vírgula “;” como um separador de ocorrências.

Exemplo de registros da base de dados de entrada “cds”:

MFN 1
70 "Magalhaes, A.C.; Franco, C.M."

MFN 2
70 "Bosian, G."

A instrução:

mxcp cds create=x repeat=;,70

criará uma base de dados “x” cujo campo 70 passará a ter característica de campo de dado repetitivo.

Exemplo:

MFN 1
70 "Magalhaes, A.C."
70 "Franco, C.M."

MFN 2
70 "Bosian G."

Quando o parâmetro repeat é usado, o MXCP também efetua um processo de “limpeza”. Quando um campo de dado não for especificado no parâmetro repeat, o processo será executado em todos os campos da base de dados.

Por exemplo:

mxcp cds create=cds2 repeat=%

Onde:

mxcp

comando de execução do mxcp

 

\cisis\cds\cds

caminho e nome da base de dados de entrada “cds”

 

create=

parâmetro para indicar a criação de outra base de dados

 

cds2 nome da base de dados de saída, argumento do parâmetro "create="

Também é possível a especificação de uma lista de campos:

mxcp cds create=cds2 repeat=%,70,99,100,200

Uma sequência:

mxcp cds create=cds2 repeat=%,99/105

Uma combinação de ambos:

mxcp cds create=cds2 repeat=%,70,99/105,110

 


Eliminar ponto no final de campos

Na instrução seguinte veremos a utilização do MXCP no processo de eliminação de pontos no final de campos de dados.

mxcp cds create=cds2 period=.,70

Esta instrução cria a base de dados “cds2” a partir da base de dados de entrada “cds”, eliminando todos os pontos finais do campo 70. Por exemplo, supondo uma base de dados de entrada com os seguintes registros:

MFN 1
70 "Magalhaes, A.C."
70 "Franco, C.M."

MFN 2

70 "Bosian G."
71 "Instituto de Ciências."

Na base de dados resultante teríamos o seguinte:

MFN 1
70 "Magalhaes, A.C"
70 "Franco, C.M"

MFN 2
70 "Bosian G"
71 "Instituto de Ciências."


Transformar termos assinalados em ocorrências de campos repetitivos

Outra facilidade bastante útil do mxcp é sua capacidade de efetuar operações através de uma tabela de conversão gizmo. Este procedimento permite que palavras assinaladas possam ser convertidas em ocorrências de um campo de dado repetitivo. A seguir apresentamos um exemplo desta utilização, a partir da criação da tabela de conversão, criada com o utilitário mx, que também será uma base de dados CDS/ISIS:

Digitando exatamente o que é apresentado abaixo (finalizando cada linha com <enter>) será criada uma tabela de conversão para substituir os colchetes angulares (<>), pelo sinal de porcentagem. (%):

mx seq=con create=xtable -all now

<|
>|
><|%
> <|%
> <|%
Paper on: <|
<Ctrl>Z

Esta tabela de conversão, quando executada pelo MXCP sobre uma base de dados com os seguintes registros contidos no campo 69:

MFN 1
69 "Paper on: <plants><water><plant transpiration>"

MFN 2
69 "Paper on: <plant physiology><plant transpiration><measurement and instruments"

Quando executamos:

mxcp cds create=cds2 gizmo=xtable repeat=%,69

Teremos como resultado em “cds2” os registros no seguinte formato:

MFN 1
69 "plants"
69 "water"
69 "plant transpiration"

MFN 2
69 "plant physiology"
69 "plant transpiration"
69 "measurement and instruments"

 


Parâmetros do MXCP

mxcp <dbin> [create=]<dbout> [<opções> [...]]

Onde:

mxcp

comando de execução do mxcp

 

<dbin>

caminho e nome da base de dados de entrada

 

[create=]

parâmetro para indicar a criação de outra base de dados

 

<dbout>

nome da base de dados de saída, argumento do parâmetro "create="

 

[<opções>] parâmetros opcionais

Opções:

{from|to|loop|count|tell|offset}=<n> undelete gizmo=<dbgiz>[,<tag_list>] period=<char>[,<tag_list>] repeat=<char>[,<tag_list>] clean {mintag|maxtag}=<n> log=<filename>

Os parâmetros from, to, loop, count, tell e offset são descritos no Manual do MX.

undelete

Recupera registros do arquivo mestre de entrada (ativa os registros da entrada que estão logicamente deletados).

 

gizmo=<dbgiz>[,<tag_list>]

Executa um procedimento conversão de dados, usando uma base de dados como tabela de conversão. Pode ser aplicado em todos os campos do registro ou somente nos campos especificados na <tag_list>.

 

period=<char>[,<tag_list>]

Elimina o caractere indicado no argumento <char>. Pode ser aplicado em todos os campos do registro ou somente nos campos especificados na <tag_list>.

 

repeat=<char>[,<tag_list>]

Converte em repetitivo os campos de entrada que possuem o indicado no argumento <char>. Pode ser aplicado em todos os campos do registro ou somente nos campos especificados na <tag_list>.

 

clean

Elimina espaços em branco no inicio e fim do campo e substitui todos os caracteres invisíveis (ASCII<32>) por branco. Quando utilizado os parâmetros repeat ou period, a opção clean é ativada automaticamente

.

mintag=<n>

Elimina todas as ocorrências dos campos com etiquetas menor que <n>

 

maxtag=<n>

Elimina todas as ocorrências dos campos com etiqueta maior que <n>.

 

log=<arquivo> Grava as mensagens de controle e resultado de um processo no arquivo <arquivo>.