117
UNIVERSIDAD DE COSTA RICA SISTEMA DE ESTUDIOS DE POSGRADO IDENTIFICACIÓN Y CATEGORIZACIÓN AUTOMÁTICA DE INSTALADORES DE PROGRAMAS PARA APOYAR LA BÚSQUEDA EN UN REPOSITORIO DE SOFTWARE Trabajo final de investigación aplicada sometido a la consideración de la Comisión del Programa de Estudios de Posgrado en Computación e Informática para optar al grado y título de Maestría Profesional en Computación e Informática MANUEL EMILIO DELGADO LÓPEZ Ciudad Universitaria Rodrigo Facio, Costa Rica 2014

UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

UNIVERSIDAD DE COSTA RICASISTEMA DE ESTUDIOS DE POSGRADO

IDENTIFICACIÓN Y CATEGORIZACIÓN AUTOMÁTICA DEINSTALADORES DE PROGRAMAS PARA APOYAR LABÚSQUEDA EN UN REPOSITORIO DE SOFTWARE

Trabajo final de investigación aplicada sometido a la consideración de laComisión del Programa de Estudios de Posgrado en Computación eInformática para optar al grado y título de Maestría Profesional en

Computación e Informática

MANUEL EMILIO DELGADO LÓPEZ

Ciudad Universitaria Rodrigo Facio, Costa Rica

2014

Page 2: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Agradecimientos

A mi familia, por su apoyo incondicional a lo largo de toda mi vida y en todos mis retos;a Nicole por su paciencia y por estar ahí ayudándome en cada etapa de este procesodesde el inicio mismo de esta maestría; a mis amigos con los que he luchado codo a codoy he compartido muchas experiencias; a Edgar por aceptar mi propuesta y guiarme eneste último paso tan importante.

ii

Page 3: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

“Este trabajo final de investigación aplicada fue aceptado por la Comisión delPrograma de Estudios de Posgrado en Computación e Informática de la Universidad deCosta Rica, como requisito parcial para optar al grado y título de Maestría Profesional

en Computación e Informática”

Dra. Gabriela Marín RaventósRepresentante de la Decana

Sistema de Estudios de Posgrado

MSc. Edgar Casasola MurilloProfesor Guía

Dr. Vladimir Lara VillagránDirector

Programa de Postgrado en Computación e Informática

Manuel Emilio Delgado LópezSustentante

iii

Page 4: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Índice general

Índice general iv

Índice de figuras vi

Índice de tablas vii

Índice de Algoritmos viii

1. Introducción 1

2. Justificación 6

3. Marco teórico 83.1. Software Libre y el Código Abierto . . . . . . . . . . . . . . . . . . . . . 83.2. Repositorios de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3. Sistemas Expertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.1. Componentes básicos de un sistema experto . . . . . . . . . . . . 123.3.2. PyKE, motor de inferencia en Python . . . . . . . . . . . . . . . . 14

4. Objetivos 184.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5. Delimitación 19

6. Diseño e implementación del Proyecto 216.1. Software encontrado durante la revisión bibliográfica . . . . . . . . . . . 226.2. Modelo propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256.3. Procedimientos para la implementación del sistema . . . . . . . . . . . . 26

6.3.1. Modelado de categorías . . . . . . . . . . . . . . . . . . . . . . . . 276.3.2. Creación de base de conocimiento y de reglas . . . . . . . . . . . 306.3.3. Desarrollo de módulos . . . . . . . . . . . . . . . . . . . . . . . . 36

iv

Page 5: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

6.4. Experiencia de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7. Evaluación de la precisión del sistema 487.1. Ejecución de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.2. Asignación de puntaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.3. Recolección de las observaciones . . . . . . . . . . . . . . . . . . . . . . . 52

8. Análisis de resultados 548.1. Resultados de los usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . 548.2. Resultados del sistema experto . . . . . . . . . . . . . . . . . . . . . . . . 558.3. Comparación de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 57

9. Conclusiones 62

Bibliografía 66

A. Rúbricas de usuarios 68A.1. Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68A.2. Usuario 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75A.3. Usuario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.4. Usuario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89A.5. Usuario 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96A.6. Usuario 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

v

Page 6: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Índice de figuras

1.1. Flujo de descarga de instaladores: sitio web oficial . . . . . . . . . . . . . 11.2. Flujo de descarga de instaladores: Repositorio réplica . . . . . . . . . . . 21.3. Prototipo de interfaz desarrollado para el curso PF3849 - Diseño de Interfaz

Humano-Computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

6.1. Modelo propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

7.1. Metodología de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

8.1. Duración de la prueba en minutos . . . . . . . . . . . . . . . . . . . . . . 588.2. Efectividad promedio de aciertos . . . . . . . . . . . . . . . . . . . . . . 598.3. Duración aproximada con el repositorio completo de Mozilla . . . . . . . 608.4. Duración aproximada con todos los repositorios en EspejosUCR . . . . . 608.5. Promedio de la efectividad de los usuarios comparado con el sistema . . . 61

vi

Page 7: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Índice de tablas

3.1. Ejemplo de un hecho en formato de sentencia PyKE . . . . . . . . . . . . 153.2. Ejemplo de prueba de objetivos . . . . . . . . . . . . . . . . . . . . . . . 163.3. Regla de encadenamiento hacia atrás en formato de sentencia PyKE . . . 17

6.1. Selección de repositorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.2. Ejemplo de componentes extraídos . . . . . . . . . . . . . . . . . . . . . 29

7.1. Rúbrica: Índice de metadatos . . . . . . . . . . . . . . . . . . . . . . . . 507.2. Ejemplo de índices de metadatos . . . . . . . . . . . . . . . . . . . . . . 51

8.1. Tiempos y aciertos de los usuarios . . . . . . . . . . . . . . . . . . . . . . 57

vii

Page 8: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Índice de algoritmos

6.1. Archivo de base de conocimiento: ejemplo atributo ‘MacOS ’ . . . . . . . 316.2. Archivo de base de conocimiento: ejemplo alias ‘MacOS ’ . . . . . . . . . 316.3. Archivo de base de conocimiento . . . . . . . . . . . . . . . . . . . . . . 326.4. Regla 0: attribute_is . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.5. Regla 1: attribute_alias_is . . . . . . . . . . . . . . . . . . . . . . . . 356.6. Regla 2: attribute_is_version . . . . . . . . . . . . . . . . . . . . . . 396.7. Función: utils.versionsearch . . . . . . . . . . . . . . . . . . . . . . . 406.8. Regla 3: attribute_is_lang . . . . . . . . . . . . . . . . . . . . . . . . 406.9. Función: utils.langsearch . . . . . . . . . . . . . . . . . . . . . . . . . 416.10. Regla 4: attribute_wiki_is . . . . . . . . . . . . . . . . . . . . . . . . 426.11. Función: utils.wikipedia (Algoritmo de implementación) . . . . . . . 436.12. Regla 5: attribute_websort_is . . . . . . . . . . . . . . . . . . . . . . 44

8.1. Ejemplo de ejecución del sistema experto . . . . . . . . . . . . . . . . . . 56

viii

Page 9: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

1

1. Introducción

Las computadoras son parte esencial de la vida cotidiana, pero para que estos dispositivossean realmente útiles necesitan de programas con instrucciones específicas que les diganlo que deben hacer y cómo hacerlo, a estos se les llama software. El software, por logeneral, es instalado en el computador utilizando otro programa de computadora llamadoinstalador, el cual está diseñado para facilitar el proceso al usuario. En la mayoría de loscasos, el software y su instalador están ligados a ciertos factores de las computadoras,tales como sistema operativo o la arquitectura de computadora; por ejemplo, un programahecho para el sistema operativo Windows puede que no funcione en otro sistema operativocomo MacOS X o Linux.

Existen muchos mecanismos para que el usuario obtenga los programas que necesita. Unode ellos es a través del sitio web oficial del desarrollador, donde el usuario generalmentedebe navegar hasta la sección de descargas para seleccionar el instalador que necesita(ver Fig. 1.1).

Figura 1.1.: Flujo de descarga de instaladores: sitio web oficial

Page 10: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

2

Pero esta opción requiere que el usuario conozca de antemano al desarrollador y que elsoftware que este provee sea el que necesita. Otra opción para descargar aplicaciones esla que se conoce como repositorios de software. Estos repositorios son grandes almacenesde programas que los usuarios pueden acceder para buscar una aplicación que tenga lafuncionalidad que resuelva sus necesidades. Al contener mucha variedad de software, losrepositorios deberían ser la primera fuente de búsqueda para el usuario; sin embargo,para aquellos con poco conocimiento técnico puede ser difícil encontrar los instaladoresde programas que necesitan a partir de este mecanismo.

La búsqueda es especialmente compleja en aquellos repositorios que alojan varios proyec-tos de Software Libre u Open Source bajo el esquema de réplicas (Mirrors)1, principal-mente porque, a diferencia de otro tipo de repositorios como SourceForge.net(http://sourceforge.net), son distribuidos y no están diseñados para ser accedidos di-rectamente por usuarios humanos sino por programas especializados. Además, por sunaturaleza no pueden ser reorganizados a gusto del administrador local del repositorio.En este caso, los programas se presentan al usuario como una estructura de directoriosdonde cada proyecto de software posee una carpeta con múltiples instaladores organiza-dos también en directorios (ver Fig. 1.2).

Figura 1.2.: Flujo de descarga de instaladores: Repositorio réplica

En los nombres de los directorios e instaladores contenidos en los repositorios se observanpatrones y términos, como en un rompecabezas. Estos identifican piezas claves, tales co-

1El término “repositorio de tipo réplica” se explicará con más detalle en sec. 3.2 Repositorios de Software

Page 11: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

3

mo el nombre del desarrollador, el sistema operativo o la arquitectura de computadora.Esta información la utilizan usuarios avanzados para encontrar los instaladores que ne-cesitan. Por ejemplo, en la ruta de archivo /mozilla/firefox/releases/31.0/linux-i686/es-ES/firefox-31.0.tar.bz2, los términos identificables de mozilla, firefox,linux-i686, es-ES y 31.0 son de ayuda para identificar el instalador del navegador Fi-refox de Mozila, versión 31.0 en español para el sistema operativo Linux de 32 bits. Otroejemplo es /tdf/libreoffice/stable/4.3.3/rpm/x86/LibreOffice_4.3.3_Linux_x86_rpm.tar.gz, donde se observan terminos distindos pero con conceptos similares comoson tdf, libreoffice, Linux, rpm, x86 y 4.3.3; esto identifican la suit de ofimáticaLibreOffice desarrollada por The Document Foundation (TDF) en su versión 4.3.3 paralos sistemas Linux de 32 bits con adminsitradores de paquetes tipo RPM. Sin embargose pueden notar las diferencias entre la forma en cómo se organizan los instaladores y lostérminos que los identifican.

Asimismo, los desarrolladores oficiales mantienen un catálogo o índice usando sus propiasbases de datos administradas de forma manual, por lo que la manera de organizar losdirectorios y ubicar un instalador son diferentes entre un desarrollador y otro; incluso,entre software perteneciente al mismo desarrollador puede haber diferencias en la estruc-tura de directorios de sus instaladores. También, hay directorios en los repositorios queno contienen instaladores sino que existen para almacenamiento de archivos temporaleso de control, lo que tiende a desubicar más al usuario que busca algún tipo de software.Ante esto, las personas prefieren evitar enfrentarse a la compleja estructura de archivosy la dificultad de encontrar lo que necesitan.

No obstante, pese a todos los obstáculos, a veces los usuarios se ven obligados a accedera estas réplicas para descargar el software directamente y tener acceso a versiones de losprogramas que aún no están publicadas en los sistemas de descarga oficiales o porque,debido a la latencia de red y otras restricciones técnicas, la descarga desde un repositoriolocal, nacional o regional tiende a ser más rápida que desde el repositorio central delproyecto, ubicado en otro país o continente.

Ahora bien, dada la necesidad de facilitar a un usuario no avanzado la descarga de apli-caciones surge, durante el curso de posgrado “Diseño de interfaz humano-computador”,la idea de crear una interfaz amigable con el usuario para los repositorios de software,tomando como objeto de trabajo el servidor de Espejos de Software Libre de la Univer-sidad de Costa Rica (espejosUCR, en http://espejos.ucr.ac.cr). Se ideó, entonces, unaforma en que el usuario pudiera buscar y descargar lo que necesitaba, de acuerdo con laplataforma que requiriera, según su disponibilidad en el repositorio. Al finalizar el curso,se logró un prototipo de interfaz que cumplía con muchos de los objetivos propuestos.

Page 12: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

4

Sin embargo, no existía un método para cargar los datos del repositorio en la interfazde usuario, una manera de unir el contenido del repositorio con los datos mostrados alusuario y que este mecanismo fuera lo más desatendido posible.

Para dar solución al problema planteado arriba, se propuso un sistema recursivo simple,que recorría cada directorio, obtenía los instaladores y los agregaba a la base de datosde la interfaz de usuario. No obstante, como se puede observar en los ejemplos másarriba, cada uno de los directorios de software tiene su propio estándar, con etiquetasy nombres de directorios que no siempre son significativos. Por ejemplo, para referirse ala arquitectura de computadora de un instalador de 32 bits, Mozilla utiliza el término‘i686 ’ o ‘i386 ’, TDF utiliza ‘x86 ’ y otros sólo ‘32’ y algún prefijo o sufijo. Ello limita a unsistema informático que recorra la estructura en forma recursiva e identifique fácilmentelas piezas de todo el repositorio.

Figura 1.3.: Prototipo de interfaz desarrollado para el curso PF3849 - Diseño de InterfazHumano-Computador

También se valoró, como alternativa, la creación de sistemas especializados para cadarepositorio; sin embargo, esto aumentaba la complejidad e ineficiencia del desarrollo e

Page 13: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

5

impactaba su mantenibilidad a lo largo del tiempo. Por tanto, la principal dificultadpara el desarrollo de un sistema automatizado se encuentra en la heterogeneidad de lasdistintas estructuras de directorios en los proyectos de un repositorio de software. Estalimitante impide al encargado del repositorio crear, mantener y administrar de manerasencilla un sistema informático como el propuesto durante el curso de Interfaz Humano-Computador, que busca ser más usable y dinámico para los usuario finales de manera talque puedan localizar las piezas de software que necesitan.

Page 14: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

6

2. Justificación

Esta investigación propone desarrollar una alternativa automatizada para la identificacióny categorización de instaladores de software en el repositorio de EspejosUCR. Para lograrobtener la información necesaria, se deben procesar datos semi-estructurados, es decirque varían su estructura entre los distintos proyectos de software que conforman dichorepositorio.

Hasta el momento, EspejosUCR sólo cuenta con un administrador, el cual se encargade velar por la sincronización de cada proyecto de software alojado en este repositoriocon los repositorios centrales de los desarrolladores. Sin embargo, debido a que cada díasurgen cambios en la estructura de directorios de al menos uno de los repositorios, para eladministrador es lento, agotador y, además, de poca utilidad categorizar los instaladoresde forma manual.

Como se menciona en la Introducción, con la propuesta de interfaz realizada a lo largodel curso “Diseño de interfaz humano-computador” se solventa el problema para usuariosfinales del servicio, pero no se resuelve la situación para el usuario administrador, yaque no se encontró una alternativa ya existente que realizará el trabajo ni se implemen-tó un sistema automático que alimentara la interfaz gráfica con la información de losinstaladores.

Para este proyecto, en primera instancia, se llevó a cabo una revisión documental de alter-nativas de software que identificaran o categorizaran directorios de archivos. Se encontróen Internet cinco soluciones2 que cumplen con los principales requerimientos planteadaspara el proyecto desarrollado durante el curso PF3849 - Diseño de Interfaz Humano-Computador y que contemplan parte de los requerimientos propuesto para esta investi-gación. No obstante, tras un análisis comparativo, se determinó que estas alternativas desoftware no satisfacen a plenitud las características deseadas.

El vacío técnico que dejan estas alternativas, basándose en la necesidad de automatizarel proceso de extracción de información sobre instaladores, motiva la creación del sistema

2Las cinco soluciones halladas se desarrollarán en la sec. 6.1

Page 15: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

7

que este proyecto de graduación propone; se busca, por tanto, proveer al administrador delrepositorio de una nueva herramienta para generar una estructura de datos computablecon base en la información semi-estructuradas ya presente.

Esta novedad cubrirá una necesidad real hasta ahora existente en múltiples repositoriosde software pues permitirá organizar la información usando esta estructura de datos; eladministrador, así, podrá finalizar la implementación futura de una interfaz amigable endonde los usuarios finales seleccionen el software que necesiten y descarguen las versionesque se ajusten a sus computadoras. En este trabajo no se pretende producir nuevo cono-cimiento, sino más bien producir una herramienta innovadora. Se utiliza conocimiento ytecnología existente y disponible para producir una herramienta práctica no tradicionaly novedosa.

Esta investigación abre, finalmente, una oportunidad para que futuros proyectos puedanimplementar nuevas maneras de presentar los datos ahora estructurados a otros sistemaspara que procesen la información.

Page 16: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

8

3. Marco teórico

En el presente capítulo se introducirán términos sobre el contexto en que se realiza estainvestigación. En la sec. 3.1 se detallan aspectos sobre el Software Libre y el CódigoAbierto, sus similitudes y diferencias, así como el concepto que se utilizará a lo largo deeste trabajo respecto a ellos. Luego, la sec. 3.2 explica el método de replicación de losrepositorios de software libre y cómo se organizan a lo largo del mundo para distribuirsu contenido. Finalmente, en la sec. 3.3 se trata el tema de los Sistemas Expertos comoposible solución para el problema de la categorización automática de los instaladores deprogramas en repositorios de software.

3.1. Software Libre y el Código Abierto

En el desarrollo de software, actualmente se conocen dos grandes vertientes en cuanto acódigo fuente se refieren: los desarrolladores pueden optar por distribuir sólo binarios omostrar el código fuente al usuario. El software cuyo código fuente no está a disposicióndel usuario comúnmente se conoce como software privativo o de código cerrado. Por otrolado, el software que coloca su código fuente a disposición de los usuarios se generalizacomo software de código abierto o software libre.

En principio, el concepto de software libre marcó los pasos en cuanto a la liberación decódigo respecta. A mediados de la década de 1980, Richard Stallman publicó el manifiestoGNU3(Stallman, 2004, p. 35) con el cual buscaba una alternativa de libre distribución alos sistemas operativos privativos que existían en esa época. El término es un acrónimorecursivo que significa: GNU No es Unix, del inglés GNU’s Not Unix. Este manifiestoda pasó al Proyecto GNU que luego forma parte de la Free Software Foundation (FSF),una organización sin fines de lucro que define el Software Libre como aquel softwareque “respeta la libertad de los usuarios y la comunidad”(2001) y lo describen en cuatrolibertades básicas:

3Disponible en https://www.gnu.org/gnu/manifesto.html

Page 17: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

9

Libertad 0: Ejecutar el programa para cualquier propósito

Libertad 1: Estudiar el código y adaptarlo a mis necesidades.

Libertad 2: Redistribuir copias para ayudar a los demás.

Libertad 3: Redistribuir copias de versiones modificadas.

Cualquier software que no respete estos cuatro puntos se dice que no respeta la libertaddel usuario para hacer lo que le place con el programa y, por tanto, no es Software Libre.Sin embargo, en el ámbito del código abierto hay varias discrepancias y segregaciones.Principalmente por la manera de pensar, la filosofía detrás del movimiento social y el finúltimo del software y su código.

En este camino, surge un problema pues en inglés (Free Software) se puede interpretarde dos maneras, Free se define como ‘gratis’ o como ‘libre’; el español no posee estaambigüedad. A las empresas comerciale no les agradó esta dualidad, pues no deseabanque su software se viese como algo gratuito, de baja calidad y no les generara ganancia,cuando en realidad GNU buscaba la libertad y no el costo en el software. Es así como laFSF comienza a reforzar la idea de que en el Software Libre debe entenderse la palabra«libre» como en «libre expresión», no como en «barra libre» 4.

Por otro lado, en cuanto a la discrepancia con las empresas, alrededor de 1998 muchos delos seguidores del Software Libre comenzaron a promover el concepto de código abiertopara cambiar la idea de que el software era gratuito y reforzar, así, el hecho de que alcompartir el código se obtienen más beneficios. Según la Open Source Initiative (2013)(OSI, en español: Iniciativa del Código Abierto), una licencia open source debe ir enconjunto con los siguiente criterios5:

Redistribución libre de regalías o cuotas de venta.

El programa debe incluir el código fuente.

Permitir los trabajos derivados y su redistribución bajo los mismos términos.

Integridad con el código del autor, esto es, se puede restringir las modificaciones alcódigo original solo si se permiten distribuir modificaciones por medio de parcheso patch files.

No discriminar a personas o grupos de personas.

No discriminar en función de la finalidad de uso.

4El lema original en inglés es citado por Williams (2002): “Don’t think free as in free beer; think freeas in free speech.”

5Definción completa en http://opensource.org/docs/osd

Page 18: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

10

Distribuir la licencia.

La licencia no debe ser específica a un producto.

La licencia no debe restringir otro software.

La licencia debe ser tecnológicamente neutral.

No obstante, según la Free Software Foundation (2001) el open source nace de una bifur-cación del movimiento del software libre donde sus defensores estaban más preocupadospor los beneficios comerciales que por los valores éticos y sociales; además, afirma que el“código abierto es una metodología de programación, el software libre es un movimientosocial”(2001). Es de aquí que muchos de los defensores de la filosofía afirman que el có-digo abierto no es lo mismo que el Software Libre; no obstante, para fines prácticos, todalicencia de Software Libre, en principio, es de código abierto pues cumple lo establecidopor la OSI en su definición. No así al contrario, pues no toda licencias de open sourcepueden catalogarse como Software Libre.

Es por tanto que a lo largo de este trabajo hablaremos sobre proyectos de Software Librey de código abierto (FOSS, del inglés Free and Open Source Software) para referirnosa aquellos programas de computadoras que, siendo en su mayoría Software Libre tal ycomo lo define la FSF, cumplen también con lo acordado por la Open Source Initiative ycuyo principal objetivo es la distribución del código fuente en conjunto con los binariospara su modificación y mejora por parte de la comunidad global. Lo anterior, haciendola salvedad de que el Software Libre como movimiento social tiene un objetivo más claroy amplio que la simple distribución del código fuente: libertad de los usuarios.

3.2. Repositorios de Software

Ahora bien, para la distribución del Software, los proyectos de open source por lo generalrecurren a servicios voluntarios o de distribución replicados alrededor del mundoque les permitan entregar el software más rápido y a la mayor cantidad de personas. Esteproyecto se enfocará en la técnica comúnmente conocida como Servidores de Réplica, Es-pejos (en inglés Mirrors). Giray Pultar (1998) define el proceso de Reflejado o ‘Mirroring’como “la replicación del contenido de un sitio (tal como un sitio web o un sitio ftp) a unsitio distinto llamado espejo”.

Un servidor de réplica utiliza software de sincronización, como por ejemplo Rsync(https://rsync.samba.org/), para mantener una copia idéntica de la estructura y datos

Page 19: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

11

de un servidor remoto. Para los distintos proyectos open source, cada uno tiene su estruc-tura y políticas de sincronización, no obstante, por lo general se organizan por capas otiers en donde cada réplica conforma un nodo, la primera capa (también conocidos comoPrimaria o Tier 1 ) está compuesta normalmente por aquellos nodos que poseen mayorancho de banda, almacenamiento o poder computacional. Ellos contienen los datos másactualizados y se sincronizan directamente con los nodos ‘maestro’ quienes contienen losdatos originales. Luego están los nodos Tier 2 o secundarios que se sincronizan con losnodos Tier 1 y, por lo general, tiene capacidades medias de ancho de banda y podercomputacional. Por último, están los nodos conocidos como hojas o leaf, que son réplicasde menores capacidades y, por lo tanto, más locales.

Por otro lado, las sincronizaciones realizadas por un nodo mirror pueden ser de dosmaneras: por intervalos de tiempo o por medio de ‘push’ o empuje de cambios. En laprimera opción, el administrador del nodo puede asignar tareas programadas en intervalosde tiempo durante los cuales la réplica se sincronizará con el servidor superior (en inglés,upstream), esto puede ocurrir una o más veces al día. Por el contrario, el método de ‘push’consiste en que el servidor en el nivel superior notifica sobre cambios hacia los servidoresdebajo de él (conocidos como downstream) en el momento en que surjan estos cambiosy, sin importar la hora, fuerza la activación del mecanismo de sincronización.

Es así que un servidor de réplicas puede utilizar múltiples técnicas de sincronizaciónpara diversos repositorios de proyectos de código abierto y estar en niveles distintosde la jerarquía para cada uno de ellos. De esta manera un servidor de réplica, comoEspejosUCR (www.espejos.ucr.ac.cr), puede albergar repositorios de diversos proyectos,todos sincronizados utilizando las técnicas que solicita el desarrollador original.

Sin embargo, cada uno de los proyectos alojados en este tipo de servidores posee unaestructura de archivos distinta. La organización de directorios y archivos varía grande-mente de un proyecto al otro. Asimismo, el administrador local no puede modificar estasestructuras pues estaría en contra el proceso de Mirroring tal como es. De esta mane-ra, un espejo que mantiene múltiples proyectos con desarrolladores distintos dificulta alusuario final su uso y la recuperación del software que necesita.

3.3. Sistemas Expertos

En el ámbito de la informática, existen situaciones donde los sistemas tradicionales conbases de datos, formularios y entradas/salidas no satisfacen las necesidades del usuarioo no solucionan de manera adecuada un problema en cuestión. En el caso concreto de la

Page 20: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

12

categorización necesaria para el software de EspejosUCR, un algoritmo recursivo comúnno era suficiente debido a lo cambiante de las estructuras de directorio, es así que laalternativa que surge es la de utilizar un Sistema Experto.

Al respecto, Barreto y Fortin (1997) indican que un sistema experto es “básicamente unprograma que corre y ejecuta un conjunto de reglas de la forma: SI condiciones, ENTON-CES acciones”. Esta definición es bastante básica y general, pues actualmente un sistemaexperto puede ser mucho más complejo que tan solo reglas booleanas de antecedentes yconclusiones con la forma SI x⇒ y (Si x entonces y).

Para complementar esta definición, se recurre a Edward Feigenbaum (1981) conocidocomo el padre de los sistemas expertos , quien menciona que un sistema experto es “unprograma informático inteligente que utiliza conocimiento y procedimientos de inferenciapara resolver problemas que son lo bastante difíciles como para requerir una gran experti-cia humana para su solución. Los conocimientos necesarios para alcanzar tal nivel, máslos procedimientos de inferencia utilizados, pueden ser considerados como un modelo dela experticia de los mejores profesionales en el campo.”

Según Feigenbaum, entonces, los sistemas expertos se catalogan como parte de la inte-ligencia artificial, es decir, son programas que tratan de simular el razonamiento de unexperto humano en una especialidad, por ejemplo un médico; estos sistemas son usadosprincipalmente en aquellas situaciones basadas en toma de decisiones. Wai et al. (2005)enlistan la existencia de sistemas expertos diseñados para el diagnóstico de enfermedades,la identificación de componentes químicos, la toma de decisiones en negocios y finanzas,la atención al cliente y solución de averías, el control de campos agrícolas, el controlambiental y la educación.

3.3.1. Componentes básicos de un sistema experto

Según Anjaneyulu (1998), un sistema experto consta de cinco componentes básicos:

Interfaz de usuario: es la interfaz de interacción del usuario con el sistema ex-perto.

Memoria de trabajo: representa un conjunto de hechos conocidos acerca delestado actual del contexto en que trabaja el sistema experto, también es llamadobase de hechos.

Base de conocimiento: consta de una serie de modelos que representan el cono-cimiento acerca del contexto del sistema experto. Si se trata de un sistema basado

Page 21: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

13

en reglas es conocida como base de reglas y, por lo general, se trata de modelos conpremisas y conclusiones del tipo:SI x⇒ y.

Motor de inferencia: representa, programáticamente, un modelo de resoluciónde problemas según las reglas en la base de conocimiento y los hechos específicosde la situación en la memoria de trabajo para resolver un problema.

Sistema de justificación: es un conjunto de mecanismos por medio de los cualesel usuario puede consultar el sistema experto y obtener una explicación de lasconclusiones o respuestas a las que llegó luego del razonamiento realizado.

La interacción entre los componentes la lleva a cabo el motor de inferencia. Esta piezaconecta el conocimiento y los hechos para extraer información sobre un problema especí-fico. Para obtener respuestas, el motor hace uso de distintos tipos de reglas y técnicas deinferencia; en el caso de un sistema experto basado en reglas, con frecuencia se utilizanestrategias de inferencia en conjunto con las reglas de Modus Ponens y Modus Tollens,tratadas por Rosen (2007), que son modelos booleanos con premisas y conclusiones.

Por un lado, Modus Ponens es una de las funciones más comunes y dicta que en unaregla, dada la premisa como cierta, se asume también la conclusión como cierta. Así, porejemplo, teniendo la regla “Si llueve, entonces el suelo se moja” y se sabe que, efectiva-mente, “esta lloviendo” por Modus Ponens se concluye que “el suelo debe estar mojado”.Caso contrario, Modus Tollens parte de la conclusión y dicta que si esta es falsa tam-bién la premisa es falsa. Del ejemplo anterior, si se conoce que “el suelo no esta mojado”,entonces por Modus Tollens se sabrá que “no esta lloviendo”. Sin embargo, no se puedededucir nada cuando solo se sabe que “no llueve” pues “el suelo puede estar mojado” porotros motivos; en el caso en que solo se conoce que “el suelo esta mojado”, no se puedeestar seguro de que sea solo porque “llueve”.

Para sopesar las limitantes de las reglas, están las estrategias de inferencia. Una deestas es el encadenamiento de reglas que plantea Feigenbaum et al. (1988), esta técnicaes utilizada para obtener nuevo conocimiento o probar una hipótesis a partir de losdatos ya existentes y basándose en las reglas definidas. Se conoce como encadenamientohacia adelante (en inglés forward chaining) cuando se usan las premisas conocidas paraobtener conclusiones (Modus Ponens) que luego son usadas como premisas para probarnuevas conclusiones; así, sucesivamente, se crean nuevos hechos. También se encuentrael encadenamiento hacia atrás (en inglés backward chaining) que parte de una lista deconclusiones (en este caso llamadas hipótesis u objetivo) y, de manera recursiva, intentabuscar las premisas que den validez a las conclusiones. Así, el sistema de inferencia buscatodas las reglas que cumplan con la conclusión para encontrar las premisas verdaderas

Page 22: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

14

que puedan validar esas conclusiones.

Entonces, el encadenamiento hacia atrás no crea nuevo conocimiento en sí mismo, sinoque ayuda a probar objetivos o hipótesis, es decir, responde preguntas concretas. En elcaso de que alguno de los hechos no esté definido en la memoria de trabajo y no se logreobtener una conclusión, el sistema de inferencia puede preguntar al usuario por hechosfaltantes. De esta manera el sistema experto es realimentado y completa el conocimientofaltante para lograr verificar el objetivo.

3.3.2. PyKE, motor de inferencia en Python

Python Knowledge Engine (PyKE, pyke.sourceforge.net), en español Motor de Conoci-miento en Python, desarrollado por Bruce Frederiksen, es un motor de inferencia basadoen reglas que está escrito en el lenguaje de programación Python e inspirado en la pro-gramación lógica de Prolog. Se integra completamente con su lenguaje de programaciónlo que le permite interactuar con funciones y llamados, directamente en el código.

El motor está diseñado, principalmente, para crear código Python reutilizable y auto-adaptable por medio de reglas de inferencia, o sea, puede generar piezas de código quese adecuan a una situación o un caso de uso determinado, dependiendo de las reglas quese desencadenan y basado en el conocimiento que posee en sus bases de conocimiento,a esto Frederiksen (2008) le llama un ’Plan’. No obstante, PyKE posee muchas otrasfuncionalidades, entre ellas el uso de forward y backward chaining explicado arribapara la obtención de conocimiento y las pruebas de hipótesis con un único resultado ocon todos los resultados posibles.

Para inferir información, Frederiksen (2007) define tres tipos de archivos para las fuentesde conocimiento, determinadas según su extensión de archivo:

Archivos .kfb: definen la base de hechos que es el conocimiento inicial de PyKE,el cual asume como verdadero. También conocido como memoria de trabajo.

Archivos .krb: definen la base de reglas. Al tratarse de un motor de inferenciasbasado en reglas, estas fuentes son su base de conocimiento.

Archivos .kqb: definen la base de preguntas que interactúan con el usuario paraobtener información extra en el proceso de inferencia. Este último no se utilizarápara este proyecto en específico.

La lógica de encadenamiento (hacia atrás y hacia adelante) se escriben en la base dereglas (krb). Pueden existir múltiples bases de reglas, cada una con su propio conjunto

Page 23: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

15

de lógicas de encadenamiento. Asimismo, se puede incorporar código Python dentro lassentencias de una base de reglas para extender el funcionamiento del motor; de aquí queel sistema de inferencia puede ser usado en programas que involucren toma de decisionescomplejas.

En PyKE, los hechos y reglas se escriben como sentencias o declaraciones (statements)con formatos específicos, bien definidos y distintos según se trate de un hecho, una reglade encadenamiento hacia adelante o una de encadenamiento hacia atrás. El conocimientoasociado a una sentencia es dado por los argumentos que posee, los cuales son similaresa los parámetros de una función en programación y se interpretan como variables dePython.

Estas sentencias son los datos sobre lo que Pyke trabaja, se organizan en Bases de Co-nocimiento, que son colección de conocimiento con un nombre único y que contienen unconjunto de hechos y reglas. Cada sentencia tiene tres características: (i) pertenece a unaúnica base de conocimiento, (ii) es única dentro de dicho contexto y (iii) posee una listade argumentos. A continuación, un ejemplo de un hecho representado como una sentenciaen formato para PyKE:

Hecho en Español Bruce es el hijo de Thomas (su padre) y Martha (su madre)Sentencia en PyKE family.son_of(Bruce, Thomas, Martha)

Estructura base_conocimiento.hecho( {argumentos,} )tomado de Frederiksen (2007)

Tabla 3.1.: Ejemplo de un hecho en formato de sentencia PyKE

Las sentencias de hechos en PyKE no necesariamente son únicos, el mismo hecho puedeestar definido en la misma base de conocimiento multiples veces con argumentos distintos,creando así variación en los datos. Del ejemplo anterior, se podría definir otra familadistinta a la de Thomas y Martha, eso se representaría como otra sentencia son_of().

Con los hechos y las reglas definidos como sentencias de PyKE, se puede hacer usode la inferencia y probar hipótesis u objetivos. Un objetivo (goal) es simplemente unasentencia más, la cuál forma una pregunta que el motor debe responder o probar. Unobjetivo puede definir variables de patrón (pattern variables), que son los valores que seusarán a lo largo de la inferencia y responden la pregunta de “¿Para cuáles valores esverdadera esta sentencia?”.

Del ejemplo mostrado en Tab. 3.3.2 se puede solicitar a PyKE que pruebe algunos obje-tivos:

Page 24: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

16

Objetivo PyKE Goal Resultado¿Quiénes son lospadres de Bruce? family.son_of(Bruce, $father, $mother) $father → Thomas,

$mother → Martha¿Quiénes son loshijos de Thomas y

Martha?family.son_of($son, Thomas, Martha) $son → Bruce

¿Quiénes son loshijos de Martha? family.son_of($son, $_, Martha) $son → Bruce

Tabla 3.2.: Ejemplo de prueba de objetivos

Del cuadro anterior, se pueden observar cómo las variables de patrón son ligadas a dife-rentes resultados según la inferencia que realice el motor. El primer objetivo es descubrirquiénes son los padres de Bruce; por tanto, el primer paso que realiza PyKE es ligarla variable $son con el texto ‘Bruce’, de esta manera PyKE ahora busca cuál sentenciasatisface esos valores y encuentra el hecho definido arriba. El motor de inferencia enton-ces liga las variables de patrón $father y $mother a los valores que satisfacen el hecho:‘Thomas’ y ‘Martha’, respectivamente. Como no existen más hecho por probar, el procesoacaba.

De manera similar funciona el segundo caso, con la diferencia que son las variables$father y $mother las que son ligadas inicialmente y $son la que se debe descubrir;nótese que si Thomas y Martha tuvieran más hijos definidos como hechos, PyKE puedeinferirlo y enlistarlos todos como posibles valores para la variable $son.

En la prueba del tercer objetivo, se utiliza una variable de patrón nombrada por Fre-deriksen (2007) como variable anónima. Esto permite que PyKE asuma cualquier valorpara esta variable. El tercer objetivo se puede leer como: “Sin tomar en cuenta al padre,¿quiénes son todos los hijos de Martha?”. Sin embargo, para el ejemplo, como solo se tieneun hecho relacionado con cualquiera de los objetivos por probar, se obtendrá siempre unsolo resultado.

Los objetivos también pueden utilizar las reglas de encadenamiento hacia atrás para resol-ver la inferencia, estas reglas se disparan solamente cuando un objetivo debe ser probado,esto es contrario a las reglas de encadenamiento hacia adelante6 que se ejecutan automá-ticamente al inicializar la Base de Conocimiento para generar nuevos hechos (sentenciasnuevas). La sintaxis específica para las reglas de encadenamiento hacia atrás definidaspor Frederiksen (2007) consisten en un identificador único (esta es una diferencia con las

6Las sintaxis de las reglas de encadenamiento hacia adelante no será tomada en cuenta como par-te de esta investigación, pero pueden encontrarse más detalles en el sitio oficial de PyKE en py-ke.sourceforge.net

Page 25: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

17

sentencias de hechos), una cláusula ‘use’ y cláusulas opcionales ‘cuando’ (when) y ‘con’(with) esta última cláusula no se utilizará.

Regla lógica Si dos personas tienen el mismo padre, la misma madrey no son la misma persona, entonces son hermanos.

Sentencia PyKEbrothers_rule

use brothers ($brother1 , $brother2 )when

son_of($brother1 ,$father , $mother )son_of($brother2 ,$father , $mother )check $brother1 != $brother2

Estructuraidentificador

use objetivo ({ argumentos ,})when

{premisas ,}

Tabla 3.3.: Regla de encadenamiento hacia atrás en formato de sentencia PyKE

Las sentencias de encadenamiento hacia atrás son, básicamente, reglas de ‘Si-Entonces’,pero PyKE da vuelta a la expresión natural para definirlo como ‘Use-Cuando’. El identifi-cador de la regla debe ser único y representa el nombre con el que PyKE le hace referenciainternamente, para este ejemplo es brothers_rule. La cláusula use es el ‘Entonces’ dela regla y define el objetivo que esa regla busca probar; esta sentencia puede repetirse alo largo de multiples reglas que traten de probar el mismo objetivo. La clausula ‘when’es la parte ‘Si’ de la regla y define las premisas que deben cumplirse para que esta tengaéxito. En el ejemplo, se requiere cumplir 3 condiciones si alguna de ellas falla, la regla nopuede probar el objetivo.

Page 26: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

18

4. Objetivos

4.1. Objetivo General

Proponer un modelo de identificación y categorización automática de los instaladores deprogramas en un repositorio de software utilizando los términos de las rutas de archivo einformación pública disponible en Internet.

4.2. Objetivos Específicos

Definir las características específicas de un modelo basado en sistemas expertospara categorización automática de instaladores de programas.

Determinar la base de conocimientos y base de reglas necesarias para iniciar lainferencia de las categorías a las que pertenece cada término de la ruta de archivo.

Desarrollar funciones y procesos que permitan agregar nuevos hechos a una basede conocimiento, a partir de consultas en Internet de términos no conocidos.

Verificar la precisión de un sistema desarrollado con base en el modelo para asig-nar términos a su categoría mediante el proceso automático de identificación deinstaladores.

Page 27: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

19

5. Delimitación

Para el desarrollo de este proyecto de graduación se toma como objeto de trabajo alservidor de Espejos de Software Libre de la Universidad de Costa Rica (EspejosUCR, enhttp://espejos.ucr.ac.cr). Este servicio aloja, aproximadamente, 50 proyectosOpen Sourcede distintos desarrolladores; algunos de estos proyectos poseen múltiples subproyectos, talcomo Apache, que posee más de 100 subproyectos. La cantidad de archivos disponibles enun momento dado ronda los 6 millones, entre instaladores, archivos de control y archivosno relevante.

En vista de la gran cantidad de proyectos almacenados en EspejosUCR, no serán tomadosen cuenta los repositorios de paquetería para distribuciones de sistemas basados en UNIX,como lo son OpenBSD, Ubuntu, Debian o Fedora, pues estos sistemas poseen sus propiasbases de datos indexadas con la descripción, dependencias y versiones para cada paquetede software disponible que, por lo general, no pueden ser utilizados por otros sistemas.Además, estos índices de paquetes son mantenidos por desarrolladores de distintas partesdel mundo de manera manual y no con un sistema automático, como se plantea en esteproyecto. Esta exclusión reduce la cantidad de archivos a poco menos de 1 millón, lo queaún sigue siendo una cantidad abrumadora de archivos a analizar.

Dentro de los repositorios que sí son tomados en cuenta, cada estructura de directoriosposee bastantes diferencias y términos propios para el contexto del proyecto, sus desa-rrolladores y usuarios. Sin embargo, estos términos no siempre pueden ser definidos oidentificados, pues pueden no tener un significado en sí mismos o este solo es válido parael sistema interno del proyecto; además, no aportan información para la categorizacióndel software lo cual dificulta la identificación automática.

Un ejemplo de esto es el término “EUballot” encontrado solamente en el reposito-rio de Mozilla , que hace referencia a una versión orientada al “EU browser choice”(http://www.browserchoice.eu)7 mencionada por Mozilla Team (2010) y Smith (2009).

7Se trata de un sitio web que permite a los usuario en Europa seleccionar por ellos mismos el navegadorque desean utilizar y es parte de la decisión legal de la Unión Europea contra Microsoft para evitarque usen su posición de mercado para favorecer el uso de Internet Explorer

Page 28: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

20

Este término se usa para separarlo de la versión normal del navegador de Firefox; sinembargo, no existe una clara diferencia entre una versión y otra pues para el usuario finalparecen ser iguales. Términos como estos no serán utilizados para categorizar el software.

Debido a que EspejosUCR es utilizado como servicio no solo por sistemas informáticos,sino también directamente por personas, a lo largo de este trabajo se buscará desarrollarun sistema que realice una identificación y una categorización automatizada de instala-dores, se tomarán como referencia algunos términos obtenidos de datos desde fuentesen Internet que conforman la ruta de archivo a cada software en específico. Por último,es necesario aclarar que no es el objetivo de este proyecto llevar a cabo la integracióncon la interfaz de usuario final para obtener el software. Solamente se pretende crear elmodelo para estructurar los datos necesarios para hacer búsqueda sobre el repositorio yvalidar su funcionamiento mediante la implementación de dicho modelo.

Page 29: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

21

6. Diseño e implementación delProyecto

Para cumplir con los tres primeros objetivos del proyecto, se procedió a definir las caracte-rísticas específicas del modelo basado en un sistema experto que permitiese la categoriza-ción automática de instaladores de programas, luego se llevó a cabo la implementación dela base de conocimiento y motor de inferencia y finalmente se implementaron los módulospara agregar nuevo conocimiento a la base de hechos. En este capítulo se presenta en lasec. 6.1, sec. 6.2 y sec. 6.3 el trabajo relacionado a cada uno de estos objetivos. Finalmente,en la sección sec. 6.4 se describen experiencias asociadas al desarrollo del sistema.

En una primera fase se llevó a cabo una investigación bibliográfica para determinarsi existía software que cumpliera con los principales requerimientos planteadas para elproyecto desarrollado durante el curso PF3849 - Diseño de Interfaz Humano-Computadory que contemplan parte de los requerimientos del modelo propuesto para alimentar dedatos dicha interfaz. A saber:

1. Manipulación de archivo: que recolectara datos sobre los archivos de maneraautomática o manual.

2. Búsquedas: que utilizara una función para la búsqueda de archivos contenidos enel directorio.

3. Generación de índices: que generara un índice de los archivos contenidos en eldirectorio.

4. Generación de metadatos: que generara información sobre los archivos conteni-dos y sus características.

5. Licenciamiento: que el software tuviera licencia de código abierto o, en su defecto,Freeware8.

8Freeware son programas de descarga gratuita pero que no son software libre

Page 30: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

22

6.1. Software encontrado durante la revisiónbibliográfica

Para la primera fase, a partir de una revisión documental de alternativas de software queidentificaran o categorizaran directorios de archivos, se buscaron en Internet las posiblessoluciones de software que proveen algún tipo de funcionalidad similar a la propuestapara este proyecto.

Las funcionalidades de los sistemas encontradas fueron comparadas a partir de las si-guientes categorías según los requerimientos antes mencionados:

1. Método manual o automático de administración del contenido.

2. Extracción automática de metadatos, esto es información sobre los archivos.

3. Funcionamiento independiente de la estructura de directorios subyacente.

4. Independencia del formato de los archivos, sin limitar a un grupo de extensionesfija.

5. Independencia de sistema operativo para ser ejecutado en cualquier ambiente.

De esta manera se analizaron cinco propuestas de software que trabajan sobre diferentestipos de repositorios.

A continuación se detalla cada una de las aplicaciones encontradas.

Las dos primeras alternativas son Archiva (archiva.apache.org), desarrollada por la Fun-dación Apache, y Artifactory OpenSource (www.jfrog.com/), desarrollada por Jfrog.Estas alternativas tienen en común que administran repositorios de “artefactos” de soft-ware9 y se utilizan durante el desarrollo para mantener un control sobre otras piezas decódigo desarrolladas. Este tipo de programas están diseñados para trabajar con herra-mientas de gestión del código (como Maven10 o ANT11, entre otras); en adición, estáncreados para trabajar solamente sobre datos estructurados, ya que siguen las definicionesdadas por los archivos de configuración de los gestores, generalmente en formato XML.

Una desventaja de estos dos administradores es que un repositorio de “artefactos” desoftware no se puede utilizar para hospedar instaladores, pues el artefacto es, básicamente,una pieza de todo el producto de software que luego es empaquetado y distribuido enel instalador. Otra desventaja se refleja en que los administradores del repositorio deben

9En este contexto, un “artefacto” de software es una pieza reutilizable de código desarrollado y que secorrelaciona o depende de otras piezas del código, como por ejemplo las librerías de software.

10vease maven.apache.org11vease ant.apache.org

Page 31: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

23

agregar manualmente los artefactos disponibles para que otras piezas de software haganuso de ellos o, bien, crear los archivos de configuración del gestor de código para queutilice los artefactos de manera automática.

También se encontró el software diseñado para organizar sistemas de archivos localesSpace Sniffer (www.uderzo.it/main_products/space_sniffer/), un freeware desarrolla-do por Uderzo Umberto. Este software está basado en reglas que el usuario define paraorganizar de manera automatizada sus archivos por ejemplo, que todos los archivos deimágenes JPEG sean movido al directorio de Mis Imágenes . Se pueden definir reglascomplejas que impliquen comodines como el asterisco (*), usar el portapapeles o inclusocambiar propiedades del archivo, según sea el caso. Space Sniffer, además, puede realizarun análisis inicial de la estructura de directorios que se le muestra al usuario a modo deTreemap12. Con este método, el programa permite resaltar los archivos dependiendo dela búsqueda realizada y así el usuario puede tomar decisiones sobre lo que puede hacercon los archivos o cómo organizarlos.

Algunas de las grandes limitantes con esta herramienta son que solo funciona en sistemasWindows, no es automatizable ni puede generar índices o categorizaciones sobre los di-rectorios y sus contenidos. Además, este software está hecho para trabajar sobre archivoscomo imágenes, documentos, audio o video, no así sobre instaladores o paquetería desoftware.

Para la paquetería de software en específico, se encontró Pulp Project(www.pulpproject.org) con el respaldo de Red Hat. Pulp provee de un servicio que per-mite centralizar la administración de repositorios de software definiendo un listado depaquetes disponibles y poniéndolos a disposición de las computadoras cliente del servi-cio. Estos repositorios son del tipo de paquetería de software como los que se utilizanen distribuciones de Linux, Pulp está diseñado para repositorios basados en RPM, lapaquetería utilizada por distribuciones como Red Hat Enterprise Linux y Fedora. No setrata de un servicio que analice repositorios externos y cree nuevos conjuntos de datos,sino que, utilizando los metadatos e índices ya existentes en diversos repositorios de pa-quetería del tipo RPM, crea un grupo de paquetes para los diversos clientes registradosen la plataforma. Sin embargo, estos metadatos e índices son mantenidos manualmentepor los responsables de dichos paquetes en el repositorio de origen.

Por último, se revisaron las características de uno de los sistemas para repositorios deproyectos de software libre y open source (FOSS, por sus siglas en inglés) más popular:

12Los Treemaps son formas de representar datos jerárquicos (estructuras de árbol) como un conjunto derectángulos anidados identificados por colores.

Page 32: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

24

SourceForge (sourceforge.net). SourceForge mantiene más de 300.000 proyectos opensource y más de 4 millones de descargas diarias en total13. Durante muchos años, elsitio ha servido de repositorio para control de versiones, reporte de errores, wikis, etc.,de proyectos importantes como el reproductor multimedia VLC o la suite de ofimáticaOpenOffice, su sistema de búsquedas y filtros es muy potente y permite al usuario verlas versiones según sus sistema operativo o lenguaje.

No obstante, a diferencia de lo que se pretende con este trabajo, SourceForge depende delos usuarios que dan mantenimiento a cada proyecto, es decir, cada dueño del proyectode software es el encargado de administrar su repositorio de código fuente, generar losinstaladores y mantener actualizada la descripción, tomas de pantalla y demás datos. Esteesquema es el más adecuado desde el punto de vista de la cantidad de información que semaneja. Sin embargo, en un ambiente como el de espejos de software no se puede recurrirdirectamente a los dueños del software pues de igual manera no se puede modificar laestructura de directorios que posee el repositorio.

Ahora bien, de todas las posibles opciones para el manejo de los archivos detalladas arri-ba, la más cercana a las funcionalidades deseadas es SourceForge por su interfaz gráficae interacción con el usuario final, así como sus características para la administración delsoftware. Además, está basado en el software “forge”, cuya versión de código abierto, lla-mada Allura (sourceforge.net/projects/allura/), está disponible en el mismo SourceForge,una desventaja es que su implantación no es nada trivial.

Asimismo, no todos los proyectos alojados en los repositorios de software están disponiblesde manera oficial en SourceForge, por lo que tampoco se puede utilizar como única fuentede datos. Por otro lado, Allura no puede automatizar el recorrido del árbol de directoriospara extraer los instaladores de los diferentes proyectos de software ya existentes enrepositorios del tipo espejo como EspejosUCR e impone su propia estructura de directorio,lo que rompe el concepto mismo del ‘Mirror ’.

Idealmente, sería importante contar con un sistema como el de SourceForge pero con lafuncionalidad de explotar la información disponible en los repositorios de software. Espor esta razón que el presente trabajo es valioso en el sentido de que propone la forma decómo extraer dicha información para que pueda ser explotada por interfaces de usuariocomo Allura.

La propuesta desarrollada para este proyecto, a diferencia del resto de opciones detalladas,se centra en la estructura de directorios del repositorio y no en su contenido o tipo de

13Datos obtenidos desde el sitio oficial de SourceForge

Page 33: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

25

datos. Con base en la ruta del archivo es posible describir el instalador en la gran mayoríade los casos, aun sin importar que la ruta sea distinta para cada archivo.

6.2. Modelo propuesto

El modelo propuesto se visualiza en la Fig. 6.1.

Figura 6.1.: Modelo propuestoEl diagrama muestra cómo el investigador define las categorías, base de conoci-miento y base reglas del sistema de inferencias utilizado para generar la lista deinstaladores y cómo el sistema luego genera nuevos hechos que son almacenadosen la base de conocimiento.

Como se aprecia en la figura anterior, el sistema está conformado por una lista de ca-tegorías finita en la que se clasifica cada término encontrado por el sistema durante laidentificación de los instaladores, una base de conocimientos donde se almacenan los he-chos con los que el sistema experto infiere datos, una base de reglas que el sistema expertoutiliza para obtener nuevo conocimiento o validar el existente y un sistema de inferen-cias que une estos componentes para que el sistema experto pueda realizar la tarea de

Page 34: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

26

categorización e identificación de los instaladores de software e incorporar el nuevo cono-cimiento a la base de hecho. Asimismo, el repositorio de software es la fuente de datos poranalizar y el resultado del proceso son los metadatos estructurados de los instaladoresque se lograron identificar.

Para el desarrollo de este modelo, inicialmente se hace necesario llevar a cabo en formamanual lo siguiente:

1. el modelado de las categorías para agrupar los términos hallados por el sistema

2. la creación de base de conocimientos y de reglas usada por el motor de inferencia

3. el desarrollo de módulos adicionales para incrementar el conocimiento en la basede hechos.

La descripción de la forman en que se llevó a cabo la implementación de estas tres etapasse detalla a continuación.

6.3. Procedimientos para la implementación del sistema

Como ya se ha mencionado, para solventar el problema de la falta de una estructurahomogénea en los datos de un repositorio de software, se tomó la decisión de recurrira un sistema experto que se encargara de generar conocimiento alrededor de los datossemiestructurados y reconocer información similar a como lo haría un ser humano situviese que realizar la tarea. Como motor de inferencia para este sistema, se seleccionóPyKE motor de conocimiento de Python pues tiene la capacidad de integrarse connuevos módulos para extender sus bases de conocimiento más allá de la memoria detrabajo del sistema experto.

Tras la primera fase de revisión bibliográfica, se inició con el modelado de las categoríasnecesarias para identificar el software, estas categorías se usaron para agrupar los distin-tos términos encontrados y generar la información que definiría al instalador. Una vezdefinidas las categorías, se creó manualmente el conocimiento base, que es la memoria detrabajo inicial para el sistema experto y funciona como semilla para, a partir de este, crearnuevo conocimiento. Luego, junto con el conocimiento base y las categorías, se procedió acrear las reglas que el sistema experto debe seguir para agrupar los diferentes datos en lascategorías según el conocimiento previo, e inferir nuevo conocimiento conforme avanza elproceso de identificación del software. Por último, se extendió el potencial de inferenciadel sistema con módulos especializados que, por medio de búsquedas en algunos servicios

Page 35: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

27

de Internet, permitieran obtener nuevo conocimiento que es agregado a la memoria detrabajo.

En las siguientes secciones se explican en detalle cada una de las etapas de implementa-ción.

6.3.1. Modelado de categorías

El repositorio de EspejosUCR aloja, aproximadamente, 50 proyectos de Software Librey Open Source de distintos desarrolladores y hasta 6 millones de archivos diferentes. Envista de que realizar un análisis de todo el repositorio sería una tarea que consumiríamucho tiempo, se seleccionaron cinco proyectos del repositorio de EspejosUCR. La can-tidad de repositorios seleccionados buscó proveer variabilidad de datos, es decir, contarcon un ambiente heterogéneo para aumentar el conocimiento inicial, esto sin tomar encuenta pruebas estadísticas de dicha variedad. En general, tuvieron mayor prioridad paraser seleccionados aquellos repositorios que poseían una mayor cantidad de instaladoresde software y cumplían con los siguiente requerimientos:

1. Al menos 2 sistemas operativos. La variedad de sistemas operativos evita que losinstaladores posean siempre el mismo patrón.

2. Varias versiones. Entre más versiones posee un repositorio más variados son losinstaladores, en especial con versiones muy viejas del software.

3. Al menos 2 arquitecturas. Proveer de instaladores para arquitecturas de compu-tadoras como 32 bits, 64 bits o ARM agrega una diferenciación similar a la de lossistemas operativos.

4. Preferiblemente para varios lenguajes. Cuando un software está disponible en di-versos lenguajes permite encontrar instaladores especializados o algunos ‘multi-lenguaje’.

Según las características anteriores, los repositorios seleccionados fueron: Blender, Inks-cape, Mozilla, TDF (The Document Foundation) y XAMPP. El punto 4 no es del tododiscriminante en la selección de un repositorio; por tanto, Blender, Inkscape y XAMPPson parte de los repositorios seleccionados ya que, a diferencia de los repositorios que sífueron excluidos, estos poseen mayor número de versiones o arquitecturas, lo que les dabauna mejor prioridad. Aquellos repositorios que solo dieran soporte a un sistema operativoo a una sola versión fueron descartados de manera automáticamente.

Page 36: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

28

Repositorio SistemasOperativos

Versiones Arquitecturas Lenguajes

Blender 5 35 3 1Inkscape 3 26 3 1Mozilla 4 30 3 77TDF 3 3 2 144

XAMPP 4 49 3 1Los datos pueden variar según el estado actual de los repositorios en EspejosUCR

Tabla 6.1.: Selección de repositorios

Con cada uno de los proyectos seleccionados, el investigador llevó a cabo un recorridomanual del árbol de directorios y extrajo, nivel por nivel, las características y contenidosde cada directorio o archivo encontrado, describiendo patrones comunes14 en las rutas dearchivo y anotando posibles rutas vacías15.

Con los resultados del recorrido manual, se obtuvieron términos frecuentes, compartidosentre los repositorios; así como nombres similares que son referenciados de manera distintaen cada estructura de archivos pero tienen el mismo significado. Además, se tomarondatos que aportan diferenciación para los instaladores, como por ejemplo el lenguaje delsoftware o su sistema operativo. Los datos extraídos se agruparon por su semejanza entipos de categorías utilizando las siguientes reglas:

Se define un componente de la ruta de archivo el nombre de un directorio o unarchivo, incluyendo su extensión.

Se define como término el subconjunto del componente que puede ser agrupado conotros términos en un grupo de similitud.

Un grupo de similitud o tipo de categorías está formado por aquellos componentescuyos términos comparten un concepto en común. Por ejemplo, ‘Windows’ y ‘Linux ’son componentes que comparten el concepto de ‘Sistema Operativo’. Dicha relaciónde concepto la definió el investigador según su experiencia en el campo.

Si un componente está formado por 2 o más términos, se asigna por igual a cadauno de los grupos de similitud en los que se clasifiquen dichos términos y se denotala hilera que los separa en el componente. Por ejemplo, en ‘linux_x86 ’ los términos

14Un patrón sucede cuando un grupo de instaladores poseen una ruta de archivo común y se pue-de denotar en algún tipo de patrón usando sus categorías, por ejemplo: /<proyecto>/<sistemaoperativo>/<versión>/<instalador>

15Se entiende por ‘ruta vacía’ a aquellas rutas de archivo que no conducen a instaladores de software,por ejemplo: /<proyecto>/ctrl/TIMESTAMP, las estampas de tiempo son archivos de control que nocontienen instaladores.

Page 37: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

29

poseen conceptos de ‘Sistema Operativo’ y ‘Arquitectura’ y la hilera que los separaes ‘_’.

Se define como atributo la relación entre el dato extraído del componente y su tipode categoría.

Se define como categoría el nombre del concepto que agrupa los términos, es decirel nombre del grupo de similitud.

En la siguiente tabla se muestran algunos de los componentes extraídos de los repositorios:

Repositorio Componente Término Atributo Categoría

Blenderblender-2.5-alpha0-OSX-10.5-ppc.zip

blender Blender Proyecto2.5 2.5 Versión

alpha0 Alpha ReleaseOSX-10.5 MacOSX Sistema

Operativoppc PowerPC Arquitectura

Inkscapeinkscape-0.45.1_1.win32.exe

Inkscape Inkscape Proyecto0.45.1 0.45.1 Versiónwin Windows Sistema

Operativo32 32 bits Arquitectura

Mozilla

mozilla mozilla Mozilla Desarrolladorthunderbird thunderbird Thunderbird Proyecto

linux-x86_64 linux Linux SistemaOperativo

x86_64 64 bits Arquitectura

TDF tdf tdf The DocumentFoundation

Desarrollador

win win Windows SistemaOperativo

XAMPPxampp-win32-1.8.1-vc9-beta1.7z

xampp XAMPP Proyectowin Windows Sistema

Operativo32 32 bits Arquitectura

1.8.1 1.8.1 Versiónvc9 vc9 Sin categoríabeta1 Beta Release

Tabla 6.2.: Ejemplo de componentes extraídos

Page 38: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

30

De entre los diferentes componentes identificados en los repositorios, se crearon 7 cate-gorías que representan las características más comunes de un instalador a lo largo de los5 repositorios. No todos los instaladores poseen valores para cada una de las categoríaspero sí para la gran mayoría de ellos. Las 7 categorías son:

Desarrollador (owner): Empresa, Comunidad o persona que se encarga de man-tener diferentes proyectos de software.

Proyecto (project): pieza de software como tal que posee instaladores para dife-rentes plataformas y ambientes de ejecución.

Sistema Operativo (operating system): sistema operativo para el cual está creadoel instalador de un software.

Arquitectura (architecture): arquitectura del microprocesador para el que fuecompilado el software.

Lenguaje (language): lenguaje o lenguajes para los cuales tiene soporte el software.

Versión (version): la versión del software contenida en el instalador.

Release: fase de madurez del proyecto de software dentro del ciclo de desarrollode la versión.

Debido a que la mayoría de los datos se encuentran en idioma inglés o con estándaresinternacionales como ISO (por ejemplo, en el caso de los lenguajes), se asignó un nombreen inglés para las categorías y la identificación y asignación de términos en cada unade ellas se hace en ese idioma. En caso de que un sistema futuro requiera de la tra-ducción de los datos finales de la categorización, se puede hacer uso de herramientas deinternacionalización y localización (i18n/L10n).

6.3.2. Creación de base de conocimiento y de reglas

En PyKE se debe definir en archivos separados la base de conocimientos (archivo conextensión kfb) y la base de reglas (archivo con extensión krb). La base de conocimientosolo contiene sentencias que definen datos como hechos verdaderos dentro del contextodel motor de inferencia; mientras que la base de reglas define los métodos por los cualesse inferirán nuevos hechos y cómo estos se relacionan con otros.

6.3.2.1. Base de conocimiento

Las entradas para la base de conocimiento definen las categorías para los atributos anivel de PyKE. Estas entradas fueron creadas a partir de los términos extraídos durante el

Page 39: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

31

modelado de categorías, haciendo uso de los tipos de categoría en los cuales se agruparon;se tomaron los términos más comunes de cada tipo de categoría y así se crearon entradasde conocimiento. Por ejemplo, para el caso de la categoría de ‘Sistema Operativo’, sesabía que el atributo ‘MacOS ’ era un término común porque estaba presente en muchosrepositorios, siendo MacOS un tipo de Sistema Operativo, entonces fue agregado estehecho a la base de conocimiento como un atributo. En el archivo de conocimiento se vede la siguiente manera:

Algoritmo 6.1 Archivo de base de conocimiento: ejemplo atributo ‘MacOS ’[...]attribute( macos, opsys )[...]

Además de estos atributos, formados por los términos comunes, también se requiere de‘alias’ para atributos menos comunes de un término en un tipo de categoría. Por ejemplo,siendo normal referirse a ‘MacOS ’ como ‘OS X ’ o simplemente como ‘Mac’, esto requirióhechos de alias en la base de conocimiento para enlazar estos términos con su tipo decategoría.

Para PyKE, un ‘alias’ sería una inferencia (regla) que usa al encadenamiento hacia atrás,el cual de manera recursiva prueba términos hasta llegar al atributo que tiene una ca-tegoría asignada. Al visualizar esto a nivel lógico, es simplemente un hecho que implicatransitividad con otro ya conocido. A manera de ejemplo: SI a ⇒ b ∧ b ⇒ c ∴ a ⇒ c,así ‘a’ es un alias de ‘b’.

En el archivo de conocimiento, los alias se representan así:

Algoritmo 6.2 Archivo de base de conocimiento: ejemplo alias ‘MacOS ’[...]attr_alias( mac, macos )attr_alias( osx, macos )[...]

Esta base de conocimiento actúa como semilla para que el motor de inferencia inicieel proceso y a partir de él se genere una memoria de trabajo más grande y con másconceptos contextualizados en cada repositorio en que se ejecuta. A continuación, semuestra el contenido del archivo kfb incluyendo los alias:

Page 40: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

32

Algoritmo 6.3 Archivo de base de conocimiento## Attributes ##attribute(linux,opsys)attribute(macos,opsys)attribute(windows,opsys)attribute(x86_32,arch)attribute(x86_64,arch)attribute(source,release)attribute(portable,release)attribute(stable,release)attribute(testing,release)attribute(unstable,release)attribute(exe,installer)attribute(msi,installer)attribute(‘tar.gz’,installer)attribute(‘tar.bz2’,installer)attribute(dmg,installer)attribute(deb,installer)attribute(rpm,installer)## Aliases ##attr_alias(x86,x86_32)attr_alias(i386,x86_32)attr_alias(i686,x86_32)attr_alias(amd64,x86_64)attr_alias(mac,macos)attr_alias(osx,macos)attr_alias(win,windows)attr_alias(src,source)type_alias(owner,owner)type_alias(organization,owner)type_alias(foundation,owner)type_alias(community,owner)type_alias(corporation,owner)type_alias(project,project)type_alias(software,project)type_alias(opsys,opsys)type_alias(‘operating system’,opsys)type_alias(architecture,arch)type_alias(language,language)type_alias(version,version)

Como ya se mencionó, las sentencias attribute definen que un atributo en particular estáen un tipo de categoría, por ejemplo windows pertenece a la categoría opsys. También,se crean atributos especiales para las extensiones de archivo que generalmente contienen

Page 41: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

33

instaladores (installer) como exe, dmg y tar.gz; de esta manera, el sistema expertopuede identificarlos al momento de la categorización. Asimismo, se crean alias para losatributos y las categorías, por ejemplo se define que win es un alias para el atributowindows y que operating system es un alias para el tipo de categoría opsys.

6.3.2.2. Base de reglas

Para la base de reglas, se decidió utilizar reglas de encadenamiento hacia atrás pues sonestas las que permiten probar objetivos o responder preguntar concretas. Aún cuandoPyKE permite hacer uso de los dos tipos de encadenamiento de reglas, no se utilizaronlas reglas de encadenamiento hacia adelante pues la base de conocimiento inicial no proveedatos suficientes para generar conocimiento nuevo relevante y esta tarea es realizada porlos módulos de búsqueda en Internet.

Las entradas de la base de reglas se diseñaron para utilizan cuatro variables de patrónde PyKE:

atributo: es el término encontrado por el sistema en el recorrido del árbol de direc-torios.

nombre: representa el nombre real para el atributo según el conocimiento determi-nado por las inferencias en PyKE.

tipo: tipo de categoría.

afinidad: es la posibilidad asignada por la regla para que ese atributo sea del tipode categoría asociado.

La variable ‘afinidad’ es la característica que permite diferenciar a un atributo y su rela-ción con su tipo de categoría. Las afinidades son calculadas por cada regla, están basadasen cómo realizan la inferencia del término, dependiendo de si el dato está en la base deconocimiento o en algún módulo externo (ver sec. 6.3.3). Para los atributos definidos enla base de conocimiento, se asume una afinidad de 1 porque son datos recabados por elinvestigador, es decir, información ya conocida; en los demás, esta variable es calculadapor cada regla según es el caso. Por ejemplo, la inferencia por el término ‘Mac’ da comoresultado la asignación de las variables de patrón en donde el atributo es ‘Mac’, el nombrees ‘MacOS’ porque existe un hecho en la base de conocimientos que definió una relaciónde alias, su tipo es ‘Sistema Operativo’ y su afinidad es 1 porque es un hecho previamentedefinido en la base de hechos.

Por otro lado, las reglas en PyKE poseen una secuencia de desencadenamiento, definido

Page 42: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

34

por su orden de aparición en el archivo de la base de reglas, las cuales fueron creadastomando en cuenta la manera en la que obtienen el conocimiento. El orden es el siguiente:

1. reglas cuyo conocimiento esta definido en la base de hechos,

2. reglas cuyo conocimiento es probado por medio de librerías externas (como expre-siones regulares o códigos preestablecidos),

3. reglas cuyo conocimiento es probado por medio de las búsquedas en Internet.

Lo anterior permite acelerar el proceso de búsqueda pues primero se accede a los datosen el conocimiento local y, por último, en el conocimiento externo que es más lento, yaque necesita procesamiento extra.

Para demostrar objetivos, se usó la sentencia attr_is que busca responder la pregunta:“¿A qué tipo de categoría pertenece este atributo/término?”. La sentencia se definió uti-lizando las cuatro variables de patrón descritas arriba: atributo ($attr), nombre ($name),tipo ($type) y afinidad ($affinity). Cada una de las reglas tiene un nombre único yhace uso de la misma sentencia y variables para determinar los objetivos; el comporta-miento de la regla es definido por la sección ‘cuando’ (when), que define la situación enla que PyKE hará uso de esa regla específica y ligará los resultados a las variables depatrón adecuadas. El siguiente cuadro define la regla base que obtiene el conocimientode la base de hechos:

Algoritmo 6.4 Regla 0: attribute_is

1 attribute_is2 use attr_is ($attr ,$name ,$type , $affinity )3 when4 agent. attribute ($attr ,$type)5 $name=$attr6 $affinity =1

La regla anterior puede leerse como sigue:

Use esta sentencia cuando exista un atributo en la base de conocimientoque ya tenga asignado un tipo. El nombre del atributo será sí mismo y suafinidad 1.

La primera variable de patrón en ser asignada al momento de probar el objetivo desde elmotor de inferencia fue $attr. PyKE buscó en la base de conocimiento por una sentenciaque coincidiera con el atributo asignado y un tipo; si existía dicha sentencia, se asignabanlas demás variables de patrón.

Page 43: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

35

Esta regla funciona para los atributos ya conocidos en la base de hechos. Para utilizarlos alias en la base de hechos, se definió otra regla que hace uso de la recursividad paraencontrar las sentencia adecuada para el alias del atributo:

Algoritmo 6.5 Regla 1: attribute_alias_is

1 attribute_alias_is2 use attr_is ($attr ,$name ,$type , $affinity )3 when4 alias_recursive ($attr ,$alias)5 agent. attribute ($alias ,$type)6 $name=$alias7 $affinity =189 alias_recursive110 use alias_recursive ($attr ,$alias)11 when12 agent. attr_alias ($attr ,$alias)1314 alias_recursive215 use alias_recursive ($attr ,$alias)16 when17 agent. attr_alias ($attr , $alias1 )18 alias_recursive ($alias1 ,$alias)

Para esta regla, se definió una nueva sentencia: alias_recursive($attr,$alias). Estasentencia posee dos variables de patrón para relacionar el atributo buscado con su alias.Para simular la recursividad a nivel del conocimiento de PyKE, se crearon dos reglasque contienen dicha sentencia. La primera regla (alias_recursive1) define la condiciónde parada que se da cuando se encuentre el alias en la base de hecho. La segunda regla(alias_recursive2) define la recursividad como tal haciendo uso de la misma sentenciaalias_recursive. El orden de la definición de las reglas es importante pues PyKE ejecutala reglas en orden secuencial.

Además de estas reglas, se crearon también reglas para definir el tipo de categoría (sen-tencia find_type($alias,$type)) y hacer uso de los alias para los tipos de categoría(sentencia find_type_recursive($alias,$type)), en conjunto con las reglas que hacenuso de los módulos de consulta en Internet, descritos a continuación.

Page 44: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

36

6.3.3. Desarrollo de módulos

Cuando las reglas de encadenamiento y el conocimiento previo definidos en los archivosde PyKE no son suficientes para inferir un término, el sistema marca dicho términocomo “no probado”, lo que significa que el motor de inferencias no puede saber lo que es.Para reducir esta brecha de conocimiento, se recurre a la web como fuente de datos; sinembargo, PyKE carece de un método para inferir nuevo conocimiento utilizando consultasa Internet por sí mismo. Debido a esto, se desarrollaron módulos para cumplir con estecometido.

Cada uno de estos módulos es una función de Python que toma un término desconocidocomo parámetro, realiza una petición de búsqueda en la web o a una librería específicay retornan las 4 variables de patrón esperadas por las reglas en forma de tupla. De estaforma, cumple con lo establecido por la base de reglas del motor de inferencia y permitesu funcionamiento en conjunto.

Cómo algunos de los datos son fácilmente identificables por medio de funciones de Pythonya existentes como versiones y códigos de lenguaje se recurre a algunas librerías deapoyo que proveen dicha funcionalidad, de esta forma se reducen las conexiones que debenhacerse a Internet y el tiempo que puede tardar la inferencia de un término. Por otraparte, las peticiones de búsqueda a Internet se realizan en tres servicios web distintospara tener variedad de datos16. En los casos en que PyKE no puede, de ninguna manera,determinar la categoría para un término en específico, el sistema crea un hecho paramarcar este atributo como desconocido y notifica al usuario del incidente.

Además de las búsquedas de términos no conocidos, fue necesario otro componente queinicialice el ambiente de trabajo y recorra el árbol de directorios. Estas dos acciones sonde suma importancia, pues la primera permite crear la instancia del motor de inferenciasy cargar al sistema el conocimiento ya recabado en procesos anteriores; la segunda realizala extracción de los componentes de la ruta de archivo, identificándolos y categorizándolospara cada instalador, esto los transforma, finalmente, en el índice de uno de los software.Puntualmente, las acciones que ejecuta este módulo están basadas en el objetivo principalde esta investigación, y son las siguientes:

1. Inicialización del motor de inferencias.

2. Cargado de las bases de conocimiento y reglas en PyKE.

16La cantidad de servicios y su variedad de información no son probados de manera estadística; eneste caso se seleccionaron tres para tener distintas fuentes sin que esto aumente la complejidad deldesarrollo.

Page 45: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

37

3. Definición de los parámetros de inicio (ruta al repositorio y archivo de bitácoras delsistema).

4. Obtención de conocimiento previo a la ejecución del motor. Utilizando el conoci-miento existente y la ruta al repositorio, el sistema realiza una inferencia de cono-cimiento faltante antes de iniciar el proceso.

5. Control del recorrido del árbol de directorios (detención de instaladores y separaciónde su ruta en componentes o términos).

6. Ejecución de la inferencia de cada término en el motor para su identificación en untipo de categoría.

7. Registro de resultados obtenidos en la categorización de los componentes.

8. Construcción del índice de instaladores y sus metadatos, compuestos por la infor-mación obtenida desde el motor de inferencias.

9. Almacenamiento de resultados finales en disco usando formato JSON17.

A continuación se detallan los procesos de desarrollo de los diferentes módulos utilizadospara la inferencia de información, tanto de librerías existentes en Python como al hacerbúsquedas en servicios Web. Primero se describen las herramientas que fueron utilizadascomo base para poder crear los diferentes módulos, para luego hacer un repaso por elproceso de desarrollo realizado para cada módulo creado.

6.3.3.1. Librerías de apoyo

Para el desarrollo de módulos existen muchos estudios y librerías con múltiples herra-mientas que facilitan el proceso de la extracción de datos de los resultados en Internety el análisis de datos más estructurados o estáticos como los códigos de lenguaje o losnúmeros de versión de un software. Para este trabajo, se recurrió a los procesos más sen-cillos, pues no es parte de los objetivos realizar un sistema de reconocimiento de lenguajenatural completo.

Para la detección de los lenguajes se utilizó Babel (originalmente en babel.edgewall.org,ahora babel.pocoo.org), desarrollado por Armin Ronacher bajo licencia BSD. The BabelTeam (2013) la define como una librería para internacionalización en Python; esto signifi-ca que ayuda a crear código que muestra los textos de un programa en diferentes idiomas,

17JSON se el acrónimo en inglés para Notación de Objeto JavaScript, se trata de un formato basadoen la notación de JavaScript para intercambio de datos y se usa como alternativa liviana al formatoXML.

Page 46: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

38

según las preferencias del usuario o el programador. De las muchas características que po-see esta librería, la que se utilizó fue Locale Display Names (babel.core.Locale.parse),que permite identificar el nombre común de un lenguaje según su código; por ejemplo,‘es_CR’ para Español (Costa Rica). Esta identificación depende de que dicho códigoesté soportado por la CLDR (Common Locale Data Repository, en cldr.unicode.org), unproyecto que es parte del consorcio Unicode para permitir al software soportar distintoslenguajes.

Por otro lado, para las búsquedas en Internet, los casos eran más complejos pues losresultados debían analizarse de alguna manera para extraer información relevante enel contexto del sistema. Para estos casos, se recurrió a la librería de procesamiento delenguaje natural llamada Pattern (en www.clips.ua.ac.be/pattern), desarrollada por elcentro de investigación CLiPS (Computational Linguistics & Psycholinguistics) de laUniversidad de Amberes, Bélgica. Pattern provee múltiples módulos con funcionalidadespara trabajar sobre manipulación de html, bases de datos, procesamiento de lenguajenatural en inglés, búsquedas sintácticas o semánticas sobre texto, análisis de similitud,entre muchas otras funcionalidades, así lo denota CLiPS Research Center (2010b).

De las funcionalidades que posee Pattern se utilizaron, principalmente, los módulos debúsqueda (pattern.search) y minado de datos de la Web (pattern.web). El primerosuministra métodos básicos de procesamientos del lenguaje natural (NLP, por sus siglasen inglés) como etiquetado de categorías morfosintácticas basado en expresiones regu-lares (parser), búsqueda de patrones y agrupamiento. La principal desventaja de usarexpresiones regulares es que aunque son rápidas pueden no siempre ser precisas. En loscasos en que se necesite mayor precisión en el reconocimiento de las palabras, CLiPSrecomienda utilizar otra de sus librerías para el análisis gramatical llamado MBSP (enwww.clips.ua.ac.be/pages/MBSP). Según lo describe CLiPS Research Center (2010a),este parser utiliza un método estadístico para el aprendizaje automático o machine lear-ning que, según el Centro de Investigación, suele ser más robusto pero más lento que elanálisis por expresiones regulares.

El segundo módulo (pattern.web) es el que permite realizar búsquedas utilizando lasdistintas interfaces de programación (API, por sus siglas en inglés) para los buscadoresmás reconocidos. El módulo crea una interfaz uniforme para utilizar los distintos servi-cios web, así como herramientas para análisis y limpiado del contenido HTML, ademásde mecanismos para mantener un caché de los diferentes resultados. Además, posee sub-clases ya existentes que permiten dar soporte a servicios como Google, Yahoo, Bing,DuckDuckGo, Twitter, Facebook, Wikipedia, Wikia, DBPedia, Flickr and Newsfeed ycrear una subclase nueva para dar soporte a más servicios no es tan complicado.

Page 47: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

39

Una desventaja del módulo pattern.web es que muchos de los servicios disponibles re-quieren de algún tipo de llave o licencia para permitir el acceso al API; esta llave nor-malmente tiene asociado un costo para una cantidad limitada de consultas diarias, noobstante la mayoría de los servicios otorgan licencias gratuitas para un uso no comercialcon una cantidad reducida de consultas por día.

6.3.3.2. Módulos para versión y lenguaje

Los primeros módulos desarrollados, para detección de versión y lenguaje, no reali-zan búsquedas en Internet, sino que hacen uso de las librerías ya desarrolladas pa-ra obtener cierto conocimiento que tiende a ser estático. Primero, se definió la reglaattribute_is_version que determina si el término encontrado es una versión de softwa-re o no, haciendo uso de la librería de expresiones regulares nativa de Python (re) y le asig-na una afinidad; para este proceso, se desarrolló la función en Python utils.versionsearch.

Algoritmo 6.6 Regla 2: attribute_is_versionTal como está definida en el archivo de base de reglas, la cual hace un llamadoa la función Python versionsearch

1 attribute_is_version2 use attr_is ($attr ,$name ,version , $affinity )3 when4 python5 import utils6 result = utils. versionsearch (engine ,$attr)7 check result8 $name=result [0]9 $affinity =result [1]

Page 48: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

40

Algoritmo 6.7 Función: utils.versionsearchTal como está definida en el módulo de Python, desarrollada para identificar losnúmeros de versión de un software dado

1 def versionsearch (engine , term):2 match = re.compile(r"^v?(?P<major >[0 -9]+) \.(?P<minor

>[0 -9]+) (?:\.(?P<release >[0 -9]+))?(?:\W(?P<tail >.*))?$").match(term)

3 affinity = 0.014 if match:5 major = match.group(’major ’)6 minor = match.group(’minor ’)7 release = match.group(’release ’)8 tail = match.group(’tail ’)9 if not major or not minor: return ()10 if release : affinity += 0.0211 if tail: affinity += (0.01 * len(tail))12 return term , (1 - affinity )13 return ()

La función versionsearch agrupa los resultados de la expresión regular en 4 grupos,según el formato habitual de una versión de software agregándole una cola (tail) para casoespeciales: major.minior.release[tail] y después aplica una formula para calcular laafinidad del texto encontrado para ser realmente una versión, de manera que entre máscola tenga menos afinidad posee dado que el texto deja de parecer una versión.

Por otra parte, la regla attribute_is_lang es la encargada de definir si un término dadoes un código para lenguaje o no, haciendo uso de la función en Python utils.langsearch:

Algoritmo 6.8 Regla 3: attribute_is_langTal como está definida en el archivo de base de reglas, la cual hace un llamadoa la función Python langsearch

1 attribute_is_lang2 use attr_is ($attr ,$name ,language , $affinity )3 when4 python5 import utils6 result = utils. langsearch (engine , $attr)7 check result8 $name=result [1]9 $affinity =0.99

Page 49: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

41

Algoritmo 6.9 Función: utils.langsearchTal como está definida en el módulo de Python, desarrollada para identificarlos códigos de lenguaje usando la librería Babel.

1 def langsearch (engine , term):2 import babel3 from babel import UnknownLocaleError4 try:5 if ’-’ in term:6 l = babel.core.Locale.parse(term , sep=’-’)7 else:8 l = babel.core.Locale.parse(term)9 return (term , str(l. english_name ))10 except UnknownLocaleError as e:11 [...]12 except Exception as e:13 [...]14 return ()

La función babel.core.Locale.parse, presente en las líneas 6 y 8 del Algoritmo 6.9, esla que trabaja en la detección del lenguaje según el código utilizado, de manera predeter-minada separa los dialectos de cada lenguaje con un guión bajo (_) pero se puede forzara usar como separador otros caracteres con el parámetro ‘sep’. En caso de no reconocerel lenguaje, dispara una excepción del tipo UnknownLocaleError. Si el lenguaje es de-tectado exitosamente la regla asigna ‘language’ como tipo de categoría y una afinidadde 0.99 pues los resultados del Babel son deterministas: reconoce el lenguaje o lanza unaexcepción.

Con ninguna de estas dos reglas se registra nuevo conocimiento a la memoria de trabajodel motor de inferencias, pues son procesos que tienden a dar el mismo resultado siempre,no consumen consultas en la red y son computacionalmente livianos; ello permite queejecutar cada una de estas reglas no amerite generar nuevo conocimiento.

6.3.3.3. Módulo Wikipedia

El módulo Wikipedia fue programado para permitir el uso del servicio de la enciclopediaen linea Wikipedia (en en.wikipedia.org). Este servicio, como fuente de datos, proveegran flexibilidad dado que no limita la cantidad de búsquedas que se pueden hacer a laplataforma; sin embargo, los datos son difíciles de procesar ya que el servicio los facilitaen lenguaje natural, no de una manera estructurada. De esta manera, se recurre a un

Page 50: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

42

procesamiento básico de lenguaje natural y a las funcionalidades de minado de datos paraWikipedia, todos provistos por Pattern.

La regla creada para hacer uso del módulo fue attribute_wiki_is:

Algoritmo 6.10 Regla 4: attribute_wiki_isTal como está definida en el archivo de base de reglas, la cual hace un llamadoa la función Python wikipedia.

1 attribute_wiki_is2 use attr_is ($attr ,$name ,$type , $affinity )3 when4 python5 import utils6 result = utils. wikipedia (engine , $attr)7 check result8 $affinity =result [3]9 check $affinity > 0.510 $type=result [2]11 $name=result [1]

Por su extensión y complejidad, se omitió el código completo de la función utils.wikipedia,utilizada en la linea 6. Dicha función se encarga de hacer la búsqueda del artículo de Wi-kipedia que concuerde con el término por descubrir. En este caso, se excluyeron los casosen que la búsqueda resulta en una página de “desambiguación”18, también se hace uso delinfobox19 para extraer algunos términos relevantes antes de analizar el artículo completo.El algoritmo que extrae la definición del término se puede resumir en los siguientes pasos:

18Se trata de un artículo especial que resulta de buscar un término que está relacionado con múltiplestemas y da al usuario la opción de elegir el tema adecuado.

19El infobox es el recuadro ubicado en la parte superior derecha en algunos de los artículo de Wikipedia.

Page 51: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

43

Algoritmo 6.11 Función: utils.wikipedia (Algoritmo de implementación)Algoritmo desarrollado para la implementación de la función utils.wikipediay trata de obtener la categoría de un término dado realizando búsquedas de losartículos de Wikipedia.

Dado un atributo que se necesita definir, se obtiene el primer artículo del servicio deWikipedia asociado a ese atributo.Si el articulo existe y no es desabiguación, entonces:

Se extraen las definiciones contenidas en el infobox.

Se toma la sección principal del artículo (main section).

Se remueven las tablas y las referencias.

Se extraen los términos candidatos:

• Usando técnicas básicas en Pattern para el procesamiento lenguaje natural, seextraen palabras que pueden representar atributos del término buscado: porejemplo: “Blender es un programa informático multi plataforma”.

De los datos del infobox y los candidatos obtenidos, se busca determinar cuál es lamejor opción para el tipo de categoría del término buscado, para esto se aplicó lasiguiente fórmula:

• Cada candidato, c, se agrupa según su tipo de categoría, t, definidos por mediodel motor PyKE.

• Se tiene m, como la cantidad total de c.• Se tiene n (t), como la cantidad de c en t.• Se calcula a (t), que es el promedio de las afinidades de cada c en t.• Se obtiene A, que es el promedio simple de afinidades de cada a (t).• Por último se calcula x (t), como la afinidad que tiene t como el mejor tipo de

categoría y está definido por la fórmula:

x (t) =a (t) + n(t)

m+ A

3

◦ De esta manera se penaliza los tipos que tienen afinidades muy altas paracada candidato c pero tienen pocos elementos, en contraste con aquellostipos que tienen buena afinidad y más elementos.

Page 52: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

44

Una vez obtenido el tipo de categoría (t) que parece ajustarse mejor a los candidatosencontrados, se verifica que su afinidad (x (t)) sea mayor a 0,5. De esta manera, la reglase asegura que solo aquellos resultados con buenos niveles de afinidad sean tomados encuenta, reduciendo la posibilidad de falsos positivos, y luego se enlazan las variables depatrón faltantes.

6.3.3.4. Módulo Websort

El módulo Websort se usa como alternativa final en la búsqueda de nuevo conoci-miento cuando las búsquedas en Wikipedia no dan los resultados esperados. La reglaattribute_websort_is utiliza la cantidad de resultados retornados por un motor debúsqueda para un término y un contexto dados, ordenando los datos por cantidad deresultados; es decir, entre más resultados se obtengan en una categoría, más puntajeobtiene para ser parte de esa categoría.

Algoritmo 6.12 Regla 5: attribute_websort_isTal como está definida en el archivo de base de reglas, la cual hace un llamadoa la función Python websort.

1 attribute_websort_is2 use attr_is ($attr ,$name ,$type , $affinity )3 when4 python5 import utils6 result = utils. websort (engine , $attr)7 check result8 $affinity =result [0]9 check $affinity > 0.610 $name1=result [1]11 find_type ($name1 ,$type1)12 $type=$type113 $name=$name1

El módulo utils.websort, empleado en la línea 6, hace uso del método sort de lalibrería pattern.web, el cual retorna una lista de tuplas de tipo (porcentaje, término)para una serie de términos de búsqueda en un contexto dado. Dicha lista se encuentraordenada con base en la cantidad de resultados. Para utilizar esta función, se cambiaronlos parámetros de búsqueda: se utilizó como contexto el atributo que la regla de PyKEtrata de averiguar y se tomaron como términos de búsqueda algunos tipos de categoría.

Page 53: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

45

Los tipos de categoría aplicados en la función son: organization, software, architecture,operating system y version. Por último, de los resultados ordenados se extrae el primeroy se retorna como resultado de la función websort. No obstante, esta función se catalogacomo poco confiable, pues los resultados del buscador no se analizan semánticamente ypueden ser muy variados e incluir muchos falsos positivos. Por esta razón, en la línea 9,la regla solo toma en cuenta resultados sobre un porcentaje de 0,6 como afinidad.

Como el módulo hace uso del nombre natural de las categorías para realizar las búsquedas,la regla debe ‘traducir’ estas categorías a los nombres usados internamente en la base deconocimiento (véase Algoritmo 6.3). Por este motivo, en la línea 11 se hizo uso de otraregla llamada find_type, cuya lógica permite la traducción del nombre natural pormedio de las sentencias type_alias presentes en la base de hechos.

6.3.3.5. Módulo Freebase

El módulo Freebase es un envoltorio o wrapper que fue programado para tener acceso alservicio de Freebase. Freebase (en www.freebase.com) es una extensa y compleja base deconocimientos abierta, mantenida por Google, que provee una interfaz de programación(API) mediante la cual se pueden realizar consultas para extraer conocimiento. Esta basede datos está ordenada por categorías y es representada usando grafos20, de modo quelos diferentes términos y su información se relacionan con otros y forman, así, una red deconocimiento. El problema con el servicio Freebase es que tiene una cantidad de consultaslimitada por día; por tanto, no puede usarse libremente como única fuente de datos.

El módulo que se desarrolló para consultar Freebase, a diferencia de los otros módulos,no es usado por ninguna regla de PyKE para que no agotar el límite de consultas; por elcontrario, el módulo se usa para extender el conocimiento base antes de iniciar el motor deinferencia mediante búsquedas a la base de conocimientos de Freebase, así obtiene todo elconocimiento posible sobre el primer término encontrado en la estructura de directorios,es decir, el directorio raíz que, generalmente, está asociado al desarrollador del software.

El módulo contiene la clase Freebase, la cual se basa en SearchEngine de pattern.web,que es posible extender por medio de herencia. Aprovechando esta capacidad, se creó uncódigo para procesar el API provisto en la documentación de Freebase e interpretar losresultados mediante llamados al motor de inferencias de PyKE para interpretar los datosy generar nuevo conocimiento sobre el ya existente. Este proceso se repite recursivamentehasta que Freebase no pueda encontrar más datos relevantes.20Un grafo es un conjunto de nodos unidos por enlaces llamados aristas. Permiten representar relaciones

de elementos de un conjunto dado.

Page 54: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

46

Una vez definido el conocimiento inicial, el sistema lo almacena como la nueva base dehechos para el repositorio que se está analizando; de esa manera, no es necesario efectuarel proceso cada vez que se ejecute el análisis correspondiente. Luego, se continúa con elproceso normal iterando por cada uno de los directorios y archivos para definir todoslos términos y atributos posibles por medio del motor de inferencias, hasta encontrar losinstaladores correspondientes.

6.4. Experiencia de desarrollo

Como se ha mencionado antes, durante el proceso realizado para el curso de “Diseñode interfaz humano-computador” se creó un prototipo de interfaz en la que el usuariopodía buscar y descargar el instalador que necesitaba, de acuerdo con las característicasdel ambiente en donde lo ejecutaría. Al final del proceso de prototipado se hizo notoriala necesidad de un componente que permitiera cargar la información contenida en elrepositorio de software a la interfaz gráfica pues al momento los prototipos solo mostrabandatos estáticos y de prueba.

En este punto es donde esta investigación toma lugar. Durante el proceso de desarrollodel sistema automatizado se afrontaron varios obstáculos con los diferentes componentesque integraron la solución. El primer paso fue sobrepasar la curva de aprendizaje naturaldel lenguaje de programación en que estaba escrito PyKE, Python. Desde la experienciadel desarrollador fue fácil aprender las bases del lenguaje, sin embargo se necesito siempreir más allá para poder trabajarlo de manera adecuada con PyKE y los diferentes módulosrequeridos para cumplir con el objetivo de la investigación.

Se requirió desarrollar una manera de pasar los datos desde los módulos en Python deregreso al flujo de inferencia PyKE y a la vez poder definir el manejo de errores en elsistema y los conceptos desconocidos. Esto se solucionó con tuplas y diccionarios que sonmuy comunes en Python, así como la definición del concepto de ‘Desconocido’ (unknown)dentro del flujo de inferencia del sistema, de manera que si no se lograba definir un términoera marcado como desconocido.

Otra de las dificultades estuvo relacionada con las diferentes librerías a las que se recurrió,como el caso de Babel, Pattern y Freebase, ya que para saber utilizar sus diferentesmódulos y APIs fue necesario superar nuevas curvas de aprendizaje. Con Pattern fuenecesario investigar en la documentación cuáles eran los módulos que más se adecuabana la funcionalidad deseada y cómo podían incorporarse en el motor de inferencia. Porotro lado, con Freebase se debió aprender el uso de su API, la sintaxis de las búsquedas y

Page 55: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

47

cómo procesar los resultado que retornaba para cada búsqueda en datos utilizables parael motor de inferencia.

Además, uno de los inconvenientes en cuanto al tiempo empleado para la depuración,durante el desarrollo del sistema, fue la cantidad limitada de consultas diarias para el usode algunos APIs, como el de Freebase, pues, al tratar de inferir los términos, el sistemahace búsquedas exhaustivas en cada API y los límites se alcanzan rápidamente. En cuantoel limite de accesos es alcanzado el sistema no es capaz de obtener más datos del servicio,por lo tanto la cantidad de resultados que se obtienen desde alguno de estos serviciosposeen una cota superior diaria preestablecida.

Sin embargo, el desarrollo del sistema experto demostró mejoras con cada iteración peroel tiempo requerido para implementar algoritmos más complejos para la extracción delconocimiento sobrepasaba las expectativas de esta investigación. Esto significa que, enuna etapa posterior, los procesos de búsqueda pueden ser refinados. Este refinamientose extiende más allá del alcance de este trabajo. Se llevó a cabo la implementación delmodelo propuesto bajo las limitaciones antes mencionadas.

Page 56: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

48

7. Evaluación de la precisión delsistema

Con el modelo definido en la sección anterior y la implementación de una propuesta desistema basado en dicho modelo, es necesario entonces verificar la precisión del procesoautomático de identificación de instaladores y la asignación de los términos a sus catego-rías. Esta sección corresponde al cuarto objetivo de la investigación. Para alcanzar dichoobjetivo se plantea la siguiente metodología de ejecución de pruebas.

7.1. Ejecución de pruebas

Figura 7.1.: Metodología de pruebasEl diagrama muestra el flujo de trabajo de las pruebas donde los usuarios y elsistema experto acceden al repositorio en busca de los instaladores para luego,utilizando una plantilla, crear un índice con los instaladores y sus metadatoscategorizados.

Page 57: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

49

Para esta investigación se recurrió a cuatro personas usuarias del repositorio EspejosUCR,las cuales cuentan con conocimientos en áreas de la computación mínimo cuarto añode la carrera de Bachillerato en Computación e Informática o alguna carrera afín .Además, son usuarios regulares de servicios similares al de EspejosUCR, de esta maneraestán familiarizados con las estructuras de directorios y los contextos en los que se muestrala información dentro de ellos. En otras palabras, se trata de usuarios avanzados contralos que se enfrentará el modelo propuesto; quedando fuera del alcance de estas pruebasuna comparativa con usuarios finales sin tanta experiencia en el campo. Debido a queno se pudo llevar a cabo una muestra aleatoria entre una gran población de usuarios conestas características, este trabajo corresponde a un caso de estudio donde los usuariosfueros seleccionados mediante el criterio de oportunidad y el tamaño de la muestra no esrepresentativo.

Para evaluar el sistema se procedió a llevar a cabo una prueba que consistió en comple-tar una rúbrica con los atributos categorizados para cada instalador (a la que se llamóíndice de metadatos, ver Tab. 7.1) en un repositorio de pruebas. Cada usuario recibe unapuntuación dependiendo de la cantidad de aciertos y errores al completar su índice. Lacalificación de la rúbrica fue realizada por el investigador, comparando los resultadoscontra un índice de control creado en forma manual previo a la calificación. El sistemaautomático fue considerado un usuario más al que se le calificó de igual manera que a losdemás usuarios.

Los cuatro usuarios, individualmente y luego de darles las instrucciones respectivas, rea-lizaron un recorrido manual del repositorio de pruebas y llenaron un índice cada uno.Asimismo, el sistema fue programado para generar un índice de metadatos de formaautomática luego de asignar el repositorio de pruebas en su archivo de configuración.

El repositorio de pruebas fue obtenido de la lista de proyectos utilizada al principio de lainvestigación. Se seleccionó el repositorio del proyecto Mozilla porque era el repositorioque presentaba una mayor variedad de datos, principalmente con versiones y lenguajes,en contraste a los otros cuatro.

Dado que las estructuras de directorios y la cantidad de instaladores de la mayoría derepositorio son muy extensas, se creó un subconjunto del repositorio seleccionado pararealizar las pruebas. El subconjunto fue formado por un grupo aleatorio de 50 instaladoresa partir del proyecto Mozilla, sin modificar sus rutas relativas originales. Las pruebas decada uno de los usuarios se realizaron en este mismo repositorio para tener una basecomún pero no se les notificó a los usuarios sobre la cantidad total de instaladores.

Todos los usuarios seleccionados para esta prueba crearon el índice con los tipos de

Page 58: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

50

categorías previamente definidos en esta investigación y se basaron en la siguiente tabla:

Usuario <U> Ruta Nombre Categoría <c>Instalador <i> <Ruta completa del

instalador><Nombre delinstalador>

<Atributo>

Instalador <i> <Ruta completa delinstalador>

<Nombre delinstalador>

<Atributo>

Tabla 7.1.: Rúbrica: Índice de metadatos

La tabla anterior muestra la plantilla del índice de metadatos que generó cada usuario.A continuación, el detalle:

La primera celda muestra el identificador del usuario que llenó la tabla: Usuario 0,Usuario 1, etc.

La primera columna enumera los instaladores: Instalador 0, Instalador 1, . . . ,Instalador <i>.

La segunda y tercera columna muestran la ruta relativa a cada instalador, partiendodesde la raíz del repositorio y separando la ruta del nombre del archivo.

Las columnas siguientes se asignan de manera consecutiva, una para cada tipo decategoría definida. El usuario colocó en cada una de estas columnas el atributoque es identificado en dicha categoría según su criterio personal (o el resultadoautomatizado en el caso del usuario que ejecuta el sistema).

• Si no hay un atributo para cierta categoría en un instalador <i>, se dejó lacelda en blanco o se escribió ‘NS/NR’ (No sé/No respondo).

• Si un atributo puede estar en varias categorías, se colocó en todas las columnasa las que pertenece.

Cada usuario llena la tabla individualmente, según su experiencia durante la prueba,y se toma el tiempo que tardó en ejecutarla.

Por ejemplo, al realizar el recorrido manual del repositorio, el Usuario 0 y el Usuario 1detectan los siguientes 3 instaladores: 1) /programaX/windows/es/instalador.exe; 2)/programaX/linux/fr/instalador.tar.gz; 3) /programaY/windows/instalador.exe.Cada usuario crea su índice y las tablas quedan como se muestra en Tab. 7.2.

Page 59: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

51

Usu

ario

0R

uta

Nom

bre

Cat

egor

íaP

rogr

ama

Cat

egor

íaSi

st.

Ope

r.C

ateg

oría

Leng

uaje

Instalad

or0

/program

aX/w

indo

ws/es/

instalad

or.exe

programaX

windo

ws

es(E

spañ

ol)

Instalad

or1

/program

aX/linux

/fr/

instalad

or.ta

r.gz

programaX

linux

fr(Francés)

Instalad

or2

/program

aY/w

indo

ws/

instalad

or.exe

programaY

windo

ws

Usu

ario

1R

uta

Nom

bre

Cat

egor

íaP

rogr

ama

Cat

egor

íaSi

st.

Ope

r.C

ateg

oría

Leng

uaje

Instalad

or0

/program

aX/w

indo

ws/es/

instalad

or.exe

programaX

windo

ws

es(E

spañ

ol)

Instalad

or1

/program

aX/linux

/fr/

instalad

or.ta

r.gz

programaX

linux

–Instalad

or2

/program

aY/w

indo

ws/

instalad

or.exe

programaY

windo

ws

Tab

la7.2.:Ejem

plode

índicesde

metad

atos

Page 60: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

52

7.2. Asignación de puntaje

Para la comprobación de los resultados, se tomó la tabla con el índice creado por cadausuario y comparó con el índice de control. El investigador, según su criterio y el conoci-miento obtenido durante el trabajo, definió la asignación de puntos en el índice de controlde la siguiente manera:

Ruta completa al instalador; 1 punto. Cada instalador con su ruta debe ser evaluadaen el control.

Categorías con atributo: 1 punto. Se puntúa cada atributo del instalador que seacategorizable.

Categorías sin atributo: 0 puntos. No se puntúan las categorías sin atributo puespueden existir instaladores que no poseen un atributo para esa categoría.

Así, el índice de control posee un puntaje total de 37821. Al comparar el índice generadopor el usuario contra el de control se le asignó 1 punto por cada acierto y 0 puntos porcada respuesta incorrecta. Además, el índice de control posee categorías que puedes tenermúltiples respuestas correctas; como por ejemplo una versión con número ‘0.7’ que, sila ruta del archivo no lo indica explícitamente, puede tratarse de una versión estable ouna versión de desarrollo pues es común que las versiones de desarrollo inicien con 0, sinembargo, no es una regla.

Note que en el Tab. 7.2, el Usuario 1 no detectó correctamente el atributo para el lenguajedel Instalador 1, utilizando la asignación de puntaje aquí descrita este usuario habríaregistrado 10 aciertos, mientras que el Usuario 0 obtiene un total de 11 ya que llenótodos las celdas de la rúbrica de la manera correcta.

Del índice evaluado de cada usuario se obtuvo la cantidad de aciertos y se calculó elpuntaje ponderado tomando como referencia el puntaje total del índice de control.

7.3. Recolección de las observaciones

El ejercicio de generación manual del índice de instaladores se estimó de entre 60 a 90minutos dado el tamaño del repositorio de pruebas. A cada usuario se le entregó unahoja electrónica basada en la plantilla descrita en la Tab. 7.1 y un acceso al repositoriode pruebas con los 50 instaladores. A los usuarios seleccionados no se les hizo explícitala cantidad de instaladores ni se mencionó si el repositorio era compartido o no con21Ver índice de control en sec.A.1

Page 61: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

53

otros miembros de la prueba. Por condiciones de horario y comodidad de las personasparticipantes, las pruebas se realizaron a lo largo de varios días.

Dado que la cantidad de tiempo consumida por un usuario para llevar a cabo la tarea seconsidera importante, se llevó a cabo un control del tiempo que le tomaba a cada usuariocompletar la tarea.

Durante la realización de las observaciones se documentó todo el proceso. Se dio énfasisa la forma en que los usuarios resolvían sus dudas y se evitó darles algún tipo de ayudao información que no estuviera previamente disponible como parte de las instrucciones.No existió ningún tipo de piloto con los usuarios.

Se utilizó una hoja electrónica para obtener las rúbricas de los usuarios, la cual contabacon campos para la asignación de puntajes y cálculo automático para las sumas los mismoel cual fue validado previo al experimento.

Entonces, los resultado obtenido luego de seguir esta metodología se presentan en elsiguiente capítulo.

Page 62: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

54

8. Análisis de resultados

Las pruebas se llevaron a cabo, según se planteó en la Evaluación de la precisión delsistema, utilizando las categorías definidas en la sec. 6.3.1 Modelado de categorías. Enel apartado de Resultados de los usuarios se detallan los resultados y experiencias delos usuarios que realizaron la prueba manualmente. Mientras, en la sec. 8.2 se describenlos resultados del sistema experto. En ambos apartados se omiten las tablas de índicesresultantes dada su extensión; estos se encuentran en el Apéndice A. Por último, en lasec. 8.3 Comparación de resultados se muestran los puntajes obtenidos por los usuariosal final de la prueba y una descripción general de los resultados de los índices generadosmanualmente por los usuarios y el índice generado al utilizar el sistema experto.

8.1. Resultados de los usuarios

Durante la prueba, se observó las reacciones de los usuarios, quienes expresaron diferentesinquietudes cuya solución debieron buscar por sus propios medios. Por ejemplo, existíantérminos que no conocían como ‘funelcake’ o los instaladores con la palabra ‘stub’ni sabían si eran categorizables, pues no comprendían su significado. Al existir pocascategorías (7 en total) algunos términos no eran categorizables por lo que el usuariodebía descubrir, como parte de la prueba, cuáles sí lo eran.

Cada usuario tomó las decisiones que le parecían correctas. Algunos buscaron en Internetel significado de los términos que no conocían y otros decidieron ignorarlos para, según sucriterio, ahorrar tiempo. Los códigos de lenguaje fueron los atributos más ignorados, 3 delos 4 usuarios en la prueba manual no intentaron ni siquiera buscar el código. El Usuario3 el cual poseía un método bastante sistemático22 para llenar la tabla del índicedecidió identificar los lenguajes al final del proceso. Primero se enfocó en identificar losinstaladores y después, deduciendo que se trataba de códigos de lenguaje, realizó una

22Realiza el recorrido en profundidad primero, copiando y pegando la ruta y nombre del archivo. Losdatos que reconoce los categoriza de inmediato, mientras los otros, como el lenguaje, los deja para elfinal del proceso para categorizarlos según lo que logra descubrir en Internet.

Page 63: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

55

búsqueda final en Internet para identificar la mayoría. Otros usuarios solo identificaroncódigos de lenguaje con los que están más familiarizados como ‘en_US’ para ‘Inglés’ o‘Inglés (Estados Unidos)’ y ‘es_MX’ para ‘Español (México)’.

En cuanto al recorrido de los directorios, los participantes lo realizaron usando la técnicade profundidad primero, generalmente siguiendo un orden alfabético. Este orden ayudaa detectar la mayor cantidad de instaladores. Sin embargo, el repositorio es bastantehomogéneo en cuanto a las rutas de archivo, por lo que crea patrones comunes quetienden a confundir a los usuarios y los puede inducir a cometer errores al copiar y pegar.

Tanto el Usuario 1 como el 2 fallaron al detectar correctamente el instalador ‘FirefoxSetup Stub 27.0.exe’, ubicado en el directorio ‘/pub/mozilla/firefox/releases/27.0/win32/bs’ pues simplemente copiaron el nombre del instalador anterior (‘FirefoxSetup 27.0.exe’) en vista de que les pareció que se cumplía un patrón común, sintomar en cuenta que ese dato podía cambiar. Pese a esto, ambas personas detectaroncorrectamente los dos instaladores ubicados en ‘/pub/mozilla/firefox/releases/27.0/win32/zu’: ‘Firefox Setup Stub 27.0.exe’ y ‘Firefox Setup 27.0.exe’, mientrasen esta misma ruta el Usuario 3 falló al copiar y pegar el nombre sin el término ‘Stub’.

Conforme la tarea avanzaba, se hizo notorio lo tedioso del proceso al notar cómo losusuarios reducían su velocidad de trabajo y algunos cometían más errores. Un caso fue elUsuario 2 que copió y pegó el término para la Arquitectura del instalador en la categoríade Sistema Operativo y, sin percatarse, lo volvió a hacer con el siguiente. De cuatro perso-nas que realizaron la prueba manual, solo el Usuario 0 logró detectar los 50 instaladores;los Usuarios 1 y 2 se saltaron un instalador cada uno (distinto en cada caso) y el Usuario3 omitió dos instaladores al ignorar dos carpetas que contenían un instalador cada una.

8.2. Resultados del sistema experto

El Usuario 4, que corresponde al sistema experto, fue sometido a las mismas condicionesque el proceso manual (formato, repositorio y supuestos), con la diferencia de que lageneración del índice se realizaba automáticamente por medio del motor de inferencias.El sistema experto se ejecutó luego de su apropiada configuración23 con la siguiente listade comandos:

23La configuración consta de la ruta a la raíz del repositorio y de bitácoras (usadas durante el desarrollo).

Page 64: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

56

Algoritmo 8.1 Ejemplo de ejecución del sistema expertoSe asume que se está utilizando GNU/Linux y el sistema experto está en eldirectorio personal en la carpeta llamada ‘agente’.

1 ~$ cd agente/2 ~$ time python ./ main.py --name mozilla

En la línea 1, el usuario se sitúa en el directorio donde se encuentra el sistema experto(llamado agente). Luego, en la línea 2, el comando time permite tomar el tiempo quetarda la ejecución del sistema (no es necesario durante una ejecución normal), mientrasmain.py es el script que arranca el motor de inferencia y el parámetro --name define elnombre del archivo de configuración que es cargado.

El sistema tardó 10 minutos para completar la tarea, durante los cuales las bitácoraspermitieron visualizar el proceso que realizaba el motor de inferencia: primero expandíael conocimiento inicial utilizando el módulo de Freebase; luego, llevaba a cabo el recorridodel directorio, en profundidad primero, para identificar los términos.

Los resultados fueron mixtos, utilizar la librería Babel le dio al sistema lo que necesitabapara reconocer los diferentes lenguajes en los que se encontraba el instalador. Por otrolado, en la categoría de Arquitectura solo reconoció aquellas que estaban explícitas como‘x86_64’; mientras, en atributos compuestos como ‘win32’ no le era posible identificar eltérmino de la arquitectura de 32 bits.

Otras categorías como Release no se detectaron, pues no había atributos con términosrelacionados, a excepción del instalador ‘firefox-27.0.source.tar.bz2’ que fue iden-tificado como código fuente. Durante el proceso manual, los usuarios asumían que todoseran instaladores estables porque no había nada que indicara lo contrario o, bien, to-dos estaban dentro de un directorio llamado ‘releases’. Esta deducción es válida por ello,los puntos fueron asignados en los casos correspondientes; no obstante, el sistema deinferencias no podía asumir eso de la misma manera.

Uno de los errores detectados fue con los instaladores del navegador Camino. La lógica deinferencia encontró que el término le corresponde a un Navegador Web (‘Web Browser ’)y asignó este término a la categoría de Proyecto en lugar del término de ‘Camino’, queera el valor adecuado. Otro comportamiento que generó errores está relacionado conque el sistema siempre identifica los instaladores por extensión; sin embargo, no logródetectar ‘Camino-0.7.dmg.gz’, ubicado en ‘/pub/mozilla/camino/releases’, porquela extensión ‘gz’ no se encontraba en la base de conocimiento como tal, sino la conjunción‘tar.gz’.

Page 65: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

57

8.3. Comparación de resultados

Para realizar una comparación entre el proceso manual y el automático se tomó en cuentamás de una sola variable, ya que varios factores estuvieron involucrados en el análisis delrepositorio. Por ejemplo, si se toma en cuenta solo la cantidad de aciertos, hay unavictoria directa del proceso manual que, aunque puede ser impreciso en algunos aspectos,obtuvo los tres mejores resultados (como se muestra en la Tab. 8.1), mientras el sistemaautomático obtuvo el cuarto puesto, superando solo a un usuario.

No obstante y como es de esperar, al comparar el tiempo de ejecución del proceso automá-tico, este es radicalmente más bajo que el de los usuarios, con la ventaja adicional de queel sistema experto no se cansa de buscar sin importar el tamaño del repositorio, mientrasque, como se mencionó antes, los usuarios mostraron una reducción del rendimiento entremás larga era la tarea.

Usuario Duración (m) Aciertos Efectividad PromedioUsuario 0 109 318 0,84Usuario 1 43 334 0,88Usuario 2 64 273 0,72Usuario 3 47 350 0,93

Usuario 4 (Sistema) 10 293 0,77Tabla 8.1.: Tiempos y aciertos de los usuarios

Es así que para realizar el primer análisis del rendimiento de los 5 usuarios se utilizaron2 factores: la duración de la prueba y la efectividad promedio de los aciertos. La columnade ‘Duración’ de la Tab. 8.1 tiene su representación gráfica en la siguiente figura, dondese muestra la duración en minutos de la tarea realizada.

Page 66: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

58

Figura 8.1.: Duración de la prueba en minutos

Por otro lado, para la efectividad promedio de aciertos se calculó según la cantidad totalde aciertos descritos en la sec. 7.2 y está representada en el siguiente gráfico (convertidoa base 100) .

Page 67: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

59

Figura 8.2.: Efectividad promedio de aciertos

En el gráfico anterior se observa cómo el sistema experto (Usuario 4) posee una efectividadpromedio apenas por encima del Usuario 2. El Usuario 0 obtuvo mejor puntaje que elsistema experto pero tardó más tiempo realizando la tarea que cualquiera de los demásusuarios. Asimismo, los usuario 1 y 3 obtuvieron los mejores puntajes de todos los usuariossobrepasando el 86% de efectividad.

Por otro lado, si se toma en cuenta que el repositorio de pruebas con 50 instaladores tomóun tiempo promedio de 65,7 minutos (en el proceso manual) y el repositorio de Mozillacompleto consta de aproximadamente 22 mil archivos, el proceso manual tardaría unas482 horas-hombre en realizar la tarea, o lo que es lo mismo, 20 días (en jornadas de 24horas horas por día); mientras el sistema automático realizaría la tarea en 73 horas.

Page 68: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

60

Figura 8.3.: Duración aproximada con el repositorio completo de Mozilla

Si aumentamos la escala a todos los repositorios alojados en EspejosUCR, según lo quese definió en el Capítulo 5, se tendría un aproximado de 1 millón de archivos. Entonces,a esta escala el proceso manual podría tardar el equivalente a 2 años, 5 meses, 28 días y17 horas. Mientras que el sistema experto realizaría el proceso en, aproximadamente, 4meses, 16 días y 21 horas.

Figura 8.4.: Duración aproximada con todos los repositorios en EspejosUCR

Así, el sistema experto lograría un tiempo 6 veces menor teniando una efectividad pro-medio del 77%; siendo el promedio de efectividad alcanzado entre todos los usuarios de

Page 69: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

61

la prueba, en conjunto, de 84%.

Figura 8.5.: Promedio de la efectividad de los usuarios comparado con el sistema

En este segundo análisis se observó que el sistema experto puede manejar más fácilmentegrandes volúmenes de datos en poco tiempo, lo que es muy beneficioso para un repositoriode software como EspejosUCR, el cual no puede ser procesado manualmente pues es unatarea muy difícil para un humano, dado el tiempo que le toma. Pese a que el sistemaaun puede mejorar, en su estado actual ya puede suplir la necesidad básica de generarun índice parcial de los instaladores de software y este índice puede, luego, ser usado porcualquier otro programa que lo requiera.

Page 70: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

62

9. Conclusiones

Este trabajo de graduación desarrolló una propuesta que utiliza un sistema experto basa-do en el motor de inferencias de PyKE para automatizar la categorización de instaladoresalojados en el repositorio de software libre llamado EspejosUCR.

Realizando una revisión bibliográfica de alternativas de software ya existentes se concluyóque no había un programa que cumpliera con las metas estipuladas para este proyecto.Se revisaron cinco alternativas pero ninguna poseía la propiedad de manejar automática-mente la estructura de directorios o requería de que se modificara dicha estructura paraadecuarla al sistema.

Luego, mediante la selección y posterior revisión manual de cinco repositorios de softwa-re alojados en EspejosUCR se logró definir las características necesarias para crear unmodelo de sistema experto para la categorización automática de instaladores de software.Con esto se definieron 7 categorías en las que se clasifica la información obtenida acercadel instalador durante el proceso de inferencia automática. Las categorías, a saber, son:Desarrollador, Proyecto, Sistema Operativo, Arquitectura, Lenguaje, Versión, Release.

La definición del modelo y las categorías permitió crear la base de conocimientos y basede reglas para PyKE. Estos elementos son necesarios para iniciar la inferencia de lascategorías a las que pertenece cada término de la ruta de archivo de un instalador.Además de los hechos principales, era necesario crear alias para algunos de estos hechos,de manera que se pudiera relacionar conocimientos que tengan conceptos similares.

Así, la base de conocimiento está conformada de los hecho que representan términos, loscuales lograron detectarse durante la definición de las categorías, y de alias para dichostérminos. Mientras que la base de reglas se conforma de funciones que guían al motorde inferencias para interpretar los datos en su memoria de trabajo como respuestas apreguntas concretas utilizando encadenamiento hacia atrás.

Como parte de la base de reglas se desarrollaron módulos en Python que se integraron almotor de inferencias como parte de reglas específicas. El desarrollo completo del sistemaexperto no es trivial y conlleva retos a lo largo del proceso que cuentan desde la curva de

Page 71: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

63

aprendizaje del lenguaje de programación, las librerías y los APIs utilizados, la dificultadde depurar el sistema con los limites de consulta para los servicios web, los módulos deprocesamiento de lenguaje natural y la optimización del proceso.

Se logró, entonces, desarrollar los módulos de Python e integrarlos al proceso de catego-rización automática. Los mismos realizan consultas a servicios en Internet desde dondese obtienen datos que son procesados para generar nuevo conocimiento. Este nuevo cono-cimiento es agregado a la memoria de trabajo del sistema experto y ayuda a categorizartérminos que no están definido originalmente en el conocimiento base.

Luego, se aplicó la verificación de la precisión del sistema desarrollado al evaluarlo en uncaso de estudio con cuatro usuarios humanos en un repositorio de pruebas. Del repositoriose debía obtener y categorizar los términos de los instaladores allí alojados y generar asíun índice de dichos datos. El índice se comparó según los aciertos contra un índice decontrol generado manualmente por el investigador y que tiene una cantidad total de 378puntos.

Con los casos evaluados, el sistema experto no fue completamente preciso para detectary categorizar toda la información del repositorio. El sistema obtuvo un puntaje de 293,equivalente al 77% de los aciertos. Este puntaje fue mayor al de solo uno de los usuarioshumanos con 273 aciertos para un 72% del total de aciertos. Además está por debajode otros 3 usuarios que obtuvieron respectivamente el 84% (318 aciertos), 88% (334aciertos) y 93% (350 aciertos).

Como era de esperar, el sistema fue capaz de realizar la tarea de manera más rápida quetodos los participantes que utilizaron el proceso manual. Esto le da la ventaja al sistemaexperto de poder recorrer repositorios grandes en menos tiempo de lo que le tomaríaa un humano hacer toda la categorización; asimismo, el proceso puede ser ejecutadodiariamente en trabajos por lotes para que la información del repositorio se mantengasiempre actualizada.

A pesar de que ninguno de los cinco usuarios logró generar un índice completo del re-positorio, tanto el método manual como el automático reflejaron aciertos y desaciertosdurante su ejecución. Así, el proceso manual tiene la ventaja de la precisión humana,con la cual puede vincular de una manera más exacta los términos de la ruta de archivousando conceptos relacionados con conocimientos previos.

El investigador pudo notar durante proceso de observación que los usuarios se vieronafectados por el cansancio normal de un proceso repetitivo. Muchos de los errores duranteel proceso manual se dieran al copiar y pegar incorrectamente datos de los instaladores

Page 72: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

64

en el índice, pues los resultados mostraron que los usuarios confundieron los términos ylas categorías.

Por su parte, el proceso automático categorizó correctamente los términos, según el cono-cimiento disponible. La escasez de conocimiento no permitió detectar todos los atributos.Cabe destacar que las fallas en el sistema no fueron por causa de errores en el motor deinferencia de PyKE, sino más bien por la falta de refinamiento del conocimiento generalque podía obtenerse desde Internet. En este punto es donde hay trabajo por realizar paramejorar aun más la precisión del sistema. Recordemos que esto se debe a que los serviciosde búsqueda en Internet poseen una cota superior diaria.

Como posibles mejoras futuras se propone crear una regla en PyKE que haga uso delmódulo de Freebase durante la inferencia y no solo al inicio del proceso; esto permitiríamejorar la obtención de nuevo conocimiento y relacionarlo con otro que ya existe.

Asimismo, se puede agregar búsquedas completas en un motor de búsqueda comercial enlugar de utilizar solamente la función ‘sort’; estas búsquedas podría tomar los resultadosde la primera página y, realizando procesamientos de lenguaje natural, evaluar los con-ceptos más comunes en la búsqueda y relacionarlos con las categorías o con conocimientoya almacenado.

También es necesario agregar la lógica para trabajar sobre las páginas de desabiguación enWikipedia, las cuales pueden ayudar a ampliar las opciones del conocimiento que se puedeextraer de este servicio. Las páginas de desambiguación requerirían de un procesamientoextra para determinar cuáles son posibles páginas relevantes y cuáles no.

Para estas nuevas características es primordial mejorar los algoritmos de procesamientode lenguaje natural, los cuales actualmente son muy básicos dado que esta temática essumamente amplia y puede abarcar varias áreas de la computación y la lingüística queno eran parte de los objetivos de este proyecto.

Por otro lado, dado que esta investigación realizó un caso de uso limitado a una poblaciónmuy específica, se propone para futuro el extender este estudio a una población másamplia y aleatoria que no se limite solo a expertos en el uso del repositorio, sino tambiéna usuarios finales sin experiencia.

Asimismo, sería interesante determinar el impacto en ahorro de tiempo al hacer uso delsistema en un modo supervisado, donde un experto hace una revisión manual de los resul-tados parciales; comparado con realizar la misma tarea pero de manera completamentemanual.

Esta propuesta de sistema experto, entonces, logró automatizar gran parte de las labores

Page 73: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

65

de categorización, con el fin de optimizar las labores de administración del repositorio.Finalmente, dados los resultados, el modelo que se implementó puede ser una alternativaviable para la extracción de información estructurada de los instaladores contenidos enun repositorio de tipo espejo, que aun cuando no es tan preciso como el trabajo realizadopor humanos, puede ser ejecutado una mayor cantidad de veces y en un tiempo menor.

Page 74: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

66

Bibliografía

Anjaneyulu, K. (1998). Expert systems: An introduction. Resonance, 3(3):46–58.

Barreto, A. y Fortin, G. (1997). The impact of expert systems in the operation of a limekiln. In Proceedings, National Lime Association Operation Meeting, pages 908–915.

CLiPS Research Center (2010a). MBSP for python.http://www.clips.ua.ac.be/pages/MBSP. [Online; visitado 07-Marzo-2014].

CLiPS Research Center (2010b). Pattern. http://www.clips.ua.ac.be/pattern. [Online;visitado 05-Marzo-2014].

Feigenbaum, E. A. (1981). Expert systems in the 1980s. In State of the art report onmachine intelligence. Pergamon–Infotech, Maidenhead.

Feigenbaum, E. A., McCorduck, P., y Nii, H. P. (1988). The Rise of the Expert Com-pany: How Visionary Companies are Using Artificial Intelligence to Achieve HigherProductivity and Profits. Times Books.

Frederiksen, B. (2007). Pyke: Python knowledge engine. http://pyke.sourceforge.net/.[Online; visitado 14-Setiembre-2013].

Frederiksen, B. (2008). Applying expert system technology to code reuse with pyke. InPyCon 2008. [Online; visitado 11-Octubre-2013].

Free Software Foundation (2001). Philosophy of the GNU project.https://www.gnu.org/philosophy/. [Online; visitado 9-Noviembre-2013].

Mozilla Team (2010). Firefox mobile, weave, eu ballot, add-ons ma-nager, interns, test pilot, mdc, store, oopp, lightning, and more.https://blog.mozilla.org/about_mozilla/2010/02/02/firefox-mobile-weave-eu-ballot-add-ons-manager-interns-test-pilot-mdc-store-oopp-lightning-and-more. [Online;visitado 14-Setiembre-2013].

Open Source Initiative (2013). The open source definition.http://opensource.org/docs/osd. [Online; visitado 9-Noviembre-2013].

Page 75: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

67

Pultar, G. (1998). Automatically selecting a close mirror based on network topology. In12th Systems Administration Conference (LISA ’98), volume 98, pages 159–166.

Rosen, K. H. (2007). Discrete Mathematics and Its Applications. McGraw-Hill, 6taedition.

Smith, B. (2009). Microsoft statement on european commission decision.http://www.microsoft.com/en-us/news/press/2009/dec09/12-16statement.aspx. [On-line; visitado 14-Setiembre-2013].

Stallman, R. (2004). Software libre para una sociedad libre. Madrid: Traficantes deSueños.

The Babel Team (2013). Babel (the python internationalization library).http://babel.pocoo.org/. [Online; visitado 07-Marzo-2014].

Wai, K. S., Latif, A., Rahman, A., Zaiyadi, M., y Aziz, A. A. (2005). Expert system in realworld applications. http://www.generation5.org/content/2005/Expert_System.asp.[Online; visitado 21-Setiembre-2013].

Williams, S. (2002). Free as in Freedom: Richard Stallman’s Crusade for Free Software.O’Reilly.

Page 76: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

68

A. Rúbricas de usuarios

A.1. Control

Índice de control contra el que se comparó a los usuarios

Page 77: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

CO

NT

RO

LN

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

se

Inst

ala

do

r 0

Ca

min

o-0

.7.d

mg.

gzca

min

om

aco

sN

SN

S0

.7

Inst

ala

do

r 1

cam

ino

ma

cos

NS

2.1

.1S

tab

le

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gca

min

om

aco

sN

SN

S2

.0.8

Sta

ble

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

cam

ino

ma

cos

NS

2.0

Sta

ble

Inst

ala

do

r 4

fire

fox-

25

.0.1

.tar.b

z2fir

efo

xlin

ux

32

bits

Bo

snia

n2

5.0

.1S

tab

le

Inst

ala

do

r 5

fire

fox-

25

.0.1

.tar.b

z2fir

efo

xlin

ux

32

bits

Ma

ced

on

ian

25

.0.1

Sta

ble

Inst

ala

do

r 6

fire

fox-

25

.0.1

.tar.b

z2fir

efo

xlin

ux

32

bits

Zu

lu2

5.0

.1S

tab

le

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

SA

frik

aa

ns

25

.0.1

Sta

ble

Inst

ala

do

r 8

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

SA

kan

25

.0.1

Sta

ble

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

mo

zilla

fo

un

da

tion

Sta

ble

/Be

ta/D

ev

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-2

.1.1

-M

ulti

La

ng.

dm

gm

ozi

lla

fou

nd

atio

nM

ulti

ple

L

an

gua

ges

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses/

all

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses/

en

-US

mo

zilla

fo

un

da

tion

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/lin

ux-

i68

6/m

km

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/zu

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/a

fm

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

ak

mo

zilla

fo

un

da

tion

Page 78: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

S2

5.0

.1S

tab

le

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

fire

fox

ma

cos

NS

Ukr

ain

ian

25

.0.1

Sta

ble

Inst

ala

do

r 1

1fir

efo

xw

ind

ow

s3

2 b

its2

5.0

.1S

tab

le

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

64

bits

Afr

ika

an

s2

5.0

Sta

ble

Inst

ala

do

r 1

3fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

64

bits

25

.0S

tab

le

Inst

ala

do

r 1

4fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

64

bits

Alb

an

ian

25

.0S

tab

le

Inst

ala

do

r 1

5fir

efo

xw

ind

ow

s3

2 b

itsC

zech

25

.0S

tab

le

Inst

ala

do

r 1

6fir

efo

xw

ind

ow

s3

2 b

itsT

urk

ish

25

.0S

tab

le

Inst

ala

do

r 1

7fir

efo

xw

ind

ow

s3

2 b

its2

5.0

Sta

ble

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/n

som

ozi

lla

fou

nd

atio

nN

ort

he

rn

So

tho

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

km

ozi

lla

fou

nd

atio

n

/ pub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/w

in3

2-fu

nn

elc

ake

27/

en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xem

ozi

lla

fou

nd

atio

n

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/a

fm

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/e

s-M

Xm

ozi

lla

fou

nd

atio

nS

pa

nis

h

(Me

xico

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/s

qm

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/cs

Fire

fox

Se

tup

2

5.0

.exe

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/t

rF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/hy-

AM

Fire

fox

Se

tup

2

5.0

.exe

mo

zilla

fo

un

da

tion

Arm

en

ian

(A

rme

nia

)

Page 79: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

8fir

efo

xw

ind

ow

s3

2 b

itsIc

ela

nd

ic2

5.0

Sta

ble

Inst

ala

do

r 1

9fir

efo

xN

SN

SN

S2

7.0

sou

rce

Inst

ala

do

r 2

0fir

efo

xw

ind

ow

s3

2 b

itsA

stu

rian

27

.0S

tab

le

Inst

ala

do

r 2

1fir

efo

xw

ind

ow

s3

2 b

its2

7.0

Sta

ble

Inst

ala

do

r 2

2fir

efo

xw

ind

ow

s3

2 b

itsB

osn

ian

27

.0S

tab

le

Inst

ala

do

r 2

3fir

efo

xw

ind

ow

s3

2 b

its2

7.0

Sta

ble

Inst

ala

do

r 2

4fir

efo

xw

ind

ow

s3

2 b

itsZ

ulu

27

.0S

tab

le

Inst

ala

do

r 2

5fir

efo

xw

ind

ow

s3

2 b

itsZ

ulu

27

.0S

tab

le

Inst

ala

do

r 2

6th

un

de

rbird

linu

x6

4 b

itsB

ela

rusi

an

17

.0.8

Sta

ble

/ pub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/isF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

fou

nd

atio

n

/ pub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/so

urc

efir

efo

x-2

7.0

.so

urc

e.ta

r.bz2

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xem

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/bn

-BD

Fire

fox

Se

tup

2

7.0

.exe

mo

zilla

fo

un

da

tion

Be

nga

li (B

an

gla

de

sh)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

sF

irefo

x S

etu

p S

tub

2

7.0

.exe

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/e

n-U

SF

irefo

x S

etu

p

27

.0.e

xem

ozi

lla

fou

nd

atio

n

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

2

7.0

.exe

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/z

uF

irefo

x S

etu

p S

tub

2

7.0

.exe

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/be

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

fou

nd

atio

n

Page 80: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

7th

un

de

rbird

linu

x6

4 b

itsF

risia

n/D

utc

h1

7.0

.8S

tab

le

Inst

ala

do

r 2

8th

un

de

rbird

linu

x6

4 b

itsIn

do

ne

sia

n1

7.0

.8S

tab

le

Inst

ala

do

r 2

9th

un

de

rbird

linu

x6

4 b

its1

7.0

.8S

tab

le

Inst

ala

do

r 3

0th

un

de

rbird

ma

cos

NS

Ara

bic

17

.0.8

Sta

ble

Inst

ala

do

r 3

1th

un

de

rbird

ma

cos

NS

17

.0.8

Sta

ble

Inst

ala

do

r 3

2th

un

de

rbird

ma

cos

NS

Ro

ma

nia

n1

7.0

.8S

tab

le

Inst

ala

do

r 3

3th

un

de

rbird

ma

cos

NS

17

.0.8

Sta

ble

Inst

ala

do

r 3

4th

un

de

rbird

win

do

ws

32

bits

Ast

uria

n1

7.0

.8S

tab

le

Inst

ala

do

r 3

5th

un

de

rbird

win

do

ws

32

bits

Ind

on

esi

an

17

.0.8

Sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/fy-

NL

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/id

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

fou

nd

atio

n

/ pub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_64

/zh

-TW

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

fou

nd

atio

nC

hin

ese

(T

aiw

an

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

ar

Th

un

de

rbird

1

7.0

.8.d

mg

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/p

t-B

RT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

fou

nd

atio

nP

ort

ugu

ese

(B

razi

l)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

roT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

zh-T

WT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

fou

nd

atio

nC

hin

ese

(T

aiw

an

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/a

stT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/idT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

un

da

tion

Page 81: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

6th

un

de

rbird

win

do

ws

32

bits

Sin

ha

la1

7.0

.8S

tab

le

Inst

ala

do

r 3

7th

un

de

rbird

win

do

ws

32

bits

17

.0.8

Sta

ble

Inst

ala

do

r 3

8th

un

de

rbird

win

do

ws

32

bits

Jap

an

ese

24

.2.0

Sta

ble

Inst

ala

do

r 3

9th

un

de

rbird

win

do

ws

32

bits

24

.2.0

Sta

ble

Inst

ala

do

r 4

0th

un

de

rbird

SP

AR

C2

4.3

.0S

tab

le

Inst

ala

do

r 4

1th

un

de

rbird

32

bits

24

.3.0

Sta

ble

Inst

ala

do

r 4

2th

un

de

rbird

linu

x3

2 b

itsB

ulg

aria

n2

4.3

.0S

tab

le

Inst

ala

do

r 4

3th

un

de

rbird

linu

x3

2 b

its2

4.3

.0S

tab

le

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/si

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xem

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

un

da

tion

Ch

ine

se

(Ch

ina

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.2.0

/w

in3

2/ja

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xem

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.2.0

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

24

.2.0

.exe

mo

zilla

fo

un

da

tion

Ch

ine

se

(Ch

ina

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2m

ozi

lla

fou

nd

atio

no

pe

n/

sola

ris

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

mo

zilla

fo

un

da

tion

op

en

/ so

laris

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/b

gth

un

de

rbird

-2

4.3

.0.ta

r.bz2

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/pa

-IN

thu

nd

erb

ird-

24

.3.0

.tar.b

z2m

ozi

lla

fou

nd

atio

nP

un

jab

i (I

nd

ia)

Page 82: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

4th

un

de

rbird

linu

x3

2 b

itsT

urk

ish

24

.3.0

Sta

ble

Inst

ala

do

r 4

5th

un

de

rbird

ma

cos

NS

Da

nis

h2

4.3

.0S

tab

le

Inst

ala

do

r 4

6th

un

de

rbird

ma

cos

NS

Ba

squ

e2

4.3

.0S

tab

le

Inst

ala

do

r 4

7th

un

de

rbird

ma

cos

NS

Fin

nis

h2

4.3

.0S

tab

le

Inst

ala

do

r 4

8th

un

de

rbird

ma

cos

NS

Iris

h (

Ire

lan

d)

24

.3.0

Sta

ble

Inst

ala

do

r 4

9th

un

de

rbird

ma

cos

NS

24

.3.0

Sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/trth

un

de

rbird

-2

4.3

.0.ta

r.bz2

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/d

aT

hu

nd

erb

ird

24

.3.0

.dm

gm

ozi

lla

fou

nd

atio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

eu

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/fi

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

un

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/zh

-CN

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

un

da

tion

Ch

ine

se

(Ch

ina

)

Page 83: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

75

A.2. Usuario 0

Índice de categorización generado por el usuario 0

Page 84: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Usu

ario

0N

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

se

Inst

ala

do

r 0

Mo

zilla

Ca

min

oM

AC

de

sco

no

cid

oD

esc

on

oci

do

0.7

est

ab

le

Inst

ala

do

r 1

Mo

zilla

Ca

min

oM

AC

de

sco

no

cid

om

ulti

-idio

ma

2.1

.1e

sta

ble

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gM

ozi

llaC

am

ino

MA

Cd

esc

on

oci

do

De

sco

no

cid

o2

.0.8

est

ab

le

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

Mo

zilla

Ca

min

oM

AC

de

sco

no

cid

oe

n-U

S2

.0e

sta

ble

Inst

ala

do

r 4

Mo

zilla

fire

fox

Lin

ux

32

bs

25

.0.1

est

ab

le

Inst

ala

do

r 5

Mo

zilla

fire

fox

Lin

ux

32

mk

25

.0.1

est

ab

le

Inst

ala

do

r 6

Mo

zilla

fire

fox

Lin

ux

32

zu2

5.0

.1e

sta

ble

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gM

ozi

llafir

efo

xm

ac

de

sco

no

cid

oa

f2

5.0

.1e

sta

ble

Inst

ala

do

r 8

Fire

fox

25

.0.1

.dm

gM

ozi

llafir

efo

xm

ac

de

sco

no

cid

oa

k2

5.0

.1e

sta

ble

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gM

ozi

llafir

efo

xM

Ac

de

sco

no

cid

on

so2

5.0

.1e

sta

be

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-

0.7

.dm

g.gz

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-2

.1.1

-M

ulti

La

ng.

dm

g/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/a

ll/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/e

n-U

S/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/mk

Fire

fox

Se

tup

2

5.0

.1.

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/lin

ux-

i68

6/z

ufir

efo

x-2

5.0

.1.ta

r.bz2

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/a

f / pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/a

k / pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/n

so

Page 85: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

Mo

zilla

fire

fox

MA

cd

esc

on

oci

do

uk

25

.0.1

est

ab

le

Inst

ala

do

r 1

1M

ozi

llafir

efo

xW

ind

ow

s3

2e

n-U

S2

5.0

.1e

sta

ble

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2M

ozi

laF

irefo

xL

inu

x6

4 b

itsa

f2

5.0

Inst

ala

do

r 1

3fir

efo

x-2

5.0

.tar.b

z2M

ozi

laF

irefo

xL

inu

x6

4

bits

25

.0

Inst

ala

do

r 1

4fir

efo

x-2

5.0

.tar.b

z2M

ozi

laF

irefo

xL

inu

x6

4 b

itssq

25

.0

Inst

ala

do

r 1

5M

ozi

llafir

efo

xW

ind

ow

s3

2m

ulti

-idio

ma

25

.0e

sta

ble

Inst

ala

do

r 1

6M

ozi

llafir

efo

xW

ind

ow

s3

2m

ulti

-idio

ma

25

.0e

sta

ble

Inst

ala

do

r 1

7M

ozi

laF

irefo

xW

ind

ow

s3

2m

ulti

-idio

ma

25

.0e

sta

ble

Inst

ala

do

r 1

8M

ozi

lafir

efo

xW

ind

ow

s3

2D

esc

on

oci

do

25

.0e

sta

ble

Inst

ala

do

r 1

9M

ozi

llafir

efo

xD

esc

on

oci

do

De

sco

no

cid

oD

esc

on

oci

do

27

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

k / pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/win

32

-fu

nn

elc

ake

27

/en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/a

fS

our

ce

cod

e/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/e

s-M

Xe

spañ

ol-

xico

So

urce

co

de

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/li

nu

x-x8

6_

64

/sq

So

urce

co

de

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/c

sF

irefo

x S

etu

p

25

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/tr/

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/hy-

AM

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2/is

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/s

ou

rce

fire

fox-

27

.0.s

ou

rce

.tar.b

z2S

our

ce

cod

e

Page 86: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

0M

ozi

llafir

efo

xw

ind

ow

s3

2a

st2

7e

sta

ble

Inst

ala

do

r 2

1M

ozi

llafir

efo

xw

ind

ow

s3

2b

n-B

D2

7e

sta

ble

Inst

ala

do

r 2

2M

ozi

llafir

efo

xw

ind

ow

s3

2b

s2

7e

sta

ble

Inst

ala

do

r 2

3M

ozi

llafir

efo

xw

ind

ow

s3

2e

n-U

S2

7e

sta

ble

Inst

ala

do

r 2

4M

ozi

llafir

efo

xw

ind

ow

s3

2zu

27

est

ab

le

Inst

ala

do

r 2

5M

ozi

llafir

efo

xw

ind

ow

s3

2zu

27

est

ab

le

Inst

ala

do

r 2

6M

ozi

llath

un

de

rbird

Lin

ux

64

be

17

.0.8

Inst

ala

do

r 2

7M

ozi

llath

un

de

rbird

Lin

ux

64

fy-N

L1

7.0

.8

Inst

ala

do

r 2

8M

ozi

llath

un

de

rbird

Lin

ux

64

id1

7.0

.8

Inst

ala

do

r 2

9M

ozi

llath

un

de

rbird

Lin

ux

64

zh-T

W1

7.0

.8

Inst

ala

do

r 3

0M

ozi

llath

un

de

rbird

MA

CD

esc

on

oci

do

ar

17

.0.8

est

ab

le

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/bn

-BD

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

sF

irefo

x S

etu

p S

tub

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/e

n-U

SF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/z

uF

irefo

x S

etu

p S

tub

2

7.0

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/be

thu

nd

erb

ird-

17

.0.8

.tar.b

z2S

our

ce

cod

e/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/f

y-N

Lth

un

de

rbird

-1

7.0

.8.ta

r.bz2

So

urce

co

de

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/idth

un

de

rbird

-1

7.0

.8.ta

r.bz2

So

urce

co

de

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/zh

-TW

thu

nd

erb

ird-

17

.0.8

.tar.b

z2S

our

ce

cod

e/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

ar

Th

un

de

rbird

1

7.0

.8.d

mg

Page 87: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

1M

ozi

llath

un

de

rbird

MA

CD

esc

on

oci

do

pt-

BR

17

.0.8

est

ab

le

Inst

ala

do

r 3

2M

ozi

llath

un

de

rbird

MA

CD

esc

on

oci

do

ro1

7.0

.8E

sta

ble

Inst

ala

do

r 3

3M

ozi

llath

un

de

rbird

MA

CD

esc

on

oci

do

zh-T

W1

7.0

.8E

sta

ble

Inst

ala

do

r 3

4M

ozi

llath

un

de

rbird

win

do

ws

32

ast

17

.0.8

Est

ab

le

Inst

ala

do

r 3

5M

ozi

llath

un

de

rbird

win

do

ws

32

id1

7.0

.8E

sta

ble

Inst

ala

do

r 3

6M

ozi

llath

un

de

rbird

win

do

ws

32

si1

7.0

.8E

sta

ble

Inst

ala

do

r 3

7M

ozi

llath

un

de

rbird

win

do

ws

32

zh-C

N1

7.0

.8E

sta

ble

Inst

ala

do

r 3

8M

ozi

llath

un

de

rbird

win

do

ws

32

ja.2

4.2

.0e

sta

ble

Inst

ala

do

r 3

9M

ozi

llath

un

de

rbird

win

do

ws

32

zh-C

N.2

4.2

.0e

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/p

t-B

RT

hu

nd

erb

ird

17

.0.8

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

roT

hu

nd

erb

ird

17

.0.8

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

zh-T

WT

hu

nd

erb

ird

17

.0.8

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/a

stT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/idT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/si

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/jaT

hu

nd

erb

ird S

etu

p

24

.2.0

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/zh

-CN

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xe

Page 88: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

0M

ozi

llath

un

de

rbird

So

laris

Sp

arc

en

-US

.24

.3.0

Inst

ala

do

r 4

1M

ozi

llath

un

de

rbird

So

laris

32

en

-US

.24

.3.0

Inst

ala

do

r 4

2M

ozi

llath

un

de

rbird

linu

x3

2b

g.2

4.3

.0

Inst

ala

do

r 4

3M

ozi

llath

un

de

rbird

linu

x3

2p

a-I

N.2

4.3

.0

Inst

ala

do

r 4

4M

ozi

llath

un

de

rbird

linu

x3

2tr

.24

.3.0

Inst

ala

do

r 4

5M

ozi

llath

un

de

rbird

MA

Cd

esc

on

oci

do

da

.24

.3.0

est

ab

le

Inst

ala

do

r 4

6M

ozi

llath

un

de

rbird

MA

Cd

esc

on

oci

do

eu

.24

.3.0

est

ab

le

Inst

ala

do

r 4

7M

ozi

llath

un

de

rbird

MA

Cd

esc

on

oci

do

fi.2

4.3

.0e

sta

ble

Inst

ala

do

r 4

8M

ozi

llath

un

de

rbird

MA

Cd

esc

on

oci

do

ga-I

E.2

4.3

.0e

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

con

trib

/so

laris

_ta

rba

ll

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2S

our

ce

cod

e/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

So

urce

co

de

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/bg

thu

nd

erb

ird-

24

.3.0

.tar.b

z2S

our

ce

cod

e/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/p

a-I

Nth

un

de

rbird

-2

4.3

.0.ta

r.bz2

So

urce

co

de

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/trth

un

de

rbird

-2

4.3

.0.ta

r.bz2

So

urce

co

de

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/d

aT

hu

nd

erb

ird

24

.3.0

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

eu

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/fi

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

Page 89: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

9M

ozi

llath

un

de

rbird

MA

Cd

esc

on

oci

do

zh-C

N.2

4.3

.0e

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/zh

-CN

Th

un

de

rbird

2

4.3

.0.d

mg

Page 90: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

82

A.3. Usuario 1

Índice de categorización generado por el usuario 1

Page 91: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Usu

ario

1N

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

se

Inst

ala

do

r 0

Ca

min

o-0

.7.d

mg.

gzC

am

ino

Ma

cOS

X6

4b

itsin

glé

s0

.7d

ev

Inst

ala

do

r 1

Ca

min

oM

acO

S X

64

bits

mu

ltile

ngu

aje

2.1

.1st

ab

le

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gC

am

ino

Ma

cOS

X6

4b

itsm

ulti

len

gua

je2

.0.8

sta

ble

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

Ca

min

oM

acO

S X

64

bits

ingl

és

2.0

sta

ble

Inst

ala

do

r 4

Fire

fox

Lin

ux

32

bits

25

.0.1

sta

ble

Inst

ala

do

r 5

Fire

fox

Lin

ux

32

bits

25

.0.1

sta

ble

Inst

ala

do

r 6

Fire

fox

Lin

ux

32

bits

25

.0.1

sta

ble

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gF

irefo

xM

acO

S X

64

bits

25

.0.1

sta

ble

Inst

ala

do

r 8

----

----

----

----

--

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gF

irefo

xM

acO

S X

64

bits

25

.0.1

sta

ble

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Moz

illa

F

oun

datio

n/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

sC

am

ino

-2.1

.1-

Mu

ltiL

an

g.d

mg

Moz

illa

F

oun

datio

n/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/a

llM

ozill

a

Fo

unda

tion

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses/

en

-US

Moz

illa

F

oun

datio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

fire

fox-

25

.0.1

.tar.b

z2M

ozill

a

Fo

unda

tion

bs

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/lin

ux-

i68

6/m

kfir

efo

x-2

5.0

.1.ta

r.bz2

Moz

illa

F

oun

datio

n

mk

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/lin

ux-

i68

6/z

ufir

efo

x-2

5.0

.1.ta

r.bz2

Moz

illa

F

oun

datio

n

zu (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

af

Moz

illa

F

oun

datio

n

af

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/n

soM

ozill

a

Fo

unda

tion

nso

(có

dig

o

que

d

esc

on

ozc

o)

Page 92: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

Fire

fox

Ma

cOS

X6

4b

its2

5.0

.1st

ab

le

Inst

ala

do

r 1

1F

irefo

xW

ind

ow

s3

2b

itsin

glé

s2

5.0

.1st

ab

le

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2F

irefo

xL

inu

x6

4b

its2

5.0

sta

ble

Inst

ala

do

r 1

3fir

efo

x-2

5.0

.tar.b

z2F

irefo

xL

inu

x6

4b

its2

5.0

sta

ble

Inst

ala

do

r 1

4fir

efo

x-2

5.0

.tar.b

z2F

irefo

xL

inu

x6

4b

its2

5.0

sta

ble

Inst

ala

do

r 1

5F

irefo

xW

ind

ow

s3

2b

its2

5.0

sta

ble

Inst

ala

do

r 1

6F

irefo

xW

ind

ow

s3

2b

its2

5.0

sta

ble

Inst

ala

do

r 1

7F

irefo

xW

ind

ow

s3

2b

its2

5.0

sta

ble

Inst

ala

do

r 1

8F

irefo

xW

ind

ow

s3

2b

its2

5.0

sta

ble

Inst

ala

do

r 1

9F

irefo

xN

SN

Sin

glé

s2

7.0

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

kM

ozill

a

Fo

unda

tion

ingl

és

brit

án

ico

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/win

32

-fu

nn

elc

ake

27

/en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xeM

ozill

a

Fo

unda

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/li

nu

x-x8

6_

64

/af

Moz

illa

F

oun

datio

n

af

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/li

nu

x-x8

6_

64

/es-

MX

Moz

illa

F

oun

datio

ne

spa

ño

l m

éxi

co/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/s

qM

ozill

a

Fo

unda

tion

sq (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/cs

Fire

fox

Se

tup

2

5.0

.exe

Moz

illa

F

oun

datio

n

cs (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/tr

Fire

fox

Se

tup

2

5.0

.exe

Moz

illa

F

oun

datio

ntr

(có

dig

o q

ue

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2/h

y-A

MF

irefo

x S

etu

p

25

.0.e

xeM

ozill

a

Fo

unda

tion

hy-

AM

(c

ód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/isF

irefo

x S

etu

p

25

.0.e

xeM

ozill

a

Fo

unda

tion

is (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/so

urc

efir

efo

x-2

7.0

.so

urc

e.ta

r.bz2

Moz

illa

F

oun

datio

ncó

dig

o

fue

nte

Page 93: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

0F

irefo

xW

ind

ow

s3

2b

its2

7.0

sta

ble

Inst

ala

do

r 2

1F

irefo

xW

ind

ow

s3

2b

its2

7.0

sta

ble

Inst

ala

do

r 2

2F

irefo

xW

ind

ow

s3

2b

its2

7.0

sta

ble

Inst

ala

do

r 2

3F

irefo

xW

ind

ow

s3

2b

itsin

glé

s2

7.0

sta

ble

Inst

ala

do

r 2

4F

irefo

xW

ind

ow

s3

2b

its2

7.0

sta

ble

Inst

ala

do

r 2

5F

irefo

xW

ind

ow

s3

2b

its2

7.0

sta

ble

Inst

ala

do

r 2

6T

hu

nd

erb

irdL

inu

x6

4b

its1

7.0

.8st

ab

le

Inst

ala

do

r 2

7T

hu

nd

erb

irdL

inu

x6

4b

its1

7.0

.8st

ab

le

Inst

ala

do

r 2

8T

hu

nd

erb

irdL

inu

x6

4b

its1

7.0

.8st

ab

le

Inst

ala

do

r 2

9T

hu

nd

erb

irdL

inu

x6

4b

its1

7.0

.8st

ab

le

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xeM

ozill

a

Fo

unda

tion

ast

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

n-B

DF

irefo

x S

etu

p

27

.0.e

xeM

ozill

a

Fo

unda

tion

bn

-BD

(c

ód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/bs

Fire

fox

Se

tup

2

7.0

.exe

Moz

illa

F

oun

datio

n

bs

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/e

n-U

SF

irefo

x S

etu

p

27

.0.e

xeM

ozill

a

Fo

unda

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/z

uF

irefo

x S

etu

p

27

.0.e

xeM

ozill

a

Fo

unda

tion

zu (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

Stu

b

27

.0.e

xeM

ozill

a

Fo

unda

tion

zu (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/b

eth

un

de

rbird

-1

7.0

.8.ta

r.bz2

Moz

illa

F

oun

datio

n

be

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/fy-

NL

thu

nd

erb

ird-

17

.0.8

.tar.b

z2M

ozill

a

Fo

unda

tion

fy-N

L (c

ód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/id

thu

nd

erb

ird-

17

.0.8

.tar.b

z2M

ozill

a

Fo

unda

tion

id (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/z

h-T

Wth

un

de

rbird

-1

7.0

.8.ta

r.bz2

Moz

illa

F

oun

datio

n

zh-T

W

(có

dig

o q

ue

d

esc

on

ozc

o)

Page 94: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

0T

hu

nd

erb

irdM

acO

S X

64

bits

17

.0.8

sta

ble

Inst

ala

do

r 3

1T

hu

nd

erb

irdM

acO

S X

64

bits

17

.0.8

sta

ble

Inst

ala

do

r 3

2T

hu

nd

erb

irdM

acO

S X

64

bits

17

.0.8

sta

ble

Inst

ala

do

r 3

3T

hu

nd

erb

irdM

acO

S X

64

bits

17

.0.8

sta

ble

Inst

ala

do

r 3

4T

hu

nd

erb

irdW

ind

ow

s3

2b

its1

7.0

.8st

ab

le

Inst

ala

do

r 3

5T

hu

nd

erb

irdW

ind

ow

s3

2b

its1

7.0

.8st

ab

le

Inst

ala

do

r 3

6T

hu

nd

erb

irdW

ind

ow

s3

2b

its1

7.0

.8st

ab

le

Inst

ala

do

r 3

7T

hu

nd

erb

irdW

ind

ow

s3

2b

its1

7.0

.8st

ab

le

Inst

ala

do

r 3

8T

hu

nd

erb

irdW

ind

ow

s3

2b

itsJa

po

s2

4 .

2 .

0st

ab

le

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/a

rT

hu

nd

erb

ird

17

.0.8

.dm

gM

ozill

a

Fo

unda

tion

ar

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/p

t-B

RT

hu

nd

erb

ird

17

.0.8

.dm

gM

ozill

a

Fo

unda

tion

pt-

BR

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/ro

Th

un

de

rbird

1

7.0

.8.d

mg

Moz

illa

F

oun

datio

n

ro (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

zh-T

WT

hu

nd

erb

ird

17

.0.8

.dm

gM

ozill

a

Fo

unda

tion

zh-T

W

(có

dig

o q

ue

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/ast

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xeM

ozill

a

Fo

unda

tion

ast

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/idT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

Moz

illa

F

oun

datio

n

id (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/s

iT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

Moz

illa

F

oun

datio

n

si (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

Moz

illa

F

oun

datio

n

zh-C

N

(có

dig

o q

ue

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/jaT

hu

nd

erb

ird S

etu

p

24

.2.0

.exe

Moz

illa

F

oun

datio

n

Page 95: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

9T

hu

nd

erb

irdW

ind

ow

s3

2b

its2

4 .

2 .

0st

ab

le

Inst

ala

do

r 4

0T

hu

nd

erb

irdS

pa

rcIn

glé

s2

4 .

3 .

0st

ab

le

Inst

ala

do

r 4

1T

hu

nd

erb

irdS

ola

ris3

2b

itsIn

glé

s2

4 .

3 .

0st

ab

le

Inst

ala

do

r 4

2T

hu

nd

erb

irdL

inu

x3

2b

its2

4 .

3 .

0st

ab

le

Inst

ala

do

r 4

3T

hu

nd

erb

irdL

inu

x3

2b

its2

4 .

3 .

0st

ab

le

Inst

ala

do

r 4

4T

hu

nd

erb

irdL

inu

x3

2b

its2

4 .

3 .

0st

ab

le

Inst

ala

do

r 4

5T

hu

nd

erb

irdM

acO

S X

64

bits

24

.3

.0

sta

ble

Inst

ala

do

r 4

6T

hu

nd

erb

irdM

acO

S X

64

bits

24

.3

.0

sta

ble

Inst

ala

do

r 4

7T

hu

nd

erb

irdM

acO

S X

64

bits

24

.3

.0

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/zh

-CN

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xeM

ozill

a

Fo

unda

tion

zh-C

N

(có

dig

o q

ue

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

con

trib

/so

laris

_ta

rba

ll

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2M

ozill

a

Fo

unda

tion

Op

en

S

ola

ris/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

Moz

illa

F

oun

datio

n/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/b

gth

un

de

rbird

-2

4.3

.0.ta

r.bz2

Moz

illa

F

oun

datio

n

bg

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/pa

-IN

thu

nd

erb

ird-

24

.3.0

.tar.b

z2M

ozill

a

Fo

unda

tion

pa

-IN

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/trth

un

de

rbird

-2

4.3

.0.ta

r.bz2

Moz

illa

F

oun

datio

ntr

(có

dig

o q

ue

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/d

aT

hu

nd

erb

ird

24

.3.0

.dm

gM

ozill

a

Fo

unda

tion

da

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/e

uT

hu

nd

erb

ird

24

.3.0

.dm

gM

ozill

a

Fo

unda

tion

eu

(có

dig

o

que

d

esc

on

ozc

o)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/fi

Th

un

de

rbird

2

4.3

.0.d

mg

Moz

illa

F

oun

datio

nfi

(có

dig

o q

ue

d

esc

on

ozc

o)

Page 96: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

8T

hu

nd

erb

irdM

acO

S X

64

bits

24

.3

.0

sta

ble

Inst

ala

do

r 4

9T

hu

nd

erb

irdM

acO

S X

64

bits

24

.3

.0

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

Moz

illa

F

oun

datio

n

ga-I

E (

cód

igo

qu

e

de

sco

no

zco

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

zh-C

NT

hu

nd

erb

ird

24

.3.0

.dm

gM

ozill

a

Fo

unda

tion

zh-C

N

(có

dig

o q

ue

d

esc

on

ozc

o)

Page 97: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

89

A.4. Usuario 2

Índice de categorización generado por el usuario 2

Page 98: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Usu

ario

2N

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

seIn

sta

lad

or

0--

--

--

--

--

--

--

--

--

Inst

ala

do

r 1

Mo

zilla

Ca

min

oO

S X

NS

Mu

ltile

ngu

aje

2.1

.1N

S

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gM

ozi

llaC

am

ino

OS

XN

SN

S2

.0.8

NS

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

Mo

zilla

Ca

min

oO

S X

NS

Ingl

és

2.0

NS

Inst

ala

do

r 4

Mo

zilla

Fire

fox

linu

xi6

86

NS

25

.0.1

sou

rce

Inst

ala

do

r 5

Mo

zilla

Fire

fox

linu

xi6

86

NS

25

.0.1

sou

rce

Inst

ala

do

r 6

Mo

zilla

Fire

fox

linu

xi6

86

NS

25

.0.1

sou

rce

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xO

S X

NS

NS

25

.0.1

NS

Inst

ala

do

r 8

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xO

S X

NS

NS

25

.0.1

NS

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xO

S X

NS

NS

25

.0.1

NS

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-2

.1.1

-M

ulti

La

ng.

dm

g/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/a

ll/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/e

n-U

S/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/mk

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/zu

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

af / p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

ak / p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

nso

Page 99: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

Mo

zilla

Fire

fox

OS

XN

SN

S2

5.0

.1N

S

Inst

ala

do

r 1

1M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsIn

glé

s2

5.0

.1N

S

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2M

ozi

llaF

irefo

xlin

ux

x86

NS

25

.0so

urc

e

Inst

ala

do

r 1

3fir

efo

x-2

5.0

.tar.b

z2M

ozi

llaF

irefo

xlin

ux

x86

esp

ol

25

.0so

urc

e

Inst

ala

do

r 1

4fir

efo

x-2

5.0

.tar.b

z2M

ozi

llaF

irefo

xlin

ux

x86

NS

25

.0so

urc

e

Inst

ala

do

r 1

5M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

5.0

NS

Inst

ala

do

r 1

6M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

5.0

NS

Inst

ala

do

r 1

7M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

5.0

NS

Inst

ala

do

r 1

8M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

5.0

NS

Inst

ala

do

r 1

9M

ozi

llaF

irefo

xN

SN

SN

S2

7.0

sou

rce

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

k / pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/win

32

-fu

nn

elc

ake

27

/en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/a

f/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/e

s-M

X/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/s

q/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/cs

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/t

rF

irefo

x S

etu

p

25

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/hy-

AM

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2/is

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/s

ou

rce

fire

fox-

27

.0.s

ou

rce

.tar.b

z2

Page 100: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

0M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

1M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

2M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

3M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

4M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

5M

ozi

llaF

irefo

xw

ind

ow

s3

2 b

itsN

S2

7.0

NS

Inst

ala

do

r 2

6M

ozi

llaT

hu

nd

erb

irdlin

ux

x86

NS

17

.0.8

sou

ce

Inst

ala

do

r 2

7M

ozi

llaT

hu

nd

erb

irdlin

ux

x86

NS

17

.0.8

sou

rce

Inst

ala

do

r 2

8M

ozi

llaT

hu

nd

erb

irdlin

ux

x86

NS

17

.0.8

sou

rce

Inst

ala

do

r 2

9M

ozi

llaT

hu

nd

erb

irdlin

ux

x86

NS

17

.0.8

sou

rce

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/bn

-BD

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

sF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/en

-US

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/z

uF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

Stu

b

27

.0.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/b

eth

un

de

rbird

-1

7.0

.8.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/fy-

NL

thu

nd

erb

ird-

17

.0.8

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/id

thu

nd

erb

ird-

17

.0.8

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/z

h-T

Wth

un

de

rbird

-1

7.0

.8.ta

r.bz2

Page 101: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

0M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

17

.0.8

NS

Inst

ala

do

r 3

1M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

17

.0.8

NS

Inst

ala

do

r 3

2M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

17

.0.8

NS

Inst

ala

do

r 3

3M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

17

.0.8

NS

Inst

ala

do

r 3

4M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S1

7.0

.8N

S

Inst

ala

do

r 3

5M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S1

7.0

.8N

S

Inst

ala

do

r 3

6M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S1

7.0

.8N

S

Inst

ala

do

r 3

7M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S1

7.0

.8N

S

Inst

ala

do

r 3

8M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S2

4.2

.0N

S

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/a

rT

hu

nd

erb

ird

17

.0.8

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

pt-

BR

Th

un

de

rbird

1

7.0

.8.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/ro

Th

un

de

rbird

1

7.0

.8.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/zh

-TW

Th

un

de

rbird

1

7.0

.8.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/ast

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/id

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/s

iT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/zh

-CN

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.2.0

/w

in3

2/ja

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xe

Page 102: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

9M

ozi

llaT

hu

nd

erb

irdw

ind

ow

s3

2 b

itsN

S2

4.2

.0N

S

Inst

ala

do

r 4

0M

ozi

llaT

hu

nd

erb

irdsp

arc

ingl

és

24

.3.0

NS

Inst

ala

do

r 4

1M

ozi

llaT

hu

nd

erb

irdi3

86

ingl

és

24

.3.0

NS

Inst

ala

do

r 4

2M

ozi

llaT

hu

nd

erb

irdi6

86

i68

6N

S2

4.3

.0N

S

Inst

ala

do

r 4

3M

ozi

llaT

hu

nd

erb

irdi6

86

i68

6N

S2

4.3

.0N

S

Inst

ala

do

r 4

4M

ozi

llaT

hu

nd

erb

irdi6

86

i68

6N

S2

4.3

.0N

S

Inst

ala

do

r 4

5M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

24

.3.0

NS

Inst

ala

do

r 4

6M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

24

.3.0

NS

Inst

ala

do

r 4

7M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

24

.3.0

NS

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/zh

-CN

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2O

pe

n

So

laris

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

con

trib

/so

laris

_ta

rba

ll

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

Op

en

S

ola

ris/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/b

gth

un

de

rbird

-2

4.3

.0.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/pa

-IN

thu

nd

erb

ird-

24

.3.0

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/tr

thu

nd

erb

ird-

24

.3.0

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

da

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/e

uT

hu

nd

erb

ird

24

.3.0

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

fiT

hu

nd

erb

ird

24

.3.0

.dm

g

Page 103: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

8M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

24

.3.0

NS

Inst

ala

do

r 4

9M

ozi

llaT

hu

nd

erb

irdO

S X

NS

NS

24

.3.0

NS

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/zh

-CN

Th

un

de

rbird

2

4.3

.0.d

mg

Page 104: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

96

A.5. Usuario 3

Índice de categorización generado por el usuario 3

Page 105: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Usu

ario

3N

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

se

Inst

ala

do

r 0

Ca

min

o-0

.7.d

mg.

gzM

ozi

llaC

am

ino

MA

CN

SN

S0

.7st

ab

le

Inst

ala

do

r 1

Mo

zilla

Ca

min

oM

AC

NS

Mu

lti2

.1sr

c

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gM

ozi

llaC

am

ino

MA

Ca

llN

S2

.0.8

sta

ble

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

Mo

zilla

Ca

min

oM

AC

NS

Ingl

és

US

A2

.0st

ab

le

Inst

ala

do

r 4

Mo

zilla

Fire

fox

Lin

ux

x86

Bo

snia

n2

5.0

.1st

ab

le

Inst

ala

do

r 5

Mo

zilla

Fire

fox

Lin

ux

x86

Ma

ced

on

ian

25

.0.1

sta

ble

Inst

ala

do

r 6

Mo

zilla

Fire

fox

Lin

ux

x86

isiZ

ulu

25

.0.1

sta

ble

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xM

ac

NS

Afr

ika

an

s2

5.0

.1st

ab

le

Inst

ala

do

r 8

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xM

ac

NS

Aka

n2

5.0

.1st

ab

le

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gM

ozi

llaF

irefo

xM

ac

NS

nso

25

.0.1

sta

ble

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-2

.1.1

-M

ulti

La

ng.

dm

g/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/a

ll/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/e

n-U

S/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/mk

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/zu

fire

fox-

25

.0.1

.tar.b

z2/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

af / p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

af / p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/m

ac/

nso

Page 106: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

Mo

zilla

Fire

fox

Ma

cN

SU

kra

inia

n2

5.0

.1st

ab

le

Inst

ala

do

r 1

1M

ozi

llaF

irefo

xW

ind

ow

sx8

6In

glé

s U

SA

25

.0.1

sta

ble

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2M

ozi

llaF

irefo

xL

inu

xx8

6_

64

Afr

ika

an

s2

5.0

sta

ble

Inst

ala

do

r 1

3--

----

----

----

----

Inst

ala

do

r 1

4--

----

----

----

----

Inst

ala

do

r 1

5M

ozi

llaF

irefo

xW

ind

ow

sx8

6C

zech

25

.0st

ab

le

Inst

ala

do

r 1

6M

ozi

llaF

irefo

xW

ind

ow

sx8

6T

urk

ish

25

.0st

ab

le

Inst

ala

do

r 1

7M

ozi

llaF

irefo

xW

ind

ow

sx8

6A

rme

nia

25

.0st

ab

le

Inst

ala

do

r 1

8M

ozi

llaF

irefo

xW

ind

ow

sx8

6Ic

ela

nd

ic2

5.0

sta

ble

Inst

ala

do

r 1

9M

ozi

llaF

irefo

xN

SN

SN

S2

7.0

src

Inst

ala

do

r 2

0M

ozi

llaF

irefo

xW

ind

ow

sx8

6a

st2

7.0

sta

ble

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

k / pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/win

32

-fu

nn

elc

ake

27

/en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/a

f

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/c

sF

irefo

x S

etu

p

25

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

-E

Ub

allo

t/tr

Fire

fox

Se

tup

2

5.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2/h

y-A

MF

irefo

x S

etu

p

25

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/isF

irefo

x S

etu

p

25

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/so

urc

efir

efo

x-2

7.0

.so

urc

e.ta

r.bz2

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xe

Page 107: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

1M

ozi

llaF

irefo

xW

ind

ow

sx8

6B

en

gali

27

.0st

ab

le

Inst

ala

do

r 2

2M

ozi

llaF

irefo

xW

ind

ow

sx8

6B

osn

ian

27

.0st

ab

le

Inst

ala

do

r 2

3M

ozi

llaF

irefo

xW

ind

ow

sx8

6In

glé

s U

SA

27

.0st

ab

le

Inst

ala

do

r 2

4M

ozi

llaF

irefo

xW

ind

ow

sx8

6is

iZu

lu2

7.0

sta

ble

Inst

ala

do

r 2

5M

ozi

llaF

irefo

xW

ind

ow

sx8

6is

iZu

lu2

7.0

sta

ble

Inst

ala

do

r 2

6M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6_

64

Be

laru

sia

n1

7.0

.8st

ab

le

Inst

ala

do

r 2

7M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6_

64

Fris

ian

17

.0.8

sta

ble

Inst

ala

do

r 2

8M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6_

64

17

.0.8

sta

ble

Inst

ala

do

r 2

9M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6_

64

17

.0.8

sta

ble

Inst

ala

do

r 3

0M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6_

64

Ara

bic

17

.0.8

sta

ble

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

n-B

DF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/bs

Fire

fox

Se

tup

Stu

b

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/en

-US

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/z

uF

irefo

x S

etu

p

27

.0.e

xe/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

2

7.0

.exe

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/be

thu

nd

erb

ird-

17

.0.8

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/f

y-N

Lth

un

de

rbird

-1

7.0

.8.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/idth

un

de

rbird

-1

7.0

.8.ta

r.bz2

Ba

ha

sa

Ind

on

esi

a/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/z

h-T

Wth

un

de

rbird

-1

7.0

.8.ta

r.bz2

Ch

ine

se

(Ta

iwa

n)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/a

rT

hu

nd

erb

ird

17

.0.8

.dm

g

Page 108: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

1M

ozi

llaT

hu

nd

erb

irdM

ac

NS

17

.0.8

sta

ble

Inst

ala

do

r 3

2M

ozi

llaT

hu

nd

erb

irdM

ac

NS

Ro

ma

nia

n1

7.0

.8st

ab

le

Inst

ala

do

r 3

3M

ozi

llaT

hu

nd

erb

irdM

ac

NS

17

.0.8

sta

ble

Inst

ala

do

r 3

4M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

6a

st1

7.0

.8st

ab

le

Inst

ala

do

r 3

5M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

61

7.0

.8st

ab

le

Inst

ala

do

r 3

6M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

6S

inh

ale

se1

7.0

.8st

ab

le

Inst

ala

do

r 3

7M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

61

7.0

.8st

ab

le

Inst

ala

do

r 3

8M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

6Ja

po

s2

4.2

.0st

ab

le

Inst

ala

do

r 3

9M

ozi

llaT

hu

nd

erb

irdW

ind

ow

sx8

62

4.2

.0st

ab

le

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/p

t-B

RT

hu

nd

erb

ird

17

.0.8

.dm

gP

ort

ugu

és-

Bra

sil

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/ro

Th

un

de

rbird

1

7.0

.8.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/zh

-TW

Th

un

de

rbird

1

7.0

.8.d

mg

Ch

ine

se

(Ta

iwa

n)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/ast

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/id

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xeB

ah

asa

In

do

ne

sia

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/si

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

Ch

ine

se

(Ch

ina

) / p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.2.0

/w

in3

2/ja

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xe/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.2.0

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

24

.2.0

.exe

Ch

ine

se

(Ch

ina

)

Page 109: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

0M

ozi

llaT

hu

nd

erb

irdS

ola

risS

pa

rcIn

glé

s U

SA

24

.3.0

src

Inst

ala

do

r 4

1M

ozi

llaT

hu

nd

erb

irdS

ola

risx8

6In

glé

s U

SA

24

.3.0

src

Inst

ala

do

r 4

2M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6B

ulg

aria

n2

4.3

.0st

ab

le

Inst

ala

do

r 4

3M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6p

a-I

N2

4.3

.0st

ab

le

Inst

ala

do

r 4

4M

ozi

llaT

hu

nd

erb

irdL

inu

xx8

6T

urk

ish

24

.3.0

sta

ble

Inst

ala

do

r 4

5M

ozi

llaT

hu

nd

erb

irdM

ac

NS

Da

nis

h2

4.3

.0st

ab

le

Inst

ala

do

r 4

6M

ozi

llaT

hu

nd

erb

irdM

ac

NS

eu

24

.3.0

sta

ble

Inst

ala

do

r 4

7M

ozi

llaT

hu

nd

erb

irdM

ac

NS

Fin

nis

h2

4.3

.0st

ab

le

Inst

ala

do

r 4

8M

ozi

llaT

hu

nd

erb

irdM

ac

NS

24

.3.0

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

con

trib

/so

laris

_ta

rba

ll

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/bg

thu

nd

erb

ird-

24

.3.0

.tar.b

z2/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/p

a-I

Nth

un

de

rbird

-2

4.3

.0.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/trth

un

de

rbird

-2

4.3

.0.ta

r.bz2

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/d

aT

hu

nd

erb

ird

24

.3.0

.dm

g/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

eu

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/fi

Th

un

de

rbird

2

4.3

.0.d

mg

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

Ire

lan

d -

Ir

ish

Page 110: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

9M

ozi

llaT

hu

nd

erb

irdM

ac

NS

24

.3.0

sta

ble

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/zh

-CN

Th

un

de

rbird

2

4.3

.0.d

mg

Ch

ine

se

(Ch

ina

)

Page 111: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

103

A.6. Usuario 4

Índice de categorización generado por el usuario 4

Page 112: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Usu

ario

4N

om

bre

Ru

ta

Ca

tego

ría

De

sarr

olla

do

rP

roye

cto

Arq

uite

ctu

raL

en

gua

jeV

ers

ion

Re

lea

seIn

sta

lad

or

0--

--

--

--

--

--

--

--

--

Inst

ala

do

r 1

NS

NS

NS

2.1

.1N

S

Inst

ala

do

r 2

Ca

min

o-2

.0.8

.dm

gN

SN

SN

S2

.0.8

NS

Inst

ala

do

r 3

Ca

min

o-2

.0.d

mg

NS

NS

2.0

NS

Inst

ala

do

r 4

fire

fox

linu

xx8

6_

32

Bo

snia

n2

5.0

.1N

S

Inst

ala

do

r 5

fire

fox

linu

xx8

6_

32

Ma

ced

on

ian

25

.0.1

NS

Inst

ala

do

r 6

fire

fox

linu

xx8

6_

32

Zu

lu2

5.0

.1N

S

Inst

ala

do

r 7

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

SA

frik

aa

ns

25

.0.1

NS

Inst

ala

do

r 8

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

SA

kan

25

.0.1

NS

Inst

ala

do

r 9

Fire

fox

25

.0.1

.dm

gfir

efo

xm

aco

sN

S2

5.0

.1N

S

Sis

tem

a

Op

era

tivo

/ pu

b/m

ozi

lla/c

am

ino

/re

lea

ses

Ca

min

o-2

.1.1

-M

ulti

La

ng.

dm

gm

ozi

lla

foun

da

tion

we

b

bro

wse

r/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/a

llm

ozi

lla

foun

da

tion

we

b

bro

wse

r/ p

ub

/mo

zilla

/ca

min

o/r

ele

ase

s/e

n-U

Sm

ozi

lla

foun

da

tion

we

b

bro

wse

r

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/bs

fire

fox-

25

.0.1

.tar.b

z2m

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/lin

ux-

i68

6/m

kfir

efo

x-2

5.0

.1.ta

r.bz2

mo

zilla

fo

und

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

.1/li

nu

x-i6

86

/zu

fire

fox-

25

.0.1

.tar.b

z2m

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/a

fm

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/a

km

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/n

som

ozi

lla

foun

da

tion

No

rth

ern

S

oth

o

Page 113: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 1

0F

irefo

x 2

5.0

.1.d

mg

fire

fox

ma

cos

NS

Ukr

ain

ian

25

.0.1

NS

Inst

ala

do

r 1

1fir

efo

xw

ind

ow

sN

S2

5.0

.1N

S

Inst

ala

do

r 1

2fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

x86

_6

4A

frik

aa

ns

25

.0N

S

Inst

ala

do

r 1

3fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

x86

_6

42

5.0

NS

Inst

ala

do

r 1

4fir

efo

x-2

5.0

.tar.b

z2fir

efo

xlin

ux

x86

_6

4A

lba

nia

n2

5.0

NS

Inst

ala

do

r 1

5fir

efo

xw

ind

ow

sN

SC

zech

25

.0N

S

Inst

ala

do

r 1

6fir

efo

xw

ind

ow

sN

ST

urk

ish

25

.0N

S

Inst

ala

do

r 1

7fir

efo

xw

ind

ow

sN

S2

5.0

NS

Inst

ala

do

r 1

8fir

efo

xw

ind

ow

sN

SIc

ela

nd

ic2

5.0

NS

Inst

ala

do

r 1

9fir

efo

xN

SN

SN

S2

7.0

sou

rce

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/ma

c/u

km

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0.1

/win

32

-fu

nn

elc

ake

27

/en

-US

Fire

fox

Se

tup

2

5.0

.1.e

xem

ozi

lla

foun

da

tion

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/a

fm

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/li

nu

x-x8

6_

64

/es-

MX

mo

zilla

fo

und

atio

nS

pa

nis

h

(Me

xico

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/lin

ux-

x86

_6

4/s

qm

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/c

sF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2-

EU

ba

llot/t

rF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

25

.0/w

in3

2/h

y-A

MF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

foun

da

tion

Arm

en

ian

(A

rme

nia

)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

5.0

/win

32

/isF

irefo

x S

etu

p

25

.0.e

xem

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/s

ou

rce

fire

fox-

27

.0.s

ou

rce

.tar.b

z2m

ozi

lla

foun

da

tion

Page 114: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 2

0fir

efo

xw

ind

ow

sN

SN

S2

7.0

NS

Inst

ala

do

r 2

1fir

efo

xw

ind

ow

sN

S2

7.0

NS

Inst

ala

do

r 2

2fir

efo

xw

ind

ow

sN

SB

osn

ian

27

.0N

S

Inst

ala

do

r 2

3fir

efo

xw

ind

ow

sN

S2

7.0

NS

Inst

ala

do

r 2

4fir

efo

xw

ind

ow

sN

SZ

ulu

27

.0N

S

Inst

ala

do

r 2

5fir

efo

xw

ind

ow

sN

SZ

ulu

27

.0N

S

Inst

ala

do

r 2

6lin

ux

x86

_6

4B

ela

rusi

an

17

.0.8

NS

Inst

ala

do

r 2

7lin

ux

x86

_6

4D

utc

h1

7.0

.8N

S

Inst

ala

do

r 2

8lin

ux

x86

_6

4In

do

ne

sia

n1

7.0

.8N

S

Inst

ala

do

r 2

9lin

ux

x86

_6

41

7.0

.8N

S

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/a

stF

irefo

x S

etu

p

27

.0.e

xem

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

n-B

DF

irefo

x S

etu

p

27

.0.e

xem

ozi

lla

foun

da

tion

Be

nga

li (B

an

gla

de

sh)

/ pu

b/m

ozi

lla/f

irefo

x/re

lea

ses/

27

.0/w

in3

2/b

sF

irefo

x S

etu

p S

tub

2

7.0

.exe

mo

zilla

fo

und

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/en

-US

Fire

fox

Se

tup

2

7.0

.exe

mo

zilla

fo

und

atio

n

En

glis

h

(Un

ited

S

tate

s)/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

2

7.0

.exe

mo

zilla

fo

und

atio

n/ p

ub

/mo

zilla

/fire

fox/

rele

ase

s/2

7.0

/win

32

/zu

Fire

fox

Se

tup

Stu

b

27

.0.e

xem

ozi

lla

foun

da

tion

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/be

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/fy-

NL

thu

nd

erb

ird-

17

.0.8

.tar.b

z2m

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

linu

x-x8

6_

64

/idth

un

de

rbird

-1

7.0

.8.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/lin

ux-

x86

_6

4/z

h-T

Wth

un

de

rbird

-1

7.0

.8.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

irdC

hin

ese

(T

aiw

an

)

Page 115: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

0m

aco

sN

SA

rab

ic1

7.0

.8N

S

Inst

ala

do

r 3

1m

aco

sN

S1

7.0

.8N

S

Inst

ala

do

r 3

2m

aco

sN

SR

om

an

ian

17

.0.8

NS

Inst

ala

do

r 3

3m

aco

sN

S1

7.0

.8N

S

Inst

ala

do

r 3

4w

ind

ow

sN

SN

S1

7.0

.8N

S

Inst

ala

do

r 3

5w

ind

ow

sN

SIn

do

ne

sia

n1

7.0

.8N

S

Inst

ala

do

r 3

6w

ind

ow

sN

SS

inh

ala

17

.0.8

NS

Inst

ala

do

r 3

7w

ind

ow

sN

S1

7.0

.8N

S

Inst

ala

do

r 3

8w

ind

ow

sN

SJa

pa

ne

se2

4.2

.0N

S

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/a

rT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/p

t-B

RT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

Po

rtu

gue

se

(Bra

zil)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

ma

c/ro

Th

un

de

rbird

1

7.0

.8.d

mg

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/m

ac/

zh-T

WT

hu

nd

erb

ird

17

.0.8

.dm

gm

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

Ch

ine

se

(Ta

iwa

n)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/ast

Th

un

de

rbird

Se

tup

1

7.0

.8.e

xem

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/1

7.0

.8/

win

32

/idT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/s

iT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

17

.0.8

/w

in3

2/z

h-C

NT

hu

nd

erb

ird S

etu

p

17

.0.8

.exe

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

irdC

hin

ese

(C

hin

a)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/jaT

hu

nd

erb

ird S

etu

p

24

.2.0

.exe

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird

Page 116: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 3

9w

ind

ow

sN

S2

4.2

.0N

S

Inst

ala

do

r 4

0N

SN

SN

S2

4.3

.0N

S

Inst

ala

do

r 4

1N

Sx8

6_

32

NS

24

.3.0

NS

Inst

ala

do

r 4

2lin

ux

x86

_3

2B

ulg

aria

n2

4.3

.0N

S

Inst

ala

do

r 4

3lin

ux

x86

_3

22

4.3

.0N

S

Inst

ala

do

r 4

4lin

ux

x86

_3

2T

urk

ish

24

.3.0

NS

Inst

ala

do

r 4

5m

aco

sN

SD

an

ish

24

.3.0

NS

Inst

ala

do

r 4

6m

aco

sN

SB

asq

ue

24

.3.0

NS

Inst

ala

do

r 4

7m

aco

sN

SF

inn

ish

24

.3.0

NS

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.2

.0/

win

32

/zh

-CN

Th

un

de

rbird

Se

tup

2

4.2

.0.e

xem

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

Ch

ine

se

(Ch

ina

)/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/co

ntr

ib/s

ola

ris_

tarb

al

l

thu

nd

erb

ird-

24

.3.0

.en

-U

S.o

pe

nso

laris

-sp

arc

.tar.b

z2m

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

con

trib

/so

laris

_ta

rba

ll

thu

nd

erb

ird-

24

.3.0

.en

-U

S.s

ola

ris-1

0-f

cs-

i38

6.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/b

gth

un

de

rbird

-2

4.3

.0.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/lin

ux-

i68

6/p

a-I

Nth

un

de

rbird

-2

4.3

.0.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

irdP

un

jab

i (I

nd

ia)

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

linu

x-i6

86

/trth

un

de

rbird

-2

4.3

.0.ta

r.bz2

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

da

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

eu

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

fiT

hu

nd

erb

ird

24

.3.0

.dm

gm

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

Page 117: UNIVERSIDADDECOSTARICA …pci.ucr.ac.cr/sites/default/files/trabajos_de_graduacion/... · 2016-07-08 · UNIVERSIDADDECOSTARICA SISTEMADEESTUDIOSDEPOSGRADO IDENTIFICACIÓNYCATEGORIZACIÓNAUTOMÁTICADE

Inst

ala

do

r 4

8m

aco

sN

SIr

ish

(Ir

ela

nd

)2

4.3

.0N

S

Inst

ala

do

r 4

9m

aco

sN

S2

4.3

.0N

S

/ pu

b/m

ozi

lla/th

un

de

rb

ird/r

ele

ase

s/2

4.3

.0/

ma

c/ga

-IE

Th

un

de

rbird

2

4.3

.0.d

mg

mo

zilla

fo

und

atio

nm

ozi

lla

thu

nd

erb

ird/ p

ub

/mo

zilla

/thu

nd

er

bird

/re

lea

ses/

24

.3.0

/m

ac/

zh-C

NT

hu

nd

erb

ird

24

.3.0

.dm

gm

ozi

lla

foun

da

tion

mo

zilla

th

un

de

rbird

Ch

ine

se

(Ch

ina

)