Example #1
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 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)
Example #2
0
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)
Example #3
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
Example #4
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
Example #5
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)