<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Estimada Renata<br>
<br>
<i>(Favor que alguien traduzca la inglés pues no tengo tiempo en este
momento)</i><br>
<br>
La indización estándard de ISIS por técnicas 4 y 8 recupera cadenas de
caracteres (strings) formadas por los caracteres definidos en la una
tabla isisac.tab<br>
<br>
La tabla por defecto del Isis considera <u><i>palabra </i></u>a
cualquier string de caracteres solamente alfabéticos.<br>
Esto significa que los números, espacios en blanco y caracteres
tipográficos dividen las cadenas en "palabras". <br>
El problema se plantea en la definición de "<i><u>palabra</u></i>".<br>
<br>
Algunas soluciones que se han ofrecido es incluir los números en la
lista isisac.tab, entonces también son incluídos como "palabras. Pero
esta solución es bastante limitada. Por ejemplo tenemos el caso que
plantea tú planteas y que Alisson informa correctamente que no ha
funcionado.<br>
<br>
Ella tiene un número 12589.569 y como el punto (.) es separador,
entonces se generan dos claves<br>
12589 y 569<br>
<br>
Lo mismo ocurriría si tuviéramos códigos como los expedientes o las
leyes 10.751/12, Decreto 987/2010<br>
<br>
De modo que la modificación del isisac.tab no resuelve el tema
completamente, incluso "ensucia" el archivo invertido cuando indiza
campos donde hay números y no queremos que éstos se indicen. <br>
Una solución "limpia" viene por otra vía.<br>
<br>
Para eso CISIS usa los procs( ), que además de ser un parámetro del MX
también es una instrucción del formato.<br>
<br>
Problema:<br>
tenemos los siguientes valores y queremos generar los siguientes índices<br>
<b><font face="Courier New, Courier, monospace"><br>
a) 12589.569 --> 12589.569 12589569 12589 569<br>
b) 1234/001 --> 1234/001 1234 001</font></b><br>
<br>
supongamos que estos valores están en el campo 590, entonces<br>
<br>
Todas estas variantes de los números son necesarios para que el usuario
en la consulta "tipo google" del IAH pueda recuperar los valores
indistintamente si usa puntos o barras o si no los usa<br>
Presentamos en forma simple y didáctica, paso a paso, pues las
instrucciones siguientes pueden optimizarse en líneas más compactas<br>
<br>
Ejemplo (a)<br>
<b><font face="Courier New, Courier, monospace">590 0 if p(v590) then
'TW_', v590 fi<br>
590 0 if p(v590) then 'TW_', replace(v590),'.','') fi<br>
590 0 if p(v590) then 'TW_', proc('Gsplit=590=.') (v590/)<br>
</font></b><br>
Ejemplo (b)<br>
<b><font face="Courier New, Courier, monospace">590 0 if p(v590) then
'TW_', v590 fi<br>
590 0 if p(v590) then 'TW_', proc('Gsplit=590=/') (v590/)</font></b><br>
<br>
también es posible extraer los números de un texto usando
proc('Gsplit/clean=<tag>,numbers')<br>
hay muchas opciones que no son usadas pero muy eficientes para indizar<br>
<br>
Con tiempo daremos otros ejemplos. <br>
El comando proc( ) es indispensable para hacer FST realmente avanzadas<br>
<br>
Saludos<br>
Ernesto Spinak<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<pre class="moz-signature" cols="72">--
.^. .^.
( ) ( )
=== ===
=[=]================================[=]=
| | Ernesto Spinak | |
| | <a class="moz-txt-link-abbreviated" href="mailto:spinaker@adinet.com.uy">spinaker@adinet.com.uy</a> | |
| | Montevideo, Uruguay | |
| | tel/fax (5982) 622-3352 | |
| | celular (598) 99612238 | |
=[=]================================[=]=
=== ===
( ) ( )
V V </pre>
</body>
</html>