Move a couple single-use helpers from formulas to codeletMethods. NFC.
This commit is contained in:
@ -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():
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user