def bottom_up_correspondence_scout(codelet): objectFromInitial = chooseUnmodifiedObject('interStringSalience', workspace.initial.objects) objectFromTarget = chooseUnmodifiedObject('interStringSalience', workspace.target.objects) assert objectFromInitial.spansString() == objectFromTarget.spansString() # get the posible concept mappings conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) assert conceptMappings and __slippability(conceptMappings) #find out if any are distinguishing distinguishingMappings = [m for m in conceptMappings if m.distinguishing()] assert distinguishingMappings # if both objects span the strings, check to see if the # string description needs to be flipped opposites = [m for m in distinguishingMappings if m.initialDescriptionType == slipnet.stringPositionCategory and m.initialDescriptionType != slipnet.bondFacet] initialDescriptionTypes = [m.initialDescriptionType for m in opposites] flipTargetObject = False if (objectFromInitial.spansString() and objectFromTarget.spansString() and slipnet.directionCategory in initialDescriptionTypes and __allOppositeMappings(formulas.oppositeMappings) and slipnet.opposite.activation != 100.0): objectFromTarget = objectFromTarget.flippedVersion() conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) flipTargetObject = True coderack.proposeCorrespondence(objectFromInitial, objectFromTarget, conceptMappings, flipTargetObject, codelet)
def important_object_correspondence_scout(codelet): objectFromInitial = chooseUnmodifiedObject('relativeImportance', workspace.initial.objects) descriptors = objectFromInitial.relevantDistinguishingDescriptors() slipnode = formulas.chooseSlipnodeByConceptualDepth(descriptors) assert slipnode initialDescriptor = slipnode for mapping in workspace.slippages(): if mapping.initialDescriptor == slipnode: initialDescriptor = mapping.targetDescriptor targetCandidates = [] for objekt in workspace.target.objects: for description in objekt.relevantDescriptions(): if description.descriptor == initialDescriptor: targetCandidates += [objekt] assert targetCandidates objectFromTarget = chooseUnmodifiedObject('interStringSalience', targetCandidates) assert objectFromInitial.spansString() == objectFromTarget.spansString() # get the posible concept mappings conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) assert conceptMappings assert __slippability(conceptMappings) # find out if any are distinguishing distinguishingMappings = [m for m in conceptMappings if m.distinguishing()] assert distinguishingMappings # if both objects span the strings, check to see if the # string description needs to be flipped opposites = [ m for m in distinguishingMappings if m.initialDescriptionType == slipnet.stringPositionCategory and m.initialDescriptionType != slipnet.bondFacet] initialDescriptionTypes = [m.initialDescriptionType for m in opposites] flipTargetObject = False if (objectFromInitial.spansString() and objectFromTarget.spansString() and slipnet.directionCategory in initialDescriptionTypes and __allOppositeMappings(formulas.oppositeMappings) and slipnet.opposite.activation != 100.0): objectFromTarget = objectFromTarget.flippedVersion() conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) flipTargetObject = True coderack.proposeCorrespondence(objectFromInitial, objectFromTarget, conceptMappings, flipTargetObject, codelet)
def buildCorrespondence(self): workspace.structures += [self] if self.objectFromInitial.correspondence: self.objectFromInitial.correspondence.breakCorrespondence() if self.objectFromTarget.correspondence: self.objectFromTarget.correspondence.breakCorrespondence() self.objectFromInitial.correspondence = self self.objectFromTarget.correspondence = self # add mappings to accessory-concept-mapping-list relevantMappings = self.relevantDistinguishingConceptMappings() for mapping in relevantMappings: if mapping.slippage(): self.accessoryConceptMappings += [mapping.symmetricVersion()] from group import Group if isinstance(self.objectFromInitial, Group) and isinstance( self.objectFromTarget, Group): bondMappings = getMappings(self.objectFromInitial, self.objectFromTarget, self.objectFromInitial.bondDescriptions, self.objectFromTarget.bondDescriptions) for mapping in bondMappings: self.accessoryConceptMappings += [mapping] if mapping.slippage(): self.accessoryConceptMappings += [ mapping.symmetricVersion() ] for mapping in self.conceptMappings: if mapping.label: mapping.label.activation = 100.0
def buildCorrespondence(self): workspace.structures += [self] if self.objectFromInitial.correspondence: self.objectFromInitial.correspondence.breakCorrespondence() if self.objectFromTarget.correspondence: self.objectFromTarget.correspondence.breakCorrespondence() self.objectFromInitial.correspondence = self self.objectFromTarget.correspondence = self # add mappings to accessory-concept-mapping-list relevantMappings = self.relevantDistinguishingConceptMappings() for mapping in relevantMappings: if mapping.slippage(): self.accessoryConceptMappings += [mapping.symmetricVersion()] from group import Group if isinstance(self.objectFromInitial, Group) and isinstance(self.objectFromTarget, Group): bondMappings = getMappings( self.objectFromInitial, self.objectFromTarget, self.objectFromInitial.bondDescriptions, self.objectFromTarget.bondDescriptions ) for mapping in bondMappings: self.accessoryConceptMappings += [mapping] if mapping.slippage(): self.accessoryConceptMappings += [mapping.symmetricVersion()] for mapping in self.conceptMappings: if mapping.label: mapping.label.activation = 100.0
def bottom_up_correspondence_scout(codelet): objectFromInitial = chooseUnmodifiedObject('interStringSalience', workspace.initial.objects) objectFromTarget = chooseUnmodifiedObject('interStringSalience', workspace.target.objects) assert objectFromInitial.spansString() == objectFromTarget.spansString() # get the posible concept mappings conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) assert conceptMappings assert __slippability(conceptMappings) # find out if any are distinguishing distinguishingMappings = [m for m in conceptMappings if m.distinguishing()] assert distinguishingMappings # if both objects span the strings, check to see if the # string description needs to be flipped opposites = [ m for m in distinguishingMappings if m.initialDescriptionType == slipnet.stringPositionCategory and m.initialDescriptionType != slipnet.bondFacet] initialDescriptionTypes = [m.initialDescriptionType for m in opposites] flipTargetObject = False if (objectFromInitial.spansString() and objectFromTarget.spansString() and slipnet.directionCategory in initialDescriptionTypes and __allOppositeMappings(formulas.oppositeMappings) and slipnet.opposite.activation != 100.0): objectFromTarget = objectFromTarget.flippedVersion() conceptMappings = formulas.getMappings( objectFromInitial, objectFromTarget, objectFromInitial.relevantDescriptions(), objectFromTarget.relevantDescriptions()) flipTargetObject = True coderack.proposeCorrespondence(objectFromInitial, objectFromTarget, conceptMappings, flipTargetObject, codelet)