16 junio 2008

ISIS-NBP nota 3

----- Original Message -----
Sent: Sunday, June 15, 2008 3:05 PM
Subject: ISIS-NBP nota 3

En la primera nota de ISIS-NBP [1], se presentaron brevemente las metas y arquitectura del proyecto.
En la segunda nota de ISIS-NBP [2] hemos intentado explicar el concepto de la Célula ISIS-NBP.

    +-----------------------------+
    |          Databases          |
    |              |              |
    | Console---Engine---Gateway  |
    +-----------------------------+

    ISIS-NBP Cell

En esta tercera nota, nos enfocaremos en la
Consola Interactiva.

La consola es una interfaz basada en líneas de comandos que proveen acceso directo e interactivo a las bases de datos administradas por la Célula. La Consola puede correr en la misma máquina donde está instalada la Célula ISIS-NBP, o puede correrse desde una máquina diferente (remota) dado que ambas máquinas sean accesibles en red.

La mayoría de los usuarios de ISIS-NBP van a "mirar y tocar" registros mediante la consola, porque es rápido e intuitivo. Los usuarios avanzados aprenderán a realizar tareas de mantenimiento e incluso desarrollar breves scripts para extender la funcionalidad del ISIS-NBP. Esto es posible porque en la Consola hay incluido un lenguaje de programación de propósito general. 

Antes de seguir adelante, hagamos una demostración de la Consola.

Para iniciar la consola interactiva de ISIS-NBP, abra un ambiente de trabajo (terminal Unix, o ventana DOS de Windows), y escriba:
 
   pymx –i

El nombre "pymx" es un homenaje al utilitario ampliamente conocido "mx" [3], y al lenguaje de programación Python [4] usado en el desarrollo de ISIS-NBP. Este nombre puede que cambie en el futuro, quizá algo más intuitivo como "isisconsole". Una nota importante:
no es necesario conocer programación Python para usar ISIS-NBP.

Tan pronto la Célula comenzó en modo interactivo, aparece el siguiente prompt:

     Welcome to ISIS-NBP Cell 0.7.0 Interactive Console
     Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)
     [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]

Uso de la consola para verificar e inspeccionar las colecciones.

Digite 'collection' para ver un diccionario con todas las colecciones disponibles.

Digite  '<Ctrl-D>'  o  'exit()'  y luego   '<enter>'  para salir.
Las colecciones disponibles son:
sample, test
 

In [1]:


Las líneas precedidas por "In [number]:" indican que la consola está esperando por sus comandos. Al escribir  <return> o <enter>  indica que el comando que escribió tiene que ejecutarse. Los resultados se presentarán con el prefijo: "Out [number]:".

Por ejemplo, revisemos la colección (siempre) disponible llamada sample
 
     In [1]: sample
     Out[1]: Collection sample with databases: cds.mst, xf0.mst

Ahora miremos la base de datos "
cds" dentro de la colección sample.

     In [2]: sample.cds
     Out[2]: cds (next mfn:151, type:0) in /pyisis/sample/cds.mst

También podemos mirar los contenidos de un registro, haciendo:

     In [3]: sample.cds[1]
     Out[3]: mfn=1 length=8 (active)
     69: Paper on: <plant physiology><plant transpiration><measurement
         and instruments>
     70: Magalhaes, A.C.
     70: Franco, C.M.
     44: Methodology of plant eco-physiology: proceedings of the
         Montpellier Symposium
     50: Incl. bibl.
     24: Techniques for the measurement of transpiration of
         individual plants
     26: ^aParis^bUnesco^c-1965
     30: ^ap. 211-224^billus.

Si solamente estamos interesados en un campo o subcampo en particular, hay varias formas de lograr el mismo resultado.

     In [4]: sample.cds[1][26]
     Out[4]: ^aParis^bUnesco^c-1965

     In [5]: sample.cds[1].v26
     Out[5]: ^aParis^bUnesco^c-1965

     In [6]: sample.cds[1].v26.a
     Out[6]: Paris

     In [7]: sample.cds[1].v26["a"]
     Out[7]: Paris

     In [8]: sample.cds[1][26]["a"]
     Out[8]: Paris


Si conoce los comandos básicos de formato de salida de ISIS, entendrá los ejemplos muy rápidamente, porque son muy muy muy similaes … muy


Sintaxis:  sample.cds[mfn] [tag]  En el ejemplo de arriba, registro 1, tag del campo 26
           sample.cds[mfn].vtt    Sintaxis alternativa

Prueba: Hay dos formas alternativas para obtener el dato de un subcampo. ¿Podría explicarlas?
Nota: es posible mezclar los modos alternativos para extraer campos y subcampos, funcionan en forma equivalente.

Tambien podemos crear "alias" para los recursos que usaremos con frecuencia.

     In [12]: base = sample.cds
     In [13]: r = base[3]

     In [14]: r
     Out[14]: mfn=3 length=7 (active)
     69: Paper on: <plant physiology><moisture><temperature><wind>
         <measurement and instruments><ecosystems>
     70: Bosian, G.
     44: Methodology of plant eco-physiology: proceedings of the
         Montpellier Symposium
     50: Incl. bibl.
     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.
     In [15]: r.v30.b
     Out[15]: illus.

Note en el ejemplo de arriba que no todos los compandos input (In) generan salidas (Out). En la próxima nota seguiremos explorando la Consola.

Esta nota es un incentivo, la tercera de una serie que dará detalles adicionales de la Célula ISIS-NBP, las metas del proyecto y el estado de desarrollo. En la sección de referencias abajo, le damos direccones de las notas anteriores.<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
Referencias

[1] 1st Isis-NBP nugget
     https://listserv.surfnet.nl/scripts/wa.cgi?A2=ind0805&L=cds-isis&D=0&T=0&P=4926

[2] 2nd Isis-NBP nugget
     https://listserv.surfnet.nl/scripts/wa.cgi?A2=ind0806&L=cds-isis&D=0&T=0&P=2409

[3] mx es el utilitario principal del paquete CISIS desarrollado por BIREME
     http://bvsmodelo.bvsalud.org/php/level.php?lang=es&component=31&item=1

[3] Python programming language
     http://www.python.org

Esta nota fue preparada por Rodrigo Sienra, consultor por Bireme para ISIS-NBP
 
Saludos

Ernesto Spinak                
spinaker@adinet.com.uy      
Montevideo, Uruguay           
tel/fax  (5982) 622-3352      
celular  (598)  99612238      
 

No hay comentarios.: