#2 containsGraph GraphOp failure


The containsGraph GraphOp does not find second and
subsequent "sub-graphs". So if the following are
asserted into a knowledgeBase graph:

[dog] <- (Agent) <-[run]
[cat] <- (Agent) <-[run]

and 2 test graphs are created, each containing one of
the above graphs. When containsGraph is called to test
the first it succeeds, while the second fails.
Further, if the order of assertion into the
knowledgeBase graph is reversed (i.e. build the cat
subgraph first followed by the dog) then the test graph
which contains the cat graph will succeed while the
test graph containing dog will fail. The reason for
this appears to be that the Vf2Matcher does not back
track. Thus, when trying to verify containment for the
cat graph it first finds a vertex that matches (Agent)
in the dog portion of the knowlegeBase graph, places it
in the map and continues. However, this (Agent) node
is NOT connected to a [cat] node and thus the matcher
fails. This can be illustrated by changing the nodes
in the cat subgraph in both the knowledgeBase and test
graphs to (Agent02) and [run02] thus making their
vertexNames unique.

I've uploaded a modified unit test for CGOps that has a
failure for this case.


  • Ernest Foster

    Ernest Foster - 2006-06-20

    Logged In: YES

    Revision 29 of the branches work area should contain a fix
    for this bug. I had to add a few lines to the
    Vf2MatchCG.cpp file. I've run the new unit test against it
    and the new unit test now succeeds. This bug can probably
    be closed.

  • Ernest Foster

    Ernest Foster - 2006-09-07
    • status: open --> open-fixed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks