WARCProcessor is a platform independent integrative tool providing specific support to scientists that need to perform experiments in the field of web spam research.
Una vez que el archivo comprimido que contiene el corpus se ha subido correctamente a API, este debe ser eliminado. Esto evitará tener que comprobar si se está duplicando un archivo o no, lo que causa una excepción.
Si después de balancear un corpus, la lista de spam o ham no dispone de páginas, no se crea su carpeta. Al no crearse e intentar subir el corpus, lo primero que se comprueba es si existen esas dos carpetas. Debe basarse la comprobación en el número de páginas del corpus, si alguno es 0, la carpeta puede no existir.
Hay dos maneras de cargar una configuración en la aplicación:
La pantalla inicial donde se ofrecen los archivos de configuración más recientes para ser cargados.
La opción Load del menú principal.
Ninguna de las dos funciona correctamente. Si la configuración que se ha cargado tiene definido un directorio de salida (Output folder) que no sea el directorio por defecto (RESULT) y se ejecuta la aplicación sin haber guardado, el corpus se genera en la carpeta por defecto.
Cuál es el comportamiento esperado?
Al cargar la configuración y ejecutar la aplicación, ésta debería respetar los campos de la configuración que se ha cargado.
El corpus debe balancearse a nivel de página, no a nivel de WARC. Para ello será necesario, una vez finalizada la ejecución, leer los WARC generado, almacenar las páginas en dos estructuras de datos, una para spam y otra para ham, y balancear ambas estructuras según los porcentajes establecidos en la configuración general.
Debe crearse un modal que permita introducir las credenciales de un usuario (email y password) para poder loguearse.
Cuando el usuario pulse "Aceptar", esto debe producir un petición POST a la API que, si las credenciales son correctas, permita recuperar un token válido.
Por defecto el modal debe tener las credenciales de demo/demo. El usuario logueado en el sistema en principio se guardará en memoria y no en un archivo de configuración por motivos de seguridad.
Request: POST: /login
Body:
Durante la subida de un corpus pesado debe mostrarse el progreso de la subida. Este debe basarse en el porcentaje real y además debe ofrecerse la posibilidad de cancelar dicha subida.
En la opción Output del apartado de Configuration, crear un nuevo campo Corpus name. El nombre especificado se concatenará a la ruta de Output folder y servirá como carpeta raíz para _spam_ y _ham_. También debe ir el archivo de configuración, ya que esta es la carpeta que se va a comprimir y subir a la API. Importante comprobar que el nombre que ha puesto el usuario no existe, no se pueden sobrescribir las carpetas.
Deben añadirse nuevos atributos a las cabeceras de los archivos WARC generados por la aplicación.
En la cabecera warcinfo (cabecera global y única del archivo WARC):
Content-Type: application/warc-fields.
WARC-All-Language: Donde debe figurar el idioma del propio WARC. Este idioma puede estar compuesto por una lista con el conjunto de idiomas de las páginas que componen el WARC. NO se refiere a los idiomas seleccionados en la configuración del Datasource.
WARC-All-Content_type: Todos los tipos de registros que se detallan en el fichero MIME/Content-type.
En la cabecera response (cabecera de cada página que compone el WARC):
Los idiomas de las páginas web siempre son del formato en-US, con un máximo de 5 caracteres. Para controlar el caso en el que la etiqueta lang del HTML no tenga un valor real, se limitará el número de caracteres que puede contener esta cabecera.
Ahora mismo se puede subir cualquier carpeta a la API. Cuando se selecciona un directorio con un corpus para ser subido, es necesario confirmar que se trata de un directorio que contiene un corpus y que ha sido generado por WARCProcessor:
Obteniendo su archivo resumen.
Comprobando que existen los directorios de SPAM y HAM que figuran en dicho archivo de configuración.