main
Class TopicSystem

java.lang.Object
  extended by main.TopicSystem

public class TopicSystem
extends java.lang.Object

Clase principal del sistema de segmentacion de articulos RSS.

Esta es la componente principal del sistema, la cual implementa los cuatro casos de uso de la aplicacion. Cada metodo representa la union de los diversos modulos, ademas de retornar los datos de las operaciones utilizando las clases del modelo de datos.

Esta clase maneja el espacio vectorial en memoria, pero solo asociando id de documentos con sus respectivos clusters, y la distancia de cada documento a su centroide. Ademas, guarda datos sobre cada cluster de la coleccion.

Version:
14/mayo/2007
Author:
Daniel Gomez M.

Constructor Summary
TopicSystem()
          constructor del sistema TopicSystem
 
Method Summary
 java.util.List clusteringBatch(java.lang.String source, int nclusters, boolean genWordlist, boolean genClusters)
          clustering batch: realiza el clustering inicial de la coleccion.
 boolean clusteringVector(Article article)
          clustering online: agrega un nuevo articulo a la coleccion.
 java.util.List getClusters(int numclusters, int deltaT)
          consulta por los top-k clusters.
 java.lang.String getId_exp()
          retorna el nombre del experimento.
static java.sql.Date getLastDate()
          rescata la fecha del ultimo articulo agregado al sistema
 java.sql.Date getLastEventDate(java.lang.String event)
          obtiene la fecha del ultimo evento (wordlist o gcollector)
static java.lang.String getLastId()
          rescata el ultimo identificador del experimento realizado
static int getLastSize()
          rescata el ultimo size del experimento realizado
 java.util.List getRelated(int id_cluster, int k)
          consulta por los k articulos relacionados a un cluster.
 java.util.List loadClustering()
          carga y retorna el conjunto de clusters del conjunto de referencia.
 void setEventDate(java.lang.String event)
          almacena la fecha del ultimo evento realizado.
 int sizeBuffer(java.sql.Connection con)
          retorna el tamaño del buffer de articulos
 void writeClusters()
          metodo que permite visualizar los resultados de la clusterizacion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TopicSystem

public TopicSystem()
constructor del sistema TopicSystem

Method Detail

clusteringBatch

public java.util.List clusteringBatch(java.lang.String source,
                                      int nclusters,
                                      boolean genWordlist,
                                      boolean genClusters)
clustering batch: realiza el clustering inicial de la coleccion.

Returns:
el status de exito del metodo

clusteringVector

public boolean clusteringVector(Article article)
                         throws java.lang.Exception
clustering online: agrega un nuevo articulo a la coleccion.

Este articulo sera recogido de la base de datos y agregado al sistema. Los articulos que van llegando son almacenados en una lista temporal dee articulos nuevos, y cada cierto tiempo, son agregados realmente al sistema, realizando las operaciones algebraicas respectivas.

Parameters:
article - el objeto que representa al articulo a agregar.
Returns:
el status de exito del metodo
Throws:
java.lang.Exception

getClusters

public java.util.List getClusters(int numclusters,
                                  int deltaT)
                           throws java.lang.Exception
consulta por los top-k clusters.

Este metodo consulta por los primeros k clusters en la coleccion, a partir de una muestra tomada en un intervalo de tiempo dado.
Los clusters pueden ser leido de memoria o de la base de datos.

Parameters:
numclusters - cantidad de clusters a entregar
deltaT - ventana de tiempo a considerar, en dias
Throws:
java.lang.Exception

getRelated

public java.util.List getRelated(int id_cluster,
                                 int k)
consulta por los k articulos relacionados a un cluster.

Esta operacion retorna una lista de articulos, obtenidas a partir de una query a la base de datos.

Posiblemente este metodo no sea parte de la interfaz final del sistema, debido a que seria reemplazado por un metodo que retorne un conjunto de palabras que describen al topico.

Parameters:
id_cluster - identificador del cluster a obtener
k - cantidad de articulos a entregar

getId_exp

public java.lang.String getId_exp()
retorna el nombre del experimento.

Este nombre es usado para identificar cada uno de los archivos generados por la aplicacion. Corresponde al timestamp del sistema.


loadClustering

public java.util.List loadClustering()
carga y retorna el conjunto de clusters del conjunto de referencia.

Las asignaciones de este conjunto se leen de la base de datos


getLastId

public static java.lang.String getLastId()
rescata el ultimo identificador del experimento realizado

Returns:
el id del ultimo experimento

getLastSize

public static int getLastSize()
rescata el ultimo size del experimento realizado

Returns:
el size del ultimo experimento

getLastDate

public static java.sql.Date getLastDate()
rescata la fecha del ultimo articulo agregado al sistema

Returns:
la fecha del ultimo articulo

writeClusters

public void writeClusters()
metodo que permite visualizar los resultados de la clusterizacion


sizeBuffer

public int sizeBuffer(java.sql.Connection con)
retorna el tamaño del buffer de articulos

Returns:
cantidad de articulos en el buffer

setEventDate

public void setEventDate(java.lang.String event)
almacena la fecha del ultimo evento realizado.

Por evento, se entiende una actualizacion de la wordlist, o una recoleccion de topicos basura.


getLastEventDate

public java.sql.Date getLastEventDate(java.lang.String event)
obtiene la fecha del ultimo evento (wordlist o gcollector)

Parameters:
event - el evento solicitado
Returns:
date la fecha del evento solicitado