Closed GoogleCodeExporter closed 9 years ago
BFP syntax bug fixed
The short of it is that using --why with queries such as
SELECT ?x WHERE { ?x a ..any URI.. }
will not pass any information to the query engine. I.e., there will not be any
constants to pass on to other queries, rather than if the query had been posed
this way:
ASK WHERE { test:john a test:person }
it would pass the following SPARQL solution:
?X -> test:john
from the (adorned) rule:
Forall ?X ( test:person_f(?X) :- test:adult(?X) )
and so on..
This means that, for example, if you run this with the BFP method using the
above ASK question, the two following (mediated) queries will be dispatched
against the bsa.individuals.n3 graph:
1. ASK { test:john a test:woman } -> False
2. ASK { test:john a test:man }-> True
It asks 1, due to the information being passed 'into' this rule from the
previous one:
2. Forall ?X ( test:adult_b(?X) :- bsa:woman(?X) )
2 gives the answer it needs to conclude the answer and kill the forward
chaining process:
So, in short the GMS method does not know how to do rule-based rewriting of
SPARQL and just relies on information from the query to 'fix' the rules so they
don't do any redundant work when used with the naive method. Without such
information it is no better than the naive method. SLD and BFP , however (with
the fix) will know how to re-write the SPARQL queries so they can answer the
query even if no information is passed in.
Original comment by chime...@gmail.com
on 2 Apr 2011 at 10:32
Original comment by chime...@gmail.com
on 2 Apr 2011 at 10:35
Original issue reported on code.google.com by
onew...@gmail.com
on 7 Feb 2011 at 4:45Attachments: