Search in sources :

Example 6 with Goal

use of edu.cmu.ml.proppr.prove.wam.Goal in project ProPPR by TeamCohen.

the class GoalTest method testEquals.

@Test
public void testEquals() {
    Goal f = new Goal("milk"), g = new Goal("milk");
    assertTrue(f.equals(g));
    assertTrue(g.equals(f));
}
Also used : Goal(edu.cmu.ml.proppr.prove.wam.Goal) Test(org.junit.Test)

Example 7 with Goal

use of edu.cmu.ml.proppr.prove.wam.Goal in project ProPPR by TeamCohen.

the class SimpleProgramProofGraphTest method test.

@Test
public void test() throws LogicProgramException, IOException {
    WamProgram program = WamBaseProgram.load(new File(SimpleProgramProverTest.PROGRAM));
    Query q = new Query(new Goal("coworker", new ConstantArgument("steve"), new ConstantArgument("X")));
    StateProofGraph pg = new StateProofGraph(q, new APROptions(), program);
    HashMap<String, Integer> solutions = new HashMap<String, Integer>();
    solutions.put("steve", 0);
    solutions.put("sven", 0);
    Map<State, Double> vec = new HashMap<State, Double>();
    vec.put(pg.getStartState(), 1.0);
    // step 1: coworker -> employee,boss
    System.out.println("Step 1");
    for (State s : vec.keySet()) System.out.println(s);
    List<Outlink> outlinks = pg.pgOutlinks(pg.getStartState(), false);
    assertEquals("1. coworker :- employee,boss", 2, outlinks.size());
    vec = nextVec(vec, normalized(outlinks));
    vec.remove(pg.getStartState());
    assertEquals("1. statecount", 1, vec.size());
    // step 2: 
    System.out.println("Step 2");
    for (State s : vec.keySet()) System.out.println(s);
    outlinks = pg.pgOutlinks(vec.keySet().iterator().next(), false);
    assertEquals("2. employee :- management,boss", 2, outlinks.size());
    vec = nextVec(vec, normalized(outlinks));
    vec.remove(pg.getStartState());
    assertEquals("2. statecount", 1, vec.size());
    // step 3: 
    System.out.println("Step 3");
    for (State s : vec.keySet()) System.out.println(s);
    outlinks = pg.pgOutlinks(vec.keySet().iterator().next(), false);
    assertEquals("3. management :- sookie", 2, outlinks.size());
    vec = nextVec(vec, normalized(outlinks));
    vec.remove(pg.getStartState());
    assertEquals("3. statecount", 1, vec.size());
    // step 4: 
    System.out.println("Step 4");
    for (State s : vec.keySet()) System.out.println(s);
    outlinks = pg.pgOutlinks(vec.keySet().iterator().next(), false);
    assertEquals("4. boss(sookie,X) :- _steve_ + sven", 2, outlinks.size());
    vec = nextVec(vec, normalized(outlinks));
    vec.remove(pg.getStartState());
    assertEquals("4. statecount", 1, vec.size());
    // step 5: 
    System.out.println("Step 5");
    for (State s : vec.keySet()) {
        System.out.println(s);
        System.out.println(Dictionary.buildString(pg.asDict(s), new StringBuilder(), "\n\t").substring(1));
    }
    outlinks = pg.pgOutlinks(vec.keySet().iterator().next(), false);
    assertEquals("5. boss(sookie,X) :- steve + sven", 3, outlinks.size());
    vec = nextVec(vec, normalized(outlinks));
    vec.remove(pg.getStartState());
    assertEquals("5. statecount", 2, vec.size());
    // step 6: 
    System.out.println("Step 6");
    for (State s : vec.keySet()) {
        System.out.println(s);
        Map<Argument, String> dict = pg.asDict(s);
        System.out.println(Dictionary.buildString(dict, new StringBuilder(), "\n\t").substring(1));
        assertTrue(s.isCompleted());
        for (String v : dict.values()) {
            if (solutions.containsKey(v))
                solutions.put(v, solutions.get(v) + 1);
        }
    }
    for (Map.Entry<String, Integer> e : solutions.entrySet()) assertEquals(e.getKey(), 1, e.getValue().intValue());
}
Also used : Outlink(edu.cmu.ml.proppr.prove.wam.Outlink) Query(edu.cmu.ml.proppr.prove.wam.Query) Argument(edu.cmu.ml.proppr.prove.wam.Argument) ConstantArgument(edu.cmu.ml.proppr.prove.wam.ConstantArgument) HashMap(java.util.HashMap) WamProgram(edu.cmu.ml.proppr.prove.wam.WamProgram) ConstantArgument(edu.cmu.ml.proppr.prove.wam.ConstantArgument) StateProofGraph(edu.cmu.ml.proppr.prove.wam.StateProofGraph) Goal(edu.cmu.ml.proppr.prove.wam.Goal) State(edu.cmu.ml.proppr.prove.wam.State) APROptions(edu.cmu.ml.proppr.util.APROptions) File(java.io.File) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.Test)

Aggregations

Goal (edu.cmu.ml.proppr.prove.wam.Goal)7 Test (org.junit.Test)7 ConstantArgument (edu.cmu.ml.proppr.prove.wam.ConstantArgument)5 Query (edu.cmu.ml.proppr.prove.wam.Query)5 WamProgram (edu.cmu.ml.proppr.prove.wam.WamProgram)5 File (java.io.File)5 State (edu.cmu.ml.proppr.prove.wam.State)4 StateProofGraph (edu.cmu.ml.proppr.prove.wam.StateProofGraph)4 DfsProver (edu.cmu.ml.proppr.prove.DfsProver)3 Prover (edu.cmu.ml.proppr.prove.Prover)3 StatusLogger (edu.cmu.ml.proppr.util.StatusLogger)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 Argument (edu.cmu.ml.proppr.prove.wam.Argument)2 ProofGraph (edu.cmu.ml.proppr.prove.wam.ProofGraph)2 APROptions (edu.cmu.ml.proppr.util.APROptions)2 Outlink (edu.cmu.ml.proppr.prove.wam.Outlink)1 WamInterpreter (edu.cmu.ml.proppr.prove.wam.WamInterpreter)1 WamPlugin (edu.cmu.ml.proppr.prove.wam.plugins.WamPlugin)1 HashSet (java.util.HashSet)1