CAPÍTULO 2: INSTALACIÓN Y CONFIGURACIÓN DE LA PLATAFORMA
E- LEARNING DOTLRN
3.1. Descripción del proceso de aprendizaje en dotLRN 3
Fueron un total de 30 estudiantes (31 usuarios si se cuenta al profesor) de la materia Fundamentos Informáticos (periodo Oct/2009-Feb/2010) que durante un período de 2 semanas tuvieron acceso a la plataforma dotLRN, instalada y configurada en la siguiente dirección: http://devel.adenu.ia.uned.es:8010/dotlrn/. El acceso a este sitio fue proporcionado por integrantes del grupo aDeNu de la UNED
En la Figura 3.1 se puede observar una captura de la interfaz gráfica del portal.
38 Dentro de la plataforma el profesor puede realizar diferentes acciones, entre las principales se puede mencionar las siguientes:
Crear o eliminar cursos.- se crean a manera de comunidades para que los estudiantes puedan inscribirse o darse de baja.
Crear, editar o eliminar foros.- estos se crean dentro de los cursos.
Añadir, editar o eliminar preguntas frecuentes (faqs).- útiles a la hora de consultas habituales.
Añadir, editar o eliminar Noticias.- de mucha ayuda como medio informativo.
Subir o eliminar archivos.- que pueden ser compartidos dentro del curso.
Añadir, editar o eliminar notificaciones.- ayudan para informar al estudiante.
Ingresar, editar o eliminar eventos.- dentro de la agenda para informar al estudiante sobre fechas importantes.
Además de las acciones antes listadas tanto el profesor como los estudiantes tienen acceso a las diferentes herramientas disponibles dentro de la plataforma; estas herramientas son:
Foros
Calendario
Faqs (preguntas frecuentes)
Panel de control
Noticias
Mapa del sitio
Archivos
Agenda y eventos
User Tracking
De entre todas las herramientas dentro de la plataforma, la presente Tesis se centra exclusivamente en la obtención de los datos de la interacción en los Foros planteados, que correspondían a los temas:
39
Internet y sus Aplicaciones
La necesidad pone en peligro la Web
Presencia Web 2.0
La interacción sobre estos foros se refiere básicamente a las visitas a foros y mensajes, ingreso de mensajes e inicio de hilos.
3.2. Interacción con los Foros
Dentro de la plataforma dotLRN una de las principales herramientas es sin duda la herramienta foros; el profesor puede crearlos y administrarlos para de esta forma tratar diferentes temáticas con los estudiantes, los cuales pueden acceder a la información y participar activamente en ellos.
La información de la interacción de los usuarios con la plataforma se almacena en los archivos de log llamados tam-events, proporcionados por la UNED, ésta información contiene especificaciones básicas concernientes a las acciones del usuario sobre los diferentes objetos de la plataforma; no obstante lo que interesa para la presente tesis son específicamente los foros, ya que la idea es identificar recomendaciones relacionadas con la lectura e ingreso de mensajes en esta herramienta.
Los archivos de logs facilitan información útil relacionada con la interacción de los usuarios en la plataforma, sin embargo existe también la herramienta User Tracking que maneja estadísticas sobre datos personales y de interacción con el sistema, la cual brinda una ayuda adicional para obtener información.
40 Tablas de dotLRN relacionadas con la información almacenada en el archivo de log
tam-events
Dentro de este archivo de logs se almacenan campos como:
Tiempo de inicio sobre acción
Tiempo de fin sobre acción
Duración de acción
Fecha
Id del paquete
Id de la sesión
Id del usuario
Ip desde la cual se accede
Locación del objeto
Url
El archivo u objeto al que se está accediendo
El objeto sobre el cual ocurre el evento.
Estos campos están relacionados con información almacenada en la base de datos de dotLRN, parte de esta relación puede observarse en la figura 3.2.
41 Fig. 3.2. Relación entre algunas de las tablas de la base de datos de dotLRN y el archivo de
logs
Tablas de dotLRN relacionadas con la interacción en los foros
Como ya se había mencionado de entre toda la interacción del usuario con la plataforma y sus herramientas nos interesa exclusivamente la interacción con los foros, es por esto que únicamente se utilizará la información del archivo de logs que tenga que ver con ellos. La figura 3.3. muestra la relación entre las tablas de la base de datos de dotLRN más
42 representativas con respecto a los foros y que se relacionan con la información almacenada dentro del archivo de logs.
Fig. 3.3. Relación entre el archivo de logs y algunas de las tablas de la base de datos de dotLRN
3.3. Recolección de datos de interacción en la plataforma
A partir de los archivos de logs se extraerá la mayor cantidad de información para obtener nuevos datos de interacción. Es necesario recalcar que mucha de la información obtenida desde los archivos de logs no es información concisa; ya que no informa de manera clara algunos de los eventos realizados por el usuario en la plataforma, es por esto que se utilizó también la información obtenida desde la herramienta User Tracking para complementar y reforzar estos datos, para de esta manera tener datos más precisos. El número total de usuarios almacenados en la tabla users (se describirá más adelante) es actualmente de 31.
43 Herramientas utilizadas para el procesamiento de datos
Para obtener los datos de interacción se realizará un proceso paulatino; se desarrollará cada una de las fases necesarias para poder llegar a la obtención de estos datos. Para esto, además de las herramientas ya descritas, se utiliza las siguientes:
Lenguaje de programación Java.
IDE - Netbeans 6.5.1.
Plugin para Netbeans – Jasper Reports.
Base de datos PostgreSQL.
Proceso de configuración de las herramientas para el procesamiento de datos
Instalación de las herramientas
a. PostgreSQL
Como se mencionó anteriormente PostgreSQL es un potente gestor de bases de datos de código abierto y nos servirá para crear nuestra base de datos. Primeramente se descarga el instalador de postgreSQL, para este caso se descargó postgreSQL Plus 8.48. Una vez descargado el software se realiza la instalación que es totalmente sencilla.
b. Java y NetBeans
Primero se instala el lenguaje de programación java y una vez instalado se procede a instalar el IDE NetBeans 6.5.1 que nos ayudara en el proceso de escribir código java.
c. Plugin iReport para NetBeans
Existe un plugin de iReport que se puede descargar para NetBeans, para este caso se descargó el iReport-nb-3.5.2-plugin9. Este plugin se instala desde NetBeans, una vez instalado se encontrará que ya se puede añadir reportes en NetBeans como se ve en la Fig. 3.4. Este plugin es de mucha utilidad para realizar distintos tipos de reportes.
8
http://www.enterprisedb.com/products/postgres_plus/overview.do
9
44 Fig. 3.4. Uso de JasperReports
Proceso de extracción de datos
Los datos de las acciones del usuario sobre los objetos de la plataforma se almacencan en una tabla llamada action_object dentro de la Base de Datos MineriaDeDatos en postgreSQL. Estos datos de usuario se obtienen desde los archivos de logs.
Cabe recalcar que para trabajar de mejor manera se realizó un proceso de depuración sobre el archivo de logs, este proceso de depuración consiste básicamente en la estandarización de los elementos dentro del archivo; esto se refiere a poner en un lenguaje común a cada elemento, por ejemplo en algunos campos se puede encontrar secuencias de caracteres
precedidas del signo “%” como las siguientes:
%5f
%2d
%2f
%3f
45 Este tipo de cadenas no son otra cosa que la representación ASCII en hexadecimal de
algunos caracteres especiales, el signo “%” nos indica que a continuación se introduce un código ASCII hexadecimal, por ejemplo “%5f” nos indica con el signo “%” que “5f” es una representación ASCII hexadecimal es decir “5f” representa el carácter especial “_”. Sin embargo no todos los datos tienen este tipo de representaciones, existen algunos que
utilizan los caracteres directamente, es decir en lugar de colocar “%5f” colocan
directamente “_”, esto varía principalmente por cuestiones de navegador y configuraciones
relacionadas al navegador.
Para realizar un mejor proceso de extracción de los datos se creyó conveniente la estandarización de los elementos y para realizarla se realizó un simple proceso de remplazo de caracteres automático.
Una vez se tiene los datos estandarizados se procede a realizar la extracción de los mismos desde el archivo de logs hacia la base de datos en PostgreSQL, para esto se ha creado una pequeña aplicación ETL10 hecha en Java que básicamente hace lo siguiente:
Leer desde el archivo.
Extraer los datos.
Transformarlos.
Almacenarlos en la base de Datos PostgreSQL.
Es decir realiza el proceso normal que lleva a cabo cualquier aplicación ETL. Una vez se cuenta con datos en la tabla action_object se empieza a realizar el proceso de extracción de datos de interacción, para esto hemos desarrollado otra aplicación ETL en Java que se encarga de obtener información desde la base de datos, procesarla, y una vez procesada
10
Extract, transform and load. Se refiere al proceso de extraer los datos transformarlos de acuerdo a las
necesidades y
46 enviarla a la tabla user_interaction, que almacenara la interacción que el usuario mantiene con la plataforma.
3.4. Modelo de datos desarrollado
Para poder analizar la información necesaria para la identificación de las recomendaciones dentro de la plataforma es necesario analizar y desarrollar un modelo de datos en donde se almacenará información referente al usuario y su interacción con el sistema. Este proceso como se mencionó antes se desarrolló con la ayuda de aplicaciones ETL. Una vez se posee esta información dentro de las tablas se puede realizar un proceso de minería de datos a fin de realizar la clasificación de usuarios, de este punto se hablará más adelante.
Descripción de las tablas
Las tablas utilizadas tienen cada una, una función en especial, a continuación se describe cada una de ellas:
a. users.- en esta tabla se almacenan los datos correspondientes a la información de cada usuario. Para obtener estos datos se utilizó la utilidad UserTracking desde donde se extrajo los datos de cada usuario. En la Tabla 3.1 se describen los campos de la tabla usuario.
TABLA users
Campo Descripción Tipo
user_id identificador del usuario. integer
first_name nombre del usuario. text
last_name apellido del usuario. text
mail mail del usuario. text
47 b. action_object.- dentro de esta tabla están almacenados los datos obtenidos a partir del
archivo tams-events. En la Tabla 3.2 se describen los campos de action_object.
TABLA action_object
Campo Descripción Tipo
action_id (PK) clave primaria que sirve como
identificador de la acción. integer
action_start tiempo de inicio de la acción
(en formato UNIX-TIME). integer
action_finish
tiempo de finalización de la acción (en formato UNIX-
TIME).
integer
ses_id identificador de sesión. integer
user_id identificador de usuario. integer
ip dirección ip. text
url url del objeto. text
object_type objeto al que se accedió. text
object_name identificador del objeto sobre
el cual se realiza la acción. text
action_date fecha en la que se realizó. text
Tabla 3.2. Descripción de campos de la tabla action_object
En la Figura 3.5 puede observarse la estructura de la tabla y algunos de sus datos dentro de postgreSQL.
48 Obtención de datos de interacción a partir de los datos de usuario
Para obtener los datos de interacción necesarios se requirió la extracción y procesamiento de los datos de las tablas action_object y users previamente mencionadas. Es necesario realizar un procesamiento de los datos a fin de obtener nuevos campos que nos ayudarán en el desarrollo de nuestro proyecto, para ello se ha elaborado una aplicación java que realiza las siguientes tareas:
a. Extracción de datos desde las tablas necesarias.- para esto se realiza la debida conexión desde java a postgreSQL, luego se realiza una determinada consulta con la cual se almacena en resulsets la información requerida.
b. Tratamiento de la Información.- una vez se tiene los datos en los resulsets se procede a realizar las operaciones convenientes sobre ellos a fin de convertirlos en la información necesaria.
c. Inserción de los Datos en la Tabla interaction_data.- luego de haber procesado los datos y haber obtenido los campos necesarios se procede a insertarlos en la base de datos en la tabla interaction_data.
Los campos que se pudieron extraer a partir de las tablas usuario y action_object hacen referencia a:
a. Interacciones con los foros
b. Interacción con otros servicios de la plataforma como:
Visitas a faqs.
Visitas a la ayuda.
Archivos descargados.
Visitas a las carpetas.
Visitas al calendario.
49 En la Tabla 3.3. puede observarse la relación de los datos de la interacción en los foros con las características de colaboración que pueden determinarse de esta interacción, que de acuerdo a [23] pueden ser representadas como: nivel de iniciativa, nivel de actividad y nivel de actividad de otros compañeros causada por el usuario que hacen referencia a las acciones en las que se denota una iniciativa propia por parte del usuario, las acciones donde queda demostrada la actividad del usuario en la plataforma y las acciones de otros compañeros provocadas gracias a la participación del usuario respectivamente. Estas características de colaboración se han definido con la finalidad de facilitar el proceso de clasificar a los usuarios de acuerdo a su colaboración en cada atributo; todo esto se explica mas a detalla en la sección 4.1.
50
DATOS DE INTERACCIÓN CARACTERÍSTICA DE
COLABORACIÓN
Número de sesiones del usuario
Nivel de Actividad (activity_level)
Tiempo medio por sesión
Número de visitas a los foros
Número de visitas a los mensajes
Número de mensajes enviados
Número de Hilos en los que ha participado el estudiante
Número de Hilos en los que ha participado el estudiante y el
profesor Nivel de Iniciativa (iniciative_level)
Número de Hilos iniciados por el usuario
Número de respuestas a los mensajes de usuario
Nivel de actividad de otros compañeros causada por el usuario
(classmate_activity_caused_by_user_level)
Último acceso o visita
No serán utilizados para el proceso de minería de datos
Número mínimo de días desde la última visita
Número máximo de días desde la última visita
Número de páginas que el usuario ha visitado
Número de veces que visito carpetas
Número de archivos visitados
Número de archivos descargados
Número de veces que visito faqs
Número de veces que solicito ayuda
Número de visitas al panel de control
Número de visitas al calendario
51 Los datos mostrados en la tabla 3.3. se almacenan dentro de la tabla user_interaction, en la tabla 3.4 puede verse la estructura de la tabla con todos los datos obtenidos.
TABLA interaction_data
Campo Descripción Tipo
user_id identificador del usuario. Integer
num_sessions número de sesiones del
usuario. Integer
average_time_per_session tiempo medio por sesión double
precision
last_visit fecha del último acceso Text
max_days_from_last_visit número máximo de días
entre visitas Integer
min_days_from_last_visit número mínimo de días
entre visitas Integer
num_pages_visited
número de visitas a las páginas dentro de la
plataforma
Integer
num_forums_visited número de visitas a los
foros Integer
num_msg_to_group_forum mensajes posteados por el
usuario Integer
num_msg_visited número de mensajes
visitados Integer
num_average_replies_threads número medio de
respuestas a hilos
double precisión
num_threads_user número de hilos
contestados Integer
num_threads_started número de hilos iniciados
por el usuario Integer
num_folders_visited número de visitas a las
carpetas Integer
num_files_visites número de visitas a los
52
num_files_download número de descargas
realizadas Integer
num_faqs_visited número de visitas a las
preguntas frecuentes Integer
num_help_visited número de visitas a la
ayuda Integer
num_controlpanel_visited número de visitas al panel
de control Integer
num_calendar_visited número de visitas al
calendario Integer
num_threads_user_and_tutor
número de hilos en los que han participado el estudiante y el profesor
Integer Tabla 3.4. Descripción de campos de la tabla interaction_data
En la Figura 3.6 puede observarse la estructura de la tabla y algunas de sus columnas y de sus datos dentro de postgreSQL.
Fig. 3.6. Vista Parcial de los datos de la Tabla interaction_data
Tabla Vista Minable
La tabla vista_minable es una tabla en la que cual se almacenan los datos de interacción de los usuarios con su respectivo valor en cada uno de los atributos relacionados con las características de colaboración que se definen posteriormente en la sección 4.1.
El diseño con los respectivos atributos para la tabla vista_minable puede verse en la tabla 3.5.
53
TABLA vista_minable
Campo Descripción Tipo
user_id identificador del usuario. integer
sessions_num número de sesiones del
usuario. integer
average_time_session tiempo medio por sesión double
precision
num_forums_visits número de visitas a los foros integer
num_msg_to_group_forum mensajes posteados por el
usuario integer
num_msg_visits número de mensajes visitados integer
num_average_replies_threads número medio de respuestas a
hilos
double precisión
num_threads_started número de hilos iniciados por
el usuario integer
num_threads_user_and_tutor
número de hilos en los que han participado el estudiante y el
profesor
integer
num_answers_to_user_msg número de respuestas dadas a
los mensajes de usuario integer
num_answered_threads número de hilos que contestó
el usuario integer
iniciative_level nivel de iniciativa del usuario text
user_activity_level nivel de actividad del usuario text
classmate_activity_caused_by_ user_level
nivel de actividad de otros compañeros causada por el
usuario
text Tabla 3.5. Descripción de campos de la tabla vista_minable
Una vez se tiene ya las tablas necesarias de nuestro modelo se puede empezar a realizar la minería de datos como se hará en el siguiente capítulo.
54
Capítulo 4:
55 Este capítulo se centrará en la primera parte de la tercera fase de todo proceso adaptativo, es decir en la Producción o realización de las tareas de adaptación; es así que este apartado se enfocará en la minería de datos para dejar para el capítulo 6 laidentificación de recomendaciones.
Para el proceso de minería de datos se utilizó la herramienta de código abierto WEKA; si bien es cierto existen muchas herramientas que permiten utilizar algoritmos de inteligencia artificial que se encarguen de realizar procesos de clustering y clasificación, no hay ninguna más completa que WEKA, la cual además de poseer un sinnúmero de algoritmos y otras herramientas bastante útiles, es de código abierto, por lo que no se necesita de ninguna licencia para poder utilizarla, asimismo su uso es bastante intuitivo y relativamente sencillo con un poco de paciencia.
Conexión desde WEKA a la base de datos Minería_de_Datos en postgreSQL
Weka ofrece la posibilidad de conectarse a una base de datos directamente desde su interfaz Explorer. Cabe señalar que para poder trabajar con algunos de los datos de postgreSQL se tuvo que configurar el archivo DatabaseUtils.props.postgresql de WEKA; para esto se ingresó al archivo y se agregó algunos tipos de datos que por defecto WEKA no reconoce, se agregaron los tipos de datos int4 y text dentro del código de DatabaseUtils.props.postgresql, lo que se agregó puede observarse en la figura 4.1.