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!