@Override public Compiler newInstance() { return new CompilerKgram(); }
@Override public Node createNode(Atom at) { return getNode(at); }
@Override public List<Filter> compileFilter(Triple t) { Expression exp = t.getExp(); ArrayList<Filter> list = new ArrayList<Filter>(); compile(exp, list); return list; }
/** * Generate one filter */ @Override public Filter compile(Expression exp) { Expression ee = process(exp); Expression cpl = ee.process(ast); if (cpl == null) { Message.log(Message.REWRITE, exp); Message.log(ast); cpl = exp; } cpl.compile(ast); return cpl; }
/** * Generate one filter */ @Override public Filter compile(Expression exp) { Expression ee = process(exp); Expression cpl = ee.process(ast); if (cpl == null) { Message.log(Message.REWRITE, exp); Message.log(ast); cpl = exp; } cpl.compile(ast); return cpl; }
Node getNode(Atom at) { return getNode(at, false); }
@Override public Compiler newInstance() { return new CompilerKgram(); }
Node getNode(Atom at) { return getNode(at, false); }
@Override public List<Filter> compileFilter(Triple t) { Expression exp = t.getExp(); ArrayList<Filter> list = new ArrayList<Filter>(); compile(exp, list); return list; }
public static CompilerKgram create() { return new CompilerKgram(); }
@Override public Node createNode(Atom at) { return getNode(at); }
public static CompilerKgram create() { return new CompilerKgram(); }
@Override public Node createNode(String name) { return getNode(new Variable(name)); }
@Override public Node createNode(String name) { return getNode(new Variable(name)); }
@Override public Edge compile(Triple tt, boolean reuse) { EdgeImpl edge = new EdgeImpl(tt); Node subject = getNode(tt.getSubject(), reuse); if (tt.getVariable() != null) { Node variable = getNode(tt.getVariable()); edge.setEdgeVariable(variable); } Node predicate = getNode(tt.getProperty(), reuse); // PRAGMA: // ?x rdf:type c:Image // in this case we want each triple rdf:type c:Image to have its own c:Image Node // to accept type subsumption // if it would be same Node, it would need to be bound to same value // cf Neurolog pb // TODO: fix it for relax Node object = getNode(tt.getObject(), reuse); edge.add(subject); edge.add(object); edge.setEdgeNode(predicate); if (tt.getArgs() != null) { for (Atom arg : tt.getArgs()) { Node sup = getNode(arg); edge.add(sup); } } return edge; }
@Override public Edge compile(Triple tt, boolean reuse) { EdgeImpl edge = new EdgeImpl(tt); Node subject = getNode(tt.getSubject(), reuse); if (tt.getVariable() != null) { Node variable = getNode(tt.getVariable()); edge.setEdgeVariable(variable); } Node predicate = getNode(tt.getProperty(), reuse); // PRAGMA: // ?x rdf:type c:Image // in this case we want each triple rdf:type c:Image to have its own c:Image Node // to accept type subsumption // if it would be same Node, it would need to be bound to same value // cf Neurolog pb // TODO: fix it for relax Node object = getNode(tt.getObject(), reuse); edge.add(subject); edge.add(object); edge.setEdgeNode(predicate); if (tt.getArgs() != null) { for (Atom arg : tt.getArgs()) { Node sup = getNode(arg); edge.add(sup); } } return edge; }