Project - Usenet Visualization Tool

Problem Statement

The objective of the project is to visualize the threads in a given newsgroup, visually. The project is based on the Usenet Visualization tool , Loom available here .

Screenshots

  • Normal View
  • The project uses OpenGL for rendering the threads. All the screenshots denote the visualization of the newsgroup netscape.public.general available at the newsgroup server news.mozilla.org .

    Figure 1: Normal Display of messages (keyboard shortcut: n)

    The X-Axis represents the timeline whereas the Y-axis represents the identification of posters (name and email id) sorted alphabetically.
    The message body is available on the right side, with the timestamp and the body of the message available in the toolbox. They become available as and when we select a given message.
    The messages can also sorted by the number of posts made by posters. The same newsgroup is visualized as follows.

    Figure 2: Messages displayed by sorting of number of posts made by people(keyboard shortcut: a)

    Time And Date

    On hovering over a given point, the message details (Date. Time, Sender, Subject) are displayed using the GLUT library on the top of the message.

    Color


    Every message is denoted by a single point. And the threads from a given message to its children are treated by different colors.
    A link from a message to its parent message in a given thread is represented by a *cyan* color, whereas a link from a parent message to a child message is represented by a *green* color. The following screenshots show the same.

    Figure 3: Link from a message to its child message(Click on a message to view children)

    Figure 4: Link from a message to its child message(Click on a message to view children)


  • Thread View
  • Sometimes it might be interesting to segregate those conversations that initiate the threads and those that are replies to messages.

    Figure 5: White points represent new threads and red points represent replies<(keyboard shortcut: t)



    Having segregated the visualization, the user might want to suppress the display of replies altogether.

    Figure 6: Thread messages with replies suppressed(keyboard shortcut: s)

    Navigation

  • Hover over a dot, that represents a message to know more details about the same (date . time , suject )
  • Click on a dot, a message that represents a message to display the message body on the r.h.s panel.
  • Keyboard shortcut : u, to be pressed to navigate to the parent of the current message selected.

    Implementation

    The project is implemented in Python. In addition to Python, PyOpenGL and PyFLTK also needs to be installed on the system to see the results.
    OpenGL is used for rendering the threads. FLTK is used as the windowing toolkit.
    PyOpenGL is available here . PyFLTK is available here . The sources are available here.