<div dir="ltr">Hola Luis,<div><br></div><div>Hago eco de las palabras de Enrique.</div><div><br></div><div>Añado, ademas, que esto es una desmostración clara de lo que significa programar "de a deveras". </div><div><br></div><div>El máximo organismo de CyT del País tendría que poder tener a su disposición gente con capacidades, sino iguales a las tuyas --- cosa que sería difícil :) --- por lo menos equivalentes en conocimientos en las áreas de cómputo y tecnologías de la información.</div><div><br></div><div>Saludos!</div><div>Gloria</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-05-06 9:37 GMT-05:00 Enrique López-Moreno <span dir="ltr"><<a href="mailto:elmlvi@gmail.com" target="_blank">elmlvi@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Luis:<div><br></div><div>Es admirable!</div><div><br></div><div>Esto es lo que entiendo por la cultura científica: no importa la dificultad, ni la propia área; es la razón y creatividad, el interés por la soluciones, y un espíritu inquisidor por otorgar una salida a todos, . . </div><div><br></div><div>Si yo fuera el Director de CONACyT, no podría permanecer indiferente.</div><div><br></div><div>TODA MI ADMIRACIÓN!!!</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">2018-05-05 17:48 GMT-05:00 Luis Mochan <span dir="ltr"><<a href="mailto:mochan@icf.unam.mx" target="_blank">mochan@icf.unam.mx</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Les presumo mi nuevo programa.<br>
<br>
Se llama re2yaml y sirve para capturar una lista de publicaciones en<br>
un formato arbitrario que pueda describirse como una expresión<br>
regular. Por ejemplo, para capturar la lista de publicaciones que me<br>
envió Carlos Arias usé el comando<br>
<br>
<a href="http://re2yaml.pl" rel="noreferrer" target="_blank">re2yaml.pl</a> -o carlosArias.yaml -i carlosArias.txt \<br>
-f 'autores año título revista volumen páginas doi' \<br>
-r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:d<wbr>oi\s*:\s*(.*))?$' \<br>
-a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>'<br>
<br>
que se ve espantoso, pero se los explico a los curiosos y pacientes:<br>
<br>
<a href="http://re2yaml.pl" rel="noreferrer" target="_blank">re2yaml.pl</a><br>
es el nombre de mi programa<br>
<br>
-o carlosArias.yaml<br>
indica el nombre del archivo donde dejar la información capturada<br>
<br>
-i carlosArias.txt<br>
es el nombre donde puse su lista de publicaciones (convertida de un<br>
.doc)<br>
<br>
-f 'autores año título revista volumen páginas doi'<br>
significa que a Carlos le gusta poner primero los autores, luego el<br>
año, luego el título, etc.<br>
<br>
-r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:d<wbr>oi\s*:\s*(.*))?$' \<br>
es donde empieza la diversión. Ésta es una expresión regular que<br>
define la estructura detallada de cómo escribe Carlos sus<br>
publicaciones. La explicación va más abajo.<br>
<br>
-a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>' \<br>
Esta es una expresión regular para extraer cada uno de los autores<br>
de una lista de autores.<br>
<br>
Lo acabo de probar y aparentemente funciona. La dificultad es que no<br>
somos muy consistentes en cómo escribimos y eso lleva a<br>
ambigüedades. Tuve que meterle mano a la lista de Carlos para que el<br>
programa pudiera con ella. Me inventé las expresiones regulares para<br>
que funcionaran con los primeros artículos, y entonces tuve que<br>
modificar algunos de los últimos artículos, pues su estilo ha cambiado<br>
a lo largo del año. Con todo y todo, hacer el programa desde cero,<br>
hacer y probar las expresiones regulares y condicionar la lista de<br>
publicaciones me tomó arribita de 4hrs. El programa debe servir sin<br>
mayor modificación para las otras listas que me han enviado. Luego les<br>
cuento si es cierto o no.<br>
<br>
Las expresiones regulares son bastante ilegible, pero su gracia es que<br>
en un par de líneas puede uno capturar la esctructura de la<br>
lista. Sólo es necesario hallar y registrar la expresión regular que decriba cada<br>
estilo de CV y checar que el CV cumpla consistentemente con dicha<br>
expresión :)<br>
<br>
<br>
Va la explicación.<br>
<br>
Expresión regular para capturar los artículos:<br>
<br>
-r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:d<wbr>oi.*)?\s*$'<br>
<br>
Explicación:<br>
^ Principio <br>
\d* Me salto numeración.<br>
\. Me salto un punto.<br>
\s* Me salto espacios.<br>
(.*?\s+) Capturo autores separados por espacios <br>
(\d+) hasta hallar el año, el cual capturo.<br>
[\s\.]+ Me salto espacios y/o puntos<br>
(.*?) y capturo el título<br>
\. terminado en un punto y<br>
\s+ seguido de espacios y<br>
(\d+) del número de volumen. Este puede ir seguido de <br>
\s* espacios y<br>
(?:\(\s*\d+\s*\)) del número entre paréntesis y con posibles espacios.<br>
? El número es opcional<br>
: Luego siguen dos puntos,<br>
\s* espacio opcional, y<br>
(.*?) las páginas, que capturo. Finalmente pueden haber<br>
\s* espacios adicionales<br>
(?:doi\s*:\s*(.*))? y un doi opcional. Siguen<br>
\s* espacios opcionales y<br>
$ el final del registro<br>
<br>
<br>
Expresión regular para separar los autores:<br>
<br>
-a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>'<br>
<br>
Hay un<br>
(?:and)? 'and' opcional para el último autor.<br>
( Inicia la captura con <br>
.*? el nombre<br>
, seguido de una coma<br>
\s+ seguido de uno o más espacios<br>
.*? seguido de lo que sea<br>
[,.]+ hasta hallar un punto o una coma o ambos.<br>
) Termina la captura<br>
\s+ y siguen espacios<br>
<br>
El orden de los campos capturados es<br>
<br>
-f 'autores año título revista volumen páginas'<br>
<br>
Si por ejemplo corro el programa sobre<br>
<br>
127. Aponte, FE, Taboada, B, Espinoza, MA, Arias-Ortiz, MA, Monge-Martínez, J, Rodríguez-Vázquez, R, Díaz-Hernández, F, Zárate-Vidal, F, Wong-Chew, RM, Firo-Reyes, V, del Río-Almendárez, CN, Gaitán-Meza, J, Villaseñor-Sierra, A, Martínez-Aguilar, GM, García-Borjas, M, Noyola, DE, Pérez-Gónzalez, LF, López, S, Santos-Preciado, JI, Arias, CF. 2014. Rhinovirus is an important pathogen in upper and lower respiratory tract infections in Mexican children. Virology Journal. 2015, 12:31. DOI: 10.1186/s12985-015-0262-z.<br>
<br>
el resultado es<br>
<br>
-<br>
autores:<br>
- 'Aponte, FE,'<br>
- 'Taboada, B,'<br>
- 'Espinoza, MA,'<br>
- 'Arias-Ortiz, MA,'<br>
- 'Monge-Martínez, J,'<br>
- 'Rodríguez-Vázquez, R,'<br>
- 'Díaz-Hernández, F,'<br>
- 'Zárate-Vidal, F,'<br>
- 'Wong-Chew, RM,'<br>
- 'Firo-Reyes, V,'<br>
- 'del Río-Almendárez, CN,'<br>
- 'Gaitán-Meza, J,'<br>
- 'Villaseñor-Sierra, A,'<br>
- 'Martínez-Aguilar, GM,'<br>
- 'García-Borjas, M,'<br>
- 'Noyola, DE,'<br>
- 'Pérez-Gónzalez, LF,'<br>
- 'López, S,'<br>
- 'Santos-Preciado, JI,'<br>
- 'Arias, CF.'<br>
año: '2015'<br>
doi: 10.1186/s12985-015-0262-z.<br>
páginas: '31.'<br>
revista: 'Virology Journal,'<br>
título: 'Rhinovirus is an important pathogen in upper and lower respiratory tract infections in Mexican children'<br>
volumen: '12'<br>
-<br>
<br>
En este formato es trivial añadirle el ISSN: 1743-422X y enviarlo a<br>
conacyt para que lo carguen en su CVU.<br>
<br>
Más tarde pruebo las otras listas que me enviaron. <br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
-- <br>
<br>
o<br>
W. Luis Mochán, | tel:(52)(777)329-1734 /<(*)<br>
Instituto de Ciencias Físicas, UNAM | fax:(52)(777)317-5388 `>/ /\<br>
Apdo. Postal 48-3, 62251 | (*)/\/ \<br>
Cuernavaca, Morelos, México | <a href="mailto:mochan@fis.unam.mx" target="_blank">mochan@fis.unam.mx</a> /\_/\__/<br>
GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16 C2DF 5F0A C52B 791E B9EB<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
Mensaje público enviado a la lista Cvu<br>
<a href="mailto:Cvu@em.fis.unam.mx" target="_blank">Cvu@em.fis.unam.mx</a><br>
<a href="http://em.fis.unam.mx/cgi-bin/mailman/listinfo/cvu" rel="noreferrer" target="_blank">http://em.fis.unam.mx/cgi-bin/<wbr>mailman/listinfo/cvu</a><br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_8625263070597631935gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Cordialmente<div><br></div><div>Dr. Enrique López Moreno</div><div>Profesor Titular "B", T. C.</div><div>Departamento de Física</div><div>Facultad de Ciencias. UNAM</div></div></div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
Mensaje público enviado a la lista Cvu<br>
<a href="mailto:Cvu@em.fis.unam.mx">Cvu@em.fis.unam.mx</a><br>
<a href="http://em.fis.unam.mx/cgi-bin/mailman/listinfo/cvu" rel="noreferrer" target="_blank">http://em.fis.unam.mx/cgi-bin/<wbr>mailman/listinfo/cvu</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">Gloria Koenigsberger<div>Instituto de Ciencias Físicas</div><div>Universidad Nacional Autónoma de México</div><div>Avenida Universidad S/N, Colonia Chamilpa<br></div><div>Cuernavaca, Morelos, 62210, Mexico</div></div></div></div></div>
</div>