My Overall Experience
Phase 1 - XML and Parsing
I learned XML right away and found it to be a useful format and thought it
would be a very useful guide throughout the BAP project. It was very
exciting to design my own schemas for the project. I appreciated the
trust given to me to design the input and output schemas, this is
something that schools can lack - freedom of design. This gave me the
opportunity to see what working in real life environment is like (to an
extent). It also gave me the opportunity to make real design decisions
that would affect the rest of the POET project. I wrote two schemas, one
for input to the GUI and one for output from the GUI. The output GUI is
created but is not implemented, as we ran out of time before the
conference. However, I wrote it for use in the future and to give James
an idea of how output should be formatted. I had to figure out a concise
but easy to parse way to define the paths of directed acyclic graphs. The
version in use lays out each path individually. This was agreed upon by
the group to be the best implementation. The input schema simply lays out
the ways to define attributes and values for input (things that users
might have opinions on) as well as archetypes for these values. We often
ran into naming mishaps as attributes and values are common words that are
used in XML as well as our project. I found XML easy to use and write.
Parsing XML is a little bit of a different story. For the GUI to be able
to read in an XML instance document (for the input schema), we used the
Xerces parser. Everything is encapsulated well and formatted into a tree
structure automatically. The big problem that Derek and I ran into is
that the tree also reads in whitespace and treats these as objects instead
of ignoring them. The solution that we came up with is to read in a file
a character at a time, remove the unnecessary whitespace, create a
temporary file to parse, and deleting this file after the object is
created. We spent my last week of the project working on this phase (many
late nights) and had it working by the time James and Robert presented at
the conference. All in all, I would use XML again.
Phase 2 - Online Tool
After designing the schemas and input documents, Dr. Goldsmith and I sat
down to examine them and to figure out my next phase of the project. We
both decided that instance documents are a little tedious to type out and
can be very error prone and even a little tough for non-computer types to
use/understand (all important info is kinda hidden in tags and
formatting). We decided that I should design an online tool to create
instance documents "on the fly". What this is, is that the user simply
types in the information that they want to use for the GUI (items that
users could have opinions about) into text fields and all of the tags and
formatting would be created for them. This tool was to also allow the
creation of archetypes to be a fairly easy process with menus so that the
user didn't have to type stuff in again (alleviate some of the
tediousness). I was very excited about this project since I wouldn't have
to type in tags any more! We decided to use Perl and HTML to create this
site. I wrote two versions, the first one, to get an idea of how
everything works. This version had a set number of attributes, values,
and archetypes and these numbers couldn't be changed. The second version
allows the user to enter the max number of attributes, values, archetypes,
and archetype values making the tool a little more dynamic and customized.
Dr. Goldsmith and I agreed on entering max numbers for these objects as
this method allowed the tool to work on several different browsers
reliably. I had to learn Javascript to create this tool for error
checking and creating menus for archetypes. I was happy with the tool
when I was finished and learned a new language and learned a LOT more
about Perl. This site is also much easier to create instance documents
with then typing them out by hand. One issue that I had to be concerned
with was the security of writing a file to my account. I had to be sure
that user input wasn't used in any way that could cause errors. I am not
claiming that my site is safe but this project opened my eyes up to some
possible errors.
In the Future
In the future, I hope to still work on the POET project. I know that I
will be writing up stuff about the schemas and instance documents for
people to look at when using these items. I would like to continue
working on the parsing side of the GUI since I'm familiar with it and it
uses my stuff. If I decide to go to UK, I would be very interested in
working on other pieces of the BAP project. I know a few things to be
added to POET are a different GUI interface, a different method for
dynamically creating the GUI (still would use parsing), and allowing
many levels of dependency (right now there is only 1 level that can be
created from the instance documents - although the schema allows more than
1, my tool and the GUI don't). This would also cause some rework of my
tool to be done. I will also be presenting a presentation on my work and
my project at UE this school year, probably in the spring.
What I Learned
Overall this summer was absolutely fantastic! It was more that I had ever
imagined. It was really great working independently, not being told
exactly what I had to do and when I had to do it. In this project, I
there were times that I didn't feel like I contributed much (mostly in the
discussions of planning (future BAP work) but in the end I felt that I had
made a significant contribution. It was really great working with such a
diverse group of people - I don't often get to work in groups at school on
such large projects so this was definitely a learning experience. I
loved the environment that I worked in, discussing the big project
while working on my own piece and just being part of a team. One big
thing that I learned was to work on my own, set my schedule, and to teach
myself and to not rely on others as the only way to figure out my
problems.
I've still to decide whether or not I want to go to graduate school but
the working with the BAP group and Dr. Goldsmith through the DMP has given
me valuable insight into what research is like as well as what to expect
out of graduate school (from me and my professors). I still have not
chosen a particular CS field that I would like to pursue but this summer
has moved AI up on my list. I've gone back to school with a very positive
outlook on my major and am really looking forward to my classes and my
senior project. I feel that I might be able to take some of what I
learned over the summer and apply it to an interface that I will be
creating for my project. As far as grad school goes, I am going to take
my GRE's (Dr. Goldsmith's suggestions) and apply to several schools (UK
definitely being one of them) and see what happens!