Search in sources :

Example 1 with DefaultRule

use of fr.lirmm.graphik.graal.core.DefaultRule in project graal by graphik-team.

the class MFAProperty method translateToMFA.

public static RuleSet translateToMFA(Iterable<Rule> rules) {
    RuleSet R = new LinkedListRuleSet();
    for (Rule r : rules) {
        for (Rule r2 : translateRuleToMFA(r)) R.add(r2);
    }
    DefaultRule rule = new DefaultRule();
    Atom s = new DefaultAtom(S);
    s.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    s.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    Atom d = new DefaultAtom(D);
    d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    rule.getBody().add(s);
    rule.getHead().add(d);
    R.add(rule);
    s = new DefaultAtom(S);
    d = new DefaultAtom(D);
    Atom d2 = new DefaultAtom(D);
    d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    s.setTerm(0, DefaultTermFactory.instance().createVariable("X2"));
    s.setTerm(1, DefaultTermFactory.instance().createVariable("X3"));
    d2.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d2.setTerm(1, DefaultTermFactory.instance().createVariable("X3"));
    rule = new DefaultRule();
    rule.getBody().add(d);
    rule.getBody().add(s);
    rule.getHead().add(d2);
    R.add(rule);
    return R;
}
Also used : DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) AnalyserRuleSet(fr.lirmm.graphik.graal.rulesetanalyser.util.AnalyserRuleSet) RuleSet(fr.lirmm.graphik.graal.api.core.RuleSet) LinkedListRuleSet(fr.lirmm.graphik.graal.core.ruleset.LinkedListRuleSet) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) LinkedListRuleSet(fr.lirmm.graphik.graal.core.ruleset.LinkedListRuleSet) Rule(fr.lirmm.graphik.graal.api.core.Rule) DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) Atom(fr.lirmm.graphik.graal.api.core.Atom)

Example 2 with DefaultRule

use of fr.lirmm.graphik.graal.core.DefaultRule in project graal by graphik-team.

the class DefaultRuleFactory method create.

@Override
public Rule create(String label, Atom body, Atom head) {
    InMemoryAtomSet bodySet = DefaultAtomSetFactory.instance().create(body);
    InMemoryAtomSet headSet = DefaultAtomSetFactory.instance().create(head);
    return new DefaultRule(label, bodySet, headSet);
}
Also used : DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) InMemoryAtomSet(fr.lirmm.graphik.graal.api.core.InMemoryAtomSet)

Example 3 with DefaultRule

use of fr.lirmm.graphik.graal.core.DefaultRule in project graal by graphik-team.

the class MFAProperty method translateRuleToMFA.

public static List<Rule> translateRuleToMFA(final Rule r) {
    List<Rule> result = new LinkedList<Rule>();
    DefaultRule r2 = new DefaultRule(r);
    /*r2.setBody(r.getBody());
		r2.setHead(r.getHead());*/
    for (Term yi : r2.getExistentials()) {
        Predicate Fir = GraalConstant.freshPredicate(1);
        DefaultAtom f = new DefaultAtom(Fir);
        f.setTerm(0, yi);
        r2.getHead().add(f);
        for (Term xj : r2.getFrontier()) {
            DefaultAtom ss = new DefaultAtom(S);
            ss.setTerm(0, xj);
            ss.setTerm(1, yi);
            r2.getHead().add(ss);
        }
        DefaultRule r3 = new DefaultRule();
        DefaultAtom f1 = new DefaultAtom(Fir);
        f1.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
        DefaultAtom f2 = new DefaultAtom(Fir);
        f2.setTerm(0, DefaultTermFactory.instance().createVariable("X2"));
        DefaultAtom d = new DefaultAtom(D);
        d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
        d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
        r3.getBody().add(f1);
        r3.getBody().add(d);
        r3.getBody().add(f2);
        DefaultAtom c = new DefaultAtom(C);
        c.setTerm(0, FAKE);
        r3.getHead().add(c);
        result.add(r3);
    }
    result.add(r2);
    return result;
}
Also used : DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) Rule(fr.lirmm.graphik.graal.api.core.Rule) DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) Term(fr.lirmm.graphik.graal.api.core.Term) LinkedList(java.util.LinkedList) Predicate(fr.lirmm.graphik.graal.api.core.Predicate)

Example 4 with DefaultRule

use of fr.lirmm.graphik.graal.core.DefaultRule in project graal by graphik-team.

the class MSAProperty method translateRuleToMSA.

public static List<Rule> translateRuleToMSA(final Rule r) {
    List<Rule> result = new LinkedList<Rule>();
    Substitution s = buildMSASubstitution(r);
    DefaultRule r2 = new DefaultRule(r);
    /*r2.setBody(r.getBody());
		r2.setHead(r.getHead());*/
    for (Term yi : r2.getExistentials()) {
        Predicate Fir = GraalConstant.freshPredicate(1);
        DefaultAtom f = new DefaultAtom(Fir);
        f.setTerm(0, yi);
        r2.getHead().add(f);
        for (Term xj : r2.getFrontier()) {
            DefaultAtom ss = new DefaultAtom(S);
            ss.setTerm(0, xj);
            ss.setTerm(1, yi);
            r2.getHead().add(ss);
        }
        DefaultRule r3 = new DefaultRule();
        DefaultAtom f1 = new DefaultAtom(Fir);
        f1.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
        DefaultAtom f2 = new DefaultAtom(Fir);
        f2.setTerm(0, DefaultTermFactory.instance().createVariable("X2"));
        DefaultAtom d = new DefaultAtom(D);
        d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
        d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
        r3.getBody().add(f1);
        r3.getBody().add(d);
        r3.getBody().add(f2);
        DefaultAtom c = new DefaultAtom(C);
        c.setTerm(0, FAKE);
        r3.getHead().add(c);
        result.add(r3);
    }
    r2.setHead(s.createImageOf(r2.getHead()));
    result.add(r2);
    return result;
}
Also used : DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) Substitution(fr.lirmm.graphik.graal.api.core.Substitution) TreeMapSubstitution(fr.lirmm.graphik.graal.core.TreeMapSubstitution) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) Rule(fr.lirmm.graphik.graal.api.core.Rule) DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) Term(fr.lirmm.graphik.graal.api.core.Term) LinkedList(java.util.LinkedList) Predicate(fr.lirmm.graphik.graal.api.core.Predicate)

Example 5 with DefaultRule

use of fr.lirmm.graphik.graal.core.DefaultRule in project graal by graphik-team.

the class MSAProperty method translateToMSA.

public static RuleSet translateToMSA(Iterable<Rule> rules) {
    RuleSet R = new LinkedListRuleSet();
    for (Rule r : rules) {
        for (Rule r2 : translateRuleToMSA(r)) R.add(r2);
    }
    DefaultRule rule = new DefaultRule();
    Atom s = new DefaultAtom(S);
    s.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    s.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    Atom d = new DefaultAtom(D);
    d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    rule.getBody().add(s);
    rule.getHead().add(d);
    R.add(rule);
    s = new DefaultAtom(S);
    d = new DefaultAtom(D);
    Atom d2 = new DefaultAtom(D);
    d.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d.setTerm(1, DefaultTermFactory.instance().createVariable("X2"));
    s.setTerm(0, DefaultTermFactory.instance().createVariable("X2"));
    s.setTerm(1, DefaultTermFactory.instance().createVariable("X3"));
    d2.setTerm(0, DefaultTermFactory.instance().createVariable("X1"));
    d2.setTerm(1, DefaultTermFactory.instance().createVariable("X3"));
    rule = new DefaultRule();
    rule.getBody().add(d);
    rule.getBody().add(s);
    rule.getHead().add(d2);
    R.add(rule);
    return R;
}
Also used : DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) AnalyserRuleSet(fr.lirmm.graphik.graal.rulesetanalyser.util.AnalyserRuleSet) RuleSet(fr.lirmm.graphik.graal.api.core.RuleSet) LinkedListRuleSet(fr.lirmm.graphik.graal.core.ruleset.LinkedListRuleSet) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) LinkedListRuleSet(fr.lirmm.graphik.graal.core.ruleset.LinkedListRuleSet) Rule(fr.lirmm.graphik.graal.api.core.Rule) DefaultRule(fr.lirmm.graphik.graal.core.DefaultRule) DefaultAtom(fr.lirmm.graphik.graal.core.DefaultAtom) Atom(fr.lirmm.graphik.graal.api.core.Atom)

Aggregations

DefaultRule (fr.lirmm.graphik.graal.core.DefaultRule)8 Rule (fr.lirmm.graphik.graal.api.core.Rule)5 DefaultAtom (fr.lirmm.graphik.graal.core.DefaultAtom)4 InMemoryAtomSet (fr.lirmm.graphik.graal.api.core.InMemoryAtomSet)3 Atom (fr.lirmm.graphik.graal.api.core.Atom)2 Predicate (fr.lirmm.graphik.graal.api.core.Predicate)2 RuleSet (fr.lirmm.graphik.graal.api.core.RuleSet)2 Term (fr.lirmm.graphik.graal.api.core.Term)2 LinkedListRuleSet (fr.lirmm.graphik.graal.core.ruleset.LinkedListRuleSet)2 AnalyserRuleSet (fr.lirmm.graphik.graal.rulesetanalyser.util.AnalyserRuleSet)2 LinkedList (java.util.LinkedList)2 Triple (com.hp.hpl.jena.graph.Triple)1 Query (com.hp.hpl.jena.query.Query)1 Template (com.hp.hpl.jena.sparql.syntax.Template)1 Substitution (fr.lirmm.graphik.graal.api.core.Substitution)1 TreeMapSubstitution (fr.lirmm.graphik.graal.core.TreeMapSubstitution)1 Prefix (fr.lirmm.graphik.util.Prefix)1 Map (java.util.Map)1