2 from opencog.atomspace
import AtomSpace, types, Atom, TruthValue, get_type_name
3 import opencog.cogserver
5 from atomspace_remote
import AtomSpace, types, Atom, TruthValue, get_type_name
7 from rules
import evaluation_link_template, execution_link_template, actionDone_template
14 return execution_link_template(
19 return T(
'NotLink', link)
22 return [vars[v_str]
for v_str
in relation_l[1:]]
26 for c_str
in conditions_str.split(
'|'):
27 conditions_l = c_str.split()
29 pred_str = conditions_l[0]
32 if pred_str[0] ==
'~':
33 pred_str = pred_str[1:]
36 pred = predicates[pred_str]
39 link = evaluation_link_template(pred,params)
47 def new_rule(atomspace, action_str, pre_str, post_str):
48 action_l = action_str.split()
49 action = actions[action_l[0]]
52 for v_str
in action_l[1:]:
53 vars[v_str] = atomspace.add(t.VariableNode, v_str)
60 pil = T(
'PredictiveImplicationLink',
61 T(
'SimultaneousAndLink',
64 T(
'SimultaneousAndLink',
68 atom_from_tree(pil, atomspace).tv = TruthValue(1, TruthValue().confidence_to_count(1))
80 blocks[letter] = atomspace.add(t.ObjectNode,
'movable_block_'+letter)
82 for action_name
in 'unstack stack pickup putdown start end'.split(
' '):
83 actions[action_name] = atomspace.add(t.SchemaNode, action_name)
85 for predicate_name
in 'clear on ontable handempty holding'.split(
' '):
86 predicates[predicate_name] = atomspace.add(t.PredicateNode,predicate_name)
127 'unstack top bottom',
128 'clear top | on top bottom | handempty',
129 'holding top | clear bottom | ~clear top | ~on top bottom | ~handempty'
134 'holding top | clear bottom',
135 'on top bottom | clear top | handempty | ~holding top | ~clear bottom'
140 'ontable block | clear block | handempty',
141 'holding block | ~ontable block | ~clear block | ~handempty'
147 'ontable block | clear block | handempty | ~holding block'
150 initial_conditions_and = T(
'SimultaneousAndLink',
154 atom = atom_from_tree(initial_conditions_and, atomspace)
155 atom.tv = TruthValue(1, TruthValue().confidence_to_count(1))
159 blocksworld.blocksworld_rules(atomspace)
163 target_tr = T(
'SimultaneousAndLink',
168 c = logic.Chainer(atomspace)
170 res = logic.do_planning(atomspace, target_tr,c)
172 f =
'<blocksworld_test>'
def parse_conditions_list