public class MappingOpsImpl extends Object implements MappingOps
| Constructor and Description |
|---|
MappingOpsImpl(SqlTranslator sqlTranslator,
ExprDatatypeNorm exprNormalizer) |
| Modifier and Type | Method and Description |
|---|---|
static com.hp.hpl.jena.sparql.expr.E_Function |
aggregatorToFunction(com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg)
Convert an aggregator to a function object.
|
com.hp.hpl.jena.sparql.expr.ExprList |
compactConjuction(com.hp.hpl.jena.sparql.expr.ExprList exprs) |
static List<Map<com.hp.hpl.jena.sparql.core.Var,com.hp.hpl.jena.sparql.expr.Expr>> |
createBindingProduct(VarDefinition varDef,
Collection<com.hp.hpl.jena.sparql.core.Var> vars) |
static Mapping |
createEmptyMapping() |
static Mapping |
createEmptyMapping(ViewInstance<ViewDefinition> viewInstance) |
List<org.aksw.sparqlify.core.algorithms.SqlExprContext> |
createExprContexts(com.hp.hpl.jena.sparql.expr.Expr e,
Mapping source) |
static List<org.aksw.sparqlify.core.algorithms.SqlExprContext> |
createExprSqlRewrites(com.hp.hpl.jena.sparql.expr.Expr condition,
Mapping m,
SqlTranslator sqlTranslator) |
static List<org.aksw.sparqlify.core.algorithms.SqlExprContext> |
createExprSqlRewrites(com.hp.hpl.jena.sparql.expr.Expr condition,
VarDefinition varDef,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator)
Returns a list of Binding-Sql Expr pairs.
|
Mapping |
createMapping(ViewInstance<ViewDefinition> viewInstance)
Creates a mapping from a view instance:
- For every binding variable, that maps to multiple things (contants + variables),
we need to equate all these things being mapped to
Schematically, we need to transform the binding to variable definitions from the original structure
(query view definition)
q v d
/ dx1
?x
/ \ dxn
?s
\ / dy1
?y
\ dyn
to conceptually a CNF:
(dx1 = dy1 OR ...
|
static SqlExpr |
createSqlCondition(com.hp.hpl.jena.sparql.expr.Expr condition,
VarDefinition varDef,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator) |
static List<SqlExpr> |
createSqlConditionItems(com.hp.hpl.jena.sparql.expr.Expr condition,
VarDefinition varDef,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator) |
static SqlExpr |
createSqlConditionOld(com.hp.hpl.jena.sparql.expr.Expr condition,
VarDefinition varDef,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator)
Deprecated.
|
Mapping |
distinct(Mapping a) |
Mapping |
doJoinRename(Mapping a,
Mapping b,
com.hp.hpl.jena.sdb.core.Generator gen)
Returns a new mapping for b:
All column names that a and b have in commons are renamed in b.
|
ExprDatatypeNorm |
exprNormalizer() |
Mapping |
extend(Mapping a,
VarDefinition varDef)
Extends a mapping with additional variable definitions.
|
Mapping |
filter(Mapping a,
com.hp.hpl.jena.sparql.expr.ExprList exprs) |
static Set<String> |
getReferencedColumnNames(List<Mapping> mappings) |
SqlTranslator |
getSqlTranslator() |
TypeSystem |
getTypeSystem()
TODO HACK Hacky function, get rid of it
|
Mapping |
groupBy(Mapping a,
com.hp.hpl.jena.sparql.core.VarExprList groupVars,
List<com.hp.hpl.jena.sparql.expr.ExprAggregator> aggregators)
GroupBy
|
Mapping |
groupByOld(Mapping a,
com.hp.hpl.jena.sparql.core.VarExprList groupVars,
List<com.hp.hpl.jena.sparql.expr.ExprAggregator> aggregators) |
Mapping |
join(Mapping a,
Mapping b) |
Mapping |
joinCommon(Mapping a,
Mapping initB,
boolean isLeftJoin,
com.hp.hpl.jena.sparql.expr.ExprList joinExprs) |
static org.aksw.sparqlify.core.algorithms.VarDefKey |
joinDefinitionsOnEquals(Collection<RestrictedExpr> a,
Collection<RestrictedExpr> b,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator)
Joins two var definitions on the given queryVar.
|
static org.aksw.sparqlify.core.algorithms.VarDefKey |
joinDefinitionsOnEquals(com.hp.hpl.jena.sparql.core.Var queryVar,
ViewInstance<ViewDefinition> viewInstance,
SqlTranslator sqlTranslator)
Returns a set of equals expressions,
created from equating all pickDefs to the given varDefs
The set is intended to be interpreted as a disjunction between the elements.
|
Mapping |
leftJoin(Mapping a,
Mapping b,
com.hp.hpl.jena.sparql.expr.ExprList exprs) |
Mapping |
order(Mapping a,
List<com.hp.hpl.jena.query.SortCondition> sortConditions)
FIXME The var definitions should not be lists rather than sets in order
to ensure deterministic behaviour!
1.
|
Mapping |
project(Mapping a,
List<com.hp.hpl.jena.sparql.core.Var> vars)
Removes variables from the definitions.
|
static List<Mapping> |
pushConstants(List<Mapping> mappings) |
static Mapping |
pushConstants(Mapping mapping)
Pushes all constants of a given mapping's varDefinition into the SQL.
|
static List<Mapping> |
removeEmptyMembers(List<Mapping> mappings) |
Mapping |
rename(Mapping a,
Map<String,String> rename)
Creates a new mapping with all column references
in the variable definition renamed, and injects an
approprate SqlProjection into the logical table
|
ExprSqlRewrite |
rewrite(com.hp.hpl.jena.sdb.core.Gensym gensym,
com.hp.hpl.jena.sparql.expr.aggregate.AggCount agg) |
static ExprSqlRewrite |
rewrite(Mapping mapping,
com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg,
com.hp.hpl.jena.sdb.core.Generator generator,
TypeSystem typeSystem,
SqlTranslator sqlTranslator)
TODO: Without the toDouble coercion, SUM(int) will be discarded
even after already been found out as a candidate.
|
ExprSqlRewrite |
rewriteOld(com.hp.hpl.jena.sdb.core.Gensym gensym,
com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg)
Returns a pair comprised of:
- A SPARQL expression that references the SQL column of the aggregater
- A projection
// Ignore: the typeMap is implied by the projection - A type map
|
Mapping |
slice(Mapping a,
Long limit,
Long offset) |
static SqlExpr |
translateSql(com.hp.hpl.jena.sparql.expr.Expr expr,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator) |
static SqlExpr |
translateSql(RestrictedExpr restExpr,
Map<String,TypeToken> typeMap,
SqlTranslator sqlTranslator) |
ExprSqlRewrite |
unifyAlternatives(com.hp.hpl.jena.sparql.expr.Expr e,
Mapping source)
Two variants:
- create a case-block for each expression
- create a union - but with the union we would eval the expression over and over again
- so we go with the case block
|
Mapping |
union(List<Mapping> members)
[ null, h: int, i: string, null ]
[ a: int null, null, x: geo ]
?s = uri(concat("http://...", ?c1, ?c2));
?s -> [c1: string, c2: int] with expr foo and restriction bar.
|
Mapping |
unionIfNeeded(List<Mapping> members) |
public MappingOpsImpl(SqlTranslator sqlTranslator, ExprDatatypeNorm exprNormalizer)
public SqlTranslator getSqlTranslator()
public ExprDatatypeNorm exprNormalizer()
public Mapping rename(Mapping a, Map<String,String> rename)
MappingOpsrename in interface MappingOpspublic static SqlExpr translateSql(RestrictedExpr restExpr, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
public static SqlExpr translateSql(com.hp.hpl.jena.sparql.expr.Expr expr, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
public static List<org.aksw.sparqlify.core.algorithms.SqlExprContext> createExprSqlRewrites(com.hp.hpl.jena.sparql.expr.Expr condition, VarDefinition varDef, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
condition - varDef - typeMap - sqlTranslator - public static List<org.aksw.sparqlify.core.algorithms.SqlExprContext> createExprSqlRewrites(com.hp.hpl.jena.sparql.expr.Expr condition, Mapping m, SqlTranslator sqlTranslator)
public static List<SqlExpr> createSqlConditionItems(com.hp.hpl.jena.sparql.expr.Expr condition, VarDefinition varDef, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
public static SqlExpr createSqlCondition(com.hp.hpl.jena.sparql.expr.Expr condition, VarDefinition varDef, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
@Deprecated public static SqlExpr createSqlConditionOld(com.hp.hpl.jena.sparql.expr.Expr condition, VarDefinition varDef, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
public static org.aksw.sparqlify.core.algorithms.VarDefKey joinDefinitionsOnEquals(Collection<RestrictedExpr> a, Collection<RestrictedExpr> b, Map<String,TypeToken> typeMap, SqlTranslator sqlTranslator)
queryVar - a - b - sqlTranslator - public static org.aksw.sparqlify.core.algorithms.VarDefKey joinDefinitionsOnEquals(com.hp.hpl.jena.sparql.core.Var queryVar,
ViewInstance<ViewDefinition> viewInstance,
SqlTranslator sqlTranslator)
queryVar - viewInstance - public static Mapping createEmptyMapping()
public static Mapping createEmptyMapping(ViewInstance<ViewDefinition> viewInstance)
public Mapping createMapping(ViewInstance<ViewDefinition> viewInstance)
createMapping in interface MappingOpsgenerator - viewInstance - public Mapping doJoinRename(Mapping a, Mapping b, com.hp.hpl.jena.sdb.core.Generator gen)
a - b - public Mapping join(Mapping a, Mapping b)
join in interface MappingOpspublic Mapping leftJoin(Mapping a, Mapping b, com.hp.hpl.jena.sparql.expr.ExprList exprs)
leftJoin in interface MappingOpspublic Mapping joinCommon(Mapping a, Mapping initB, boolean isLeftJoin, com.hp.hpl.jena.sparql.expr.ExprList joinExprs)
a - initB - isLeftJoin - joinExprs - Only for left joins, leave null otherwise. Extra join conditions to add for the left join.public Mapping slice(Mapping a, Long limit, Long offset)
slice in interface MappingOpslimit - The limit. Null for no limitoffset - The offset. Null for no offsetpublic Mapping distinct(Mapping a)
distinct in interface MappingOpspublic Mapping project(Mapping a, List<com.hp.hpl.jena.sparql.core.Var> vars)
project in interface MappingOpspublic com.hp.hpl.jena.sparql.expr.ExprList compactConjuction(com.hp.hpl.jena.sparql.expr.ExprList exprs)
public Mapping filter(Mapping a, com.hp.hpl.jena.sparql.expr.ExprList exprs)
filter in interface MappingOpspublic static Mapping pushConstants(Mapping mapping)
mapping - The mapping to process.public Mapping union(List<Mapping> members)
union in interface MappingOpspublic static List<Map<com.hp.hpl.jena.sparql.core.Var,com.hp.hpl.jena.sparql.expr.Expr>> createBindingProduct(VarDefinition varDef, Collection<com.hp.hpl.jena.sparql.core.Var> vars)
public Mapping extend(Mapping a, VarDefinition varDef)
extend in interface MappingOpspublic Mapping groupBy(Mapping a, com.hp.hpl.jena.sparql.core.VarExprList groupVars, List<com.hp.hpl.jena.sparql.expr.ExprAggregator> aggregators)
groupBy in interface MappingOpspublic Mapping groupByOld(Mapping a, com.hp.hpl.jena.sparql.core.VarExprList groupVars, List<com.hp.hpl.jena.sparql.expr.ExprAggregator> aggregators)
public static com.hp.hpl.jena.sparql.expr.E_Function aggregatorToFunction(com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg)
agg - public TypeSystem getTypeSystem()
public static ExprSqlRewrite rewrite(Mapping mapping, com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg, com.hp.hpl.jena.sdb.core.Generator generator, TypeSystem typeSystem, SqlTranslator sqlTranslator)
mapping - agg - generator - public ExprSqlRewrite rewriteOld(com.hp.hpl.jena.sdb.core.Gensym gensym, com.hp.hpl.jena.sparql.expr.aggregate.Aggregator agg)
agg - public ExprSqlRewrite rewrite(com.hp.hpl.jena.sdb.core.Gensym gensym, com.hp.hpl.jena.sparql.expr.aggregate.AggCount agg)
public List<org.aksw.sparqlify.core.algorithms.SqlExprContext> createExprContexts(com.hp.hpl.jena.sparql.expr.Expr e, Mapping source)
public ExprSqlRewrite unifyAlternatives(com.hp.hpl.jena.sparql.expr.Expr e, Mapping source)
var - target - source - public Mapping order(Mapping a, List<com.hp.hpl.jena.query.SortCondition> sortConditions)
order in interface MappingOpsCopyright © 2014. All rights reserved.