canning_food-0


Synsets

Transition Paths By Task Scope Objects

graph TD; future-diced__pineapplen01(future: diced__pineapple.n.01); future-diced__steakn01(future: diced__steak.n.01); initial-pineapplen02(initial: pineapple.n.02); initial-steakn01(initial: steak.n.01); recipe-uncooked-half__pineapplen01-dicing(recipe: uncooked-half__pineapple.n.01-dicing); half__pineapplen01(half__pineapple.n.01); recipe-pineapplen02-slicing(recipe: pineapple.n.02-slicing); recipe-uncooked-half__steakn01-dicing(recipe: uncooked-half__steak.n.01-dicing); half__steakn01(half__steak.n.01); recipe-steakn01-slicing(recipe: steak.n.01-slicing); initial-pineapplen02 --> recipe-pineapplen02-slicing; initial-steakn01 --> recipe-steakn01-slicing; recipe-uncooked-half__pineapplen01-dicing --> future-diced__pineapplen01; half__pineapplen01 --> recipe-uncooked-half__pineapplen01-dicing; recipe-pineapplen02-slicing --> half__pineapplen01; recipe-uncooked-half__steakn01-dicing --> future-diced__steakn01; half__steakn01 --> recipe-uncooked-half__steakn01-dicing; recipe-steakn01-slicing --> half__steakn01;

Scenes

Full Definition

(define (problem canning_food-0)
    (:domain omnigibson)

    (:objects
        steak.n.01_1 - steak.n.01 
        diced__steak.n.01_1 - diced__steak.n.01
        pineapple.n.02_1 - pineapple.n.02
        diced__pineapple.n.01_1 - diced__pineapple.n.01
        electric_refrigerator.n.01_1 - electric_refrigerator.n.01
        mason_jar.n.01_1 mason_jar.n.01_2 - mason_jar.n.01
        cabinet.n.01_1 - cabinet.n.01
        chopping_board.n.01_1 - chopping_board.n.01
        countertop.n.01_1 - countertop.n.01
        carving_knife.n.01_1 - carving_knife.n.01
        floor.n.01_1 - floor.n.01
        agent.n.01_1 - agent.n.01
    )
    
    (:init 
        (inside steak.n.01_1 electric_refrigerator.n.01_1) 
        (inside pineapple.n.02_1 electric_refrigerator.n.01_1) 
        (inside mason_jar.n.01_1 cabinet.n.01_1) 
        (inside mason_jar.n.01_2 cabinet.n.01_1) 
        (ontop chopping_board.n.01_1 countertop.n.01_1) 
        (ontop carving_knife.n.01_1 chopping_board.n.01_1) 
        (inroom cabinet.n.01_1 kitchen) 
        (inroom electric_refrigerator.n.01_1 kitchen) 
        (inroom countertop.n.01_1 kitchen) 
        (inroom floor.n.01_1 kitchen) 
        (future diced__pineapple.n.01_1)
        (future diced__steak.n.01_1)
        (ontop agent.n.01_1 floor.n.01_1)
    )
    
    (:goal 
        (and 
            (real ?diced__steak.n.01_1)
            (real ?diced__pineapple.n.01_1)
            (exists
                (?mason_jar.n.01 - mason_jar.n.01)
                (and 
                    (filled ?mason_jar.n.01 ?diced__steak.n.01_1)
                    (not
                        (contains ?mason_jar.n.01 ?diced__pineapple.n.01_1)
                    )
                )
            )
            (exists
                (?mason_jar.n.01 - mason_jar.n.01)
                (and 
                    (filled ?mason_jar.n.01 ?diced__pineapple.n.01_1)
                    (not
                        (contains ?mason_jar.n.01 ?diced__steak.n.01_1)
                    )
                )
            )
            (forall 
                (?mason_jar.n.01 - mason_jar.n.01) 
                (and
                    (inside ?mason_jar.n.01 ?cabinet.n.01_1)
                    (not
                        (open ?mason_jar.n.01)
                    )
                )
            ) 
        )
    )
)
  

Debugging: All Possible Recipes Resulting in Future Synsets

graph TD; initial-steakn01(initial: steak.n.01); missing-half__pineapplen01(missing: half__pineapple.n.01); future-diced__steakn01(future: diced__steak.n.01); recipe-pineapplen02-slicing(recipe: pineapple.n.02-slicing); recipe-steakn01-slicing(recipe: steak.n.01-slicing); recipe-uncooked-half__steakn01-dicing(recipe: uncooked-half__steak.n.01-dicing); future-diced__pineapplen01(future: diced__pineapple.n.01); missing-half__steakn01(missing: half__steak.n.01); recipe-uncooked-half__pineapplen01-dicing(recipe: uncooked-half__pineapple.n.01-dicing); initial-pineapplen02(initial: pineapple.n.02); initial-steakn01 --> recipe-steakn01-slicing; missing-half__pineapplen01 --> recipe-uncooked-half__pineapplen01-dicing; recipe-pineapplen02-slicing --> missing-half__pineapplen01; recipe-steakn01-slicing --> missing-half__steakn01; recipe-uncooked-half__steakn01-dicing --> future-diced__steakn01; missing-half__steakn01 --> recipe-uncooked-half__steakn01-dicing; recipe-uncooked-half__pineapplen01-dicing --> future-diced__pineapplen01; initial-pineapplen02 --> recipe-pineapplen02-slicing;