Source:
Local role: One explicit assumption extracted from evaluating an Action under a Perception and a resource set.
Big-picture role: Projection atom used to externalize the assumptions from which later strategy nodes may be built.
Inheritance:
- dataclass
Parameters and fields:
assumption_id: str— unique ID within a projection; format"{action_id}:{type}"for actor/context/space bindings,"{action_id}:effect:{idx}:{resource_id}:{effect_type}"for resource effects (positional index prevents collisions for duplicate effects),"{action_id}:prerequisite:{idx}:{prerequisite_type}:{field_name}"for prerequisitesassumption_type: str— one ofactor_binding,perception_context,space_binding,resource_effect,prerequisitedescription: strsubject_id: Optional[str]epistemic_status: str— default"projected"satisfied: Optional[bool]—Nonemeans deferred to a later stagerationale: strmetadata: dict
Methods:
to_dict() -> dictfrom_dict(data) -> ProjectionAssumption
Example:
tool = DefaultProjectionTool()
proj = tool.project_action(action, perception, resources=[resource])
for assumption in proj.assumptions:
# assumption_type: "actor_binding", "resource_effect", "prerequisite", ...
print(assumption.assumption_type)
print(assumption.satisfied) # True | False | None
print(assumption.description)
print(assumption.epistemic_status) # "projected" by default
See also:
