Re: "OWL" Entailment

On 8 May 2009, at 11:13, Steve Harris wrote:

> On 6 May 2009, at 18:14, Bijan Parsia wrote:
>> 4) Controlling variable range (related to 1)
>>
>> In OWL systems (such as Pellet, RacerPro, and KAON2) there are two  
>> kinds of variables "distinguished" and "non-distinguished" which  
>> are distinguishable by what sorts of bindings they allow: names  
>> only (and maybe "static" bnodes) or arbitrary elements of the  
>> domain. (See around slide 24 of <http://www.cs.man.ac.uk/~bparsia/2006/row-tutorial/index.html 
>> >.) It's good to allow for both sorts since distinguished variables  
>> are much cheaper to compute but non-distinguished variables get you  
>> more answers.
>
> Waaay out of my depth here, but would something like:
>
>  FILTER(isIRI(?distinguished))  or  FILTER(!isBlank(?distinguished))
>
> be sufficient to capture this?

*If* one had bnodes as bindings standing for (possibly computed)  
arbitrary elements of the domain *and* one didn't want bnodes handled  
as I think we would prefer them to be, then pretty much :)

We already have syntax for non-distinguished variables...blank nodes  
in the query:
	http://www.w3.org/TR/rdf-sparql-query/#QSynBlankNodes

The main issue is whether to identify a "profile" that disallowed non- 
distinguished variables (as that profile is fairly common).

> I'm not quite sure where/how OWL names behave differently to URIs.

No differently, really.

> FWIW, we use some similar optimisations to cut the search space in  
> our SPARQL engine, and it's quite easy to spot, as long as the user  
> doesn't go out of their way to hide it.

Interesting.

Cheers,
Bijan.

Received on Saturday, 9 May 2009 17:04:24 UTC