package org.aksw.jena_sparql_api.concept_cache.combinatorics;
import java.util.List;
import java.util.Map;
import org.aksw.combinatorics.solvers.Problem;
import org.aksw.combinatorics.solvers.ProblemNeighborhoodAware;
import org.apache.jena.sparql.algebra.Op;
import org.apache.jena.sparql.algebra.op.OpQuadPattern;
import org.apache.jena.sparql.core.Quad;
import org.apache.jena.sparql.core.Var;
public class ProblemFactoryOpMapping
// implements Problem<Map<Var, Var>>
{
public static Problem<Map<Var, Var>> create(Op a, Op b) {
if(a != null && b != null) {
Class<?> ac = a.getClass();
Class<?> bc = b.getClass();
}
return null;
}
public static ProblemNeighborhoodAware<Map<Var, Var>, Var> create(OpQuadPattern a, OpQuadPattern b, Map<Var, Var> baseSolution) {
List<Quad> aqp = a.getPattern().getList();
List<Quad> bqp = b.getPattern().getList();
ProblemNeighborhoodAware<Map<Var, Var>, Var> result = new ProblemVarMappingQuad(aqp, bqp, baseSolution);
return result;
}
// public static Problem<Map<Var, Var>> create(OpFilter a, OpFilter b, Map<Var, Var> baseSolution) {
// Set<Set<Expr>> acnf = CnfUtils.toSetCnf(a.getExprs());
// Set<Set<Expr>> bcnf = CnfUtils.toSetCnf(b.getExprs());
// //List<Quad> aqp = a.getPattern().getList();
// //List<Quad> bqp = b.getPattern().getList();
// Problem<Map<Var, Var>> result = new ProblemVarMappingExpr(acnf, bcnf, baseSolution);
// return result;
// }
//
// public static Stream<Map<Var, Var>> match(OpProject a, OpProject b) {
//
// }
}