Apéndice

Describimos aquí los pasos tomados para implementar una rutina automatizada capaz de rastrear, en el Diario de los Debates, las votaciones nominales celebradas en el pleno. Empezamos determinando, a partir de la página web de la Cámara (http://cronica.diputados.gob.mx/), las fechas cuando la Cámara estuvo en sesiones regulares o extraordinarias en las LVII, LVIII y LIX Legislaturas. Una conexión al archivo que contiene el Diario de los Debates de cada día (o la versión estenográfica para las raras ocasiones en que la conexión al Diario falla) fue abierta para leer las líneas de código html y componer un objeto de R que llamamos dd. Procedimos después al análisis sintáctico de las líneas de texto en el objeto dd, con la ayuda de expresiones regulares (Friedl, 2006), en busca del aviso de que una votación nominal se va a celebrar. Los votos individuales de los diputados no están disponibles en el Diario, pero sí la moción que se somete a consideración del pleno y el resultado de la votación con los votos que obtuvo a favor y en contra agregados. Esto nos proporcionó un listado de las votaciones celebradas para después compararlas con las reportadas por la Gaceta.

Leímos (esto es, humanamente) una muestra del Diario de los Debates para detectar los patrones utilizados comúnmente cuando se anuncia una votación nominal. Después de que los diputados que fueron reconocidos para hablar en pro y en contra de la moción lo han hecho, el presidente lanza la pregunta de si se considera el tema suficientemente debatido, y el secretario de la Cámara convoca a los diputados a votar con un anuncio protocolario que más o menos se lee así: "Ábrase el sistema electrónico de votación y háganse los avisos a que se refiere el artículo 144 del Reglamento de la Cámara de Diputados". Antes de la enmienda al reglamento de la Cámara de 2010, el artículo en cuestión era el 161. A menudo se presentan ligeras variaciones al protocolo, como cuando el secretario se brinca alguna palabra o agrega algún adjetivo, así que la búsqueda del patrón fue calibrada, a través de prueba y error, en los Diarios que leímos humanamente. Tres patrones de búsqueda señalaron todas las votaciones, con una excepción que tratamos a continuación. Los tres patrones utilizados fueron los siguientes (grep es una función que ejecuta expresiones regulares en R):

pat1 <- grep(dd, pattern="\\b[ÁAáa]bra\\w*\\b la votaci[oó]n")

pat2 <- grep(dd, pattern="\\b[ÁAáa]bra\\w*\\b el sistema [ed][le][e ][cv] [to][rt][óoa][nc]i[coó][on]")

pat3 <- grep(dd, pattern="[Aa]rt[íi]culo 1[64][14].*de.*[Rr]eglamento")

Esta rutina detectó muchos eventos que no eran votaciones nominales, tales como mociones de quórum —los más comunes— o cualquier mención al artículo 141, 144, 161 o 164 de cualquier ley o reglamento. Estas fueron eliminadas de la lista, reteniendo sólo las votaciones nominales.

Verificamos la exactitud del procedimiento al bajar también los Diarios de los Debates entre el primero de febrero y el 2 de diciembre de 2010, inclusive, para detectar las votaciones celebradas. Estas fueron sesiones que correspondían a la LXI Legislatura, para la cual el universo de 167 votaciones nominales es proporcionado por el Infopal. La rutina automatizada detectó todos los votos salvo uno —una precisión de más de 99 por ciento—. El voto que faltó pertenece al Diario del 15 y 16 de noviembre, cuando el presupuesto anual federal fue tramitado y aprobado en una sesión de 21 horas de duración que involucró discusiones eternas, recesos múltiples y muchas votaciones económicas de procedimiento para intentar introducir enmiendas al dictamen de la comisión. En una instancia, la secretaria convocó a una votación nominal sin hacer el anuncio protocolario correspondiente.