My Journal
Week 1/2 - May 15-May 17, 2002
I set out on a sunny Wednesday afternoon for the three hour journey to
Lexington, KY from Haubstadt! My mom followed with me because the
majority of my stuff would not fit into my little Accord! I arrived in
the beautiful town and easily found my way to the housing office at UK and
due to a mixup, my apartment wasn't going to be ready until that Friday!
I had a bit of a panic attack but called my cousin that happens to live
here and we stayed with them for two nights and got to visit with them!
On Thursday, I explored the city and was amazed by all the stuff there is
to do! I also met with James and Dr. Dekhtyar, two of the people involved
with The Bayesian Advisor Project! I also saw th lab I'd be working int
and got my account all set up! On Friday morning, a somewhat cloudy day,
Mom and I headed to my apartment, my very first one! We moved everything
in and started the unpacking process - I couldn't believe the amounts of stuff that I had brought! However, once everything was in its place, the apartment seemed more like home! We then started the adventure of finding a grocery store and stocking my kitchen! It started raining right as we got to the store! None the less, we finished all of our errands, put all my groceries away, made a pot of coffee and relaxed for the rest of the evening! It had been a full day!
That weekend my mom went back home and I spent my time watching a
few movies, exploring the town, reading some stuff for work, finding a
church, and learning my way around the UK campus, which is about 15 times as large as UE's campus!
Week 1 - May 20-May 24, 2002
On Monday, I went to my lab, soon to be my home away from home and started
reading about Bayes nets, probability theory, Markov Decision Problems,
Constraint Satisfaction, and Dynamic Bayes Nets! It took a while, in fact
I spent the rest of the week reading this as well as information on XML
and asking questions! I met with my mentor, Dr. Judy Goldsmith on that Monday, she had been out of
town to a Conditionals conference in Germany! We sat down in her office
and started discussing what I would be doing and what I should get started
on! She was very nice right from the start and made me feel very welcome
and important to the whole project. At this point we decided that my
first project would be to learn XML (instance docs and schema) and write
the schema for input to POET. It would then be my job to write the
Instance Document for POET in accordance with my schema! That Tuesday I
met with the rest of the group - Dr. Judy Goldsmith, Dr. Alex Dekhtyar, Dr. Chris Lusena, James Royalty,
Robert Holland, Derek Williams, and Whenzhong Zhao. Derek and Robert are both undergrads.
James and Whenzhong are the grad students. It was easy to see that
I was going to be working with a wide variety of people and knowledge. We
discussed the goals of the summer while we are there...short-term: being
ready for a conference at the beginning of August and the long-tern of the
BAP (Bayesian Advisor Project). This week was also spent learning my way
around Lexington! That weekend I went home to get some things that I had
forgotten and didn't know I needed! I also had several family Memorial
Day parties to go to as well!
Week 2 - May 27-May 31, 2002
Ah, the second full week! This week was spent getting down and dirty into
XML instance documents and schema...I even read part of the specs...Note
to anyone wanting to learn XML- the specs aren't worth it, way too dry - I
recommend checking out www.w3schools.com
(this has been a wonderful resource for XML). I discussed with Dr. Goldsmith and James in depth what
would be necessary for input to POET's GUI (being worked on by Robert)
several times and started to sit down and write the schema by the end of
the week! Writing the schema was a welcome project after reading so much
(it was nice to get to do any coding..which I love to do)!! We did have
another group meeting this week in order to figure out who was going to do
what on the project and to familiarize me with the entire BAP and not
just POET. I was also given the job of reading some papers on SPUDD (Stochastic Planning Using Decision Diagrams) to
start on next week. For the weekend I finally got to go see Star Wars
Episode II (I am a huge Star Wars fan) and enjoy apartment life (i.e.
cleaning the place...) and going home again for Sunday since it was my
Grandparents 55th wedding anniversary and they really wanted all of the
family to be there!
Week 3 - June 3-June 7, 2002
This week at work, I finished up the schema (at least draft one), had it
looked over, fixed a few things (missing tags, misspelled words, more
readable organization), and added keys and keyreferences to ensure
uniqueness for input. I *started* working on the instance document for
POET as well to show how the schema would work for those that didn't know.
Started is the key word there - I had no idea how big it would be by the
time it was finished! I also started reading about SPUDD. I met with Dr. Goldsmith on Wednesday and she gave me some background information to
SPUDD and see how things were going with me and to discuss grad school.
We also had a group meeting this day (which is when my schema was looked
over). On Friday, we had a "Constraint Satisfaction" meeting in which the
BAP group, the Computer Science Department Chair, and several grad
students met to discuss if the planning side of BAP (not being coded yet, it's still being
discussed on a theoretical level) could be modelled by (or mapped to) a
constraint satisfaction problem. During this meeting, Dr. Goldsmith
also talked more in depth about the BAP; specifically some of the AI
issues involved in it.This was a very cool meeting - I must
admit I didn't have any input but seeing the planning/discussing side of
this research project was very cool and its always interesting when
professors yell at each other (to interrupt one another) to get points
across! It's also amazing to see some of the research that has been done
recently in this field! It was an enlightening meeting where many
issues and ideas were discussed! I left that meeting realizing just how
little I really knew and how much more I wanted to know. After all the driving of the past few weeks, I had to get my car in to
have to oil changed that week as well as I got to babysit for my little
cousins (which was fun...I'm a big family person). I even played chess
with a seven year old and got beat (he changed the rules as we played..so
I don't feel as bad)! For the weekend, a friend from UE was in town so we met and went to a movie (About A
Boy...I'm a big English Humor fan, Hugh Grant fan, and romantic comedy fan
so it was definitely a fantastic movie) and hung out for awhile. On
Saturday, I ventured out to Georgetown (about 15 minutes away) to check
out some of the antique shops! It's a cute little town that looks like it
came out of a movie (the one that time forgot)! I found some beautiful antique furniture that was *slightly* out of my price
range but I had a great time looking! It turns out that my cousin's
babysitter cancelled on them that day so I babysat again that night! I spent Sunday
with my friend again and cleaning (what fun :) )!
Week 4 - June 10-June 14, 2002
For the first two days of work this week, we had an XML Parsing Workshop
so that everyone would be on the same page. James, Whenzhong, and Derek
gave the talks! It was very cool learning from my peers...and believe me
in two days I learned a lot! I find parsing to be very cool and am very
optimistic about being able to use it for my senior project at UE this
year! On Monday after the seminar, the BAP group headed off to Pazzo's (local pizza place) for lunch and to discuss values and attributes that an
undergraduate student could have an opinion on and archetypes outlining possible goals for optimizing one's college experience. An example attribute
would be Profesor whose values could be "Goldsmith", "Dekhtyar", and "Lusena". Students could have opinions on these professors (love 'em, hate 'em,
don't care). An example archetype would be "Graduate in 4 Years" or "Maximize My GPA in those 4 years". I furiously took notes at lunch trying to
keep up with everyone's ideas. After lunch the BAP group came back to the lab and headed off for a meeting (we 'lovingly' call them "constraints"
meetings; which are those in which we discuss ways to plan given constraints and if this is even the right approach/model). We got into some big
discussions and by the end of the day I felt like I had learned more in one day than an entire semester at school! For the rest of the week, I
finished typing up the instance document and deciding what really needed
to be in it and what didn't. Robert and I also met to discuss if my
schema would give the right information needed for his GUI - we decided
it did and his code would have to have very few changes to use my schema!
That was great news! I have found XML to be a very easy to use and
learn tool that can be very handy for passing data around especially when
the data needs to be in a set format! I started to read a little of the
SPUDD paper but again that had to be put off until next week since getting the instance document done was the most important part of the week! This week I
found the huge mall in town in search of Father's Day gifts! I also got a
birthday present for my sister! The mall was huge (larger than anything
in Evansville) and took me awhile to find anything for my dad and stepdad since I didn't know my way around. For the weekend, on Friday afternoon (after meeting with Dr. Goldsmith to go over the instance document), I rushed home for the weekend! It was my little sister's
19th birthday on Saturday and Father's Day on Sunday! It was a full weekend! I went to dinner with one side on Friday night to celebrate the
birthday, made lunch on Saturday for my sister (I made the "cake" - she wanted Rice Krispie treats) but that was cut short by the call that my 86 year
old grandma (mom's mom) was taken to the emergency room for heart trouble!!! She ended up getting released that Tuesday and has been put on heart
medicine to regulate her and has since been fine (what a relief)! That
Sunday was spent at the hospital making sure she was ok and going to the other grandparents home to celebrate Father's
Day with my Dad. On Friday's meeting with Dr. Goldsmith we discussed what my next phase of the project should be. We decided that I should build an
online instance document elicitor in order to alleviate anyone from having
to type in tags and to ensure that the schema was properly followed! It sounded easy at the time but would soon prove not to be as easy as I originally intended!
Week 5 - June 17-June 21, 2002
On Monday of this week, I sat down to start to imagine what this online tool would require. I quickly realized I needed to brush up on my HTML and
Perl so I started to read about HTML as well as planning out how the tool might look! I decided that functionality was going to be more important
than the looks of the tool. Tuesday was designated a day trip for
the BAP group. We headed off to the "Natural Bridge Park", it's
about an hour east of Kentucky! We spent the day taking the three
mile hike up to Natural Stone Bridge (which is a fairly steep
incline to those of us who aren't used to it!) and had lunch
overlooking the gorge below! It was a beautiful sight to see (all
the trees and large lake were simply gorgeous)! I took a lot of
pictures throughout the day and when I get them developed, I will
post them on the site! After lunch we hiked around some smaller
trails around the natural bridge. One place, called Devil's
Backbone where the Needle Eye Staircase was was an awesome place to
hike down but very much a pain to go back up! By the time we were
ready to head back down to ground level, we all decided to take the
ski lift back down! It was a much shorter trip than going up :)
It was a lot of fun and gave the group a chance to get to spend
time together outside of a work environment! By the time I got
home, I was dirty and tired and ready for a bath! The rest of the
week was spent getting back to work and creating the webpage tool!
By the end of the week I had made a static model (where the number of
attributes and values were set) that the user could input the information
about attributes and values into. I had to start researching Perl and CGI scripting since I had only
done a little of this! This is all very useful stuff, I feel, to
learn and be more experienced with and it is all really interesting
to see! I've decided though that I like designing web pages for
functionality but not looks (I'm not very good at that (at least
not yet))! Part of my time at work this week was also checking
my instance document for errors (didn't have time last week
since some of the ideas for what should be included kept
changing). I checked for closing tags, spelling, proper
descriptions of values and attributes, and syntax errors.
There was more than I could have imagined but I was very glad
to have checked it. I didn't validate the input schema with
the instance document until the following week so I couldn't
tell if there were any errors that way! One frustration of the week
was realizing that I could't make a useful online tool with fixed
numbers of attributes, values, and archetypes. I decided to go ahead
and write the static version (fixed numbers) and once I was sure of
what I was doing, going back to the code and editing it to make it
more dynamic (not fixed values). I also realized I was going to have
to decide how to make the tool more dynamic (more stuff to learn!). This
week I had company come visit me from Thursday to Sunday! We went to the movies and say Scooby Doo (ok movie -
pretty cute), had dinner out, saw the town some (and got lost in
the spindle wheel streets trying to find a laundry mat), visited
the fountain in the middle of downtown (really pretty, I'll try to
post a picture once they're developed), and just spent time
catching up!
Week 6 - June 24-June 28, 2002
At work this week, I spent my time working on the static version of
my web tool. I added some CGI scripting to it to pass data to the script
to create a web page to elicit archetypes. I also started working
on outputting the instance document to the browser. I had to look
up a lot on Perl again because I've not used it enough to be
familiar with all of its syntax, symbols, and rules. Using eq
instead of == has been the hardest thing for me to remember!! Many
errors (and headaches) were caused because of this oversight! I found
many good resources for CGI scripting and Perl by just searching on
Google. I do recommend narrowing down your
search to something particular that you're looking for because there are a LOT
of tutorials and code to use/look at! I met with Dr. Goldsmith this week
on Wednesday to look over my tool up to this point and talk about graduate
school again. I discovered that I had looked at academic careers more as
teaching only and she opened my eyes up to the many other things that one
does at an academic institution (I've considered teaching as a possible
future job)! I felt this stemmed from UE and knowing that my professors
mainly teach and do very little research on the side! This made me
realize that I would have to be careful where I go to grad school at and
where to possibly take a job at! I would have to be aware of how strongly
research was emphasized at any institution! It was a very enlightening
conversation!! We also talked about how to potentially make my tool more
dynamic and Dr. Goldsmith recommended asking for the maximum number of attributes, values,
and archetypes that one might want to have. This turned out to be very
useful information! This turned out to be an extremely good and useful
meeting! One error I ran into this week was trying to figure out how to
write to a file from a CGI script through the browser (it would work from
the command line but not the browser) - this was very frustrating to know
that my code should work right but didn't...I didn't fix this problem until
Week 9, so see there for details to the problem, if you're
really interested!! I also wrote several smaller instance
documents for testing purposes since we would have to inputting
these instance documents to the POET GUI. Overall this
week, I learned a lot! For personal entertainment outside of work, I
worked on my scrapbook (one of my hobbies) of my semester of studying
abroad in Harlaxton College situated in Grantham, England (about 110 miles
north of London)! It was a lot of fun to have those pictures out and
remember what wonderful times I had. I've been working on this scrapbook
since Christmas 2000 and was glad to finally get back to it (School had
kept me from getting real progress done!)!! I also went home for the
weekend - I had a very good friend just get out of the hospital that week
(ulcers in intestines...I know, gross) whose wedding was supposed to be
that weekend but had been previously cancelled (for very personal reasons)
and I wanted to be there for moral support and to help his mom out with
helping him to recover! I spent a lot of time watching movies and talking
to him that weekend but was very glad I was there!
Week 7 - July 1-July 5, 2002
At work this week, I didn't get much done on Monday on the tool since the
server that my code was on was down for most of the day! I did change the
schema to add dependencies to the archetypes so that a value can depend on
a different one. This would have to be added to my tool as well this
week (and was)! We also had a group meeting on Monday to discuss who
would do what for the next "phase" of the project. I am going to write
the output schema, finish up my tool, and help parse XML instance
documents for input to the GUI. I also finished up the static version of
my tool (meaning that it reliably outputted instance documents. I also realized that I
should not rely on user input to be correct and add some code to my tool
to ensure uniqueness and proper input. I also changed the archetype page
so instead of a user inputting the name of a value or attribute he or she
had created previously - they just picked the value from a menu (cutting
my error checking down a lot there)! After looking at some other websites
and reference sites - I decided that Javascript would be the best to use
for ensuring proper user input (as well as easy enough to learn)! So I
started ensuring all values were unique this week. I started out with a
bunch of if statements and it was too large and redundant so I went to a
better approach of creating an array of all the values (once inputted) and
checked them against each other in a while loop. If a name was not unique
the user is prompted until they enter a name that is unique. On
Wednesday night, Derek and I got together to try and figure out how
to start parsing XML instance documents (like the one I wrote) and
wrote a few functions that we thought might be useful, but since we
hadn't talked too much to Robert, we didn't get everything done. The
functions we did get working were really cool to me since I hadn't
ever used JAVA (using Xerces parser) or messed with XML parsing. It was
really interesting to learn (and would later prove to be very
frustrating). Since this week was the Fourth of July, I didn't work very much on Thursday but did
go to Dr. Goldsmith's house for a picnic! It was a lot of fun and again
nice to spend time with some people I work with outside of work! I also
tried tempeh (which was a first) and it was quite good! Other than that I
didn't do much for the fourth! Fireworks could be seen from outside my
apartment so I watched those for a bit! I went home for the weekend
again, yes I spent more weekends in Indiana then Kentucky, for a family
reunion! I also got to go canoeing for the first time that weekend -
which was a lot of fun although it was hard to lift my arms up the next
day!!
Week 8 - July 8-July 12, 2002
This week at work, I finished up my static version of the web tool. I had
to learn more Javascript to make my tool more useful and to prevent bad
user information. As well as ensuring uniqueness of all 'name' fields, I
also had to ensure that for every name entered a description was entered as well.
This lead to the issue of when to check uniqueness/descriptions being
filled in, field by field or at the end. I tried both methods - really
trying to make the field by field work but it caused too many
inconsistencies of when prompt boxes would be used so I switched to
checking at the end and found some rather good ways of ensuring uniqueness
(recursive while loop) so that it didn't require a lot of if statements.
I also did it this way so that switching over to a dynamic version would
be much easier to do. I found this part of the tool to be very fun and
interesting as well as very frustrating...Javascript does not use
semicolons at the end of lines where many other languages that I had been
using, do! I also had to figure out what could be passed between Perl and
Javascript in my CGI scripts (arrays do not pass) which caused me to have
to create arrays in my Javascript as well as in my Perl code. There was
also a little trouble in passing the CGI object values into Javascript
because the HTML didn't recognize the syntax of the CGI object very well.
On Tuesday this week, Derek, Robert, and I met to discuss how to take an
XML instance document and use it in Robert's GUI. Derek and I had written
a few useful functions the previous week and showed them to Robert,
explained what they did, and Robert took all of the code to try to
understand and integrate it. We were supposed to hear from him in a day
or two to see how it went and what more functions would need to be
written. I also met with Dr. Goldsmith this week to show her my finished
static version of the tool - she approved and was happy to know that I
would be starting on the dynamic version at the end of the week, which I
started on Friday and by the end of the day on Friday I had the input page
created (with all necessary checks fore uniqueness and non-zeroness) where
the user entered in the maximum possible number of values, attributes,
archetypes, and archetype values. The maximum number of items was the
easiest implementation to be used on many different platforms. I had been
working on Netscape 4.77 up until this week where I was (very gratefully)
upgraded to Netscape 6.2. By this point everything I've developed was
compatible with both versions as well as current Internet Explorer
versions. I stayed in Lexington for the weekend and took pictures of the
campus, worked on my scrapbook, and drove around the town!
Week 9 - July 15-July 19, 2002
This week was devoted to redoing my web tool. I made it more dynamic. It
required many for loops and if statements checking for names or
descriptions not filled in. I created all the pages (creating attributes
and values and creating archetypes and forming the instance document to
agree with my input schema). I also had to redo my scripting to ensure
uniqueness in names. It required some redoing of my functions. I had to
pass information from CGI script to CGI script in hidden variables and
couldn't pass Perl arrays so I had to break the array apart and send each
value separately as hidden variables. This actually simplified my
uniqueness functions. I had to also check for empty values in special
cases (such as if a value is filled in and not its description and vice
versa as well as if an attribute name was filled in but there was no
values within it and vice versa). I used a little math in my Javascript
functions to discover where attribute and value names and descriptions
would be to ensure that menus were created with the correct values as well
as to ensure that no archetype names were the same as those for attributes
and values. I also wrote functions to update the menus so that a value
couldn't depend on itself in the archetypes as well as no two values had
the same dependencies with different utilities because this would be
contradictory. I also got permission to write from an internet browser to
my account this week so that I could finally figure out how to save
someone's instance document. I did have trouble figuring this out. I
double checked my open statement (only thing not working) and saw that it
was correct. I emailed my brother on this and talked to him that weekend
to try to figure out what was wrong. I figured out what was wrong on
Monday of the next week. This week I also wrote two output schemas so
that James could decide which would be most useful for output (to his
visual GUI). One outlined all paths in a tree and the other detailed the
tree level by level. I wrote small instance documents to demonstrate how
they work and James and I decided to use the path one (assuming it would
be easiest to write from the GUI and fit the easiest into what he was
doing. It was a very full and productive week. I felt that I got a lot
of work done this week in that I completely redid my website (reusing what code I could) and was very happy with it. I did
create a list of things that I would like to do if more time would
surface. This week I also started packing up a lot of stuff and moved it
home on the weekend. This week I was also hit with the realization was
that there was only a week left before James and Robert left for the
conference and I left. Derek and I never heard from Robert (his computer
wasn't working so he didn't really look at input) so that told me what
I would be doing next week!
Week 10 - July 22-July 15, 2002
My final week...it's kinda sad that I'll be leaving. On Monday I figured
out why I couldn't write from the browser to my account at UK...I didn't
have the permissions set correctly (I was the only one that could write to
the directory with the permissions that were set!) I felt a little dumb
when I figured it out but was ecstatic to know that my code was correct
and even better working! To my tool this week, I added code to create
filenames for uniqueness purposes, ensured that the user would enter only
numbers on the first page of the tool (max numbers), wrote a reset
function so that all menus were reset correctly (since they were changed
any time someone changed a menu value), tested my stuff (it all worked
with very few changes), reworded some of the directions (and added
examples to help explain what it was for), created a link to POET so
people knew what it was, and spell checked everything. James and Robert
had practice presentations this week. I met with Dr. Goldsmith to show
her the final version of the tool and see if she knew anything about
Robert. We finally got ahold of him and realized that input wasn't
working. Most of the evenings this week were spent working with Derek on
getting input to work for the GUI. We took Robert's code and added
everything we had previously written to it, figured out what his code did,
adjusted it to read information from instance documents and got the whold
thing working. We were pretty proud of it and extremely, extremely
frustrated by this part of the code. We kept gettin null pointer
exceptions in the code because the parser would read blank characters and
lines and think that they were part of the DOM tree (we used the Xerces
parser which meant I learned Java this week some). We tried everything we
could think of to get around this but no go...Derek finally wrote a
"buffer" for the file to remove all unnecessary whitespace from the input
files. It worked and I was ecstatic. XML parsing proved to be very
frustrating and very interesting. Robert's code associated all strings
with numbers so we had to write special code to search for index positions
of the strings that we read in from the instance document. I did make
some suggestions to Robert on how he could improve his implementation
after the conference. This week I also wrote a new input schema that
might be used later on (it allows for infinite levels of dependency in
the archetypes). I also met with Dr. Goldsmith for lunch on Thursday. We
had a lovely time and recapped the summer (discussed what we thought of
it) and such. She left that night for the conference. I also packed up
the rest of my stuff this week and moved home on Friday afternoon. It was
a very hectic week but I was pleased with what was accomplished. At first
James told me that my webtool wouldn't be used for the conference but Dr.
Goldsmith told me that it would be (at lunch on Thursday) so everything
wrapped up well. I was very happy with my experience.
Week 10 1/2 - July 29-July 31, 2002
This week has been spent unpacking and working on this website!!
~cmk