use of edu.cmu.ml.proppr.prove.DprProver in project ProPPR by TeamCohen.
the class NodeMergingTest method doTest.
private void doTest(File rules, File facts, String squery, String[] spos, String[] sneg, int nodeSize, int posSize) throws LogicProgramException, IOException {
APROptions apr = new APROptions();
Prover p = new DprProver(apr);
WamProgram program = WamBaseProgram.load(rules);
WamPlugin[] plugins = null;
if (facts.getName().endsWith(FactsPlugin.FILE_EXTENSION))
plugins = new WamPlugin[] { FactsPlugin.load(apr, facts, false) };
else if (facts.getName().endsWith(GraphlikePlugin.FILE_EXTENSION))
plugins = new WamPlugin[] { LightweightGraphPlugin.load(apr, facts, -1) };
Grounder grounder = new Grounder(apr, p, program, plugins);
Query query = Query.parse(squery);
Query[] pos = new Query[spos.length];
for (int i = 0; i < spos.length; i++) pos[i] = Query.parse(spos[i]);
Query[] neg = new Query[sneg.length];
for (int i = 0; i < sneg.length; i++) neg[i] = Query.parse(sneg[i]);
ProofGraph pg = new StateProofGraph(new InferenceExample(query, pos, neg), apr, new SimpleSymbolTable<Feature>(), program, plugins);
GroundedExample ex = grounder.groundExample(pg);
System.out.println(grounder.serializeGroundedExample(pg, ex).replaceAll("\t", "\n"));
if (nodeSize >= 0)
assertEquals("improper node duplication", nodeSize, ex.getGraph().nodeSize());
if (posSize >= 0)
assertEquals("improper # solutions found", posSize, ex.getPosList().size());
}
use of edu.cmu.ml.proppr.prove.DprProver in project ProPPR by TeamCohen.
the class GrounderTest method testGroundExample.
@Test
public void testGroundExample() throws IOException, LogicProgramException {
doGroundExampleTest("dpr: ", new DprProver(), //nodes
10, //edges
23, //value
1.0, //pos
"7", //neg
"8", APROptions.MINALPH_DEFAULT);
doGroundExampleTest("ppr: ", new PprProver(), //nodes
10, //edges
23, //value
1.0, //pos
"9", //neg
"10", APROptions.MINALPH_DEFAULT);
doGroundExampleTest("dpr: ", new IdDprProver(), //nodes
10, //edges
23, //value
1.0, //pos
"7", //neg
"8", APROptions.MINALPH_DEFAULT);
doGroundExampleTest("ppr: ", new IdPprProver(), //nodes
10, //edges
23, //value
1.0, //pos
"9", //neg
"10", APROptions.MINALPH_DEFAULT);
}
use of edu.cmu.ml.proppr.prove.DprProver in project ProPPR by TeamCohen.
the class GrounderTest method noNegativeExamplesTest.
@Test
public void noNegativeExamplesTest() throws IOException, LogicProgramException {
APROptions apr = new APROptions();
WamProgram program = WamBaseProgram.load(new File(RULES));
WamPlugin[] plugins = new WamPlugin[] { FactsPlugin.load(apr, new File(FACTS), false) };
Prover p = new DprProver(apr);
Grounder grounder = new Grounder(apr, p, program, plugins);
InferenceExample ix = new InferenceExample(Query.parse("predict(howard,Y)"), new Query[] { Query.parse("predict(howard,bird)") }, new Query[] {});
GroundedExample ex = grounder.groundExample(p, ix);
makeAssertions(ex, "dpr+", 10, 23, 1.0, 1, "7", 0, "");
ix = new InferenceExample(Query.parse("predict(howard,Y)"), new Query[] { Query.parse("predict(howard,bird)") }, new Query[] {});
ProofGraph pg = p.makeProofGraph(ix, apr, program, plugins);
State pos = null;
Map<State, Double> sols = p.prove(pg, new StatusLogger());
System.out.println(pg.serialize(ex));
}
use of edu.cmu.ml.proppr.prove.DprProver in project ProPPR by TeamCohen.
the class GrounderTest method unboundLabelsTest.
@Test(expected = IllegalArgumentException.class)
public void unboundLabelsTest() throws IOException, LogicProgramException {
APROptions apr = new APROptions();
WamProgram program = WamBaseProgram.load(new File(RULES));
WamPlugin[] plugins = new WamPlugin[] { FactsPlugin.load(apr, new File(FACTS), false) };
Prover p = new DprProver(apr);
Grounder grounder = new Grounder(apr, p, program, plugins);
InferenceExample ix = new InferenceExample(Query.parse("predict(howard,Bird)"), new Query[] { Query.parse("predict(howard,Bird)") }, new Query[] {});
GroundedExample ex = grounder.groundExample(p, ix);
}
use of edu.cmu.ml.proppr.prove.DprProver in project ProPPR by TeamCohen.
the class DprProverTest method setup.
@Override
public void setup() throws IOException {
super.setup();
this.prover = new DprProver(new APROptions(new String[] { "eps=.00001", "alph=.03" }));
// Logger.getLogger(DprProver.class).setLevel(Level.DEBUG);
}
Aggregations