ok, now I understand. I will look into it.

best
Rupert

On Fri, Jun 28, 2013 at 4:27 PM, Reto Bachmann-Gmür <r...@wymiwyg.com> wrote:
> Hi Rupert,
>
> I do not understand your example. The "bNode" and "bNodeClone" are not
>> the same. Even that your force them to return the same hashCode, they
>> are in fact different BNode instances and therefore MUST NOT be
>> treated as the same Resource in a Graph.
>>
>
> No, Two BNode are equals if the equals method returns true. This is
> trivially the case when they are same instance but this doesn't need to be
> the case. They can well internally have an ID mapping to an id of the
> backend.
>
>
>>
>> AFAIK Clerezza does not support "ids" for BNodes, but relies on
>> "identity" (instance equality - bnode1 == bnode2). So based on that
>> "bode" and "bNodeClone" created by the provided test case are NOT
>> equals, but in fact different resources.
>>
>
> No clerezza is defined by it's api, so any bnode subclass qualifies as
> bnode. The above would be the case if and only is the bnode api would
> specify that equals has to return true if and only if it's the same object
> instance.
>
>
>>
>> What this means for the assertions in the provided test case is
>> described in detail in the following statements.
>>
>>         mGraph.add(new TripleImpl(bNode, uriRef1, uriRef2));
>>         mGraph.add(new TripleImpl(bNodeClone, uriRef2, uriRef3));
>>
>> bNode and bNodeClone are different resources
>>
>>         NonLiteral bNodeBack = mGraph.filter(null, uriRef1,
>> uriRef2).next().getSubject();
>>         Assert.assertEquals("The bnode we get back is not equals to
>> the one we added", bNode, bNodeBack);
>>
>> "bNodeBack" is equals to "bNode"
>>
>>         NonLiteral bNodeBack2 = mGraph.filter(null, uriRef2,
>> uriRef3).next().getSubject();
>>
>> "bNodeBack2" is equals to "bNodeClone"
>>
>>         Assert.assertEquals("The returnned bnodes are no longer
>> equals", bNodeBack, bNodeBack2);
>>
>> but "bNodeBack" and "bNodeBack2" are not equals as "bNode" and
>> "bNodeClone" are not.
>>
>>         Assert.assertTrue("Not finding a triple when searching with
>> equal bNode", mGraph.filter(bNodeBack, uriRef2, null).hasNext());
>>
>> also this is expected to be empty, because there is no triple such as
>> "bNode", "uriRef2", "*"
>>
>>
>> BTW: if you you change bNodeClone to "bNodeClone = bnode" the test
>> runs fine (as expected)
>>
>> This does not mean that there is no issues related to bNodes. It just
>> means that the provided example does not show the problem.
>>
>
> It does show the problem. And it's a very real problem because a clerezza
> wrapper from some backend will not create inmenory mapping from orignal
> bnodes to clerezza bnodes but simply wrap the bnodes and implement hashcode
> and equals in a constistent fashion. So the test I added must pass for
> conformant implementation.
>
> Cheers,
> Reto
>
>
>
>
>>
>> best
>> Rupert
>>
>>
>>
>> On Fri, Jun 28, 2013 at 12:37 PM, Reto Bachmann-Gmür <r...@wymiwyg.com>
>> wrote:
>> > Hi Rupert,
>> >
>> > I've added a commented out failing test for
>> > STANBOL-1130<https://issues.apache.org/jira/browse/STANBOL-1130>
>> > .
>> >
>> > Cheers,
>> > Reto
>> >
>> >
>> > On Fri, Jun 28, 2013 at 12:23 PM, Rupert Westenthaler <
>> > rupert.westentha...@gmail.com> wrote:
>> >
>> >> Hi Reto,
>> >>
>> >> I changed the comparator implementation of the IndexMGraph some weeks
>> >> ago, because the old code was not working when different Resource
>> >> implementations where mixed within the same graph. So this indicates
>> >> indeed a bug.
>> >>
>> >> Can you add a failing unit test for this issue?
>> >>
>> >> best
>> >> Rupert
>> >>
>> >>
>> >> On Fri, Jun 28, 2013 at 12:07 PM, Reto Bachmann-Gmür <r...@apache.org>
>> >> wrote:
>> >> > Hello,
>> >> >
>> >> > Investigating why recipe-exmpansion in no longer working I found that
>> it
>> >> > seems to be an issue with the IndexedMGarph as things work when using
>> >> > SimleMGraph instead. It used to work till a couple of week ago.
>> >> >
>> >> > Now it seems that a bnode is no longer identical to itself when
>> occuring
>> >> in
>> >> > different triples. While I'm investigating further I though I ask if
>> >> > someone else noticed problems like that.
>> >> >
>> >> > Cheers,
>> >> > Reto
>> >>
>> >>
>> >>
>> >> --
>> >> | Rupert Westenthaler             rupert.westentha...@gmail.com
>> >> | Bodenlehenstraße 11                             ++43-699-11108907
>> >> | A-5500 Bischofshofen
>> >>
>>
>>
>>
>> --
>> | Rupert Westenthaler             rupert.westentha...@gmail.com
>> | Bodenlehenstraße 11                             ++43-699-11108907
>> | A-5500 Bischofshofen
>>



-- 
| Rupert Westenthaler             rupert.westentha...@gmail.com
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen

Reply via email to