User Tools

Site Tools


malete_-_primeros_pasos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
malete_-_primeros_pasos [24/03/2008 16:31]
fernando
malete_-_primeros_pasos [05/05/2009 00:00] (current)
Line 1: Line 1:
 ====== Malete - Primeros pasos ====== ====== Malete - Primeros pasos ======
  
-**ATENCION: estas son unas notas informales tomadas en 2005, mientras aprendía a usar Malete. Aún falta transcribir una parte de ellas. Esto no está organizado como un HOWTO paso a paso para el recién llegado; es más bien una especie de bitácora donde registré los pasos que fui dando. Para generar un documento más útil habrá que reorganizarlo. ---Fernando**+<note important>​ 
 +ATENCION: estas son unas notas informales tomadas en 2005, mientras aprendía a usar Malete. Aún falta transcribir una parte de ellas. Esto no está organizado como un HOWTO paso a paso para el recién llegado; es más bien una especie de bitácora donde registré los pasos que fui dando. Para generar un documento más útil habrá que reorganizarlo. ---Fernando 
 +</​note>​
  
  
 Vamos a intentar describir paso a paso un primer encuentro con Malete. Vamos a intentar describir paso a paso un primer encuentro con Malete.
 +
  
 ===== Setup ===== ===== Setup =====
Line 11: Line 14:
  
   tar xzf malete.1.0.3.tgz   tar xzf malete.1.0.3.tgz
 +
 +**SUGERENCIA**:​ al descomprimir debería crearse un directorio '​malete-version'​.
  
 Vemos que se crean cuatro directorios:​ Vemos que se crean cuatro directorios:​
Line 22: Line 27:
   * ''​test'':​ contiene dos bases de datos: ''​cds''​ (la tradicional base distribuida por Unesco), y ''​unicode''​ (una pequeña base para probar el uso de Unicode en Malete).   * ''​test'':​ contiene dos bases de datos: ''​cds''​ (la tradicional base distribuida por Unesco), y ''​unicode''​ (una pequeña base para probar el uso de Unicode en Malete).
  
-Cada una de las bases de datos dentro ​de ''​test''​ está compuesta por tres archivos:+Cada base de datos dentro ​del directorio ​''​test''​ está compuesta por tres archivos:
  
   * ''<​db_name>​.m0d'':​ malete options (record 0) file (collation y qué más?)   * ''<​db_name>​.m0d'':​ malete options (record 0) file (collation y qué más?)
-  * ''<​db_name>​.mqt'': ​malete query terms +  * ''<​db_name>​.mqt'': ​**m**alete **q**uery **t**erms 
-  * ''<​db_name>​.mrd'': ​malete record data+  * ''<​db_name>​.mrd'': ​**m**alete **r**ecord **d**ata
  
 Es importante notar que se trata de **archivos de texto**. Es importante notar que se trata de **archivos de texto**.
Line 50: Line 55:
  
 Se trata solamente de una sugerencia inicial, como para comenzar a familiarizarnos con el protocolo de comunicación usado por Malete. Seguiremos esas indicaciones,​ y veremos qué sucede. Se trata solamente de una sugerencia inicial, como para comenzar a familiarizarnos con el protocolo de comunicación usado por Malete. Seguiremos esas indicaciones,​ y veremos qué sucede.
 +
  
 ===== Compilación ===== ===== Compilación =====
Line 57: Line 63:
   make -C mlt server   make -C mlt server
  
-Esto invoca al programa ''​make'',​ y le pasa dos argumentos: la opción ''​-C mlt''​ le indica que debe leer el Makefile del directorio ''​mlt'',​ y el target ''​server''​ ...?+Esto invoca al programa ''​make'',​ y le pasa dos argumentos: la opción ''​-C mlt''​ le indica que debe leer el Makefile del directorio ''​mlt'',​ y el target ''​server''​ ...? **TODO**: ver los otros targets en el Makefile.
  
 <​note>​ <​note>​
Line 70: Line 76:
   listening on '​*:​2042'​   listening on '​*:​2042'​
  
-(El servidor Malete utiliza por defecto el puerto 2042.)+El servidor Malete utiliza por defecto el puerto 2042.
  
-Como resultado de la ejecución de ''​make'',​ se han creado varios archivos. Hay un nuevo directorio ''​bin'', ​y de allí nos interesa especialmente el archivo ''​malete''​, que es el ejecutable ​(279.052 bytes en la versión 1.0.3). Dentro del directorio ''​test''​ han aparecido estos 5 archivos:+Como resultado de la ejecución de ''​make'',​ se han creado varios archivos. Hay un nuevo directorio ''​bin'', ​del cual nos interesa especialmente el archivo ​ejecutable ​''​malete''​ (273 KB).
  
-  * test.m0d +Dentro del directorio ''​test''​ fueron creados estos 5 archivos:
-  * test.mrd +
-  * test.mrx +
-  * test.mqd +
-  * test.mqx+
  
-Esta nueva base de datos, llamada ''​test'',​ es una copia de la base ''​cds''​ que vino con Malete. Más precisamente,​ los archivos ''​test.m0d''​ y ''​test.mrd''​ son copia de ''​cds.m0d''​ y ''​cds.mrd''​, respectivamente, mientras que+  * ''​test.m0d''​ 
 +  * ''​test.mrd''​ 
 +  * ''​test.mrx''​ 
 +  * ''​test.mqd''​ 
 +  * ''​test.mqx''​ 
 + 
 +Esta nueva base de datos, llamada ''​test'',​ es una copia de la base ''​cds''​ que vino con Malete. Más precisamente,​ los archivos ''​test.m0d''​ y ''​test.mrd''​ son copia respectivamente ​de ''​cds.m0d''​ y ''​cds.mrd'',​ mientras que
  
-  * ''​test.mqd''​ se genera a partir de ''​cds.mqt''​ 
   * ''​test.mrx''​ se genera a partir de ''​test.mrd''​   * ''​test.mrx''​ se genera a partir de ''​test.mrd''​
 +  * ''​test.mqd''​ se genera a partir de ''​cds.mqt''​
   * ''​test.mqx''​ se genera a partir de ''​test.mqd''​ y ''​test.m0d''​   * ''​test.mqx''​ se genera a partir de ''​test.mqd''​ y ''​test.m0d''​
  
 ===== La base de pruebas ===== ===== La base de pruebas =====
 +
 +<​note>​
 +Comparar con la base CDS de MicroIsis o WinIsis.
 +</​note>​
  
 Podemos examinar la base ''​cds''​ con una herramienta conocida, el utilitario ''​mx''​. Para ello, podemos crear una base Isis a partir de la base Malete. Previamente necesitamos recompilar ''​malete''​ para que trabaje con bases Isis en "​formato Unix", en lugar del "​formato DOS" que usa por defecto: Podemos examinar la base ''​cds''​ con una herramienta conocida, el utilitario ''​mx''​. Para ello, podemos crear una base Isis a partir de la base Malete. Previamente necesitamos recompilar ''​malete''​ para que trabaje con bases Isis en "​formato Unix", en lugar del "​formato DOS" que usa por defecto:
  
-  $ rm -rf bin/ +  $ export ​CDSUNIX=1 
-  $ CDSUNIX=1 +  $ make -B -C mlt server ​ # -B fuerza una recompilación
-  $ export CDSUNIX +
-  $ make -C mlt server+
  
 Ahora exportamos la base ''​cds'',​ de Malete a Isis: Ahora exportamos la base ''​cds'',​ de Malete a Isis:
Line 104: Line 114:
   ..   ..
  
-¿La base tiene 151 registros? No, solamente 150, pero hay un error en la base creada por Malete:+''​mx''​ nos indica que hay 151 registros en la base, aunque el 151 no puede ser leído:
  
   $ mx test/cds "​pft=mfn,​x2,​v24(8,​8)"/​ from=148 now   $ mx test/cds "​pft=mfn,​x2,​v24(8,​8)"/​ from=148 now
Line 115: Line 125:
   ​   ​
   fatal: recread/​read   fatal: recread/​read
 +
 +También hay problemas para leer el diccionario usando ''​mx'':​
 +
 +  $ mx test/cds water
 +  ​
 +  fatal: noderead/​ock
 +
 +  $ mx dict=test/​cds
 +  ​
 +  fatal: noderead/​ock
 +
 +
 +Examinemos la versión DOS de la misma base (desde wine).
 +
 +  $ export CDSUNIX= ​  # volvemos al default
 +  $ make -B -C mlt server
 +
 +  $ bin/malete cdsexp cds -ftest/
 +
 +  $ wine /​media/​win1/​cisis/​5.2/​1030/​mx test/cds +control
 +  *test/cds
 +   ​nxtmfn nxtmfb nxtmfp ​ t  reccnt mfcxx1 mfcxx2 mfcxx3 ​   RC
 +     ​152 ​   122     ​12 ​  ​0 ​   150      0      0      0      0
 +  ..
 +  $ wine /​media/​win1/​cisis/​5.2/​1030/​mx test/cds "​pft=mfn,​x2,​v24(8,​8)/"​ now from=148
 +  000148 ​ Personal statement
 +  000149 ​ For a training project based on programmed learning in the developing
 +          countries: objectives, means and resources, organization and
 +          management, development
 +  000150 ​ Micropolitan development:​ theory and practice of greater-rural
 +          economic development
 +  000151 ​ Manuel pratique des assurances sociales
 +
 +Notamos que en este caso ''​mx''​ nos muestra un registro 151, pero se trata de una copia (fantasma) del registro 101:
 +
 +   $ wine /​media/​win1/​cisis/​5.2/​1030/​mx test/cds from=101
 +   ​mfn= ​  101
 +    24  «Manuel pratique des assurances sociales»
 +    26  «^aParis^bDOCIS^c1968»
 +    30  «^a1 v. (loose-leaf)»
 +    50  «Kept up-to-date»
 +    69  «<​social security><​legislation><​France><​guides>​»
 +    71  «Documentation des institutions»
 +   ..x
 +   $ wine /​media/​win1/​cisis/​5.2/​1030/​mx test/cds from=151
 +   ​mfn= ​  151
 +    24  «Manuel pratique des assurances sociales»
 +    26  «^aParis^bDOCIS^c1968»
 +    30  «^a1 v. (loose-leaf)»
 +    50  «Kept up-to-date»
 +    69  «<​social security><​legislation><​France><​guides>​»
 +    71  «Documentation des institutions»
 +   ..x
 +
 +
 +El error en el diccionario es el mismo.
 +
  
 ===== La primera sesión ===== ===== La primera sesión =====
Line 125: Line 192:
   Escape character is '​^]'​.   Escape character is '​^]'​.
  
 +El servidor Malete está listo para escuchar nuestros mensajes.
 +
 +==== Consulta vacía ====
  
-El servidor Malete está listo para escuchar nuestros mensajes. ​Empecemos con **test.Q**, seguido por un doble Enter:+Empecemos con **test.Q**, seguido por un doble Enter:
  
   test.Q   test.Q
 +
 +La **Q** indica que estamos haciendo una **consulta** (//​query//​),​ y la ausencia de parámetros hace que se trate de un caso especial de consulta, la //consulta vacía//. Con esta consulta recuperamos todos los registros de la base (véase [[http://​malete.org/​Doc/​Protocol|Protocol]]).
  
 Malete nos responde de esta manera: Malete nos responde de esta manera:
Line 150: Line 222:
   30              ap. 225-232 ​    ​billus.   30              ap. 225-232 ​    ​billus.
   70      Bosian, G.   70      Bosian, G.
- +  ​ 
-[Esos son los primeros 2 registros; siguen 18 más]+  [Esos son los primeros 2 registros; siguen 18 más.]
  
 La línea inicial de la respuesta, La línea inicial de la respuesta,
Line 157: Line 229:
   #       ​151 ​    ​0 ​      0   #       ​151 ​    ​0 ​      0
  
-indica ​...+es un **comentario** (lo sabemos pues comienza con '#'​),​ que nos proporciona información acerca de la consulta realizada:​ 
 + 
 +  * '​151'​ es la **cantidad estimada de registros** restantes para la presente consulta, incluyendo los recién leídos. 
 +  * '​0'​ es el **número de la consulta**, que puede ser usado para referirse a ella desde futuras consultas; veremos que en sucesivas consultas este número va aumentando. 
 +  * **record id de truncamiento**:​ si no es '​0',​ es el record id donde la búsqueda fue truncada debido al límite de tamaño para el conjunto de resultados.
  
 A continuación aparece el primer registro de la base ''​test'':​ A continuación aparece el primer registro de la base ''​test'':​
Line 188: Line 264:
 y así sucesivamente,​ hasta llegar al número 20. y así sucesivamente,​ hasta llegar al número 20.
  
 +Vemos que cada registro se inicia con una línea que comienza con un número negativo de la forma **-n**, donde **n** es la cantidad de campos del registro. Debe notarse que esa línea inicial es también un campo.
  
-Al usar una //consulta vacía//, estamos recuperando todos los registros de la base (véase [[http://​malete.org/​Doc/​Protocol|Protocol]]). +Cuando repetimos el mensaje ''​test.Q''​ (seguido, como en todos los casos, por doble Enter), obtenemos los siguientes 20 registros de la base ''​test''​, comenzando por el 21:
- +
-Cuando repetimos el mensaje ''​test.Q''​ (seguido, como en todos los casos, por doble Enter), obtenemos los siguientes 20 registros de la base ''​test'':​+
  
   test.Q   test.Q
Line 213: Line 288:
   70      Shachori, A.Y.   70      Shachori, A.Y.
   70      Michaeli, A.   70      Michaeli, A.
 +  ​
 +  [Siguen los registros hasta el 40.]
 +
 +Vemos que la línea inicial de la respuesta, el comentario:
 +
 +  #       ​131 ​    ​0 ​      0
 +
 +ahora nos indica que restan 131 registros (los primeros 20 ya los habíamos recibido), y el identificador de la consulta sigue siendo '​0',​ pues seguimos solicitando resultados de la consulta anterior.
  
-[siguen hasta el registro 40]+==== Consultas no vacías ====
  
-Pasemos ​ahora una consulta no vacía: "​test.Q water" (atención: luego de la Q hay un TAB):+Hagamos ​ahora una consulta no vacía, con el término **water**:
  
   test.Q water   test.Q water
Line 237: Line 320:
  
 Lo que hemos hecho es una búsqueda por el término "​water",​ y lo que vemos es una Lo que hemos hecho es una búsqueda por el término "​water",​ y lo que vemos es una
-lista de los 14 record-id encontrados (record-id es equivalente al MFN de cds/isis).+lista de los 14 record-id encontrados (record-id es equivalente al MFN de cds/​isis). ​A diferencia del ejemplo previo, donde directamente recibíamos los registros completos, aquí solamente tenemos acceso a la lista de MFNs. Pero también podemos recuperar los registros:
  
-Pasemos a la siguiente consulta: +   test.Q ​ water? 
- +    
-  ​test.Q plant water?+   # ​      ​14 ​     2       0 
 +   ​-9 ​     4@1043 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <​hygrometers><​plant transpiration><​moisture><​water balance>​ 
 +   ​24 ​     <An> Electric hygrometer apparatus for measuring water-vapour loss from plants in the field 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 247-257 ​    ​billus. 
 +   ​70 ​     Grieve, B.J. 
 +   ​70 ​     Went, F.W.
   ​   ​
-  ​#       ​2 ​      ​2 ​      0 +  ​[... siguen 13 registros ​más.]
-  -9      5@1372 +
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium +
-  50      Inclbibl. +
-  69      <plant physiology><​soil moisture><​plant transpiration><​evapotranspiration><​measurement and instruments>​ +
-  24      Anti-transpirants as a research tool for the study of the effects of water stress on plant behaviour +
-  26              c1965 +
-  30              ap269-274 ​    ​billus. +
-  70      Gale, J. +
-  70      Poljakoff-Mayber,​ A. +
-  -8      25@7420 +
-  24      <The> Heat, water and carbon dioxide budget of plant cover: methods and measurements +
-  26              c1965 +
-  30              ap. 495-512 ​    ​billus. +
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium +
-  50      Incl. bibl. +
-  69      Paper on: <energy balance><​water balance><​carbon dioxide><​plant physiology><​heat transfer><​measurement and instruments>​ +
-  70      Baumgartner,​ Albert +
- +
- +
-Hemos realizado la consulta **plant water?**, y hemos recuperado los registros ​5 y 25. Esta consulta consta de dos partes: una **búsqueda** (plant water) y un **filtro** (lo que aparece a la derecha del signo **?**; en este caso, el filtro es vacío).+
  
-Obtuvimos los registros, y no solamente los identificadores. Véase Protocol.txt:​ 
  
-  //If no filter is specified (i.e. no '?')only record ids are returned.//+El signo de interrogación **?** divide la consulta en dos partes: a la izquierda la **expresión de búsqueda**a la derecha un **filtro**. En este caso el filtro es vacío, pero la sola presencia del signo ? hace que el servidor Malete nos envíe los registros.
  
-El uso del signo '?' ​hace que el servidor envíe los registros.+  If no filter is specified (i.e. no '?'​), only record ids are returned.
  
  
-Siguiente ​consulta, de acuerdo con la sugerencia del archivo ''​README'':​+La siguiente ​consulta, de acuerdo con la sugerencia del archivo ''​README''​, es:
  
   test.Q ​ plant + dev$   test.Q ​ plant + dev$
Line 298: Line 369:
   0       132   0       132
  
-Como hay 26 registros ​sólo recibimos los identificadores de los primeros 20, +De acuerdo con el comentario que encabeza la respuesta, ​hay 26 registros ​en el conjunto de resultados de nuestra consulta; como sólo recibimos los identificadores de los primeros 20 registros, enviamos un nuevo mensaje ​**test.Q**, sin indicar parámetros:
-enviamos un nuevo mensaje ​"test.Q":+
  
   test.Q   test.Q
Line 311: Line 381:
   0       150   0       150
  
 +Tal como habíamos visto más arriba al usar una consulta vacía, el mensaje test.Q no crea una nueva consulta (de ahí que el número de identificación siga siendo '​3'​),​ sino que continúa solicitando más resultados para la consulta actual, si los hay.
  
 Si reiteramos el mensaje **test.Q**, ahora que ya hemos agotado los resultados para la última consulta, obtenemos: Si reiteramos el mensaje **test.Q**, ahora que ya hemos agotado los resultados para la última consulta, obtenemos:
Line 337: Line 408:
 donde //query// es una expresión en el lenguaje de consulta de Malete (véase [[http://​malete.org/​Doc/​Query|Query]]). donde //query// es una expresión en el lenguaje de consulta de Malete (véase [[http://​malete.org/​Doc/​Query|Query]]).
  
-La fila de números que encabeza la respuesta a un mensaje Q tiene el significado 
-siguiente (véase [[http://​malete.org/​Doc/​Protocol|Protocol]]):​ 
  
-  *  número estimado ​de registros ​restantes, incluyendo los que acaban ​de ser leídos +==== Lectura ​de registros ​==== 
-  *  ​número de la consulta, por el cual se la puede referenciar + 
-   ​truncation record id+Además ​de recuperar registros a través de una consulta, podemos también solicitar al servidor Malete registros específicos en base a su id o MFN. Usamos para esto el mensaje **R** (//​read//​). 
 + 
 +En este ejemplo, solicitamos el registro 4: 
 + 
 +  ​test.R*TAB*4 
 +    
 +   W 
 +   ​-9 ​     4@1043 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <​hygrometers><​plant transpiration><​moisture><​water balance>​ 
 +   ​24 ​     <An> Electric hygrometer apparatus for measuring water-vapour loss from plants in the field 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 247-257 ​    ​billus. 
 +   ​70 ​     GrieveB.J. 
 +   ​70 ​     Went, F.W. 
 + 
 + 
 +Y en este otro ejemplo, solicitamos 2 registros comenzando ​por el 10: 
 + 
 +   ​test.R*TAB*10*TAB*2 
 +    
 +   W 
 +   ​-12 ​    ​10@2950 
 +   ​24 ​     Modifications to the relative turgidity technique with notes on its significance as an index of the internal water status of leaves 
 +   ​25 ​     20 
 +   ​25 ​     30 
 +   ​25 ​     40 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 331-342 ​    ​billus. 
 +   ​70 ​     Slatyer, R.O. 
 +   ​70 ​     Barrs, H.D. 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     <plant physiology><​moisture><​leaves>​ 
 +   ​-9 ​     11@3306 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <plant physiology><​water balance><​pressure><​hygrometers>​ 
 +   ​24 ​     Measurement of water stress in plants 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 343-351 ​    ​billus. 
 +   ​70 ​     Kramer, P.J. 
 +   ​70 ​     Brix, H. 
 + 
 + 
 +También podemos leer una secuencia arbitraria de registros, donde los MFN no necesitan ser consecutivos. Por ejemplo, aquí leemos los registros 3, 7 y 9: 
 + 
 +   ​test.R 
 +   ​0*TAB*3 
 +   ​0*TAB*7 
 +   ​0*TAB*9 
 +    
 +   W 
 +   ​-8 ​     3@624 
 +   ​24 ​     Control of conditions in the plant chamber: fully automatic regulation of wind velocity, temperature and relative humidity to conform to microclimatic field conditions 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 233-238 ​    ​billus. 
 +   ​70 ​     Bosian, G. 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <plant physiology><​moisture><​temperature><​wind><​measurement and instruments><​ecosystems>​ 
 +   ​-9 ​     7@2075 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <plant physiology><​carbon dioxide><​chemical analysis><​photosynthesis>​ 
 +   ​24 ​     Colorimetric determination of CO2 exchange in field and laboratory 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 291-298 ​    ​billus. 
 +   ​70 ​     SlavÝk, B. 
 +   ​70 ​     Catsky, J. 
 +   ​-7 ​     9@2687 
 +   ​44 ​     Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
 +   ​50 ​     Incl. bibl. 
 +   ​69 ​     Paper on: <plant physiology><​soil>​ 
 +   ​24 ​     <A> New type of porometer for measuring stomatal opening and its use in irrigation studies 
 +   ​26 ​             c1965 
 +   ​30 ​             ap. 325-329 ​    ​billus. 
 + 
 + 
 + 
 +===== Más recursos ===== 
 + 
 +http://​solsoft.co.cr/​foros/​list.php?​2 
 + 
 +http://​sourceforge.net/​project/​showfiles.php?​group_id=11257 
 + 
 + 
 +{{tag>​malete}}
malete_-_primeros_pasos.1206387079.txt.gz · Last modified: 24/03/2008 00:00 (external edit)