Skip to content

Commit

Permalink
clean-up and comment puffbot dialogue domain AI-Planning#4
Browse files Browse the repository at this point in the history
  • Loading branch information
ssardina committed Sep 23, 2024
1 parent de8ccd6 commit b32ace1
Show file tree
Hide file tree
Showing 38 changed files with 286 additions and 309 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ These five come from the [FOND-SAT](https://github.com/tomsons22/FOND-SAT) repo/
- `beam-walk`: [(Cimatti, Roveri, & Traverso, 1998)](https://cdn.aaai.org/AAAI/1998/AAAI98-124.pdf)
- `chain-of-rooms`: from [Constructing conditional plans by a theorem-prover](https://jair.org/index.php/jair/article/view/10230/), JAIR 10 (1999), 323–352, as part of the QBFPLAN planner.
- `earth-observation`: ([J Aldinger & J Löhr, 2013)](https://gki.informatik.uni-freiburg.de/papers/aldinger-loehr-pcd2013.pdf)
- `puffbot_dialogue_pddl`: From Milene Teixeira -- domain for building dialogue agents in the health-care setting.
- `puffbot-dialog`: domain generating the dialogue policy for building dialogue agents in the health-care setting. Reported in [Teixeira et. al SAC'21 paper](https://dl.acm.org/doi/10.1145/3412841.3441942) and [PhD thesis](https://iris.unitn.it/retrieve/handle/11572/361402/595412/phd_unitn_santos_teixeira_milene.pdf).
- `st_mapfdu`: from Thorsten Engesser on planning for implicit coordination. Strong cyclic plans exist, but it's the acyclic ones that are desired.


Expand Down
8 changes: 4 additions & 4 deletions benchmarks/catalogue.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ def extract_instance_no(file_name):
("domain.pddl", os.path.basename(f))
for f in get_instances("miner", pattern="p*.pddl")
]
puffbot = [
puffbot_dialog = [
(f"dm{extract_instance_no(f)}.pddl", os.path.basename(f))
for f in get_instances("puffbot_dialogue_pddl", regex=r"pb\d+.pddl")
for f in get_instances("puffbot-dialog", regex=r"pb\d+.pddl")
]
rectangle_tire = [
("domain.pddl", os.path.basename(f))
Expand Down Expand Up @@ -302,7 +302,7 @@ def extract_instance_no(file_name):
"forest-new": forest_new, #
"islands": islands, #
"miner": miner, #
"puffbot_dialogue_pddl": puffbot,
"puffbot-dialog": puffbot_dialog,
"rectangle-tireworld": rectangle_tire,
"rectangle-tireworld-noghost": rectangle_tire_noghost,
"river": river,
Expand Down Expand Up @@ -344,7 +344,7 @@ def extract_instance_no(file_name):
],
"extra": [
"blocksworld-ex",
"puffbot_dialogue_pddl",
"puffbot-dialog",
"rectangle-tireworld",
"rectangle-tireworld-noghost",
],
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
281 changes: 281 additions & 0 deletions benchmarks/puffbot_dialog/dm_initial.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
(define (domain puffbot_dialog)
(:requirements :strips :typing :non-deterministic)
(:types
Slot - None
RelevantInformation - None
UserStatus - None
)
(:predicates
(hasRelevantInformation ?x - Slot ?v - RelevantInformation)
(has_value ?s - Slot)
(GOAL_ACHIEVED)
(initiate)
(fallback_intent)
(unexpected_intent_received)
(is_most_useful ?s - Slot)
(search_most_useful)
(make_request)
(possible_classification_us ?us - UserStatus)
)
(:action enable_fallback_question
:parameters ()
:precondition (and
(fallback_intent)
)
:effect (GOAL_ACHIEVED)
)
(:action enable_fallback_question2
:parameters ()
:precondition (and
(fallback_intent)
(not
(make_request)
)
)
:effect (GOAL_ACHIEVED)
)
(:action feedback_unexpected_intent
:parameters ()
:precondition (and
(not
(fallback_intent)
)
(unexpected_intent_received)
(not
(initiate)
)
)
:effect (and
(not
(unexpected_intent_received)
)
(search_most_useful)
)
)
(:action service_deadend
:parameters (?s - Slot)
:precondition (and
(is_most_useful ?s)
(has_value ?s)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
)
:effect (and
(not
(is_most_useful ?s)
)
(search_most_useful)
)
)
(:action report_class1
:parameters ()
:precondition (and
(possible_classification_us class1)
(not
(initiate)
)
(not
(make_request)
)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
)
:effect (and
(oneof
(and
(not
(GOAL_ACHIEVED)
)
(not
(possible_classification_us class1)
)
(search_most_useful)
)
(GOAL_ACHIEVED)
)
)
)
(:action report_class2
:parameters ()
:precondition (and
(possible_classification_us class2)
(not
(initiate)
)
(not
(make_request)
)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
)
:effect (and
(oneof
(and
(not
(GOAL_ACHIEVED)
)
(not
(possible_classification_us class2)
)
(search_most_useful)
)
(GOAL_ACHIEVED)
)
)
)
(:action report_class3
:parameters ()
:precondition (and
(possible_classification_us class3)
(not
(initiate)
)
(not
(make_request)
)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
)
:effect (and
(oneof
(and
(not
(GOAL_ACHIEVED)
)
(not
(possible_classification_us class3)
)
(search_most_useful)
)
(GOAL_ACHIEVED)
)
)
)
(:action request_slot1
:parameters ()
:precondition (and
(make_request)
(is_most_useful slot1)
(not
(has_value slot1)
)
(not
(search_most_useful)
)
(not
(initiate)
)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
)
:effect (and
(has_value slot1)
(not
(is_most_useful slot1)
)
(not
(make_request)
)
(possible_classification_us class1)
)
)

(:action report_default
:parameters ()
:precondition (and
(has_value slot1)
(not
(is_most_useful slot1)
)
(not
(possible_classification_us class1)
)
(not
(possible_classification_us class2)
)
(not
(possible_classification_us class3)
)
)
:effect (GOAL_ACHIEVED)
)
(:action report_default_negation
:parameters ()
:precondition (and
(hasRelevantInformation slot1 NoValue)
(not
(possible_classification_us class1)
)
(not
(possible_classification_us class2)
)
(not
(possible_classification_us class3)
)
)
:effect (GOAL_ACHIEVED)
)
(:action initiate
:parameters ()
:precondition (and
(initiate)
(not
(has_value slot1)
)
)
:effect (GOAL_ACHIEVED)
)
(:action search_most_useful_slot
:parameters ()
:precondition (and
(search_most_useful)
(not
(initiate)
)
(not
(fallback_intent)
)
(not
(unexpected_intent_received)
)
(not
(possible_classification_us class1)
)
(not
(possible_classification_us class2)
)
(not
(possible_classification_us class3)
)
)
:effect (and
(not
(search_most_useful)
)
(make_request)
(oneof
(is_most_useful slot1)
)
)
)
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit b32ace1

Please sign in to comment.