
org.aksw.jena_sparql_api.utils.NfUtils Maven / Gradle / Ivy
package org.aksw.jena_sparql_api.utils;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import org.aksw.commons.collections.SetUtils;
import org.apache.jena.sparql.core.Var;
import org.apache.jena.sparql.expr.Expr;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
public class NfUtils {
public static Set getVarsMentioned(Iterable extends Iterable extends Expr>> clauses) {
Set result = new HashSet();
for(Iterable extends Expr> clause : clauses) {
Set tmp = ClauseUtils.getVarsMentioned(clause);
tmp.addAll(tmp);
}
return result;
}
public static Set> canonicalize(Iterable extends Iterable extends Expr>> clauses) {
Set> result = StreamSupport.stream(clauses.spliterator(), false)
.map(clause -> ClauseUtils.canonicalize(clause))
.collect(Collectors.toSet());
return result;
}
/**
* Create equivalence classes for clauses of a normal form
*
*
*/
public static Multimap, Set> createStructuralEquivalenceClasses(Iterable extends Iterable extends Expr>> clauses) {
Multimap, Set> result = HashMultimap.create();
for(Iterable extends Expr> clause : clauses) {
Set clazz = ClauseUtils.canonicalize(clause);
result.put(clazz, SetUtils.asSet((Set)clause));
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy