Package org.apache.marmotta.kiwi.reasoner.model.program

Examples of org.apache.marmotta.kiwi.reasoner.model.program.Justification


        result.append("{\n ");

        result.append("\"triple\": " + formatJSON(triple) + ",\n");
        result.append("\"justifications\": [\n");
        for(Iterator<Justification> justs = justifications.iterator(); justs.hasNext(); ) {
            Justification justification = justs.next();
            result.append("  {\n");
            result.append("    \"triples\": [\n");
            for(Iterator<KiWiTriple> it = justification.getSupportingTriples().iterator(); it.hasNext(); ) {
                KiWiTriple t = it.next();
                result.append("      " + formatJSON(t));
                if(it.hasNext()) {
                    result.append(",\n");
                } else {
                    result.append("\n");
                }
            }
            result.append("    ],");
            result.append("    \"rules\": [\n");
            for(Iterator<Rule> it = justification.getSupportingRules().iterator(); it.hasNext(); ) {
                Rule r = it.next();
                result.append("      \""+r.toString().replace("\"","'")+"\"");
                if(it.hasNext()) {
                    result.append(",\n");
                } else {
View Full Code Here


            KiWiTriple triple = (KiWiTriple)inferred.get(0);
            List<Justification> justifications = Iterations.asList(rcon.listJustificationsForTriple(triple));
            Assert.assertEquals("number of justifications for triple differs from expected result",1,justifications.size());

            Justification j = justifications.get(0);
            Assert.assertEquals("number of supporting triples differs from expected result",1,j.getSupportingTriples().size());
            Assert.assertEquals("number of supporting rules differs from expected result",1,j.getSupportingRules().size());

            Assert.assertThat("supporting triple does not match expectation", j.getSupportingTriples(), hasItem((KiWiTriple)statements.get(0)));

            con.commit();


            // now remove again the base triple and inform the reasoner about it, as a consequence, the inferred
View Full Code Here

            KiWiTriple triple = (KiWiTriple)inferred.get(0);
            List<Justification> justifications = Iterations.asList(rcon.listJustificationsForTriple(triple));
            Assert.assertEquals("number of justifications for triple differs from expected result",1,justifications.size());

            Justification j = justifications.get(0);
            Assert.assertEquals("number of supporting triples differs from expected result",2,j.getSupportingTriples().size());
            Assert.assertEquals("number of supporting rules differs from expected result",1,j.getSupportingRules().size());

            Assert.assertThat("supporting triple does not match expectation", j.getSupportingTriples(), hasItem((KiWiTriple)statements.get(0)));
            Assert.assertThat("supporting triple does not match expectation", j.getSupportingTriples(), hasItem((KiWiTriple)statements.get(1)));

            con.commit();


            // add another triple and check if the incremental reasoning works
View Full Code Here

            deleteJustification.clearBatch();
            deleteJustificationRules.clearBatch();
            deleteJustificationTriples.clearBatch();

            while(justifications.hasNext()) {
                Justification j = justifications.next();
                if(j.getId() == null) {
                    log.error("cannot delete justification since it does not have a database ID");
                } else {
                    deleteJustificationRules.setLong(1, j.getId());
                    deleteJustificationRules.addBatch();

                    deleteJustificationTriples.setLong(1, j.getId());
                    deleteJustificationTriples.addBatch();

                    deleteJustification.setLong(1, j.getId());
                    deleteJustification.addBatch();
                }
            }
            Iterations.closeCloseable(justifications);
View Full Code Here

        }
    }


    protected Justification constructJustificationFromDatabase(ResultSet row) throws SQLException {
        Justification result = new Justification();
        result.setId(row.getLong("id"));
        result.setTriple(loadTripleById(row.getLong("triple_id")));
        result.setCreatedAt(new Date(row.getTimestamp("createdAt").getTime()));

        // load supporting rules and triples
        PreparedStatement loadRules = getPreparedStatement("justifications.load_rules");
        synchronized (loadRules) {
            loadRules.setLong(1, result.getId());
            ResultSet ruleResult = loadRules.executeQuery();
            while(ruleResult.next()) {
                result.getSupportingRules().add(loadRuleById(ruleResult.getLong("rule_id"),null));
            }
            ruleResult.close();
        }

        PreparedStatement loadTriples = getPreparedStatement("justifications.load_triples");
        synchronized (loadTriples) {
            loadTriples.setLong(1, result.getId());
            ResultSet tripleResult = loadTriples.executeQuery();
            while(tripleResult.next()) {
                result.getSupportingTriples().add(loadTripleById(tripleResult.getLong("triple_id")));
            }
            tripleResult.close();
        }

        return result;
View Full Code Here

            updateInferred.executeBatch();
            updateInferred.close();

            // now we create some justifications for the inferred triples and store them
            Set<Justification> justifications = new HashSet<Justification>();
            Justification j1 = new Justification();
            j1.getSupportingRules().add(p.getRules().get(0));
            j1.getSupportingRules().add(p.getRules().get(1));
            j1.getSupportingTriples().add((KiWiTriple) baseTriples.get(0));
            j1.getSupportingTriples().add((KiWiTriple) baseTriples.get(1));
            j1.setTriple((KiWiTriple) infTriples.get(0));
            justifications.add(j1);

            Justification j2 = new Justification();
            j2.getSupportingRules().add(p.getRules().get(1));
            j2.getSupportingTriples().add((KiWiTriple) baseTriples.get(1));
            j2.getSupportingTriples().add((KiWiTriple) baseTriples.get(2));
            j2.setTriple((KiWiTriple) infTriples.get(1));
            justifications.add(j2);

            connection.storeJustifications(justifications);
            connection.commit();
View Full Code Here

        result.append("{\n ");

        result.append("\"triple\": " + formatJSON(triple) + ",\n");
        result.append("\"justifications\": [\n");
        for(Iterator<Justification> justs = justifications.iterator(); justs.hasNext(); ) {
            Justification justification = justs.next();
            result.append("  {\n");
            result.append("    \"triples\": [\n");
            for(Iterator<KiWiTriple> it = justification.getSupportingTriples().iterator(); it.hasNext(); ) {
                KiWiTriple t = it.next();
                result.append("      " + formatJSON(t));
                if(it.hasNext()) {
                    result.append(",\n");
                } else {
                    result.append("\n");
                }
            }
            result.append("    ],");
            result.append("    \"rules\": [\n");
            for(Iterator<Rule> it = justification.getSupportingRules().iterator(); it.hasNext(); ) {
                Rule r = it.next();
                result.append("      \""+r.toString().replace("\"","'")+"\"");
                if(it.hasNext()) {
                    result.append(",\n");
                } else {
View Full Code Here

    }


    @Test
    public void testJustificationEquals() {
        Justification j1 = new Justification();
        j1.setTriple(i1);
        j1.getSupportingTriples().add(t1);
        j1.getSupportingTriples().add(t4);

        Justification j2 = new Justification();
        j2.setTriple(i4);
        j2.getSupportingTriples().add(t4);
        j2.getSupportingTriples().add(t1);

        Assert.assertEquals(j1,j2);

        // j3 differs in the inferred triple
        Justification j3 = new Justification();
        j3.setTriple(i2);
        j3.getSupportingTriples().add(t4);
        j3.getSupportingTriples().add(t1);

        Assert.assertNotEquals(j1, j3);

        // j4 differs in the supporting triples
        Justification j4 = new Justification();
        j4.setTriple(i1);
        j4.getSupportingTriples().add(t2);
        j4.getSupportingTriples().add(t4);

        Assert.assertNotEquals(j1, j4);
    }
View Full Code Here

        i3 = new KiWiTriple(s3,p1,o3, ctx_inferred); i3.setInferred(true);
        i4 = new KiWiTriple(s1,p2,o1, ctx_inferred); i4.setInferred(true);
        i5 = new KiWiTriple(s1,p2,o3, ctx_inferred); i5.setInferred(true);

        // assume i1 is justified by t1 and t2;
        j1 = new Justification();
        j1.setTriple(i1);
        j1.getSupportingTriples().add(t1);
        j1.getSupportingTriples().add(t2);

        baseJustifications.put(i1, Collections.singleton(j1));

        // assume i2 is justified by t3 and t4, as well as by t2 and t4
        j2 = new Justification();
        j2.setTriple(i2);
        j2.getSupportingTriples().add(t3);
        j2.getSupportingTriples().add(t4);


        j3 = new Justification();
        j3.setTriple(i2);
        j3.getSupportingTriples().add(t2);
        j3.getSupportingTriples().add(t4);

        baseJustifications.put(i2, Sets.newHashSet(j2,j3));

        // assume that i5 as well is justified by two justifications
        j4 = new Justification();
        j4.setTriple(i5);
        j4.getSupportingTriples().add(t1);
        j4.getSupportingTriples().add(t4);


        j5 = new Justification();
        j5.setTriple(i5);
        j5.getSupportingTriples().add(t2);
        j5.getSupportingTriples().add(t5);


        baseJustifications.put(i5, Sets.newHashSet(j4,j5));

        // i3 justified by i1 and t3
        tj1 = new Justification();
        tj1.setTriple(i3);
        tj1.getSupportingTriples().add(i1);
        tj1.getSupportingTriples().add(t3);


        // i4 justified by i1 and i2
        tj2 = new Justification();
        tj2.setTriple(i4);
        tj2.getSupportingTriples().add(i1);
        tj2.getSupportingTriples().add(i2);


        // i6 is justified by i2 and i5 (so multiplexing needed)
        tj3 = new Justification();
        tj3.setTriple(i6);
        tj3.getSupportingTriples().add(i2);
        tj3.getSupportingTriples().add(i5);

    }
View Full Code Here

    public void testResolveBaseTriplesSingle() throws Exception {

        Collection<Justification> r1 = engine.getBaseJustifications(null,Collections.singleton(tj1));
        Assert.assertEquals(1, r1.size());

        Justification tj1r = r1.iterator().next();
        Assert.assertEquals(3,tj1r.getSupportingTriples().size());
        Assert.assertTrue(tj1r.getSupportingTriples().contains(t1));
        Assert.assertTrue(tj1r.getSupportingTriples().contains(t2));
        Assert.assertTrue(tj1r.getSupportingTriples().contains(t3));



    }
View Full Code Here

TOP

Related Classes of org.apache.marmotta.kiwi.reasoner.model.program.Justification

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.