A2Z Final Presentation

April 25, 2006

newLogo
www.dreamnodes.com

INTRODUCTION
dreamNodes is an online dream journal which allows users to store their dreams, and discover common themes both individually as well as across all users’ dreams.

GOALS

  • Setup an online application for storage of user accounts, dream text, and a dream dictionary
  • Allow users to add terms and definitions to the dictionary
  • Visualize dream themes using a “dreamCloud”
  • Provide resources such as links to useful sites, books on dream research and interpretation, and allow users to add on to this

CHALLENGES

  • Learning PHP, MySQL and working with a database
  • Conceptually approaching ways to connect users and dreams, body of dreams as a whole
  • Allowing users to help develop the site by adding content, dream themes, etc.

PROCESS
Research - After doing some online research, it doesn’t appear that there exists an online application that aims to connect people through dreams at the level we intended. There is a field of research known as social dreaming, but this is a bit more complicated than what we had in mind.

Setup – We started by building a basic application where users could create an account, login, record their dreams, and attach the date they had the dream.

Tags vs. Themes – Initially, we were playing with the notion of tagging dreams, but this approach seems to detract from the inherent value of the dreams themselves – themes were already discoverable within them. We took a list of dream terms from an existing online dream dictionary and inserted only the terms into a table. This list was then run against the table of dreams in another table (Journals) to find the matching occurences.

Redesign – The main purpose was to improve readability. The former version had a black background, white text and purple links, which proved difficult to read. We also needed to simplify the layout so users could more easily make sense of how to use the site – login/register, find dream themes, find connections, see common themes across all users and within their own journals.

Visualization – Currently having trouble implementing the dreamCloud. We want two types – one for the entire database of dreams and one for individual users. Work-In-Progress

For more detailed documentation on our development process, see our project blog.

SOURCE CODE
The bulk of the action happens in these two files:
journals.php
tags.php

Our references & resources:
majordomo.com (site’s now funky, but code samples are commented by Byrne Reese)
http://php.net
http://dev.mysql.com
and of course, Dan Shiffman

FUTURE PLANS
We plan to continue improving dreamNodes and exploring what else could be done with the text here. After discussing ideas with Dan about the interface and allowing the user more involvement in developing the app, an AJAX interface might work best. Users could select any word from their dream text on the fly, add it to the list of themes and optionally add a personal definition or possible interpretation for it.

We’re also interested in Noah’s suggestion about being able to leave messages for other dreamers, since dreamNodes is about exploring possible connections between people and dreams.

Also, experiment with running dream journal text against dream interpretation/analysis content available online. Could be interesting to see, for example, Freud’s Dream Psychology Psychoanalysis for Beginners (on Project Gutenberg) and other works centered around dreams.

more feedback from Dan Shiffman

April 25, 2006

I met briefly with Dan Shiffman to review the current state of dreamNodes.com and here are his thoughts:

  • New interface is better & easier to read
  • The text cloud works as a good & suitable visualization for dreams
  • Dream Themes is currently limited to our list of words (lifted from an online source). Is kind of weak, content-wise. Immediately, it’s visible that certain words should be themes, especially since they’re interesting words/topics.
  • Dream Themes – Consider allowing users more flexibility in growing this part of the database. Rather than allowing them to tag, or generate entirely new words, maybe limit them to selecting words from within their own entries. Would require AJAX to make any word selectable and add to their list of themes.
  • Dream Themes page – try a different color for text instead of the theme word being larger (breaks readability of paragraph)
  • Also on Dream Themes page – where it lists “more themes:” consider making a mini tag cloud so you can immediately get a sense of presence/weight of those other themes contained within this particular dream
  • Impilicitly state that this is a public dream journal whose purpose it is to look for connections across users through their dreams. Anonymity could be setup in their accounts by allowing users to create any username for public display.
  • In regards to adding a dictionary, could also be contributed to in the same way users could add to the dream themes listing (via ajax interface).
  • Also, on intro/home page, don’t forget to explain what the dreamCloud is, especially to introduce new visitors to the site.

cha-cha-cha-changes

April 23, 2006

We've revised the interface!

Reasons for redesign:

  • Improve readability. Former version had black background, white text and purple links, which proved difficult to read.
  • We needed to simplify the layout so users could more easily make sense of how to use the site – login/register, find dream themes, find connections, see common themes across all users and within their own journals.

Feedback from Dan Shiffman

March 24, 2006

Consider getting rid of tags. Look more at potential of text rather than categorizing and tagging.

Can use binary tree (better than hash map) for analyzing text, but make the database do as much work as possible.

Outline of Development / Goals

March 20, 2006
  1. dreamNodes
    a. anonymous (no email req. but optional)
    b. ajax interface – making use of existing javascript libraries
    c. ability for users to add tags
    d. mark as public/private
    e. click on tag, brings up everything with shared tag in the public
    f. adjust overall interface, try more playful interface – inviting as a social app
    g. need for Bayesian filter anymore??
  2. tags
    a. database of tags fed only by the whole body of users
    b. users will have 2 sets of tags – user-defined & recommended tags, these will be kept separate.
    c. Recommended tags will be visible, but not changeable. Can be turned off
  3. defining tags – wiki
    a. users can contribute what they think or know about these dreamtags
    b. possibly…later if time permits and legal issues aside, import an existing dream dictionary
  4. visualization
    a. show people’s connections via dreams
    b. also think about single user’s relation to body of dreams (not only one-on-one)

Setup blog/documentation to track progress and direction of project

Add new tables for Tags & TagsJournals
- Tags will contain entire body of tags submitted by users of dreamNodes
- TagsJournals will reflect connections among common tags found in dream journal entries

Initial Development

February 28, 2006

Steven – developed PHP login, dreamNodes interface
Angela – setup MySQL tables in database, researched PHP Bayesian filtering

Midterm Presentation

Showed functional site; demonstrated creating a basic login (requires email, user created password. Check email to access key)

dreamNodes

Feedback from class:

  • public/private – anonymous will enable a more potent database of dreams
  • think about 1 user’s relation to the entire body of dreams (not just other single users)
  • pose a question – get them to think about dreams from another angle. Example: “Did you think that the other person could be you?”
  • look for repeating themes, top 10 people connected to you (because of similarities in dreams), maybe read their dreams too

A2Z Midterm Proposal

February 27, 2006

Here’s the general idea/phases:

  1. Setup a website to serve as a dream journal for users (login page, blog style journal)
  2. Content will be compared against a dream dictionary, specific words will be isolated and users will see highlighted terms in their journal entries. When clicked on, they can see what those terms mean in dreamland. This would be accomplished using Bayesian filtering.
  3. Final phase:
    - Extract connections between users and display a visualization of these (i.e. similar words, themes, profile interests, etc.)
    - Allow users to add tags to their dreams

      - Allow users to add to the dream dictionary in a wiki format

      Our plan is to do this in PHP and the visualization end in Processing.

      Follow-up meeting

      February 22, 2006

      Feedback from Jeff Gray & Dan Albritton – didn't see a major problem with having users register/login to create account and log dreams.

      Basic structure and method of analysis

      :basicStructure

      Conceptualization

      February 17, 2006

      Our first discussion about creating an online dream journal involved these ideas:

      • show connections between people
      • dream tags
      • journal to serve as a personal, searchable record of past dreams
      • require user registration (email + password)
      • textform, store in database (MySQL)
      • build application in PHP
      • compare with dream dictionaries and use Bayesian filtering to search for specific words. Provide interpretation/definition of that dream tag
      • public vs. private
      • evolve into crawling the web

      Follow

      Get every new post delivered to your Inbox.