On Hold

As the Spring 2010 semester was winding down my adviser informed me my topic was well-formed enough to finish up my dissertation proposal and move forward toward my advancement to candidacy. I scrambled to try and get the pieces into place: I found professors willing to sit on my committee, drafted a proposed reading list for my comprehensive exam, and prepared to defend my proposal. With all of the other priorities that come at graduation time, I wasn’t able to get everything into place before the end of the semester. Given that I’ve been in school since Fall 2004, I had to file a request for an extension on my advance to candidacy, which was approved.

I had high hopes that I could present my tentatively approved proposal and reading list to my committee at the start of the fall semester and complete my defense and my comps early enough to switch my hours from “dissertation proposal” hours to “dissertation research” hours. In mid August I was finally able to schedule a meeting with my adviser to review my proposal and reading list on August 24th.

Had a third party been sitting in on the meeting, it would not have been apparent that in the spring I had been close to defending my proposal. My adviser seemed surprised I was there, and appeared to have little to no recollection of what we had repeatedly discussed in the spring, to the point where he did not recall that I had a draft proposal (previously approved by him) and reading list (also previously approved by him).

When all was said and done, it was a pretty demoralizing meeting. At this point, I think there is no hope of completing my comps and defense by mid September (the last date I can switch hours is the 15th). So I have re-focused on the hope that I can get them scheduled by the end of September and completed within October.At his request, I sent my adviser a copy of my proposal, my proposed reading list, and a one-page summary of the research I did over the summer. I got him the proposal on Tuesday night and the other items on Wednesday. I still haven’t received so much as an acknowledgment he has received them.

Given how difficult it is to get my adviser to reply to e-mails and send substantive comments on anything I send him (or discuss with him in person), I am only cautiously optimistic. In fact, I am so pessimistic that I am quietly beginning to explore the possibility of switching advisers, which is probably very difficult to do  at this late date.

So, pending some feedback from my adviser, I am doing very little on my research. I’m spending my time enjoying the company of my family, doing some chores around the house I neglected in favor of my research all summer, and looking into the research interests of other professors as potential fallback advisers. It’s beginning to look like this semester could get ugly.

Advisers — Can’t Live With ‘Em…

But sometimes I wish I could.

My adviser has been working on a proposal for the past couple of weeks, and I know that can mean a lot of lost sleep and a fried brain, so I’ll cut him some slack. But I would feel a whole lot better if I had the impression he remembered SOMETHING about what we discussed last semester regarding my research. It appears my hopes of defending my dissertation proposal and taking my comprehensive exam in time to register for dissertation research hours (as opposed to dissertation proposal hours) have been dashed. At this point, defending my proposal before the end of the semester is the imperative. Defending it before October would be ideal. If I can’t at least get it scheduled for early October it may be time to find an adviser who is more engaged.

So, instead of working on my research, I spent the evening on yet another update to my proposal that I just sent to my adviser in hopes that I will get some good feedback on this latest version. Ideally, I will get assurance that I finally have a proposal that is ready to defend. Whether my reading list is adequate still remains to be seen.

Like the song says, some days you’re the windshield and some days you’re the bug. I hate being the bug.

Another Day, Another OWL API

I got sidetracked last night and didn’t post this as I finished the work. I was having trouble creating individuals within the Protege 3.4.4 API, so I did a little research to see if I could find a solution. In the process, I came across the Manchester OWL API, which it just so happens is the API that Protege 4.x is based on.

The Manchester API is somewhat more verbose, but that’s due it it taking more of what I would call a “purist” approach to building the ontology. Instead of inserting a class, you make an  assertion about the class and add the assertion to the ontology. It’s a little confusing at first, but I got the hang of it pretty quickly.

The end result of all this is that I now have an ontology that is populated with individuals that are part of the appropriate parameter subclass. And just in time for a meeting with my adviser this afternoon.

Building and Populating Ontologies

I took a couple of days off to drop my older daughter off at college. I had originally planned to be out of college before she got into college, but that didn’t happen. Now my goal is to graduate before she does. I hate losing the research time, but a couple of forced days off is a good thing. But as Plato said in Phaedrus, “The mind ought sometimes to be amused, that it may the better return to thought, and to itself.” I take comfort in that, assuming that a break might help to focus my thoughts better.

So I spent some time today trying to populate my ontology with individuals, and it didn’t work quite as expected. I guess the Protege API isn’t as straightforward as I had hoped it would be. I could populate the ontology with individuals, but they wound up in the top level of the ontology and not in the parameter classes as I had expected. I guess I just need to spend some time playing with it to really understand how it works.

Small Problems

I spent the better part of today doing repeated runs across my set of services trying to generate new data using my hypernym agent. for some reason, the silly thing keeps hanging on a particular service. I’ve let it sit for almost an hour with no visible progress. Remove that one service, and it runs just fine. that service causes no issues with the syntax or synonym agents, and it doesn’t throw any exceptions. It just hangs.

So I’ve finally removed that service from the rotation, and now it’s back to gathering data from square one again. I can’t say it’s a wasted day, but it sure doesn’t feel like great progress.

And Now, Hypernyms

I lost Wednesday through Friday to a wonderful bug my daughter gave me. A going away present before she leaves for college, I guess. I appreciate the sentiment, but I’d rather get a nice card than a 103 degree fever. I expected to spend today building and testing my hyperym agent, but I lost most of the day to a leaky kitchen faucet. Considering I replaced the core of that faucet less than three months ago because it was leaking, I was not happy. I have developed a very healthy dislike of Moen faucets — I’ve replaced more of those cores over the past few years than I should have had to replace in 20 years. Replacing a core every year should not be necessary.

But I digress.

But at last I got back to work, and I’ve built a hypernym agent to add to my growing menagerie of parameter comparison agents. Whether it works as intended remains to be seen. But so far it’s at least running and not throwing any exceptions.

In case anyone is wondering a hypernym is a more general sense of a given word. For example, a hypernym of “car” is “vehicle.” I’m operating on the theory that some service parameters may have names that are relatively precise compared to names used by others that refer to the same concept. I guess I’ll find out how valid an assumption that is.

Memory Problem Solved!

After installing Eclipse and the Eclipse Memory Analyzer on a different machine I was able to profile the application and find out what was causing the problem. It turns out that JADE gets upset when you don’t retrieve inter-agent messages from the queue. Ignore them long enough, and it will build into a serious memory problem.

Now that I’ve solved that problem, I can get back to analyzing my services and learning how to match their parameters based on the inherent semantics of the interface structure. But one of these days I will need to tear apart my primary development machine and rebuild it with a clean Eclipse install.

It feels good to finally have this behind me. Now I can get back to the real work I’m supposed to be engaged in.

Still having memory problems

I have managed to narrow down my memory issues a little, but still haven’t made any real progress. Frustrating is an understatement, but at least there are workarounds I can use to get the job done. I think I’ll hang that up for now and get back to something else so I at least feel like I’m making progress. I’ve blown a week on this with almost nothing to show for it.

Eclipse and Memory Profiling

I am discovering that trying to find a memory leak with Eclipse is like trying to give a cat a bath — some people may have luck, but for the majority of us it is a time consuming frustrating experience that doesn’t do anyone much good. First I tried the Eclipse Memory Analyzer, but the files produced by the memory dump were way too big for it to open.

So I tried the Eclipse Test & Performance Tools. Installing it the old fashioned way didn’t work, so I downloaded the all-in-one package. that seemed to work OK, but now it throws a JVMTI error that doesn’t seem to have a solution in any of the usual places on the net (although there are plenty of posts about problems with JVMTI).

I tried using the Java Visual VM memory profiler that comes with the JDK, but that apparently can’t see inside the JVM that Eclipse launches. I was able to launch the Jade container from the command line, but getting all the various libraries needed to to run my code properly is proving to be a royal pain in the butt. Almost two days spent on what should be a relatively trivial problem in this day and age.

Rumor has it that NetBeans has a much better profiling capability that Eclipse, so I guess that’s my next step. I’ve downloaded it, now I guess I’ll have to learn how to use it. What a pain.

Progress, slow but steady

Having squashed my scoring bug, I have spent most of the weekend working on ensuring that parameters are being classified correctly. It’s taken hours of trial and error consuming most of the past two days, but it is finally producing consistent and correct results in classifying parameters. Now the task is to make improvements to the classification system. At present, I’m only getting a few percent improvements over a straight syntactical match. But much of that could be in the weighting of the syntax and synonym evaluations. Perhaps adding more classifiers will help, but I hope I can get an improvement by tweaking the comparisons I am already making.