[Pellet-users] question about query language
Bijan Parsia
bijan at clarkparsia.com
Mon Oct 29 17:31:37 UTC 2007
On Monday, October 29, 2007 12:12pm, "Swanson, Tim" <tim.swanson at semanticarts.com> said:
> Bijan,
>
> I think we're talking at cross purposes here, especially with respect to
> our use cases for querying OWL. I've only provided brief responses
> inline. When I have a bit more time (hopefully later today, possibly
> tomorrow), I will work up a more substantive example and re-post on
> public-owl-dev.
Ok.
[snip]
>> > I was wondering if SPARQL/OWL is expected to support "open-world"
>> > queries. That is, the ability to query for the satisfiability of a
>> > given
>> > fact.
>>
>> Hmm. Well, I don't see the latter is a synonym for the former. SPARQL/
>> OWL queries OWL kbs and does so with a fair bit of open worldness.
>
> I agree, that's why I wrote the second sentence (and put the first
> phrase in quotes).
I just mean I don't see how they relate at all :)
> Here I'm specifically talking about querying for what
> is satisfiable.
Ok, but generally it is *formulae* which are satisfiable (or not).
> We call such things "open-world queries" around here, but I realize that
> that's neither universal, descriptive, nor terribly precise.
Well, and the natural contrary is "closed-world" :)
> To my knowledge, the only language that allowed these types of queries
> was Cerebra XQuery (which was loosely based on XQuery), a proprietary
> language developed for the Cerebra Server inference engine.
Well, if there's some literature on it, point me to it.
I'm a bit suspicious though. You can query for e.g., class satisfiability in SPARQL/OWL, e.g,
?C subClassOf owl:Nothing.
Every binding will be unsatisfiable.
But yes, in general, bindings have to be substituted into a formulae which is true in *all* models, not just some. You can always ask for elements of the negation of your expression. Those will be the only ones that are not consistently substitutable.
>> > I am writing a set of applications now where we often have to know
>> the
>> > satisfiable extension of a class,
>>
>> What do you mean by "satisfiable extension"?
>
> Perhaps my DL vocabulary is off here.
It's not any I recognize.
> What I mean is an ABox query for
> all of the individuals in an ontology that are satisfiably members of a
> given class.
This didn't help :)
> > or the satisfiable objects for a given
>> > subject and property.
>> [snip]
>>
>> Hmm. Well,
>> foo bar ?x.
>>
>> Will give you all the individuals that can be *proven* to be barred
>> by foo. that is, that are barred by foo in every model. Mere
>> satisfiability generally only requires at least one model. That is
>> going to be a pretty unselective query as, I would bet, most of the
>> time most of the individuals would be answered.
>>
>
> Not if the ontology were written with the OWA in mind.
This is true if by this you mean "with a lot of negation".
> For example,
> things like domains, ranges,
Not in themselves.
> and class disjointness
This is requried. Negation.
> can reduce the
> number of individuals to those that are truly satisfiable.
Only via negation. Negation says that an instance isn't a member of that class in *all* models. If you have no negation (of any sort) then satisfiability is trivial.
> One of the
> modeling disciplines that we preach is that TBox modeling needs to be
> done in such a way that "nonsense" does not make it into the open world.
This is fine. But I'm skeptical that you standardly sufficiently constrain matters to make the result sets small. But who knows?
> The aim is to make "mere satisfiability" less than meaningless. So that
> all of the things that are actually not true are represented in the
> reasoner, and what is satisfiable is truly unknown.
I think you mean *merely* satisfiable. Or rather "contingent"? Something is satisfiable if it is true in all models, since it is, thereby, true in some.
> These are the only
> circumstances, I believe, under which the OWA is actually a powerful
> tool rather than just an annoyance to be worked around.
Hmm. It's helpful for sure. I don't know if I'd go that far.
> I may be doing a presentation on this at the next SemTech Conference.
Interesting.
[snip]
>> foo bar a.
>> foo bar b.
>> a bar c.
>> c bar e.
>>
>> Now, I can ask whether the following class is satisfiable:
>> hasValue bar a
>>
>> It is. In fact, "foo" satisfies it in every model. but I can
>> consistently construct a model wherein b, c, and e all satisfy it,
>> since I can consistently extend the above KB with the corresponding
>> assertions.
>>
>> Is this what you're after?
>
> No. In the above ontology, in the absence of a TBox, every combination
> of ([foo|a|b|c|e] bar [foo|a|b|c|e]) is satisfiable (assuming that 'bar'
> is a property and the rest are Things).
So this *is* what you're after. That is, that is the answer you expect from a "satisfiability" query.
> 'bar' has no domain or range,
> and there is no way to restrict what may be the subject and object of
> it. In a real-world example, this would probably not represent the
> knowledge that the ontology designer was trying to model.
I don't know. It's hard to query intended meaning.
> The answer I would have been looking for would be the answer to "which
> individuals are members of 'hasValue bar a'."
This is just a query. Not a satisfability query.
> In the absence of a
> meaningful TBox, of course, the answer is all of them.
[snip]
This isn't true. The only thing which is an instance of that class *in all models* is foo. Another way of thinking about it is that everything but foo is a *possible* instance of not(hasValue bar a).
Cheers,
Bijan.
More information about the Pellet-users
mailing list