Project

General

Profile

Bug #36

Basic query failure

Added by ronald - over 17 years ago. Updated over 16 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Mulgara
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
fixed

Description

The following setup demonstrates the problem:
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;drop &lt;<a href="local:///topazproject#test&gt;;">local:///topazproject#test&amp;gt;;</a>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;create &lt;<a href="local:///topazproject#test&gt;;">local:///topazproject#test&amp;gt;;</a>
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;insert 
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:bar&gt; &lt;foo:set&gt; &lt;user:joe&gt;
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:set&gt; &lt;topaz:implies&gt; &lt;bar:set&gt;
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:set&gt; &lt;topaz:implies&gt; &lt;bar:get&gt;
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;into &lt;<a href="local:///topazproject#test&gt;;">local:///topazproject#test&amp;gt;;</a>
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;select $s $p $o from &lt;<a href="local:///topazproject#test">local:///topazproject#test</a>&gt; where (
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s $p $o 
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and ($s &lt;mulgara:is&gt; &lt;foo:bar&gt;)
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;) or (
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;($s $impliedBy $o and $impliedBy &lt;topaz:implies&gt; $p)
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and ($s &lt;mulgara:is&gt; &lt;foo:bar&gt;)
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;);
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;select $s $p $o from &lt;<a href="local:///topazproject#test">local:///topazproject#test</a>&gt; where (
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s $p $o 
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or ($s $impliedBy $o and $impliedBy &lt;topaz:implies&gt; $p)
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;) and ($s &lt;mulgara:is&gt; &lt;foo:bar&gt;);
<br/>

<br/>
The two queries are logically equivalent (the &lt;mulgara:is&gt; term is duplicated in the first query, and factored out in the second query). However, while the first query returns three statements, the second query only returns one. Specifically, the first query returns
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:bar&gt; &lt;foo:set&gt; &lt;user:joe&gt;
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:bar&gt; &lt;bar:set&gt; &lt;user:joe&gt;
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:bar&gt; &lt;bar:get&gt; &lt;user:joe&gt;
<br/>

<br/>
but the second returns only
<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;foo:bar&gt; &lt;foo:set&gt; &lt;user:joe&gt;
<br/>

<br/>

Also available in: Atom PDF