Thursday/Friday proceeded at a similar pace as the rest of the week. I read more papers (re-reading one or two that I went through a few months ago), and working on the rule structure. By the time I got to the weekend my brain felt fried. It's more difficult thinking that hard than I thought. I'm looking forward to writing some real code, just to clear my mind a bit.
I was also fortunate enough to spend a little time with Andrae to talk a few things over.
At this point I'm considering making the rule RDF a little simpler, as a interim step. The idea is that I insert an iTQL statement rather than the full syntax tree in RDF. There are a few reasons for this.
I had initially thought to build the rule system in a similar way to the earlier implementation in DROOLS, where complete iTQL statements were string literals attached to each rule node. I had opted away from it for three reasons. The first reason is that individual constraint objects will need to be held by the system, and it is easier to get their structure from an RDF graph than from parsing iTQL (especially since it is already inside an RDF graph). The second reason is that it will be possible to re-use individual constraints against several different rules. The third reason is a little less important, as it is because the mathematical modelling of this system is based on matching "rule conditions", which means the "constraints". So having the constraints being described explicitly like this makes it easier to match the implementation to the theory.
Now that I'm considering the implementation more carefully, I'm reconsidering my position. This started when Andrae wanted to know why I hadn't just stayed with using iTQL strings in the graph. While explaining the constraint re-use, it occurred to me that it won't be a simple task to do this. The rules about when a constraint can be re-used will be very strict and limiting. I'm starting to think that an implementation without constraint re-use may be more expedient, and I can add this efficiency in later. Besides, constraint resolution is fast in Kowari. That's the point.
Without constraint re-use, then it the need to individual constraint node management is greatly reduced. With that in mind, it may be better to go with the easier path and use iTQL for the moment. The code to build a query object would be modularised effectively enough that there should be no duplication of work.
I don't quite need to make a decision yet. I'll keep building the structure, and see what appears more effective as I get close to completion.
I've had trouble posting my Blogger messages recently. I've tried to put a couple of them up while I've been at the university, but there are some significant login problems.
When I go to Blogger, my browser cookies take me straight to my list of blogs (I only have one). However, I've been getting OTHER peoples blog instead! Last week it was a medical student. This week it's a girl in Arts. I can edit the profile and everything, only when I try it takes me to edit the profile of yet another student! There is something seriously wrong here.
I've tried to log in again, but with no effect. I also tried logging out and back in, but now I'm in a continuous loop of having to enter my name and password (the password is correct... if I give a wrong password it tells me so).
I won't be able to post anything until I'm on another network. In the meantime I'm in a text editor.
Monday, February 21, 2005