def evalPart(ctx, part): # try custom evaluation functions for name, c in list(CUSTOM_EVALS.items()): try: return c(ctx, part) except NotImplementedError: pass # the given custome-function did not handle this part if part.name == 'BGP': return evalBGP(ctx, part.triples) # NOTE pass part.triples, not part! elif part.name == 'Filter': return evalFilter(ctx, part) elif part.name == 'Join': return evalJoin(ctx, part) elif part.name == 'LeftJoin': return evalLeftJoin(ctx, part) elif part.name == 'Graph': return evalGraph(ctx, part) elif part.name == 'Union': return evalUnion(ctx, part) elif part.name == 'ToMultiSet': return evalMultiset(ctx, part) elif part.name == 'Extend': return evalExtend(ctx, part) elif part.name == 'Minus': return evalMinus(ctx, part) elif part.name == 'Project': return evalProject(ctx, part) elif part.name == 'Slice': return evalSlice(ctx, part) elif part.name == 'Distinct': return evalDistinct(ctx, part) elif part.name == 'Reduced': return evalReduced(ctx, part) elif part.name == 'OrderBy': return evalOrderBy(ctx, part) elif part.name == 'Group': return evalGroup(ctx, part) elif part.name == 'AggregateJoin': return evalAggregateJoin(ctx, part) elif part.name == 'SelectQuery': return evalSelectQuery(ctx, part) elif part.name == 'AskQuery': return evalAskQuery(ctx, part) elif part.name == 'ConstructQuery': return evalConstructQuery(ctx, part) elif part.name == 'ServiceGraphPattern': raise Exception('ServiceGraphPattern not implemented') elif part.name == 'DescribeQuery': raise Exception('DESCRIBE not implemented') else: # import pdb ; pdb.set_trace() raise Exception('I dont know: %s' % part.name)
def evalPart(ctx, part): # try custom evaluation functions for name, c in list(CUSTOM_EVALS.items()): try: return c(ctx, part) except NotImplementedError: pass # the given custome-function did not handle this part if part.name == "BGP": return evalBGP(ctx, part.triples) # NOTE pass part.triples, not part! elif part.name == "Filter": return evalFilter(ctx, part) elif part.name == "Join": return evalJoin(ctx, part) elif part.name == "LeftJoin": return evalLeftJoin(ctx, part) elif part.name == "Graph": return evalGraph(ctx, part) elif part.name == "Union": return evalUnion(ctx, part) elif part.name == "ToMultiSet": return evalMultiset(ctx, part) elif part.name == "Extend": return evalExtend(ctx, part) elif part.name == "Minus": return evalMinus(ctx, part) elif part.name == "Project": return evalProject(ctx, part) elif part.name == "Slice": return evalSlice(ctx, part) elif part.name == "Distinct": return evalDistinct(ctx, part) elif part.name == "Reduced": return evalReduced(ctx, part) elif part.name == "OrderBy": return evalOrderBy(ctx, part) elif part.name == "Group": return evalGroup(ctx, part) elif part.name == "AggregateJoin": return evalAggregateJoin(ctx, part) elif part.name == "SelectQuery": return evalSelectQuery(ctx, part) elif part.name == "AskQuery": return evalAskQuery(ctx, part) elif part.name == "ConstructQuery": return evalConstructQuery(ctx, part) elif part.name == "ServiceGraphPattern": raise Exception("ServiceGraphPattern not implemented") elif part.name == "DescribeQuery": raise Exception("DESCRIBE not implemented") else: # import pdb ; pdb.set_trace() raise Exception("I dont know: %s" % part.name)
def evalPart(ctx, part): # try custom evaluation functions for name, c in CUSTOM_EVALS.items(): try: return c(ctx, part) except NotImplementedError: pass # the given custome-function did not handle this part if part.name == 'BGP': # Reorder triples patterns by number of bound nodes in the current ctx # Do patterns with more bound nodes first triples = sorted(part.triples, key=lambda t: len([n for n in t if ctx[n] is None])) return evalBGP(ctx, triples) elif part.name == 'Filter': return evalFilter(ctx, part) elif part.name == 'Join': return evalJoin(ctx, part) elif part.name == 'LeftJoin': return evalLeftJoin(ctx, part) elif part.name == 'Graph': return evalGraph(ctx, part) elif part.name == 'Union': return evalUnion(ctx, part) elif part.name == 'ToMultiSet': return evalMultiset(ctx, part) elif part.name == 'Extend': return evalExtend(ctx, part) elif part.name == 'Minus': return evalMinus(ctx, part) elif part.name == 'Project': return evalProject(ctx, part) elif part.name == 'Slice': return evalSlice(ctx, part) elif part.name == 'Distinct': return evalDistinct(ctx, part) elif part.name == 'Reduced': return evalReduced(ctx, part) elif part.name == 'OrderBy': return evalOrderBy(ctx, part) elif part.name == 'Group': return evalGroup(ctx, part) elif part.name == 'AggregateJoin': return evalAggregateJoin(ctx, part) elif part.name == 'SelectQuery': return evalSelectQuery(ctx, part) elif part.name == 'AskQuery': return evalAskQuery(ctx, part) elif part.name == 'ConstructQuery': return evalConstructQuery(ctx, part) elif part.name == 'ServiceGraphPattern': raise Exception('ServiceGraphPattern not implemented') elif part.name == 'DescribeQuery': raise Exception('DESCRIBE not implemented') else: # import pdb ; pdb.set_trace() raise Exception('I dont know: %s' % part.name)
def evalPart(ctx, part): # try custom evaluation functions for name, c in CUSTOM_EVALS.items(): try: return c(ctx, part) except NotImplementedError: pass # the given custome-function did not handle this part if part.name == "BGP": # Reorder triples patterns by number of bound nodes in the current ctx # Do patterns with more bound nodes first triples = sorted(part.triples, key=lambda t: len([n for n in t if ctx[n] is None])) return evalBGP(ctx, triples) elif part.name == "Filter": return evalFilter(ctx, part) elif part.name == "Join": return evalJoin(ctx, part) elif part.name == "LeftJoin": return evalLeftJoin(ctx, part) elif part.name == "Graph": return evalGraph(ctx, part) elif part.name == "Union": return evalUnion(ctx, part) elif part.name == "ToMultiSet": return evalMultiset(ctx, part) elif part.name == "Extend": return evalExtend(ctx, part) elif part.name == "Minus": return evalMinus(ctx, part) elif part.name == "Project": return evalProject(ctx, part) elif part.name == "Slice": return evalSlice(ctx, part) elif part.name == "Distinct": return evalDistinct(ctx, part) elif part.name == "Reduced": return evalReduced(ctx, part) elif part.name == "OrderBy": return evalOrderBy(ctx, part) elif part.name == "Group": return evalGroup(ctx, part) elif part.name == "AggregateJoin": return evalAggregateJoin(ctx, part) elif part.name == "SelectQuery": return evalSelectQuery(ctx, part) elif part.name == "AskQuery": return evalAskQuery(ctx, part) elif part.name == "ConstructQuery": return evalConstructQuery(ctx, part) elif part.name == "ServiceGraphPattern": return evalServiceQuery(ctx, part) # raise Exception('ServiceGraphPattern not implemented') elif part.name == "DescribeQuery": raise Exception("DESCRIBE not implemented") else: raise Exception("I dont know: %s" % part.name)