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]
Line 1: Line 1:
-====== 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** 
- 
- 
-Vamos a intentar describir paso a paso un primer encuentro con Malete. 
- 
-===== Setup ===== 
- 
-Malete puede descargarse desde [[http://​malete.org/​Doc/​DownLoad|http://​malete.org/​Doc/​DownLoad]],​ y la versión más reciente (en marzo de 2008) es la 1.0.3. Obtenemos el archivo ''​malete.1.0.3.tgz'',​ y lo descomprimimos:​ 
- 
-  tar xzf malete.1.0.3.tgz 
- 
-Vemos que se crean cuatro directorios:​ 
- 
-  * ''​doc'':​ aquí se encuentra la documentación;​ se trata de archivos de texto con una sintaxis al estilo wiki, a partir de los cuales se genera la versión HTML que está en el [[http://​malete.org/​|sitio web de Malete]]. 
- 
-  * ''​mlt'':​ contiene el código fuente de Malete (archivos ''​*.c''​ y ''​*.h''​),​ y el archivo ''​Makefile''​. 
- 
-  * ''​php'':​ aquí encontramos un par de demos y una biblioteca PHP que implementa funciones de lectura, escritura, consulta (query) e indización. 
- 
-  * ''​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: 
- 
-  * ''<​db_name>​.m0d'':​ malete options (record 0) file (collation y qué más?) 
-  * ''<​db_name>​.mqt'':​ malete query terms 
-  * ''<​db_name>​.mrd'':​ malete record data 
- 
-Es importante notar que se trata de **archivos de texto**. 
- 
-En el directorio principal está el archivo ''​README'',​ que contiene unas indicaciones para que podamos comenzar a interactuar con Malete: 
- 
-  make -C mlt server 
-  ​ 
-  then check out php/​demo.php 
-  or telnet localhost 2042 
-  and type (be careful to use a tab after the Q with queries!): 
-  test.Q 
-  ​ 
-  test.Q 
-  ​ 
-  test.Q water 
-  ​ 
-  test.Q plant water? 
-  ​ 
-  test.Q plant + dev$ 
-  ​ 
-  test.Q 
- 
-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 ===== 
- 
-Comenzamos entonces con el comando 
- 
-  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''​ ...? 
- 
-<​note>​ 
-Para que esto funcione, el sistema debe contar con las herramientas necesarias para llevar a cabo la compilación. Por ejemplo, en una instalación fresca de Ubuntu Dapper tuve que instalar dos paquetes: 
- 
-  sudo apt-get install gcc 
-  sudo apt-get install build-essential 
-</​note>​ 
- 
-Una vez concluida la compilación,​ el mensaje final es 
- 
-  listening on '​*:​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: 
- 
-  * 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 de ''​cds.m0d''​ y ''​cds.mrd'',​ respectivamente,​ mientras que 
- 
-  * ''​test.mqd''​ se genera a partir de ''​cds.mqt''​ 
-  * ''​test.mrx''​ se genera a partir de ''​test.mrd''​ 
-  * ''​test.mqx''​ se genera a partir de ''​test.mqd''​ y ''​test.m0d''​ 
- 
-===== La base de pruebas ===== 
- 
-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/ 
-  $ CDSUNIX=1 
-  $ export CDSUNIX 
-  $ make -C mlt server 
- 
-Ahora exportamos la base ''​cds'',​ de Malete a Isis: 
- 
-  $ bin/malete cdsexp cds -ftest/ 
-  $ mx test/cds +control 
-  *test/cds 
-   ​nxtmfn nxtmfb nxtmfp ​ t  reccnt mfcxx1 mfcxx2 mfcxx3 ​   RC 
-     ​152 ​   122    320   ​0 ​   150      0      0      0      0 
-  .. 
- 
-¿La base tiene 151 registros? No, solamente 150, pero hay un error en la base creada por Malete: 
- 
-  $ mx test/cds "​pft=mfn,​x2,​v24(8,​8)"/​ from=148 now 
-  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 
-  ​ 
-  fatal: recread/​read 
- 
-===== La primera sesión ===== 
- 
-Tenemos pues nuestro servidor Malete escuchando en el puerto 2042. Vamos a ver qué sucede al establecer una conexión vía telnet. Para esto abrimos otra consola, y en ella: 
- 
-  $ telnet localhost 2042 
-  Trying 127.0.0.1... 
-  Connected to localhost. 
-  Escape character is '​^]'​. 
- 
- 
-El servidor Malete está listo para escuchar nuestros mensajes. Empecemos con **test.Q**, seguido por un doble Enter: 
- 
-  test.Q 
- 
-Malete nos responde de esta manera: 
-  ​ 
-  #       ​151 ​    ​0 ​      0 
-  -9      1@0 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <plant physiology><​plant transpiration><​measurement and instruments>​ 
-  24      Techniques for the measurement of transpiration of individual plants 
-  26              aParis ​ bUnesco c-1965 
-  30              ap. 211-224 ​    ​billus. 
-  70      Magalhaes, A.C. 
-  70      Franco, C.M. 
-  -8      2@336 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <plant evapotranspiration>​ 
-  24      <The> Controlled climate in the plant chamber and its influence upon assimilation and transpiration 
-  26              c1965 
-  30              ap. 225-232 ​    ​billus. 
-  70      Bosian, G. 
- 
-[Esos son los primeros 2 registros; siguen 18 más] 
- 
-La línea inicial de la respuesta, 
- 
-  #       ​151 ​    ​0 ​      0 
- 
-indica ... 
- 
-A continuación aparece el primer registro de la base ''​test'':​ 
- 
-<​code>​ 
-  -9      1@0 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <plant physiology><​plant transpiration><​measurement and instruments>​ 
-  24      Techniques for the measurement of transpiration of individual plants 
-  26              aParis ​ bUnesco c-1965 
-  30              ap. 211-224 ​    ​billus. 
-  70      Magalhaes, A.C. 
-  70      Franco, C.M. 
-</​code>​ 
- 
-Luego el segundo registro: 
- 
-<​code>​ 
-  -8      2@336 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <plant evapotranspiration>​ 
-  24      <The> Controlled climate in the plant chamber and its influence upon assimilation and transpiration 
-  26              c1965 
-  30              ap. 225-232 ​    ​billus. 
-  70      Bosian, G. 
-</​code>​ 
- 
-y así sucesivamente,​ hasta llegar al número 20. 
- 
- 
-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'':​ 
- 
-  test.Q 
-  ​ 
-  #       ​131 ​    ​0 ​      0 
-  -8      21@6320 
-  24      <The> Determination of the evaporation from the plant cover and the surface of the soil by relating lysimeter and soil moisture measurements to potential evaporation 
-  26              c1965 
-  30              ap. 461-465 ​    ​billus. 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <​evaporation><​soil moisture><​plant physiology><​plant ecology><​measurement and instruments>​ 
-  70      Klausing, O. 
-  -9      22@6741 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  69      Paper on: <water balance><​water yield><​forests><​plant ecology><​rain><​run-off><​Israel>​ 
-  24      Water yields of forest, Maquis and grass covers in semi-arid regions: a literature review 
-  26              c1965 
-  30              ap. 467-477 ​    ​billus. 
-  70      Shachori, A.Y. 
-  70      Michaeli, A. 
- 
-[siguen hasta el registro 40] 
- 
-Pasemos ahora a una consulta no vacía: "​test.Q water"​ (atención: luego de la Q hay un TAB): 
- 
-  test.Q water 
-  ​ 
-  #       ​14 ​     1       0 
-  0       4 
-  0       5 
-  0       10 
-  0       11 
-  0       12 
-  0       13 
-  0       14 
-  0       16 
-  0       22 
-  0       24 
-  0       25 
-  0       43 
-  0       52 
-  0       57 
- 
-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). 
- 
-Pasemos a la siguiente consulta: 
- 
-  test.Q plant water? 
-  ​ 
-  #       ​2 ​      ​2 ​      0 
-  -9      5@1372 
-  44      Methodology of plant eco-physiology:​ proceedings of the Montpellier Symposium 
-  50      Incl. bibl. 
-  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              ap. 269-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 uso del signo '?'​ hace que el servidor envíe los registros. 
- 
- 
-Siguiente consulta, de acuerdo con la sugerencia del archivo ''​README'':​ 
- 
-  test.Q ​ plant + dev$ 
-  ​ 
-  #       ​26 ​     3       0 
-  0       2 
-  0       3 
-  0       5 
-  0       6 
-  0       8 
-  0       21 
-  0       25 
-  0       27 
-  0       86 
-  0       87 
-  0       100 
-  0       111 
-  0       114 
-  0       118 
-  0       124 
-  0       127 
-  0       128 
-  0       130 
-  0       131 
-  0       132 
- 
-Como hay 26 registros y sólo recibimos los identificadores de los primeros 20, 
-enviamos un nuevo mensaje "​test.Q":​ 
- 
-  test.Q 
-  ​ 
-  #       ​6 ​      ​3 ​      0 
-  0       133 
-  0       134 
-  0       141 
-  0       147 
-  0       149 
-  0       150 
- 
- 
-Si reiteramos el mensaje **test.Q**, ahora que ya hemos agotado los resultados para la última consulta, obtenemos: 
- 
-  test.Q 
-  ​ 
-  #       ​0 ​      ​3 ​      0 
- 
- 
-Repetimos la consulta **plant water**, esta vez sin el signo de interrogación final: 
- 
-  test.Q ​ plant water 
-  ​ 
-  #       ​2 ​      ​4 ​      0 
-  0       5 
-  0       25 
- 
-(en lugar de obtener los 2 registros, como antes, ahora sólo vemos la lista de 
-identificadores). 
- 
- 
-Hemos estado usando un único tipo de mensaje: Q (query message, mensaje de consulta). La forma de este mensaje (para nuestra base ''​test''​) es: 
- 
-  test.Q[*TAB*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 
-  *  número de la consulta, por el cual se la puede referenciar 
-  *  truncation record id 
malete_-_primeros_pasos.txt · Last modified: 05/05/2009 00:00 (external edit)