def __call__(self, tNode, inferredTriple, token, binding, debug): bnodeEncountered = {} bnodeCounter = 0 for headTriple in tNode.consequent: for inferredTriple, binding in _mulPatternWithSubstitutions( token, headTriple, tNode): skolemInput = u''.join( map( lambda item: binding[item], sorted([ key for key in binding if isinstance(binding[key], URIRef) and binding[key] not in self.skolemTerms ]))) if skolemInput: skolemInput = createDigest( skolemInput.encode('utf-8')).hexdigest() for term in inferredTriple: if isinstance(term, BNode) and term not in bnodeEncountered: bnodeCounter += 1 bnodeEncountered[term] = str(bnodeCounter) inferredTriple = tuple( map( lambda item: SKOLEMIZED_CLASS_NS[ skolemInput + '_' + bnodeEncountered[item]] if item in bnodeEncountered else item, inferredTriple)) self.skolemTerms.update([ term for term in inferredTriple if term.find(SKOLEMIZED_CLASS_NS) + 1 ]) tNode.network.handleInferredTriple(inferredTriple, token, tNode, binding, debug)
def __call__(self, tNode, inferredTriple, token, binding, debug): bnodeEncountered = {} bnodeCounter = 0 for headTriple in tNode.consequent: for inferredTriple,binding in _mulPatternWithSubstitutions( token, headTriple, tNode): skolemInput = u''.join(map(lambda item: binding[item], sorted([key for key in binding if isinstance(binding[key],URIRef) and binding[key] not in self.skolemTerms]))) if skolemInput: skolemInput = createDigest(skolemInput.encode('utf-8') ).hexdigest() for term in inferredTriple: if isinstance(term,BNode) and term not in bnodeEncountered: bnodeCounter += 1 bnodeEncountered[term] = str(bnodeCounter) inferredTriple = tuple( map(lambda item: SKOLEMIZED_CLASS_NS[ skolemInput+'_'+bnodeEncountered[item]] if item in bnodeEncountered else item, inferredTriple)) self.skolemTerms.update([term for term in inferredTriple if term.find(SKOLEMIZED_CLASS_NS)+1]) tNode.network.handleInferredTriple( inferredTriple, token, tNode, binding, debug)
def makeMD5Digest(value): return createDigest( isinstance(value, unicode) and value.encode('utf-8') or value).hexdigest()