Move a couple single-use helpers from formulas to codeletMethods. NFC.

This commit is contained in:
Arthur O'Dwyer
2017-04-17 20:46:26 -07:00
parent ff389bd653
commit 6165f77d3c
2 changed files with 23 additions and 25 deletions

View File

@ -152,17 +152,28 @@ def breaker(ctx, codelet):
structure.break_the_structure() structure.break_the_structure()
def similarPropertyLinks(slip_node, temperature):
result = []
for slip_link in slip_node.propertyLinks:
association = slip_link.degreeOfAssociation() / 100.0
probability = temperature.getAdjustedProbability(association)
if formulas.coinFlip(probability):
result += [slip_link]
return result
@codelet('bottom-up-description-scout') @codelet('bottom-up-description-scout')
def bottom_up_description_scout(ctx, codelet): def bottom_up_description_scout(ctx, codelet):
coderack = ctx.coderack coderack = ctx.coderack
temperature = ctx.temperature
workspace = ctx.workspace workspace = ctx.workspace
chosenObject = chooseUnmodifiedObject('totalSalience', workspace.objects) chosenObject = chooseUnmodifiedObject('totalSalience', workspace.objects)
assert chosenObject assert chosenObject
__showWhichStringObjectIsFrom(chosenObject) __showWhichStringObjectIsFrom(chosenObject)
description = formulas.chooseRelevantDescriptionByActivation(chosenObject) description = formulas.chooseRelevantDescriptionByActivation(chosenObject)
assert description assert description
sliplinks = formulas.similarPropertyLinks(description.descriptor) sliplinks = similarPropertyLinks(description.descriptor, temperature)
assert sliplinks and len(sliplinks) assert sliplinks
values = [sliplink.degreeOfAssociation() * sliplink.destination.activation values = [sliplink.degreeOfAssociation() * sliplink.destination.activation
for sliplink in sliplinks] for sliplink in sliplinks]
i = formulas.selectListPosition(values) i = formulas.selectListPosition(values)
@ -894,15 +905,24 @@ def bottom_up_correspondence_scout(ctx, codelet):
conceptMappings, flipTargetObject, codelet) conceptMappings, flipTargetObject, codelet)
def chooseSlipnodeByConceptualDepth(slip_nodes, temperature):
if not slip_nodes:
return None
depths = [temperature.getAdjustedValue(n.conceptualDepth) for n in slip_nodes]
i = formulas.selectListPosition(depths)
return slip_nodes[i]
@codelet('important-object-correspondence-scout') @codelet('important-object-correspondence-scout')
def important_object_correspondence_scout(ctx, codelet): def important_object_correspondence_scout(ctx, codelet):
coderack = ctx.coderack coderack = ctx.coderack
slipnet = ctx.slipnet slipnet = ctx.slipnet
temperature = ctx.temperature
workspace = ctx.workspace workspace = ctx.workspace
objectFromInitial = chooseUnmodifiedObject('relativeImportance', objectFromInitial = chooseUnmodifiedObject('relativeImportance',
workspace.initial.objects) workspace.initial.objects)
descriptors = objectFromInitial.relevantDistinguishingDescriptors() descriptors = objectFromInitial.relevantDistinguishingDescriptors()
slipnode = formulas.chooseSlipnodeByConceptualDepth(descriptors) slipnode = chooseSlipnodeByConceptualDepth(descriptors, temperature)
assert slipnode assert slipnode
initialDescriptor = slipnode initialDescriptor = slipnode
for mapping in workspace.slippages(): for mapping in workspace.slippages():

View File

@ -70,28 +70,6 @@ def chooseRelevantDescriptionByActivation(workspaceObject):
return descriptions[i] return descriptions[i]
def similarPropertyLinks(slip_node):
from context import context as ctx
temperature = ctx.temperature
result = []
for slip_link in slip_node.propertyLinks:
association = slip_link.degreeOfAssociation() / 100.0
probability = temperature.getAdjustedProbability(association)
if coinFlip(probability):
result += [slip_link]
return result
def chooseSlipnodeByConceptualDepth(slip_nodes):
from context import context as ctx
temperature = ctx.temperature
if not slip_nodes:
return None
depths = [temperature.getAdjustedValue(n.conceptualDepth) for n in slip_nodes]
i = selectListPosition(depths)
return slip_nodes[i]
def __relevantCategory(objekt, slipnode): def __relevantCategory(objekt, slipnode):
return objekt.rightBond and objekt.rightBond.category == slipnode return objekt.rightBond and objekt.rightBond.category == slipnode