Tuesday, May 04, 2004

Back from the Labor Day long weekend. did not get to read much of the OWL documentation. Oh well, I was supposed to relax after all.

Today I got onto reading the APIs for JRDF and Sesame. Also had a look at the implementation of JRDF in Kowari. This implementation mostly makes sense, though I think that NodeFactory is doing more than it ought. Specifically, while I'm happy that it creates nodes, I don't think that it should also be creating statements. If statements are removed from this class, then reification should also be removed. The logical place for these methods is in the Graph.

Now, if these go into the graph, that led me to wonder if the NodeFactory class is really needed. Maybe it is in some circumstances, but generally it's just a simple wrapper around node constructors. Why not do it in the Graph?

Had a look at Sesame's inferencing rules. AN is keen to make rules user configurable like Sesame does, as opposed to hard coding them. I'm enthusiastic about this, though I have a feeling that it might be possible to automatically do more than coded rules like this allow for. I need to consider this further.

TJ has an idea of leaving inferred rules to be determined as needed. After discussing this with AN we realised that a statement that relies on 2 or more inferred rules will need to execute every rule to create its statements for each part of the intersecting results. Some of the parts might not need the extra statements to be created for them, and others will only need one set of statements to be created, and not others. This would mean that the inferenced rules would need to be executed several times per query, with no idea of which ones were needed, and which were redundant or superfluous. We either need a temporary statement store for inferred rules, or else we need a separate area to keep inferred rules in (this would be more efficient, but would need to be dropped and recreated regularly to keep it up to date with the data it infers from). Looking at Sesame to see what they do here.

No comments: