Here's my way of looking at this.

The information from which the classrelations graph was derived was the original OWL. We'd like a world in which we can query the OWL, with reasoner support, but we don't have that yet. We will at some point.

The most common way of doing inference in triple store currently is to add all inferred triples. More generally, in order to do efficient query in such a system one will need some combination of a precomputed data structure of some sort and then some procedure to use that + what's in the triple store to get the answer to a query.

For a tiny bit of inference that we needed for these queries, we've effectively done our own version of a data structure, these class/ class relations, and then used abox queries on them to answer a tbox query. You can see the effective t-box query in some of the references I pointed to in the previous mail, the ones that we asked pellet in order to get the answer to save in the classrelations graph.

So it is a trick, but in a similar way that other query engines will use tricks to effectively answer queries. We could have hidden the trick, in the sense that we could have had a layer in front of the tbox query that rewrote it to take advantage of these cached results, and then we would be behaving in a similar way to other systems even more. We should probably do that, if only because then client code will be insensitive to the specifics of how we've made the query efficient.

The particular method used to make these queries fast is a short term strategy. The long term strategy is to keep the main source in OWL so that the semantics are as clear as they can be and, so that it is a test and a target for OWL system implementors, and to test and use new query implementations as they come up. In the mean time we may get smarter about how may queries we can answer (not many yet), and should put in that layer so that you are asking the tbox queries (though it may respond that it can't answer some of them).

Aside from the fact that we can only answer a limited set of queries with our current optimization, what other limitations do you see?

-Alan

On Sep 14, 2007, at 11:11 AM, Chris Mungall wrote:

Ah yes, but let me just join the dots for everyone here - you are treating the classes as instances here, and relations at the class level become simple triples rather than restrictions. This means we can ignore OWL altogether and use RDFS semantics, which suits existing triplestores nicely. Mathias recommended as much on a separate thread.

Is this a trick or a long term strategy? I don't know. I can certainly see some problems with the approach.


Reply via email to