W3C home > Mailing lists > Public > public-owl-wg@w3.org > February 2008

Re: completeness

From: Alan Wu <alan.wu@oracle.com>
Date: Thu, 21 Feb 2008 14:33:50 -0500
Message-ID: <47BDD21E.9030400@oracle.com>
To: Alan Ruttenberg <alanruttenberg@gmail.com>
CC: Ulrike Sattler <sattler@cs.man.ac.uk>, public-owl-wg@w3.org


The biggest motivation for Oracle is to see a standardization of a 
fragment that allows efficient and scalable, rule-based implementation. 
I guess I have repeated this enough times :)

Scalability can be fuzzy sometimes. It depends on many factors. However, 
in this particular context, many users are demanding reasoners be able 
to handle RDF graphs with hundreds of millions of triples or billions of 
triples. So we have a concrete requirement indeed. I haven't heard any 
request for handling trillions of triples. Not yet.

In terms of "completeness," I think pD* rules are complete (correct me 
if I am wrong on this please). And I think pD* vocabulary covers all the 
core requirements Oracle sees on the field. pD* vocabulary also covers 
most of RDFS 3.0 based on which OWLPrime is founded. Oracle 11g RDF/OWL 
*product* supports pD* by the way.

So one way to measure completeness of a product is check # of rules 
implemented. If we have a complete set of rules for a fragment and if 
one implementation implemented all the rules, then it is complete, 
right? Assume there is no bugs of course.

I hope this helps,


Alan Ruttenberg wrote:
> Since this question goes to the motivation for this fragment, I would 
> like it if Jim, Zhe, and Jeremy, who are the torchbearers, could 
> please respond with some guidelines about this, ideally drawn from 
> experiences working with customers.
> Thanks,
> Alan
> On Feb 20, 2008, at 2:54 PM, Ulrike Sattler wrote:
>> Hi,
>> I thought I'd share some of my thoughts regarding completeness, 
>> scalability, & interoperability that might explain why I keep 
>> shouting "what do you mean by *scalable*"?
>> 1) Even I can write a very scalable OWL DL query answering engine if 
>> it doesn't have to be complete: when asked to retrieve instances of a 
>> class C, it simply always only returns nothing...wait, I can even do 
>> better by returning "told" instances of C!
>> 2) If we agree that (1) is sort of cheating, then we need to be more 
>> precise what "completeness" means: now, if we say "my engine will 
>> retrieve as many instances of C as it can manage in the given time", 
>> then we might get more than the told instances, but we could be  in 
>> trouble regarding interoperability: your engine could return a very 
>> different answer set from mine, since they have different strengths 
>> or optimisation techniques or,e.g., rule orderings.
>> So, what I would like to see as a clarification of "we can trade a 
>> bit of completeness for some scalability" is a description what 
>> *kind* of completeness we give up for (ideally) how much gain in 
>> performance.
>> Cheers, Uli
Received on Thursday, 21 February 2008 19:37:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:42:02 UTC