- From: Bijan Parsia <bparsia@cs.manchester.ac.uk>
- Date: Sat, 9 May 2009 18:03:48 +0100
- To: Steve Harris <steve.harris@garlik.com>
- Cc: Bijan Parsia <bparsia@cs.man.ac.uk>, SPARQL Working Group <public-rdf-dawg@w3.org>
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