(refinement rescue-generic (rescue ?ip) (variables ?ip) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (support ?ip)) (4 (recover ?ip)) (5 (return ?ip))) (orderings (1 2) (2 3) (2 4) (4 5))) (refinement rescue-1-team-sof-support-sof-recovery (rescue ?ip) (variables ?ip ?sof) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (allocate-one sof-oda ?sof (support-and-recover ?ip))) (4 (move-from-base ?sof ?ip)) (5 (support ?sof ?ip)) (6 (recover ?sof ?ip)) (7 (return ?ip))) (orderings (1 2) (2 5) (2 6) (6 7) (3 4) (4 5) (4 6)) (annotations (note = "1 SOF ODA used, for both support and recovery"))) (refinement rescue-2-teams-sof-support-sof-recovery (rescue ?ip) (variables ?ip ?support-sof ?recover-sof) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (allocate-one sof-oda ?support-sof (support ?ip))) (4 (move-from-base ?support-sof ?ip)) (5 (support ?support-sof ?ip)) (6 (allocate-one sof-oda ?recover-sof (recover ?ip))) (7 (move-from-base ?recover-sof ?ip)) (8 (recover ?recover-sof ?ip)) (9 (return ?ip))) (orderings (3 6) (3 4) (4 5) (6 7) (7 8) (1 2) (2 5) (2 8) (8 9)) (annotations (note = "2 SOF ODAs used, one for support, one for recovery"))) (refinement rescue-sof-support-covert-recovery (rescue ?ip) (variables ?ip ?support-sof) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (allocate-one sof-oda ?support-sof (support ?ip))) (4 (support ?support-sof ?ip)) (5 (recover-by-covert-means ?ip)) (6 (return ?ip))) (orderings (3 4) (3 5) (1 2) (2 4) (2 5) (5 6)) (annotations (note = "1 SOF ODA used, for support, covert means used recovery"))) (refinement rescue-sof-support-civilian-recovery (rescue ?ip) (variables ?ip ?support-sof) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (allocate-one sof-oda ?support-sof (support ?ip))) (4 (support ?support-sof ?ip)) (5 (recover-by-civilian-means ?ip)) (6 (return ?ip))) (orderings (3 4) (3 5) (1 2) (2 4) (2 5) (5 6)) (annotations (note = "1 SOF ODA used, for support, civilian means used recovery"))) (refinement rescue-unassisted-recovery (rescue ?ip) (variables ?ip) (nodes (1 (report ?ip)) (2 (locate ?ip)) (3 (support ?ip)) (4 (recover-unassisted ?ip)) (5 (return ?ip))) (orderings (1 2) (2 3) (2 4) (4 5)) (issues (issue (can ?ip be recovered unassisted))) (annotations (note = "IP recover themselves"))) (refinement locate-already-known (locate ?ip) (variables ?ip) (constraints (world-state condition (location-status ?ip) = known)) (issues (issue (consider adding verify-location task afterwards)))) (refinement locate-by-asking (locate ?ip) (variables ?ip) (nodes (1 (ask ?ip location))) (constraints (world-state condition (communication-status ?ip) = two-way) (world-state effect (location-status ?ip) = known)) (issues (issue (can ?ip determine their location reliably)))) (refinement locate-air-search (locate ?ip) (variables ?ip) (nodes (1 (search air ?ip))) (constraints (world-state condition (location-status ?ip) = unknown) (world-state effect (location-status ?ip) = known)) (issues (issue (can ?ip be seen from the air)))) (refinement locate-ground-search (locate ?ip) (variables ?ip) (nodes (1 (search ground ?ip))) (constraints (world-state condition (location-status ?ip) = unknown) (world-state effect (location-status ?ip) = known)) (issues (issue (is there enough time for a ground search for ?ip)))) (refinement locate-air-and-ground-search (locate ?ip) (variables ?ip) (nodes (1 (search air-and-ground ?ip))) (constraints (world-state condition (location-status ?ip) = unknown) (world-state effect (location-status ?ip) = known))) (refinement locate-using-satellite-intelligence (locate ?ip) (variables ?ip) (constraints (world-state effect (location-status ?ip) = known)) (issues (issue (can ?ip be seen from space)))) (refinement locate-using-human-intelligence (locate ?ip) (variables ?ip) (constraints (world-state effect (location-status ?ip) = known)) (issues (issue (are the human intelligence sources reliable)))) (refinement verify-locate-by-re-locating (verify-location ?ip) (variables ?ip) (nodes (1 (locate ?ip)))) (refinement provide-other-support (support ?ip) (variables ?ip) (issues (issue (consider adding protect activities afterwards)) (issue (consider adding provide activities afterwards)) (issue (consider adding diversion activities afterwards)))) (refinement provide-sof-support (support ?sof ?ip) (variables ?sof ?ip) (issues (issue (consider adding protect activities afterwards)) (issue (consider adding provide activities afterwards)) (issue (consider adding diversion activities afterwards)))) (refinement provide-communication (provide-communication-with ?ip) (variables ?ip) (constraints (world-state effect (communication-status ?ip) = two-way)) (issues (issue (is communication with ?ip secure)) (issue (can communication with ?ip be disrupted)))) (refinement provide-technical-advice (provide-technical-advice ?ip) (variables ?ip) (constraints (world-state condition (communication-status ?ip) = two-way))) (refinement provide-food (provide-food ?ip) (variables ?ip)) (refinement provide-medical-advice (provide-medical-advice ?ip) (variables ?ip) (constraints (world-state condition (communication-status ?ip) = two-way)) (issues (issue (should a medical team be sent to ?ip)))) (refinement provide-medical-supplies (provide-medical-supplies ?ip) (variables ?ip) (issues (issue (should a medical team accompany the medical supplies to ?ip)))) (refinement provide-medical-team (provide-medical-team ?ip) (variables ?ip ?ip-loc ?med-team ?method) (nodes (1 (allocate-one med-team ?med-team (treating ?ip))) (2 (move ?method ?med-team ?ip-loc))) (orderings (1 2)) (constraints (world-state condition (location ?ip) = ?ip-loc)) (issues (issue (are there injured IP needing evacuation)))) (refinement support-by-sof (support ?ip) (variables ?support-sof ?ip) (nodes (1 (allocate-one sof-oda ?support-sof (support ?ip))) (2 (move-from-base ?support-sof ?ip)) (3 (support ?support-sof ?ip))) (orderings (1 2) (2 3))) (refinement delay-enemy (delay-enemy ?unit ?enemy) (variables ?unit ?enemy)) (refinement protect-location (protect-location ?unit ?loc) (variables ?unit ?loc)) (refinement recover-by-negotiation-generic (recover ?ip) (variables ?ip) (nodes (1 (negotiate-recovery ?ip)))) (refinement recover-by-negotiation (recover-unassisted ?ip) (variables ?ip) (nodes (1 (negotiate-recovery ?ip)))) (refinement recover-by-grey-force (recover ?ip) (variables ?ip) (nodes (1 (obtain-cooperation-of-grey-forces)) (2 (recover-using-grey-force ?ip)) (3 (obtain-cooperation-of-country ?country))) (orderings (1 2)) (annotations (comments = "") ("canvasPositionGraph" = [3(288.0, 160.0), 2(355.0, 88.0), 1(150.0, 38.0)]))) (refinement recover-by-sof (recover ?ip) (variables ?recover-sof ?ip) (nodes (1 (allocate-one sof-oda ?recover-sof (recover ?ip))) (2 (move-from-base ?recover-sof ?ip)) (3 (recover ?recover-sof ?ip))) (orderings (1 2) (2 3))) (refinement recover-by-covert-means (recover ?ip) (variables ?ip) (nodes (1 (recover-by-covert-means ?ip)))) (refinement recover-by-civilian-means (recover ?ip) (variables ?ip) (nodes (1 (recover-by-civilian-means ?ip)))) (refinement recover-unassisted (recover ?ip) (variables ?ip) (nodes (1 (recover-unassisted ?ip)))) (refinement recover-by-sof-heli (recover ?unit ?ip) (variables ?unit ?ip) (nodes (1 (extract-by-helicopter ?unit ?ip)))) (refinement extract-by-heli (extract-by-helicopter ?unit ?ip) (variables ?unit ?ip ?ip-loc ?lz ?safe) (nodes (1 (protect ?unit ?ip)) (2 (make-contact ?unit ?ip)) (3 (authenticate ?unit ?ip)) (4 (walk ?unit ?ip ?lz)) (5 (fly-by-heli ?unit ?ip ?safe))) (orderings (2 3) (3 4) (4 5)) (constraints (world-state condition (location ?ip) = ?ip-loc) (world-state condition (heli-landing-zone ?ip-loc) = ?lz) (world-state condition (is-safe-destination ?safe) = true)) (annotations (comments = ""))) (refinement recover-by-civilian-trucks (recover-by-civilian-means ?ip) (variables ?ip ?ip-loc ?team) (nodes (1 (allocate-one civilian-driver-team ?team (recover ?ip))) (2 (move by-road ?team ?ip-loc)) (3 (extract-by-road ?team ?ip))) (orderings (1 2) (2 3)) (constraints (world-state condition (location ?ip) = ?ip-loc)) (annotations (comments = ""))) (refinement extract-by-road (extract-by-road ?team ?ip) (variables ?team ?ip ?safe) (nodes (1 (protect ?team ?ip)) (2 (make-contact ?team ?ip)) (3 (authenticate ?team ?ip)) (4 (drive ?team ?ip ?safe))) (orderings (2 3) (3 4)) (constraints (world-state condition (is-safe-destination ?safe) = true)) (issues (issue (is ?safe reachable by road)))) (refinement recover-by-civilian-heli (recover ?unit ?ip) (variables ?unit ?ip ?ip-loc ?lz) (nodes (1 (obtain-civilian-helicopter ?unit)) (2 (move by-heli ?unit ?lz)) (3 (extract-by-helicopter ?unit ?ip))) (orderings (1 2) (2 3)) (constraints (world-state condition (location ?ip) = ?ip-loc) (world-state condition (heli-landing-zone ?ip-loc) = ?lz))) (refinement recover-by-civilian-fixed-wing (recover ?unit ?ip) (variables ?unit ?ip ?ip-loc ?airport ?lz) (nodes (1 (obtain-civilian-fixed-wing ?unit)) (2 (move by-fixed-wing ?unit ?airport)) (3 (move by-foot ?unit ?ip-loc)) (4 (extract-by-fixed-wing ?unit ?ip ?airport))) (orderings (1 2) (2 3) (3 4)) (constraints (world-state condition (location ?ip) = ?ip-loc) (world-state condition (type ?airport) = airport) (world-state condition (transport-distance ?ip-loc ?airport) = short) (world-state condition (heli-landing-zone ?ip-loc) = ?lz)) (annotations (comments = ""))) (refinement extract-by-fixed-wing (extract-by-fixed-wing ?unit ?ip ?airport) (variables ?unit ?ip ?airport ?safe) (nodes (1 (protect ?unit ?ip)) (2 (make-contact ?unit ?ip)) (3 (authenticate ?unit ?ip)) (4 (walk ?unit ?ip ?airport)) (5 (fly-by-fixed-wing ?unit ?ip ?safe))) (orderings (2 3) (3 4) (4 5)) (constraints (world-state condition (is-safe-destination ?safe) = true)) (annotations (comments = "") ("canvasPositionGraph" = [3(401.0, 99.0), 5(579.0, 211.0), 2(309.0, 43.0), 4(489.0, 155.0), 1(89.0, 110.0)]))) (refinement recover-covertly-with-civ-trucks (recover-by-covert-means ?ip) (variables ?team ?ip ?ip-loc) (nodes (1 (allocate-one para-military-team ?team (recover ?ip))) (2 (move by-road ?team ?ip-loc)) (3 (extract-by-road ?team ?ip))) (orderings (1 2) (2 3)) (constraints (world-state condition (location ?ip) = ?ip-loc))) (refinement diversion-recover-generic (diversion-recover ?ip) (variables ?ip) (nodes (1 (recover ?ip)))) (refinement from-base-by-heli (move-from-base ?unit ?ip) (variables ?unit ?ip ?ip-loc ?lz) (nodes (1 (move by-heli ?unit ?lz))) (constraints (world-state condition (location ?ip) = ?ip-loc) (world-state condition (heli-landing-zone ?ip-loc) = ?lz))) (refinement from-base-by-halo-drop (move-from-base ?unit ?ip) (variables ?unit ?ip ?ip-loc ?obj) (nodes (1 (move by-fixed-wing ?unit ?ip-loc)) (2 (halo-drop ?unit))) (orderings (1 2)) (constraints (world-state condition (halo-qualified ?unit) = true) (world-state condition (location ?ip) = ?ip-loc)) (issues (issue (are all ?obj trained for halo missions))) (annotations (comments = ""))) (refinement take-by-foot (walk ?unit ?obj ?to) (variables ?unit ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?unit) = ?to) (world-state effect (latitude ?unit) = ?lat) (world-state effect (longitude ?unit) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon)) (annotations (comments = ""))) (refinement take-by-road (drive ?unit ?obj ?to) (variables ?unit ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?unit) = ?to) (world-state effect (latitude ?unit) = ?lat) (world-state effect (longitude ?unit) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon)) (annotations (comments = ""))) (refinement take-by-heli (fly-by-heli ?unit ?obj ?to) (variables ?unit ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?unit) = ?to) (world-state effect (latitude ?unit) = ?lat) (world-state effect (longitude ?unit) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon)) (annotations (comments = ""))) (refinement take-by-fixed-wing (fly-by-fixed-wing ?unit ?obj ?to) (variables ?unit ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?unit) = ?to) (world-state effect (latitude ?unit) = ?lat) (world-state effect (longitude ?unit) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon)) (annotations (comments = ""))) (refinement move-by-foot (move by-foot ?obj ?to) (variables ?obj ?from ?to ?lat ?lon) (constraints (world-state condition (location ?obj) = ?from) (world-state condition (transport-distance ?from ?to) = short) (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon)) (issues (issue (is ?obj suitable for walk or carry)))) (refinement move-by-heli (move by-heli ?obj ?to) (variables ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon))) (refinement move-by-fixed-wing (move by-fixed-wing ?obj ?to) (variables ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon))) (refinement move-by-halo (move by-halo ?obj ?to) (variables ?obj ?to) (nodes (1 (move by-fixed-wing ?obj ?to)) (2 (halo-drop ?obj))) (orderings (1 2)) (constraints (world-state condition (halo-qualified ?obj) = true)) (issues (issue (are all ?obj trained for halo missions))) (annotations (comments = ""))) (refinement move-by-road (move by-road ?obj ?to) (variables ?obj ?to ?lat ?lon) (constraints (world-state condition (latitude ?to) = ?lat) (world-state condition (longitude ?to) = ?lon) (world-state effect (location ?obj) = ?to) (world-state effect (latitude ?obj) = ?lat) (world-state effect (longitude ?obj) = ?lon))) (refinement allocate-one (allocate-one ?type ?object ?new-status) (variables ?type ?object ?new-status) (constraints (world-state condition (type ?object) = ?type) (world-state condition (status ?object) = available) (world-state effect (status ?object) = ?new-status)) (annotations (use-for-world-state-effects = :none))) (refinement recover-by-diplomacy (recover ?ip) (variables ?ip ?country) (nodes (3 (obtain-cooperation-of-country ?country)) (4 (recover-using-country-resources ?ip))) (orderings (4 3)) (annotations (comments = "") ("canvasPositionGraph" = [3(329.0, 146.0), 4(161.0, 76.0)]))) (refinement recover-by-rescue (recover ?ip) (variables ?ip) (nodes (2 (rescue ?ip))) (annotations (comments = "") ("canvasPositionGraph" = [2(100.0, 60.0)]))) (refinement from-base-by-fixed-wing (move-from-base ?unit ?ip) (variables ?unit ?ip ?ip-loc ?lz) (nodes (2 (move-by-heli ?unit ?lz))) (constraints (world-state condition (location ?ip) = ?ip-loc) (world-state condition (heli-landing-zone ?ip-loc) = ?lz)) (annotations (comments = "") ("canvasPositionGraph" = [2(128.0, 62.0)])))