From e022b89a639c48cbecb1b3fdd27765f5ffca3fa8 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 11 Feb 2025 17:28:46 +0000 Subject: [PATCH 01/23] first version of the tutorial --- docs/tutorials/data/data.txt | 0 docs/tutorials/data/qa6_train_10k.txt | 27544 ++++++++++++++++ ...al_Babi6_new_parser-release training.ipynb | 409 + ...i6_new_parser-release-preparing-data.ipynb | 708 + 4 files changed, 28661 insertions(+) create mode 100644 docs/tutorials/data/data.txt create mode 100644 docs/tutorials/data/qa6_train_10k.txt create mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb create mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb diff --git a/docs/tutorials/data/data.txt b/docs/tutorials/data/data.txt new file mode 100644 index 0000000..e69de29 diff --git a/docs/tutorials/data/qa6_train_10k.txt b/docs/tutorials/data/qa6_train_10k.txt new file mode 100644 index 0000000..47291a8 --- /dev/null +++ b/docs/tutorials/data/qa6_train_10k.txt @@ -0,0 +1,27544 @@ +1 Mary moved to the bathroom. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Mary went back to the bedroom. +5 Daniel went back to the hallway. +6 Is Daniel in the bathroom? no 5 +7 Sandra went to the kitchen. +8 Daniel went back to the bathroom. +9 Is Daniel in the office? no 8 +10 Daniel picked up the football there. +11 Daniel went to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 John travelled to the office. +14 Sandra went to the garden. +15 Is Daniel in the bedroom? yes 11 +1 Sandra got the football there. +2 Mary went to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel got the apple there. +5 Sandra travelled to the hallway. +6 Is Sandra in the office? no 5 +7 Sandra moved to the garden. +8 Mary travelled to the kitchen. +9 Is Sandra in the bathroom? no 7 +10 Sandra went back to the bedroom. +11 Daniel put down the apple. +12 Is Sandra in the bathroom? no 10 +13 Sandra put down the football. +14 Sandra journeyed to the office. +15 Is Mary in the kitchen? yes 8 +1 Sandra moved to the office. +2 John went back to the garden. +3 Is Sandra in the office? yes 1 +4 Sandra went to the hallway. +5 Sandra went to the kitchen. +6 Is Sandra in the bathroom? no 5 +7 Mary went to the office. +8 Sandra got the apple there. +9 Is Sandra in the kitchen? yes 5 +10 Mary journeyed to the hallway. +11 Mary journeyed to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Mary journeyed to the garden. +14 Mary went to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Sandra journeyed to the garden. +2 Sandra went back to the bedroom. +3 Is Sandra in the bathroom? no 2 +4 Daniel took the apple there. +5 Sandra travelled to the office. +6 Is Sandra in the office? yes 5 +7 John went to the hallway. +8 Sandra moved to the kitchen. +9 Is John in the office? no 7 +10 Daniel journeyed to the bathroom. +11 Daniel went back to the bedroom. +12 Is Sandra in the office? no 8 +13 Daniel travelled to the kitchen. +14 Sandra went to the bedroom. +15 Is Sandra in the hallway? no 14 +1 John went to the bathroom. +2 Sandra took the football there. +3 Is John in the bathroom? yes 1 +4 Mary journeyed to the kitchen. +5 John journeyed to the bedroom. +6 Is John in the bedroom? yes 5 +7 John took the apple there. +8 John left the apple. +9 Is Mary in the hallway? no 4 +10 Daniel grabbed the milk there. +11 Sandra dropped the football. +12 Is John in the bedroom? yes 5 +13 Mary picked up the football there. +14 John got the apple there. +15 Mary dropped the football. +16 Daniel went back to the kitchen. +17 Is Daniel in the bathroom? no 16 +1 Sandra went to the garden. +2 Sandra grabbed the milk there. +3 Is Sandra in the hallway? no 1 +4 Mary moved to the office. +5 Mary went to the garden. +6 Is Mary in the kitchen? no 5 +7 Daniel went back to the office. +8 Mary journeyed to the bedroom. +9 Is Mary in the bathroom? no 8 +10 Sandra went back to the hallway. +11 Sandra journeyed to the office. +12 Is Sandra in the office? yes 11 +13 Sandra journeyed to the garden. +14 Mary journeyed to the hallway. +15 Is Mary in the bathroom? no 14 +1 Sandra grabbed the football there. +2 Sandra went back to the hallway. +3 Is Sandra in the garden? no 2 +4 Mary journeyed to the kitchen. +5 Mary moved to the office. +6 Is Mary in the office? yes 5 +7 John moved to the kitchen. +8 Sandra put down the football there. +9 Is John in the bathroom? no 7 +10 Mary took the apple there. +11 John travelled to the hallway. +12 Is John in the garden? no 11 +13 Daniel moved to the hallway. +14 Mary travelled to the kitchen. +15 Is John in the garden? no 11 +1 Daniel journeyed to the bedroom. +2 John moved to the bedroom. +3 Is Daniel in the hallway? no 1 +4 Daniel took the apple there. +5 Mary moved to the office. +6 Is Mary in the office? yes 5 +7 Sandra went to the office. +8 Daniel went to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Daniel put down the apple. +11 Sandra journeyed to the kitchen. +12 Is Mary in the hallway? no 5 +13 Daniel grabbed the apple there. +14 Daniel took the milk there. +15 Is Daniel in the kitchen? no 8 +1 Mary went back to the bathroom. +2 Daniel went to the office. +3 Is Mary in the bathroom? yes 1 +4 Mary got the milk there. +5 Sandra travelled to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Mary went back to the bedroom. +8 Mary picked up the apple there. +9 Is Sandra in the bathroom? yes 5 +10 Sandra moved to the hallway. +11 Mary discarded the apple. +12 Is Mary in the bedroom? yes 7 +13 Daniel journeyed to the kitchen. +14 Mary took the apple there. +15 Is Daniel in the bathroom? no 13 +1 Daniel journeyed to the hallway. +2 Mary went back to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 John moved to the hallway. +5 John picked up the apple there. +6 Is Daniel in the kitchen? no 1 +7 Daniel moved to the bathroom. +8 John went to the garden. +9 Is Mary in the kitchen? yes 2 +10 Mary moved to the hallway. +11 John dropped the apple. +12 Is John in the bedroom? no 8 +13 Sandra grabbed the apple there. +14 Sandra left the apple. +15 Is John in the garden? yes 8 +1 John journeyed to the hallway. +2 Sandra took the football there. +3 Is John in the bathroom? no 1 +4 John journeyed to the bathroom. +5 John journeyed to the office. +6 Is John in the garden? no 5 +7 Daniel journeyed to the hallway. +8 Sandra discarded the football there. +9 Is John in the garden? no 5 +10 Daniel moved to the office. +11 John picked up the apple there. +12 Is Daniel in the kitchen? no 10 +13 John moved to the bathroom. +14 Mary journeyed to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Sandra went back to the bathroom. +2 Sandra took the apple there. +3 Is Sandra in the bathroom? yes 1 +4 Sandra picked up the football there. +5 John journeyed to the bathroom. +6 Is John in the bathroom? yes 5 +7 Mary went back to the bedroom. +8 John moved to the kitchen. +9 Is Mary in the kitchen? no 7 +10 John went to the office. +11 Sandra took the milk there. +12 Is Mary in the bedroom? yes 7 +13 Sandra left the football. +14 Sandra left the apple there. +15 Is John in the garden? no 10 +1 John went back to the hallway. +2 Daniel travelled to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel picked up the milk there. +5 Daniel left the milk. +6 Is John in the hallway? yes 1 +7 Daniel went to the bedroom. +8 Daniel went back to the hallway. +9 Is Daniel in the hallway? yes 8 +10 Daniel picked up the milk there. +11 John picked up the football there. +12 Is Daniel in the hallway? yes 8 +13 Mary went back to the bathroom. +14 Daniel moved to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Mary got the football there. +2 Daniel travelled to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Sandra got the milk there. +5 Sandra put down the milk. +6 Is Daniel in the garden? no 2 +7 Sandra journeyed to the office. +8 Daniel went back to the kitchen. +9 Is Sandra in the bedroom? no 7 +10 Daniel moved to the bathroom. +11 Mary left the football. +12 Is Daniel in the office? no 10 +13 Mary went back to the kitchen. +14 John journeyed to the kitchen. +15 Is Daniel in the bedroom? no 10 +1 Sandra went back to the office. +2 Mary journeyed to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Sandra got the football there. +5 Sandra put down the football. +6 Is Sandra in the office? yes 1 +7 John went back to the office. +8 Mary grabbed the milk there. +9 Is Mary in the bedroom? yes 2 +10 Sandra picked up the football there. +11 John went to the bedroom. +12 Is John in the bedroom? yes 11 +13 Sandra went to the kitchen. +14 Daniel went back to the bathroom. +15 Is Sandra in the office? no 13 +1 Sandra went to the kitchen. +2 Sandra travelled to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Daniel went back to the bedroom. +5 Mary journeyed to the garden. +6 Is Sandra in the bathroom? yes 2 +7 Mary went back to the office. +8 Daniel went back to the bathroom. +9 Is Daniel in the hallway? no 8 +10 John went back to the bedroom. +11 Mary went back to the garden. +12 Is Daniel in the bathroom? yes 8 +13 Daniel went to the bedroom. +14 Mary moved to the bathroom. +15 Is Daniel in the office? no 13 +1 John travelled to the garden. +2 Sandra travelled to the garden. +3 Is John in the bedroom? no 1 +4 Mary moved to the bedroom. +5 Mary travelled to the kitchen. +6 Is John in the garden? yes 1 +7 John went to the office. +8 John grabbed the milk there. +9 Is Sandra in the bedroom? no 2 +10 Daniel journeyed to the hallway. +11 Sandra got the football there. +12 Is Daniel in the kitchen? no 10 +13 Sandra journeyed to the bedroom. +14 Sandra put down the football. +15 Is Daniel in the hallway? yes 10 +1 Daniel grabbed the apple there. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John moved to the garden. +5 Sandra journeyed to the office. +6 Is John in the bathroom? no 4 +7 Daniel put down the apple. +8 Mary went to the bedroom. +9 Is Daniel in the bedroom? yes 2 +10 Mary grabbed the apple there. +11 Sandra went back to the garden. +12 Is Mary in the bedroom? yes 8 +13 Mary went to the kitchen. +14 Daniel went to the office. +15 Is Mary in the garden? no 13 +1 Mary travelled to the bedroom. +2 Daniel took the football there. +3 Is Mary in the office? no 1 +4 Daniel went to the bathroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the hallway? no 5 +7 Mary travelled to the garden. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary went to the office. +11 Mary travelled to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Daniel discarded the football. +14 John journeyed to the bedroom. +15 Is Mary in the kitchen? no 11 +1 Sandra got the football there. +2 Daniel took the apple there. +3 Mary travelled to the office. +4 Daniel went back to the bathroom. +5 Is Mary in the kitchen? no 3 +6 Sandra journeyed to the office. +7 Mary grabbed the milk there. +8 Is Mary in the kitchen? no 3 +9 Daniel journeyed to the kitchen. +10 John went to the bedroom. +11 Is Daniel in the kitchen? yes 9 +12 Mary dropped the milk. +13 Sandra got the milk there. +14 Is Daniel in the office? no 9 +15 John moved to the hallway. +16 Sandra moved to the kitchen. +17 Is John in the kitchen? no 15 +1 John went to the hallway. +2 Sandra picked up the apple there. +3 Is John in the hallway? yes 1 +4 Daniel moved to the garden. +5 Mary journeyed to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Mary moved to the bathroom. +8 Sandra left the apple. +9 Is Daniel in the bedroom? no 4 +10 Mary grabbed the milk there. +11 Daniel moved to the office. +12 Is Mary in the bedroom? no 7 +13 John took the football there. +14 John moved to the bedroom. +15 Is John in the bedroom? yes 14 +1 Daniel travelled to the bathroom. +2 John got the apple there. +3 Is Daniel in the hallway? no 1 +4 John put down the apple. +5 Mary travelled to the kitchen. +6 Is Daniel in the bathroom? yes 1 +7 John grabbed the apple there. +8 Daniel travelled to the hallway. +9 Is Mary in the kitchen? yes 5 +10 Daniel travelled to the garden. +11 Daniel travelled to the kitchen. +12 Is Mary in the kitchen? yes 5 +13 Mary moved to the garden. +14 Sandra went to the bedroom. +15 Is Daniel in the office? no 11 +1 John moved to the office. +2 Mary got the football there. +3 Is John in the bathroom? no 1 +4 Sandra went to the bedroom. +5 Mary discarded the football. +6 Is Sandra in the bedroom? yes 4 +7 Sandra picked up the football there. +8 John journeyed to the bathroom. +9 Is Sandra in the bedroom? yes 4 +10 Sandra left the football. +11 Sandra moved to the hallway. +12 Is Sandra in the bathroom? no 11 +13 John took the apple there. +14 John moved to the kitchen. +15 Is John in the bedroom? no 14 +1 Mary went to the kitchen. +2 Mary travelled to the office. +3 Is Mary in the hallway? no 2 +4 Daniel went to the hallway. +5 Daniel took the football there. +6 Is Mary in the office? yes 2 +7 Sandra travelled to the office. +8 Daniel dropped the football. +9 Is Sandra in the bathroom? no 7 +10 Sandra travelled to the bathroom. +11 Daniel went back to the kitchen. +12 Is Sandra in the garden? no 10 +13 Sandra went to the office. +14 Sandra went back to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John took the apple there. +2 Sandra moved to the bedroom. +3 Is Sandra in the bathroom? no 2 +4 Mary went to the office. +5 John discarded the apple. +6 Is Sandra in the bedroom? yes 2 +7 John picked up the apple there. +8 John went to the office. +9 Is Mary in the bedroom? no 4 +10 Daniel journeyed to the kitchen. +11 Sandra went back to the hallway. +12 Is Daniel in the kitchen? yes 10 +13 Daniel travelled to the bedroom. +14 John went back to the kitchen. +15 Is Daniel in the bedroom? yes 13 +1 Sandra travelled to the bedroom. +2 Daniel journeyed to the hallway. +3 Is Sandra in the bedroom? yes 1 +4 Sandra picked up the apple there. +5 Mary went to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra took the football there. +8 John travelled to the kitchen. +9 Is Mary in the bathroom? yes 5 +10 Mary got the milk there. +11 Mary discarded the milk. +12 Is John in the office? no 8 +13 Mary took the milk there. +14 Sandra discarded the football. +15 Is John in the bathroom? no 8 +1 Mary went to the kitchen. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel grabbed the apple there. +5 John moved to the bedroom. +6 Is Daniel in the bedroom? yes 2 +7 Sandra travelled to the bedroom. +8 Daniel journeyed to the hallway. +9 Is Daniel in the kitchen? no 8 +10 Daniel went back to the bedroom. +11 Mary travelled to the office. +12 Is John in the bedroom? yes 5 +13 John travelled to the garden. +14 Sandra moved to the hallway. +15 Is Mary in the bedroom? no 11 +1 Mary moved to the office. +2 Daniel went to the garden. +3 Is Mary in the office? yes 1 +4 Daniel picked up the football there. +5 Sandra went to the kitchen. +6 Is Sandra in the kitchen? yes 5 +7 Daniel left the football. +8 Mary went back to the bedroom. +9 Is Mary in the office? no 8 +10 John journeyed to the office. +11 Mary travelled to the bathroom. +12 Is Mary in the garden? no 11 +13 Mary moved to the bedroom. +14 John journeyed to the kitchen. +15 Is Mary in the kitchen? no 13 +1 Sandra travelled to the office. +2 Daniel moved to the hallway. +3 Is Sandra in the office? yes 1 +4 Mary took the apple there. +5 Sandra travelled to the garden. +6 Is Sandra in the kitchen? no 5 +7 John journeyed to the bathroom. +8 Daniel went back to the office. +9 Is John in the bedroom? no 7 +10 John moved to the hallway. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary travelled to the bathroom. +14 Mary left the apple. +15 Is John in the hallway? yes 10 +1 John got the football there. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John went to the bathroom. +5 John went back to the garden. +6 Is John in the office? no 5 +7 John moved to the bathroom. +8 John went back to the garden. +9 Is John in the garden? yes 8 +10 John dropped the football there. +11 John took the football there. +12 Is John in the garden? yes 8 +13 John discarded the football. +14 John journeyed to the bedroom. +15 Is John in the bathroom? no 14 +1 Daniel journeyed to the hallway. +2 Mary moved to the garden. +3 Is Mary in the garden? yes 2 +4 Sandra travelled to the bedroom. +5 Sandra journeyed to the hallway. +6 Is Mary in the garden? yes 2 +7 John journeyed to the kitchen. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 John grabbed the milk there. +11 Sandra picked up the football there. +12 Is Sandra in the kitchen? yes 8 +13 Sandra dropped the football. +14 Mary went back to the hallway. +15 Is Sandra in the kitchen? yes 8 +1 Sandra moved to the hallway. +2 Sandra got the apple there. +3 Is Sandra in the bedroom? no 1 +4 Mary got the milk there. +5 Mary put down the milk. +6 Is Sandra in the bathroom? no 1 +7 Mary went to the office. +8 Sandra dropped the apple. +9 Is Mary in the garden? no 7 +10 Daniel went back to the kitchen. +11 John moved to the bedroom. +12 Is Daniel in the kitchen? yes 10 +13 Daniel went back to the bathroom. +14 Sandra moved to the office. +15 Is Sandra in the office? yes 14 +1 Mary travelled to the hallway. +2 Mary journeyed to the garden. +3 Is Mary in the hallway? no 2 +4 Mary moved to the kitchen. +5 John went back to the bathroom. +6 Is Mary in the bedroom? no 4 +7 John journeyed to the bedroom. +8 Sandra got the football there. +9 Is Mary in the office? no 4 +10 Sandra put down the football. +11 Mary travelled to the garden. +12 Is John in the garden? no 7 +13 Mary got the apple there. +14 Mary picked up the milk there. +15 Is Mary in the garden? yes 11 +1 Mary moved to the kitchen. +2 John journeyed to the hallway. +3 Is Mary in the bathroom? no 1 +4 John went to the bedroom. +5 John moved to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary went back to the bathroom. +8 Mary went back to the hallway. +9 Is John in the bathroom? no 5 +10 John journeyed to the office. +11 Daniel travelled to the kitchen. +12 Is Daniel in the garden? no 11 +13 Sandra moved to the office. +14 Sandra travelled to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John moved to the garden. +2 Daniel moved to the kitchen. +3 Is Daniel in the garden? no 2 +4 Sandra travelled to the bathroom. +5 Sandra went back to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Sandra moved to the hallway. +8 Daniel picked up the football there. +9 Is Daniel in the hallway? no 2 +10 John journeyed to the bedroom. +11 John went to the kitchen. +12 Is Sandra in the kitchen? no 7 +13 John travelled to the bedroom. +14 Mary journeyed to the garden. +15 Is Mary in the hallway? no 14 +1 Mary moved to the kitchen. +2 Sandra moved to the office. +3 Is Mary in the kitchen? yes 1 +4 John journeyed to the office. +5 Daniel went to the bedroom. +6 Is Mary in the hallway? no 1 +7 John journeyed to the kitchen. +8 Mary moved to the office. +9 Is John in the bathroom? no 7 +10 Daniel got the apple there. +11 Mary went back to the kitchen. +12 Is Mary in the garden? no 11 +13 John took the milk there. +14 John discarded the milk. +15 Is Mary in the kitchen? yes 11 +1 Mary travelled to the bathroom. +2 John went back to the kitchen. +3 Is John in the hallway? no 2 +4 John journeyed to the garden. +5 Daniel got the milk there. +6 Is John in the garden? yes 4 +7 John went back to the hallway. +8 Daniel travelled to the bedroom. +9 Is John in the hallway? yes 7 +10 Mary travelled to the hallway. +11 Sandra went to the bedroom. +12 Is John in the hallway? yes 7 +13 Mary went back to the bedroom. +14 John travelled to the bathroom. +15 Is Mary in the bedroom? yes 13 +1 Sandra moved to the bedroom. +2 Daniel moved to the office. +3 Is Daniel in the office? yes 2 +4 John journeyed to the office. +5 Mary went to the office. +6 Is Mary in the office? yes 5 +7 John moved to the garden. +8 Sandra took the apple there. +9 Is Mary in the bathroom? no 5 +10 Mary went to the bedroom. +11 Sandra discarded the apple. +12 Is John in the bathroom? no 7 +13 Mary journeyed to the office. +14 John went back to the hallway. +15 Is Mary in the bedroom? no 13 +1 Sandra got the milk there. +2 John went back to the kitchen. +3 Is John in the kitchen? yes 2 +4 Mary got the apple there. +5 Sandra journeyed to the bedroom. +6 Is John in the bedroom? no 2 +7 Sandra grabbed the football there. +8 Sandra discarded the football. +9 Is John in the kitchen? yes 2 +10 John went back to the bathroom. +11 Daniel went to the hallway. +12 Is Sandra in the kitchen? no 5 +13 John journeyed to the garden. +14 Daniel journeyed to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 John moved to the kitchen. +2 Daniel went back to the office. +3 Is John in the kitchen? yes 1 +4 Daniel travelled to the bathroom. +5 Daniel took the apple there. +6 Is John in the office? no 1 +7 Sandra went to the hallway. +8 Daniel discarded the apple. +9 Is Sandra in the kitchen? no 7 +10 John went back to the hallway. +11 John travelled to the kitchen. +12 Is John in the bathroom? no 11 +13 Mary went to the bedroom. +14 Daniel grabbed the apple there. +15 Is John in the hallway? no 11 +1 John grabbed the milk there. +2 Daniel went back to the kitchen. +3 Is Daniel in the hallway? no 2 +4 Sandra grabbed the apple there. +5 John dropped the milk. +6 Is Daniel in the bathroom? no 2 +7 Sandra put down the apple. +8 John grabbed the milk there. +9 Is Daniel in the kitchen? yes 2 +10 Daniel went to the hallway. +11 Sandra went back to the garden. +12 Is Sandra in the hallway? no 11 +13 Sandra travelled to the bedroom. +14 Mary went to the hallway. +15 Is Mary in the hallway? yes 14 +1 Daniel went to the garden. +2 Mary moved to the bedroom. +3 Is Mary in the kitchen? no 2 +4 Sandra travelled to the hallway. +5 Sandra travelled to the office. +6 Is Sandra in the bedroom? no 5 +7 Mary picked up the apple there. +8 Mary picked up the football there. +9 Is Sandra in the office? yes 5 +10 Mary dropped the football. +11 Sandra journeyed to the kitchen. +12 Is Sandra in the bathroom? no 11 +13 Mary left the apple. +14 Sandra moved to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Mary went back to the hallway. +2 John grabbed the apple there. +3 Is Mary in the hallway? yes 1 +4 John put down the apple. +5 John took the apple there. +6 Is Mary in the hallway? yes 1 +7 John put down the apple there. +8 Mary moved to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Mary travelled to the bathroom. +11 Sandra went back to the garden. +12 Is Sandra in the garden? yes 11 +13 Daniel went to the bedroom. +14 Mary took the milk there. +15 Is Sandra in the bedroom? no 11 +1 John got the apple there. +2 Mary grabbed the milk there. +3 Sandra went to the hallway. +4 John moved to the hallway. +5 Is Sandra in the hallway? yes 3 +6 Daniel picked up the football there. +7 Daniel put down the football there. +8 Is Sandra in the hallway? yes 3 +9 Sandra went to the kitchen. +10 John moved to the bathroom. +11 Is John in the kitchen? no 10 +12 John grabbed the football there. +13 Mary went to the hallway. +14 Is John in the kitchen? no 10 +15 Mary journeyed to the bedroom. +16 John left the football. +17 Is Mary in the bathroom? no 15 +1 Mary travelled to the garden. +2 Daniel moved to the bathroom. +3 Is Mary in the bathroom? no 1 +4 Daniel travelled to the office. +5 Daniel travelled to the garden. +6 Is Daniel in the garden? yes 5 +7 Sandra went back to the kitchen. +8 Sandra moved to the bathroom. +9 Is Daniel in the kitchen? no 5 +10 Mary journeyed to the bathroom. +11 Sandra went to the bedroom. +12 Is Mary in the office? no 10 +13 Sandra journeyed to the kitchen. +14 Daniel went back to the bathroom. +15 Is Sandra in the kitchen? yes 13 +1 Sandra travelled to the bathroom. +2 John took the football there. +3 Is Sandra in the bathroom? yes 1 +4 Mary travelled to the kitchen. +5 John put down the football. +6 Is Sandra in the garden? no 1 +7 Daniel went to the bedroom. +8 John picked up the football there. +9 Is Daniel in the bedroom? yes 7 +10 Sandra went back to the kitchen. +11 Mary went back to the office. +12 Is Sandra in the kitchen? yes 10 +13 Daniel travelled to the kitchen. +14 Sandra went to the garden. +15 Is Mary in the kitchen? no 11 +1 John travelled to the garden. +2 Mary went to the bathroom. +3 Is Mary in the garden? no 2 +4 Sandra went to the hallway. +5 Daniel travelled to the hallway. +6 Is Sandra in the bathroom? no 4 +7 John journeyed to the office. +8 Sandra moved to the bedroom. +9 Is Sandra in the garden? no 8 +10 Mary went to the kitchen. +11 Mary went to the bedroom. +12 Is John in the bathroom? no 7 +13 John got the apple there. +14 Mary travelled to the kitchen. +15 Is Sandra in the bedroom? yes 8 +1 Daniel moved to the hallway. +2 Sandra got the apple there. +3 Is Daniel in the bathroom? no 1 +4 Sandra left the apple. +5 Mary travelled to the bathroom. +6 Is Daniel in the garden? no 1 +7 Mary took the football there. +8 Mary discarded the football. +9 Is Mary in the bathroom? yes 5 +10 Daniel grabbed the apple there. +11 Mary picked up the football there. +12 Is Mary in the bathroom? yes 5 +13 Mary left the football. +14 John went back to the bedroom. +15 Is John in the bedroom? yes 14 +1 Daniel moved to the bathroom. +2 Daniel picked up the football there. +3 Is Daniel in the bathroom? yes 1 +4 Mary went to the kitchen. +5 John picked up the milk there. +6 Is Daniel in the garden? no 1 +7 Mary journeyed to the bedroom. +8 Sandra journeyed to the office. +9 Is Mary in the bedroom? yes 7 +10 Daniel left the football. +11 Sandra journeyed to the garden. +12 Is Sandra in the garden? yes 11 +13 Daniel took the football there. +14 John dropped the milk. +15 Is Sandra in the garden? yes 11 +1 Daniel went to the kitchen. +2 Daniel grabbed the football there. +3 Is Daniel in the hallway? no 1 +4 John went to the bathroom. +5 Daniel left the football. +6 Is John in the office? no 4 +7 Mary went back to the office. +8 Daniel picked up the football there. +9 Is Mary in the office? yes 7 +10 Mary journeyed to the bedroom. +11 Mary moved to the office. +12 Is Mary in the office? yes 11 +13 Sandra went back to the garden. +14 Daniel went back to the bathroom. +15 Is Sandra in the garden? yes 13 +1 Mary journeyed to the bathroom. +2 John moved to the hallway. +3 Is Mary in the bathroom? yes 1 +4 Sandra picked up the apple there. +5 Daniel travelled to the garden. +6 Is John in the hallway? yes 2 +7 John went to the bedroom. +8 John journeyed to the bathroom. +9 Is John in the kitchen? no 8 +10 Mary went to the office. +11 Daniel journeyed to the office. +12 Is Daniel in the office? yes 11 +13 Daniel grabbed the milk there. +14 John moved to the kitchen. +15 Is Mary in the hallway? no 10 +1 Mary grabbed the milk there. +2 Sandra picked up the apple there. +3 John travelled to the kitchen. +4 Sandra put down the apple there. +5 Is John in the office? no 3 +6 Sandra took the apple there. +7 Daniel went to the hallway. +8 Is John in the office? no 3 +9 Mary went to the bedroom. +10 Sandra travelled to the bedroom. +11 Is Daniel in the kitchen? no 7 +12 John moved to the bedroom. +13 Mary dropped the milk. +14 Is Sandra in the bedroom? yes 10 +15 Sandra grabbed the milk there. +16 Daniel went back to the garden. +17 Is Sandra in the bedroom? yes 10 +1 Daniel travelled to the bedroom. +2 Mary went to the hallway. +3 Is Daniel in the bedroom? yes 1 +4 Daniel went to the hallway. +5 Mary travelled to the kitchen. +6 Is Daniel in the hallway? yes 4 +7 John picked up the football there. +8 Sandra moved to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 Sandra moved to the office. +11 John dropped the football. +12 Is Sandra in the office? yes 10 +13 John travelled to the bedroom. +14 Sandra journeyed to the bedroom. +15 Is John in the garden? no 13 +1 John went to the kitchen. +2 Mary went back to the garden. +3 Is John in the kitchen? yes 1 +4 Daniel went to the office. +5 Sandra travelled to the hallway. +6 Is Daniel in the office? yes 4 +7 Mary travelled to the office. +8 Sandra went back to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra travelled to the bathroom. +11 Sandra got the apple there. +12 Is Sandra in the bathroom? yes 10 +13 Sandra put down the apple. +14 Sandra grabbed the apple there. +15 Is Sandra in the bathroom? yes 10 +1 Sandra travelled to the office. +2 Mary grabbed the milk there. +3 Is Sandra in the office? yes 1 +4 Mary travelled to the garden. +5 Sandra went to the bathroom. +6 Is Sandra in the hallway? no 5 +7 John went to the bedroom. +8 Mary picked up the football there. +9 Is Mary in the garden? yes 4 +10 Sandra went back to the garden. +11 John journeyed to the office. +12 Is John in the office? yes 11 +13 Mary discarded the football. +14 Mary picked up the football there. +15 Is Sandra in the bedroom? no 10 +1 Daniel picked up the apple there. +2 Daniel discarded the apple. +3 John got the apple there. +4 Mary went to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 Mary journeyed to the garden. +7 Daniel journeyed to the bathroom. +8 Is Daniel in the hallway? no 7 +9 John journeyed to the kitchen. +10 Daniel went to the bedroom. +11 Is Mary in the garden? yes 6 +12 John took the milk there. +13 John dropped the milk. +14 Is John in the bathroom? no 9 +15 John got the milk there. +16 John dropped the apple there. +17 Is Daniel in the bedroom? yes 10 +1 Daniel took the milk there. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Mary travelled to the bedroom. +5 John moved to the hallway. +6 Is Mary in the garden? no 4 +7 Daniel moved to the bedroom. +8 Daniel went back to the kitchen. +9 Is Mary in the bedroom? yes 4 +10 John travelled to the bedroom. +11 Daniel picked up the football there. +12 Is John in the hallway? no 10 +13 Mary travelled to the office. +14 Daniel put down the milk there. +15 Is John in the bedroom? yes 10 +1 Daniel picked up the football there. +2 Daniel discarded the football. +3 Mary grabbed the football there. +4 Sandra moved to the garden. +5 Is Sandra in the garden? yes 4 +6 Daniel travelled to the kitchen. +7 Daniel went to the bathroom. +8 Is Daniel in the garden? no 7 +9 Daniel went to the garden. +10 Daniel journeyed to the kitchen. +11 Is Daniel in the kitchen? yes 10 +12 Mary left the football. +13 Daniel journeyed to the hallway. +14 Is Daniel in the office? no 13 +15 Mary moved to the bathroom. +16 Daniel took the milk there. +17 Is Daniel in the office? no 13 +1 John travelled to the kitchen. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra travelled to the kitchen. +5 Sandra went to the office. +6 Is John in the kitchen? yes 1 +7 Daniel travelled to the bedroom. +8 Daniel journeyed to the kitchen. +9 Is Sandra in the office? yes 5 +10 John went back to the bedroom. +11 Sandra travelled to the bathroom. +12 Is Sandra in the kitchen? no 11 +13 Mary journeyed to the bathroom. +14 Sandra picked up the milk there. +15 Is Mary in the kitchen? no 13 +1 John picked up the football there. +2 John dropped the football. +3 Mary got the apple there. +4 Mary left the apple. +5 John grabbed the football there. +6 Daniel picked up the milk there. +7 John got the apple there. +8 John discarded the football there. +9 Sandra took the football there. +10 Sandra discarded the football there. +11 Sandra got the football there. +12 Daniel dropped the milk. +13 Daniel picked up the milk there. +14 John left the apple. +15 John took the apple there. +16 Sandra left the football. +17 Mary journeyed to the hallway. +18 John went back to the office. +19 Is John in the office? yes 18 +20 Mary went to the kitchen. +21 John left the apple there. +22 Is Mary in the bathroom? no 20 +23 John went back to the kitchen. +24 Daniel discarded the milk. +25 Is Mary in the kitchen? yes 20 +26 Daniel got the milk there. +27 Sandra moved to the garden. +28 Is John in the kitchen? yes 23 +29 Daniel took the apple there. +30 Sandra went back to the kitchen. +31 Is Sandra in the bedroom? no 30 +1 Mary moved to the garden. +2 Sandra moved to the garden. +3 Is Sandra in the garden? yes 2 +4 John moved to the hallway. +5 John travelled to the office. +6 Is Mary in the kitchen? no 1 +7 Sandra took the football there. +8 John moved to the bathroom. +9 Is Sandra in the garden? yes 2 +10 Sandra picked up the apple there. +11 Sandra went to the office. +12 Is Sandra in the bedroom? no 11 +13 John journeyed to the garden. +14 Sandra dropped the apple there. +15 Is Sandra in the bathroom? no 11 +1 John took the football there. +2 Daniel journeyed to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Mary went to the garden. +5 John left the football. +6 Is Daniel in the garden? no 2 +7 Mary journeyed to the office. +8 Daniel travelled to the garden. +9 Is Mary in the office? yes 7 +10 Mary got the apple there. +11 Sandra moved to the garden. +12 Is Daniel in the garden? yes 8 +13 John grabbed the milk there. +14 John dropped the milk. +15 Is Daniel in the office? no 8 +1 Mary journeyed to the bedroom. +2 Sandra took the apple there. +3 Is Mary in the bedroom? yes 1 +4 Mary moved to the garden. +5 Mary moved to the bathroom. +6 Is Mary in the office? no 5 +7 Sandra got the football there. +8 Sandra travelled to the kitchen. +9 Is Sandra in the bathroom? no 8 +10 John journeyed to the hallway. +11 Daniel moved to the kitchen. +12 Is John in the garden? no 10 +13 Mary went back to the bedroom. +14 Sandra went back to the hallway. +15 Is John in the bedroom? no 10 +1 Sandra went back to the bathroom. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 Sandra went back to the hallway. +5 Sandra got the football there. +6 Is Sandra in the hallway? yes 4 +7 Mary grabbed the milk there. +8 Mary went to the kitchen. +9 Is Sandra in the office? no 4 +10 Sandra went to the kitchen. +11 Sandra left the football. +12 Is Mary in the garden? no 8 +13 Sandra took the football there. +14 Sandra travelled to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Mary picked up the football there. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 Daniel travelled to the bedroom. +5 Mary left the football. +6 Is Daniel in the kitchen? no 4 +7 Mary took the football there. +8 Daniel travelled to the office. +9 Is Daniel in the kitchen? no 8 +10 Sandra picked up the milk there. +11 Mary went back to the bedroom. +12 Is Mary in the garden? no 11 +13 Mary travelled to the bathroom. +14 John went back to the hallway. +15 Is Mary in the bathroom? yes 13 +1 Sandra travelled to the kitchen. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Sandra went back to the office. +5 Mary got the milk there. +6 Is Daniel in the kitchen? yes 2 +7 Mary left the milk there. +8 John travelled to the bathroom. +9 Is Daniel in the hallway? no 2 +10 Sandra picked up the football there. +11 John picked up the apple there. +12 Is John in the bathroom? yes 8 +13 Daniel journeyed to the office. +14 Sandra put down the football. +15 Is Daniel in the hallway? no 13 +1 Sandra moved to the hallway. +2 Sandra went to the office. +3 Is Sandra in the office? yes 2 +4 Daniel grabbed the football there. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel went back to the office. +8 Daniel discarded the football there. +9 Is Sandra in the hallway? no 5 +10 Sandra moved to the bathroom. +11 John went back to the bathroom. +12 Is John in the bedroom? no 11 +13 Mary went to the bathroom. +14 Mary travelled to the bedroom. +15 Is Sandra in the bathroom? yes 10 +1 Sandra went to the office. +2 Mary picked up the football there. +3 Is Sandra in the office? yes 1 +4 Sandra went back to the kitchen. +5 Sandra journeyed to the garden. +6 Is Sandra in the hallway? no 5 +7 Sandra journeyed to the office. +8 John went back to the hallway. +9 Is John in the hallway? yes 8 +10 Daniel travelled to the bedroom. +11 Mary discarded the football. +12 Is Sandra in the office? yes 7 +13 Daniel travelled to the office. +14 Mary grabbed the football there. +15 Is Daniel in the hallway? no 13 +1 Sandra went to the office. +2 John moved to the hallway. +3 Is John in the hallway? yes 2 +4 Sandra went back to the kitchen. +5 John went to the garden. +6 Is John in the bathroom? no 5 +7 John travelled to the office. +8 Sandra travelled to the office. +9 Is Sandra in the bedroom? no 8 +10 John went to the hallway. +11 Mary went back to the kitchen. +12 Is John in the hallway? yes 10 +13 John journeyed to the bathroom. +14 Sandra moved to the bedroom. +15 Is Sandra in the bathroom? no 14 +1 Sandra went to the office. +2 Daniel picked up the milk there. +3 Is Sandra in the office? yes 1 +4 John travelled to the bedroom. +5 Daniel put down the milk. +6 Is John in the kitchen? no 4 +7 John picked up the milk there. +8 Mary went back to the kitchen. +9 Is John in the bedroom? yes 4 +10 John got the football there. +11 John left the football. +12 Is Mary in the kitchen? yes 8 +13 Mary moved to the bedroom. +14 John picked up the apple there. +15 Is Mary in the bedroom? yes 13 +1 Daniel went back to the hallway. +2 John got the apple there. +3 Is Daniel in the hallway? yes 1 +4 John dropped the apple. +5 Mary got the apple there. +6 Is Daniel in the hallway? yes 1 +7 Daniel moved to the bedroom. +8 Sandra travelled to the hallway. +9 Is Daniel in the hallway? no 7 +10 Mary moved to the bathroom. +11 Daniel moved to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John travelled to the office. +14 Mary dropped the apple. +15 Is John in the office? yes 13 +1 Mary picked up the apple there. +2 Mary dropped the apple. +3 Daniel went to the bathroom. +4 Daniel journeyed to the garden. +5 Is Daniel in the garden? yes 4 +6 Daniel picked up the football there. +7 Daniel discarded the football. +8 Is Daniel in the bedroom? no 4 +9 John moved to the bedroom. +10 Sandra went back to the bedroom. +11 Is Daniel in the office? no 4 +12 Daniel went back to the bedroom. +13 Daniel journeyed to the kitchen. +14 Is Daniel in the kitchen? yes 13 +15 Sandra got the milk there. +16 Sandra journeyed to the kitchen. +17 Is Daniel in the garden? no 13 +1 Daniel took the apple there. +2 Daniel dropped the apple there. +3 Mary moved to the bathroom. +4 Daniel went back to the office. +5 Is Daniel in the kitchen? no 4 +6 Sandra moved to the bathroom. +7 Daniel took the football there. +8 Is Mary in the kitchen? no 3 +9 Daniel put down the football. +10 Mary moved to the kitchen. +11 Is Sandra in the bathroom? yes 6 +12 Sandra travelled to the hallway. +13 John went to the office. +14 Is Mary in the kitchen? yes 10 +15 Mary went back to the garden. +16 John journeyed to the hallway. +17 Is Mary in the bedroom? no 15 +1 Daniel travelled to the garden. +2 Sandra went back to the hallway. +3 Is Sandra in the bedroom? no 2 +4 John grabbed the football there. +5 Sandra travelled to the office. +6 Is Sandra in the garden? no 5 +7 Sandra went to the bedroom. +8 Sandra journeyed to the office. +9 Is Sandra in the office? yes 8 +10 John left the football there. +11 John went to the hallway. +12 Is John in the bathroom? no 11 +13 John took the apple there. +14 Mary took the milk there. +15 Is Sandra in the office? yes 8 +1 Daniel moved to the office. +2 Daniel travelled to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 John travelled to the bathroom. +5 John went back to the office. +6 Is John in the kitchen? no 5 +7 Daniel moved to the bathroom. +8 Daniel travelled to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Mary went back to the office. +11 John travelled to the garden. +12 Is Daniel in the bedroom? yes 8 +13 John journeyed to the kitchen. +14 John went back to the office. +15 Is John in the kitchen? no 14 +1 John travelled to the bedroom. +2 Mary got the football there. +3 Is John in the bedroom? yes 1 +4 Mary put down the football. +5 John took the milk there. +6 Is John in the hallway? no 1 +7 Sandra travelled to the garden. +8 John left the milk. +9 Is Sandra in the garden? yes 7 +10 Sandra picked up the football there. +11 Mary picked up the apple there. +12 Is Sandra in the garden? yes 7 +13 Mary left the apple. +14 John took the milk there. +15 Sandra went to the bathroom. +16 Daniel went back to the bedroom. +17 Is Daniel in the garden? no 16 +1 Daniel got the apple there. +2 John went back to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel journeyed to the hallway. +5 John moved to the office. +6 Is John in the office? yes 5 +7 Daniel dropped the apple there. +8 Mary went to the bedroom. +9 Is Daniel in the bedroom? no 4 +10 Sandra went back to the bedroom. +11 Mary took the milk there. +12 Is Sandra in the hallway? no 10 +13 Daniel journeyed to the bathroom. +14 Daniel took the football there. +15 Is Daniel in the bedroom? no 13 +1 Daniel went to the office. +2 Mary took the apple there. +3 Is Daniel in the office? yes 1 +4 Mary journeyed to the kitchen. +5 John got the football there. +6 Is Mary in the garden? no 4 +7 Mary put down the apple. +8 Mary grabbed the apple there. +9 Is Mary in the garden? no 4 +10 Mary dropped the apple. +11 Mary went back to the office. +12 Is Mary in the garden? no 11 +13 Daniel moved to the hallway. +14 John went to the bathroom. +15 Is Daniel in the hallway? yes 13 +1 John travelled to the garden. +2 Daniel journeyed to the hallway. +3 Is John in the bathroom? no 1 +4 Mary travelled to the bedroom. +5 John moved to the office. +6 Is John in the office? yes 5 +7 Mary moved to the garden. +8 Daniel went back to the bedroom. +9 Is Mary in the hallway? no 7 +10 Daniel moved to the garden. +11 Sandra took the football there. +12 Is Daniel in the garden? yes 10 +13 John picked up the milk there. +14 John put down the milk. +15 Is Daniel in the hallway? no 10 +1 John took the football there. +2 John went back to the hallway. +3 Is John in the kitchen? no 2 +4 Mary moved to the bathroom. +5 John moved to the bedroom. +6 Is Mary in the bedroom? no 4 +7 Mary went back to the kitchen. +8 Daniel went to the garden. +9 Is John in the bedroom? yes 5 +10 Sandra journeyed to the office. +11 John discarded the football. +12 Is John in the kitchen? no 5 +13 Mary moved to the garden. +14 Mary moved to the bedroom. +15 Is Sandra in the office? yes 10 +1 Mary grabbed the football there. +2 Mary travelled to the office. +3 Is Mary in the bedroom? no 2 +4 John went back to the hallway. +5 John travelled to the bedroom. +6 Is Mary in the office? yes 2 +7 Mary took the apple there. +8 Mary left the apple. +9 Is John in the bedroom? yes 5 +10 Mary got the apple there. +11 Daniel moved to the hallway. +12 Is Daniel in the office? no 11 +13 Mary put down the apple. +14 Sandra went back to the bedroom. +15 Is Daniel in the office? no 11 +1 Mary went to the hallway. +2 John travelled to the garden. +3 Is Mary in the kitchen? no 1 +4 John went back to the bedroom. +5 Daniel journeyed to the office. +6 Is Mary in the office? no 1 +7 Sandra travelled to the kitchen. +8 Sandra travelled to the office. +9 Is Sandra in the hallway? no 8 +10 John went to the garden. +11 John travelled to the office. +12 Is Sandra in the office? yes 8 +13 Mary moved to the kitchen. +14 Daniel moved to the hallway. +15 Is Mary in the bathroom? no 13 +1 John travelled to the garden. +2 John moved to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary travelled to the office. +5 Daniel picked up the apple there. +6 Is John in the bedroom? yes 2 +7 John went back to the garden. +8 Mary went back to the kitchen. +9 Is John in the kitchen? no 7 +10 John went to the kitchen. +11 Mary went back to the office. +12 Is John in the kitchen? yes 10 +13 Daniel journeyed to the bathroom. +14 John grabbed the football there. +15 Is Mary in the garden? no 11 +1 Daniel picked up the football there. +2 Mary travelled to the bedroom. +3 Is Mary in the garden? no 2 +4 Sandra moved to the office. +5 Mary journeyed to the bathroom. +6 Is Mary in the hallway? no 5 +7 Sandra travelled to the kitchen. +8 Mary moved to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Daniel put down the football. +11 Sandra moved to the bedroom. +12 Is Sandra in the hallway? no 11 +13 Daniel travelled to the bathroom. +14 Daniel went back to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Mary went to the office. +2 John travelled to the bedroom. +3 Is Mary in the hallway? no 1 +4 Mary went to the bedroom. +5 Mary travelled to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 John moved to the hallway. +8 Mary picked up the milk there. +9 Is Mary in the kitchen? no 5 +10 John got the apple there. +11 John journeyed to the bedroom. +12 Is John in the office? no 11 +13 Mary dropped the milk. +14 Mary went to the office. +15 Is John in the garden? no 11 +1 Daniel got the football there. +2 Mary took the apple there. +3 John travelled to the hallway. +4 Daniel went back to the bathroom. +5 Is John in the bedroom? no 3 +6 Mary left the apple. +7 Mary took the apple there. +8 Is Daniel in the bathroom? yes 4 +9 Daniel put down the football. +10 Daniel took the football there. +11 Is Daniel in the garden? no 4 +12 Daniel travelled to the bedroom. +13 Mary discarded the apple. +14 Is Daniel in the hallway? no 12 +15 John journeyed to the office. +16 Mary picked up the apple there. +17 Is John in the hallway? no 15 +1 Daniel got the football there. +2 Sandra went to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John moved to the hallway. +5 Daniel travelled to the bathroom. +6 Is Sandra in the garden? no 2 +7 Sandra picked up the apple there. +8 John journeyed to the bedroom. +9 Is John in the bathroom? no 8 +10 Sandra moved to the bathroom. +11 Sandra left the apple. +12 Is John in the office? no 8 +13 Daniel got the apple there. +14 Sandra went back to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Daniel moved to the bathroom. +2 John picked up the apple there. +3 Is Daniel in the garden? no 1 +4 Mary went back to the bedroom. +5 Sandra journeyed to the kitchen. +6 Is Daniel in the bathroom? yes 1 +7 Sandra moved to the hallway. +8 John went to the hallway. +9 Is Sandra in the hallway? yes 7 +10 John went to the office. +11 John dropped the apple. +12 Is Sandra in the garden? no 7 +13 Mary picked up the milk there. +14 John picked up the apple there. +15 Is John in the kitchen? no 10 +1 John moved to the kitchen. +2 Mary journeyed to the hallway. +3 Is John in the garden? no 1 +4 John moved to the office. +5 Daniel moved to the bedroom. +6 Is John in the hallway? no 4 +7 Mary went to the garden. +8 Daniel moved to the kitchen. +9 Is Mary in the garden? yes 7 +10 Daniel took the apple there. +11 John went to the bathroom. +12 Is Mary in the bedroom? no 7 +13 John got the milk there. +14 Sandra travelled to the hallway. +15 Is Daniel in the kitchen? yes 8 +1 Mary went back to the kitchen. +2 John went to the bathroom. +3 Is Mary in the kitchen? yes 1 +4 Mary got the milk there. +5 Mary left the milk. +6 Is Mary in the office? no 1 +7 Mary took the milk there. +8 Mary travelled to the hallway. +9 Is John in the garden? no 2 +10 John took the apple there. +11 John put down the apple. +12 Is Mary in the hallway? yes 8 +13 Mary took the football there. +14 Sandra moved to the hallway. +15 Is Mary in the office? no 8 +1 Daniel went to the bedroom. +2 Sandra got the apple there. +3 Is Daniel in the kitchen? no 1 +4 Daniel got the football there. +5 John journeyed to the bathroom. +6 Is John in the kitchen? no 5 +7 Sandra went to the bathroom. +8 Daniel put down the football. +9 Is Sandra in the office? no 7 +10 Mary journeyed to the office. +11 Sandra left the apple there. +12 Is Sandra in the bedroom? no 7 +13 Daniel picked up the football there. +14 Mary travelled to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary travelled to the office. +2 Daniel went back to the office. +3 Is Daniel in the bathroom? no 2 +4 Mary went to the hallway. +5 Mary moved to the garden. +6 Is Mary in the bedroom? no 5 +7 Daniel picked up the football there. +8 Mary journeyed to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Daniel moved to the kitchen. +11 Sandra journeyed to the kitchen. +12 Is Mary in the kitchen? no 8 +13 Sandra went back to the hallway. +14 Daniel discarded the football there. +15 Is Mary in the bathroom? yes 8 +1 Mary took the milk there. +2 Mary dropped the milk. +3 John moved to the hallway. +4 John moved to the bathroom. +5 Is John in the bathroom? yes 4 +6 Daniel went back to the hallway. +7 Daniel took the milk there. +8 Is John in the bathroom? yes 4 +9 Mary travelled to the bathroom. +10 Daniel discarded the milk. +11 Is Mary in the bedroom? no 9 +12 Mary moved to the kitchen. +13 Daniel went to the garden. +14 Is Mary in the bathroom? no 12 +15 Sandra went back to the hallway. +16 Sandra grabbed the milk there. +17 Is Mary in the bedroom? no 12 +1 Daniel grabbed the apple there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel dropped the apple there. +5 Mary travelled to the bathroom. +6 Is Mary in the kitchen? no 5 +7 Sandra went to the office. +8 Daniel travelled to the garden. +9 Is Daniel in the garden? yes 8 +10 John journeyed to the office. +11 Mary went back to the office. +12 Is Mary in the office? yes 11 +13 Daniel went back to the kitchen. +14 Daniel got the milk there. +15 Is Daniel in the bathroom? no 13 +1 Daniel picked up the apple there. +2 John went back to the office. +3 Is John in the hallway? no 2 +4 Daniel left the apple. +5 John grabbed the milk there. +6 Is John in the hallway? no 2 +7 John went to the hallway. +8 Mary journeyed to the kitchen. +9 Is John in the hallway? yes 7 +10 Daniel grabbed the apple there. +11 Daniel discarded the apple there. +12 Is John in the hallway? yes 7 +13 Mary got the apple there. +14 Mary put down the apple. +15 Is Mary in the bathroom? no 8 +1 Mary travelled to the bedroom. +2 Daniel travelled to the garden. +3 Is Daniel in the bathroom? no 2 +4 Daniel journeyed to the kitchen. +5 Daniel got the football there. +6 Is Daniel in the office? no 4 +7 Sandra journeyed to the bedroom. +8 Mary went back to the garden. +9 Is Daniel in the office? no 4 +10 Daniel went back to the office. +11 Sandra went back to the office. +12 Is Sandra in the office? yes 11 +13 Sandra travelled to the bedroom. +14 Daniel picked up the milk there. +15 Is Sandra in the bedroom? yes 13 +1 Sandra went back to the garden. +2 Mary went back to the hallway. +3 Is Mary in the bedroom? no 2 +4 Sandra journeyed to the bathroom. +5 Mary travelled to the bedroom. +6 Is Sandra in the bathroom? yes 4 +7 Mary journeyed to the kitchen. +8 Mary went to the office. +9 Is Mary in the garden? no 8 +10 Sandra took the apple there. +11 Sandra left the apple there. +12 Is Mary in the bathroom? no 8 +13 Sandra took the apple there. +14 Sandra discarded the apple. +15 Is Mary in the bathroom? no 8 +1 John took the football there. +2 John went to the hallway. +3 Is John in the hallway? yes 2 +4 John picked up the apple there. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bedroom? no 5 +7 John left the football. +8 Sandra went to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Sandra took the football there. +11 John dropped the apple. +12 Is Sandra in the garden? no 8 +13 John went to the bedroom. +14 Sandra put down the football. +15 Is Sandra in the hallway? yes 8 +1 Sandra grabbed the football there. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Mary travelled to the garden. +5 Daniel went to the office. +6 Is Daniel in the office? yes 5 +7 Daniel went back to the kitchen. +8 Daniel went back to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 John moved to the garden. +11 John went back to the kitchen. +12 Is Daniel in the bathroom? yes 8 +13 Sandra travelled to the garden. +14 John travelled to the bathroom. +15 Is Sandra in the garden? yes 13 +1 Mary grabbed the football there. +2 Daniel travelled to the garden. +3 Is Daniel in the hallway? no 2 +4 John moved to the garden. +5 Daniel journeyed to the bathroom. +6 Is John in the garden? yes 4 +7 Mary dropped the football. +8 Mary picked up the football there. +9 Is John in the garden? yes 4 +10 Daniel travelled to the office. +11 Daniel picked up the apple there. +12 Is Daniel in the bedroom? no 10 +13 John journeyed to the hallway. +14 Daniel dropped the apple. +15 Is Daniel in the office? yes 10 +1 Sandra picked up the football there. +2 Mary went to the garden. +3 Is Mary in the bathroom? no 2 +4 Mary went back to the kitchen. +5 Sandra moved to the office. +6 Is Mary in the hallway? no 4 +7 Sandra moved to the kitchen. +8 Sandra put down the football. +9 Is Sandra in the kitchen? yes 7 +10 Sandra grabbed the football there. +11 Daniel went to the bedroom. +12 Is Sandra in the kitchen? yes 7 +13 Daniel went to the hallway. +14 Mary travelled to the hallway. +15 Is Daniel in the office? no 13 +1 John took the apple there. +2 Daniel travelled to the office. +3 Is Daniel in the bedroom? no 2 +4 Mary took the milk there. +5 John left the apple there. +6 Is Daniel in the office? yes 2 +7 Daniel travelled to the hallway. +8 Mary went to the hallway. +9 Is Daniel in the bedroom? no 7 +10 John picked up the apple there. +11 Mary put down the milk. +12 Is Mary in the hallway? yes 8 +13 John left the apple. +14 Mary picked up the apple there. +15 Is Mary in the bedroom? no 8 +1 John went to the bedroom. +2 Mary took the apple there. +3 Is John in the bedroom? yes 1 +4 Mary journeyed to the hallway. +5 Daniel got the milk there. +6 Is John in the garden? no 1 +7 Daniel travelled to the hallway. +8 Daniel put down the milk. +9 Is Mary in the hallway? yes 4 +10 John travelled to the hallway. +11 John picked up the milk there. +12 Is Daniel in the hallway? yes 7 +13 Sandra took the football there. +14 Sandra journeyed to the bedroom. +15 Is John in the bedroom? no 10 +1 Sandra journeyed to the bathroom. +2 Mary moved to the garden. +3 Is Sandra in the bathroom? yes 1 +4 John went back to the kitchen. +5 Sandra journeyed to the bedroom. +6 Is Mary in the hallway? no 2 +7 John travelled to the office. +8 John took the apple there. +9 Is Mary in the office? no 2 +10 Sandra moved to the kitchen. +11 Daniel went back to the office. +12 Is Sandra in the kitchen? yes 10 +13 John discarded the apple. +14 John went back to the hallway. +15 Is Sandra in the bathroom? no 10 +1 Daniel travelled to the hallway. +2 Mary went to the hallway. +3 Is Mary in the bathroom? no 2 +4 Daniel picked up the football there. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Daniel went back to the bathroom. +8 Sandra took the apple there. +9 Is Daniel in the bathroom? yes 7 +10 John travelled to the bathroom. +11 Mary took the milk there. +12 Is Daniel in the bathroom? yes 7 +13 Sandra discarded the apple. +14 Mary discarded the milk. +15 Is John in the bathroom? yes 10 +1 Daniel took the apple there. +2 Sandra moved to the garden. +3 Is Sandra in the hallway? no 2 +4 Sandra grabbed the football there. +5 Mary moved to the garden. +6 Is Mary in the garden? yes 5 +7 John went to the garden. +8 Daniel discarded the apple. +9 Is John in the garden? yes 7 +10 Daniel moved to the garden. +11 Sandra left the football. +12 Is Mary in the office? no 5 +13 Mary travelled to the kitchen. +14 Mary went to the garden. +15 Is Daniel in the bathroom? no 10 +1 Sandra travelled to the garden. +2 Daniel travelled to the hallway. +3 Is Daniel in the bedroom? no 2 +4 Mary travelled to the hallway. +5 Sandra moved to the office. +6 Is Sandra in the kitchen? no 5 +7 Daniel journeyed to the kitchen. +8 Sandra went back to the bedroom. +9 Is Mary in the hallway? yes 4 +10 Mary moved to the kitchen. +11 Sandra travelled to the bathroom. +12 Is Sandra in the kitchen? no 11 +13 Daniel got the milk there. +14 John went back to the hallway. +15 Is John in the hallway? yes 14 +1 Mary went to the bedroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra journeyed to the garden. +5 Daniel went back to the office. +6 Is Daniel in the office? yes 5 +7 Daniel travelled to the garden. +8 Daniel went to the bathroom. +9 Is Daniel in the office? no 8 +10 John journeyed to the office. +11 Sandra went back to the bedroom. +12 Is John in the kitchen? no 10 +13 Daniel went back to the garden. +14 Mary journeyed to the office. +15 Is Daniel in the bedroom? no 13 +1 John went back to the bathroom. +2 John got the apple there. +3 Is John in the bathroom? yes 1 +4 John went to the hallway. +5 Sandra took the football there. +6 Is John in the hallway? yes 4 +7 John went to the kitchen. +8 Mary got the milk there. +9 Is John in the bedroom? no 7 +10 Sandra moved to the hallway. +11 John journeyed to the bedroom. +12 Is John in the hallway? no 11 +13 John left the apple. +14 Sandra dropped the football. +15 Is John in the bedroom? yes 11 +1 Daniel went back to the hallway. +2 Sandra moved to the hallway. +3 Is Daniel in the kitchen? no 1 +4 Daniel moved to the kitchen. +5 Daniel went to the hallway. +6 Is Daniel in the garden? no 5 +7 John moved to the kitchen. +8 Sandra travelled to the bedroom. +9 Is Daniel in the hallway? yes 5 +10 Daniel moved to the garden. +11 Daniel picked up the milk there. +12 Is Sandra in the bedroom? yes 8 +13 Daniel left the milk there. +14 John went back to the bedroom. +15 Is Sandra in the bathroom? no 8 +1 John got the football there. +2 Mary went to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John journeyed to the kitchen. +5 Mary went back to the office. +6 Is Mary in the office? yes 5 +7 Mary grabbed the apple there. +8 Sandra journeyed to the bathroom. +9 Is Mary in the garden? no 5 +10 John went to the bathroom. +11 Daniel went back to the office. +12 Is Daniel in the bathroom? no 11 +13 Mary went back to the bedroom. +14 John dropped the football. +15 Is John in the bathroom? yes 10 +1 Mary went back to the garden. +2 Sandra went back to the kitchen. +3 Is Mary in the kitchen? no 1 +4 Sandra picked up the apple there. +5 Sandra put down the apple. +6 Is Sandra in the kitchen? yes 2 +7 Sandra picked up the apple there. +8 Sandra took the milk there. +9 Is Sandra in the office? no 2 +10 Mary went back to the kitchen. +11 John travelled to the garden. +12 Is John in the bathroom? no 11 +13 John went to the hallway. +14 Mary went back to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary travelled to the office. +2 Mary went to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 John went back to the garden. +5 Sandra moved to the garden. +6 Is Mary in the bedroom? yes 2 +7 Sandra went to the kitchen. +8 Mary grabbed the football there. +9 Is Sandra in the bathroom? no 7 +10 Mary travelled to the bathroom. +11 Mary travelled to the garden. +12 Is Mary in the hallway? no 11 +13 Daniel moved to the bathroom. +14 Daniel moved to the office. +15 Is Mary in the office? no 11 +1 Mary moved to the bathroom. +2 John journeyed to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel moved to the bedroom. +5 Mary grabbed the football there. +6 Is Daniel in the kitchen? no 4 +7 Sandra went to the garden. +8 Mary discarded the football there. +9 Is Sandra in the garden? yes 7 +10 Mary picked up the football there. +11 Mary dropped the football. +12 Is Sandra in the garden? yes 7 +13 Mary got the football there. +14 Sandra travelled to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Sandra went back to the office. +2 Mary travelled to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Mary took the apple there. +5 Daniel went to the bedroom. +6 Is Sandra in the kitchen? no 1 +7 John moved to the bedroom. +8 Daniel travelled to the hallway. +9 Is Daniel in the hallway? yes 8 +10 Daniel went back to the bathroom. +11 Mary moved to the bathroom. +12 Is Daniel in the bathroom? yes 10 +13 Daniel went back to the bedroom. +14 Mary went back to the garden. +15 Is Daniel in the office? no 13 +1 Sandra took the apple there. +2 Sandra moved to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Daniel went back to the bathroom. +5 John grabbed the football there. +6 Is Daniel in the bathroom? yes 4 +7 John dropped the football. +8 Daniel journeyed to the kitchen. +9 Is Daniel in the hallway? no 8 +10 John took the football there. +11 Sandra left the apple. +12 Is Daniel in the kitchen? yes 8 +13 John got the apple there. +14 Mary travelled to the hallway. +15 Is Mary in the office? no 14 +1 Daniel journeyed to the bathroom. +2 John travelled to the hallway. +3 Is Daniel in the hallway? no 1 +4 John took the apple there. +5 Sandra travelled to the garden. +6 Is Sandra in the kitchen? no 5 +7 Daniel went to the kitchen. +8 John put down the apple. +9 Is Sandra in the hallway? no 5 +10 Daniel went back to the hallway. +11 Daniel grabbed the apple there. +12 Is Sandra in the hallway? no 5 +13 Daniel journeyed to the kitchen. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Mary took the football there. +2 Mary discarded the football. +3 Daniel travelled to the office. +4 John moved to the garden. +5 Is Daniel in the office? yes 3 +6 Daniel travelled to the hallway. +7 Mary took the football there. +8 Is Daniel in the hallway? yes 6 +9 Daniel moved to the bathroom. +10 Daniel took the apple there. +11 Is John in the bathroom? no 4 +12 Daniel went to the bedroom. +13 Sandra moved to the bathroom. +14 Is Sandra in the bathroom? yes 13 +15 Mary put down the football. +16 Mary journeyed to the garden. +17 Is Mary in the garden? yes 16 +1 Mary went to the office. +2 Mary moved to the hallway. +3 Is Mary in the kitchen? no 2 +4 Mary travelled to the kitchen. +5 Daniel picked up the football there. +6 Is Mary in the kitchen? yes 4 +7 John journeyed to the kitchen. +8 Daniel moved to the garden. +9 Is Mary in the kitchen? yes 4 +10 Sandra journeyed to the bathroom. +11 Sandra went to the hallway. +12 Is John in the office? no 7 +13 John went to the office. +14 Daniel dropped the football there. +15 Is John in the office? yes 13 +1 Daniel went back to the bedroom. +2 Sandra moved to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Mary went back to the office. +5 John moved to the bedroom. +6 Is Sandra in the office? no 2 +7 Sandra went to the bedroom. +8 Mary went to the kitchen. +9 Is Sandra in the garden? no 7 +10 Mary took the football there. +11 Mary dropped the football. +12 Is John in the bedroom? yes 5 +13 Sandra travelled to the office. +14 Mary went to the garden. +15 Is Mary in the garden? yes 14 +1 John went to the bedroom. +2 Daniel journeyed to the bathroom. +3 Is John in the bathroom? no 1 +4 Mary travelled to the bedroom. +5 Mary went to the kitchen. +6 Is John in the hallway? no 1 +7 John journeyed to the bathroom. +8 John went back to the kitchen. +9 Is Mary in the kitchen? yes 5 +10 Daniel grabbed the football there. +11 Sandra went to the kitchen. +12 Is John in the bedroom? no 8 +13 Sandra journeyed to the office. +14 John went to the office. +15 Is John in the office? yes 14 +1 Daniel went to the bathroom. +2 Mary travelled to the bathroom. +3 Is Mary in the kitchen? no 2 +4 Mary journeyed to the kitchen. +5 Mary went to the garden. +6 Is Mary in the bathroom? no 5 +7 Mary got the football there. +8 John moved to the bathroom. +9 Is Mary in the bathroom? no 5 +10 John went back to the bedroom. +11 Mary dropped the football. +12 Is John in the bedroom? yes 10 +13 Mary travelled to the kitchen. +14 Sandra moved to the bedroom. +15 Is John in the bedroom? yes 10 +1 Sandra moved to the garden. +2 Sandra picked up the apple there. +3 Is Sandra in the garden? yes 1 +4 John got the football there. +5 John dropped the football. +6 Is Sandra in the bathroom? no 1 +7 Mary travelled to the bedroom. +8 John went to the hallway. +9 Is Mary in the office? no 7 +10 Daniel moved to the bathroom. +11 Daniel travelled to the garden. +12 Is Mary in the bedroom? yes 7 +13 John travelled to the garden. +14 Sandra left the apple. +15 Is Daniel in the bedroom? no 11 +1 John went back to the bedroom. +2 John took the football there. +3 Is John in the bedroom? yes 1 +4 Sandra took the apple there. +5 Mary travelled to the office. +6 Is John in the office? no 1 +7 Sandra dropped the apple. +8 Mary travelled to the kitchen. +9 Is Mary in the office? no 8 +10 Daniel moved to the garden. +11 Daniel moved to the office. +12 Is Mary in the kitchen? yes 8 +13 Sandra went to the bedroom. +14 Mary picked up the apple there. +15 Is Sandra in the kitchen? no 13 +1 Mary went to the office. +2 John moved to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary travelled to the bedroom. +5 Mary went back to the hallway. +6 Is John in the bedroom? yes 2 +7 Mary moved to the kitchen. +8 John moved to the garden. +9 Is Mary in the garden? no 7 +10 Daniel went to the bedroom. +11 Daniel took the milk there. +12 Is Mary in the kitchen? yes 7 +13 Daniel journeyed to the office. +14 Mary grabbed the apple there. +15 Is Daniel in the hallway? no 13 +1 Daniel picked up the apple there. +2 Daniel journeyed to the hallway. +3 Is Daniel in the garden? no 2 +4 Sandra journeyed to the bedroom. +5 Mary picked up the milk there. +6 Is Sandra in the kitchen? no 4 +7 Daniel took the football there. +8 Mary dropped the milk. +9 Is Sandra in the hallway? no 4 +10 John moved to the office. +11 Sandra travelled to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 Daniel went back to the bedroom. +14 Daniel discarded the football. +15 Is John in the office? yes 10 +1 John got the football there. +2 John moved to the hallway. +3 Is John in the garden? no 2 +4 Daniel went back to the hallway. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary moved to the bedroom. +8 Sandra went to the hallway. +9 Is John in the bedroom? no 5 +10 Mary journeyed to the hallway. +11 Mary went to the bathroom. +12 Is Mary in the hallway? no 11 +13 John left the football. +14 John got the football there. +15 Is Mary in the bathroom? yes 11 +1 Daniel picked up the apple there. +2 Sandra picked up the milk there. +3 Sandra went to the kitchen. +4 Daniel left the apple. +5 Is Sandra in the bedroom? no 3 +6 Mary moved to the kitchen. +7 John journeyed to the hallway. +8 Is John in the hallway? yes 7 +9 Sandra moved to the bathroom. +10 Daniel got the apple there. +11 Is Mary in the kitchen? yes 6 +12 Daniel dropped the apple. +13 John travelled to the garden. +14 Is John in the bedroom? no 13 +15 Daniel took the apple there. +16 John took the football there. +17 Is John in the bedroom? no 13 +1 Mary went back to the bathroom. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John went to the garden. +5 Daniel went back to the bathroom. +6 Is John in the kitchen? no 4 +7 John moved to the bathroom. +8 Sandra journeyed to the bedroom. +9 Is Sandra in the office? no 8 +10 Mary journeyed to the office. +11 Sandra travelled to the hallway. +12 Is Mary in the office? yes 10 +13 Sandra moved to the garden. +14 Sandra travelled to the office. +15 Is Mary in the hallway? no 10 +1 Daniel went to the hallway. +2 Sandra went to the kitchen. +3 Is Sandra in the bathroom? no 2 +4 John moved to the hallway. +5 Sandra picked up the milk there. +6 Is John in the kitchen? no 4 +7 John got the apple there. +8 Sandra went to the bedroom. +9 Is John in the office? no 4 +10 Mary travelled to the kitchen. +11 Sandra went back to the garden. +12 Is Sandra in the kitchen? no 11 +13 John went to the garden. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Mary went back to the office. +2 Sandra went back to the hallway. +3 Is Mary in the garden? no 1 +4 Sandra moved to the bathroom. +5 Mary went to the bedroom. +6 Is Mary in the bathroom? no 5 +7 Daniel moved to the kitchen. +8 John grabbed the milk there. +9 Is Daniel in the kitchen? yes 7 +10 Daniel moved to the hallway. +11 John travelled to the garden. +12 Is Daniel in the hallway? yes 10 +13 Mary picked up the apple there. +14 Sandra went to the office. +15 Is Sandra in the bedroom? no 14 +1 Daniel went back to the garden. +2 John moved to the bedroom. +3 Is Daniel in the garden? yes 1 +4 Daniel travelled to the kitchen. +5 Daniel journeyed to the office. +6 Is Daniel in the office? yes 5 +7 Daniel went to the kitchen. +8 Mary went to the office. +9 Is Daniel in the kitchen? yes 7 +10 Mary picked up the football there. +11 Sandra went to the bedroom. +12 Is Daniel in the kitchen? yes 7 +13 Mary left the football. +14 John travelled to the garden. +15 Is Sandra in the bedroom? yes 11 +1 John travelled to the office. +2 Sandra went back to the bedroom. +3 Is John in the office? yes 1 +4 John took the milk there. +5 Mary journeyed to the garden. +6 Is Mary in the bedroom? no 5 +7 Daniel travelled to the office. +8 John left the milk. +9 Is Sandra in the kitchen? no 2 +10 John picked up the milk there. +11 John discarded the milk there. +12 Is Daniel in the kitchen? no 7 +13 Daniel grabbed the milk there. +14 John went back to the garden. +15 Is John in the garden? yes 14 +1 Daniel went to the kitchen. +2 Mary grabbed the football there. +3 Is Daniel in the bedroom? no 1 +4 Mary took the milk there. +5 John journeyed to the kitchen. +6 Is John in the kitchen? yes 5 +7 Daniel journeyed to the garden. +8 Mary discarded the football. +9 Is Daniel in the garden? yes 7 +10 Daniel grabbed the football there. +11 Daniel left the football there. +12 Is John in the garden? no 5 +13 Mary took the football there. +14 John went back to the hallway. +15 Is John in the hallway? yes 14 +1 Mary travelled to the kitchen. +2 Daniel got the apple there. +3 Is Mary in the kitchen? yes 1 +4 Daniel discarded the apple. +5 John moved to the office. +6 Is Mary in the office? no 1 +7 Sandra moved to the bedroom. +8 Sandra went to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Sandra travelled to the bedroom. +11 John went back to the garden. +12 Is Sandra in the bedroom? yes 10 +13 Mary moved to the garden. +14 Daniel took the apple there. +15 Is Mary in the garden? yes 13 +1 Daniel journeyed to the bedroom. +2 Sandra took the milk there. +3 Is Daniel in the hallway? no 1 +4 Daniel journeyed to the kitchen. +5 Daniel travelled to the hallway. +6 Is Daniel in the garden? no 5 +7 Sandra travelled to the kitchen. +8 John went to the garden. +9 Is Sandra in the kitchen? yes 7 +10 John moved to the kitchen. +11 Sandra put down the milk there. +12 Is John in the hallway? no 10 +13 Sandra grabbed the milk there. +14 Sandra moved to the hallway. +15 Is John in the kitchen? yes 10 +1 Mary picked up the milk there. +2 Mary discarded the milk. +3 Sandra took the football there. +4 John moved to the office. +5 Is John in the office? yes 4 +6 Daniel travelled to the kitchen. +7 Mary grabbed the milk there. +8 Is Daniel in the office? no 6 +9 Mary left the milk. +10 Mary went back to the bedroom. +11 Is Mary in the bedroom? yes 10 +12 John grabbed the milk there. +13 Mary moved to the hallway. +14 Is Mary in the garden? no 13 +15 Daniel journeyed to the garden. +16 John discarded the milk there. +17 Is Mary in the kitchen? no 13 +1 Mary grabbed the milk there. +2 Sandra went back to the bedroom. +3 Is Sandra in the kitchen? no 2 +4 Daniel went back to the garden. +5 John got the football there. +6 Is Sandra in the bedroom? yes 2 +7 Daniel went back to the kitchen. +8 John travelled to the office. +9 Is Daniel in the kitchen? yes 7 +10 Mary put down the milk. +11 Daniel journeyed to the office. +12 Is John in the office? yes 8 +13 John went to the kitchen. +14 John put down the football. +15 Is Daniel in the office? yes 11 +1 Sandra picked up the milk there. +2 Mary journeyed to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Sandra took the football there. +5 John went to the office. +6 Is Mary in the hallway? no 2 +7 Sandra dropped the football there. +8 Sandra put down the milk there. +9 Is Mary in the garden? no 2 +10 Sandra got the milk there. +11 Sandra put down the milk. +12 Is John in the office? yes 5 +13 Sandra got the milk there. +14 Sandra left the milk. +15 Sandra went back to the hallway. +16 Sandra went to the kitchen. +17 Is Sandra in the bedroom? no 16 +1 John travelled to the bedroom. +2 Mary travelled to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John got the apple there. +5 Daniel went to the kitchen. +6 Is Mary in the garden? no 2 +7 Mary moved to the hallway. +8 Mary got the football there. +9 Is Daniel in the kitchen? yes 5 +10 Mary dropped the football. +11 John put down the apple. +12 Is Mary in the office? no 7 +13 Mary moved to the office. +14 Daniel travelled to the bathroom. +15 Is Mary in the office? yes 13 +1 John went back to the kitchen. +2 Mary went back to the hallway. +3 Is John in the kitchen? yes 1 +4 Mary moved to the office. +5 Daniel went to the kitchen. +6 Is Mary in the office? yes 4 +7 John grabbed the apple there. +8 Daniel went back to the garden. +9 Is Mary in the office? yes 4 +10 Mary went back to the hallway. +11 Daniel took the milk there. +12 Is Mary in the hallway? yes 10 +13 Mary travelled to the bedroom. +14 Daniel moved to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Sandra journeyed to the hallway. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra picked up the apple there. +5 Mary picked up the milk there. +6 Is Sandra in the office? no 1 +7 Sandra went to the kitchen. +8 Daniel went back to the hallway. +9 Is John in the kitchen? yes 2 +10 Mary went to the bathroom. +11 Sandra journeyed to the hallway. +12 Is Sandra in the bedroom? no 11 +13 Mary left the milk. +14 Sandra left the apple. +15 Is Daniel in the hallway? yes 8 +1 John took the football there. +2 Sandra got the milk there. +3 Sandra put down the milk. +4 Daniel moved to the bathroom. +5 Is Daniel in the bedroom? no 4 +6 Mary moved to the bathroom. +7 Sandra journeyed to the garden. +8 Is Daniel in the garden? no 4 +9 John dropped the football. +10 Daniel went to the hallway. +11 Is Daniel in the garden? no 10 +12 Daniel travelled to the office. +13 Sandra went back to the bathroom. +14 Is Sandra in the office? no 13 +15 John got the football there. +16 Mary travelled to the hallway. +17 Is Daniel in the hallway? no 12 +1 Daniel moved to the office. +2 Mary went back to the bathroom. +3 Is Daniel in the garden? no 1 +4 Mary journeyed to the hallway. +5 John went to the bathroom. +6 Is John in the bathroom? yes 5 +7 Daniel went to the kitchen. +8 Sandra went to the garden. +9 Is Daniel in the kitchen? yes 7 +10 Sandra went back to the kitchen. +11 John travelled to the office. +12 Is John in the office? yes 11 +13 Mary went back to the bedroom. +14 Sandra went to the garden. +15 Is John in the bathroom? no 11 +1 Sandra took the football there. +2 Sandra took the apple there. +3 Mary went to the hallway. +4 Mary journeyed to the kitchen. +5 Is Mary in the office? no 4 +6 John moved to the office. +7 Sandra travelled to the bathroom. +8 Is John in the office? yes 6 +9 Daniel moved to the kitchen. +10 John got the milk there. +11 Is Sandra in the kitchen? no 7 +12 Daniel journeyed to the bathroom. +13 Sandra put down the football. +14 Is Daniel in the bathroom? yes 12 +15 Sandra journeyed to the office. +16 John dropped the milk there. +17 Is Sandra in the office? yes 15 +1 Daniel journeyed to the garden. +2 Sandra moved to the bedroom. +3 Is Daniel in the garden? yes 1 +4 Sandra travelled to the kitchen. +5 Mary moved to the garden. +6 Is Sandra in the kitchen? yes 4 +7 Sandra travelled to the office. +8 Daniel travelled to the bedroom. +9 Is Sandra in the office? yes 7 +10 Daniel moved to the kitchen. +11 Sandra got the apple there. +12 Is Daniel in the office? no 10 +13 John travelled to the garden. +14 Daniel travelled to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Daniel journeyed to the kitchen. +2 Daniel moved to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Daniel journeyed to the kitchen. +5 Mary went back to the kitchen. +6 Is Mary in the office? no 5 +7 Daniel took the milk there. +8 Daniel journeyed to the office. +9 Is Mary in the office? no 5 +10 John travelled to the kitchen. +11 Daniel travelled to the hallway. +12 Is Daniel in the hallway? yes 11 +13 Daniel journeyed to the office. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Sandra went back to the hallway. +2 Daniel got the football there. +3 Is Sandra in the bathroom? no 1 +4 Sandra moved to the garden. +5 Sandra went to the bathroom. +6 Is Sandra in the bedroom? no 5 +7 Sandra grabbed the milk there. +8 Mary travelled to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Sandra discarded the milk. +11 Daniel left the football there. +12 Is Mary in the bedroom? no 8 +13 John went to the bathroom. +14 John picked up the football there. +15 Is Mary in the bedroom? no 8 +1 Daniel went to the bathroom. +2 Sandra got the milk there. +3 Is Daniel in the bathroom? yes 1 +4 Daniel went to the kitchen. +5 Mary grabbed the apple there. +6 Is Daniel in the bedroom? no 4 +7 John travelled to the bedroom. +8 Daniel went to the garden. +9 Is Daniel in the garden? yes 8 +10 Sandra moved to the hallway. +11 Sandra moved to the garden. +12 Is Sandra in the garden? yes 11 +13 John journeyed to the kitchen. +14 Daniel picked up the football there. +15 Is Sandra in the garden? yes 11 +1 Mary went back to the bedroom. +2 Daniel took the football there. +3 Is Mary in the bedroom? yes 1 +4 John journeyed to the bathroom. +5 John took the milk there. +6 Is John in the bathroom? yes 4 +7 Daniel discarded the football. +8 Mary journeyed to the hallway. +9 Is John in the bathroom? yes 4 +10 John travelled to the garden. +11 Daniel went to the garden. +12 Is Mary in the garden? no 8 +13 Daniel went to the kitchen. +14 Sandra went to the hallway. +15 Is Daniel in the kitchen? yes 13 +1 John went back to the office. +2 John went to the bedroom. +3 Is John in the garden? no 2 +4 Mary went to the office. +5 John went to the hallway. +6 Is John in the office? no 5 +7 John went to the garden. +8 Daniel moved to the hallway. +9 Is Mary in the hallway? no 4 +10 Daniel journeyed to the bathroom. +11 John went back to the bedroom. +12 Is Daniel in the garden? no 10 +13 Daniel journeyed to the bedroom. +14 Daniel journeyed to the garden. +15 Is Daniel in the bathroom? no 14 +1 Sandra moved to the office. +2 Sandra got the apple there. +3 Is Sandra in the bathroom? no 1 +4 Sandra travelled to the kitchen. +5 John went back to the bedroom. +6 Is Sandra in the kitchen? yes 4 +7 Sandra travelled to the bedroom. +8 Daniel journeyed to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Sandra put down the apple there. +11 John took the apple there. +12 Is Daniel in the bedroom? yes 8 +13 John went back to the office. +14 John went to the hallway. +15 Is John in the office? no 14 +1 John moved to the bedroom. +2 Daniel grabbed the apple there. +3 Is John in the bedroom? yes 1 +4 Daniel travelled to the hallway. +5 Sandra went to the hallway. +6 Is John in the bedroom? yes 1 +7 Mary went back to the kitchen. +8 John went back to the kitchen. +9 Is Sandra in the hallway? yes 5 +10 Daniel put down the apple. +11 Daniel grabbed the apple there. +12 Is Sandra in the hallway? yes 5 +13 Sandra moved to the bedroom. +14 Daniel travelled to the office. +15 Is Sandra in the office? no 13 +1 John moved to the hallway. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 John journeyed to the kitchen. +5 Sandra grabbed the milk there. +6 Is John in the garden? no 4 +7 Daniel went to the hallway. +8 Sandra went to the kitchen. +9 Is John in the office? no 4 +10 Sandra dropped the milk there. +11 Mary journeyed to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 John picked up the milk there. +14 John discarded the milk there. +15 Is Sandra in the kitchen? yes 8 +1 Mary journeyed to the bedroom. +2 John went to the kitchen. +3 Is Mary in the bathroom? no 1 +4 Daniel went to the bathroom. +5 Daniel moved to the kitchen. +6 Is John in the kitchen? yes 2 +7 Sandra moved to the kitchen. +8 Sandra went back to the garden. +9 Is Sandra in the bathroom? no 8 +10 Daniel moved to the bathroom. +11 John went back to the bathroom. +12 Is Sandra in the garden? yes 8 +13 Daniel journeyed to the garden. +14 Mary picked up the milk there. +15 Is Daniel in the garden? yes 13 +1 Sandra travelled to the hallway. +2 Sandra went to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 Mary journeyed to the hallway. +5 Sandra took the milk there. +6 Is Mary in the hallway? yes 4 +7 John grabbed the apple there. +8 John dropped the apple. +9 Is Mary in the office? no 4 +10 Sandra travelled to the bathroom. +11 Mary went to the bedroom. +12 Is Sandra in the bathroom? yes 10 +13 Sandra travelled to the bedroom. +14 John picked up the apple there. +15 Is Mary in the bedroom? yes 11 +1 John took the apple there. +2 John discarded the apple. +3 Sandra went to the bedroom. +4 John grabbed the apple there. +5 Is Sandra in the bedroom? yes 3 +6 John left the apple there. +7 Mary went back to the bedroom. +8 Is Mary in the bedroom? yes 7 +9 Sandra went to the kitchen. +10 John went back to the office. +11 Is Sandra in the kitchen? yes 9 +12 Daniel got the apple there. +13 Daniel moved to the bedroom. +14 Is Daniel in the bathroom? no 13 +15 Sandra got the milk there. +16 Mary grabbed the football there. +17 Is John in the bedroom? no 10 +1 John moved to the bedroom. +2 Daniel moved to the bedroom. +3 Is John in the office? no 1 +4 Sandra journeyed to the kitchen. +5 Sandra went to the bedroom. +6 Is Sandra in the bathroom? no 5 +7 Mary went back to the bedroom. +8 Daniel grabbed the milk there. +9 Is Daniel in the bedroom? yes 2 +10 Daniel put down the milk. +11 Daniel journeyed to the garden. +12 Is Mary in the kitchen? no 7 +13 John picked up the milk there. +14 Mary journeyed to the bathroom. +15 Is Mary in the garden? no 14 +1 John moved to the office. +2 Daniel picked up the milk there. +3 Is John in the office? yes 1 +4 John went to the bathroom. +5 Sandra took the apple there. +6 Is John in the garden? no 4 +7 John journeyed to the kitchen. +8 Sandra journeyed to the bathroom. +9 Is John in the kitchen? yes 7 +10 Daniel put down the milk there. +11 Daniel journeyed to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 John journeyed to the bedroom. +14 Sandra went back to the office. +15 Is Daniel in the kitchen? yes 11 +1 Sandra moved to the office. +2 Sandra picked up the football there. +3 Is Sandra in the office? yes 1 +4 John went to the kitchen. +5 Mary journeyed to the garden. +6 Is John in the kitchen? yes 4 +7 John moved to the bathroom. +8 John moved to the office. +9 Is John in the bathroom? no 8 +10 Sandra travelled to the bathroom. +11 Mary picked up the milk there. +12 Is John in the kitchen? no 8 +13 John went back to the garden. +14 Sandra went to the bedroom. +15 Is Sandra in the office? no 14 +1 Mary moved to the bedroom. +2 John went back to the hallway. +3 Is Mary in the kitchen? no 1 +4 Daniel journeyed to the bathroom. +5 Mary went to the garden. +6 Is Mary in the garden? yes 5 +7 Mary went back to the hallway. +8 Mary journeyed to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Sandra journeyed to the hallway. +11 Sandra journeyed to the garden. +12 Is Mary in the hallway? no 8 +13 Mary travelled to the garden. +14 Mary went to the kitchen. +15 Is Sandra in the garden? yes 11 +1 Sandra went back to the kitchen. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 Sandra moved to the hallway. +5 John moved to the office. +6 Is Sandra in the hallway? yes 4 +7 John travelled to the garden. +8 Sandra moved to the office. +9 Is John in the garden? yes 7 +10 Mary went to the bathroom. +11 John took the milk there. +12 Is Sandra in the office? yes 8 +13 Mary grabbed the apple there. +14 John went back to the kitchen. +15 Is John in the kitchen? yes 14 +1 John went to the garden. +2 Sandra journeyed to the bedroom. +3 Is John in the garden? yes 1 +4 Mary moved to the bathroom. +5 Daniel went to the garden. +6 Is John in the garden? yes 1 +7 Mary travelled to the hallway. +8 Sandra went back to the office. +9 Is Mary in the bathroom? no 7 +10 Sandra journeyed to the kitchen. +11 Mary grabbed the apple there. +12 Is Daniel in the kitchen? no 5 +13 Mary discarded the apple. +14 Mary grabbed the apple there. +15 Is Sandra in the bathroom? no 10 +1 John went to the bathroom. +2 Daniel went back to the office. +3 Is Daniel in the bedroom? no 2 +4 Daniel picked up the milk there. +5 John moved to the office. +6 Is John in the kitchen? no 5 +7 John went back to the bedroom. +8 Daniel journeyed to the bathroom. +9 Is John in the bedroom? yes 7 +10 John travelled to the garden. +11 Sandra travelled to the kitchen. +12 Is Daniel in the hallway? no 8 +13 Daniel grabbed the apple there. +14 Sandra moved to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Daniel went back to the bathroom. +2 John travelled to the hallway. +3 Is John in the hallway? yes 2 +4 Sandra went back to the bathroom. +5 John took the apple there. +6 Is Daniel in the bedroom? no 1 +7 Mary picked up the milk there. +8 Sandra picked up the football there. +9 Is Sandra in the bathroom? yes 4 +10 Sandra travelled to the office. +11 Daniel went to the kitchen. +12 Is Daniel in the bathroom? no 11 +13 Mary moved to the kitchen. +14 John discarded the apple. +15 Is Daniel in the kitchen? yes 11 +1 Daniel travelled to the bedroom. +2 John got the milk there. +3 Is Daniel in the bedroom? yes 1 +4 John discarded the milk. +5 Mary travelled to the office. +6 Is Mary in the office? yes 5 +7 Daniel travelled to the hallway. +8 Mary went back to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary went to the hallway. +11 Daniel travelled to the garden. +12 Is Mary in the hallway? yes 10 +13 John grabbed the milk there. +14 Mary went back to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 John went back to the hallway. +2 Sandra went to the kitchen. +3 Is John in the kitchen? no 1 +4 John grabbed the football there. +5 John put down the football there. +6 Is Sandra in the bedroom? no 2 +7 Mary journeyed to the hallway. +8 Daniel went to the bedroom. +9 Is Sandra in the kitchen? yes 2 +10 Mary moved to the garden. +11 Mary journeyed to the bathroom. +12 Is Mary in the kitchen? no 11 +13 John moved to the bedroom. +14 John went to the kitchen. +15 Is John in the garden? no 14 +1 John journeyed to the kitchen. +2 Sandra grabbed the milk there. +3 Is John in the kitchen? yes 1 +4 Mary journeyed to the hallway. +5 Sandra left the milk. +6 Is Mary in the kitchen? no 4 +7 Daniel went back to the hallway. +8 Mary went back to the bathroom. +9 Is Daniel in the hallway? yes 7 +10 John moved to the garden. +11 Sandra picked up the milk there. +12 Is John in the garden? yes 10 +13 Daniel went back to the kitchen. +14 Mary moved to the hallway. +15 Is Mary in the hallway? yes 14 +1 Daniel got the football there. +2 Mary got the milk there. +3 Mary put down the milk there. +4 Mary moved to the bathroom. +5 Is Mary in the garden? no 4 +6 Daniel journeyed to the office. +7 Mary went back to the office. +8 Is Mary in the garden? no 7 +9 Daniel put down the football there. +10 Sandra journeyed to the hallway. +11 Is Sandra in the hallway? yes 10 +12 Mary went to the bedroom. +13 Sandra journeyed to the kitchen. +14 Is Mary in the bedroom? yes 12 +15 John travelled to the garden. +16 Sandra took the apple there. +17 Is Sandra in the office? no 13 +1 Sandra picked up the football there. +2 Sandra grabbed the milk there. +3 Daniel went back to the bathroom. +4 Mary moved to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 Sandra went to the kitchen. +7 Sandra went back to the bathroom. +8 Is Sandra in the bedroom? no 7 +9 Sandra went to the kitchen. +10 John travelled to the bedroom. +11 Is Sandra in the garden? no 9 +12 Mary moved to the office. +13 John went to the office. +14 Is Mary in the office? yes 12 +15 Mary went back to the bedroom. +16 Sandra moved to the bathroom. +17 Is Sandra in the garden? no 16 +1 Sandra travelled to the kitchen. +2 John took the apple there. +3 Is Sandra in the hallway? no 1 +4 Daniel went to the kitchen. +5 Mary went to the hallway. +6 Is Daniel in the garden? no 4 +7 Mary went to the garden. +8 Sandra went back to the garden. +9 Is Daniel in the garden? no 4 +10 Mary went back to the bedroom. +11 John grabbed the football there. +12 Is Mary in the bedroom? yes 10 +13 Sandra journeyed to the kitchen. +14 John dropped the apple there. +15 Is Sandra in the kitchen? yes 13 +1 Mary travelled to the garden. +2 Sandra took the milk there. +3 Is Mary in the garden? yes 1 +4 John moved to the hallway. +5 Sandra discarded the milk there. +6 Is John in the kitchen? no 4 +7 Sandra moved to the garden. +8 Daniel moved to the hallway. +9 Is Daniel in the kitchen? no 8 +10 John moved to the office. +11 Mary went back to the bathroom. +12 Is Sandra in the bedroom? no 7 +13 Sandra travelled to the bedroom. +14 Mary travelled to the kitchen. +15 Is Sandra in the garden? no 13 +1 Sandra travelled to the bedroom. +2 Mary travelled to the office. +3 Is Sandra in the bedroom? yes 1 +4 Mary moved to the bedroom. +5 Daniel travelled to the office. +6 Is Mary in the bedroom? yes 4 +7 Sandra grabbed the apple there. +8 John journeyed to the bathroom. +9 Is John in the bathroom? yes 8 +10 John grabbed the football there. +11 John moved to the office. +12 Is John in the office? yes 11 +13 Sandra discarded the apple. +14 Daniel travelled to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 John went back to the bedroom. +2 Daniel grabbed the milk there. +3 Is John in the bathroom? no 1 +4 John journeyed to the bathroom. +5 Mary went to the garden. +6 Is John in the bathroom? yes 4 +7 Daniel dropped the milk. +8 Sandra went to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 Daniel got the milk there. +11 Daniel went to the office. +12 Is Mary in the garden? yes 5 +13 Mary went to the kitchen. +14 John took the football there. +15 Is Daniel in the office? yes 11 +1 John travelled to the kitchen. +2 Mary went to the hallway. +3 Is John in the kitchen? yes 1 +4 Daniel went to the bathroom. +5 Daniel went back to the garden. +6 Is Daniel in the garden? yes 5 +7 Mary took the milk there. +8 John journeyed to the bedroom. +9 Is Daniel in the garden? yes 5 +10 Sandra moved to the hallway. +11 Mary dropped the milk. +12 Is John in the bedroom? yes 8 +13 John travelled to the office. +14 Sandra grabbed the milk there. +15 Is Sandra in the bathroom? no 10 +1 John went to the bathroom. +2 John grabbed the apple there. +3 Is John in the bathroom? yes 1 +4 John got the football there. +5 Mary went to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Sandra travelled to the office. +8 Sandra travelled to the kitchen. +9 Is Mary in the bedroom? yes 5 +10 Daniel moved to the bedroom. +11 John dropped the football. +12 Is Mary in the bedroom? yes 5 +13 Daniel picked up the milk there. +14 John discarded the apple. +15 Is Sandra in the kitchen? yes 8 +1 Daniel took the milk there. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 John went to the office. +5 John went to the garden. +6 Is John in the kitchen? no 5 +7 Mary went back to the bedroom. +8 Mary went to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary went to the kitchen. +11 Sandra journeyed to the bedroom. +12 Is John in the garden? yes 5 +13 Daniel travelled to the bathroom. +14 Mary went to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary went back to the office. +2 Mary got the milk there. +3 Is Mary in the garden? no 1 +4 Daniel grabbed the apple there. +5 Daniel journeyed to the kitchen. +6 Is Mary in the office? yes 1 +7 Mary travelled to the garden. +8 Mary travelled to the bedroom. +9 Is Mary in the kitchen? no 8 +10 Mary grabbed the football there. +11 Mary left the milk there. +12 Is Daniel in the garden? no 5 +13 Sandra travelled to the hallway. +14 John journeyed to the bedroom. +15 Is John in the office? no 14 +1 Daniel journeyed to the office. +2 Daniel picked up the football there. +3 Is Daniel in the kitchen? no 1 +4 Daniel put down the football. +5 Daniel travelled to the bathroom. +6 Is Daniel in the garden? no 5 +7 John took the milk there. +8 John went to the office. +9 Is John in the hallway? no 8 +10 Daniel went to the kitchen. +11 John discarded the milk. +12 Is John in the garden? no 8 +13 Daniel journeyed to the bedroom. +14 Mary went back to the bathroom. +15 Is Daniel in the hallway? no 13 +1 John went to the garden. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John grabbed the apple there. +5 Daniel moved to the garden. +6 Is Sandra in the kitchen? yes 2 +7 Sandra moved to the hallway. +8 Sandra journeyed to the bedroom. +9 Is Daniel in the office? no 5 +10 Sandra journeyed to the hallway. +11 John left the apple. +12 Is Sandra in the hallway? yes 10 +13 John travelled to the hallway. +14 Daniel picked up the football there. +15 Is Sandra in the hallway? yes 10 +1 Mary went to the bathroom. +2 John took the milk there. +3 Is Mary in the hallway? no 1 +4 Sandra moved to the office. +5 John dropped the milk. +6 Is Mary in the bathroom? yes 1 +7 Mary went to the office. +8 Daniel journeyed to the bathroom. +9 Is Sandra in the office? yes 4 +10 Mary journeyed to the hallway. +11 Sandra went to the bathroom. +12 Is Mary in the office? no 10 +13 Sandra travelled to the kitchen. +14 Daniel picked up the apple there. +15 Is Sandra in the hallway? no 13 +1 Daniel journeyed to the hallway. +2 John picked up the apple there. +3 Is Daniel in the hallway? yes 1 +4 John discarded the apple. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Sandra travelled to the garden. +8 John got the apple there. +9 Is Sandra in the garden? yes 7 +10 John travelled to the hallway. +11 Daniel moved to the bathroom. +12 Is Sandra in the garden? yes 7 +13 Mary went to the garden. +14 John journeyed to the bathroom. +15 Is John in the bedroom? no 14 +1 Sandra grabbed the football there. +2 Sandra left the football. +3 Mary journeyed to the bedroom. +4 Sandra grabbed the football there. +5 Is Mary in the bedroom? yes 3 +6 Mary travelled to the office. +7 Daniel took the milk there. +8 Is Mary in the office? yes 6 +9 Sandra left the football. +10 Daniel dropped the milk. +11 Is Mary in the office? yes 6 +12 John went back to the office. +13 Mary went back to the kitchen. +14 Is Mary in the hallway? no 13 +15 Daniel journeyed to the office. +16 Sandra grabbed the football there. +17 Is John in the bathroom? no 12 +1 Mary picked up the milk there. +2 Daniel picked up the football there. +3 Sandra went to the garden. +4 Mary put down the milk. +5 Is Sandra in the garden? yes 3 +6 Daniel journeyed to the office. +7 Mary grabbed the milk there. +8 Is Sandra in the kitchen? no 3 +9 Daniel put down the football. +10 Mary dropped the milk. +11 Is Daniel in the office? yes 6 +12 Mary journeyed to the garden. +13 Mary went to the office. +14 Is Mary in the office? yes 13 +15 Sandra moved to the office. +16 Sandra travelled to the garden. +17 Is Mary in the bedroom? no 13 +1 Mary moved to the office. +2 John journeyed to the bedroom. +3 Is Mary in the office? yes 1 +4 Mary journeyed to the garden. +5 Mary got the football there. +6 Is Mary in the bathroom? no 4 +7 John went to the hallway. +8 John travelled to the kitchen. +9 Is John in the kitchen? yes 8 +10 Mary put down the football. +11 Daniel journeyed to the bathroom. +12 Is Daniel in the hallway? no 11 +13 Daniel took the apple there. +14 John went to the hallway. +15 Is Daniel in the bathroom? yes 11 +1 Sandra journeyed to the bedroom. +2 Daniel travelled to the garden. +3 Is Sandra in the bathroom? no 1 +4 Mary travelled to the bedroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 John went back to the hallway. +8 Daniel moved to the bathroom. +9 Is Daniel in the bedroom? no 8 +10 Daniel went to the garden. +11 John went to the kitchen. +12 Is Daniel in the hallway? no 10 +13 Daniel journeyed to the bathroom. +14 Daniel went to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Daniel picked up the milk there. +2 Daniel dropped the milk. +3 Sandra went back to the bedroom. +4 Sandra got the football there. +5 Is Sandra in the garden? no 3 +6 John went back to the hallway. +7 John picked up the apple there. +8 Is John in the hallway? yes 6 +9 Mary moved to the office. +10 Daniel went to the kitchen. +11 Is John in the office? no 6 +12 Sandra left the football. +13 John discarded the apple. +14 Is Daniel in the kitchen? yes 10 +15 Sandra journeyed to the garden. +16 Sandra travelled to the kitchen. +17 Is Sandra in the office? no 16 +1 Daniel took the milk there. +2 Daniel travelled to the office. +3 Is Daniel in the garden? no 2 +4 Mary went back to the bedroom. +5 Mary journeyed to the hallway. +6 Is Mary in the hallway? yes 5 +7 John went back to the kitchen. +8 Mary journeyed to the garden. +9 Is Mary in the garden? yes 8 +10 Daniel journeyed to the garden. +11 Mary went to the bathroom. +12 Is John in the office? no 7 +13 John travelled to the bedroom. +14 Mary travelled to the bedroom. +15 Is John in the bedroom? yes 13 +1 Sandra went to the garden. +2 Daniel went back to the bedroom. +3 Is Sandra in the garden? yes 1 +4 Daniel got the apple there. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Daniel dropped the apple. +8 Mary went back to the kitchen. +9 Is Daniel in the bedroom? yes 2 +10 Daniel moved to the kitchen. +11 Mary moved to the office. +12 Is Mary in the bedroom? no 11 +13 John travelled to the bedroom. +14 Sandra took the milk there. +15 Is Mary in the office? yes 11 +1 John got the milk there. +2 Mary went back to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Daniel went to the bathroom. +5 Mary went back to the hallway. +6 Is Daniel in the bathroom? yes 4 +7 John travelled to the bathroom. +8 John dropped the milk. +9 Is Mary in the office? no 5 +10 Mary went back to the bedroom. +11 Daniel picked up the milk there. +12 Is John in the bathroom? yes 7 +13 Daniel moved to the garden. +14 Sandra moved to the hallway. +15 Is Daniel in the office? no 13 +1 Daniel journeyed to the garden. +2 Mary moved to the office. +3 Is Daniel in the bathroom? no 1 +4 Mary got the football there. +5 Sandra went to the office. +6 Is Mary in the garden? no 2 +7 Mary went to the garden. +8 Mary got the milk there. +9 Is Mary in the hallway? no 7 +10 Mary left the milk there. +11 John travelled to the bathroom. +12 Is John in the hallway? no 11 +13 Sandra picked up the apple there. +14 Daniel went to the bedroom. +15 Is John in the bathroom? yes 11 +1 Sandra moved to the kitchen. +2 Sandra moved to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John journeyed to the hallway. +5 Sandra took the football there. +6 Is John in the hallway? yes 4 +7 John travelled to the garden. +8 Daniel moved to the bathroom. +9 Is John in the kitchen? no 7 +10 Daniel moved to the office. +11 Sandra moved to the garden. +12 Is Daniel in the office? yes 10 +13 Mary moved to the kitchen. +14 Daniel went back to the garden. +15 Is Sandra in the garden? yes 11 +1 Mary went to the bathroom. +2 Sandra moved to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra picked up the apple there. +5 Mary travelled to the office. +6 Is Mary in the hallway? no 5 +7 Mary picked up the milk there. +8 Sandra moved to the office. +9 Is Mary in the bathroom? no 5 +10 Mary discarded the milk. +11 John went back to the bathroom. +12 Is Sandra in the bedroom? no 8 +13 Sandra took the milk there. +14 John went back to the kitchen. +15 Is Sandra in the hallway? no 8 +1 John took the football there. +2 Mary grabbed the milk there. +3 Sandra journeyed to the bedroom. +4 Mary left the milk. +5 Is Sandra in the hallway? no 3 +6 Sandra got the apple there. +7 John moved to the garden. +8 Is John in the garden? yes 7 +9 John dropped the football. +10 Mary got the football there. +11 Is John in the garden? yes 7 +12 John got the milk there. +13 John went back to the hallway. +14 Is John in the hallway? yes 13 +15 John went back to the bathroom. +16 John put down the milk. +17 Is John in the kitchen? no 15 +1 John moved to the bedroom. +2 John got the apple there. +3 Is John in the bedroom? yes 1 +4 John took the milk there. +5 John left the apple. +6 Is John in the bedroom? yes 1 +7 John dropped the milk. +8 Sandra went to the garden. +9 Is Sandra in the kitchen? no 8 +10 John journeyed to the garden. +11 Sandra grabbed the football there. +12 Is John in the bedroom? no 10 +13 John travelled to the hallway. +14 Sandra travelled to the kitchen. +15 Is John in the hallway? yes 13 +1 Daniel went to the hallway. +2 Mary travelled to the hallway. +3 Is Mary in the garden? no 2 +4 Daniel travelled to the kitchen. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Sandra travelled to the bedroom. +8 Mary got the milk there. +9 Is Daniel in the hallway? no 5 +10 John went back to the hallway. +11 Mary dropped the milk there. +12 Is Daniel in the hallway? no 5 +13 Daniel went back to the garden. +14 John grabbed the milk there. +15 Is Daniel in the garden? yes 13 +1 John got the football there. +2 Daniel went to the office. +3 Is Daniel in the office? yes 2 +4 John went to the garden. +5 Daniel went back to the kitchen. +6 Is Daniel in the garden? no 5 +7 Daniel travelled to the bathroom. +8 John went to the office. +9 Is Daniel in the bathroom? yes 7 +10 Daniel went to the hallway. +11 John discarded the football. +12 Is Daniel in the bathroom? no 10 +13 Sandra went back to the garden. +14 Daniel moved to the kitchen. +15 Is Sandra in the kitchen? no 13 +1 Sandra took the milk there. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra discarded the milk. +5 Sandra took the milk there. +6 Is John in the garden? no 2 +7 John went back to the bathroom. +8 John moved to the hallway. +9 Is John in the office? no 8 +10 John went back to the office. +11 Mary travelled to the hallway. +12 Is John in the office? yes 10 +13 John travelled to the bedroom. +14 Sandra went to the bedroom. +15 Is John in the hallway? no 13 +1 Mary went back to the garden. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Mary journeyed to the kitchen. +5 Sandra journeyed to the garden. +6 Is Mary in the kitchen? yes 4 +7 Mary went back to the garden. +8 Daniel travelled to the hallway. +9 Is Sandra in the garden? yes 5 +10 Daniel got the football there. +11 Mary travelled to the bedroom. +12 Is Daniel in the hallway? yes 8 +13 Daniel put down the football. +14 Mary journeyed to the hallway. +15 Is Mary in the garden? no 14 +1 Daniel travelled to the bathroom. +2 Mary picked up the milk there. +3 Is Daniel in the hallway? no 1 +4 Mary discarded the milk there. +5 John moved to the bedroom. +6 Is John in the bedroom? yes 5 +7 Mary picked up the milk there. +8 Sandra went to the garden. +9 Is John in the bathroom? no 5 +10 Sandra moved to the kitchen. +11 Sandra went back to the garden. +12 Is Sandra in the bedroom? no 11 +13 Mary went to the hallway. +14 Mary went to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Sandra journeyed to the bedroom. +2 Mary moved to the office. +3 Is Sandra in the office? no 1 +4 John travelled to the kitchen. +5 Sandra journeyed to the hallway. +6 Is Sandra in the hallway? yes 5 +7 Daniel journeyed to the bathroom. +8 Daniel got the apple there. +9 Is Sandra in the kitchen? no 5 +10 Sandra grabbed the milk there. +11 John grabbed the football there. +12 Is Sandra in the kitchen? no 5 +13 Daniel discarded the apple. +14 Sandra moved to the office. +15 Is Sandra in the hallway? no 14 +1 John travelled to the hallway. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel went back to the bedroom. +5 Mary went back to the garden. +6 Is Sandra in the bedroom? yes 2 +7 John grabbed the football there. +8 Daniel got the milk there. +9 Is Daniel in the bedroom? yes 4 +10 John moved to the office. +11 Daniel discarded the milk. +12 Is Mary in the bedroom? no 5 +13 Daniel picked up the milk there. +14 Daniel put down the milk there. +15 Is John in the hallway? no 10 +1 Sandra moved to the garden. +2 Daniel journeyed to the kitchen. +3 Is Daniel in the hallway? no 2 +4 John travelled to the office. +5 Sandra went back to the bedroom. +6 Is Daniel in the bedroom? no 2 +7 Mary travelled to the office. +8 Sandra grabbed the football there. +9 Is Daniel in the kitchen? yes 2 +10 Sandra dropped the football. +11 Daniel journeyed to the hallway. +12 Is Mary in the bedroom? no 7 +13 Daniel grabbed the milk there. +14 Mary journeyed to the bedroom. +15 Is Daniel in the bathroom? no 11 +1 Sandra went back to the bedroom. +2 Sandra got the milk there. +3 Is Sandra in the bedroom? yes 1 +4 John got the apple there. +5 John journeyed to the office. +6 Is Sandra in the bedroom? yes 1 +7 Sandra travelled to the office. +8 Sandra moved to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 John journeyed to the garden. +11 Mary travelled to the office. +12 Is Mary in the office? yes 11 +13 John moved to the hallway. +14 Sandra discarded the milk. +15 Is John in the hallway? yes 13 +1 Sandra took the football there. +2 John took the milk there. +3 Mary went to the bathroom. +4 John went back to the kitchen. +5 Is Mary in the hallway? no 3 +6 Daniel went to the bathroom. +7 Mary went back to the bedroom. +8 Is John in the kitchen? yes 4 +9 John travelled to the hallway. +10 John put down the milk. +11 Is John in the hallway? yes 9 +12 John went to the office. +13 Mary journeyed to the hallway. +14 Is John in the office? yes 12 +15 John went back to the garden. +16 Sandra journeyed to the hallway. +17 Is John in the garden? yes 15 +1 John got the football there. +2 Mary went back to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 John discarded the football. +5 Daniel went back to the garden. +6 Is Mary in the kitchen? yes 2 +7 John travelled to the kitchen. +8 Sandra went back to the hallway. +9 Is Daniel in the office? no 5 +10 Daniel went back to the bedroom. +11 Daniel got the football there. +12 Is Daniel in the bedroom? yes 10 +13 Sandra moved to the garden. +14 Daniel journeyed to the kitchen. +15 Is Sandra in the garden? yes 13 +1 Sandra went back to the garden. +2 Mary moved to the kitchen. +3 Is Mary in the office? no 2 +4 Mary journeyed to the bathroom. +5 John moved to the hallway. +6 Is Mary in the kitchen? no 4 +7 Sandra went to the office. +8 John went back to the garden. +9 Is Mary in the bathroom? yes 4 +10 Mary journeyed to the office. +11 Mary took the football there. +12 Is John in the garden? yes 8 +13 Mary travelled to the bedroom. +14 John journeyed to the office. +15 Is Mary in the bathroom? no 13 +1 Daniel went back to the office. +2 John moved to the hallway. +3 Is John in the kitchen? no 2 +4 Sandra grabbed the apple there. +5 Daniel went back to the garden. +6 Is John in the garden? no 2 +7 Daniel went back to the office. +8 Mary moved to the bedroom. +9 Is John in the kitchen? no 2 +10 Sandra left the apple. +11 Sandra grabbed the apple there. +12 Is Daniel in the kitchen? no 7 +13 Sandra travelled to the kitchen. +14 Mary travelled to the office. +15 Is Mary in the office? yes 14 +1 John journeyed to the bathroom. +2 Sandra moved to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra journeyed to the hallway. +5 John picked up the milk there. +6 Is Sandra in the bedroom? no 4 +7 Daniel got the football there. +8 John put down the milk. +9 Is Sandra in the garden? no 4 +10 John travelled to the kitchen. +11 Mary travelled to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Daniel journeyed to the bathroom. +14 Daniel put down the football. +15 Is John in the hallway? no 10 +1 John journeyed to the office. +2 Sandra took the football there. +3 Is John in the office? yes 1 +4 Sandra took the milk there. +5 Sandra moved to the bedroom. +6 Is Sandra in the office? no 5 +7 Sandra dropped the milk. +8 Daniel went back to the garden. +9 Is Sandra in the hallway? no 5 +10 Sandra dropped the football. +11 Sandra went to the office. +12 Is Sandra in the kitchen? no 11 +13 Daniel travelled to the office. +14 John moved to the bathroom. +15 Is Sandra in the office? yes 11 +1 John went to the office. +2 Sandra picked up the apple there. +3 Is John in the hallway? no 1 +4 Daniel went to the bedroom. +5 Mary moved to the garden. +6 Is Mary in the garden? yes 5 +7 Daniel went back to the kitchen. +8 John went to the hallway. +9 Is John in the office? no 8 +10 Sandra dropped the apple there. +11 Sandra picked up the apple there. +12 Is Mary in the garden? yes 5 +13 John travelled to the office. +14 John went to the bathroom. +15 Is John in the bathroom? yes 14 +1 Mary moved to the bedroom. +2 Daniel moved to the hallway. +3 Is Mary in the bedroom? yes 1 +4 Sandra went to the bedroom. +5 John went to the garden. +6 Is Mary in the hallway? no 1 +7 John went back to the bathroom. +8 Mary went back to the office. +9 Is John in the office? no 7 +10 John journeyed to the garden. +11 John travelled to the bathroom. +12 Is John in the bathroom? yes 11 +13 Sandra moved to the bathroom. +14 John went back to the kitchen. +15 Is John in the kitchen? yes 14 +1 Daniel journeyed to the office. +2 Mary went back to the garden. +3 Is Daniel in the office? yes 1 +4 John moved to the office. +5 John travelled to the bathroom. +6 Is Mary in the garden? yes 2 +7 Mary went to the office. +8 Daniel journeyed to the bedroom. +9 Is Mary in the office? yes 7 +10 Mary moved to the garden. +11 Mary went to the kitchen. +12 Is John in the hallway? no 5 +13 Mary went back to the office. +14 Sandra went to the kitchen. +15 Is Sandra in the bathroom? no 14 +1 John journeyed to the garden. +2 John got the apple there. +3 Is John in the hallway? no 1 +4 Mary moved to the office. +5 Sandra journeyed to the hallway. +6 Is Mary in the bathroom? no 4 +7 Daniel grabbed the football there. +8 John journeyed to the bathroom. +9 Is Sandra in the garden? no 5 +10 Daniel went to the office. +11 John put down the apple there. +12 Is Daniel in the office? yes 10 +13 Mary went to the kitchen. +14 Mary went to the bathroom. +15 Is Daniel in the bathroom? no 10 +1 Mary grabbed the apple there. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the office? no 2 +4 John grabbed the football there. +5 Daniel took the milk there. +6 Is Sandra in the bathroom? yes 2 +7 Mary travelled to the office. +8 Mary went back to the bathroom. +9 Is Sandra in the kitchen? no 2 +10 John went back to the bedroom. +11 John put down the football. +12 Is Mary in the kitchen? no 8 +13 John journeyed to the bathroom. +14 Daniel left the milk there. +15 Is John in the bathroom? yes 13 +1 John got the apple there. +2 Sandra moved to the bedroom. +3 Is Sandra in the office? no 2 +4 John went to the office. +5 Sandra grabbed the football there. +6 Is Sandra in the hallway? no 2 +7 John went back to the garden. +8 Sandra went back to the office. +9 Is John in the garden? yes 7 +10 John moved to the hallway. +11 Mary moved to the bedroom. +12 Is John in the hallway? yes 10 +13 Daniel went back to the hallway. +14 Sandra dropped the football there. +15 Is Mary in the office? no 11 +1 John moved to the office. +2 Sandra travelled to the kitchen. +3 Is John in the office? yes 1 +4 Mary went back to the bedroom. +5 Sandra grabbed the milk there. +6 Is Mary in the bedroom? yes 4 +7 Mary travelled to the kitchen. +8 Sandra discarded the milk. +9 Is Mary in the bedroom? no 7 +10 Mary journeyed to the garden. +11 Daniel moved to the garden. +12 Is Mary in the bathroom? no 10 +13 John journeyed to the bedroom. +14 John went to the bathroom. +15 Is John in the bathroom? yes 14 +1 Sandra took the apple there. +2 Daniel moved to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel moved to the bedroom. +5 John went to the hallway. +6 Is Daniel in the garden? no 4 +7 John went to the kitchen. +8 John journeyed to the office. +9 Is Daniel in the bedroom? yes 4 +10 John went to the garden. +11 Sandra discarded the apple. +12 Is John in the garden? yes 10 +13 Sandra moved to the kitchen. +14 John went to the kitchen. +15 Is John in the kitchen? yes 14 +1 John moved to the kitchen. +2 Mary picked up the football there. +3 Is John in the garden? no 1 +4 John moved to the bedroom. +5 Mary journeyed to the kitchen. +6 Is John in the bedroom? yes 4 +7 Mary put down the football. +8 Mary grabbed the football there. +9 Is Mary in the bathroom? no 5 +10 John went to the kitchen. +11 Sandra went to the garden. +12 Is Sandra in the garden? yes 11 +13 Mary moved to the hallway. +14 John went to the office. +15 Is John in the bathroom? no 14 +1 Sandra journeyed to the hallway. +2 Daniel travelled to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Mary went to the hallway. +5 Sandra went to the kitchen. +6 Is Mary in the garden? no 4 +7 Sandra got the football there. +8 Daniel travelled to the hallway. +9 Is Sandra in the kitchen? yes 5 +10 Mary went to the garden. +11 Mary took the milk there. +12 Is Daniel in the hallway? yes 8 +13 John went to the kitchen. +14 John went back to the garden. +15 Is John in the hallway? no 14 +1 John grabbed the apple there. +2 Sandra moved to the office. +3 Is Sandra in the garden? no 2 +4 John picked up the football there. +5 Daniel travelled to the kitchen. +6 Is Daniel in the hallway? no 5 +7 Sandra got the milk there. +8 Sandra dropped the milk. +9 Is Sandra in the office? yes 2 +10 Daniel journeyed to the office. +11 Sandra journeyed to the garden. +12 Is Daniel in the office? yes 10 +13 John discarded the apple there. +14 Daniel took the milk there. +15 Is Sandra in the garden? yes 11 +1 Sandra went to the garden. +2 Daniel took the milk there. +3 Is Sandra in the office? no 1 +4 Daniel discarded the milk. +5 Daniel went to the hallway. +6 Is Daniel in the bathroom? no 5 +7 John travelled to the kitchen. +8 Sandra grabbed the milk there. +9 Is John in the bedroom? no 7 +10 Daniel travelled to the kitchen. +11 Sandra went to the kitchen. +12 Is Daniel in the hallway? no 10 +13 Mary travelled to the hallway. +14 Daniel journeyed to the garden. +15 Is Daniel in the hallway? no 14 +1 Sandra travelled to the bathroom. +2 John picked up the football there. +3 Is Sandra in the bathroom? yes 1 +4 Sandra moved to the kitchen. +5 Mary travelled to the bathroom. +6 Is Sandra in the kitchen? yes 4 +7 John left the football. +8 Mary got the football there. +9 Is Sandra in the kitchen? yes 4 +10 Mary journeyed to the bedroom. +11 John went to the garden. +12 Is Mary in the bedroom? yes 10 +13 Sandra went to the bathroom. +14 Sandra travelled to the hallway. +15 Is Sandra in the bedroom? no 14 +1 Mary journeyed to the garden. +2 Mary got the football there. +3 Is Mary in the hallway? no 1 +4 Mary dropped the football. +5 Mary went to the office. +6 Is Mary in the office? yes 5 +7 Sandra went to the office. +8 John journeyed to the office. +9 Is Mary in the kitchen? no 5 +10 Mary journeyed to the garden. +11 John journeyed to the kitchen. +12 Is Mary in the bedroom? no 10 +13 Mary journeyed to the office. +14 John took the milk there. +15 Is John in the office? no 11 +1 Mary journeyed to the bedroom. +2 Daniel journeyed to the hallway. +3 Is Daniel in the hallway? yes 2 +4 John went to the kitchen. +5 John travelled to the bedroom. +6 Is Daniel in the bathroom? no 2 +7 John travelled to the garden. +8 John picked up the apple there. +9 Is Daniel in the hallway? yes 2 +10 Mary went back to the kitchen. +11 John grabbed the football there. +12 Is Mary in the kitchen? yes 10 +13 John put down the apple. +14 Daniel went to the bathroom. +15 Is Daniel in the bedroom? no 14 +1 John went back to the office. +2 Sandra travelled to the bathroom. +3 Is Sandra in the kitchen? no 2 +4 Mary travelled to the bedroom. +5 John went back to the bathroom. +6 Is John in the bathroom? yes 5 +7 John journeyed to the hallway. +8 John moved to the kitchen. +9 Is John in the kitchen? yes 8 +10 Mary got the milk there. +11 John got the apple there. +12 Is John in the garden? no 8 +13 Mary went to the bathroom. +14 Daniel went to the hallway. +15 Is Daniel in the hallway? yes 14 +1 Mary picked up the milk there. +2 Mary journeyed to the hallway. +3 Is Mary in the bedroom? no 2 +4 John went to the kitchen. +5 Daniel took the football there. +6 Is Mary in the office? no 2 +7 Daniel went to the bathroom. +8 Mary left the milk there. +9 Is Mary in the garden? no 2 +10 Daniel went back to the kitchen. +11 Daniel journeyed to the office. +12 Is Daniel in the office? yes 11 +13 Mary went back to the office. +14 John went to the garden. +15 Is John in the kitchen? no 14 +1 Mary took the milk there. +2 Sandra took the football there. +3 Sandra discarded the football. +4 Mary moved to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 Mary picked up the apple there. +7 Sandra took the football there. +8 Is Mary in the kitchen? no 4 +9 Mary travelled to the hallway. +10 Daniel went back to the kitchen. +11 Is Mary in the bedroom? no 9 +12 John went to the hallway. +13 Mary dropped the apple there. +14 Is Daniel in the kitchen? yes 10 +15 Mary got the apple there. +16 Sandra dropped the football. +17 Is Daniel in the garden? no 10 +1 Sandra went to the bedroom. +2 Mary went back to the bathroom. +3 Is Sandra in the garden? no 1 +4 Daniel took the apple there. +5 Mary went back to the office. +6 Is Mary in the bedroom? no 5 +7 John moved to the hallway. +8 John went to the kitchen. +9 Is Mary in the office? yes 5 +10 Daniel moved to the hallway. +11 Sandra went back to the hallway. +12 Is Sandra in the bathroom? no 11 +13 Daniel journeyed to the garden. +14 Sandra travelled to the bedroom. +15 Is Daniel in the garden? yes 13 +1 Daniel went back to the office. +2 Mary picked up the milk there. +3 Is Daniel in the garden? no 1 +4 Sandra travelled to the garden. +5 Mary put down the milk there. +6 Is Sandra in the garden? yes 4 +7 Sandra moved to the hallway. +8 John travelled to the hallway. +9 Is Sandra in the kitchen? no 7 +10 Sandra moved to the office. +11 Mary picked up the milk there. +12 Is Sandra in the office? yes 10 +13 Mary left the milk. +14 Mary took the milk there. +15 Is John in the hallway? yes 8 +1 Sandra took the football there. +2 Sandra picked up the apple there. +3 John went back to the office. +4 Sandra dropped the apple there. +5 Is John in the office? yes 3 +6 Mary went back to the kitchen. +7 Daniel moved to the bedroom. +8 Is John in the office? yes 3 +9 Daniel went to the bathroom. +10 Mary went to the hallway. +11 Is Daniel in the bathroom? yes 9 +12 John journeyed to the kitchen. +13 Mary moved to the garden. +14 Is John in the bedroom? no 12 +15 Sandra took the apple there. +16 Sandra went to the kitchen. +17 Is Mary in the garden? yes 13 +1 Daniel grabbed the football there. +2 Daniel went to the garden. +3 Is Daniel in the kitchen? no 2 +4 Mary went back to the kitchen. +5 Sandra went back to the office. +6 Is Daniel in the office? no 2 +7 Sandra went back to the hallway. +8 Daniel went to the kitchen. +9 Is Sandra in the bedroom? no 7 +10 Daniel discarded the football. +11 Daniel went back to the garden. +12 Is Daniel in the garden? yes 11 +13 John went to the office. +14 John went to the garden. +15 Is John in the garden? yes 14 +1 Mary went to the hallway. +2 John went back to the hallway. +3 Is Mary in the bedroom? no 1 +4 Mary went back to the bedroom. +5 John went to the bedroom. +6 Is John in the bedroom? yes 5 +7 John went back to the bathroom. +8 John got the football there. +9 Is John in the garden? no 7 +10 Mary travelled to the hallway. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 John went to the hallway. +14 John left the football. +15 Is John in the hallway? yes 13 +1 Mary went to the bathroom. +2 Daniel journeyed to the garden. +3 Is Mary in the hallway? no 1 +4 Mary took the football there. +5 Mary discarded the football. +6 Is Mary in the garden? no 1 +7 Sandra journeyed to the office. +8 Mary picked up the football there. +9 Is Sandra in the kitchen? no 7 +10 Mary moved to the office. +11 Mary went back to the garden. +12 Is Mary in the bathroom? no 11 +13 Mary journeyed to the office. +14 Mary discarded the football. +15 Is Mary in the office? yes 13 +1 Sandra moved to the office. +2 John went back to the bedroom. +3 Is Sandra in the hallway? no 1 +4 Sandra journeyed to the hallway. +5 Mary moved to the kitchen. +6 Is Sandra in the hallway? yes 4 +7 Sandra moved to the office. +8 John moved to the hallway. +9 Is Sandra in the office? yes 7 +10 Mary got the football there. +11 John went to the bathroom. +12 Is Sandra in the kitchen? no 7 +13 Sandra moved to the hallway. +14 John travelled to the bedroom. +15 Is John in the office? no 14 +1 Daniel went back to the office. +2 Mary went back to the garden. +3 Is Mary in the garden? yes 2 +4 Mary went to the hallway. +5 Daniel took the milk there. +6 Is Mary in the hallway? yes 4 +7 Sandra picked up the apple there. +8 Mary journeyed to the office. +9 Is Mary in the office? yes 8 +10 Daniel dropped the milk. +11 Mary picked up the milk there. +12 Is Mary in the bedroom? no 8 +13 Sandra dropped the apple. +14 Daniel went back to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Daniel travelled to the garden. +2 Sandra travelled to the office. +3 Is Daniel in the office? no 1 +4 Sandra went to the hallway. +5 Mary went back to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary travelled to the office. +8 John went to the office. +9 Is Mary in the bathroom? no 7 +10 Daniel moved to the kitchen. +11 Mary moved to the hallway. +12 Is John in the garden? no 8 +13 Sandra moved to the bathroom. +14 Sandra took the football there. +15 Is Mary in the office? no 11 +1 John took the milk there. +2 Mary travelled to the garden. +3 Is Mary in the garden? yes 2 +4 Sandra travelled to the office. +5 Daniel went back to the office. +6 Is Sandra in the office? yes 4 +7 John dropped the milk. +8 Sandra grabbed the football there. +9 Is Daniel in the office? yes 5 +10 Sandra dropped the football. +11 John took the milk there. +12 Is Daniel in the office? yes 5 +13 John went to the office. +14 John got the apple there. +15 Is John in the office? yes 13 +1 Mary moved to the kitchen. +2 John went back to the hallway. +3 Is John in the garden? no 2 +4 John moved to the bathroom. +5 Sandra journeyed to the bedroom. +6 Is John in the garden? no 4 +7 Daniel journeyed to the bedroom. +8 John went back to the hallway. +9 Is Sandra in the kitchen? no 5 +10 Daniel journeyed to the kitchen. +11 Mary travelled to the hallway. +12 Is John in the kitchen? no 8 +13 Sandra journeyed to the garden. +14 Daniel picked up the apple there. +15 Is Daniel in the office? no 10 +1 Mary moved to the office. +2 Mary moved to the kitchen. +3 Is Mary in the bedroom? no 2 +4 Daniel grabbed the apple there. +5 Mary moved to the hallway. +6 Is Mary in the hallway? yes 5 +7 Sandra journeyed to the bedroom. +8 Daniel went to the bedroom. +9 Is Mary in the garden? no 5 +10 Sandra moved to the office. +11 Sandra went to the bedroom. +12 Is Sandra in the garden? no 11 +13 Daniel left the apple. +14 Daniel got the apple there. +15 Is Sandra in the kitchen? no 11 +1 Daniel journeyed to the bathroom. +2 John went to the kitchen. +3 Is Daniel in the hallway? no 1 +4 Sandra moved to the bathroom. +5 Mary went back to the garden. +6 Is Sandra in the kitchen? no 4 +7 Sandra went to the kitchen. +8 Mary went back to the kitchen. +9 Is Sandra in the garden? no 7 +10 Sandra moved to the bedroom. +11 John went to the hallway. +12 Is John in the bedroom? no 11 +13 Sandra picked up the football there. +14 Sandra travelled to the bathroom. +15 Is John in the hallway? yes 11 +1 Sandra travelled to the bathroom. +2 Mary moved to the bedroom. +3 Is Sandra in the bathroom? yes 1 +4 John got the football there. +5 John left the football there. +6 Is Mary in the bathroom? no 2 +7 John travelled to the kitchen. +8 Daniel moved to the hallway. +9 Is John in the hallway? no 7 +10 Mary journeyed to the office. +11 Daniel journeyed to the bathroom. +12 Is John in the garden? no 7 +13 John went back to the hallway. +14 Sandra grabbed the football there. +15 Is John in the hallway? yes 13 +1 Sandra went back to the office. +2 John went back to the garden. +3 Is Sandra in the office? yes 1 +4 John journeyed to the bathroom. +5 Sandra went back to the bedroom. +6 Is Sandra in the kitchen? no 5 +7 Sandra went back to the office. +8 Mary went to the garden. +9 Is John in the bedroom? no 4 +10 Daniel got the football there. +11 Daniel put down the football. +12 Is Mary in the garden? yes 8 +13 Sandra took the football there. +14 Sandra discarded the football there. +15 Is Mary in the garden? yes 8 +1 Sandra moved to the bedroom. +2 Sandra picked up the milk there. +3 Is Sandra in the kitchen? no 1 +4 Mary got the football there. +5 John went back to the bathroom. +6 Is Sandra in the bedroom? yes 1 +7 Mary put down the football. +8 Mary went back to the office. +9 Is John in the hallway? no 5 +10 Mary journeyed to the kitchen. +11 Daniel went to the kitchen. +12 Is Mary in the garden? no 10 +13 Daniel took the football there. +14 Mary moved to the hallway. +15 Is Daniel in the kitchen? yes 11 +1 Daniel moved to the bathroom. +2 John travelled to the hallway. +3 Is John in the hallway? yes 2 +4 John went to the bedroom. +5 Sandra grabbed the milk there. +6 Is John in the kitchen? no 4 +7 Mary went back to the bathroom. +8 Sandra picked up the football there. +9 Is John in the garden? no 4 +10 Sandra went back to the hallway. +11 Daniel moved to the bedroom. +12 Is Mary in the bathroom? yes 7 +13 Daniel went back to the bathroom. +14 Daniel went to the office. +15 Is Daniel in the kitchen? no 14 +1 Sandra took the apple there. +2 Sandra went back to the office. +3 Is Sandra in the office? yes 2 +4 Daniel travelled to the bedroom. +5 Sandra left the apple. +6 Is Sandra in the bedroom? no 2 +7 Daniel went back to the garden. +8 Daniel took the football there. +9 Is Daniel in the bathroom? no 7 +10 John took the apple there. +11 Daniel journeyed to the bedroom. +12 Is Daniel in the office? no 11 +13 John left the apple. +14 Mary journeyed to the hallway. +15 Is Daniel in the bedroom? yes 11 +1 Mary moved to the bathroom. +2 Daniel picked up the football there. +3 Is Mary in the garden? no 1 +4 Mary travelled to the garden. +5 Mary journeyed to the bedroom. +6 Is Mary in the kitchen? no 5 +7 Sandra went to the bedroom. +8 Daniel grabbed the apple there. +9 Is Sandra in the bedroom? yes 7 +10 Daniel put down the football. +11 Daniel discarded the apple there. +12 Is Mary in the bedroom? yes 5 +13 Sandra went back to the garden. +14 Sandra went back to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John travelled to the bedroom. +2 John travelled to the bathroom. +3 Is John in the garden? no 2 +4 Daniel travelled to the bathroom. +5 John travelled to the hallway. +6 Is John in the hallway? yes 5 +7 Daniel went to the kitchen. +8 Sandra travelled to the bedroom. +9 Is Daniel in the kitchen? yes 7 +10 Daniel went back to the bedroom. +11 John went to the bathroom. +12 Is John in the bedroom? no 11 +13 Daniel picked up the milk there. +14 Daniel dropped the milk. +15 Is John in the garden? no 11 +1 Daniel travelled to the kitchen. +2 John journeyed to the bedroom. +3 Is John in the bedroom? yes 2 +4 Daniel got the football there. +5 Mary travelled to the bedroom. +6 Is Mary in the kitchen? no 5 +7 Mary travelled to the office. +8 Sandra went back to the bathroom. +9 Is John in the office? no 2 +10 Daniel put down the football. +11 Daniel went to the garden. +12 Is Sandra in the office? no 8 +13 Daniel grabbed the apple there. +14 John travelled to the garden. +15 Is Sandra in the office? no 8 +1 Daniel grabbed the football there. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra went back to the garden. +5 Daniel journeyed to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Daniel went back to the garden. +8 Daniel left the football. +9 Is Daniel in the garden? yes 7 +10 Sandra travelled to the bathroom. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 John travelled to the office. +14 Daniel picked up the football there. +15 Is John in the office? yes 13 +1 Daniel moved to the bedroom. +2 Sandra got the apple there. +3 Is Daniel in the bedroom? yes 1 +4 Daniel went back to the bathroom. +5 Sandra went back to the bathroom. +6 Is Sandra in the garden? no 5 +7 John journeyed to the bedroom. +8 John grabbed the milk there. +9 Is Daniel in the hallway? no 4 +10 Daniel journeyed to the garden. +11 John journeyed to the kitchen. +12 Is Daniel in the office? no 10 +13 Sandra dropped the apple. +14 Sandra moved to the hallway. +15 Is John in the kitchen? yes 11 +1 Mary took the milk there. +2 Sandra grabbed the apple there. +3 Mary went back to the garden. +4 Sandra left the apple there. +5 Is Mary in the bathroom? no 3 +6 Sandra picked up the apple there. +7 Sandra went back to the office. +8 Is Sandra in the kitchen? no 7 +9 Mary went to the kitchen. +10 Mary moved to the bedroom. +11 Is Mary in the bathroom? no 10 +12 John moved to the garden. +13 John moved to the kitchen. +14 Is Sandra in the office? yes 7 +15 Sandra left the apple. +16 Daniel went to the bedroom. +17 Is John in the kitchen? yes 13 +1 Daniel moved to the kitchen. +2 John moved to the office. +3 Is John in the office? yes 2 +4 Sandra went back to the office. +5 Sandra travelled to the bathroom. +6 Is Sandra in the office? no 5 +7 John went to the hallway. +8 Daniel travelled to the hallway. +9 Is Sandra in the kitchen? no 5 +10 Sandra moved to the office. +11 Mary journeyed to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Sandra got the football there. +14 Sandra journeyed to the bathroom. +15 Is Mary in the kitchen? no 11 +1 John journeyed to the bedroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John journeyed to the garden. +5 John took the football there. +6 Is Daniel in the hallway? no 2 +7 Mary journeyed to the garden. +8 Mary went to the office. +9 Is Daniel in the hallway? no 2 +10 Mary went back to the bedroom. +11 Mary went back to the kitchen. +12 Is Mary in the hallway? no 11 +13 John discarded the football. +14 John journeyed to the bathroom. +15 Is Mary in the office? no 11 +1 Daniel went to the office. +2 Sandra took the milk there. +3 Is Daniel in the office? yes 1 +4 Sandra dropped the milk there. +5 Sandra picked up the milk there. +6 Is Daniel in the bedroom? no 1 +7 Sandra put down the milk. +8 Mary travelled to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 John picked up the apple there. +11 Mary went back to the garden. +12 Is Mary in the garden? yes 11 +13 John went to the office. +14 Sandra went to the kitchen. +15 Is John in the bedroom? no 13 +1 Mary got the milk there. +2 Mary left the milk there. +3 Mary got the milk there. +4 Mary went back to the bedroom. +5 Is Mary in the bedroom? yes 4 +6 Mary discarded the milk. +7 John moved to the kitchen. +8 Is Mary in the bedroom? yes 4 +9 Mary took the football there. +10 Mary put down the football. +11 Is Mary in the bedroom? yes 4 +12 John journeyed to the bedroom. +13 John moved to the bathroom. +14 Is John in the office? no 13 +15 Sandra went to the bathroom. +16 Sandra went to the kitchen. +17 Is Sandra in the kitchen? yes 16 +1 Mary moved to the hallway. +2 Sandra picked up the milk there. +3 Is Mary in the hallway? yes 1 +4 Mary moved to the garden. +5 Sandra dropped the milk there. +6 Is Mary in the hallway? no 4 +7 Daniel moved to the garden. +8 John went back to the bedroom. +9 Is Mary in the bedroom? no 4 +10 John went to the bathroom. +11 Sandra grabbed the milk there. +12 Is Daniel in the garden? yes 7 +13 Sandra left the milk. +14 Sandra picked up the milk there. +15 Is John in the bathroom? yes 10 +1 Daniel went to the bedroom. +2 Sandra went to the garden. +3 Is Sandra in the bedroom? no 2 +4 Sandra picked up the milk there. +5 Sandra travelled to the bathroom. +6 Is Daniel in the bedroom? yes 1 +7 Sandra put down the milk. +8 Mary travelled to the garden. +9 Is Sandra in the bathroom? yes 5 +10 Mary travelled to the office. +11 John travelled to the office. +12 Is Mary in the hallway? no 10 +13 Mary moved to the hallway. +14 Sandra took the milk there. +15 Is Mary in the garden? no 13 +1 Daniel went back to the hallway. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Mary took the apple there. +5 Sandra moved to the hallway. +6 Is Daniel in the office? no 1 +7 Mary discarded the apple. +8 Mary grabbed the apple there. +9 Is Sandra in the bedroom? no 5 +10 Sandra went back to the bedroom. +11 John journeyed to the bedroom. +12 Is Sandra in the garden? no 10 +13 Sandra moved to the kitchen. +14 Sandra went to the office. +15 Is Sandra in the office? yes 14 +1 Daniel grabbed the milk there. +2 John travelled to the kitchen. +3 Is John in the hallway? no 2 +4 John journeyed to the garden. +5 John got the football there. +6 Is John in the bathroom? no 4 +7 Daniel travelled to the hallway. +8 Sandra moved to the hallway. +9 Is John in the bathroom? no 4 +10 John discarded the football. +11 Sandra journeyed to the bathroom. +12 Is Daniel in the bathroom? no 7 +13 Sandra went to the bedroom. +14 John took the football there. +15 Is Sandra in the bedroom? yes 13 +1 Mary picked up the apple there. +2 Mary left the apple there. +3 Sandra went to the office. +4 Mary journeyed to the office. +5 Is Sandra in the office? yes 3 +6 Daniel travelled to the garden. +7 John went to the office. +8 Is John in the bathroom? no 7 +9 Mary went to the garden. +10 Sandra travelled to the hallway. +11 Is Mary in the garden? yes 9 +12 Sandra went to the office. +13 Daniel took the football there. +14 Is John in the office? yes 7 +15 John got the milk there. +16 Daniel journeyed to the bedroom. +17 Is Sandra in the kitchen? no 12 +1 Daniel travelled to the hallway. +2 Mary moved to the hallway. +3 Is Mary in the kitchen? no 2 +4 Sandra journeyed to the office. +5 Sandra went to the garden. +6 Is Daniel in the hallway? yes 1 +7 Mary moved to the garden. +8 Daniel moved to the bathroom. +9 Is Sandra in the garden? yes 5 +10 John moved to the bedroom. +11 Sandra went back to the hallway. +12 Is Daniel in the garden? no 8 +13 Daniel travelled to the office. +14 Sandra journeyed to the bathroom. +15 Is Daniel in the hallway? no 13 +1 Mary journeyed to the hallway. +2 John moved to the bedroom. +3 Is John in the bedroom? yes 2 +4 John travelled to the office. +5 Sandra travelled to the bedroom. +6 Is John in the office? yes 4 +7 Mary moved to the bedroom. +8 Mary moved to the bathroom. +9 Is John in the hallway? no 4 +10 John journeyed to the bedroom. +11 John journeyed to the bathroom. +12 Is John in the hallway? no 11 +13 Daniel travelled to the hallway. +14 Mary moved to the kitchen. +15 Is John in the kitchen? no 11 +1 Sandra travelled to the garden. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John went to the office. +5 Sandra went back to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel journeyed to the office. +8 Mary travelled to the bathroom. +9 Is Daniel in the office? yes 7 +10 John travelled to the hallway. +11 John travelled to the kitchen. +12 Is Daniel in the kitchen? no 7 +13 Mary travelled to the bedroom. +14 Mary went to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra travelled to the office. +2 John went to the bathroom. +3 Is John in the hallway? no 2 +4 John went to the hallway. +5 Sandra moved to the bathroom. +6 Is John in the hallway? yes 4 +7 Daniel went to the hallway. +8 John travelled to the bedroom. +9 Is Sandra in the bathroom? yes 5 +10 John went back to the garden. +11 John journeyed to the hallway. +12 Is John in the hallway? yes 11 +13 Mary went back to the kitchen. +14 Mary journeyed to the hallway. +15 Is Mary in the kitchen? no 14 +1 John went to the kitchen. +2 Sandra travelled to the bathroom. +3 Is John in the kitchen? yes 1 +4 Mary grabbed the apple there. +5 John went back to the garden. +6 Is John in the bathroom? no 5 +7 John took the milk there. +8 John went to the bedroom. +9 Is John in the office? no 8 +10 John dropped the milk. +11 John got the milk there. +12 Is John in the bedroom? yes 8 +13 John put down the milk. +14 Mary went back to the garden. +15 Is John in the bedroom? yes 8 +1 Daniel went to the bathroom. +2 Daniel went back to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John grabbed the football there. +5 Sandra journeyed to the bedroom. +6 Is Daniel in the office? no 2 +7 John travelled to the bathroom. +8 John went back to the garden. +9 Is Sandra in the bathroom? no 5 +10 Daniel moved to the office. +11 Sandra went to the office. +12 Is Daniel in the kitchen? no 10 +13 John got the milk there. +14 John went back to the office. +15 Is John in the garden? no 14 +1 Sandra went to the kitchen. +2 Mary took the milk there. +3 Is Sandra in the garden? no 1 +4 Mary dropped the milk there. +5 Mary grabbed the milk there. +6 Is Sandra in the kitchen? yes 1 +7 Daniel went to the kitchen. +8 Mary discarded the milk. +9 Is Daniel in the kitchen? yes 7 +10 Daniel went back to the garden. +11 Mary journeyed to the office. +12 Is Mary in the bathroom? no 11 +13 John journeyed to the bathroom. +14 John travelled to the office. +15 Is Daniel in the garden? yes 10 +1 Sandra travelled to the bathroom. +2 Sandra moved to the garden. +3 Is Sandra in the bathroom? no 2 +4 Mary went back to the bedroom. +5 John moved to the bedroom. +6 Is John in the bedroom? yes 5 +7 Sandra went back to the office. +8 Sandra went back to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Sandra moved to the garden. +11 Mary travelled to the kitchen. +12 Is Sandra in the bathroom? no 10 +13 Sandra moved to the kitchen. +14 Sandra moved to the garden. +15 Is Sandra in the bedroom? no 14 +1 John picked up the football there. +2 Mary travelled to the bathroom. +3 Is Mary in the garden? no 2 +4 John travelled to the garden. +5 Sandra picked up the milk there. +6 Is Mary in the bathroom? yes 2 +7 Sandra discarded the milk. +8 Daniel took the milk there. +9 Is John in the garden? yes 4 +10 Daniel left the milk. +11 Sandra went back to the hallway. +12 Is Sandra in the bedroom? no 11 +13 John dropped the football. +14 Sandra journeyed to the bathroom. +15 Is Sandra in the office? no 14 +1 John picked up the milk there. +2 John picked up the apple there. +3 Mary got the football there. +4 Mary discarded the football. +5 Sandra grabbed the football there. +6 Sandra moved to the kitchen. +7 Is Sandra in the garden? no 6 +8 Sandra discarded the football. +9 Mary went back to the garden. +10 Is Mary in the garden? yes 9 +11 John dropped the apple. +12 Sandra went back to the office. +13 Is Sandra in the bedroom? no 12 +14 Sandra journeyed to the bedroom. +15 Mary travelled to the office. +16 Is Sandra in the bathroom? no 14 +17 John got the apple there. +18 Daniel went to the garden. +19 Is Mary in the office? yes 15 +1 Daniel went to the hallway. +2 John took the apple there. +3 Is Daniel in the office? no 1 +4 Mary went back to the bedroom. +5 John went to the hallway. +6 Is Daniel in the hallway? yes 1 +7 Daniel journeyed to the bathroom. +8 Sandra went back to the kitchen. +9 Is Mary in the bedroom? yes 4 +10 Mary moved to the garden. +11 Daniel went back to the bedroom. +12 Is Sandra in the kitchen? yes 8 +13 Sandra moved to the bedroom. +14 John went to the office. +15 Is John in the office? yes 14 +1 Daniel took the apple there. +2 Daniel went back to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel discarded the apple there. +5 Daniel got the apple there. +6 Is Daniel in the bathroom? no 2 +7 Daniel put down the apple. +8 Daniel got the apple there. +9 Is Daniel in the bathroom? no 2 +10 Mary moved to the bathroom. +11 Daniel dropped the apple. +12 Is Mary in the office? no 10 +13 John journeyed to the bedroom. +14 John went back to the bathroom. +15 Is John in the garden? no 14 +1 Sandra picked up the milk there. +2 John journeyed to the kitchen. +3 Is John in the bathroom? no 2 +4 John picked up the apple there. +5 John put down the apple. +6 Is John in the bedroom? no 2 +7 John went back to the bedroom. +8 Sandra went to the office. +9 Is Sandra in the bathroom? no 8 +10 John went to the hallway. +11 John journeyed to the office. +12 Is John in the bedroom? no 11 +13 Daniel moved to the garden. +14 Sandra discarded the milk there. +15 Is Daniel in the garden? yes 13 +1 John went back to the bedroom. +2 Daniel went to the office. +3 Is John in the bedroom? yes 1 +4 Daniel moved to the hallway. +5 Mary moved to the office. +6 Is Mary in the hallway? no 5 +7 John travelled to the garden. +8 Sandra moved to the kitchen. +9 Is John in the kitchen? no 7 +10 John journeyed to the bedroom. +11 Daniel travelled to the bedroom. +12 Is Sandra in the garden? no 8 +13 John grabbed the football there. +14 John discarded the football. +15 Is John in the office? no 10 +1 Sandra journeyed to the hallway. +2 Mary went back to the bedroom. +3 Is Mary in the kitchen? no 2 +4 Daniel got the football there. +5 Daniel dropped the football. +6 Is Mary in the hallway? no 2 +7 Sandra moved to the garden. +8 Mary travelled to the office. +9 Is Mary in the office? yes 8 +10 Mary travelled to the bathroom. +11 Sandra journeyed to the bedroom. +12 Is Mary in the bathroom? yes 10 +13 Daniel picked up the milk there. +14 Daniel got the football there. +15 Is Sandra in the bedroom? yes 11 +1 Mary got the milk there. +2 Sandra picked up the football there. +3 Sandra travelled to the kitchen. +4 Sandra put down the football. +5 Is Sandra in the office? no 3 +6 John journeyed to the bedroom. +7 Mary went to the bathroom. +8 Is Sandra in the kitchen? yes 3 +9 Sandra moved to the bedroom. +10 Daniel journeyed to the bedroom. +11 Is John in the bathroom? no 6 +12 Mary left the milk. +13 Sandra took the apple there. +14 Is Daniel in the bedroom? yes 10 +15 Sandra discarded the apple. +16 Daniel took the apple there. +17 Is Daniel in the garden? no 10 +1 Daniel went back to the bedroom. +2 Sandra went back to the hallway. +3 Is Daniel in the bedroom? yes 1 +4 Daniel went back to the garden. +5 John travelled to the kitchen. +6 Is Sandra in the bedroom? no 2 +7 John travelled to the garden. +8 Sandra went back to the office. +9 Is Sandra in the garden? no 8 +10 Mary journeyed to the kitchen. +11 Sandra moved to the bathroom. +12 Is John in the garden? yes 7 +13 Sandra took the apple there. +14 Daniel went back to the office. +15 Is Sandra in the bedroom? no 11 +1 Sandra went to the kitchen. +2 Mary got the milk there. +3 Is Sandra in the kitchen? yes 1 +4 Sandra grabbed the apple there. +5 Sandra discarded the apple there. +6 Is Sandra in the bedroom? no 1 +7 John went back to the bedroom. +8 Sandra travelled to the garden. +9 Is John in the kitchen? no 7 +10 Daniel went back to the hallway. +11 Mary dropped the milk. +12 Is John in the bedroom? yes 7 +13 John moved to the bathroom. +14 Sandra moved to the office. +15 Is Sandra in the garden? no 14 +1 Daniel travelled to the bedroom. +2 Daniel went back to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Mary grabbed the football there. +5 Daniel moved to the bedroom. +6 Is Daniel in the office? no 5 +7 John went back to the bedroom. +8 John went back to the garden. +9 Is John in the bathroom? no 8 +10 Mary put down the football. +11 Daniel moved to the office. +12 Is Daniel in the hallway? no 11 +13 Daniel went back to the garden. +14 John moved to the kitchen. +15 Is Daniel in the office? no 13 +1 John travelled to the bedroom. +2 Daniel journeyed to the garden. +3 Is John in the bedroom? yes 1 +4 Sandra moved to the garden. +5 Sandra got the apple there. +6 Is Sandra in the garden? yes 4 +7 Mary travelled to the garden. +8 John moved to the hallway. +9 Is Mary in the garden? yes 7 +10 Daniel took the football there. +11 Sandra discarded the apple. +12 Is John in the hallway? yes 8 +13 Daniel picked up the apple there. +14 Daniel discarded the apple. +15 Is John in the office? no 8 +1 Mary took the milk there. +2 Sandra moved to the garden. +3 Is Sandra in the garden? yes 2 +4 Mary left the milk. +5 Daniel travelled to the garden. +6 Is Sandra in the kitchen? no 2 +7 Mary picked up the milk there. +8 Mary put down the milk. +9 Is Sandra in the garden? yes 2 +10 Mary picked up the milk there. +11 Daniel picked up the football there. +12 Is Daniel in the garden? yes 5 +13 Mary journeyed to the bedroom. +14 Daniel put down the football. +15 Is Mary in the bathroom? no 13 +1 Daniel moved to the hallway. +2 Daniel went back to the office. +3 Is Daniel in the bedroom? no 2 +4 Daniel moved to the bathroom. +5 John got the football there. +6 Is Daniel in the bathroom? yes 4 +7 John journeyed to the bathroom. +8 Mary went to the bathroom. +9 Is John in the kitchen? no 7 +10 Daniel travelled to the garden. +11 John put down the football. +12 Is John in the bathroom? yes 7 +13 Mary travelled to the garden. +14 John got the football there. +15 Is Mary in the garden? yes 13 +1 John picked up the football there. +2 Daniel travelled to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Daniel took the milk there. +5 Mary journeyed to the hallway. +6 Is Mary in the hallway? yes 5 +7 John travelled to the kitchen. +8 Daniel put down the milk. +9 Is Mary in the office? no 5 +10 Mary travelled to the kitchen. +11 Mary got the apple there. +12 Is Mary in the hallway? no 10 +13 Sandra moved to the office. +14 Daniel got the milk there. +15 Is Sandra in the office? yes 13 +1 Daniel went back to the kitchen. +2 Daniel moved to the garden. +3 Is Daniel in the garden? yes 2 +4 Sandra went back to the hallway. +5 John moved to the bathroom. +6 Is Daniel in the bedroom? no 2 +7 Daniel travelled to the hallway. +8 Daniel got the apple there. +9 Is John in the garden? no 5 +10 John picked up the football there. +11 Daniel put down the apple. +12 Is Daniel in the hallway? yes 7 +13 Daniel got the apple there. +14 John discarded the football. +15 Daniel discarded the apple. +16 Mary journeyed to the bedroom. +17 Is Mary in the bedroom? yes 16 +1 Daniel moved to the hallway. +2 Sandra moved to the hallway. +3 Is Sandra in the kitchen? no 2 +4 John travelled to the hallway. +5 John journeyed to the bathroom. +6 Is Sandra in the hallway? yes 2 +7 Mary journeyed to the garden. +8 Daniel went to the garden. +9 Is Mary in the garden? yes 7 +10 Sandra went back to the bathroom. +11 Daniel moved to the bathroom. +12 Is Mary in the garden? yes 7 +13 Daniel went back to the hallway. +14 John went to the hallway. +15 Is Sandra in the bathroom? yes 10 +1 Mary travelled to the hallway. +2 Daniel moved to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Mary took the milk there. +5 Mary travelled to the bedroom. +6 Is Mary in the office? no 5 +7 Mary went back to the garden. +8 Mary left the milk there. +9 Is Daniel in the bedroom? no 2 +10 Daniel journeyed to the bedroom. +11 Mary took the milk there. +12 Is Daniel in the garden? no 10 +13 Mary moved to the office. +14 John went back to the office. +15 Is Mary in the bathroom? no 13 +1 Daniel went to the garden. +2 Mary went to the bedroom. +3 Is Daniel in the garden? yes 1 +4 Daniel journeyed to the kitchen. +5 John took the apple there. +6 Is Daniel in the kitchen? yes 4 +7 Mary picked up the milk there. +8 Daniel got the football there. +9 Is Daniel in the kitchen? yes 4 +10 Mary left the milk. +11 Mary travelled to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 John went to the office. +14 John moved to the hallway. +15 Is Mary in the office? no 11 +1 John journeyed to the bathroom. +2 Mary went to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary went back to the office. +5 John went to the bedroom. +6 Is Mary in the hallway? no 4 +7 Daniel moved to the bathroom. +8 Daniel travelled to the garden. +9 Is Daniel in the garden? yes 8 +10 John moved to the bathroom. +11 Daniel picked up the football there. +12 Is John in the bathroom? yes 10 +13 John moved to the kitchen. +14 John took the apple there. +15 Is John in the kitchen? yes 13 +1 Sandra went back to the hallway. +2 Daniel went back to the bathroom. +3 Is Daniel in the hallway? no 2 +4 John grabbed the apple there. +5 Sandra went back to the bedroom. +6 Is Daniel in the office? no 2 +7 Daniel moved to the bedroom. +8 John left the apple. +9 Is Daniel in the office? no 7 +10 John went back to the kitchen. +11 John went back to the bathroom. +12 Is John in the bathroom? yes 11 +13 Mary went to the garden. +14 Daniel journeyed to the kitchen. +15 Is John in the bathroom? yes 11 +1 Mary took the milk there. +2 Mary put down the milk. +3 Sandra journeyed to the hallway. +4 Mary picked up the milk there. +5 Is Sandra in the bedroom? no 3 +6 Daniel journeyed to the garden. +7 Daniel went back to the kitchen. +8 Is Daniel in the office? no 7 +9 Mary left the milk. +10 Mary took the milk there. +11 Is Daniel in the hallway? no 7 +12 Daniel took the apple there. +13 Sandra went to the office. +14 Is Daniel in the kitchen? yes 7 +15 John went back to the garden. +16 Daniel left the apple. +17 Is Sandra in the office? yes 13 +1 John journeyed to the garden. +2 John went back to the kitchen. +3 Is John in the bedroom? no 2 +4 Sandra journeyed to the hallway. +5 Sandra journeyed to the bathroom. +6 Is John in the kitchen? yes 2 +7 Mary travelled to the bathroom. +8 Mary went to the kitchen. +9 Is Mary in the garden? no 8 +10 Sandra moved to the kitchen. +11 Daniel went back to the hallway. +12 Is Sandra in the bedroom? no 10 +13 Daniel went to the garden. +14 John went to the garden. +15 Is Daniel in the garden? yes 13 +1 Sandra journeyed to the bedroom. +2 Daniel grabbed the football there. +3 Is Sandra in the hallway? no 1 +4 Sandra went to the hallway. +5 Sandra took the milk there. +6 Is Sandra in the garden? no 4 +7 John went to the bedroom. +8 John travelled to the office. +9 Is John in the office? yes 8 +10 John went back to the bathroom. +11 Mary grabbed the apple there. +12 Is John in the bathroom? yes 10 +13 Mary went to the bedroom. +14 Sandra discarded the milk there. +15 Is Mary in the bedroom? yes 13 +1 Sandra got the football there. +2 John journeyed to the garden. +3 Is John in the garden? yes 2 +4 Mary moved to the kitchen. +5 Sandra left the football. +6 Is John in the garden? yes 2 +7 Sandra grabbed the football there. +8 Daniel went back to the hallway. +9 Is Mary in the office? no 4 +10 John went back to the bathroom. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 Daniel journeyed to the kitchen. +14 Mary moved to the hallway. +15 Is John in the garden? no 10 +1 John moved to the bathroom. +2 Mary travelled to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary got the apple there. +5 Mary got the milk there. +6 Is John in the bathroom? yes 1 +7 John moved to the kitchen. +8 John went back to the bathroom. +9 Is John in the bathroom? yes 8 +10 Mary went back to the bathroom. +11 Mary journeyed to the hallway. +12 Is Mary in the garden? no 11 +13 Mary journeyed to the bathroom. +14 Mary left the apple. +15 Is Mary in the bathroom? yes 13 +1 Daniel travelled to the kitchen. +2 Daniel journeyed to the office. +3 Is Daniel in the office? yes 2 +4 Daniel moved to the kitchen. +5 Mary grabbed the apple there. +6 Is Daniel in the kitchen? yes 4 +7 Mary took the milk there. +8 John moved to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra moved to the hallway. +11 Daniel moved to the bathroom. +12 Is Sandra in the hallway? yes 10 +13 John went to the garden. +14 Daniel travelled to the garden. +15 Is John in the garden? yes 13 +1 John picked up the apple there. +2 John discarded the apple there. +3 Daniel went to the garden. +4 Daniel moved to the office. +5 Is Daniel in the hallway? no 4 +6 Daniel went to the kitchen. +7 Daniel moved to the bedroom. +8 Is Daniel in the bathroom? no 7 +9 Daniel journeyed to the office. +10 John picked up the apple there. +11 Is Daniel in the hallway? no 9 +12 Mary journeyed to the bedroom. +13 Daniel moved to the garden. +14 Is Daniel in the office? no 13 +15 John left the apple. +16 Mary moved to the garden. +17 Is Mary in the garden? yes 16 +1 Sandra moved to the hallway. +2 John went back to the kitchen. +3 Is Sandra in the bedroom? no 1 +4 Sandra travelled to the bathroom. +5 Mary went to the office. +6 Is Mary in the hallway? no 5 +7 John went back to the bathroom. +8 Daniel grabbed the apple there. +9 Is Mary in the office? yes 5 +10 Sandra travelled to the kitchen. +11 John moved to the hallway. +12 Is Sandra in the bathroom? no 10 +13 Daniel left the apple there. +14 John took the apple there. +15 Is John in the bathroom? no 11 +1 John moved to the hallway. +2 Daniel travelled to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Sandra got the football there. +5 Sandra left the football. +6 Is John in the garden? no 1 +7 Mary took the football there. +8 Daniel went back to the hallway. +9 Is Daniel in the bathroom? no 8 +10 John went back to the bedroom. +11 Sandra travelled to the bathroom. +12 Is Daniel in the hallway? yes 8 +13 Daniel went to the garden. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Mary went back to the bathroom. +2 Daniel travelled to the bedroom. +3 Is Mary in the bathroom? yes 1 +4 Sandra travelled to the bathroom. +5 Daniel grabbed the apple there. +6 Is Sandra in the garden? no 4 +7 Mary picked up the football there. +8 Mary went to the kitchen. +9 Is Daniel in the hallway? no 2 +10 John moved to the hallway. +11 Sandra travelled to the garden. +12 Is John in the office? no 10 +13 John travelled to the bathroom. +14 Sandra picked up the milk there. +15 Is Sandra in the bedroom? no 11 +1 Mary went back to the bedroom. +2 John grabbed the apple there. +3 Is Mary in the kitchen? no 1 +4 John went to the office. +5 Daniel moved to the office. +6 Is John in the office? yes 4 +7 Mary travelled to the hallway. +8 Mary went back to the bedroom. +9 Is John in the office? yes 4 +10 John discarded the apple. +11 Mary went back to the bathroom. +12 Is Daniel in the garden? no 5 +13 Sandra went back to the hallway. +14 John travelled to the kitchen. +15 Is Sandra in the hallway? yes 13 +1 Mary journeyed to the bedroom. +2 Mary moved to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary moved to the office. +5 Mary went to the garden. +6 Is Mary in the garden? yes 5 +7 Mary went back to the kitchen. +8 Mary moved to the bedroom. +9 Is Mary in the garden? no 8 +10 John went back to the office. +11 Daniel journeyed to the garden. +12 Is Mary in the bathroom? no 8 +13 Sandra went back to the garden. +14 John travelled to the hallway. +15 Is Daniel in the garden? yes 11 +1 Sandra journeyed to the garden. +2 Mary went back to the hallway. +3 Is Sandra in the garden? yes 1 +4 John picked up the milk there. +5 John moved to the office. +6 Is John in the office? yes 5 +7 John went to the garden. +8 John went back to the hallway. +9 Is John in the garden? no 8 +10 Sandra went back to the bedroom. +11 Mary journeyed to the bedroom. +12 Is John in the hallway? yes 8 +13 John dropped the milk. +14 Mary picked up the apple there. +15 Is John in the hallway? yes 8 +1 Sandra went to the bathroom. +2 Daniel travelled to the garden. +3 Is Daniel in the bathroom? no 2 +4 Daniel went back to the kitchen. +5 Sandra travelled to the garden. +6 Is Daniel in the bedroom? no 4 +7 Sandra went back to the kitchen. +8 Daniel travelled to the hallway. +9 Is Daniel in the kitchen? no 8 +10 John journeyed to the kitchen. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bathroom? no 11 +13 Mary went to the garden. +14 Daniel grabbed the football there. +15 Is Sandra in the bedroom? yes 11 +1 John moved to the hallway. +2 Daniel moved to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Sandra got the football there. +5 Sandra left the football. +6 Is John in the garden? no 1 +7 Sandra went back to the kitchen. +8 Mary journeyed to the kitchen. +9 Is Daniel in the hallway? yes 2 +10 Daniel travelled to the bathroom. +11 Daniel got the football there. +12 Is Sandra in the office? no 7 +13 John travelled to the bedroom. +14 John went to the kitchen. +15 Is John in the kitchen? yes 14 +1 Mary travelled to the garden. +2 John went back to the office. +3 Is John in the bathroom? no 2 +4 John journeyed to the kitchen. +5 John went to the garden. +6 Is John in the garden? yes 5 +7 John moved to the bathroom. +8 Mary took the football there. +9 Is John in the garden? no 7 +10 Sandra travelled to the bedroom. +11 Mary journeyed to the kitchen. +12 Is John in the office? no 7 +13 Daniel went back to the office. +14 Mary moved to the garden. +15 Is Mary in the garden? yes 14 +1 Daniel travelled to the bathroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Mary went back to the kitchen. +5 John took the milk there. +6 Is Mary in the kitchen? yes 4 +7 John put down the milk there. +8 John picked up the milk there. +9 Is Daniel in the office? no 2 +10 John dropped the milk. +11 John grabbed the apple there. +12 John journeyed to the kitchen. +13 Sandra went to the kitchen. +14 Is John in the kitchen? yes 12 +15 Daniel took the football there. +16 Daniel moved to the office. +17 Is Sandra in the kitchen? yes 13 +1 Daniel journeyed to the bathroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bathroom? no 2 +4 John went back to the kitchen. +5 John went back to the office. +6 Is John in the office? yes 5 +7 Mary grabbed the football there. +8 Mary picked up the apple there. +9 Is John in the office? yes 5 +10 Daniel journeyed to the office. +11 Daniel journeyed to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 John took the milk there. +14 Sandra moved to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John took the apple there. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 Sandra travelled to the hallway. +5 John put down the apple. +6 Is Sandra in the hallway? yes 4 +7 Sandra moved to the bedroom. +8 Sandra picked up the football there. +9 Is Sandra in the garden? no 7 +10 Sandra went to the bathroom. +11 Sandra moved to the office. +12 Is Sandra in the kitchen? no 11 +13 John got the apple there. +14 Sandra discarded the football. +15 Is Sandra in the office? yes 11 +1 Sandra travelled to the bedroom. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary moved to the kitchen. +5 Mary went back to the bedroom. +6 Is Mary in the kitchen? no 5 +7 Sandra moved to the kitchen. +8 John travelled to the office. +9 Is Sandra in the bathroom? no 7 +10 John journeyed to the hallway. +11 Mary journeyed to the kitchen. +12 Is John in the bathroom? no 10 +13 Daniel went to the office. +14 John travelled to the kitchen. +15 Is Mary in the kitchen? yes 11 +1 Sandra went to the hallway. +2 Daniel went back to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Sandra went back to the kitchen. +5 Mary journeyed to the bathroom. +6 Is Sandra in the bedroom? no 4 +7 Sandra moved to the hallway. +8 Mary picked up the football there. +9 Is Daniel in the hallway? yes 2 +10 Daniel journeyed to the bedroom. +11 Mary went to the hallway. +12 Is Sandra in the office? no 7 +13 Mary left the football. +14 Daniel journeyed to the bathroom. +15 Is Mary in the bathroom? no 11 +1 John went back to the hallway. +2 Sandra went back to the hallway. +3 Is Sandra in the bathroom? no 2 +4 John went back to the garden. +5 John took the football there. +6 Is John in the garden? yes 4 +7 Sandra journeyed to the bedroom. +8 Sandra grabbed the milk there. +9 Is Sandra in the bedroom? yes 7 +10 Mary journeyed to the bedroom. +11 John journeyed to the hallway. +12 Is Mary in the kitchen? no 10 +13 John moved to the office. +14 John dropped the football. +15 Is Mary in the bedroom? yes 10 +1 Sandra travelled to the office. +2 John moved to the bathroom. +3 Is Sandra in the office? yes 1 +4 John travelled to the garden. +5 John moved to the hallway. +6 Is Sandra in the office? yes 1 +7 John travelled to the kitchen. +8 Daniel moved to the hallway. +9 Is John in the kitchen? yes 7 +10 Daniel journeyed to the garden. +11 John moved to the hallway. +12 Is John in the garden? no 11 +13 Sandra grabbed the milk there. +14 Sandra travelled to the bathroom. +15 Is Daniel in the office? no 10 +1 Sandra picked up the apple there. +2 Sandra took the milk there. +3 Daniel travelled to the kitchen. +4 John went to the kitchen. +5 Is Daniel in the office? no 3 +6 Mary went back to the garden. +7 Mary went back to the hallway. +8 Is John in the hallway? no 4 +9 Sandra journeyed to the bathroom. +10 Mary got the football there. +11 Is John in the kitchen? yes 4 +12 Mary put down the football there. +13 Sandra journeyed to the kitchen. +14 Is Mary in the bathroom? no 7 +15 John moved to the hallway. +16 Sandra moved to the bathroom. +17 Is Sandra in the hallway? no 16 +1 Mary took the milk there. +2 Mary put down the milk. +3 John moved to the kitchen. +4 Daniel got the football there. +5 Is John in the kitchen? yes 3 +6 Daniel discarded the football there. +7 Mary took the milk there. +8 Is John in the bedroom? no 3 +9 Daniel travelled to the garden. +10 John journeyed to the bedroom. +11 Is John in the bedroom? yes 10 +12 Daniel went to the bathroom. +13 Mary travelled to the bedroom. +14 Is Daniel in the bathroom? yes 12 +15 Mary got the apple there. +16 Mary discarded the apple. +17 Is John in the bedroom? yes 10 +1 John went to the garden. +2 John journeyed to the office. +3 Is John in the office? yes 2 +4 Daniel moved to the hallway. +5 Sandra travelled to the bathroom. +6 Is John in the office? yes 2 +7 John travelled to the hallway. +8 Sandra travelled to the garden. +9 Is Daniel in the garden? no 4 +10 Daniel moved to the bedroom. +11 Sandra moved to the bathroom. +12 Is John in the kitchen? no 7 +13 John travelled to the bathroom. +14 John moved to the garden. +15 Is Sandra in the kitchen? no 11 +1 Daniel travelled to the office. +2 Sandra went back to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Daniel grabbed the football there. +5 Daniel travelled to the bedroom. +6 Is Sandra in the hallway? yes 2 +7 Sandra got the apple there. +8 Sandra went to the bathroom. +9 Is Daniel in the garden? no 5 +10 Daniel put down the football there. +11 Mary took the football there. +12 Is Daniel in the bedroom? yes 5 +13 Sandra moved to the bedroom. +14 John went to the kitchen. +15 Is Sandra in the bedroom? yes 13 +1 John travelled to the bathroom. +2 John went back to the bedroom. +3 Is John in the bedroom? yes 2 +4 John grabbed the apple there. +5 Daniel picked up the football there. +6 Is John in the bathroom? no 2 +7 Daniel journeyed to the kitchen. +8 John dropped the apple. +9 Is John in the hallway? no 2 +10 Sandra went to the garden. +11 Daniel put down the football. +12 Is Sandra in the garden? yes 10 +13 Daniel got the football there. +14 Daniel dropped the football there. +15 Is Sandra in the garden? yes 10 +1 Daniel went to the kitchen. +2 John went back to the hallway. +3 Is John in the garden? no 2 +4 Sandra travelled to the office. +5 John went back to the kitchen. +6 Is Sandra in the office? yes 4 +7 Mary journeyed to the garden. +8 Mary travelled to the bedroom. +9 Is John in the hallway? no 5 +10 Mary travelled to the office. +11 Sandra moved to the hallway. +12 Is Mary in the office? yes 10 +13 Sandra went to the office. +14 Daniel went to the office. +15 Is Sandra in the hallway? no 13 +1 Daniel moved to the bedroom. +2 Daniel went to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Daniel took the milk there. +5 Daniel got the football there. +6 Is Daniel in the garden? no 2 +7 John journeyed to the hallway. +8 Sandra journeyed to the bathroom. +9 Is John in the kitchen? no 7 +10 Sandra journeyed to the garden. +11 Daniel journeyed to the hallway. +12 Is Sandra in the garden? yes 10 +13 Daniel moved to the garden. +14 John went back to the bedroom. +15 Is Sandra in the garden? yes 10 +1 Mary picked up the apple there. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra went to the hallway. +5 Mary went back to the bedroom. +6 Is Sandra in the hallway? yes 4 +7 Mary moved to the bathroom. +8 John went back to the kitchen. +9 Is Mary in the garden? no 7 +10 Mary took the milk there. +11 Mary left the apple. +12 Is Mary in the bathroom? yes 7 +13 Mary put down the milk. +14 John moved to the bedroom. +15 Is John in the bedroom? yes 14 +1 Mary journeyed to the bathroom. +2 John grabbed the apple there. +3 Is Mary in the garden? no 1 +4 Daniel grabbed the milk there. +5 Daniel journeyed to the kitchen. +6 Is Mary in the kitchen? no 1 +7 Sandra travelled to the kitchen. +8 Daniel left the milk. +9 Is Sandra in the bathroom? no 7 +10 Sandra went to the bedroom. +11 John journeyed to the hallway. +12 Is John in the hallway? yes 11 +13 John dropped the apple there. +14 Mary travelled to the bedroom. +15 Is John in the kitchen? no 11 +1 Mary grabbed the football there. +2 John travelled to the hallway. +3 Is John in the hallway? yes 2 +4 Mary journeyed to the garden. +5 Mary dropped the football. +6 Is John in the hallway? yes 2 +7 Mary travelled to the bedroom. +8 John went back to the office. +9 Is John in the office? yes 8 +10 Sandra took the football there. +11 John got the apple there. +12 Is Mary in the office? no 7 +13 John dropped the apple. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the hallway? no 14 +1 Daniel journeyed to the bedroom. +2 Sandra moved to the office. +3 Is Daniel in the bedroom? yes 1 +4 Sandra journeyed to the hallway. +5 Daniel went back to the garden. +6 Is Sandra in the office? no 4 +7 Mary moved to the bedroom. +8 John journeyed to the bedroom. +9 Is John in the office? no 8 +10 John journeyed to the hallway. +11 Daniel journeyed to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 John went to the garden. +14 Daniel travelled to the garden. +15 Is John in the garden? yes 13 +1 Mary grabbed the apple there. +2 Mary dropped the apple. +3 John grabbed the apple there. +4 Mary went back to the bedroom. +5 Is Mary in the office? no 4 +6 John moved to the office. +7 John went back to the garden. +8 Is Mary in the kitchen? no 4 +9 Mary went back to the office. +10 John put down the apple. +11 Is Mary in the garden? no 9 +12 John travelled to the kitchen. +13 John went back to the garden. +14 Is John in the bedroom? no 13 +15 Mary went back to the garden. +16 Sandra journeyed to the kitchen. +17 Is John in the garden? yes 13 +1 Sandra travelled to the garden. +2 John moved to the bathroom. +3 Is John in the kitchen? no 2 +4 Daniel moved to the bedroom. +5 Mary moved to the kitchen. +6 Is Mary in the garden? no 5 +7 Mary grabbed the apple there. +8 Mary left the apple. +9 Is John in the hallway? no 2 +10 Sandra went back to the hallway. +11 Mary journeyed to the bathroom. +12 Is Mary in the bathroom? yes 11 +13 John travelled to the office. +14 Sandra went back to the office. +15 Is Sandra in the office? yes 14 +1 Sandra went to the office. +2 Mary travelled to the hallway. +3 Is Mary in the hallway? yes 2 +4 Mary travelled to the garden. +5 Daniel went back to the hallway. +6 Is Mary in the bathroom? no 4 +7 Sandra took the apple there. +8 John journeyed to the kitchen. +9 Is Mary in the garden? yes 4 +10 John grabbed the milk there. +11 Mary went to the kitchen. +12 Is Daniel in the hallway? yes 5 +13 Sandra went back to the hallway. +14 John journeyed to the hallway. +15 Is John in the office? no 14 +1 John got the milk there. +2 John went back to the office. +3 Is John in the office? yes 2 +4 Daniel grabbed the apple there. +5 Sandra went back to the hallway. +6 Is John in the office? yes 2 +7 Sandra picked up the football there. +8 John put down the milk. +9 Is John in the office? yes 2 +10 Mary went to the garden. +11 Daniel put down the apple. +12 Is Mary in the garden? yes 10 +13 Daniel journeyed to the hallway. +14 Sandra put down the football. +15 Is Daniel in the bathroom? no 13 +1 Mary took the milk there. +2 John went back to the bedroom. +3 Is John in the office? no 2 +4 John journeyed to the kitchen. +5 Daniel journeyed to the garden. +6 Is John in the hallway? no 4 +7 Sandra travelled to the office. +8 John moved to the bedroom. +9 Is John in the bedroom? yes 8 +10 Daniel travelled to the kitchen. +11 Daniel travelled to the hallway. +12 Is Daniel in the hallway? yes 11 +13 Mary discarded the milk. +14 Mary went back to the hallway. +15 Is Daniel in the kitchen? no 11 +1 Daniel grabbed the milk there. +2 Daniel took the apple there. +3 Sandra went back to the bathroom. +4 Mary moved to the bedroom. +5 Is Mary in the bathroom? no 4 +6 Daniel went back to the kitchen. +7 John journeyed to the hallway. +8 Is John in the hallway? yes 7 +9 Mary went back to the kitchen. +10 Daniel discarded the apple there. +11 Is Daniel in the kitchen? yes 6 +12 Daniel went back to the bedroom. +13 Daniel went to the hallway. +14 Is Daniel in the garden? no 13 +15 Mary took the apple there. +16 Daniel journeyed to the bathroom. +17 Is Daniel in the bathroom? yes 16 +1 Sandra took the football there. +2 Mary went to the bathroom. +3 Is Mary in the garden? no 2 +4 Sandra put down the football. +5 Daniel went to the garden. +6 Is Mary in the hallway? no 2 +7 Sandra moved to the hallway. +8 Sandra travelled to the kitchen. +9 Is Sandra in the bedroom? no 8 +10 John grabbed the apple there. +11 John travelled to the hallway. +12 Is Daniel in the bedroom? no 5 +13 John put down the apple. +14 Sandra travelled to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel went to the bathroom. +2 Sandra journeyed to the office. +3 Is Sandra in the hallway? no 2 +4 Mary went to the kitchen. +5 John journeyed to the bedroom. +6 Is Daniel in the bathroom? yes 1 +7 John journeyed to the hallway. +8 John moved to the office. +9 Is John in the hallway? no 8 +10 Sandra journeyed to the bedroom. +11 Daniel moved to the kitchen. +12 Is Sandra in the office? no 10 +13 Mary journeyed to the hallway. +14 John took the football there. +15 Is Sandra in the hallway? no 10 +1 Sandra travelled to the bedroom. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary moved to the office. +5 Mary went to the garden. +6 Is Sandra in the kitchen? yes 2 +7 Mary grabbed the milk there. +8 Daniel went to the bathroom. +9 Is Mary in the bedroom? no 5 +10 Sandra went back to the bathroom. +11 Mary put down the milk. +12 Is Mary in the garden? yes 5 +13 Mary picked up the milk there. +14 Mary discarded the milk there. +15 Is Daniel in the bathroom? yes 8 +1 Mary got the apple there. +2 Mary went to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John travelled to the garden. +5 Daniel moved to the office. +6 Is Mary in the bathroom? yes 2 +7 Mary moved to the office. +8 John went to the kitchen. +9 Is Mary in the office? yes 7 +10 Sandra travelled to the office. +11 Sandra moved to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Sandra moved to the bathroom. +14 Mary discarded the apple. +15 Is John in the hallway? no 8 +1 Sandra travelled to the office. +2 Daniel journeyed to the bathroom. +3 Is Sandra in the kitchen? no 1 +4 Sandra went to the bathroom. +5 Mary journeyed to the office. +6 Is Sandra in the office? no 4 +7 Mary moved to the hallway. +8 Mary journeyed to the garden. +9 Is Mary in the garden? yes 8 +10 Sandra went back to the kitchen. +11 Mary moved to the bathroom. +12 Is Mary in the garden? no 11 +13 Sandra moved to the bathroom. +14 John went to the kitchen. +15 Is Sandra in the garden? no 13 +1 Daniel travelled to the kitchen. +2 John journeyed to the hallway. +3 Is John in the kitchen? no 2 +4 Daniel travelled to the bedroom. +5 Daniel journeyed to the hallway. +6 Is Daniel in the garden? no 5 +7 Mary grabbed the milk there. +8 Mary travelled to the office. +9 Is Daniel in the hallway? yes 5 +10 Sandra travelled to the bedroom. +11 Daniel went back to the garden. +12 Is Daniel in the hallway? no 11 +13 John went back to the kitchen. +14 John travelled to the bedroom. +15 Is John in the bedroom? yes 14 +1 Mary went to the bathroom. +2 Daniel picked up the apple there. +3 Is Mary in the garden? no 1 +4 Mary went back to the office. +5 Daniel went back to the kitchen. +6 Is Mary in the kitchen? no 4 +7 Daniel discarded the apple. +8 John went back to the office. +9 Is Daniel in the kitchen? yes 5 +10 Daniel got the apple there. +11 Daniel put down the apple there. +12 Is John in the office? yes 8 +13 Daniel journeyed to the garden. +14 Daniel picked up the football there. +15 Is John in the office? yes 8 +1 Sandra travelled to the garden. +2 Mary went to the bedroom. +3 Is Sandra in the garden? yes 1 +4 Daniel travelled to the bedroom. +5 John went to the kitchen. +6 Is John in the garden? no 5 +7 Mary went back to the garden. +8 John went to the hallway. +9 Is Mary in the garden? yes 7 +10 Mary moved to the office. +11 Sandra picked up the football there. +12 Is Mary in the bedroom? no 10 +13 Mary picked up the milk there. +14 Mary discarded the milk. +15 Is Mary in the office? yes 10 +1 Daniel travelled to the bathroom. +2 Sandra journeyed to the bedroom. +3 Is Daniel in the bathroom? yes 1 +4 John grabbed the apple there. +5 John discarded the apple. +6 Is Sandra in the bedroom? yes 2 +7 John went to the garden. +8 Sandra went to the office. +9 Is Sandra in the bathroom? no 8 +10 John travelled to the hallway. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary travelled to the kitchen. +14 Daniel went back to the office. +15 Is Daniel in the bedroom? no 14 +1 Daniel journeyed to the hallway. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel took the football there. +5 Daniel went back to the bedroom. +6 Is Daniel in the kitchen? no 5 +7 Mary journeyed to the office. +8 Mary travelled to the bathroom. +9 Is Daniel in the bedroom? yes 5 +10 John travelled to the bedroom. +11 Sandra journeyed to the hallway. +12 Is Daniel in the kitchen? no 5 +13 Daniel left the football. +14 John got the football there. +15 Is John in the bedroom? yes 10 +1 Mary travelled to the hallway. +2 Daniel moved to the garden. +3 Is Mary in the hallway? yes 1 +4 Mary went back to the kitchen. +5 Sandra journeyed to the garden. +6 Is Sandra in the garden? yes 5 +7 John travelled to the bedroom. +8 Daniel went to the hallway. +9 Is John in the bedroom? yes 7 +10 Daniel grabbed the football there. +11 Sandra went to the office. +12 Is Sandra in the hallway? no 11 +13 Daniel travelled to the garden. +14 Mary went to the office. +15 Is Daniel in the garden? yes 13 +1 Sandra got the apple there. +2 Sandra put down the apple there. +3 Sandra picked up the apple there. +4 Sandra went to the bedroom. +5 Is Sandra in the kitchen? no 4 +6 John moved to the office. +7 Sandra went to the office. +8 Is Sandra in the kitchen? no 7 +9 Mary took the milk there. +10 Mary went back to the garden. +11 Is Sandra in the office? yes 7 +12 Mary left the milk. +13 Sandra went back to the kitchen. +14 Is Mary in the office? no 10 +15 Mary picked up the milk there. +16 Mary left the milk. +17 Is Mary in the bedroom? no 10 +1 Sandra travelled to the office. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra picked up the apple there. +5 Sandra went to the garden. +6 Is Sandra in the garden? yes 5 +7 John travelled to the bathroom. +8 Sandra put down the apple there. +9 Is John in the bathroom? yes 7 +10 Mary moved to the kitchen. +11 John went to the office. +12 Is John in the office? yes 11 +13 Sandra got the apple there. +14 John took the milk there. +15 Is Mary in the kitchen? yes 10 +1 John travelled to the bedroom. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 Mary moved to the bathroom. +5 Sandra got the milk there. +6 Is Sandra in the garden? no 2 +7 Daniel moved to the bedroom. +8 Sandra dropped the milk. +9 Is Sandra in the office? yes 2 +10 Daniel journeyed to the hallway. +11 John went to the garden. +12 Is John in the office? no 11 +13 Mary grabbed the apple there. +14 Mary picked up the football there. +15 Is John in the bathroom? no 11 +1 John travelled to the hallway. +2 Daniel grabbed the football there. +3 Is John in the kitchen? no 1 +4 Sandra moved to the kitchen. +5 Mary went to the bathroom. +6 Is Mary in the office? no 5 +7 John journeyed to the office. +8 Daniel moved to the office. +9 Is Mary in the bathroom? yes 5 +10 Sandra journeyed to the bathroom. +11 Sandra went to the office. +12 Is Daniel in the office? yes 8 +13 Mary moved to the hallway. +14 Daniel left the football there. +15 Is Sandra in the bathroom? no 11 +1 Mary travelled to the hallway. +2 Daniel journeyed to the kitchen. +3 Is Mary in the bedroom? no 1 +4 John went back to the office. +5 Mary journeyed to the office. +6 Is Daniel in the kitchen? yes 2 +7 Sandra journeyed to the kitchen. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Mary moved to the bedroom. +11 Mary got the apple there. +12 Is Mary in the bedroom? yes 10 +13 Mary moved to the hallway. +14 John moved to the bedroom. +15 Is Mary in the bathroom? no 13 +1 Sandra journeyed to the office. +2 Mary went back to the kitchen. +3 Is Sandra in the bedroom? no 1 +4 Daniel went to the bedroom. +5 John travelled to the office. +6 Is John in the kitchen? no 5 +7 Sandra grabbed the football there. +8 Mary got the milk there. +9 Is Daniel in the bedroom? yes 4 +10 Mary discarded the milk. +11 Sandra went back to the hallway. +12 Is Sandra in the garden? no 11 +13 Mary travelled to the hallway. +14 John went back to the hallway. +15 Is Mary in the garden? no 13 +1 Daniel went back to the bedroom. +2 Daniel went back to the hallway. +3 Is Daniel in the kitchen? no 2 +4 Sandra went back to the bedroom. +5 Sandra journeyed to the office. +6 Is Daniel in the hallway? yes 2 +7 Daniel picked up the football there. +8 Daniel picked up the milk there. +9 Is Sandra in the garden? no 5 +10 John travelled to the office. +11 Mary journeyed to the garden. +12 Is Mary in the office? no 11 +13 Daniel put down the milk there. +14 Daniel left the football. +15 Is John in the office? yes 10 +1 Mary got the apple there. +2 Daniel moved to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Sandra moved to the office. +5 Mary dropped the apple. +6 Is Daniel in the hallway? yes 2 +7 Mary moved to the bedroom. +8 Sandra grabbed the apple there. +9 Is Mary in the garden? no 7 +10 Mary journeyed to the garden. +11 Daniel went back to the kitchen. +12 Is Mary in the bedroom? no 10 +13 John went back to the garden. +14 Daniel went back to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Sandra grabbed the apple there. +2 Mary grabbed the milk there. +3 John journeyed to the garden. +4 John journeyed to the hallway. +5 Is John in the office? no 4 +6 Daniel went to the bathroom. +7 Sandra left the apple. +8 Is John in the hallway? yes 4 +9 Mary discarded the milk. +10 Mary got the milk there. +11 Is John in the hallway? yes 4 +12 Sandra went back to the kitchen. +13 Mary journeyed to the office. +14 Is Sandra in the kitchen? yes 12 +15 Mary travelled to the kitchen. +16 Mary got the football there. +17 Is Mary in the kitchen? yes 15 +1 Sandra took the milk there. +2 John went to the bedroom. +3 Is John in the garden? no 2 +4 John journeyed to the garden. +5 Mary moved to the bathroom. +6 Is John in the garden? yes 4 +7 Sandra left the milk. +8 Sandra grabbed the milk there. +9 Is John in the garden? yes 4 +10 Mary went back to the kitchen. +11 Mary took the apple there. +12 Is Mary in the bathroom? no 10 +13 Mary journeyed to the bedroom. +14 Daniel went to the office. +15 Is Mary in the bedroom? yes 13 +1 Daniel went to the bathroom. +2 Daniel travelled to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel went to the garden. +5 Daniel picked up the apple there. +6 Is Daniel in the office? no 4 +7 Mary journeyed to the office. +8 Sandra travelled to the bedroom. +9 Is Daniel in the garden? yes 4 +10 Mary went to the garden. +11 Daniel put down the apple. +12 Is Mary in the kitchen? no 10 +13 Daniel went to the hallway. +14 John moved to the kitchen. +15 Is John in the kitchen? yes 14 +1 Sandra journeyed to the kitchen. +2 John grabbed the milk there. +3 Is Sandra in the kitchen? yes 1 +4 John discarded the milk. +5 Mary moved to the bathroom. +6 Is Mary in the garden? no 5 +7 Daniel took the milk there. +8 John went to the office. +9 Is Mary in the bathroom? yes 5 +10 Sandra went to the bathroom. +11 Daniel discarded the milk. +12 Is Sandra in the bathroom? yes 10 +13 Mary went back to the hallway. +14 Mary travelled to the kitchen. +15 Is Sandra in the bathroom? yes 10 +1 John travelled to the bathroom. +2 Mary went to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Daniel travelled to the hallway. +5 Mary went to the hallway. +6 Is John in the kitchen? no 1 +7 Daniel went back to the kitchen. +8 John moved to the office. +9 Is Mary in the office? no 5 +10 John went back to the kitchen. +11 John journeyed to the bedroom. +12 Is Daniel in the bathroom? no 7 +13 Daniel grabbed the football there. +14 John took the milk there. +15 Is John in the bathroom? no 11 +1 Mary grabbed the football there. +2 John went to the bedroom. +3 Is John in the bedroom? yes 2 +4 John went to the bathroom. +5 Mary went back to the office. +6 Is John in the bathroom? yes 4 +7 Mary left the football. +8 Mary travelled to the bedroom. +9 Is Mary in the hallway? no 8 +10 Sandra journeyed to the office. +11 Sandra journeyed to the kitchen. +12 Is Mary in the bedroom? yes 8 +13 Mary travelled to the hallway. +14 Daniel picked up the football there. +15 Is Mary in the bedroom? no 13 +1 Mary travelled to the bedroom. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Daniel went to the kitchen. +5 Daniel went to the office. +6 Is Daniel in the office? yes 5 +7 Sandra moved to the bathroom. +8 John went back to the hallway. +9 Is Daniel in the bathroom? no 5 +10 Daniel journeyed to the hallway. +11 Daniel journeyed to the garden. +12 Is Daniel in the kitchen? no 11 +13 Daniel went back to the hallway. +14 Mary journeyed to the kitchen. +15 Is John in the hallway? yes 8 +1 John got the apple there. +2 John journeyed to the hallway. +3 Is John in the office? no 2 +4 Mary got the milk there. +5 Mary left the milk. +6 Is John in the hallway? yes 2 +7 Mary picked up the milk there. +8 John left the apple. +9 Is John in the hallway? yes 2 +10 Sandra moved to the office. +11 Daniel went back to the office. +12 Is Daniel in the office? yes 11 +13 Daniel travelled to the bathroom. +14 John grabbed the apple there. +15 Is Daniel in the garden? no 13 +1 John went back to the bathroom. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 Sandra got the milk there. +5 John moved to the kitchen. +6 Is John in the garden? no 5 +7 Mary went back to the hallway. +8 John moved to the office. +9 Is John in the office? yes 8 +10 Mary journeyed to the office. +11 John went to the bathroom. +12 Is John in the bathroom? yes 11 +13 Daniel went to the bedroom. +14 Sandra put down the milk. +15 Is John in the office? no 11 +1 Sandra picked up the football there. +2 Sandra discarded the football. +3 Mary picked up the milk there. +4 John journeyed to the kitchen. +5 Is John in the kitchen? yes 4 +6 Mary left the milk. +7 John got the football there. +8 Is John in the hallway? no 4 +9 Mary took the milk there. +10 Sandra went to the garden. +11 Is John in the bathroom? no 4 +12 John put down the football. +13 Daniel travelled to the hallway. +14 Is Daniel in the bedroom? no 13 +15 Mary discarded the milk. +16 Mary took the milk there. +17 Is Daniel in the garden? no 13 +1 John picked up the apple there. +2 Mary moved to the garden. +3 Is Mary in the bathroom? no 2 +4 Daniel took the milk there. +5 Mary went to the bedroom. +6 Is Mary in the garden? no 5 +7 Daniel discarded the milk. +8 Daniel journeyed to the garden. +9 Is Mary in the bedroom? yes 5 +10 Mary got the milk there. +11 John put down the apple. +12 Is Mary in the bedroom? yes 5 +13 Mary went back to the kitchen. +14 John grabbed the apple there. +15 Is Daniel in the garden? yes 8 +1 Mary went back to the hallway. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John travelled to the bedroom. +5 Daniel went to the kitchen. +6 Is John in the bedroom? yes 4 +7 Mary took the football there. +8 Mary picked up the milk there. +9 Is Daniel in the hallway? no 5 +10 John journeyed to the garden. +11 Mary journeyed to the kitchen. +12 Is John in the garden? yes 10 +13 Mary took the apple there. +14 Sandra journeyed to the kitchen. +15 Is Mary in the kitchen? yes 11 +1 John went to the kitchen. +2 Mary moved to the bathroom. +3 Is John in the hallway? no 1 +4 Daniel got the apple there. +5 Sandra went to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel put down the apple there. +8 Mary went to the hallway. +9 Is Mary in the garden? no 8 +10 Mary moved to the garden. +11 Daniel grabbed the apple there. +12 Is Mary in the bedroom? no 10 +13 John journeyed to the office. +14 Sandra went to the bathroom. +15 Is Sandra in the kitchen? no 14 +1 John moved to the kitchen. +2 Mary went to the garden. +3 Is John in the garden? no 1 +4 Sandra travelled to the bathroom. +5 Mary went to the bathroom. +6 Is Sandra in the office? no 4 +7 Mary went back to the bedroom. +8 Daniel journeyed to the kitchen. +9 Is Mary in the garden? no 7 +10 Sandra grabbed the football there. +11 John went back to the garden. +12 Is Mary in the bedroom? yes 7 +13 Sandra took the apple there. +14 Daniel moved to the bathroom. +15 Is Daniel in the hallway? no 14 +1 Sandra went to the kitchen. +2 John went to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra took the milk there. +5 Daniel went back to the bedroom. +6 Is Sandra in the kitchen? yes 1 +7 Daniel journeyed to the kitchen. +8 Sandra got the football there. +9 Is Daniel in the hallway? no 7 +10 Daniel travelled to the office. +11 Sandra went back to the hallway. +12 Is Daniel in the office? yes 10 +13 Daniel travelled to the garden. +14 John went to the hallway. +15 Is Sandra in the kitchen? no 11 +1 Mary travelled to the bathroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the garden? no 2 +4 John moved to the bathroom. +5 Daniel went to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Daniel moved to the bathroom. +8 John went back to the garden. +9 Is Sandra in the kitchen? yes 2 +10 Mary journeyed to the office. +11 Sandra picked up the football there. +12 Is Mary in the kitchen? no 10 +13 Sandra picked up the milk there. +14 Sandra moved to the garden. +15 Is Mary in the office? yes 10 +1 Sandra travelled to the bathroom. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 Sandra went to the bedroom. +5 Daniel got the football there. +6 Is Daniel in the bathroom? no 2 +7 Mary moved to the office. +8 Sandra picked up the milk there. +9 Is Sandra in the garden? no 4 +10 Sandra got the apple there. +11 Sandra left the apple there. +12 Is Mary in the office? yes 7 +13 Sandra grabbed the apple there. +14 Sandra dropped the apple. +15 Sandra got the apple there. +16 John journeyed to the office. +17 Is John in the bedroom? no 16 +1 Daniel journeyed to the kitchen. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel picked up the milk there. +5 John moved to the kitchen. +6 Is Daniel in the bedroom? yes 2 +7 Sandra travelled to the bedroom. +8 Sandra travelled to the hallway. +9 Is John in the kitchen? yes 5 +10 Mary picked up the apple there. +11 Mary went to the garden. +12 Is John in the garden? no 5 +13 Mary travelled to the bathroom. +14 Mary put down the apple. +15 Is Mary in the bathroom? yes 13 +1 Daniel travelled to the hallway. +2 John went back to the bedroom. +3 Is Daniel in the kitchen? no 1 +4 Mary grabbed the milk there. +5 Mary left the milk. +6 Is Daniel in the office? no 1 +7 Sandra moved to the garden. +8 Mary grabbed the milk there. +9 Is Sandra in the hallway? no 7 +10 John went back to the garden. +11 John travelled to the hallway. +12 Is John in the bathroom? no 11 +13 Sandra journeyed to the hallway. +14 Mary moved to the garden. +15 Is Mary in the garden? yes 14 +1 John went to the bathroom. +2 John travelled to the garden. +3 Is John in the hallway? no 2 +4 Sandra went back to the office. +5 Daniel journeyed to the kitchen. +6 Is Sandra in the garden? no 4 +7 Mary took the football there. +8 Mary discarded the football there. +9 Is Sandra in the kitchen? no 4 +10 Mary picked up the football there. +11 Daniel went to the garden. +12 Is Daniel in the garden? yes 11 +13 Sandra journeyed to the hallway. +14 Daniel travelled to the bathroom. +15 Is Daniel in the office? no 14 +1 Mary moved to the bathroom. +2 John took the milk there. +3 Is Mary in the kitchen? no 1 +4 Daniel grabbed the apple there. +5 Mary moved to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Daniel got the football there. +8 Daniel left the football. +9 Is Mary in the bedroom? no 5 +10 Mary went to the garden. +11 Daniel picked up the football there. +12 Is Mary in the garden? yes 10 +13 Mary journeyed to the kitchen. +14 Sandra went to the kitchen. +15 Is Mary in the bedroom? no 13 +1 Daniel travelled to the kitchen. +2 John travelled to the garden. +3 Is John in the bathroom? no 2 +4 John moved to the bathroom. +5 Mary journeyed to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Sandra went back to the office. +8 Sandra got the milk there. +9 Is John in the hallway? no 4 +10 Mary travelled to the bedroom. +11 Sandra got the football there. +12 Is Mary in the bedroom? yes 10 +13 Sandra went to the kitchen. +14 Daniel journeyed to the hallway. +15 Is Sandra in the kitchen? yes 13 +1 Daniel moved to the garden. +2 Daniel went to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel went to the bathroom. +5 Daniel grabbed the apple there. +6 Is Daniel in the bathroom? yes 4 +7 John moved to the kitchen. +8 Daniel dropped the apple. +9 Is John in the office? no 7 +10 Daniel moved to the office. +11 Daniel journeyed to the garden. +12 Is Daniel in the garden? yes 11 +13 John journeyed to the office. +14 Daniel grabbed the milk there. +15 Is John in the office? yes 13 +1 Mary took the football there. +2 Daniel went to the garden. +3 Is Daniel in the office? no 2 +4 Mary journeyed to the kitchen. +5 John went to the kitchen. +6 Is Mary in the kitchen? yes 4 +7 Daniel went back to the bathroom. +8 Mary went back to the garden. +9 Is Mary in the office? no 8 +10 Sandra moved to the bedroom. +11 Daniel picked up the milk there. +12 Is Daniel in the hallway? no 7 +13 Daniel picked up the apple there. +14 John journeyed to the office. +15 Is John in the office? yes 14 +1 Sandra moved to the kitchen. +2 Daniel went back to the office. +3 Is Sandra in the office? no 1 +4 Sandra moved to the bathroom. +5 John took the football there. +6 Is Sandra in the kitchen? no 4 +7 Mary went back to the hallway. +8 John discarded the football. +9 Is Daniel in the hallway? no 2 +10 John picked up the football there. +11 Sandra took the milk there. +12 Is Mary in the bathroom? no 7 +13 John discarded the football. +14 Mary grabbed the apple there. +15 Daniel went to the bathroom. +16 John got the football there. +17 Is Daniel in the bathroom? yes 15 +1 Mary got the milk there. +2 Daniel picked up the football there. +3 Daniel left the football. +4 Daniel took the football there. +5 Daniel journeyed to the office. +6 Daniel went back to the garden. +7 Is Daniel in the bedroom? no 6 +8 Mary dropped the milk there. +9 Daniel put down the football there. +10 Is Daniel in the office? no 6 +11 Daniel grabbed the football there. +12 Mary journeyed to the bathroom. +13 Is Mary in the kitchen? no 12 +14 John went back to the office. +15 Mary travelled to the hallway. +16 Is Mary in the garden? no 15 +17 Sandra travelled to the kitchen. +18 John went back to the bathroom. +19 Is Sandra in the kitchen? yes 17 +1 Mary took the apple there. +2 Sandra got the milk there. +3 John travelled to the hallway. +4 Sandra put down the milk. +5 Is John in the hallway? yes 3 +6 Mary put down the apple. +7 Mary picked up the apple there. +8 Is John in the hallway? yes 3 +9 Mary went back to the garden. +10 Sandra went to the bedroom. +11 Is Mary in the garden? yes 9 +12 Mary left the apple. +13 Mary moved to the hallway. +14 Is Sandra in the bathroom? no 10 +15 Mary went to the office. +16 Sandra moved to the bathroom. +17 Is Sandra in the bathroom? yes 16 +1 Daniel journeyed to the office. +2 Daniel travelled to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 John journeyed to the office. +5 Mary went to the hallway. +6 Is John in the office? yes 4 +7 Sandra moved to the bathroom. +8 Mary went to the kitchen. +9 Is Daniel in the kitchen? yes 2 +10 Sandra moved to the kitchen. +11 Daniel went to the bedroom. +12 Is Sandra in the kitchen? yes 10 +13 Sandra travelled to the office. +14 Daniel travelled to the hallway. +15 Is Sandra in the office? yes 13 +1 Daniel moved to the hallway. +2 Mary moved to the hallway. +3 Is Daniel in the hallway? yes 1 +4 John travelled to the garden. +5 Daniel journeyed to the garden. +6 Is Daniel in the hallway? no 5 +7 John grabbed the apple there. +8 Mary travelled to the garden. +9 Is Daniel in the kitchen? no 5 +10 John put down the apple. +11 Mary went to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 John took the milk there. +14 Sandra moved to the hallway. +15 Is Mary in the office? no 11 +1 Mary journeyed to the bathroom. +2 Sandra travelled to the bathroom. +3 Is Sandra in the bedroom? no 2 +4 John travelled to the garden. +5 Mary went back to the kitchen. +6 Is Mary in the hallway? no 5 +7 Sandra went back to the garden. +8 Mary got the milk there. +9 Is Sandra in the kitchen? no 7 +10 Mary grabbed the apple there. +11 Daniel travelled to the bedroom. +12 Is Sandra in the garden? yes 7 +13 Sandra travelled to the kitchen. +14 Mary travelled to the bathroom. +15 Is Daniel in the office? no 11 +1 Sandra travelled to the kitchen. +2 Mary took the football there. +3 Is Sandra in the kitchen? yes 1 +4 Mary put down the football. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Sandra went back to the office. +8 Mary took the football there. +9 Is Sandra in the office? yes 7 +10 John journeyed to the bedroom. +11 Mary discarded the football. +12 Is Sandra in the office? yes 7 +13 Daniel got the apple there. +14 John moved to the office. +15 Is John in the office? yes 14 +1 Daniel went to the bedroom. +2 John went to the bedroom. +3 Is John in the office? no 2 +4 Sandra travelled to the office. +5 Sandra moved to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 John journeyed to the garden. +8 John went to the bathroom. +9 Is John in the bathroom? yes 8 +10 Sandra moved to the kitchen. +11 Sandra picked up the milk there. +12 Is John in the bathroom? yes 8 +13 John went to the office. +14 Mary moved to the hallway. +15 Is John in the bedroom? no 13 +1 Mary moved to the hallway. +2 Sandra went back to the hallway. +3 Is Sandra in the bedroom? no 2 +4 Sandra grabbed the apple there. +5 Mary moved to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Mary journeyed to the hallway. +8 Mary went to the garden. +9 Is Mary in the kitchen? no 8 +10 Sandra dropped the apple. +11 John moved to the hallway. +12 Is Mary in the garden? yes 8 +13 John took the apple there. +14 Mary went to the office. +15 Is Mary in the office? yes 14 +1 Sandra journeyed to the bathroom. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 Mary journeyed to the kitchen. +5 John journeyed to the bedroom. +6 Is Sandra in the garden? no 1 +7 Sandra picked up the milk there. +8 Daniel went to the office. +9 Is John in the bedroom? yes 5 +10 Sandra put down the milk. +11 Daniel went to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John moved to the kitchen. +14 Daniel got the milk there. +15 Is Daniel in the office? no 11 +1 Daniel journeyed to the hallway. +2 Sandra went back to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra picked up the milk there. +5 Sandra discarded the milk. +6 Is Sandra in the bathroom? yes 2 +7 Sandra travelled to the garden. +8 Daniel grabbed the football there. +9 Is Sandra in the office? no 7 +10 John got the milk there. +11 Mary travelled to the office. +12 Is Sandra in the garden? yes 7 +13 John went to the garden. +14 Mary travelled to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Mary went to the bathroom. +2 Mary travelled to the kitchen. +3 Is Mary in the bedroom? no 2 +4 John went to the bedroom. +5 John got the apple there. +6 Is Mary in the kitchen? yes 2 +7 John travelled to the office. +8 Mary moved to the hallway. +9 Is Mary in the hallway? yes 8 +10 John dropped the apple. +11 John went back to the bedroom. +12 Is Mary in the garden? no 8 +13 John journeyed to the hallway. +14 John journeyed to the bathroom. +15 Is Mary in the garden? no 8 +1 Mary went to the office. +2 John grabbed the apple there. +3 Is Mary in the office? yes 1 +4 Sandra moved to the garden. +5 John left the apple. +6 Is Mary in the office? yes 1 +7 Daniel went back to the garden. +8 John took the apple there. +9 Is Sandra in the garden? yes 4 +10 Daniel went back to the bedroom. +11 John travelled to the bedroom. +12 Is Daniel in the bedroom? yes 10 +13 John grabbed the milk there. +14 John went back to the garden. +15 Is John in the garden? yes 14 +1 Sandra moved to the kitchen. +2 Daniel picked up the apple there. +3 Is Sandra in the bathroom? no 1 +4 Daniel left the apple. +5 Mary journeyed to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Mary journeyed to the bedroom. +8 Daniel journeyed to the bedroom. +9 Is Mary in the bathroom? no 7 +10 Daniel went to the kitchen. +11 Sandra went to the hallway. +12 Is Mary in the bathroom? no 7 +13 John journeyed to the bedroom. +14 Sandra travelled to the office. +15 Is Sandra in the bathroom? no 14 +1 John travelled to the hallway. +2 Sandra moved to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Sandra moved to the kitchen. +5 Sandra picked up the milk there. +6 Is John in the hallway? yes 1 +7 Sandra left the milk. +8 Sandra picked up the milk there. +9 Is Sandra in the kitchen? yes 4 +10 Sandra discarded the milk. +11 Mary moved to the bedroom. +12 Is Mary in the office? no 11 +13 Sandra travelled to the bathroom. +14 Daniel travelled to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 John travelled to the bedroom. +2 John travelled to the hallway. +3 Is John in the bedroom? no 2 +4 John went to the garden. +5 Sandra went to the garden. +6 Is John in the garden? yes 4 +7 Sandra went back to the bedroom. +8 Mary went to the bedroom. +9 Is Sandra in the bedroom? yes 7 +10 Mary journeyed to the office. +11 Sandra took the football there. +12 Is Sandra in the kitchen? no 7 +13 Mary went to the bathroom. +14 Daniel went back to the bedroom. +15 Is Mary in the bedroom? no 13 +1 John went back to the bedroom. +2 John journeyed to the office. +3 Is John in the office? yes 2 +4 Mary moved to the hallway. +5 John went back to the hallway. +6 Is Mary in the hallway? yes 4 +7 Daniel travelled to the bedroom. +8 John went back to the garden. +9 Is Daniel in the bedroom? yes 7 +10 Sandra went to the bathroom. +11 Daniel travelled to the garden. +12 Is Daniel in the hallway? no 11 +13 Sandra got the apple there. +14 Daniel travelled to the office. +15 Is Daniel in the office? yes 14 +1 Daniel went back to the kitchen. +2 Daniel went back to the bathroom. +3 Is Daniel in the hallway? no 2 +4 Mary moved to the bedroom. +5 Mary took the football there. +6 Is Daniel in the garden? no 2 +7 Daniel travelled to the office. +8 Daniel journeyed to the bedroom. +9 Is Daniel in the bathroom? no 8 +10 Mary went to the hallway. +11 John travelled to the bedroom. +12 Is Mary in the hallway? yes 10 +13 Sandra went to the bathroom. +14 Mary discarded the football. +15 Is Mary in the hallway? yes 10 +1 Mary travelled to the office. +2 Sandra travelled to the hallway. +3 Is Mary in the kitchen? no 1 +4 Sandra travelled to the garden. +5 John travelled to the bathroom. +6 Is Sandra in the bathroom? no 4 +7 Sandra took the milk there. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Sandra discarded the milk. +11 Sandra travelled to the office. +12 Is Sandra in the bedroom? no 11 +13 John journeyed to the hallway. +14 Daniel went to the garden. +15 Is Sandra in the office? yes 11 +1 Sandra journeyed to the hallway. +2 John went back to the office. +3 Is John in the bathroom? no 2 +4 John journeyed to the hallway. +5 John journeyed to the kitchen. +6 Is Sandra in the garden? no 1 +7 John moved to the bedroom. +8 John journeyed to the kitchen. +9 Is John in the kitchen? yes 8 +10 Sandra went to the bathroom. +11 John got the football there. +12 Is John in the kitchen? yes 8 +13 Daniel journeyed to the garden. +14 John discarded the football. +15 Is Daniel in the garden? yes 13 +1 John journeyed to the garden. +2 Sandra took the football there. +3 Is John in the hallway? no 1 +4 Daniel moved to the garden. +5 Sandra moved to the bathroom. +6 Is Sandra in the garden? no 5 +7 Mary went back to the bathroom. +8 Mary went to the bedroom. +9 Is Sandra in the bathroom? yes 5 +10 Sandra left the football. +11 Daniel went to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Mary got the apple there. +14 John went back to the hallway. +15 Is John in the bathroom? no 14 +1 John grabbed the milk there. +2 Daniel went back to the hallway. +3 Is Daniel in the bedroom? no 2 +4 Mary went back to the kitchen. +5 Mary travelled to the hallway. +6 Is Mary in the office? no 5 +7 Sandra went to the garden. +8 Daniel travelled to the office. +9 Is Daniel in the office? yes 8 +10 Sandra got the football there. +11 Daniel went to the bedroom. +12 Is Daniel in the hallway? no 11 +13 John journeyed to the hallway. +14 John moved to the bathroom. +15 Is Daniel in the kitchen? no 11 +1 Sandra picked up the apple there. +2 Mary got the football there. +3 Mary left the football. +4 Mary went to the bathroom. +5 Is Mary in the kitchen? no 4 +6 John moved to the bedroom. +7 John went back to the kitchen. +8 Is John in the office? no 7 +9 John went back to the office. +10 Sandra moved to the bathroom. +11 Is John in the office? yes 9 +12 Sandra went back to the office. +13 Mary picked up the milk there. +14 Is Sandra in the office? yes 12 +15 John travelled to the kitchen. +16 Mary left the milk. +17 Is John in the hallway? no 15 +1 Daniel moved to the garden. +2 Daniel moved to the bedroom. +3 Is Daniel in the office? no 2 +4 Mary moved to the kitchen. +5 John took the milk there. +6 Is Mary in the office? no 4 +7 Sandra went back to the hallway. +8 Daniel travelled to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Daniel went back to the office. +11 Sandra moved to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 Daniel moved to the garden. +14 John put down the milk. +15 Is Daniel in the garden? yes 13 +1 Sandra went back to the office. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra picked up the milk there. +5 Mary journeyed to the garden. +6 Is Sandra in the bathroom? yes 2 +7 Sandra discarded the milk. +8 Mary journeyed to the kitchen. +9 Is Sandra in the office? no 2 +10 Daniel took the apple there. +11 Daniel left the apple. +12 Is Mary in the kitchen? yes 8 +13 Mary got the apple there. +14 Mary put down the apple there. +15 Is Mary in the bedroom? no 8 +1 John travelled to the kitchen. +2 Sandra went back to the office. +3 Is John in the bedroom? no 1 +4 John journeyed to the garden. +5 Sandra travelled to the kitchen. +6 Is John in the bathroom? no 4 +7 Sandra went back to the bedroom. +8 Mary went to the garden. +9 Is Sandra in the bathroom? no 7 +10 Daniel picked up the milk there. +11 John travelled to the bedroom. +12 Is Mary in the garden? yes 8 +13 Sandra moved to the kitchen. +14 Daniel went back to the hallway. +15 Is John in the bedroom? yes 11 +1 Daniel travelled to the office. +2 Daniel travelled to the hallway. +3 Is Daniel in the hallway? yes 2 +4 John went back to the kitchen. +5 John moved to the garden. +6 Is Daniel in the bedroom? no 2 +7 Mary went to the office. +8 Daniel went back to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Sandra moved to the hallway. +11 John went to the office. +12 Is Mary in the office? yes 7 +13 Mary went to the kitchen. +14 John went back to the bathroom. +15 Is John in the kitchen? no 14 +1 Daniel travelled to the office. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 John journeyed to the bathroom. +5 Mary moved to the garden. +6 Is John in the garden? no 4 +7 Mary picked up the apple there. +8 John grabbed the milk there. +9 Is John in the bathroom? yes 4 +10 Mary discarded the apple. +11 Daniel travelled to the hallway. +12 Is Daniel in the office? no 11 +13 Sandra moved to the bathroom. +14 John dropped the milk. +15 Is Daniel in the garden? no 11 +1 John went to the bedroom. +2 Daniel travelled to the office. +3 Is John in the hallway? no 1 +4 Mary journeyed to the kitchen. +5 Mary moved to the bathroom. +6 Is Daniel in the office? yes 2 +7 Mary went to the bedroom. +8 Mary journeyed to the hallway. +9 Is Mary in the hallway? yes 8 +10 Sandra went to the kitchen. +11 Daniel journeyed to the hallway. +12 Is Mary in the office? no 8 +13 Sandra travelled to the hallway. +14 Mary went back to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 John got the milk there. +2 Sandra went to the bathroom. +3 Is Sandra in the bedroom? no 2 +4 John left the milk. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel got the apple there. +8 John travelled to the bathroom. +9 Is Sandra in the office? no 5 +10 Mary moved to the hallway. +11 Mary took the milk there. +12 Is Mary in the hallway? yes 10 +13 Mary put down the milk there. +14 Mary took the milk there. +15 Is Mary in the bathroom? no 10 +1 Mary went back to the bedroom. +2 Daniel travelled to the bathroom. +3 Is Mary in the garden? no 1 +4 Mary moved to the office. +5 John went to the bedroom. +6 Is Mary in the office? yes 4 +7 Sandra journeyed to the bathroom. +8 Daniel got the milk there. +9 Is Mary in the bedroom? no 4 +10 Sandra went to the bedroom. +11 Daniel dropped the milk. +12 Is Sandra in the hallway? no 10 +13 Mary journeyed to the bedroom. +14 Mary moved to the office. +15 Is Sandra in the bedroom? yes 10 +1 John picked up the milk there. +2 Daniel moved to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 Mary moved to the bedroom. +5 John went to the office. +6 Is Daniel in the hallway? no 2 +7 Mary travelled to the bathroom. +8 John dropped the milk. +9 Is Daniel in the kitchen? yes 2 +10 John went back to the hallway. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 John went to the bathroom. +14 Sandra journeyed to the bathroom. +15 Is John in the bathroom? yes 13 +1 John went back to the kitchen. +2 Daniel grabbed the apple there. +3 Is John in the kitchen? yes 1 +4 Daniel left the apple. +5 Daniel picked up the apple there. +6 Is John in the garden? no 1 +7 Daniel journeyed to the kitchen. +8 Daniel discarded the apple. +9 Is Daniel in the kitchen? yes 7 +10 Daniel took the apple there. +11 Mary went to the office. +12 Is Daniel in the hallway? no 7 +13 Mary took the football there. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the garden? no 14 +1 Mary went to the bathroom. +2 Sandra went to the bedroom. +3 Is Mary in the bedroom? no 1 +4 Sandra moved to the garden. +5 Sandra journeyed to the bathroom. +6 Is Mary in the bedroom? no 1 +7 Sandra got the football there. +8 Daniel travelled to the kitchen. +9 Is Daniel in the bedroom? no 8 +10 Sandra dropped the football there. +11 Sandra picked up the football there. +12 Is Daniel in the kitchen? yes 8 +13 Sandra journeyed to the hallway. +14 Mary journeyed to the office. +15 Is Daniel in the kitchen? yes 8 +1 Sandra travelled to the office. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 Daniel journeyed to the bathroom. +5 John grabbed the football there. +6 Is Sandra in the garden? yes 2 +7 Daniel went to the office. +8 John discarded the football. +9 Is Daniel in the office? yes 7 +10 John journeyed to the bedroom. +11 Mary picked up the milk there. +12 Is Daniel in the office? yes 7 +13 Daniel journeyed to the hallway. +14 Sandra grabbed the apple there. +15 Is John in the garden? no 10 +1 John went back to the hallway. +2 John travelled to the office. +3 Is John in the office? yes 2 +4 Sandra journeyed to the garden. +5 John moved to the garden. +6 Is John in the hallway? no 5 +7 Sandra journeyed to the hallway. +8 Daniel travelled to the bedroom. +9 Is John in the garden? yes 5 +10 Daniel travelled to the hallway. +11 Mary went to the garden. +12 Is Mary in the garden? yes 11 +13 John travelled to the bathroom. +14 John went to the kitchen. +15 Is John in the kitchen? yes 14 +1 Daniel went back to the hallway. +2 Mary got the football there. +3 Is Daniel in the office? no 1 +4 Mary got the apple there. +5 Mary went back to the garden. +6 Is Mary in the office? no 5 +7 John travelled to the office. +8 Sandra went to the bathroom. +9 Is Mary in the garden? yes 5 +10 Mary left the football. +11 Sandra went back to the kitchen. +12 Is John in the bedroom? no 7 +13 John got the milk there. +14 Sandra went back to the office. +15 Is Sandra in the office? yes 14 +1 John went back to the garden. +2 Mary journeyed to the bathroom. +3 Is John in the bedroom? no 1 +4 Sandra went to the bathroom. +5 Daniel journeyed to the bedroom. +6 Is John in the garden? yes 1 +7 John went back to the bedroom. +8 Daniel went to the kitchen. +9 Is Sandra in the bathroom? yes 4 +10 Daniel took the football there. +11 Daniel discarded the football. +12 Is Daniel in the garden? no 8 +13 John travelled to the garden. +14 Daniel went back to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 John picked up the football there. +2 Daniel travelled to the hallway. +3 Is Daniel in the office? no 2 +4 Mary travelled to the garden. +5 John discarded the football. +6 Is Daniel in the hallway? yes 2 +7 John travelled to the kitchen. +8 Mary travelled to the kitchen. +9 Is Daniel in the hallway? yes 2 +10 Daniel took the football there. +11 Mary journeyed to the office. +12 Is Mary in the bedroom? no 11 +13 John journeyed to the office. +14 Sandra went to the bathroom. +15 Is Mary in the kitchen? no 11 +1 Daniel moved to the office. +2 Daniel travelled to the bedroom. +3 Is Daniel in the office? no 2 +4 Daniel journeyed to the hallway. +5 Mary journeyed to the garden. +6 Is Daniel in the hallway? yes 4 +7 Sandra got the apple there. +8 Sandra went back to the kitchen. +9 Is Sandra in the hallway? no 8 +10 Daniel got the milk there. +11 Mary picked up the football there. +12 Is Sandra in the kitchen? yes 8 +13 John went to the kitchen. +14 Mary moved to the office. +15 Is Sandra in the kitchen? yes 8 +1 Daniel journeyed to the bedroom. +2 Sandra travelled to the kitchen. +3 Is Daniel in the bedroom? yes 1 +4 John moved to the kitchen. +5 Daniel moved to the kitchen. +6 Is John in the kitchen? yes 4 +7 Daniel went back to the garden. +8 John went to the bedroom. +9 Is John in the bedroom? yes 8 +10 John went back to the kitchen. +11 Daniel travelled to the kitchen. +12 Is John in the garden? no 10 +13 Daniel journeyed to the garden. +14 Daniel took the football there. +15 Is Daniel in the garden? yes 13 +1 Mary went back to the hallway. +2 Sandra grabbed the apple there. +3 Is Mary in the office? no 1 +4 John went back to the office. +5 Sandra discarded the apple. +6 Is Mary in the hallway? yes 1 +7 John got the football there. +8 John left the football there. +9 Is John in the garden? no 4 +10 John grabbed the football there. +11 Mary got the milk there. +12 John put down the football. +13 Daniel went to the bathroom. +14 Is Daniel in the garden? no 13 +15 Daniel journeyed to the bedroom. +16 Sandra went to the kitchen. +17 Is Daniel in the bedroom? yes 15 +1 Mary went to the bedroom. +2 Mary took the apple there. +3 Is Mary in the bedroom? yes 1 +4 Sandra went to the office. +5 Daniel went back to the bedroom. +6 Is Mary in the bedroom? yes 1 +7 Mary went back to the office. +8 John went to the kitchen. +9 Is Daniel in the bedroom? yes 5 +10 John got the milk there. +11 Sandra moved to the bathroom. +12 Is Mary in the office? yes 7 +13 Sandra moved to the bedroom. +14 John travelled to the bedroom. +15 Is Sandra in the garden? no 13 +1 Sandra picked up the apple there. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 Daniel grabbed the football there. +5 Daniel dropped the football. +6 Is John in the bedroom? no 2 +7 Daniel moved to the hallway. +8 Sandra moved to the hallway. +9 Is Sandra in the kitchen? no 8 +10 Mary went to the office. +11 Sandra travelled to the office. +12 Is Mary in the office? yes 10 +13 Mary went back to the bedroom. +14 Sandra journeyed to the garden. +15 Is Mary in the bedroom? yes 13 +1 John moved to the kitchen. +2 Daniel took the apple there. +3 Is John in the kitchen? yes 1 +4 Mary went to the kitchen. +5 Mary took the milk there. +6 Is John in the garden? no 1 +7 Mary dropped the milk. +8 Daniel grabbed the milk there. +9 Is Mary in the kitchen? yes 4 +10 Mary moved to the bedroom. +11 Daniel journeyed to the bathroom. +12 Is Mary in the bedroom? yes 10 +13 Daniel dropped the apple. +14 Daniel moved to the office. +15 Is Mary in the bedroom? yes 10 +1 Mary picked up the milk there. +2 John journeyed to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary put down the milk. +5 Daniel took the football there. +6 Is John in the garden? no 2 +7 Mary picked up the milk there. +8 John went back to the office. +9 Is John in the office? yes 8 +10 Mary discarded the milk. +11 Sandra picked up the apple there. +12 Is John in the office? yes 8 +13 John grabbed the milk there. +14 Daniel went to the bedroom. +15 Is John in the office? yes 8 +1 Mary went to the bathroom. +2 Daniel took the milk there. +3 Is Mary in the bathroom? yes 1 +4 Daniel took the football there. +5 Daniel discarded the milk. +6 Is Mary in the bathroom? yes 1 +7 Sandra picked up the milk there. +8 Daniel dropped the football. +9 Daniel journeyed to the garden. +10 Daniel went to the office. +11 Is Daniel in the kitchen? no 10 +12 Sandra picked up the football there. +13 Sandra moved to the bathroom. +14 Is Daniel in the garden? no 10 +15 Mary went to the bedroom. +16 Daniel went to the garden. +17 Is Daniel in the office? no 16 +1 John went back to the office. +2 John travelled to the hallway. +3 Is John in the hallway? yes 2 +4 Sandra journeyed to the garden. +5 Sandra went to the office. +6 Is John in the hallway? yes 2 +7 Sandra moved to the kitchen. +8 Sandra got the milk there. +9 Is Sandra in the office? no 7 +10 John moved to the bedroom. +11 Mary journeyed to the kitchen. +12 Is Mary in the bedroom? no 11 +13 Daniel moved to the bathroom. +14 John moved to the garden. +15 Is John in the bathroom? no 14 +1 John took the apple there. +2 Sandra travelled to the kitchen. +3 Is Sandra in the office? no 2 +4 John travelled to the bathroom. +5 Daniel took the football there. +6 Is Sandra in the garden? no 2 +7 Sandra travelled to the garden. +8 John took the milk there. +9 Is Sandra in the kitchen? no 7 +10 Sandra went back to the kitchen. +11 John moved to the garden. +12 Is Sandra in the garden? no 10 +13 Daniel left the football. +14 Daniel picked up the football there. +15 Is Sandra in the bedroom? no 10 +1 Mary picked up the football there. +2 Mary picked up the milk there. +3 Mary left the milk there. +4 John moved to the hallway. +5 Is John in the kitchen? no 4 +6 Mary discarded the football. +7 Sandra went to the kitchen. +8 Is Sandra in the kitchen? yes 7 +9 Mary moved to the office. +10 Mary journeyed to the garden. +11 Is Sandra in the bathroom? no 7 +12 Mary moved to the kitchen. +13 John moved to the bedroom. +14 Is Mary in the garden? no 12 +15 Sandra travelled to the garden. +16 Sandra journeyed to the office. +17 Is Sandra in the office? yes 16 +1 Sandra travelled to the kitchen. +2 Sandra journeyed to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Mary journeyed to the hallway. +5 John moved to the hallway. +6 Is Sandra in the hallway? yes 2 +7 Daniel journeyed to the hallway. +8 Daniel travelled to the bathroom. +9 Is Daniel in the office? no 8 +10 Mary went back to the kitchen. +11 Sandra went to the garden. +12 Is Mary in the kitchen? yes 10 +13 Mary went back to the bedroom. +14 John moved to the kitchen. +15 Is Mary in the bedroom? yes 13 +1 Daniel went to the bedroom. +2 Mary moved to the kitchen. +3 Is Daniel in the hallway? no 1 +4 Mary got the football there. +5 Daniel went back to the office. +6 Is Mary in the kitchen? yes 2 +7 Mary went back to the bedroom. +8 Daniel moved to the kitchen. +9 Is Mary in the bedroom? yes 7 +10 Sandra moved to the bathroom. +11 Daniel journeyed to the hallway. +12 Is Sandra in the kitchen? no 10 +13 Daniel grabbed the milk there. +14 John journeyed to the hallway. +15 Is John in the hallway? yes 14 +1 John travelled to the office. +2 John moved to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary moved to the garden. +5 Daniel took the football there. +6 Is Mary in the hallway? no 4 +7 Daniel left the football there. +8 Sandra went to the bedroom. +9 Is Sandra in the office? no 8 +10 Sandra got the football there. +11 John travelled to the kitchen. +12 Is John in the hallway? no 11 +13 Daniel went back to the kitchen. +14 Mary got the apple there. +15 Is John in the kitchen? yes 11 +1 John travelled to the hallway. +2 Sandra journeyed to the kitchen. +3 Is John in the hallway? yes 1 +4 John went back to the bathroom. +5 Daniel picked up the milk there. +6 Is Sandra in the bedroom? no 2 +7 Sandra went back to the office. +8 Daniel went back to the bedroom. +9 Is Sandra in the bathroom? no 7 +10 John went back to the hallway. +11 John went back to the kitchen. +12 Is John in the kitchen? yes 11 +13 Mary journeyed to the bedroom. +14 Mary journeyed to the office. +15 Is John in the kitchen? yes 11 +1 Sandra took the football there. +2 Sandra journeyed to the office. +3 Is Sandra in the kitchen? no 2 +4 Daniel went back to the kitchen. +5 Sandra went to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra moved to the office. +8 Sandra dropped the football there. +9 Is Sandra in the office? yes 7 +10 Daniel went to the office. +11 Daniel moved to the bathroom. +12 Is Sandra in the bedroom? no 7 +13 Sandra moved to the garden. +14 Daniel moved to the garden. +15 Is Daniel in the garden? yes 14 +1 Sandra went to the office. +2 Daniel moved to the bathroom. +3 Is Sandra in the office? yes 1 +4 Mary travelled to the garden. +5 John moved to the office. +6 Is John in the office? yes 5 +7 Daniel went to the office. +8 Sandra journeyed to the bedroom. +9 Is Daniel in the bedroom? no 7 +10 Sandra moved to the garden. +11 Mary grabbed the milk there. +12 Is Daniel in the garden? no 7 +13 Daniel moved to the garden. +14 Daniel went back to the bathroom. +15 Is Daniel in the office? no 14 +1 Daniel went to the bedroom. +2 Sandra went to the bathroom. +3 Is Daniel in the garden? no 1 +4 Sandra went back to the garden. +5 Mary went back to the bathroom. +6 Is Mary in the garden? no 5 +7 Sandra took the apple there. +8 Sandra travelled to the office. +9 Is Sandra in the bathroom? no 8 +10 Sandra journeyed to the bathroom. +11 Daniel went to the hallway. +12 Is Daniel in the kitchen? no 11 +13 Daniel went back to the bathroom. +14 Mary travelled to the office. +15 Is Daniel in the bathroom? yes 13 +1 John went back to the hallway. +2 Mary moved to the bathroom. +3 Is John in the kitchen? no 1 +4 Mary got the milk there. +5 Sandra went to the bathroom. +6 Is Sandra in the office? no 5 +7 Daniel journeyed to the bathroom. +8 Mary got the football there. +9 Is Sandra in the bedroom? no 5 +10 John went to the bedroom. +11 Mary journeyed to the kitchen. +12 Is John in the garden? no 10 +13 John travelled to the garden. +14 Mary travelled to the garden. +15 Is Mary in the bedroom? no 14 +1 Daniel went back to the office. +2 John moved to the kitchen. +3 Is John in the bathroom? no 2 +4 Sandra took the football there. +5 Mary travelled to the office. +6 Is Mary in the office? yes 5 +7 Daniel journeyed to the kitchen. +8 Daniel went back to the hallway. +9 Is Daniel in the bedroom? no 8 +10 Mary travelled to the bathroom. +11 Sandra went back to the bedroom. +12 Is Mary in the bathroom? yes 10 +13 Sandra discarded the football. +14 Sandra got the football there. +15 Is Daniel in the hallway? yes 8 +1 John went to the hallway. +2 Mary travelled to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel journeyed to the bedroom. +5 Mary went to the kitchen. +6 Is John in the bathroom? no 1 +7 Sandra took the apple there. +8 Daniel travelled to the kitchen. +9 Is Daniel in the garden? no 8 +10 John journeyed to the kitchen. +11 Sandra moved to the garden. +12 Is Daniel in the kitchen? yes 8 +13 Sandra put down the apple. +14 Daniel moved to the office. +15 Is John in the kitchen? yes 10 +1 John journeyed to the office. +2 Mary moved to the garden. +3 Is Mary in the office? no 2 +4 John went to the kitchen. +5 Daniel moved to the bathroom. +6 Is John in the office? no 4 +7 Daniel moved to the garden. +8 John went back to the office. +9 Is John in the kitchen? no 8 +10 Mary went back to the bathroom. +11 Mary took the football there. +12 Is Daniel in the garden? yes 7 +13 Sandra moved to the bedroom. +14 Mary discarded the football. +15 Is Sandra in the bedroom? yes 13 +1 Mary grabbed the apple there. +2 Daniel took the milk there. +3 Mary put down the apple. +4 Mary got the apple there. +5 Daniel left the milk there. +6 Mary put down the apple. +7 John went to the kitchen. +8 Sandra went back to the bedroom. +9 Is John in the bedroom? no 7 +10 Daniel went back to the garden. +11 John picked up the football there. +12 Is Sandra in the hallway? no 8 +13 John put down the football. +14 Mary grabbed the apple there. +15 Is Daniel in the garden? yes 10 +16 John picked up the football there. +17 John discarded the football there. +18 Daniel moved to the office. +19 Mary journeyed to the bedroom. +20 Is Mary in the bedroom? yes 19 +21 Mary journeyed to the kitchen. +22 Daniel travelled to the bathroom. +23 Is Daniel in the bathroom? yes 22 +1 John journeyed to the bedroom. +2 Sandra travelled to the office. +3 Is John in the bedroom? yes 1 +4 John journeyed to the garden. +5 Sandra got the apple there. +6 Is Sandra in the bathroom? no 2 +7 Sandra put down the apple. +8 Sandra took the apple there. +9 Is Sandra in the office? yes 2 +10 Mary went back to the bathroom. +11 Sandra went to the bedroom. +12 Is Sandra in the kitchen? no 11 +13 Daniel went to the bathroom. +14 John picked up the milk there. +15 Is Sandra in the kitchen? no 11 +1 Mary journeyed to the bedroom. +2 John travelled to the garden. +3 Is John in the garden? yes 2 +4 Daniel grabbed the milk there. +5 John went back to the kitchen. +6 Is John in the hallway? no 5 +7 Mary travelled to the hallway. +8 Daniel put down the milk. +9 Is John in the kitchen? yes 5 +10 John moved to the garden. +11 Sandra went back to the hallway. +12 Is Sandra in the garden? no 11 +13 Mary went back to the garden. +14 Sandra moved to the kitchen. +15 Is John in the kitchen? no 10 +1 John went back to the garden. +2 Sandra went back to the garden. +3 Is John in the office? no 1 +4 Daniel went back to the bathroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 John moved to the office. +8 Sandra went to the bedroom. +9 Is Sandra in the office? no 8 +10 Sandra journeyed to the garden. +11 John grabbed the milk there. +12 Is Sandra in the garden? yes 10 +13 Daniel moved to the garden. +14 Sandra went back to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 Daniel went back to the hallway. +2 Mary moved to the office. +3 Is Mary in the office? yes 2 +4 Sandra moved to the hallway. +5 Daniel went back to the kitchen. +6 Is Mary in the office? yes 2 +7 Sandra travelled to the garden. +8 Daniel grabbed the apple there. +9 Is Daniel in the hallway? no 5 +10 Sandra went back to the bedroom. +11 Mary journeyed to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Sandra travelled to the bathroom. +14 Daniel discarded the apple there. +15 Is Sandra in the bathroom? yes 13 +1 Mary grabbed the milk there. +2 Daniel went to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John grabbed the apple there. +5 Sandra took the football there. +6 Is Daniel in the bedroom? no 2 +7 John moved to the bedroom. +8 Mary went to the bedroom. +9 Is Daniel in the office? no 2 +10 Mary left the milk there. +11 John left the apple there. +12 Is John in the bedroom? yes 7 +13 Daniel went back to the bedroom. +14 Daniel moved to the office. +15 Is Daniel in the garden? no 14 +1 Daniel journeyed to the garden. +2 Sandra went to the hallway. +3 Is Sandra in the bedroom? no 2 +4 Mary journeyed to the bathroom. +5 Mary journeyed to the office. +6 Is Mary in the bathroom? no 5 +7 Mary travelled to the kitchen. +8 Sandra grabbed the apple there. +9 Is Sandra in the hallway? yes 2 +10 Daniel went to the bathroom. +11 Sandra got the football there. +12 Is Mary in the kitchen? yes 7 +13 Sandra moved to the bedroom. +14 Sandra dropped the apple. +15 Is Sandra in the bedroom? yes 13 +1 Mary travelled to the bedroom. +2 Sandra moved to the office. +3 Is Sandra in the office? yes 2 +4 Sandra moved to the bathroom. +5 Sandra travelled to the kitchen. +6 Is Sandra in the kitchen? yes 5 +7 Daniel travelled to the office. +8 Sandra got the milk there. +9 Is Sandra in the kitchen? yes 5 +10 John went back to the garden. +11 John picked up the football there. +12 Is Daniel in the office? yes 7 +13 Sandra travelled to the bathroom. +14 Sandra picked up the apple there. +15 Is John in the garden? yes 10 +1 Sandra went to the garden. +2 Daniel went back to the bedroom. +3 Is Sandra in the garden? yes 1 +4 John went to the bedroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the office? no 5 +7 Daniel travelled to the office. +8 John picked up the apple there. +9 Is John in the bedroom? yes 4 +10 John dropped the apple. +11 John grabbed the football there. +12 Is Daniel in the office? yes 7 +13 John put down the football. +14 Sandra moved to the office. +15 Is Sandra in the bathroom? no 14 +1 Sandra journeyed to the bedroom. +2 Daniel took the apple there. +3 Is Sandra in the bedroom? yes 1 +4 Daniel put down the apple. +5 Daniel picked up the apple there. +6 Is Sandra in the bedroom? yes 1 +7 Sandra travelled to the office. +8 Mary journeyed to the bathroom. +9 Is Sandra in the hallway? no 7 +10 Sandra got the football there. +11 Daniel put down the apple. +12 Is Mary in the bathroom? yes 8 +13 Mary journeyed to the bedroom. +14 Mary travelled to the office. +15 Is Mary in the hallway? no 14 +1 Sandra took the football there. +2 Sandra put down the football. +3 Sandra moved to the bathroom. +4 John got the football there. +5 Is Sandra in the kitchen? no 3 +6 John travelled to the garden. +7 John dropped the football. +8 Is Sandra in the office? no 3 +9 Daniel went back to the hallway. +10 John travelled to the office. +11 Is John in the hallway? no 10 +12 Sandra went to the bedroom. +13 Mary went back to the hallway. +14 Is Daniel in the bedroom? no 9 +15 John moved to the kitchen. +16 Mary moved to the kitchen. +17 Is Mary in the office? no 16 +1 Mary went back to the bedroom. +2 Daniel travelled to the hallway. +3 Is Mary in the bathroom? no 1 +4 Mary journeyed to the kitchen. +5 Mary journeyed to the office. +6 Is Mary in the office? yes 5 +7 John got the apple there. +8 John put down the apple. +9 Is Daniel in the hallway? yes 2 +10 Sandra moved to the garden. +11 John moved to the bathroom. +12 Is Mary in the bathroom? no 5 +13 John travelled to the office. +14 Sandra moved to the bathroom. +15 Is John in the bathroom? no 13 +1 Daniel moved to the kitchen. +2 Sandra got the apple there. +3 Is Daniel in the hallway? no 1 +4 Sandra discarded the apple there. +5 Daniel journeyed to the bathroom. +6 Is Daniel in the kitchen? no 5 +7 Mary went back to the kitchen. +8 John moved to the garden. +9 Is Daniel in the office? no 5 +10 John picked up the football there. +11 Sandra picked up the apple there. +12 Is Daniel in the bedroom? no 5 +13 Daniel travelled to the hallway. +14 Sandra dropped the apple. +15 Is Daniel in the hallway? yes 13 +1 Sandra went back to the kitchen. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Sandra went to the garden. +5 Sandra journeyed to the hallway. +6 Is John in the bedroom? no 2 +7 Mary moved to the bedroom. +8 John went to the office. +9 Is Sandra in the hallway? yes 5 +10 Sandra journeyed to the bathroom. +11 Sandra went to the bedroom. +12 Is Sandra in the hallway? no 11 +13 Sandra travelled to the bathroom. +14 John went back to the bedroom. +15 Is Sandra in the kitchen? no 13 +1 Mary journeyed to the kitchen. +2 John went to the office. +3 Is Mary in the kitchen? yes 1 +4 John travelled to the hallway. +5 Daniel picked up the apple there. +6 Is Mary in the kitchen? yes 1 +7 John travelled to the bathroom. +8 Sandra journeyed to the garden. +9 Is John in the kitchen? no 7 +10 John took the milk there. +11 Daniel discarded the apple. +12 Is Sandra in the garden? yes 8 +13 Daniel got the apple there. +14 Daniel discarded the apple there. +15 Is Sandra in the office? no 8 +1 Daniel grabbed the football there. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the office? no 2 +4 John travelled to the bedroom. +5 Daniel went to the hallway. +6 Is Daniel in the office? no 5 +7 Mary journeyed to the office. +8 Daniel went to the bathroom. +9 Is John in the bedroom? yes 4 +10 Daniel travelled to the garden. +11 Daniel picked up the milk there. +12 Is Daniel in the bathroom? no 10 +13 Mary got the apple there. +14 Daniel put down the milk. +15 Is Daniel in the kitchen? no 10 +1 Daniel went to the office. +2 Mary went back to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Mary took the apple there. +5 Mary went to the kitchen. +6 Is Mary in the bathroom? no 5 +7 Sandra journeyed to the hallway. +8 Mary left the apple. +9 Is Mary in the hallway? no 5 +10 Mary got the apple there. +11 John went to the bathroom. +12 Is Sandra in the bedroom? no 7 +13 John moved to the bedroom. +14 Mary moved to the hallway. +15 Is Mary in the garden? no 14 +1 Sandra went to the hallway. +2 Sandra journeyed to the garden. +3 Is Sandra in the office? no 2 +4 John travelled to the garden. +5 Sandra moved to the office. +6 Is John in the kitchen? no 4 +7 Sandra moved to the kitchen. +8 John picked up the football there. +9 Is Sandra in the kitchen? yes 7 +10 Sandra travelled to the office. +11 Daniel journeyed to the kitchen. +12 Is Sandra in the office? yes 10 +13 Mary went back to the office. +14 Sandra went back to the garden. +15 Is Sandra in the bathroom? no 14 +1 Daniel got the football there. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John journeyed to the kitchen. +5 Daniel went back to the garden. +6 Is Daniel in the garden? yes 5 +7 Sandra travelled to the bathroom. +8 Sandra moved to the kitchen. +9 Is Sandra in the office? no 8 +10 John journeyed to the bathroom. +11 John went to the garden. +12 Is Daniel in the garden? yes 5 +13 Mary went back to the garden. +14 Daniel travelled to the kitchen. +15 Is John in the garden? yes 11 +1 Daniel took the apple there. +2 Mary journeyed to the bathroom. +3 Is Mary in the garden? no 2 +4 Daniel put down the apple there. +5 Sandra journeyed to the office. +6 Is Sandra in the kitchen? no 5 +7 Daniel went back to the kitchen. +8 Sandra went to the hallway. +9 Is Sandra in the bedroom? no 8 +10 Mary picked up the milk there. +11 Mary left the milk there. +12 Is Daniel in the kitchen? yes 7 +13 John picked up the apple there. +14 Sandra went back to the kitchen. +15 Is Sandra in the bedroom? no 14 +1 Mary went to the garden. +2 John travelled to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary travelled to the bathroom. +5 Sandra went back to the kitchen. +6 Is John in the bedroom? yes 2 +7 John travelled to the hallway. +8 Mary moved to the office. +9 Is Mary in the office? yes 8 +10 John went to the garden. +11 Daniel picked up the football there. +12 Is Mary in the bathroom? no 8 +13 John took the milk there. +14 John went to the hallway. +15 Is Mary in the garden? no 8 +1 John travelled to the kitchen. +2 Mary travelled to the hallway. +3 Is Mary in the garden? no 2 +4 Daniel moved to the hallway. +5 John went to the garden. +6 Is Mary in the hallway? yes 2 +7 Sandra travelled to the office. +8 John picked up the milk there. +9 Is Sandra in the bathroom? no 7 +10 John left the milk. +11 Sandra went back to the hallway. +12 Is John in the garden? yes 5 +13 John picked up the milk there. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the hallway? no 14 +1 John moved to the bedroom. +2 John travelled to the office. +3 Is John in the garden? no 2 +4 John moved to the garden. +5 John travelled to the bathroom. +6 Is John in the kitchen? no 5 +7 Mary got the apple there. +8 Daniel travelled to the hallway. +9 Is John in the bathroom? yes 5 +10 Mary dropped the apple there. +11 Mary went to the hallway. +12 Is John in the bathroom? yes 5 +13 Daniel went to the bedroom. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the garden? no 14 +1 Mary moved to the hallway. +2 Sandra journeyed to the bathroom. +3 Is Mary in the hallway? yes 1 +4 Sandra took the milk there. +5 John went back to the bedroom. +6 Is John in the bedroom? yes 5 +7 Sandra discarded the milk. +8 Sandra took the milk there. +9 Is John in the bedroom? yes 5 +10 Sandra left the milk. +11 Daniel took the apple there. +12 Is John in the kitchen? no 5 +13 John moved to the hallway. +14 Sandra grabbed the milk there. +15 Is John in the hallway? yes 13 +1 Mary journeyed to the bathroom. +2 Mary grabbed the football there. +3 Is Mary in the bathroom? yes 1 +4 Mary moved to the bedroom. +5 Sandra moved to the bedroom. +6 Is Sandra in the garden? no 5 +7 Mary travelled to the hallway. +8 Mary discarded the football. +9 Is Mary in the hallway? yes 7 +10 John travelled to the office. +11 Daniel journeyed to the office. +12 Is Daniel in the office? yes 11 +13 John moved to the bedroom. +14 Sandra grabbed the milk there. +15 Is John in the garden? no 13 +1 Sandra got the milk there. +2 Mary moved to the garden. +3 Is Mary in the office? no 2 +4 Sandra discarded the milk. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary journeyed to the kitchen. +8 John moved to the garden. +9 Is Mary in the garden? no 7 +10 John went to the bathroom. +11 John moved to the bedroom. +12 Is John in the bedroom? yes 11 +13 Mary journeyed to the hallway. +14 Sandra took the milk there. +15 Is Mary in the hallway? yes 13 +1 Mary moved to the kitchen. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra went to the office. +5 Daniel went to the bathroom. +6 Is Mary in the bedroom? no 1 +7 Daniel went back to the kitchen. +8 Mary travelled to the bathroom. +9 Is Daniel in the kitchen? yes 7 +10 John moved to the bedroom. +11 Daniel moved to the garden. +12 Is John in the bedroom? yes 10 +13 Mary moved to the hallway. +14 Mary took the football there. +15 Is Mary in the kitchen? no 13 +1 Mary got the apple there. +2 Mary went to the office. +3 Is Mary in the bedroom? no 2 +4 Daniel travelled to the bedroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Mary journeyed to the hallway. +8 John journeyed to the bedroom. +9 Is Mary in the hallway? yes 7 +10 Mary picked up the milk there. +11 John journeyed to the bathroom. +12 Is John in the bedroom? no 11 +13 Sandra went to the hallway. +14 Daniel moved to the garden. +15 Is John in the bedroom? no 11 +1 Daniel took the football there. +2 Daniel put down the football. +3 John moved to the hallway. +4 Daniel got the football there. +5 Is John in the office? no 3 +6 Daniel travelled to the bedroom. +7 Sandra travelled to the office. +8 Is Daniel in the kitchen? no 6 +9 John picked up the milk there. +10 John journeyed to the office. +11 Is Daniel in the bedroom? yes 6 +12 Daniel journeyed to the office. +13 Sandra journeyed to the bedroom. +14 Is Daniel in the office? yes 12 +15 John moved to the bedroom. +16 Sandra travelled to the bathroom. +17 Is Sandra in the garden? no 16 +1 Daniel travelled to the kitchen. +2 Mary travelled to the garden. +3 Is Daniel in the bedroom? no 1 +4 John travelled to the office. +5 Mary moved to the bedroom. +6 Is Daniel in the office? no 1 +7 John journeyed to the garden. +8 John went to the hallway. +9 Is Mary in the kitchen? no 5 +10 John journeyed to the bathroom. +11 Sandra journeyed to the bathroom. +12 Is John in the hallway? no 10 +13 Daniel moved to the office. +14 Mary travelled to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra journeyed to the office. +2 Sandra grabbed the milk there. +3 Is Sandra in the bathroom? no 1 +4 Sandra discarded the milk there. +5 John travelled to the garden. +6 Is Sandra in the office? yes 1 +7 Sandra went to the garden. +8 Mary went to the hallway. +9 Is Sandra in the garden? yes 7 +10 Daniel journeyed to the garden. +11 Daniel travelled to the bedroom. +12 Is Daniel in the kitchen? no 11 +13 Sandra picked up the apple there. +14 Sandra discarded the apple. +15 Is Mary in the hallway? yes 8 +1 Daniel journeyed to the bedroom. +2 Daniel got the milk there. +3 Is Daniel in the bedroom? yes 1 +4 Daniel went to the office. +5 John took the football there. +6 Is Daniel in the hallway? no 4 +7 John dropped the football. +8 Daniel took the football there. +9 Is Daniel in the office? yes 4 +10 Daniel travelled to the kitchen. +11 Daniel went to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 Sandra travelled to the garden. +14 Sandra travelled to the office. +15 Is Daniel in the kitchen? no 11 +1 John picked up the football there. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 John grabbed the milk there. +5 John dropped the football there. +6 Is Mary in the office? yes 2 +7 Sandra journeyed to the bathroom. +8 Sandra went back to the office. +9 Is Sandra in the bedroom? no 8 +10 John got the football there. +11 Daniel went back to the bedroom. +12 Is Sandra in the office? yes 8 +13 Mary moved to the hallway. +14 Mary went to the bedroom. +15 Is Mary in the office? no 14 +1 John travelled to the garden. +2 Sandra journeyed to the garden. +3 Is Sandra in the garden? yes 2 +4 John got the milk there. +5 John left the milk. +6 Is Sandra in the garden? yes 2 +7 Sandra got the milk there. +8 Daniel took the apple there. +9 Is Sandra in the garden? yes 2 +10 Mary went back to the bedroom. +11 Daniel discarded the apple there. +12 Is Mary in the office? no 10 +13 Daniel picked up the apple there. +14 John travelled to the kitchen. +15 Is Mary in the bedroom? yes 10 +1 Daniel moved to the kitchen. +2 John moved to the bathroom. +3 Is Daniel in the kitchen? yes 1 +4 Daniel went back to the office. +5 John went to the kitchen. +6 Is Daniel in the office? yes 4 +7 John moved to the garden. +8 Sandra went to the hallway. +9 Is Sandra in the bedroom? no 8 +10 Mary went to the bedroom. +11 Sandra moved to the bathroom. +12 Is Mary in the kitchen? no 10 +13 John moved to the hallway. +14 Mary grabbed the football there. +15 Is Sandra in the garden? no 11 +1 Sandra went back to the garden. +2 Mary picked up the apple there. +3 Is Sandra in the office? no 1 +4 Sandra travelled to the bathroom. +5 Daniel travelled to the office. +6 Is Sandra in the hallway? no 4 +7 Mary put down the apple there. +8 Mary took the apple there. +9 Is Daniel in the kitchen? no 5 +10 Mary moved to the garden. +11 John moved to the office. +12 Is Daniel in the kitchen? no 5 +13 Mary put down the apple. +14 Daniel went to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 John travelled to the kitchen. +2 John went back to the hallway. +3 Is John in the garden? no 2 +4 Mary moved to the garden. +5 Daniel journeyed to the kitchen. +6 Is Mary in the bedroom? no 4 +7 Sandra grabbed the apple there. +8 John went back to the kitchen. +9 Is Daniel in the kitchen? yes 5 +10 Mary moved to the hallway. +11 Mary went back to the office. +12 Is Daniel in the bathroom? no 5 +13 John went back to the office. +14 Mary went to the kitchen. +15 Is John in the hallway? no 13 +1 John went back to the office. +2 Mary picked up the football there. +3 Is John in the hallway? no 1 +4 Mary discarded the football there. +5 Daniel went back to the office. +6 Is John in the bedroom? no 1 +7 Mary travelled to the hallway. +8 Mary journeyed to the garden. +9 Is Mary in the bedroom? no 8 +10 Mary got the apple there. +11 Mary took the milk there. +12 Is Mary in the garden? yes 8 +13 Sandra travelled to the garden. +14 Daniel travelled to the bedroom. +15 Is Sandra in the bedroom? no 13 +1 Daniel grabbed the football there. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel put down the football. +5 Mary got the apple there. +6 Is Sandra in the bedroom? no 2 +7 Mary put down the apple there. +8 Daniel went to the office. +9 Is Sandra in the kitchen? yes 2 +10 Mary moved to the garden. +11 Sandra went to the bedroom. +12 Is Mary in the kitchen? no 10 +13 Sandra took the apple there. +14 John journeyed to the kitchen. +15 Is Daniel in the office? yes 8 +1 Daniel went to the garden. +2 Mary went to the kitchen. +3 Is Mary in the hallway? no 2 +4 Sandra got the apple there. +5 Daniel picked up the football there. +6 Is Mary in the kitchen? yes 2 +7 Daniel went back to the kitchen. +8 John went back to the bedroom. +9 Is Mary in the kitchen? yes 2 +10 John went back to the kitchen. +11 John took the milk there. +12 Is Daniel in the office? no 7 +13 John dropped the milk. +14 Daniel dropped the football. +15 Is John in the kitchen? yes 10 +1 Mary went to the office. +2 Mary journeyed to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 John went back to the office. +5 John journeyed to the bathroom. +6 Is John in the bathroom? yes 5 +7 Sandra went to the office. +8 Daniel journeyed to the bathroom. +9 Is John in the office? no 5 +10 Mary journeyed to the office. +11 Sandra took the apple there. +12 Is John in the bathroom? yes 5 +13 Sandra travelled to the garden. +14 John went back to the office. +15 Is Sandra in the garden? yes 13 +1 Mary journeyed to the office. +2 Sandra took the apple there. +3 Is Mary in the office? yes 1 +4 Sandra grabbed the milk there. +5 Mary travelled to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Daniel moved to the bathroom. +8 Daniel went to the hallway. +9 Is Daniel in the kitchen? no 8 +10 Daniel went back to the office. +11 Sandra discarded the milk. +12 Is Daniel in the bathroom? no 10 +13 Mary travelled to the bathroom. +14 Sandra discarded the apple. +15 Is Mary in the bathroom? yes 13 +1 Daniel got the apple there. +2 Daniel took the milk there. +3 Sandra journeyed to the office. +4 Mary travelled to the hallway. +5 Is Mary in the hallway? yes 4 +6 Mary travelled to the kitchen. +7 Daniel discarded the milk. +8 Is Sandra in the kitchen? no 3 +9 Mary went back to the office. +10 John journeyed to the hallway. +11 Is Mary in the hallway? no 9 +12 Mary went to the bathroom. +13 Mary journeyed to the office. +14 Is Mary in the garden? no 13 +15 Mary journeyed to the bathroom. +16 Mary moved to the hallway. +17 Is Mary in the hallway? yes 16 +1 Sandra moved to the kitchen. +2 Mary moved to the bathroom. +3 Is Mary in the garden? no 2 +4 Daniel went back to the hallway. +5 Sandra travelled to the garden. +6 Is Sandra in the hallway? no 5 +7 Mary travelled to the hallway. +8 Mary travelled to the kitchen. +9 Is Mary in the hallway? no 8 +10 Daniel moved to the office. +11 Daniel grabbed the milk there. +12 Is Sandra in the office? no 5 +13 John went to the hallway. +14 John took the apple there. +15 Is John in the garden? no 13 +1 John went to the hallway. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary moved to the bedroom. +5 Daniel picked up the apple there. +6 Is John in the bedroom? no 1 +7 Daniel journeyed to the hallway. +8 Daniel put down the apple. +9 Is Daniel in the hallway? yes 7 +10 John got the apple there. +11 Mary picked up the football there. +12 Is Daniel in the hallway? yes 7 +13 Mary left the football. +14 Mary travelled to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Mary moved to the garden. +2 John journeyed to the bedroom. +3 Is John in the kitchen? no 2 +4 Mary went to the bedroom. +5 Daniel went back to the bedroom. +6 Is Daniel in the bathroom? no 5 +7 Sandra travelled to the kitchen. +8 Daniel moved to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Mary travelled to the garden. +11 Daniel moved to the garden. +12 Is Daniel in the garden? yes 11 +13 Daniel grabbed the milk there. +14 Daniel got the football there. +15 Is Daniel in the garden? yes 11 +1 Sandra picked up the milk there. +2 John journeyed to the bedroom. +3 Is John in the hallway? no 2 +4 Daniel went to the hallway. +5 Mary travelled to the bathroom. +6 Is Daniel in the hallway? yes 4 +7 John moved to the garden. +8 Sandra picked up the apple there. +9 Is John in the garden? yes 7 +10 John went back to the bedroom. +11 Sandra put down the milk. +12 Is Mary in the bathroom? yes 5 +13 Daniel journeyed to the kitchen. +14 Sandra moved to the garden. +15 Is John in the bedroom? yes 10 +1 Sandra travelled to the bedroom. +2 Sandra went back to the hallway. +3 Is Sandra in the garden? no 2 +4 Daniel moved to the bedroom. +5 Sandra travelled to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 John grabbed the apple there. +8 Daniel travelled to the garden. +9 Is Sandra in the kitchen? no 5 +10 Sandra moved to the office. +11 John left the apple. +12 Is Daniel in the garden? yes 8 +13 John went to the office. +14 Daniel journeyed to the office. +15 Is John in the bedroom? no 13 +1 Daniel went to the kitchen. +2 Mary grabbed the apple there. +3 Is Daniel in the kitchen? yes 1 +4 Mary took the football there. +5 Mary left the apple. +6 Is Daniel in the bathroom? no 1 +7 Mary discarded the football. +8 John moved to the garden. +9 Is John in the bedroom? no 8 +10 Mary grabbed the football there. +11 Sandra went to the office. +12 Is Sandra in the kitchen? no 11 +13 John took the apple there. +14 Mary went to the hallway. +15 Is Mary in the hallway? yes 14 +1 Daniel travelled to the hallway. +2 Sandra went back to the bathroom. +3 Is Daniel in the garden? no 1 +4 John journeyed to the hallway. +5 John travelled to the bathroom. +6 Is Sandra in the garden? no 2 +7 Daniel moved to the bedroom. +8 Daniel moved to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Sandra picked up the milk there. +11 Daniel went to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Sandra journeyed to the office. +14 Sandra left the milk. +15 Is Sandra in the office? yes 13 +1 Sandra went back to the garden. +2 John travelled to the office. +3 Is Sandra in the bedroom? no 1 +4 Daniel moved to the garden. +5 Sandra journeyed to the bedroom. +6 Is Sandra in the bathroom? no 5 +7 Daniel moved to the bathroom. +8 Daniel journeyed to the hallway. +9 Is Daniel in the bathroom? no 8 +10 John took the football there. +11 John moved to the hallway. +12 Is Daniel in the office? no 8 +13 John left the football. +14 Sandra went to the bathroom. +15 Is John in the hallway? yes 11 +1 Sandra went back to the office. +2 Sandra went back to the bathroom. +3 Is Sandra in the office? no 2 +4 John travelled to the hallway. +5 Mary went to the office. +6 Is John in the hallway? yes 4 +7 Daniel went to the hallway. +8 John travelled to the garden. +9 Is Sandra in the hallway? no 2 +10 John journeyed to the bedroom. +11 Sandra went back to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 Sandra moved to the office. +14 Mary went back to the kitchen. +15 Is Sandra in the bedroom? no 13 +1 Mary took the football there. +2 John moved to the garden. +3 Is John in the kitchen? no 2 +4 Mary dropped the football. +5 Mary went to the bathroom. +6 Is Mary in the garden? no 5 +7 Sandra travelled to the hallway. +8 Sandra went back to the office. +9 Is Sandra in the office? yes 8 +10 Sandra got the apple there. +11 Sandra left the apple. +12 Is Sandra in the office? yes 8 +13 Daniel went to the garden. +14 John went to the bedroom. +15 Is Sandra in the office? yes 8 +1 Mary travelled to the garden. +2 Daniel journeyed to the office. +3 Is Mary in the bathroom? no 1 +4 Sandra went back to the hallway. +5 John journeyed to the kitchen. +6 Is Mary in the bedroom? no 1 +7 Daniel travelled to the garden. +8 Daniel moved to the bathroom. +9 Is Daniel in the garden? no 8 +10 Daniel journeyed to the bedroom. +11 Daniel moved to the bathroom. +12 Is Daniel in the kitchen? no 11 +13 Mary went to the hallway. +14 John moved to the office. +15 Is Mary in the hallway? yes 13 +1 John travelled to the garden. +2 Mary took the apple there. +3 Is John in the garden? yes 1 +4 John grabbed the football there. +5 Sandra went back to the kitchen. +6 Is John in the hallway? no 1 +7 Mary journeyed to the garden. +8 John left the football. +9 Is Sandra in the garden? no 5 +10 John took the football there. +11 John journeyed to the office. +12 Is Mary in the garden? yes 7 +13 Mary moved to the kitchen. +14 John went back to the bathroom. +15 Is John in the kitchen? no 14 +1 Sandra moved to the office. +2 Mary travelled to the bedroom. +3 Is Mary in the garden? no 2 +4 Daniel picked up the apple there. +5 Sandra picked up the football there. +6 Is Mary in the bedroom? yes 2 +7 Daniel went back to the bedroom. +8 Daniel discarded the apple. +9 Is Mary in the hallway? no 2 +10 Sandra discarded the football. +11 Daniel got the apple there. +12 Is Daniel in the bedroom? yes 7 +13 Sandra travelled to the bedroom. +14 Mary went back to the kitchen. +15 Is Sandra in the garden? no 13 +1 Sandra went back to the hallway. +2 Sandra got the apple there. +3 Is Sandra in the hallway? yes 1 +4 Daniel went back to the bathroom. +5 Sandra travelled to the office. +6 Is Sandra in the bedroom? no 5 +7 Daniel went to the kitchen. +8 Sandra went to the kitchen. +9 Is Daniel in the garden? no 7 +10 Sandra journeyed to the office. +11 Daniel took the football there. +12 Is Sandra in the office? yes 10 +13 Sandra took the milk there. +14 Sandra left the milk. +15 Is Sandra in the kitchen? no 10 +1 John moved to the bathroom. +2 Daniel travelled to the garden. +3 Is Daniel in the office? no 2 +4 Sandra got the football there. +5 John took the milk there. +6 Is Daniel in the bathroom? no 2 +7 John put down the milk. +8 John picked up the milk there. +9 Is Daniel in the garden? yes 2 +10 Daniel moved to the hallway. +11 Sandra discarded the football. +12 Is Daniel in the hallway? yes 10 +13 John dropped the milk. +14 Daniel went back to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 John journeyed to the hallway. +2 Daniel journeyed to the bedroom. +3 Is John in the hallway? yes 1 +4 Mary went to the kitchen. +5 John took the football there. +6 Is Daniel in the bathroom? no 2 +7 Daniel went to the kitchen. +8 Mary went back to the office. +9 Is Daniel in the kitchen? yes 7 +10 Mary went back to the garden. +11 John went back to the office. +12 Is Daniel in the bathroom? no 7 +13 John left the football. +14 John journeyed to the bedroom. +15 Is Mary in the office? no 10 +1 Mary moved to the hallway. +2 Sandra journeyed to the hallway. +3 Is Mary in the hallway? yes 1 +4 Mary journeyed to the office. +5 John travelled to the kitchen. +6 Is Mary in the office? yes 4 +7 Sandra moved to the office. +8 Daniel went back to the bathroom. +9 Is Sandra in the bathroom? no 7 +10 Mary travelled to the bedroom. +11 Daniel journeyed to the bedroom. +12 Is Sandra in the office? yes 7 +13 Sandra travelled to the kitchen. +14 Sandra journeyed to the office. +15 Is Sandra in the hallway? no 14 +1 Daniel travelled to the hallway. +2 John went to the kitchen. +3 Is Daniel in the garden? no 1 +4 Sandra travelled to the hallway. +5 John got the milk there. +6 Is Sandra in the hallway? yes 4 +7 Mary journeyed to the bathroom. +8 Sandra travelled to the kitchen. +9 Is John in the kitchen? yes 2 +10 Daniel grabbed the football there. +11 Mary moved to the hallway. +12 Is Mary in the garden? no 11 +13 Daniel went back to the kitchen. +14 John put down the milk. +15 Is Sandra in the kitchen? yes 8 +1 Daniel moved to the hallway. +2 Mary got the apple there. +3 Is Daniel in the kitchen? no 1 +4 Sandra travelled to the garden. +5 Mary dropped the apple. +6 Is Sandra in the kitchen? no 4 +7 John went back to the office. +8 John picked up the football there. +9 Is John in the hallway? no 7 +10 John dropped the football. +11 John grabbed the football there. +12 Is John in the office? yes 7 +13 Daniel got the milk there. +14 John went back to the garden. +15 Is John in the hallway? no 14 +1 Sandra took the football there. +2 John went back to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel went back to the kitchen. +5 Sandra journeyed to the bedroom. +6 Is John in the hallway? yes 2 +7 Mary journeyed to the kitchen. +8 Mary took the apple there. +9 Is Mary in the garden? no 7 +10 John got the milk there. +11 John moved to the kitchen. +12 Is Sandra in the office? no 5 +13 Sandra dropped the football there. +14 Sandra travelled to the office. +15 Is John in the garden? no 11 +1 Sandra travelled to the hallway. +2 John got the milk there. +3 Is Sandra in the hallway? yes 1 +4 John took the apple there. +5 John went to the kitchen. +6 Is Sandra in the hallway? yes 1 +7 John discarded the milk. +8 John dropped the apple. +9 Is John in the garden? no 5 +10 John got the apple there. +11 Sandra moved to the garden. +12 Is Sandra in the bathroom? no 11 +13 Sandra moved to the kitchen. +14 John moved to the bathroom. +15 Is Sandra in the office? no 13 +1 Mary journeyed to the bathroom. +2 Sandra journeyed to the garden. +3 Is Mary in the bathroom? yes 1 +4 Daniel journeyed to the hallway. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Daniel went to the kitchen. +8 Sandra went back to the office. +9 Is Daniel in the kitchen? yes 7 +10 Daniel travelled to the office. +11 Mary journeyed to the kitchen. +12 Is Daniel in the office? yes 10 +13 John travelled to the garden. +14 John journeyed to the hallway. +15 Is Daniel in the garden? no 10 +1 Mary grabbed the apple there. +2 Sandra went back to the bedroom. +3 Is Sandra in the kitchen? no 2 +4 Daniel moved to the garden. +5 Sandra journeyed to the hallway. +6 Is Sandra in the bedroom? no 5 +7 Sandra travelled to the office. +8 Mary moved to the bathroom. +9 Is Sandra in the office? yes 7 +10 John went back to the kitchen. +11 Mary went to the hallway. +12 Is Mary in the bedroom? no 11 +13 Daniel went to the bedroom. +14 Mary discarded the apple there. +15 Is John in the garden? no 10 +1 John got the football there. +2 Daniel journeyed to the hallway. +3 Is Daniel in the office? no 2 +4 John discarded the football there. +5 Mary went to the office. +6 Is Mary in the garden? no 5 +7 John moved to the office. +8 Mary moved to the bathroom. +9 Is Mary in the kitchen? no 8 +10 Daniel went to the kitchen. +11 John went back to the kitchen. +12 Is John in the garden? no 11 +13 John moved to the hallway. +14 Mary moved to the office. +15 Is John in the kitchen? no 13 +1 John travelled to the kitchen. +2 Mary went back to the hallway. +3 Is John in the bathroom? no 1 +4 Sandra took the apple there. +5 Sandra discarded the apple. +6 Is John in the garden? no 1 +7 John grabbed the apple there. +8 John discarded the apple. +9 Is Mary in the bathroom? no 2 +10 Sandra went back to the garden. +11 Sandra journeyed to the office. +12 Is Sandra in the hallway? no 11 +13 John picked up the apple there. +14 Mary travelled to the bedroom. +15 Is Sandra in the office? yes 11 +1 Mary took the football there. +2 Mary moved to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John journeyed to the kitchen. +5 John went back to the garden. +6 Is John in the office? no 5 +7 John went to the kitchen. +8 Sandra travelled to the garden. +9 Is John in the kitchen? yes 7 +10 Sandra got the apple there. +11 Sandra went back to the bathroom. +12 Is Sandra in the hallway? no 11 +13 Mary moved to the hallway. +14 Daniel moved to the garden. +15 Is Sandra in the bathroom? yes 11 +1 John went back to the bedroom. +2 Sandra went back to the bedroom. +3 Is Sandra in the office? no 2 +4 John went back to the kitchen. +5 John moved to the garden. +6 Is John in the hallway? no 5 +7 Sandra travelled to the garden. +8 John went to the bathroom. +9 Is John in the bathroom? yes 8 +10 Daniel went back to the hallway. +11 John went back to the hallway. +12 Is Daniel in the hallway? yes 10 +13 Sandra moved to the kitchen. +14 Daniel went to the garden. +15 Is John in the hallway? yes 11 +1 John took the apple there. +2 John travelled to the bathroom. +3 Is John in the hallway? no 2 +4 Sandra travelled to the office. +5 John discarded the apple. +6 Is John in the bathroom? yes 2 +7 Daniel went to the bathroom. +8 John journeyed to the hallway. +9 Is Daniel in the hallway? no 7 +10 Mary journeyed to the office. +11 Daniel journeyed to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Sandra took the football there. +14 Mary moved to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 John went to the garden. +2 Mary travelled to the bedroom. +3 Is John in the garden? yes 1 +4 John travelled to the bedroom. +5 Sandra journeyed to the garden. +6 Is John in the garden? no 4 +7 Daniel moved to the kitchen. +8 Daniel travelled to the bedroom. +9 Is Mary in the kitchen? no 2 +10 Sandra moved to the bedroom. +11 Daniel journeyed to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Daniel journeyed to the bathroom. +14 Daniel picked up the football there. +15 Is Daniel in the hallway? no 13 +1 Daniel went back to the bedroom. +2 Sandra went to the hallway. +3 Is Daniel in the bedroom? yes 1 +4 John journeyed to the garden. +5 Daniel picked up the football there. +6 Is Daniel in the bedroom? yes 1 +7 Sandra went to the garden. +8 Daniel dropped the football. +9 Is John in the bedroom? no 4 +10 Sandra moved to the kitchen. +11 Sandra went back to the bathroom. +12 Is Sandra in the office? no 11 +13 Mary journeyed to the office. +14 Daniel grabbed the milk there. +15 Is Sandra in the bedroom? no 11 +1 John went to the bathroom. +2 Daniel went to the bathroom. +3 Is John in the bathroom? yes 1 +4 Sandra took the milk there. +5 Mary moved to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra took the apple there. +8 Sandra journeyed to the kitchen. +9 Is Mary in the bathroom? yes 5 +10 Daniel journeyed to the garden. +11 Daniel went back to the kitchen. +12 Is Mary in the bathroom? yes 5 +13 Mary went back to the kitchen. +14 John journeyed to the bedroom. +15 Is Daniel in the bathroom? no 11 +1 Daniel went to the hallway. +2 Daniel picked up the milk there. +3 Is Daniel in the hallway? yes 1 +4 Sandra moved to the bathroom. +5 Sandra journeyed to the kitchen. +6 Is Daniel in the office? no 1 +7 Daniel got the football there. +8 John went to the office. +9 Is John in the bathroom? no 8 +10 Mary went to the bedroom. +11 John went to the bathroom. +12 Is Mary in the kitchen? no 10 +13 Sandra moved to the hallway. +14 John journeyed to the hallway. +15 Is Sandra in the office? no 13 +1 Daniel journeyed to the bedroom. +2 Sandra travelled to the office. +3 Is Daniel in the kitchen? no 1 +4 Daniel went to the office. +5 Mary journeyed to the bathroom. +6 Is Sandra in the office? yes 2 +7 Sandra went to the garden. +8 Daniel moved to the garden. +9 Is Sandra in the garden? yes 7 +10 Daniel picked up the football there. +11 Sandra picked up the apple there. +12 Is Daniel in the bedroom? no 8 +13 Daniel discarded the football there. +14 Daniel went to the bathroom. +15 Is Daniel in the hallway? no 14 +1 Sandra travelled to the bathroom. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 Mary took the football there. +5 Daniel went to the hallway. +6 Is Sandra in the garden? yes 2 +7 John journeyed to the kitchen. +8 Mary went back to the bathroom. +9 Is Sandra in the garden? yes 2 +10 Mary grabbed the milk there. +11 Daniel travelled to the office. +12 Is John in the bathroom? no 7 +13 Mary moved to the kitchen. +14 John grabbed the apple there. +15 Is Mary in the hallway? no 13 +1 Mary moved to the office. +2 Mary got the milk there. +3 Is Mary in the bathroom? no 1 +4 John moved to the bathroom. +5 Mary went to the bedroom. +6 Is John in the bathroom? yes 4 +7 Sandra journeyed to the office. +8 John got the apple there. +9 Is Mary in the bathroom? no 5 +10 John travelled to the office. +11 Mary discarded the milk. +12 Is John in the office? yes 10 +13 Daniel went to the bedroom. +14 John discarded the apple. +15 Is John in the office? yes 10 +1 Mary moved to the garden. +2 Sandra went to the office. +3 Is Mary in the kitchen? no 1 +4 John went back to the kitchen. +5 Mary journeyed to the hallway. +6 Is Mary in the hallway? yes 5 +7 Daniel went back to the bedroom. +8 Sandra travelled to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 John travelled to the bathroom. +11 Daniel went back to the office. +12 Is Sandra in the office? no 8 +13 Sandra journeyed to the hallway. +14 Daniel grabbed the football there. +15 Is John in the bathroom? yes 10 +1 Daniel moved to the garden. +2 Sandra went to the hallway. +3 Is Daniel in the garden? yes 1 +4 Mary went back to the garden. +5 Daniel journeyed to the office. +6 Is Mary in the bedroom? no 4 +7 John went to the office. +8 John travelled to the hallway. +9 Is Daniel in the garden? no 5 +10 Mary moved to the hallway. +11 John journeyed to the kitchen. +12 Is Mary in the hallway? yes 10 +13 Daniel got the football there. +14 John travelled to the garden. +15 Is John in the hallway? no 14 +1 Sandra went back to the hallway. +2 Mary went to the hallway. +3 Is Sandra in the hallway? yes 1 +4 John moved to the kitchen. +5 Sandra went back to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Daniel journeyed to the bathroom. +8 John went back to the hallway. +9 Is Sandra in the bathroom? yes 5 +10 Daniel picked up the apple there. +11 Daniel moved to the garden. +12 Is Sandra in the hallway? no 5 +13 Mary travelled to the bathroom. +14 Daniel left the apple. +15 Is John in the bedroom? no 8 +1 Mary went back to the kitchen. +2 Mary went back to the hallway. +3 Is Mary in the hallway? yes 2 +4 Mary moved to the kitchen. +5 Sandra travelled to the garden. +6 Is Mary in the bathroom? no 4 +7 Mary journeyed to the hallway. +8 Sandra journeyed to the bedroom. +9 Is Mary in the bathroom? no 7 +10 Mary journeyed to the office. +11 Mary moved to the bathroom. +12 Is Mary in the bathroom? yes 11 +13 Sandra went back to the office. +14 Sandra picked up the football there. +15 Is Sandra in the garden? no 13 +1 John picked up the apple there. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Mary journeyed to the hallway. +5 Mary travelled to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 John left the apple. +8 Daniel moved to the office. +9 Is Sandra in the hallway? no 2 +10 John picked up the apple there. +11 Sandra journeyed to the garden. +12 Is Daniel in the office? yes 8 +13 John dropped the apple. +14 John grabbed the apple there. +15 Is Daniel in the office? yes 8 +1 Mary grabbed the apple there. +2 Mary put down the apple. +3 Sandra moved to the hallway. +4 Daniel went back to the garden. +5 Is Sandra in the hallway? yes 3 +6 Sandra got the apple there. +7 John journeyed to the kitchen. +8 Is Daniel in the garden? yes 4 +9 John took the football there. +10 John went back to the hallway. +11 Is John in the kitchen? no 10 +12 Sandra discarded the apple there. +13 Daniel went to the office. +14 Is John in the hallway? yes 10 +15 John grabbed the apple there. +16 John moved to the office. +17 Is John in the office? yes 16 +1 Sandra got the football there. +2 Sandra dropped the football there. +3 Mary went back to the kitchen. +4 John went back to the office. +5 Is Mary in the kitchen? yes 3 +6 Sandra took the football there. +7 Mary went to the bedroom. +8 Is John in the office? yes 4 +9 Daniel journeyed to the bedroom. +10 Mary travelled to the hallway. +11 Is John in the kitchen? no 4 +12 John journeyed to the kitchen. +13 John journeyed to the hallway. +14 Is Mary in the hallway? yes 10 +15 Daniel took the apple there. +16 Sandra travelled to the bedroom. +17 Is John in the bathroom? no 13 +1 Sandra moved to the office. +2 Daniel got the apple there. +3 Is Sandra in the kitchen? no 1 +4 John moved to the office. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bathroom? no 5 +7 Mary travelled to the garden. +8 John journeyed to the kitchen. +9 Is John in the hallway? no 8 +10 Mary travelled to the bedroom. +11 Daniel discarded the apple. +12 Is Mary in the kitchen? no 10 +13 John moved to the hallway. +14 Daniel got the apple there. +15 Is John in the garden? no 13 +1 Mary went back to the bedroom. +2 Sandra picked up the milk there. +3 Is Mary in the bedroom? yes 1 +4 Sandra dropped the milk. +5 Daniel journeyed to the office. +6 Is Daniel in the garden? no 5 +7 John travelled to the kitchen. +8 Sandra journeyed to the office. +9 Is Daniel in the hallway? no 5 +10 Daniel journeyed to the bedroom. +11 John took the football there. +12 Is John in the bathroom? no 7 +13 Sandra travelled to the kitchen. +14 Mary went back to the garden. +15 Is Daniel in the bedroom? yes 10 +1 Sandra travelled to the hallway. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel moved to the kitchen. +5 Daniel went back to the office. +6 Is Sandra in the kitchen? yes 2 +7 John went back to the bathroom. +8 Daniel went to the garden. +9 Is Sandra in the office? no 2 +10 Daniel went back to the bathroom. +11 John took the milk there. +12 Is Daniel in the bathroom? yes 10 +13 Sandra moved to the bathroom. +14 Mary moved to the bedroom. +15 Is Daniel in the bathroom? yes 10 +1 Sandra moved to the kitchen. +2 Sandra grabbed the football there. +3 Is Sandra in the kitchen? yes 1 +4 Daniel picked up the apple there. +5 Mary went to the office. +6 Is Mary in the kitchen? no 5 +7 Sandra put down the football there. +8 John went to the bathroom. +9 Is John in the bathroom? yes 8 +10 Sandra went back to the bedroom. +11 Daniel took the football there. +12 Is Sandra in the bedroom? yes 10 +13 Daniel left the football. +14 Daniel discarded the apple. +15 Is John in the bathroom? yes 8 +1 Daniel grabbed the apple there. +2 Daniel travelled to the office. +3 Is Daniel in the bathroom? no 2 +4 Daniel left the apple. +5 Sandra went to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel took the apple there. +8 Mary moved to the garden. +9 Is Mary in the bedroom? no 8 +10 Sandra moved to the kitchen. +11 Mary travelled to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Mary went back to the kitchen. +14 Mary went to the garden. +15 Is Mary in the garden? yes 14 +1 Mary grabbed the football there. +2 John travelled to the hallway. +3 Is John in the garden? no 2 +4 John journeyed to the bedroom. +5 Mary discarded the football. +6 Is John in the garden? no 4 +7 Mary grabbed the football there. +8 Mary dropped the football. +9 Is John in the bedroom? yes 4 +10 Daniel picked up the football there. +11 Daniel left the football there. +12 Daniel grabbed the football there. +13 Daniel dropped the football. +14 Sandra picked up the apple there. +15 Sandra put down the apple. +16 Mary went back to the hallway. +17 Sandra grabbed the milk there. +18 Is Mary in the bedroom? no 16 +19 Daniel got the football there. +20 Mary journeyed to the garden. +21 Is Mary in the kitchen? no 20 +1 Sandra went to the garden. +2 Daniel went to the bathroom. +3 Is Sandra in the garden? yes 1 +4 Daniel journeyed to the garden. +5 Daniel went back to the hallway. +6 Is Daniel in the bedroom? no 5 +7 John got the milk there. +8 John journeyed to the kitchen. +9 Is John in the bedroom? no 8 +10 Mary went to the bedroom. +11 John discarded the milk there. +12 Is Daniel in the hallway? yes 5 +13 John went back to the bedroom. +14 Sandra journeyed to the bathroom. +15 Is John in the bedroom? yes 13 +1 Mary went to the kitchen. +2 John went back to the hallway. +3 Is Mary in the bathroom? no 1 +4 Mary journeyed to the bathroom. +5 John went to the office. +6 Is John in the garden? no 5 +7 John went back to the bedroom. +8 Mary went back to the office. +9 Is Mary in the office? yes 8 +10 John went to the hallway. +11 John got the apple there. +12 Is John in the bedroom? no 10 +13 John left the apple. +14 John got the apple there. +15 Is Mary in the office? yes 8 +1 Sandra moved to the hallway. +2 Sandra got the milk there. +3 Is Sandra in the hallway? yes 1 +4 John journeyed to the office. +5 Daniel went back to the garden. +6 Is John in the kitchen? no 4 +7 Daniel went back to the hallway. +8 Daniel took the football there. +9 Is Daniel in the bathroom? no 7 +10 Sandra went to the bedroom. +11 Daniel travelled to the bedroom. +12 Is Daniel in the kitchen? no 11 +13 Daniel moved to the hallway. +14 Sandra moved to the hallway. +15 Is Sandra in the garden? no 14 +1 Daniel went to the bedroom. +2 Daniel picked up the milk there. +3 Is Daniel in the bedroom? yes 1 +4 Sandra got the football there. +5 Daniel moved to the bathroom. +6 Is Daniel in the office? no 5 +7 Daniel travelled to the bedroom. +8 Sandra went back to the hallway. +9 Is Daniel in the bedroom? yes 7 +10 Mary moved to the bathroom. +11 Sandra moved to the bedroom. +12 Is Daniel in the bedroom? yes 7 +13 Sandra travelled to the kitchen. +14 Daniel travelled to the hallway. +15 Is Sandra in the kitchen? yes 13 +1 Sandra went to the bedroom. +2 Mary grabbed the football there. +3 Is Sandra in the bedroom? yes 1 +4 John grabbed the apple there. +5 Mary moved to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Daniel went to the kitchen. +8 John moved to the office. +9 Is John in the hallway? no 8 +10 Mary journeyed to the hallway. +11 Sandra went back to the office. +12 Is John in the kitchen? no 8 +13 John discarded the apple. +14 Mary went back to the kitchen. +15 Is Mary in the office? no 14 +1 Mary travelled to the hallway. +2 Sandra travelled to the bedroom. +3 Is Mary in the office? no 1 +4 Daniel journeyed to the hallway. +5 Sandra got the football there. +6 Is Daniel in the hallway? yes 4 +7 Sandra discarded the football. +8 John took the football there. +9 Is Daniel in the hallway? yes 4 +10 John put down the football. +11 John got the football there. +12 Mary travelled to the office. +13 John dropped the football. +14 Is Mary in the hallway? no 12 +15 John picked up the football there. +16 Sandra went to the bathroom. +17 Is Mary in the office? yes 12 +1 John got the milk there. +2 Mary journeyed to the garden. +3 Is Mary in the bathroom? no 2 +4 Mary went back to the office. +5 Daniel went to the bathroom. +6 Is Mary in the bedroom? no 4 +7 Mary moved to the kitchen. +8 John went back to the bathroom. +9 Is John in the bathroom? yes 8 +10 Daniel moved to the garden. +11 Mary journeyed to the office. +12 Is Daniel in the garden? yes 10 +13 John travelled to the garden. +14 Mary travelled to the bathroom. +15 Is Daniel in the garden? yes 10 +1 Sandra travelled to the hallway. +2 Daniel got the milk there. +3 Is Sandra in the hallway? yes 1 +4 Mary went to the kitchen. +5 Daniel travelled to the garden. +6 Is Mary in the kitchen? yes 4 +7 Daniel took the football there. +8 Sandra journeyed to the office. +9 Is Sandra in the office? yes 8 +10 Daniel dropped the milk. +11 Mary went back to the garden. +12 Is Daniel in the garden? yes 5 +13 Daniel picked up the milk there. +14 Daniel went back to the hallway. +15 Is Mary in the bedroom? no 11 +1 John moved to the hallway. +2 Mary went back to the garden. +3 Is Mary in the garden? yes 2 +4 Mary went to the bathroom. +5 John got the apple there. +6 Is John in the hallway? yes 1 +7 John went back to the garden. +8 Daniel took the football there. +9 Is John in the kitchen? no 7 +10 John put down the apple. +11 John picked up the apple there. +12 Is John in the office? no 7 +13 John got the milk there. +14 John discarded the milk. +15 John dropped the apple. +16 Sandra went to the garden. +17 Is Sandra in the garden? yes 16 +1 Mary travelled to the garden. +2 Sandra went to the garden. +3 Is Mary in the hallway? no 1 +4 John travelled to the office. +5 Daniel moved to the kitchen. +6 Is Daniel in the bedroom? no 5 +7 Daniel journeyed to the bedroom. +8 Mary travelled to the bathroom. +9 Is Sandra in the garden? yes 2 +10 Daniel travelled to the kitchen. +11 Sandra moved to the bedroom. +12 Is Daniel in the bedroom? no 10 +13 Sandra got the football there. +14 Sandra discarded the football. +15 Is Daniel in the kitchen? yes 10 +1 Sandra went to the garden. +2 Daniel picked up the apple there. +3 Is Sandra in the garden? yes 1 +4 Sandra travelled to the bathroom. +5 Mary travelled to the bedroom. +6 Is Sandra in the hallway? no 4 +7 Daniel discarded the apple. +8 Sandra got the football there. +9 Is Mary in the kitchen? no 5 +10 Sandra put down the football. +11 Sandra took the football there. +12 Is Mary in the bedroom? yes 5 +13 Sandra discarded the football there. +14 Daniel travelled to the garden. +15 Is Daniel in the garden? yes 14 +1 Sandra travelled to the bedroom. +2 Mary travelled to the bathroom. +3 Is Mary in the hallway? no 2 +4 Sandra moved to the bathroom. +5 Sandra got the football there. +6 Is Sandra in the bathroom? yes 4 +7 Sandra went back to the garden. +8 Mary journeyed to the bedroom. +9 Is Sandra in the bathroom? no 7 +10 Daniel travelled to the kitchen. +11 John moved to the kitchen. +12 Is Mary in the bathroom? no 8 +13 John took the milk there. +14 Sandra travelled to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 Mary got the milk there. +2 Sandra moved to the office. +3 Is Sandra in the garden? no 2 +4 Daniel travelled to the bedroom. +5 John went back to the bathroom. +6 Is John in the bathroom? yes 5 +7 John took the apple there. +8 John dropped the apple there. +9 Is John in the bathroom? yes 5 +10 Sandra went to the hallway. +11 John grabbed the apple there. +12 Is John in the bathroom? yes 5 +13 Daniel travelled to the garden. +14 Sandra went to the bedroom. +15 Is Sandra in the kitchen? no 14 +1 Daniel grabbed the apple there. +2 Mary travelled to the hallway. +3 Is Mary in the office? no 2 +4 John went back to the hallway. +5 John grabbed the football there. +6 Is Mary in the office? no 2 +7 Daniel dropped the apple. +8 Daniel got the apple there. +9 Is Mary in the hallway? yes 2 +10 Daniel travelled to the hallway. +11 Sandra journeyed to the bathroom. +12 Is Daniel in the hallway? yes 10 +13 Sandra moved to the office. +14 Sandra travelled to the kitchen. +15 Is Sandra in the hallway? no 14 +1 John went back to the garden. +2 Mary journeyed to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Sandra went back to the hallway. +5 Sandra took the apple there. +6 Is Mary in the hallway? no 2 +7 Sandra went to the kitchen. +8 Mary travelled to the hallway. +9 Is Sandra in the garden? no 7 +10 John travelled to the hallway. +11 Sandra got the milk there. +12 Is John in the hallway? yes 10 +13 Daniel went back to the hallway. +14 Daniel picked up the football there. +15 Is John in the garden? no 10 +1 John went back to the bedroom. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel moved to the bedroom. +5 John went to the kitchen. +6 Is Daniel in the bedroom? yes 4 +7 Sandra travelled to the office. +8 Mary moved to the hallway. +9 Is Daniel in the bedroom? yes 4 +10 John went to the office. +11 Daniel went back to the garden. +12 Is John in the hallway? no 10 +13 Daniel moved to the kitchen. +14 Mary went back to the garden. +15 Is Mary in the garden? yes 14 +1 Daniel took the football there. +2 Daniel discarded the football there. +3 John grabbed the football there. +4 Mary went back to the kitchen. +5 Is Mary in the bathroom? no 4 +6 Mary got the apple there. +7 Daniel journeyed to the kitchen. +8 Is Mary in the kitchen? yes 4 +9 Mary travelled to the hallway. +10 John travelled to the hallway. +11 Is Daniel in the bathroom? no 7 +12 Mary put down the apple. +13 Daniel travelled to the garden. +14 Is Daniel in the kitchen? no 13 +15 Mary moved to the kitchen. +16 Mary went back to the hallway. +17 Is Mary in the kitchen? no 16 +1 Mary picked up the milk there. +2 Mary dropped the milk. +3 Daniel travelled to the hallway. +4 Sandra moved to the kitchen. +5 Is Sandra in the kitchen? yes 4 +6 John moved to the bathroom. +7 Daniel travelled to the office. +8 Is Daniel in the office? yes 7 +9 Daniel went to the bedroom. +10 Daniel grabbed the milk there. +11 Is Sandra in the kitchen? yes 4 +12 Sandra travelled to the hallway. +13 Sandra journeyed to the bedroom. +14 Is Daniel in the bedroom? yes 9 +15 Daniel went back to the hallway. +16 Sandra went to the bathroom. +17 Is Sandra in the bathroom? yes 16 +1 Sandra picked up the apple there. +2 Mary travelled to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Sandra went to the hallway. +5 John went to the bedroom. +6 Is Sandra in the hallway? yes 4 +7 Sandra moved to the kitchen. +8 Sandra left the apple. +9 Is John in the bedroom? yes 5 +10 Mary took the milk there. +11 John travelled to the office. +12 Is Sandra in the kitchen? yes 7 +13 Daniel journeyed to the kitchen. +14 Daniel got the apple there. +15 Is John in the office? yes 11 +1 Daniel picked up the milk there. +2 John went back to the bedroom. +3 Is John in the bedroom? yes 2 +4 John went to the office. +5 Mary journeyed to the office. +6 Is Mary in the bathroom? no 5 +7 Sandra got the football there. +8 John travelled to the garden. +9 Is John in the kitchen? no 8 +10 Sandra moved to the kitchen. +11 Daniel dropped the milk. +12 Is Sandra in the garden? no 10 +13 Daniel got the milk there. +14 Mary went to the garden. +15 Is Mary in the hallway? no 14 +1 Sandra went back to the kitchen. +2 John went to the hallway. +3 Is John in the kitchen? no 2 +4 Sandra journeyed to the garden. +5 Sandra picked up the football there. +6 Is Sandra in the office? no 4 +7 Sandra grabbed the milk there. +8 Daniel went to the office. +9 Is Sandra in the garden? yes 4 +10 John went to the kitchen. +11 Sandra picked up the apple there. +12 Is John in the kitchen? yes 10 +13 Daniel went back to the hallway. +14 Daniel moved to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Mary journeyed to the kitchen. +2 Daniel went back to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Mary moved to the office. +5 John moved to the bedroom. +6 Is Mary in the office? yes 4 +7 Sandra moved to the garden. +8 Daniel moved to the garden. +9 Is Mary in the garden? no 4 +10 Sandra picked up the football there. +11 Mary journeyed to the kitchen. +12 Is John in the bedroom? yes 5 +13 Daniel travelled to the office. +14 Mary moved to the office. +15 Is Daniel in the bathroom? no 13 +1 Mary journeyed to the kitchen. +2 Daniel journeyed to the kitchen. +3 Is Mary in the bedroom? no 1 +4 Mary went to the office. +5 Mary went to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary journeyed to the garden. +8 Mary went back to the bathroom. +9 Is Mary in the kitchen? no 8 +10 Mary grabbed the apple there. +11 Sandra moved to the bedroom. +12 Is Sandra in the hallway? no 11 +13 John moved to the garden. +14 Mary went back to the garden. +15 Is John in the garden? yes 13 +1 Sandra went back to the hallway. +2 Sandra picked up the football there. +3 Is Sandra in the kitchen? no 1 +4 Sandra journeyed to the bathroom. +5 Sandra travelled to the bedroom. +6 Is Sandra in the hallway? no 5 +7 John went to the bedroom. +8 John travelled to the garden. +9 Is John in the office? no 8 +10 Sandra left the football there. +11 Daniel got the apple there. +12 Is John in the garden? yes 8 +13 Sandra got the football there. +14 John journeyed to the hallway. +15 Is John in the bedroom? no 14 +1 Daniel travelled to the bedroom. +2 Mary went back to the kitchen. +3 Is Daniel in the bedroom? yes 1 +4 Daniel went to the office. +5 Mary journeyed to the garden. +6 Is Mary in the office? no 5 +7 Mary grabbed the milk there. +8 Daniel picked up the football there. +9 Is Mary in the hallway? no 5 +10 Mary travelled to the office. +11 Mary travelled to the garden. +12 Is Mary in the garden? yes 11 +13 Daniel put down the football. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel went to the garden. +2 Sandra went back to the kitchen. +3 Is Sandra in the office? no 2 +4 Daniel got the apple there. +5 Daniel travelled to the hallway. +6 Is Daniel in the hallway? yes 5 +7 Daniel went back to the bedroom. +8 Sandra got the milk there. +9 Is Daniel in the bedroom? yes 7 +10 Daniel put down the apple. +11 Daniel travelled to the garden. +12 Is Daniel in the kitchen? no 11 +13 Sandra left the milk. +14 Mary journeyed to the kitchen. +15 Is Daniel in the office? no 11 +1 Sandra travelled to the bedroom. +2 Sandra travelled to the office. +3 Is Sandra in the office? yes 2 +4 Mary went back to the office. +5 Mary went to the kitchen. +6 Is Sandra in the office? yes 2 +7 Mary travelled to the office. +8 Mary took the apple there. +9 Is Mary in the office? yes 7 +10 Mary travelled to the bathroom. +11 John journeyed to the office. +12 Is Mary in the hallway? no 10 +13 Sandra went back to the bathroom. +14 Mary put down the apple there. +15 Is Sandra in the hallway? no 13 +1 Sandra journeyed to the garden. +2 Mary went back to the kitchen. +3 Is Sandra in the garden? yes 1 +4 Mary travelled to the garden. +5 John went back to the kitchen. +6 Is Mary in the bedroom? no 4 +7 Daniel went back to the bathroom. +8 Mary went to the office. +9 Is John in the bedroom? no 5 +10 Mary went to the kitchen. +11 Daniel went back to the hallway. +12 Is Daniel in the bathroom? no 11 +13 John travelled to the office. +14 Daniel moved to the office. +15 Is Mary in the kitchen? yes 10 +1 Mary journeyed to the garden. +2 Daniel picked up the milk there. +3 Is Mary in the hallway? no 1 +4 Sandra travelled to the office. +5 John travelled to the garden. +6 Is Sandra in the office? yes 4 +7 Daniel went to the bedroom. +8 Mary went to the office. +9 Is Mary in the office? yes 8 +10 John grabbed the football there. +11 Mary journeyed to the bedroom. +12 Is Mary in the bathroom? no 11 +13 Daniel left the milk. +14 John journeyed to the hallway. +15 Is John in the hallway? yes 14 +1 Daniel travelled to the kitchen. +2 Daniel picked up the football there. +3 Is Daniel in the kitchen? yes 1 +4 Sandra went back to the office. +5 Mary travelled to the bedroom. +6 Is Sandra in the office? yes 4 +7 Daniel moved to the office. +8 Mary journeyed to the office. +9 Is Mary in the office? yes 8 +10 Daniel went to the bathroom. +11 John went to the bedroom. +12 Is Daniel in the garden? no 10 +13 Daniel travelled to the office. +14 Daniel dropped the football. +15 Is Mary in the bedroom? no 8 +1 Mary journeyed to the office. +2 John travelled to the hallway. +3 Is Mary in the office? yes 1 +4 Sandra picked up the apple there. +5 John moved to the bathroom. +6 Is Mary in the office? yes 1 +7 John went to the garden. +8 Daniel travelled to the bathroom. +9 Is John in the bedroom? no 7 +10 Sandra put down the apple. +11 Daniel moved to the garden. +12 Is Daniel in the garden? yes 11 +13 Sandra travelled to the bathroom. +14 Sandra got the football there. +15 Is Daniel in the bedroom? no 11 +1 Sandra got the football there. +2 Daniel went back to the hallway. +3 Is Daniel in the kitchen? no 2 +4 John went to the bathroom. +5 John travelled to the bedroom. +6 Is John in the bathroom? no 5 +7 Mary travelled to the bedroom. +8 Sandra put down the football there. +9 Is Mary in the office? no 7 +10 Sandra picked up the football there. +11 Sandra dropped the football. +12 Is John in the bedroom? yes 5 +13 Sandra took the football there. +14 John went back to the bathroom. +15 Is John in the kitchen? no 14 +1 John grabbed the milk there. +2 Mary travelled to the hallway. +3 Is Mary in the hallway? yes 2 +4 Sandra moved to the garden. +5 Mary travelled to the office. +6 Is Sandra in the garden? yes 4 +7 John went back to the bedroom. +8 Mary went back to the bathroom. +9 Is John in the bedroom? yes 7 +10 Daniel travelled to the garden. +11 John journeyed to the office. +12 Is Daniel in the bedroom? no 10 +13 Mary picked up the apple there. +14 John put down the milk. +15 Is John in the office? yes 11 +1 Sandra moved to the kitchen. +2 Daniel moved to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 John journeyed to the office. +5 Mary went back to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Mary went to the hallway. +8 John went back to the bathroom. +9 Is Daniel in the bathroom? no 2 +10 Daniel went to the garden. +11 Mary travelled to the bedroom. +12 Is John in the bathroom? yes 8 +13 Sandra went to the bathroom. +14 Daniel picked up the football there. +15 Is Sandra in the bedroom? no 13 +1 Daniel grabbed the apple there. +2 Mary got the milk there. +3 Mary dropped the milk. +4 Mary travelled to the bedroom. +5 Is Mary in the bedroom? yes 4 +6 John journeyed to the office. +7 Sandra travelled to the hallway. +8 Is Sandra in the garden? no 7 +9 Sandra went back to the bathroom. +10 John journeyed to the kitchen. +11 Is Sandra in the bathroom? yes 9 +12 John went back to the hallway. +13 John travelled to the bathroom. +14 Is Sandra in the bathroom? yes 9 +15 John picked up the milk there. +16 Mary took the football there. +17 Is John in the hallway? no 13 +1 Sandra got the apple there. +2 Sandra went back to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Mary travelled to the garden. +5 Daniel went back to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 Sandra left the apple. +8 Daniel moved to the hallway. +9 Is Mary in the garden? yes 4 +10 Daniel travelled to the office. +11 John went to the bedroom. +12 Is Daniel in the office? yes 10 +13 John grabbed the apple there. +14 Daniel picked up the football there. +15 Is John in the office? no 11 +1 Mary went to the garden. +2 Daniel went back to the office. +3 Is Mary in the garden? yes 1 +4 John journeyed to the office. +5 Mary went to the kitchen. +6 Is Daniel in the hallway? no 2 +7 John moved to the kitchen. +8 Daniel went back to the garden. +9 Is John in the kitchen? yes 7 +10 Mary took the apple there. +11 Mary picked up the milk there. +12 Is Mary in the kitchen? yes 5 +13 Mary moved to the garden. +14 Mary put down the apple. +15 Is Mary in the garden? yes 13 +1 Sandra moved to the garden. +2 Daniel travelled to the hallway. +3 Is Sandra in the hallway? no 1 +4 Sandra moved to the bedroom. +5 Mary got the milk there. +6 Is Sandra in the garden? no 4 +7 Sandra journeyed to the garden. +8 Daniel grabbed the apple there. +9 Is Sandra in the garden? yes 7 +10 Mary travelled to the office. +11 Mary journeyed to the bathroom. +12 Is Mary in the hallway? no 11 +13 Sandra journeyed to the bathroom. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the hallway? no 14 +1 Sandra went back to the hallway. +2 Sandra picked up the apple there. +3 Is Sandra in the hallway? yes 1 +4 Mary moved to the bedroom. +5 Mary went to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra put down the apple. +8 Sandra journeyed to the bathroom. +9 Is Sandra in the bedroom? no 8 +10 Mary moved to the office. +11 Mary journeyed to the kitchen. +12 Is Mary in the garden? no 11 +13 John went to the hallway. +14 John picked up the apple there. +15 Is Mary in the kitchen? yes 11 +1 Mary went to the bedroom. +2 Daniel picked up the milk there. +3 Is Mary in the bedroom? yes 1 +4 John went to the bedroom. +5 Mary travelled to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Mary went to the hallway. +8 Daniel journeyed to the bathroom. +9 Is John in the hallway? no 4 +10 Daniel got the apple there. +11 John journeyed to the kitchen. +12 Is Daniel in the kitchen? no 8 +13 Daniel got the football there. +14 Daniel journeyed to the office. +15 Is John in the kitchen? yes 11 +1 Mary moved to the bathroom. +2 Daniel went back to the bedroom. +3 Is Mary in the office? no 1 +4 Daniel travelled to the garden. +5 Mary travelled to the kitchen. +6 Is Daniel in the office? no 4 +7 Mary took the football there. +8 Mary discarded the football. +9 Is Daniel in the office? no 4 +10 John travelled to the hallway. +11 Sandra journeyed to the garden. +12 Is John in the garden? no 10 +13 Sandra moved to the office. +14 Mary picked up the football there. +15 Is Sandra in the office? yes 13 +1 Mary got the milk there. +2 Mary travelled to the hallway. +3 Is Mary in the hallway? yes 2 +4 John picked up the football there. +5 Mary dropped the milk. +6 Is Mary in the garden? no 2 +7 Mary grabbed the milk there. +8 Sandra journeyed to the office. +9 Is Mary in the bedroom? no 2 +10 Sandra went to the bathroom. +11 John went to the hallway. +12 Is Sandra in the kitchen? no 10 +13 John put down the football. +14 Mary grabbed the football there. +15 Is John in the hallway? yes 11 +1 John went to the hallway. +2 John travelled to the kitchen. +3 Is John in the bedroom? no 2 +4 Sandra moved to the bathroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the bathroom? no 5 +7 John went to the hallway. +8 Daniel moved to the bathroom. +9 Is John in the office? no 7 +10 Daniel journeyed to the bedroom. +11 John journeyed to the garden. +12 Is Daniel in the garden? no 10 +13 John went back to the office. +14 Sandra moved to the hallway. +15 Is John in the bedroom? no 13 +1 Mary journeyed to the kitchen. +2 Sandra moved to the garden. +3 Is Sandra in the hallway? no 2 +4 Daniel went back to the kitchen. +5 Mary moved to the garden. +6 Is Sandra in the garden? yes 2 +7 John went to the kitchen. +8 Mary picked up the football there. +9 Is John in the kitchen? yes 7 +10 Sandra journeyed to the bedroom. +11 Sandra took the milk there. +12 Is John in the hallway? no 7 +13 Mary moved to the hallway. +14 Daniel moved to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Daniel journeyed to the kitchen. +2 Sandra took the milk there. +3 Is Daniel in the office? no 1 +4 Daniel went to the office. +5 Sandra went back to the garden. +6 Is Sandra in the bedroom? no 5 +7 Sandra went to the office. +8 Sandra went back to the garden. +9 Is Sandra in the garden? yes 8 +10 John travelled to the kitchen. +11 Daniel travelled to the garden. +12 Is John in the garden? no 10 +13 Mary went back to the hallway. +14 Mary travelled to the office. +15 Is Daniel in the hallway? no 11 +1 John went back to the office. +2 John travelled to the garden. +3 Is John in the garden? yes 2 +4 John went to the bathroom. +5 Daniel journeyed to the garden. +6 Is John in the bathroom? yes 4 +7 Mary took the football there. +8 Daniel moved to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Mary dropped the football. +11 Sandra moved to the kitchen. +12 Is Sandra in the hallway? no 11 +13 Sandra moved to the hallway. +14 Sandra travelled to the office. +15 Is Sandra in the office? yes 14 +1 Mary picked up the football there. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary discarded the football. +5 Sandra went to the garden. +6 Is Sandra in the bedroom? no 5 +7 Sandra grabbed the apple there. +8 Mary moved to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Sandra grabbed the milk there. +11 John moved to the office. +12 Is Mary in the kitchen? yes 8 +13 John journeyed to the bathroom. +14 Mary moved to the garden. +15 Is Mary in the office? no 14 +1 Mary grabbed the milk there. +2 Daniel got the football there. +3 Daniel dropped the football. +4 Daniel got the football there. +5 Sandra picked up the apple there. +6 Sandra discarded the apple. +7 Sandra got the apple there. +8 Daniel journeyed to the kitchen. +9 Is Daniel in the bedroom? no 8 +10 Mary discarded the milk. +11 Sandra moved to the bathroom. +12 Is Sandra in the kitchen? no 11 +13 Sandra dropped the apple there. +14 Sandra got the apple there. +15 Is Daniel in the kitchen? yes 8 +16 Sandra left the apple. +17 Sandra moved to the bedroom. +18 Is Sandra in the garden? no 17 +19 Mary took the milk there. +20 Daniel journeyed to the bedroom. +21 Is Daniel in the kitchen? no 20 +1 Mary went back to the bathroom. +2 Mary went to the kitchen. +3 Is Mary in the hallway? no 2 +4 Mary went back to the hallway. +5 John went back to the office. +6 Is Mary in the hallway? yes 4 +7 Daniel went to the bathroom. +8 Mary picked up the apple there. +9 Is John in the garden? no 5 +10 Sandra went to the bathroom. +11 Sandra went to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary went to the garden. +14 Daniel journeyed to the garden. +15 Is Sandra in the bathroom? no 11 +1 Sandra went to the hallway. +2 Daniel went to the bedroom. +3 Is Sandra in the bathroom? no 1 +4 Daniel moved to the hallway. +5 Daniel travelled to the garden. +6 Is Sandra in the garden? no 1 +7 Sandra journeyed to the office. +8 Daniel moved to the office. +9 Is Daniel in the office? yes 8 +10 John went back to the office. +11 Sandra went back to the bedroom. +12 Is Daniel in the kitchen? no 8 +13 Sandra grabbed the football there. +14 Daniel journeyed to the hallway. +15 Is Sandra in the bathroom? no 11 +1 Daniel went back to the office. +2 Sandra grabbed the football there. +3 Is Daniel in the bathroom? no 1 +4 Sandra travelled to the bathroom. +5 Daniel moved to the bathroom. +6 Is Sandra in the bathroom? yes 4 +7 Mary went to the office. +8 Mary travelled to the hallway. +9 Is Mary in the office? no 8 +10 Daniel got the milk there. +11 Mary travelled to the kitchen. +12 Is Daniel in the bathroom? yes 5 +13 Sandra went back to the hallway. +14 Sandra discarded the football. +15 Is Sandra in the hallway? yes 13 +1 John went back to the garden. +2 Sandra grabbed the football there. +3 Is John in the garden? yes 1 +4 John moved to the kitchen. +5 Mary journeyed to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 John journeyed to the hallway. +8 Sandra left the football. +9 Is John in the office? no 7 +10 Sandra grabbed the football there. +11 Daniel journeyed to the bedroom. +12 Is John in the hallway? yes 7 +13 Sandra discarded the football. +14 Mary journeyed to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary took the milk there. +2 Mary left the milk. +3 Mary travelled to the bedroom. +4 Mary got the football there. +5 Is Mary in the bedroom? yes 3 +6 Mary went to the office. +7 Mary travelled to the bedroom. +8 Is Mary in the bedroom? yes 7 +9 John went back to the hallway. +10 John travelled to the garden. +11 Is John in the hallway? no 10 +12 Daniel moved to the kitchen. +13 Mary travelled to the kitchen. +14 Is John in the garden? yes 10 +15 Sandra moved to the kitchen. +16 Mary dropped the football. +17 Is John in the hallway? no 10 +1 Mary travelled to the bedroom. +2 John got the milk there. +3 Is Mary in the bedroom? yes 1 +4 Mary journeyed to the garden. +5 Sandra went back to the bathroom. +6 Is Sandra in the office? no 5 +7 Sandra travelled to the hallway. +8 Sandra travelled to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 Sandra went to the bathroom. +11 Sandra moved to the office. +12 Is Sandra in the hallway? no 11 +13 Daniel went back to the bathroom. +14 Daniel picked up the apple there. +15 Is Daniel in the office? no 13 +1 John picked up the apple there. +2 John dropped the apple there. +3 Daniel went to the bedroom. +4 Sandra moved to the kitchen. +5 Is Sandra in the kitchen? yes 4 +6 Mary went back to the hallway. +7 Daniel went to the office. +8 Is Sandra in the kitchen? yes 4 +9 Sandra moved to the office. +10 John moved to the garden. +11 Is Mary in the hallway? yes 6 +12 Mary moved to the bathroom. +13 Daniel picked up the apple there. +14 Is Sandra in the office? yes 9 +15 John journeyed to the hallway. +16 Mary picked up the milk there. +17 Is Mary in the garden? no 12 +1 John went back to the bedroom. +2 Mary went back to the bathroom. +3 Is John in the hallway? no 1 +4 Daniel journeyed to the kitchen. +5 John grabbed the football there. +6 Is Daniel in the bathroom? no 4 +7 Mary moved to the kitchen. +8 Mary journeyed to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Mary went back to the garden. +11 Sandra went to the bathroom. +12 Is Mary in the garden? yes 10 +13 Mary moved to the bathroom. +14 John discarded the football there. +15 Is Mary in the bedroom? no 13 +1 Mary travelled to the kitchen. +2 John moved to the office. +3 Is Mary in the hallway? no 1 +4 John took the milk there. +5 Daniel travelled to the hallway. +6 Is John in the kitchen? no 2 +7 Mary went to the office. +8 Mary journeyed to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary moved to the bedroom. +11 Daniel picked up the football there. +12 Is Mary in the garden? no 10 +13 John left the milk. +14 John got the milk there. +15 Is Mary in the office? no 10 +1 John went to the office. +2 John took the milk there. +3 Is John in the garden? no 1 +4 Daniel went back to the office. +5 John journeyed to the bathroom. +6 Is Daniel in the office? yes 4 +7 Sandra went back to the garden. +8 Sandra went back to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Daniel travelled to the bathroom. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bathroom? no 11 +13 John discarded the milk there. +14 Mary moved to the bedroom. +15 Is Daniel in the hallway? no 10 +1 John journeyed to the kitchen. +2 Daniel picked up the milk there. +3 Is John in the kitchen? yes 1 +4 Mary went to the office. +5 John journeyed to the hallway. +6 Is Mary in the office? yes 4 +7 Mary went back to the bedroom. +8 John travelled to the bedroom. +9 Is Mary in the hallway? no 7 +10 Daniel dropped the milk there. +11 Sandra went to the office. +12 Is John in the bedroom? yes 8 +13 Daniel got the milk there. +14 Mary moved to the hallway. +15 Is John in the bedroom? yes 8 +1 John moved to the hallway. +2 Mary took the football there. +3 Is John in the hallway? yes 1 +4 Mary grabbed the milk there. +5 Daniel got the apple there. +6 Is John in the hallway? yes 1 +7 Daniel travelled to the bedroom. +8 John travelled to the kitchen. +9 Is Daniel in the office? no 7 +10 Mary left the milk there. +11 Mary dropped the football. +12 Is Daniel in the bedroom? yes 7 +13 John went to the bedroom. +14 Daniel put down the apple there. +15 Is John in the kitchen? no 13 +1 Daniel went back to the kitchen. +2 Daniel grabbed the apple there. +3 Is Daniel in the kitchen? yes 1 +4 Daniel went back to the bedroom. +5 Mary moved to the office. +6 Is Daniel in the hallway? no 4 +7 Sandra moved to the garden. +8 Daniel picked up the football there. +9 Is Sandra in the hallway? no 7 +10 Mary journeyed to the hallway. +11 Mary got the milk there. +12 Is Sandra in the office? no 7 +13 Daniel left the football. +14 Daniel went back to the office. +15 Is Mary in the hallway? yes 10 +1 Mary went back to the office. +2 Sandra picked up the apple there. +3 Is Mary in the office? yes 1 +4 Daniel moved to the kitchen. +5 Daniel grabbed the football there. +6 Is Daniel in the kitchen? yes 4 +7 Daniel left the football. +8 Sandra travelled to the kitchen. +9 Is Daniel in the kitchen? yes 4 +10 Mary went back to the kitchen. +11 Sandra left the apple there. +12 Is Sandra in the bathroom? no 8 +13 John journeyed to the office. +14 John went back to the kitchen. +15 Is Sandra in the hallway? no 8 +1 Mary took the apple there. +2 Daniel journeyed to the office. +3 Is Daniel in the office? yes 2 +4 John went to the office. +5 Mary went back to the garden. +6 Is Daniel in the kitchen? no 2 +7 Mary journeyed to the hallway. +8 Mary journeyed to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Daniel journeyed to the bathroom. +11 Daniel went back to the bedroom. +12 Is Mary in the bedroom? yes 8 +13 Mary left the apple. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 John went to the garden. +2 John went to the bedroom. +3 Is John in the hallway? no 2 +4 Sandra grabbed the milk there. +5 Sandra dropped the milk there. +6 Is John in the bedroom? yes 2 +7 John went back to the hallway. +8 Mary took the milk there. +9 Is John in the office? no 7 +10 John went to the garden. +11 Mary left the milk. +12 Is John in the kitchen? no 10 +13 Daniel went back to the kitchen. +14 Sandra went back to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Mary grabbed the football there. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Daniel took the milk there. +5 Mary left the football. +6 Is Sandra in the bathroom? yes 2 +7 John took the apple there. +8 John dropped the apple there. +9 Is Sandra in the bathroom? yes 2 +10 Daniel went to the bathroom. +11 Daniel travelled to the office. +12 Is Daniel in the kitchen? no 11 +13 Daniel discarded the milk. +14 John picked up the apple there. +15 Is Daniel in the garden? no 11 +1 Mary picked up the apple there. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Daniel went back to the hallway. +5 Mary put down the apple. +6 Is Sandra in the hallway? no 2 +7 John took the football there. +8 Mary got the apple there. +9 Is Daniel in the hallway? yes 4 +10 Mary dropped the apple. +11 Daniel journeyed to the kitchen. +12 Is Daniel in the office? no 11 +13 Mary took the apple there. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Sandra journeyed to the bedroom. +2 Mary went back to the hallway. +3 Is Sandra in the kitchen? no 1 +4 Daniel moved to the hallway. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary went to the bedroom. +8 Mary went back to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Daniel travelled to the kitchen. +11 John went back to the bedroom. +12 Is John in the garden? no 11 +13 John went back to the bathroom. +14 John went to the garden. +15 Is John in the garden? yes 14 +1 Mary journeyed to the hallway. +2 Mary picked up the football there. +3 Is Mary in the garden? no 1 +4 John travelled to the office. +5 Mary moved to the office. +6 Is Mary in the office? yes 5 +7 John journeyed to the garden. +8 Daniel moved to the kitchen. +9 Is Mary in the hallway? no 5 +10 Mary dropped the football. +11 Daniel picked up the apple there. +12 Is Daniel in the kitchen? yes 8 +13 Mary went to the bathroom. +14 Daniel moved to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Mary grabbed the apple there. +2 Mary discarded the apple. +3 Sandra moved to the bedroom. +4 John moved to the garden. +5 Is John in the bedroom? no 4 +6 Sandra journeyed to the garden. +7 Sandra took the milk there. +8 Is Sandra in the kitchen? no 6 +9 Sandra journeyed to the office. +10 Daniel went to the garden. +11 Is John in the kitchen? no 4 +12 Sandra discarded the milk there. +13 John travelled to the kitchen. +14 Is Daniel in the garden? yes 10 +15 Mary moved to the office. +16 John went back to the bathroom. +17 Is John in the garden? no 16 +1 Mary went back to the bedroom. +2 Daniel journeyed to the bedroom. +3 Is Mary in the bedroom? yes 1 +4 John moved to the office. +5 John moved to the garden. +6 Is John in the garden? yes 5 +7 Sandra moved to the bathroom. +8 Daniel journeyed to the office. +9 Is Daniel in the office? yes 8 +10 Mary journeyed to the hallway. +11 Sandra travelled to the office. +12 Is Daniel in the office? yes 8 +13 Daniel journeyed to the kitchen. +14 Sandra travelled to the bedroom. +15 Is Sandra in the hallway? no 14 +1 John moved to the office. +2 Daniel moved to the bedroom. +3 Is John in the office? yes 1 +4 Sandra grabbed the milk there. +5 Sandra dropped the milk there. +6 Is John in the garden? no 1 +7 Mary moved to the garden. +8 John went back to the kitchen. +9 Is Mary in the kitchen? no 7 +10 Mary picked up the football there. +11 John picked up the milk there. +12 Is John in the kitchen? yes 8 +13 John journeyed to the office. +14 John put down the milk. +15 Is John in the bedroom? no 13 +1 Mary got the apple there. +2 Sandra got the football there. +3 Mary journeyed to the garden. +4 Mary dropped the apple. +5 Is Mary in the bathroom? no 3 +6 Mary picked up the apple there. +7 Daniel went back to the kitchen. +8 Is Mary in the garden? yes 3 +9 Sandra travelled to the hallway. +10 Sandra went back to the office. +11 Is Daniel in the bathroom? no 7 +12 Mary grabbed the milk there. +13 Sandra left the football. +14 Is Daniel in the kitchen? yes 7 +15 Sandra travelled to the garden. +16 Mary left the apple. +17 Is Sandra in the hallway? no 15 +1 John journeyed to the bathroom. +2 Daniel journeyed to the bathroom. +3 Is John in the kitchen? no 1 +4 Sandra got the football there. +5 Mary took the milk there. +6 Is Daniel in the office? no 2 +7 Sandra travelled to the garden. +8 John travelled to the office. +9 Is Daniel in the garden? no 2 +10 John went back to the bathroom. +11 John took the apple there. +12 Is Sandra in the hallway? no 7 +13 Sandra left the football. +14 John went to the garden. +15 Is John in the garden? yes 14 +1 Mary took the football there. +2 Mary dropped the football. +3 Sandra picked up the football there. +4 Sandra went back to the bathroom. +5 Is Sandra in the bathroom? yes 4 +6 Mary went to the kitchen. +7 John travelled to the bathroom. +8 Is John in the office? no 7 +9 Mary went to the garden. +10 Daniel went to the hallway. +11 Is Sandra in the kitchen? no 4 +12 Sandra left the football. +13 Sandra took the football there. +14 Is Mary in the garden? yes 9 +15 Mary went to the office. +16 Sandra put down the football. +17 Is Mary in the bedroom? no 15 +1 Mary got the football there. +2 John journeyed to the bathroom. +3 Is John in the garden? no 2 +4 Mary journeyed to the office. +5 Mary discarded the football. +6 Is John in the bathroom? yes 2 +7 John picked up the apple there. +8 John travelled to the office. +9 Is Mary in the office? yes 4 +10 John journeyed to the bedroom. +11 Sandra went back to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Mary journeyed to the hallway. +14 Daniel moved to the office. +15 Is John in the kitchen? no 10 +1 Sandra travelled to the garden. +2 Daniel journeyed to the garden. +3 Is Sandra in the kitchen? no 1 +4 Sandra travelled to the hallway. +5 John got the football there. +6 Is Sandra in the hallway? yes 4 +7 Mary grabbed the milk there. +8 Daniel went to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 John put down the football. +11 Mary journeyed to the garden. +12 Is Daniel in the hallway? no 8 +13 Mary dropped the milk. +14 Daniel went back to the kitchen. +15 Is Daniel in the garden? no 14 +1 John got the football there. +2 John moved to the bedroom. +3 Is John in the bedroom? yes 2 +4 Daniel travelled to the kitchen. +5 Sandra moved to the garden. +6 Is John in the kitchen? no 2 +7 John grabbed the milk there. +8 Sandra went to the bedroom. +9 Is Sandra in the kitchen? no 8 +10 Sandra journeyed to the hallway. +11 Sandra went to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Mary moved to the office. +14 John went back to the kitchen. +15 Is Mary in the office? yes 13 +1 John took the football there. +2 John went to the bathroom. +3 Is John in the garden? no 2 +4 John went to the garden. +5 John picked up the apple there. +6 Is John in the office? no 4 +7 John journeyed to the kitchen. +8 Mary went to the hallway. +9 Is Mary in the hallway? yes 8 +10 Sandra journeyed to the garden. +11 Sandra travelled to the kitchen. +12 Is John in the hallway? no 7 +13 Mary went to the garden. +14 Mary took the milk there. +15 Is Mary in the bedroom? no 13 +1 John went to the hallway. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Daniel moved to the office. +5 Sandra moved to the garden. +6 Is John in the garden? yes 2 +7 Daniel took the milk there. +8 John went back to the kitchen. +9 Is John in the bedroom? no 8 +10 John moved to the garden. +11 Daniel put down the milk. +12 Is John in the garden? yes 10 +13 Daniel took the milk there. +14 Mary picked up the football there. +15 Is John in the garden? yes 10 +1 John went to the bedroom. +2 John got the football there. +3 Is John in the office? no 1 +4 Daniel grabbed the milk there. +5 Mary travelled to the hallway. +6 Is John in the bedroom? yes 1 +7 Daniel went back to the hallway. +8 Mary went back to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 John discarded the football. +11 John got the football there. +12 Is Mary in the bathroom? yes 8 +13 Mary went to the office. +14 John left the football. +15 Is Mary in the office? yes 13 +1 Sandra went to the bedroom. +2 Sandra took the apple there. +3 Is Sandra in the bedroom? yes 1 +4 Mary travelled to the bathroom. +5 Daniel went back to the garden. +6 Is Sandra in the garden? no 1 +7 Sandra left the apple. +8 John took the milk there. +9 Is Daniel in the bathroom? no 5 +10 Daniel moved to the bathroom. +11 Daniel travelled to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Mary went back to the hallway. +14 Daniel journeyed to the garden. +15 Is Daniel in the garden? yes 14 +1 Mary picked up the milk there. +2 Daniel took the apple there. +3 Daniel put down the apple. +4 John went back to the kitchen. +5 Is John in the kitchen? yes 4 +6 Mary put down the milk there. +7 Mary grabbed the milk there. +8 Is John in the kitchen? yes 4 +9 Daniel went back to the office. +10 John went to the office. +11 Is Daniel in the garden? no 9 +12 John moved to the bedroom. +13 Mary put down the milk there. +14 Is Daniel in the office? yes 9 +15 Sandra moved to the bedroom. +16 Daniel took the milk there. +17 Is Sandra in the bedroom? yes 15 +1 John moved to the kitchen. +2 John journeyed to the garden. +3 Is John in the garden? yes 2 +4 Daniel went back to the office. +5 Sandra journeyed to the bedroom. +6 Is John in the bathroom? no 2 +7 Sandra travelled to the kitchen. +8 John went to the kitchen. +9 Is Daniel in the office? yes 4 +10 Mary travelled to the bathroom. +11 Sandra grabbed the apple there. +12 Is Sandra in the kitchen? yes 7 +13 Sandra dropped the apple there. +14 Daniel went to the hallway. +15 Is Mary in the bathroom? yes 10 +1 Mary went to the hallway. +2 Sandra went to the garden. +3 Is Mary in the office? no 1 +4 Mary took the apple there. +5 Mary went back to the garden. +6 Is Mary in the garden? yes 5 +7 John went to the bathroom. +8 Mary got the milk there. +9 Is Mary in the garden? yes 5 +10 Mary moved to the office. +11 Mary left the milk there. +12 Is Mary in the bathroom? no 10 +13 Daniel went to the bedroom. +14 Sandra journeyed to the kitchen. +15 Is Sandra in the garden? no 14 +1 John moved to the bedroom. +2 Mary journeyed to the bedroom. +3 Is John in the kitchen? no 1 +4 Mary took the apple there. +5 Mary went to the garden. +6 Is Mary in the bathroom? no 5 +7 Mary put down the apple. +8 Daniel moved to the hallway. +9 Is Daniel in the bedroom? no 8 +10 John travelled to the bathroom. +11 John grabbed the milk there. +12 Is Mary in the garden? yes 5 +13 Sandra travelled to the bedroom. +14 Mary grabbed the apple there. +15 Is John in the bathroom? yes 10 +1 Daniel took the milk there. +2 Daniel left the milk. +3 Mary went back to the kitchen. +4 Daniel travelled to the bathroom. +5 Is Daniel in the bathroom? yes 4 +6 John moved to the hallway. +7 John went to the bedroom. +8 Is John in the bedroom? yes 7 +9 Mary went back to the bathroom. +10 John travelled to the office. +11 Is John in the kitchen? no 10 +12 Mary went to the bedroom. +13 Mary got the milk there. +14 Is John in the office? yes 10 +15 Sandra travelled to the bedroom. +16 Mary discarded the milk. +17 Is Mary in the bedroom? yes 12 +1 John journeyed to the office. +2 Daniel travelled to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel moved to the garden. +5 John got the football there. +6 Is John in the office? yes 1 +7 Sandra went to the office. +8 Mary went back to the garden. +9 Is Daniel in the garden? yes 4 +10 John put down the football there. +11 Mary went to the bathroom. +12 Is Sandra in the office? yes 7 +13 Sandra got the football there. +14 Daniel moved to the office. +15 Is Mary in the hallway? no 11 +1 Mary travelled to the hallway. +2 Daniel grabbed the milk there. +3 Is Mary in the hallway? yes 1 +4 Daniel moved to the bathroom. +5 Mary went back to the garden. +6 Is Daniel in the kitchen? no 4 +7 Daniel went to the office. +8 Daniel got the apple there. +9 Is Daniel in the kitchen? no 7 +10 Daniel went to the kitchen. +11 Daniel got the football there. +12 Is Daniel in the bedroom? no 10 +13 Daniel dropped the apple. +14 Daniel put down the football. +15 Is Daniel in the kitchen? yes 10 +1 Mary picked up the apple there. +2 Daniel journeyed to the kitchen. +3 Is Daniel in the hallway? no 2 +4 Daniel went to the hallway. +5 Daniel got the football there. +6 Is Daniel in the bathroom? no 4 +7 Daniel discarded the football. +8 Daniel picked up the football there. +9 Is Daniel in the kitchen? no 4 +10 Daniel left the football. +11 Daniel took the football there. +12 Sandra moved to the hallway. +13 John journeyed to the garden. +14 Is Sandra in the bedroom? no 12 +15 John moved to the bathroom. +16 Sandra journeyed to the bedroom. +17 Is Sandra in the kitchen? no 16 +1 Sandra journeyed to the bathroom. +2 Daniel journeyed to the office. +3 Is Daniel in the kitchen? no 2 +4 Mary journeyed to the bedroom. +5 John went to the garden. +6 Is John in the bedroom? no 5 +7 Daniel went to the kitchen. +8 Mary went back to the office. +9 Is Mary in the office? yes 8 +10 John took the apple there. +11 Mary went back to the kitchen. +12 Is Daniel in the kitchen? yes 7 +13 Mary journeyed to the bedroom. +14 Daniel got the football there. +15 Is Mary in the bedroom? yes 13 +1 Mary journeyed to the office. +2 Daniel went back to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel moved to the bathroom. +5 Mary grabbed the football there. +6 Is Mary in the hallway? no 1 +7 Daniel journeyed to the bedroom. +8 John went to the bathroom. +9 Is John in the bathroom? yes 8 +10 Mary dropped the football there. +11 Sandra went to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Daniel went back to the garden. +14 Sandra travelled to the bathroom. +15 Is Sandra in the bedroom? no 14 +1 Daniel grabbed the milk there. +2 Daniel picked up the apple there. +3 Daniel dropped the milk. +4 Mary moved to the office. +5 Is Mary in the bedroom? no 4 +6 Mary got the milk there. +7 Mary went back to the bathroom. +8 Is Mary in the bathroom? yes 7 +9 John moved to the bedroom. +10 John moved to the hallway. +11 Is Mary in the bathroom? yes 7 +12 Mary discarded the milk there. +13 Mary travelled to the hallway. +14 Is Mary in the hallway? yes 13 +15 Sandra journeyed to the bedroom. +16 John got the football there. +17 Is Mary in the hallway? yes 13 +1 Daniel got the football there. +2 Daniel moved to the garden. +3 Is Daniel in the garden? yes 2 +4 Mary travelled to the kitchen. +5 Mary moved to the bathroom. +6 Is Mary in the garden? no 5 +7 Daniel got the milk there. +8 Daniel journeyed to the hallway. +9 Is Mary in the kitchen? no 5 +10 Daniel put down the football. +11 Daniel left the milk. +12 Is Mary in the bathroom? yes 5 +13 Daniel grabbed the football there. +14 Daniel grabbed the milk there. +15 Is Daniel in the hallway? yes 8 +1 Daniel took the milk there. +2 Daniel went to the garden. +3 Is Daniel in the garden? yes 2 +4 Mary picked up the apple there. +5 Daniel left the milk there. +6 Is Daniel in the garden? yes 2 +7 Daniel moved to the bathroom. +8 Daniel travelled to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Daniel went back to the garden. +11 Daniel journeyed to the hallway. +12 Is Daniel in the bedroom? no 11 +13 Daniel went back to the bathroom. +14 John travelled to the hallway. +15 Is Daniel in the bathroom? yes 13 +1 Mary moved to the bedroom. +2 Daniel travelled to the bathroom. +3 Is Daniel in the kitchen? no 2 +4 Daniel got the football there. +5 Mary went back to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra travelled to the garden. +8 Mary went to the bedroom. +9 Is Mary in the office? no 8 +10 Sandra went back to the bathroom. +11 John journeyed to the kitchen. +12 Is John in the kitchen? yes 11 +13 Daniel left the football. +14 John went back to the bedroom. +15 Is John in the hallway? no 14 +1 John travelled to the office. +2 Mary travelled to the hallway. +3 Is John in the kitchen? no 1 +4 Mary took the apple there. +5 Sandra journeyed to the office. +6 Is Sandra in the kitchen? no 5 +7 John took the milk there. +8 Mary went to the bedroom. +9 Is Mary in the bathroom? no 8 +10 Sandra journeyed to the bedroom. +11 Mary moved to the garden. +12 Is Mary in the bathroom? no 11 +13 Sandra took the football there. +14 Sandra journeyed to the garden. +15 Is Mary in the kitchen? no 11 +1 Daniel went to the bedroom. +2 Mary went to the kitchen. +3 Is Mary in the bedroom? no 2 +4 Daniel journeyed to the hallway. +5 Mary travelled to the bedroom. +6 Is Daniel in the hallway? yes 4 +7 Daniel travelled to the kitchen. +8 John travelled to the bathroom. +9 Is Mary in the kitchen? no 5 +10 Sandra moved to the garden. +11 Sandra grabbed the apple there. +12 Is Daniel in the hallway? no 7 +13 Daniel went back to the office. +14 Sandra dropped the apple. +15 Is Daniel in the office? yes 13 +1 Daniel picked up the apple there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the hallway? no 2 +4 John travelled to the bedroom. +5 Mary journeyed to the garden. +6 Is Mary in the garden? yes 5 +7 John went back to the hallway. +8 John travelled to the bedroom. +9 Is John in the bedroom? yes 8 +10 Mary went to the kitchen. +11 Mary went to the hallway. +12 Is Mary in the hallway? yes 11 +13 Sandra went back to the kitchen. +14 Daniel left the apple there. +15 Is Sandra in the office? no 13 +1 Sandra went back to the bedroom. +2 Mary journeyed to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John travelled to the bedroom. +5 Mary travelled to the bedroom. +6 Is Sandra in the bedroom? yes 1 +7 Mary got the apple there. +8 Daniel journeyed to the garden. +9 Is Mary in the bedroom? yes 5 +10 John went to the office. +11 Daniel went back to the kitchen. +12 Is John in the office? yes 10 +13 John journeyed to the kitchen. +14 John got the milk there. +15 Is John in the bathroom? no 13 +1 John got the football there. +2 Daniel picked up the milk there. +3 Mary travelled to the bedroom. +4 Daniel discarded the milk there. +5 Is Mary in the bedroom? yes 3 +6 Sandra travelled to the kitchen. +7 John left the football. +8 Is Sandra in the kitchen? yes 6 +9 John went back to the bedroom. +10 John grabbed the milk there. +11 Is Sandra in the kitchen? yes 6 +12 John dropped the milk. +13 Sandra journeyed to the office. +14 Is John in the bathroom? no 9 +15 Sandra went to the bedroom. +16 Mary travelled to the bathroom. +17 Is Sandra in the bedroom? yes 15 +1 Sandra went back to the hallway. +2 John travelled to the bedroom. +3 Is Sandra in the office? no 1 +4 Daniel went to the office. +5 John moved to the kitchen. +6 Is Daniel in the office? yes 4 +7 Mary picked up the milk there. +8 John journeyed to the bedroom. +9 Is Daniel in the office? yes 4 +10 Sandra moved to the kitchen. +11 Sandra went to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Sandra went to the bedroom. +14 Mary dropped the milk there. +15 Is John in the office? no 8 +1 Sandra went back to the bathroom. +2 Mary took the apple there. +3 Is Sandra in the garden? no 1 +4 John grabbed the football there. +5 Daniel journeyed to the bathroom. +6 Is Sandra in the hallway? no 1 +7 Mary journeyed to the kitchen. +8 John travelled to the hallway. +9 Is John in the hallway? yes 8 +10 Mary grabbed the milk there. +11 Sandra journeyed to the garden. +12 Is John in the hallway? yes 8 +13 John went to the bedroom. +14 John discarded the football. +15 Is John in the bedroom? yes 13 +1 Daniel moved to the hallway. +2 John journeyed to the garden. +3 Is Daniel in the hallway? yes 1 +4 Daniel went to the office. +5 Sandra went to the office. +6 Is Daniel in the office? yes 4 +7 Sandra journeyed to the hallway. +8 John went to the kitchen. +9 Is John in the hallway? no 8 +10 Sandra went to the office. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 Mary moved to the office. +14 Sandra went to the garden. +15 Is John in the garden? yes 11 +1 Mary went to the bathroom. +2 Sandra took the football there. +3 Is Mary in the bathroom? yes 1 +4 Sandra left the football. +5 Daniel went back to the hallway. +6 Is Daniel in the office? no 5 +7 Mary journeyed to the office. +8 Sandra moved to the kitchen. +9 Is Mary in the hallway? no 7 +10 Mary journeyed to the hallway. +11 Sandra grabbed the milk there. +12 Is Mary in the kitchen? no 10 +13 Sandra left the milk. +14 Sandra journeyed to the garden. +15 Is Sandra in the garden? yes 14 +1 Mary moved to the bathroom. +2 Sandra took the football there. +3 Is Mary in the bathroom? yes 1 +4 Daniel went to the kitchen. +5 Daniel took the milk there. +6 Is Daniel in the kitchen? yes 4 +7 Daniel put down the milk. +8 Daniel went back to the garden. +9 Is Daniel in the garden? yes 8 +10 Sandra left the football. +11 Sandra journeyed to the office. +12 Is Daniel in the office? no 8 +13 Daniel travelled to the office. +14 Mary got the apple there. +15 Is Daniel in the office? yes 13 +1 Mary went back to the office. +2 Daniel travelled to the hallway. +3 Is Daniel in the hallway? yes 2 +4 John went to the hallway. +5 Mary went back to the garden. +6 Is Daniel in the bathroom? no 2 +7 John travelled to the office. +8 John went to the kitchen. +9 Is Daniel in the office? no 2 +10 Daniel moved to the garden. +11 John moved to the garden. +12 Is John in the garden? yes 11 +13 Daniel went back to the hallway. +14 Sandra journeyed to the garden. +15 Is John in the garden? yes 11 +1 Mary went to the hallway. +2 Mary travelled to the office. +3 Is Mary in the kitchen? no 2 +4 John grabbed the milk there. +5 Daniel went back to the office. +6 Is Mary in the hallway? no 2 +7 John left the milk. +8 John picked up the milk there. +9 Is Mary in the hallway? no 2 +10 John dropped the milk. +11 Daniel went back to the kitchen. +12 Is Daniel in the office? no 11 +13 Daniel grabbed the apple there. +14 John went to the kitchen. +15 Is Daniel in the garden? no 11 +1 Mary travelled to the office. +2 Sandra grabbed the apple there. +3 Is Mary in the garden? no 1 +4 Mary went to the hallway. +5 Mary journeyed to the bedroom. +6 Is Mary in the hallway? no 5 +7 Sandra dropped the apple there. +8 Daniel went to the kitchen. +9 Is Mary in the bedroom? yes 5 +10 Sandra moved to the bathroom. +11 Sandra travelled to the garden. +12 Is Mary in the bathroom? no 5 +13 Mary grabbed the apple there. +14 Mary discarded the apple. +15 Is Daniel in the kitchen? yes 8 +1 Mary went to the kitchen. +2 John grabbed the apple there. +3 Is Mary in the office? no 1 +4 Daniel journeyed to the office. +5 Sandra grabbed the milk there. +6 Is Daniel in the office? yes 4 +7 Sandra dropped the milk. +8 Mary moved to the bathroom. +9 Is Daniel in the office? yes 4 +10 Mary journeyed to the garden. +11 Sandra went to the bathroom. +12 Is Mary in the garden? yes 10 +13 Daniel moved to the kitchen. +14 John journeyed to the garden. +15 Is Mary in the office? no 10 +1 Mary took the football there. +2 Daniel travelled to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary discarded the football. +5 Mary took the football there. +6 Is Daniel in the bedroom? no 2 +7 Mary dropped the football. +8 John travelled to the kitchen. +9 Is Daniel in the kitchen? yes 2 +10 Sandra went to the kitchen. +11 Mary journeyed to the kitchen. +12 Is John in the kitchen? yes 8 +13 John went to the garden. +14 John journeyed to the hallway. +15 Is John in the hallway? yes 14 +1 Mary got the milk there. +2 Mary journeyed to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 John journeyed to the hallway. +5 Mary picked up the football there. +6 Is John in the hallway? yes 4 +7 Mary dropped the football. +8 Mary went to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary left the milk there. +11 Mary moved to the hallway. +12 Is Mary in the bathroom? no 11 +13 Sandra went back to the hallway. +14 Sandra went back to the office. +15 Is Mary in the bedroom? no 11 +1 Mary moved to the bathroom. +2 Sandra travelled to the kitchen. +3 Is Sandra in the bathroom? no 2 +4 Sandra went back to the bathroom. +5 Daniel got the football there. +6 Is Sandra in the bathroom? yes 4 +7 Mary moved to the kitchen. +8 Daniel discarded the football. +9 Is Mary in the kitchen? yes 7 +10 Sandra picked up the football there. +11 Sandra left the football there. +12 Is Mary in the bedroom? no 7 +13 Mary went back to the bedroom. +14 Mary went back to the garden. +15 Is Mary in the hallway? no 14 +1 Mary went back to the garden. +2 Daniel moved to the bedroom. +3 Is Mary in the garden? yes 1 +4 Mary journeyed to the bedroom. +5 Mary journeyed to the hallway. +6 Is Mary in the garden? no 5 +7 John journeyed to the bathroom. +8 John moved to the kitchen. +9 Is John in the office? no 8 +10 Daniel went back to the kitchen. +11 John went back to the bathroom. +12 Is Mary in the garden? no 5 +13 Mary picked up the football there. +14 John went back to the hallway. +15 Is John in the bathroom? no 14 +1 John went back to the kitchen. +2 Daniel journeyed to the hallway. +3 Is John in the kitchen? yes 1 +4 Daniel moved to the office. +5 Mary moved to the bedroom. +6 Is John in the kitchen? yes 1 +7 John travelled to the bedroom. +8 John moved to the kitchen. +9 Is Daniel in the office? yes 4 +10 Daniel travelled to the bedroom. +11 John went back to the office. +12 Is John in the office? yes 11 +13 Daniel journeyed to the garden. +14 John went back to the bedroom. +15 Is John in the bedroom? yes 14 +1 Mary went to the kitchen. +2 Daniel picked up the milk there. +3 Is Mary in the kitchen? yes 1 +4 Sandra went to the kitchen. +5 Mary travelled to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Daniel went back to the office. +8 Sandra grabbed the football there. +9 Is Mary in the bedroom? yes 5 +10 Daniel moved to the kitchen. +11 Mary travelled to the bathroom. +12 Is Daniel in the kitchen? yes 10 +13 John went back to the hallway. +14 Sandra left the football there. +15 Is Daniel in the kitchen? yes 10 +1 Mary went back to the bedroom. +2 Daniel got the football there. +3 Is Mary in the bedroom? yes 1 +4 Sandra travelled to the kitchen. +5 Mary went back to the garden. +6 Is Sandra in the bedroom? no 4 +7 Daniel dropped the football. +8 Daniel went to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Sandra went to the bathroom. +11 John took the football there. +12 Is Sandra in the bathroom? yes 10 +13 Daniel moved to the bedroom. +14 Sandra travelled to the office. +15 Is Sandra in the hallway? no 14 +1 Mary journeyed to the office. +2 Sandra journeyed to the office. +3 Is Sandra in the bathroom? no 2 +4 Sandra went back to the bedroom. +5 John grabbed the apple there. +6 Is Sandra in the garden? no 4 +7 John journeyed to the bedroom. +8 Mary moved to the bathroom. +9 Is John in the kitchen? no 7 +10 John went to the kitchen. +11 Mary took the football there. +12 Is Mary in the hallway? no 8 +13 Daniel went back to the office. +14 Sandra went to the hallway. +15 Is Mary in the bathroom? yes 8 +1 Mary journeyed to the office. +2 Sandra travelled to the hallway. +3 Is Mary in the office? yes 1 +4 John journeyed to the hallway. +5 John moved to the bathroom. +6 Is John in the garden? no 5 +7 John got the milk there. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the hallway? no 8 +10 Daniel went to the bathroom. +11 Mary travelled to the hallway. +12 Is Daniel in the bathroom? yes 10 +13 John went back to the hallway. +14 Sandra took the football there. +15 Is Mary in the hallway? yes 11 +1 John went back to the office. +2 John journeyed to the garden. +3 Is John in the garden? yes 2 +4 Mary went back to the bedroom. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bedroom? no 5 +7 John travelled to the office. +8 John picked up the milk there. +9 Is John in the kitchen? no 7 +10 Mary went back to the garden. +11 Mary travelled to the kitchen. +12 Is John in the office? yes 7 +13 John journeyed to the garden. +14 Sandra went back to the hallway. +15 Is Mary in the garden? no 11 +1 Mary got the apple there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel went to the bathroom. +5 Daniel went back to the kitchen. +6 Is Daniel in the garden? no 5 +7 Sandra journeyed to the kitchen. +8 Daniel travelled to the office. +9 Is Sandra in the office? no 7 +10 Mary went back to the office. +11 Mary dropped the apple. +12 Is Sandra in the garden? no 7 +13 Mary journeyed to the garden. +14 Mary moved to the bedroom. +15 Is Daniel in the hallway? no 8 +1 Mary grabbed the milk there. +2 Mary discarded the milk. +3 Mary went back to the bathroom. +4 Sandra went back to the bathroom. +5 Is Sandra in the bathroom? yes 4 +6 John went to the hallway. +7 Daniel went to the hallway. +8 Is Mary in the bathroom? yes 3 +9 Sandra moved to the hallway. +10 Mary went to the hallway. +11 Is Daniel in the kitchen? no 7 +12 Sandra moved to the kitchen. +13 Daniel travelled to the bedroom. +14 Is Sandra in the kitchen? yes 12 +15 Mary journeyed to the bathroom. +16 John travelled to the bedroom. +17 Is Mary in the bathroom? yes 15 +1 Sandra took the football there. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 Daniel went to the office. +5 Sandra discarded the football. +6 Is Sandra in the kitchen? no 2 +7 Mary journeyed to the bedroom. +8 Mary moved to the garden. +9 Is Mary in the garden? yes 8 +10 John moved to the office. +11 John picked up the apple there. +12 Is John in the office? yes 10 +13 Sandra went back to the bathroom. +14 Mary went to the hallway. +15 Is Mary in the garden? no 14 +1 Mary got the football there. +2 Mary moved to the bathroom. +3 Is Mary in the office? no 2 +4 John journeyed to the hallway. +5 John took the apple there. +6 Is John in the hallway? yes 4 +7 Sandra went to the garden. +8 John put down the apple. +9 Is Mary in the bathroom? yes 2 +10 Mary moved to the hallway. +11 Sandra went back to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Daniel moved to the garden. +14 Mary grabbed the apple there. +15 Is Sandra in the bedroom? yes 11 +1 John moved to the office. +2 John journeyed to the bedroom. +3 Is John in the bathroom? no 2 +4 Mary went to the hallway. +5 John travelled to the hallway. +6 Is John in the hallway? yes 5 +7 Daniel moved to the garden. +8 John went back to the bedroom. +9 Is Mary in the hallway? yes 4 +10 Mary travelled to the kitchen. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 Mary travelled to the garden. +14 John journeyed to the bedroom. +15 Is John in the bedroom? yes 14 +1 Sandra got the football there. +2 Mary took the apple there. +3 Mary left the apple there. +4 Daniel travelled to the office. +5 Is Daniel in the office? yes 4 +6 John went to the bathroom. +7 Sandra put down the football. +8 Is John in the bathroom? yes 6 +9 Mary picked up the apple there. +10 Sandra journeyed to the hallway. +11 Is Daniel in the office? yes 4 +12 Daniel journeyed to the kitchen. +13 Daniel took the milk there. +14 Is Sandra in the office? no 10 +15 Daniel travelled to the office. +16 Daniel journeyed to the garden. +17 Is Sandra in the hallway? yes 10 +1 John grabbed the milk there. +2 John dropped the milk. +3 John journeyed to the bathroom. +4 Mary went to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 John journeyed to the bedroom. +7 Mary grabbed the football there. +8 Is John in the kitchen? no 6 +9 John journeyed to the kitchen. +10 Mary dropped the football. +11 Is John in the kitchen? yes 9 +12 Mary grabbed the football there. +13 Mary travelled to the garden. +14 Is John in the kitchen? yes 9 +15 Mary grabbed the milk there. +16 Mary dropped the milk. +17 Is Mary in the garden? yes 13 +1 John went back to the garden. +2 Sandra journeyed to the bedroom. +3 Is John in the bedroom? no 1 +4 Daniel travelled to the office. +5 Mary went back to the kitchen. +6 Is John in the garden? yes 1 +7 Daniel picked up the milk there. +8 Daniel put down the milk. +9 Is Mary in the kitchen? yes 5 +10 Daniel went to the bedroom. +11 Sandra got the apple there. +12 Is Daniel in the bedroom? yes 10 +13 John travelled to the bathroom. +14 Daniel went back to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Sandra picked up the apple there. +2 Daniel went back to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary went back to the hallway. +5 Daniel picked up the football there. +6 Is Daniel in the bedroom? yes 2 +7 Sandra left the apple there. +8 Sandra took the apple there. +9 Is Daniel in the bedroom? yes 2 +10 Mary travelled to the bedroom. +11 Sandra left the apple. +12 Is Mary in the kitchen? no 10 +13 Mary grabbed the milk there. +14 Sandra went to the garden. +15 Is Mary in the bedroom? yes 10 +1 Sandra took the milk there. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John went to the bedroom. +5 Sandra grabbed the football there. +6 Is Sandra in the kitchen? yes 2 +7 Mary journeyed to the office. +8 Sandra journeyed to the bedroom. +9 Is John in the garden? no 4 +10 John went to the bathroom. +11 John travelled to the kitchen. +12 Is John in the kitchen? yes 11 +13 Sandra dropped the milk. +14 Sandra grabbed the milk there. +15 Is John in the kitchen? yes 11 +1 John went to the hallway. +2 Sandra journeyed to the hallway. +3 Is Sandra in the bedroom? no 2 +4 John journeyed to the bedroom. +5 Mary grabbed the football there. +6 Is Sandra in the hallway? yes 2 +7 John went to the garden. +8 John went to the bedroom. +9 Is John in the bedroom? yes 8 +10 Sandra went back to the bedroom. +11 Mary journeyed to the bathroom. +12 Is John in the bedroom? yes 8 +13 Mary left the football there. +14 Daniel journeyed to the garden. +15 Is Mary in the bedroom? no 11 +1 Sandra got the football there. +2 Sandra went back to the office. +3 Is Sandra in the hallway? no 2 +4 Sandra put down the football. +5 Daniel got the apple there. +6 Is Sandra in the garden? no 2 +7 Daniel put down the apple. +8 John grabbed the football there. +9 Is Sandra in the hallway? no 2 +10 Daniel went to the office. +11 John dropped the football there. +12 Is Daniel in the hallway? no 10 +13 Mary travelled to the kitchen. +14 Sandra went back to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Sandra took the apple there. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 John got the football there. +5 John journeyed to the bedroom. +6 Is John in the garden? no 5 +7 Daniel grabbed the milk there. +8 John dropped the football there. +9 Is Daniel in the hallway? no 2 +10 Mary journeyed to the bedroom. +11 John took the football there. +12 Is Mary in the bedroom? yes 10 +13 Daniel put down the milk. +14 Mary went back to the kitchen. +15 Is Mary in the bathroom? no 14 +1 John travelled to the hallway. +2 John journeyed to the bathroom. +3 Is John in the hallway? no 2 +4 Mary journeyed to the kitchen. +5 Mary moved to the office. +6 Is John in the kitchen? no 2 +7 John took the milk there. +8 Sandra went to the office. +9 Is Mary in the office? yes 5 +10 Daniel moved to the hallway. +11 John travelled to the hallway. +12 Is Mary in the bedroom? no 5 +13 John took the apple there. +14 John travelled to the office. +15 Is John in the bathroom? no 14 +1 Daniel travelled to the garden. +2 Mary journeyed to the hallway. +3 Is Mary in the hallway? yes 2 +4 Daniel travelled to the hallway. +5 Sandra went to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Daniel went back to the bathroom. +8 Daniel travelled to the office. +9 Is Sandra in the hallway? no 5 +10 Sandra got the football there. +11 Daniel went back to the kitchen. +12 Is Sandra in the bathroom? yes 5 +13 Mary travelled to the bathroom. +14 Daniel grabbed the milk there. +15 Is Daniel in the kitchen? yes 11 +1 Mary took the milk there. +2 Mary left the milk. +3 John went back to the kitchen. +4 Mary went back to the bedroom. +5 Is John in the kitchen? yes 3 +6 Sandra travelled to the bedroom. +7 John moved to the garden. +8 Is John in the garden? yes 7 +9 Mary travelled to the kitchen. +10 Mary travelled to the bathroom. +11 Is Sandra in the hallway? no 6 +12 Sandra grabbed the football there. +13 Mary travelled to the garden. +14 Is Mary in the kitchen? no 13 +15 Mary went back to the bathroom. +16 Daniel travelled to the bedroom. +17 Is Daniel in the bedroom? yes 16 +1 Mary went back to the bedroom. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra moved to the kitchen. +5 Sandra grabbed the football there. +6 Is Mary in the garden? no 1 +7 Daniel grabbed the apple there. +8 John went to the hallway. +9 Is Sandra in the hallway? no 4 +10 Daniel discarded the apple there. +11 Mary took the milk there. +12 Is John in the office? no 8 +13 Sandra journeyed to the office. +14 Daniel picked up the apple there. +15 Is Sandra in the office? yes 13 +1 John went to the hallway. +2 Mary journeyed to the hallway. +3 Is Mary in the hallway? yes 2 +4 Daniel grabbed the football there. +5 Daniel travelled to the office. +6 Is Mary in the hallway? yes 2 +7 Daniel took the milk there. +8 Daniel discarded the milk. +9 Is Daniel in the office? yes 5 +10 Mary travelled to the bathroom. +11 Daniel put down the football there. +12 Is Daniel in the office? yes 5 +13 Daniel travelled to the bathroom. +14 John went back to the office. +15 Is John in the bedroom? no 14 +1 John moved to the garden. +2 Daniel travelled to the garden. +3 Is John in the office? no 1 +4 Mary journeyed to the kitchen. +5 Sandra journeyed to the hallway. +6 Is John in the garden? yes 1 +7 Sandra journeyed to the bathroom. +8 John went to the bedroom. +9 Is Sandra in the bathroom? yes 7 +10 Daniel went back to the kitchen. +11 Daniel moved to the garden. +12 Is Sandra in the bathroom? yes 7 +13 Mary went back to the hallway. +14 Sandra travelled to the kitchen. +15 Is Daniel in the hallway? no 11 +1 Daniel took the apple there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel dropped the apple. +5 Sandra took the milk there. +6 Is Sandra in the office? no 2 +7 Sandra moved to the bathroom. +8 Sandra went back to the office. +9 Is Sandra in the bedroom? no 8 +10 John grabbed the football there. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Daniel grabbed the apple there. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Mary moved to the bedroom. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 John moved to the bathroom. +5 Daniel went to the garden. +6 Is Mary in the bathroom? no 2 +7 John went back to the office. +8 Mary journeyed to the hallway. +9 Is John in the office? yes 7 +10 Mary went back to the bedroom. +11 Daniel got the football there. +12 Is Daniel in the garden? yes 5 +13 Sandra went to the bathroom. +14 Mary went to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Mary travelled to the hallway. +2 John went to the bedroom. +3 Is Mary in the hallway? yes 1 +4 Sandra moved to the garden. +5 John grabbed the apple there. +6 Is John in the bedroom? yes 2 +7 John dropped the apple. +8 Sandra went to the kitchen. +9 Is Sandra in the garden? no 8 +10 Sandra went back to the bedroom. +11 Sandra picked up the apple there. +12 Is Sandra in the kitchen? no 10 +13 Sandra left the apple there. +14 Daniel moved to the kitchen. +15 Is Daniel in the office? no 14 +1 John grabbed the apple there. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 Mary went to the bedroom. +5 Sandra moved to the office. +6 Is Mary in the bedroom? yes 4 +7 John grabbed the football there. +8 Sandra moved to the kitchen. +9 Is Mary in the bedroom? yes 4 +10 John dropped the apple. +11 Mary journeyed to the kitchen. +12 Is Sandra in the kitchen? yes 8 +13 John dropped the football. +14 John moved to the bathroom. +15 Is Sandra in the kitchen? yes 8 +1 Sandra travelled to the hallway. +2 Sandra went back to the office. +3 Is Sandra in the bathroom? no 2 +4 John went to the hallway. +5 John grabbed the milk there. +6 Is Sandra in the kitchen? no 2 +7 John discarded the milk there. +8 Sandra journeyed to the garden. +9 Is John in the hallway? yes 4 +10 Mary went to the bathroom. +11 Sandra grabbed the football there. +12 Is Mary in the hallway? no 10 +13 Sandra went to the kitchen. +14 John took the milk there. +15 Is Sandra in the garden? no 13 +1 Mary picked up the apple there. +2 John went to the kitchen. +3 Is John in the office? no 2 +4 Sandra went to the kitchen. +5 Mary got the milk there. +6 Is John in the hallway? no 2 +7 John went to the office. +8 Sandra journeyed to the office. +9 Is John in the hallway? no 7 +10 John travelled to the hallway. +11 Daniel travelled to the hallway. +12 Is John in the bathroom? no 10 +13 Sandra journeyed to the bathroom. +14 Daniel went to the garden. +15 Is Sandra in the bathroom? yes 13 +1 Sandra journeyed to the hallway. +2 John picked up the apple there. +3 Is Sandra in the hallway? yes 1 +4 Mary went to the garden. +5 Mary journeyed to the office. +6 Is Sandra in the bathroom? no 1 +7 Daniel journeyed to the bedroom. +8 Daniel picked up the football there. +9 Is Mary in the garden? no 5 +10 John dropped the apple. +11 Daniel left the football there. +12 Is Mary in the office? yes 5 +13 Daniel went to the garden. +14 John grabbed the apple there. +15 Is Daniel in the office? no 13 +1 John grabbed the apple there. +2 Mary moved to the office. +3 Is Mary in the bathroom? no 2 +4 Sandra went back to the garden. +5 Mary journeyed to the bedroom. +6 Is Mary in the bathroom? no 5 +7 Daniel travelled to the garden. +8 John went back to the hallway. +9 Is Mary in the office? no 5 +10 Daniel went back to the kitchen. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Daniel went to the garden. +14 John dropped the apple. +15 Is Sandra in the hallway? no 11 +1 John went to the bedroom. +2 Daniel moved to the office. +3 Is Daniel in the hallway? no 2 +4 John went to the kitchen. +5 John travelled to the office. +6 Is John in the office? yes 5 +7 John travelled to the kitchen. +8 John journeyed to the bedroom. +9 Is John in the hallway? no 8 +10 Sandra moved to the garden. +11 John travelled to the bathroom. +12 Is John in the bathroom? yes 11 +13 Mary moved to the kitchen. +14 Mary went to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Sandra picked up the football there. +2 Sandra went back to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Daniel travelled to the office. +5 John went back to the office. +6 Is John in the bedroom? no 5 +7 Sandra discarded the football. +8 Sandra went to the office. +9 Is John in the bedroom? no 5 +10 John moved to the garden. +11 John grabbed the milk there. +12 Is John in the garden? yes 10 +13 John went back to the bedroom. +14 Daniel went back to the garden. +15 Is Daniel in the bathroom? no 14 +1 Sandra took the football there. +2 Daniel took the milk there. +3 Daniel put down the milk. +4 Daniel grabbed the milk there. +5 Daniel moved to the office. +6 Daniel went to the bedroom. +7 Is Daniel in the office? no 6 +8 Mary went to the office. +9 Daniel discarded the milk there. +10 Is Daniel in the office? no 6 +11 Mary went to the garden. +12 Sandra picked up the apple there. +13 Is Mary in the kitchen? no 11 +14 Sandra went back to the bedroom. +15 Daniel picked up the milk there. +16 Is Mary in the bathroom? no 11 +17 John went back to the garden. +18 John went to the bedroom. +19 Is Sandra in the bedroom? yes 14 +1 Daniel went to the bathroom. +2 Mary went to the hallway. +3 Is Daniel in the hallway? no 1 +4 Sandra got the apple there. +5 John moved to the office. +6 Is Daniel in the bathroom? yes 1 +7 Sandra left the apple. +8 Daniel travelled to the bedroom. +9 Is Daniel in the bathroom? no 8 +10 John travelled to the bedroom. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 Sandra journeyed to the bedroom. +14 Daniel went back to the bathroom. +15 Is Daniel in the hallway? no 14 +1 Mary went to the hallway. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 John moved to the hallway. +5 Daniel journeyed to the office. +6 Is John in the kitchen? no 4 +7 John got the football there. +8 Mary went to the office. +9 Is Mary in the hallway? no 8 +10 John discarded the football there. +11 Sandra moved to the kitchen. +12 Is Mary in the kitchen? no 8 +13 John grabbed the football there. +14 Sandra got the milk there. +15 Is Sandra in the kitchen? yes 11 +1 Daniel picked up the milk there. +2 Daniel moved to the office. +3 Is Daniel in the bedroom? no 2 +4 Daniel went back to the garden. +5 Daniel picked up the football there. +6 Is Daniel in the garden? yes 4 +7 Sandra moved to the bathroom. +8 John went to the hallway. +9 Is Sandra in the garden? no 7 +10 Mary journeyed to the bedroom. +11 John went back to the kitchen. +12 Is Sandra in the office? no 7 +13 John travelled to the garden. +14 Daniel went back to the office. +15 Is Mary in the bedroom? yes 10 +1 Daniel went back to the kitchen. +2 Sandra took the milk there. +3 Is Daniel in the kitchen? yes 1 +4 Mary moved to the bedroom. +5 Sandra dropped the milk. +6 Is Mary in the garden? no 4 +7 John went to the hallway. +8 John travelled to the office. +9 Is Mary in the bathroom? no 4 +10 Mary took the football there. +11 Mary went back to the office. +12 Is John in the hallway? no 8 +13 Daniel went back to the office. +14 Sandra journeyed to the kitchen. +15 Is John in the office? yes 8 +1 Mary picked up the apple there. +2 Mary dropped the apple. +3 John moved to the bedroom. +4 Sandra travelled to the bathroom. +5 Is John in the bedroom? yes 3 +6 Mary picked up the apple there. +7 John got the milk there. +8 Is John in the kitchen? no 3 +9 Mary went back to the garden. +10 Mary went to the bedroom. +11 Is Mary in the hallway? no 10 +12 Sandra went to the office. +13 John went to the garden. +14 Is Sandra in the kitchen? no 12 +15 Mary journeyed to the bathroom. +16 John took the football there. +17 Is Mary in the bathroom? yes 15 +1 Sandra went back to the kitchen. +2 Sandra travelled to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Mary picked up the apple there. +5 John moved to the office. +6 Is Sandra in the bedroom? yes 2 +7 John got the milk there. +8 Mary moved to the bathroom. +9 Is Sandra in the garden? no 2 +10 John discarded the milk. +11 Mary went back to the garden. +12 Is John in the bedroom? no 5 +13 Sandra went to the kitchen. +14 Mary discarded the apple. +15 Is Sandra in the garden? no 13 +1 Mary went to the bedroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Mary went back to the hallway. +5 Daniel got the apple there. +6 Is Mary in the office? no 4 +7 John journeyed to the garden. +8 Daniel picked up the football there. +9 Is Daniel in the bathroom? no 2 +10 Mary travelled to the bedroom. +11 Daniel left the apple. +12 Is Mary in the bedroom? yes 10 +13 Daniel dropped the football. +14 Daniel grabbed the apple there. +15 Is Mary in the bedroom? yes 10 +1 John took the football there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John put down the football there. +5 Daniel took the football there. +6 Is Daniel in the bedroom? yes 2 +7 Mary picked up the apple there. +8 Mary went back to the garden. +9 Is Daniel in the bedroom? yes 2 +10 John moved to the office. +11 John journeyed to the kitchen. +12 Is John in the kitchen? yes 11 +13 Mary discarded the apple. +14 Mary took the milk there. +15 Is John in the kitchen? yes 11 +1 John went back to the hallway. +2 Daniel went to the bedroom. +3 Is John in the garden? no 1 +4 Sandra took the milk there. +5 Daniel grabbed the football there. +6 Is Daniel in the garden? no 2 +7 Daniel went back to the garden. +8 Sandra journeyed to the hallway. +9 Is Daniel in the kitchen? no 7 +10 Mary travelled to the bathroom. +11 John went to the bedroom. +12 Is Daniel in the garden? yes 7 +13 John travelled to the kitchen. +14 Daniel dropped the football there. +15 Is John in the garden? no 13 +1 Mary travelled to the garden. +2 Mary moved to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Sandra got the football there. +5 Mary travelled to the hallway. +6 Is Mary in the office? no 5 +7 Daniel went back to the hallway. +8 Sandra picked up the milk there. +9 Is Mary in the garden? no 5 +10 Sandra moved to the garden. +11 Sandra dropped the football there. +12 Is Sandra in the garden? yes 10 +13 Sandra picked up the football there. +14 Sandra discarded the football. +15 Is Sandra in the garden? yes 10 +1 Mary moved to the kitchen. +2 Sandra went to the office. +3 Is Sandra in the office? yes 2 +4 Mary journeyed to the bedroom. +5 Mary journeyed to the kitchen. +6 Is Mary in the office? no 5 +7 Sandra picked up the apple there. +8 Daniel travelled to the garden. +9 Is Sandra in the office? yes 2 +10 Mary travelled to the bathroom. +11 Sandra went back to the garden. +12 Is Sandra in the bedroom? no 11 +13 Daniel moved to the bedroom. +14 Mary went back to the bedroom. +15 Is Daniel in the garden? no 13 +1 Daniel went back to the office. +2 Mary went to the hallway. +3 Is Mary in the office? no 2 +4 Mary moved to the office. +5 John went to the hallway. +6 Is John in the hallway? yes 5 +7 John picked up the football there. +8 Mary went back to the hallway. +9 Is John in the hallway? yes 5 +10 John moved to the garden. +11 Mary travelled to the garden. +12 Is Mary in the garden? yes 11 +13 Mary grabbed the apple there. +14 Mary journeyed to the hallway. +15 Is Mary in the bedroom? no 14 +1 Daniel travelled to the office. +2 John travelled to the office. +3 Is Daniel in the kitchen? no 1 +4 John got the milk there. +5 Mary went to the hallway. +6 Is John in the office? yes 2 +7 Sandra went to the bathroom. +8 John dropped the milk. +9 Is Sandra in the bedroom? no 7 +10 John moved to the hallway. +11 John went to the office. +12 Is Sandra in the bathroom? yes 7 +13 Sandra got the apple there. +14 John got the milk there. +15 Is John in the office? yes 11 +1 Daniel grabbed the apple there. +2 Mary grabbed the football there. +3 Sandra journeyed to the garden. +4 Mary dropped the football there. +5 Is Sandra in the garden? yes 3 +6 Mary grabbed the milk there. +7 Mary moved to the garden. +8 Is Sandra in the garden? yes 3 +9 Sandra moved to the office. +10 Mary went to the hallway. +11 Is Mary in the hallway? yes 10 +12 Daniel moved to the bedroom. +13 Mary went to the bedroom. +14 Is Mary in the bedroom? yes 13 +15 Daniel put down the apple there. +16 Mary travelled to the hallway. +17 Is Daniel in the hallway? no 12 +1 Mary grabbed the apple there. +2 Sandra grabbed the milk there. +3 Sandra left the milk. +4 Sandra grabbed the milk there. +5 Daniel moved to the garden. +6 Mary took the football there. +7 Is Daniel in the garden? yes 5 +8 John travelled to the bathroom. +9 Daniel journeyed to the hallway. +10 Is Daniel in the hallway? yes 9 +11 Daniel went back to the bathroom. +12 Sandra travelled to the office. +13 Is Daniel in the bathroom? yes 11 +14 John journeyed to the office. +15 John went back to the bathroom. +16 Is Daniel in the kitchen? no 11 +17 Daniel moved to the bedroom. +18 John journeyed to the bedroom. +19 Is Daniel in the office? no 17 +1 Sandra went to the bathroom. +2 John travelled to the hallway. +3 Is John in the bathroom? no 2 +4 Sandra went back to the garden. +5 Sandra took the football there. +6 Is Sandra in the garden? yes 4 +7 Sandra travelled to the bathroom. +8 Mary went back to the bedroom. +9 Is Sandra in the office? no 7 +10 Sandra discarded the football. +11 John went to the kitchen. +12 Is Mary in the hallway? no 8 +13 John grabbed the milk there. +14 John went back to the office. +15 Is Mary in the bathroom? no 8 +1 Mary moved to the hallway. +2 Mary got the football there. +3 Is Mary in the kitchen? no 1 +4 John went back to the office. +5 Mary discarded the football. +6 Is John in the garden? no 4 +7 Mary moved to the garden. +8 Mary went back to the hallway. +9 Is Mary in the office? no 8 +10 Daniel travelled to the bedroom. +11 Mary went to the bedroom. +12 Is Daniel in the office? no 10 +13 John picked up the milk there. +14 Sandra went to the hallway. +15 Is Daniel in the hallway? no 10 +1 John journeyed to the kitchen. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra took the football there. +5 John moved to the bathroom. +6 Is Sandra in the kitchen? yes 2 +7 Daniel moved to the hallway. +8 Sandra went back to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra discarded the football. +11 Daniel journeyed to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Daniel moved to the hallway. +14 Mary went back to the bedroom. +15 Is Sandra in the garden? yes 8 +1 John picked up the football there. +2 Sandra went back to the bathroom. +3 Is Sandra in the bedroom? no 2 +4 Mary journeyed to the office. +5 John discarded the football there. +6 Is Sandra in the garden? no 2 +7 Daniel went to the garden. +8 Daniel took the football there. +9 Is Sandra in the bathroom? yes 2 +10 Sandra went back to the bedroom. +11 Daniel moved to the office. +12 Is Daniel in the office? yes 11 +13 Sandra travelled to the kitchen. +14 Daniel discarded the football. +15 Is Sandra in the bedroom? no 13 +1 Sandra moved to the office. +2 Daniel journeyed to the bathroom. +3 Is Sandra in the garden? no 1 +4 Daniel took the apple there. +5 Daniel grabbed the football there. +6 Is Daniel in the bathroom? yes 2 +7 John moved to the bathroom. +8 Sandra went to the hallway. +9 Is John in the kitchen? no 7 +10 Daniel put down the football. +11 Daniel discarded the apple. +12 Is John in the bedroom? no 7 +13 John journeyed to the office. +14 Sandra journeyed to the office. +15 Is Sandra in the bathroom? no 14 +1 Sandra took the apple there. +2 Sandra moved to the garden. +3 Is Sandra in the bathroom? no 2 +4 Daniel journeyed to the office. +5 John went to the office. +6 Is Daniel in the office? yes 4 +7 Daniel went to the bathroom. +8 John travelled to the garden. +9 Is Daniel in the kitchen? no 7 +10 Daniel went back to the garden. +11 Daniel moved to the kitchen. +12 Is Daniel in the hallway? no 11 +13 Mary journeyed to the bathroom. +14 Mary went to the office. +15 Is John in the garden? yes 8 +1 Mary journeyed to the hallway. +2 John moved to the office. +3 Is Mary in the bathroom? no 1 +4 Daniel moved to the bathroom. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the garden? no 5 +7 Mary moved to the garden. +8 Sandra went back to the kitchen. +9 Is Daniel in the bedroom? yes 5 +10 John went back to the bathroom. +11 Mary picked up the football there. +12 Is Sandra in the kitchen? yes 8 +13 John grabbed the milk there. +14 Mary went to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 John went to the hallway. +2 Mary moved to the hallway. +3 Is John in the hallway? yes 1 +4 Mary went to the kitchen. +5 Mary went to the office. +6 Is Mary in the office? yes 5 +7 Mary got the milk there. +8 Mary left the milk there. +9 Is Mary in the office? yes 5 +10 Mary went to the kitchen. +11 Daniel travelled to the hallway. +12 Is Mary in the kitchen? yes 10 +13 Sandra went to the kitchen. +14 Sandra travelled to the office. +15 Is Daniel in the hallway? yes 11 +1 John journeyed to the kitchen. +2 Daniel went to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 Sandra moved to the garden. +5 Sandra travelled to the kitchen. +6 Is Sandra in the hallway? no 5 +7 Daniel travelled to the garden. +8 Mary journeyed to the bedroom. +9 Is Daniel in the garden? yes 7 +10 John travelled to the bedroom. +11 Daniel took the apple there. +12 Is John in the kitchen? no 10 +13 Sandra moved to the hallway. +14 Daniel travelled to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 John went back to the hallway. +2 John got the apple there. +3 Is John in the bedroom? no 1 +4 Sandra picked up the football there. +5 Mary moved to the office. +6 Is John in the hallway? yes 1 +7 John discarded the apple there. +8 Sandra left the football there. +9 Is Mary in the garden? no 5 +10 Sandra got the football there. +11 Sandra dropped the football. +12 Is Mary in the office? yes 5 +13 John got the apple there. +14 John moved to the office. +15 Is John in the bathroom? no 14 +1 Mary got the apple there. +2 Mary discarded the apple there. +3 John went to the bedroom. +4 Mary travelled to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 Sandra moved to the kitchen. +7 John went back to the hallway. +8 Is John in the bedroom? no 7 +9 Sandra went back to the office. +10 Mary travelled to the bedroom. +11 Is Mary in the garden? no 10 +12 John took the milk there. +13 Mary went to the hallway. +14 Is Sandra in the office? yes 9 +15 John moved to the office. +16 Mary picked up the football there. +17 Is Mary in the hallway? yes 13 +1 Daniel travelled to the garden. +2 Sandra went to the kitchen. +3 Is Daniel in the bathroom? no 1 +4 John picked up the apple there. +5 Daniel journeyed to the bathroom. +6 Is Daniel in the hallway? no 5 +7 Sandra travelled to the hallway. +8 John went back to the kitchen. +9 Is Sandra in the hallway? yes 7 +10 Mary journeyed to the kitchen. +11 John discarded the apple. +12 Is Sandra in the hallway? yes 7 +13 John picked up the apple there. +14 John took the milk there. +15 Is Mary in the hallway? no 10 +1 Sandra took the apple there. +2 John went to the hallway. +3 Is John in the bedroom? no 2 +4 Sandra went back to the hallway. +5 Daniel went back to the hallway. +6 Is Sandra in the hallway? yes 4 +7 Sandra put down the apple. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary grabbed the milk there. +11 John got the apple there. +12 Is Daniel in the office? no 5 +13 John discarded the apple. +14 Mary grabbed the apple there. +15 Is Mary in the bathroom? no 8 +1 John moved to the kitchen. +2 Daniel journeyed to the hallway. +3 Is John in the office? no 1 +4 John went back to the garden. +5 John got the milk there. +6 Is Daniel in the bathroom? no 2 +7 John went to the kitchen. +8 Sandra went to the bathroom. +9 Is Daniel in the hallway? yes 2 +10 Daniel picked up the football there. +11 John went to the bathroom. +12 Is John in the bathroom? yes 11 +13 John travelled to the bedroom. +14 Sandra grabbed the apple there. +15 Is John in the office? no 13 +1 John went to the bedroom. +2 Daniel went to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Mary picked up the football there. +5 Mary travelled to the bathroom. +6 Is John in the hallway? no 1 +7 Mary took the milk there. +8 Daniel went back to the bedroom. +9 Is Daniel in the bathroom? no 8 +10 Daniel went back to the office. +11 Mary dropped the milk. +12 Is Daniel in the hallway? no 10 +13 Mary grabbed the milk there. +14 Mary travelled to the garden. +15 Is Daniel in the kitchen? no 10 +1 John went back to the office. +2 Daniel went to the office. +3 Is John in the hallway? no 1 +4 Daniel travelled to the garden. +5 Sandra moved to the kitchen. +6 Is Daniel in the office? no 4 +7 Mary travelled to the kitchen. +8 Daniel went to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Mary went back to the bedroom. +11 Daniel got the football there. +12 Is Mary in the bedroom? yes 10 +13 Daniel took the milk there. +14 John journeyed to the kitchen. +15 Is John in the kitchen? yes 14 +1 Daniel grabbed the apple there. +2 Mary moved to the garden. +3 Is Mary in the garden? yes 2 +4 Sandra went to the bathroom. +5 Daniel went to the bathroom. +6 Is Mary in the kitchen? no 2 +7 John went back to the office. +8 Mary journeyed to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 John moved to the hallway. +11 John journeyed to the kitchen. +12 Is Mary in the hallway? no 8 +13 Daniel discarded the apple. +14 John travelled to the bathroom. +15 Is John in the bathroom? yes 14 +1 John went to the hallway. +2 Mary travelled to the bedroom. +3 Is John in the hallway? yes 1 +4 Mary travelled to the hallway. +5 Mary went to the office. +6 Is Mary in the bedroom? no 5 +7 Sandra journeyed to the kitchen. +8 Mary got the football there. +9 Is Sandra in the bedroom? no 7 +10 Mary journeyed to the hallway. +11 Mary discarded the football. +12 Is Mary in the bedroom? no 10 +13 Sandra journeyed to the hallway. +14 John travelled to the office. +15 Is Sandra in the bathroom? no 13 +1 John travelled to the kitchen. +2 Mary picked up the football there. +3 Is John in the kitchen? yes 1 +4 Mary left the football. +5 Daniel picked up the milk there. +6 Is John in the garden? no 1 +7 Daniel went to the office. +8 Sandra picked up the apple there. +9 Is Daniel in the office? yes 7 +10 John went to the bedroom. +11 Mary picked up the football there. +12 Is Daniel in the garden? no 7 +13 Daniel dropped the milk. +14 Mary dropped the football. +15 Is John in the office? no 10 +1 Mary journeyed to the garden. +2 Mary took the milk there. +3 Is Mary in the office? no 1 +4 Sandra went back to the bedroom. +5 John grabbed the apple there. +6 Is Mary in the garden? yes 1 +7 John went back to the office. +8 Sandra went to the hallway. +9 Is John in the hallway? no 7 +10 Daniel journeyed to the garden. +11 Sandra travelled to the bathroom. +12 Is Sandra in the office? no 11 +13 Mary travelled to the bathroom. +14 Daniel travelled to the bathroom. +15 Is Mary in the office? no 13 +1 Mary went to the bedroom. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 Daniel travelled to the bedroom. +5 Mary went to the garden. +6 Is Mary in the garden? yes 5 +7 John journeyed to the garden. +8 John went back to the office. +9 Is Daniel in the bedroom? yes 4 +10 John moved to the bathroom. +11 Sandra moved to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Sandra moved to the kitchen. +14 John grabbed the milk there. +15 Is Sandra in the bedroom? no 13 +1 Daniel took the apple there. +2 Mary moved to the bedroom. +3 Is Mary in the office? no 2 +4 Daniel went back to the bedroom. +5 Mary journeyed to the bathroom. +6 Is Mary in the hallway? no 5 +7 John went back to the office. +8 Sandra went to the garden. +9 Is Mary in the bathroom? yes 5 +10 Mary travelled to the bedroom. +11 Sandra travelled to the bedroom. +12 Is Mary in the office? no 10 +13 Mary went to the hallway. +14 Daniel put down the apple. +15 Is Sandra in the bedroom? yes 11 +1 Sandra grabbed the apple there. +2 Sandra went back to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Daniel went to the hallway. +5 John moved to the office. +6 Is Daniel in the hallway? yes 4 +7 Sandra travelled to the garden. +8 Daniel went to the office. +9 Is Daniel in the office? yes 8 +10 Sandra left the apple. +11 Sandra travelled to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Sandra got the football there. +14 Mary went back to the bathroom. +15 Is Sandra in the bathroom? no 11 +1 Daniel moved to the bathroom. +2 Sandra picked up the apple there. +3 Is Daniel in the bathroom? yes 1 +4 John travelled to the bedroom. +5 Mary went to the bedroom. +6 Is Daniel in the office? no 1 +7 Mary journeyed to the office. +8 Sandra put down the apple. +9 Is Mary in the office? yes 7 +10 Sandra moved to the office. +11 Mary journeyed to the bathroom. +12 Is Sandra in the garden? no 10 +13 John picked up the milk there. +14 Sandra grabbed the football there. +15 Is Mary in the bedroom? no 11 +1 Sandra moved to the bedroom. +2 Mary went back to the kitchen. +3 Is Sandra in the hallway? no 1 +4 Daniel went to the hallway. +5 Mary went back to the bathroom. +6 Is Mary in the hallway? no 5 +7 Sandra went to the hallway. +8 Daniel took the apple there. +9 Is Sandra in the bedroom? no 7 +10 Sandra went back to the garden. +11 Sandra got the football there. +12 Is Sandra in the garden? yes 10 +13 Mary went back to the garden. +14 John journeyed to the bedroom. +15 Is Mary in the garden? yes 13 +1 Daniel went to the kitchen. +2 John went to the kitchen. +3 Is Daniel in the kitchen? yes 1 +4 John journeyed to the garden. +5 Mary moved to the office. +6 Is John in the garden? yes 4 +7 Sandra journeyed to the kitchen. +8 Mary went to the garden. +9 Is Mary in the kitchen? no 8 +10 Mary went to the office. +11 Sandra journeyed to the garden. +12 Is Sandra in the kitchen? no 11 +13 Daniel went to the bathroom. +14 Mary travelled to the kitchen. +15 Is Mary in the office? no 14 +1 Sandra got the football there. +2 Mary got the milk there. +3 John went to the kitchen. +4 Daniel went to the office. +5 Is Daniel in the office? yes 4 +6 Sandra went back to the hallway. +7 Sandra discarded the football. +8 Is John in the kitchen? yes 3 +9 Daniel moved to the bedroom. +10 John journeyed to the office. +11 Is John in the office? yes 10 +12 John moved to the kitchen. +13 Mary got the football there. +14 Is John in the bedroom? no 12 +15 Mary travelled to the office. +16 Daniel went back to the garden. +17 Is John in the kitchen? yes 12 +1 Mary got the apple there. +2 John travelled to the office. +3 Is John in the office? yes 2 +4 Mary went to the bedroom. +5 Daniel went back to the garden. +6 Is John in the office? yes 2 +7 Mary went to the bathroom. +8 Mary discarded the apple. +9 Is Daniel in the garden? yes 5 +10 Mary grabbed the apple there. +11 Mary put down the apple. +12 Is Daniel in the garden? yes 5 +13 Daniel journeyed to the bathroom. +14 John journeyed to the garden. +15 Is John in the garden? yes 14 +1 Sandra went back to the hallway. +2 Sandra journeyed to the garden. +3 Is Sandra in the kitchen? no 2 +4 Daniel travelled to the kitchen. +5 Daniel went to the hallway. +6 Is Daniel in the hallway? yes 5 +7 John travelled to the office. +8 Sandra journeyed to the bedroom. +9 Is John in the kitchen? no 7 +10 Mary journeyed to the hallway. +11 Daniel journeyed to the bedroom. +12 Is Mary in the hallway? yes 10 +13 Daniel moved to the kitchen. +14 Mary moved to the bathroom. +15 Is Daniel in the office? no 13 +1 Sandra got the apple there. +2 Mary journeyed to the bedroom. +3 Is Mary in the office? no 2 +4 John went back to the garden. +5 Mary went to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Daniel travelled to the hallway. +8 Sandra moved to the hallway. +9 Is Mary in the garden? no 5 +10 John picked up the football there. +11 John moved to the bathroom. +12 Is Mary in the bedroom? no 5 +13 Sandra moved to the kitchen. +14 Sandra journeyed to the hallway. +15 Is Sandra in the hallway? yes 14 +1 John moved to the bedroom. +2 Daniel journeyed to the kitchen. +3 Is Daniel in the hallway? no 2 +4 Daniel moved to the garden. +5 Mary travelled to the bathroom. +6 Is John in the garden? no 1 +7 John went back to the bathroom. +8 Sandra journeyed to the bedroom. +9 Is Sandra in the kitchen? no 8 +10 Daniel went to the bathroom. +11 Mary travelled to the hallway. +12 Is John in the garden? no 7 +13 Sandra travelled to the office. +14 Mary went to the garden. +15 Is Sandra in the kitchen? no 13 +1 Mary journeyed to the office. +2 Mary went to the kitchen. +3 Is Mary in the office? no 2 +4 Sandra went to the bathroom. +5 Mary travelled to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary moved to the bedroom. +8 John went back to the hallway. +9 Is Mary in the bedroom? yes 7 +10 Mary went to the office. +11 John picked up the apple there. +12 Is Mary in the kitchen? no 10 +13 Mary went to the bathroom. +14 Sandra travelled to the bedroom. +15 Is John in the hallway? yes 8 +1 John journeyed to the hallway. +2 John travelled to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra travelled to the hallway. +5 Sandra went back to the bedroom. +6 Is John in the kitchen? yes 2 +7 Sandra went to the kitchen. +8 Daniel went back to the kitchen. +9 Is Sandra in the kitchen? yes 7 +10 Mary travelled to the bathroom. +11 Mary journeyed to the garden. +12 Is Mary in the garden? yes 11 +13 Mary went to the bathroom. +14 Mary picked up the apple there. +15 Is Mary in the office? no 13 +1 John journeyed to the office. +2 Daniel went back to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel got the apple there. +5 Sandra journeyed to the bathroom. +6 Is John in the office? yes 1 +7 Mary went back to the garden. +8 Sandra went to the kitchen. +9 Is Daniel in the hallway? yes 2 +10 John travelled to the bathroom. +11 Mary journeyed to the bathroom. +12 Is Mary in the bathroom? yes 11 +13 Daniel left the apple. +14 Mary went to the kitchen. +15 Is Mary in the garden? no 14 +1 John journeyed to the office. +2 Mary went back to the office. +3 Is John in the garden? no 1 +4 Mary went to the bathroom. +5 John grabbed the football there. +6 Is John in the garden? no 1 +7 Mary went back to the office. +8 John discarded the football. +9 Is Mary in the kitchen? no 7 +10 Sandra went to the hallway. +11 Mary went to the garden. +12 Is Mary in the bathroom? no 11 +13 Daniel went back to the bathroom. +14 John took the football there. +15 Is Daniel in the bathroom? yes 13 +1 John took the apple there. +2 Mary moved to the hallway. +3 Is Mary in the hallway? yes 2 +4 John put down the apple. +5 Daniel went back to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Daniel got the football there. +8 John got the apple there. +9 Is Daniel in the bedroom? yes 5 +10 Daniel put down the football there. +11 Sandra travelled to the garden. +12 Is Sandra in the office? no 11 +13 Mary moved to the garden. +14 Daniel grabbed the football there. +15 Is Mary in the garden? yes 13 +1 Daniel moved to the hallway. +2 John took the football there. +3 Is Daniel in the bedroom? no 1 +4 Sandra journeyed to the hallway. +5 John dropped the football there. +6 Is Daniel in the office? no 1 +7 John journeyed to the bedroom. +8 Mary went back to the hallway. +9 Is John in the kitchen? no 7 +10 Sandra moved to the office. +11 Sandra went back to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Daniel journeyed to the office. +14 Daniel went to the kitchen. +15 Is Sandra in the bedroom? yes 11 +1 John picked up the milk there. +2 John left the milk there. +3 Daniel went to the bedroom. +4 Daniel moved to the office. +5 Is Daniel in the office? yes 4 +6 Sandra went to the office. +7 John went back to the office. +8 Is Daniel in the kitchen? no 4 +9 Mary grabbed the milk there. +10 Daniel travelled to the garden. +11 Is John in the kitchen? no 7 +12 Mary grabbed the football there. +13 John moved to the garden. +14 Is John in the kitchen? no 13 +15 Mary discarded the milk. +16 Mary put down the football. +17 Is Daniel in the garden? yes 10 +1 Sandra moved to the kitchen. +2 Sandra went to the garden. +3 Is Sandra in the garden? yes 2 +4 John travelled to the office. +5 Daniel travelled to the bedroom. +6 Is John in the office? yes 4 +7 Sandra moved to the bathroom. +8 John journeyed to the garden. +9 Is John in the kitchen? no 8 +10 Mary took the apple there. +11 Mary discarded the apple. +12 Is Daniel in the office? no 5 +13 Mary went back to the bedroom. +14 John travelled to the bathroom. +15 Is John in the bathroom? yes 14 +1 John journeyed to the kitchen. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John went to the bedroom. +5 Mary moved to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary moved to the kitchen. +8 John went back to the bathroom. +9 Is John in the bedroom? no 8 +10 Sandra travelled to the garden. +11 Mary travelled to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Mary went back to the bathroom. +14 Mary travelled to the bedroom. +15 Is John in the office? no 8 +1 John journeyed to the hallway. +2 John journeyed to the garden. +3 Is John in the office? no 2 +4 Mary travelled to the office. +5 Sandra travelled to the hallway. +6 Is John in the hallway? no 2 +7 John moved to the office. +8 Mary went back to the bathroom. +9 Is Sandra in the kitchen? no 5 +10 Sandra moved to the office. +11 John went to the bathroom. +12 Is Sandra in the bedroom? no 10 +13 Mary journeyed to the bedroom. +14 Sandra moved to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Sandra took the football there. +2 Mary travelled to the bathroom. +3 Is Mary in the office? no 2 +4 Mary travelled to the bedroom. +5 Daniel journeyed to the bathroom. +6 Is Mary in the bedroom? yes 4 +7 Sandra went back to the hallway. +8 Sandra put down the football there. +9 Is Mary in the bathroom? no 4 +10 Sandra travelled to the bathroom. +11 Mary went back to the garden. +12 Is Daniel in the bedroom? no 5 +13 Sandra picked up the milk there. +14 John journeyed to the bathroom. +15 Is John in the garden? no 14 +1 Daniel moved to the bedroom. +2 Daniel travelled to the garden. +3 Is Daniel in the bedroom? no 2 +4 Daniel moved to the office. +5 Mary travelled to the bedroom. +6 Is Daniel in the office? yes 4 +7 Daniel got the milk there. +8 Mary travelled to the hallway. +9 Is Mary in the hallway? yes 8 +10 Daniel went back to the hallway. +11 Sandra took the apple there. +12 Is Mary in the hallway? yes 8 +13 Daniel dropped the milk. +14 Sandra travelled to the garden. +15 Is Daniel in the hallway? yes 10 +1 Mary travelled to the bathroom. +2 John picked up the apple there. +3 Is Mary in the bathroom? yes 1 +4 John discarded the apple. +5 John picked up the apple there. +6 Is Mary in the bathroom? yes 1 +7 Sandra journeyed to the kitchen. +8 Sandra moved to the garden. +9 Is Sandra in the bedroom? no 8 +10 John put down the apple. +11 Sandra went back to the hallway. +12 Is Sandra in the office? no 11 +13 Mary grabbed the apple there. +14 John travelled to the kitchen. +15 Is Sandra in the garden? no 11 +1 Daniel picked up the milk there. +2 John moved to the kitchen. +3 Is John in the office? no 2 +4 John travelled to the bedroom. +5 Mary went to the bedroom. +6 Is John in the kitchen? no 4 +7 John went to the kitchen. +8 Daniel discarded the milk. +9 Is Mary in the hallway? no 5 +10 Mary travelled to the garden. +11 Sandra went back to the kitchen. +12 Is Sandra in the office? no 11 +13 John travelled to the hallway. +14 Daniel went back to the garden. +15 Is Mary in the garden? yes 10 +1 Daniel went to the hallway. +2 Mary travelled to the bathroom. +3 Is Daniel in the hallway? yes 1 +4 John went to the kitchen. +5 Sandra journeyed to the garden. +6 Is Daniel in the hallway? yes 1 +7 Daniel went back to the office. +8 Sandra picked up the football there. +9 Is John in the kitchen? yes 4 +10 Mary journeyed to the kitchen. +11 John went to the garden. +12 Is Mary in the kitchen? yes 10 +13 John travelled to the hallway. +14 Sandra went to the hallway. +15 Is John in the bathroom? no 13 +1 Daniel went back to the bedroom. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary went back to the bathroom. +5 Daniel grabbed the milk there. +6 Is Daniel in the kitchen? yes 2 +7 Sandra moved to the office. +8 Sandra went back to the bathroom. +9 Is Sandra in the bedroom? no 8 +10 Daniel got the apple there. +11 Daniel discarded the milk. +12 Is Sandra in the hallway? no 8 +13 John got the football there. +14 John moved to the garden. +15 Is Sandra in the bathroom? yes 8 +1 Mary took the football there. +2 John travelled to the bedroom. +3 Is John in the garden? no 2 +4 John got the milk there. +5 Daniel journeyed to the bathroom. +6 Is John in the bedroom? yes 2 +7 Daniel took the apple there. +8 John went back to the garden. +9 Is Daniel in the kitchen? no 5 +10 Mary dropped the football. +11 Sandra went to the bedroom. +12 Is John in the garden? yes 8 +13 Mary went back to the bedroom. +14 Sandra moved to the bathroom. +15 Is Sandra in the hallway? no 14 +1 Mary got the milk there. +2 Mary discarded the milk. +3 Daniel journeyed to the bathroom. +4 John grabbed the apple there. +5 Is Daniel in the bathroom? yes 3 +6 John journeyed to the hallway. +7 Mary got the milk there. +8 Is Daniel in the bathroom? yes 3 +9 Sandra went to the hallway. +10 John journeyed to the office. +11 Is John in the office? yes 10 +12 Sandra travelled to the garden. +13 Daniel went to the garden. +14 Is John in the bedroom? no 10 +15 John dropped the apple. +16 John got the apple there. +17 Is John in the kitchen? no 10 +1 Sandra journeyed to the bathroom. +2 Sandra grabbed the football there. +3 Is Sandra in the kitchen? no 1 +4 Mary moved to the kitchen. +5 Sandra picked up the milk there. +6 Is Sandra in the kitchen? no 1 +7 Sandra put down the milk there. +8 Sandra took the milk there. +9 Is Mary in the bedroom? no 4 +10 Mary went to the bathroom. +11 Sandra dropped the milk. +12 Is Mary in the bathroom? yes 10 +13 Mary travelled to the hallway. +14 Mary journeyed to the office. +15 Is Mary in the office? yes 14 +1 John journeyed to the kitchen. +2 Mary went back to the hallway. +3 Is Mary in the bedroom? no 2 +4 John grabbed the milk there. +5 Daniel journeyed to the hallway. +6 Is Daniel in the office? no 5 +7 John left the milk. +8 Daniel travelled to the kitchen. +9 Is Daniel in the garden? no 8 +10 John journeyed to the garden. +11 John went to the bathroom. +12 Is Daniel in the bathroom? no 8 +13 Mary moved to the garden. +14 John journeyed to the kitchen. +15 Is Daniel in the kitchen? yes 8 +1 Daniel went to the hallway. +2 John journeyed to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary got the football there. +5 John moved to the office. +6 Is John in the office? yes 5 +7 Sandra journeyed to the bedroom. +8 Sandra took the apple there. +9 Is John in the office? yes 5 +10 Mary left the football there. +11 Sandra put down the apple. +12 Is Sandra in the hallway? no 7 +13 Sandra took the apple there. +14 Sandra put down the apple. +15 John went to the kitchen. +16 Sandra went to the kitchen. +17 Is Sandra in the kitchen? yes 16 +1 Sandra took the football there. +2 Sandra put down the football there. +3 Mary journeyed to the kitchen. +4 John picked up the apple there. +5 Is Mary in the garden? no 3 +6 Sandra went to the garden. +7 John journeyed to the kitchen. +8 Is John in the kitchen? yes 7 +9 John went back to the office. +10 Sandra travelled to the office. +11 Is John in the office? yes 9 +12 John put down the apple. +13 Mary travelled to the hallway. +14 Is Mary in the bedroom? no 13 +15 Sandra went back to the bedroom. +16 Sandra went to the hallway. +17 Is Sandra in the hallway? yes 16 +1 John got the milk there. +2 John discarded the milk there. +3 John grabbed the milk there. +4 John put down the milk. +5 Mary journeyed to the bathroom. +6 Daniel got the milk there. +7 Is Mary in the kitchen? no 5 +8 Sandra went to the bathroom. +9 Sandra went back to the bedroom. +10 Is Mary in the garden? no 5 +11 John moved to the garden. +12 John took the football there. +13 Is Sandra in the bedroom? yes 9 +14 Mary journeyed to the office. +15 John dropped the football. +16 Is John in the garden? yes 11 +17 Daniel discarded the milk. +18 John took the football there. +19 Is Mary in the office? yes 14 +1 Mary went to the hallway. +2 John moved to the bedroom. +3 Is John in the hallway? no 2 +4 Mary travelled to the kitchen. +5 John went to the kitchen. +6 Is Mary in the office? no 4 +7 Sandra picked up the milk there. +8 Mary went to the hallway. +9 Is John in the kitchen? yes 5 +10 Sandra moved to the kitchen. +11 Sandra discarded the milk. +12 Is Sandra in the hallway? no 10 +13 Sandra got the milk there. +14 Daniel moved to the bedroom. +15 Is Daniel in the office? no 14 +1 Mary got the football there. +2 Mary journeyed to the hallway. +3 Is Mary in the bedroom? no 2 +4 Sandra went back to the garden. +5 Daniel moved to the bathroom. +6 Is Mary in the bathroom? no 2 +7 Mary discarded the football. +8 Daniel journeyed to the office. +9 Is Daniel in the hallway? no 8 +10 John travelled to the kitchen. +11 Sandra moved to the bedroom. +12 Is Daniel in the garden? no 8 +13 John journeyed to the garden. +14 Daniel moved to the hallway. +15 Is John in the office? no 13 +1 Daniel got the milk there. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary got the apple there. +5 Daniel journeyed to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 Mary left the apple. +8 Daniel travelled to the hallway. +9 Is Sandra in the garden? no 2 +10 John went to the bedroom. +11 Mary picked up the apple there. +12 Is Daniel in the kitchen? no 8 +13 Mary travelled to the hallway. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the hallway? no 14 +1 John went to the office. +2 Mary journeyed to the garden. +3 Is Mary in the office? no 2 +4 Sandra went to the kitchen. +5 Mary went to the hallway. +6 Is Mary in the hallway? yes 5 +7 Daniel travelled to the kitchen. +8 John picked up the football there. +9 Is Mary in the hallway? yes 5 +10 John went to the bedroom. +11 Daniel moved to the garden. +12 Is Daniel in the hallway? no 11 +13 John discarded the football. +14 Mary picked up the milk there. +15 Is Daniel in the garden? yes 11 +1 Mary journeyed to the garden. +2 Sandra travelled to the garden. +3 Is Sandra in the hallway? no 2 +4 Mary moved to the office. +5 John picked up the apple there. +6 Is Sandra in the office? no 2 +7 John discarded the apple. +8 Daniel travelled to the hallway. +9 Is Sandra in the kitchen? no 2 +10 Sandra moved to the office. +11 John picked up the apple there. +12 Is Daniel in the hallway? yes 8 +13 Mary got the football there. +14 Daniel grabbed the milk there. +15 Is Daniel in the bedroom? no 8 +1 Mary went to the hallway. +2 Mary went back to the garden. +3 Is Mary in the kitchen? no 2 +4 Sandra travelled to the office. +5 John went back to the kitchen. +6 Is Mary in the garden? yes 2 +7 Sandra journeyed to the bathroom. +8 John travelled to the office. +9 Is Sandra in the hallway? no 7 +10 Sandra took the football there. +11 Daniel picked up the apple there. +12 Is Sandra in the hallway? no 7 +13 Daniel went back to the garden. +14 Daniel left the apple. +15 Is Daniel in the bedroom? no 13 +1 Mary went back to the bedroom. +2 Mary journeyed to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John travelled to the garden. +5 Daniel grabbed the football there. +6 Is Mary in the office? no 2 +7 Sandra moved to the garden. +8 Mary moved to the office. +9 Is Sandra in the garden? yes 7 +10 Daniel picked up the apple there. +11 Sandra moved to the hallway. +12 Is Sandra in the bedroom? no 11 +13 John journeyed to the hallway. +14 Daniel went to the garden. +15 Is Daniel in the bathroom? no 14 +1 Mary went back to the hallway. +2 Mary got the football there. +3 Is Mary in the hallway? yes 1 +4 Mary went back to the garden. +5 John journeyed to the garden. +6 Is Mary in the office? no 4 +7 Sandra went back to the kitchen. +8 Daniel went to the office. +9 Is Sandra in the kitchen? yes 7 +10 Sandra took the apple there. +11 Sandra left the apple. +12 Is John in the garden? yes 5 +13 Sandra got the apple there. +14 Sandra moved to the garden. +15 Is Sandra in the bathroom? no 14 +1 Daniel picked up the milk there. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary moved to the hallway. +5 Mary got the football there. +6 Is Mary in the hallway? yes 4 +7 Sandra travelled to the hallway. +8 John went to the bathroom. +9 Is Daniel in the bedroom? no 2 +10 Mary went back to the bedroom. +11 Mary left the football. +12 Is Mary in the hallway? no 10 +13 Daniel went back to the hallway. +14 John went to the hallway. +15 Is Daniel in the kitchen? no 13 +1 John went back to the kitchen. +2 Daniel went back to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Sandra journeyed to the office. +5 John journeyed to the bathroom. +6 Is Sandra in the bedroom? no 4 +7 Sandra went back to the hallway. +8 John went to the bedroom. +9 Is Sandra in the hallway? yes 7 +10 Daniel went back to the garden. +11 John moved to the kitchen. +12 Is John in the kitchen? yes 11 +13 Mary went back to the bathroom. +14 Mary went to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Daniel went back to the bedroom. +2 John went to the bathroom. +3 Is Daniel in the office? no 1 +4 Sandra went to the garden. +5 Daniel went to the bathroom. +6 Is Sandra in the garden? yes 4 +7 John went back to the hallway. +8 Sandra travelled to the kitchen. +9 Is Sandra in the garden? no 8 +10 John went to the office. +11 Daniel went back to the garden. +12 Is Sandra in the hallway? no 8 +13 John went to the bathroom. +14 Sandra travelled to the office. +15 Is John in the bathroom? yes 13 +1 Mary journeyed to the bedroom. +2 Daniel got the football there. +3 Is Mary in the garden? no 1 +4 Daniel journeyed to the office. +5 Daniel journeyed to the hallway. +6 Is Daniel in the hallway? yes 5 +7 John went to the bedroom. +8 Mary went to the kitchen. +9 Is Daniel in the office? no 5 +10 John went back to the garden. +11 John journeyed to the bathroom. +12 Is Mary in the bedroom? no 8 +13 Mary went to the hallway. +14 Mary travelled to the kitchen. +15 Is John in the office? no 11 +1 Sandra moved to the bedroom. +2 Daniel picked up the milk there. +3 Is Sandra in the bedroom? yes 1 +4 Daniel left the milk there. +5 Daniel took the football there. +6 Is Sandra in the office? no 1 +7 Daniel took the milk there. +8 Sandra moved to the hallway. +9 Is Sandra in the garden? no 8 +10 Mary picked up the apple there. +11 Daniel went to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Mary left the apple. +14 Mary grabbed the apple there. +15 Is Daniel in the kitchen? yes 11 +1 John took the apple there. +2 John put down the apple. +3 Mary journeyed to the bathroom. +4 John grabbed the apple there. +5 Is Mary in the bathroom? yes 3 +6 Mary moved to the office. +7 Daniel journeyed to the kitchen. +8 Is Mary in the office? yes 6 +9 Sandra moved to the kitchen. +10 Daniel went to the bathroom. +11 Is Sandra in the kitchen? yes 9 +12 Daniel moved to the hallway. +13 Mary journeyed to the hallway. +14 Is Daniel in the kitchen? no 12 +15 John travelled to the office. +16 Sandra moved to the garden. +17 Is Daniel in the bedroom? no 12 +1 Daniel went to the bathroom. +2 Sandra went to the office. +3 Is Daniel in the hallway? no 1 +4 Sandra moved to the garden. +5 Daniel picked up the milk there. +6 Is Sandra in the garden? yes 4 +7 Daniel moved to the kitchen. +8 Daniel travelled to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 John moved to the bedroom. +11 Daniel got the football there. +12 Is Daniel in the hallway? no 8 +13 Daniel discarded the milk. +14 John went to the office. +15 Is Daniel in the kitchen? no 8 +1 Sandra moved to the hallway. +2 Mary went to the bedroom. +3 Is Mary in the kitchen? no 2 +4 Mary grabbed the apple there. +5 Sandra moved to the garden. +6 Is Mary in the bedroom? yes 2 +7 Mary went back to the office. +8 Daniel went back to the office. +9 Is Mary in the office? yes 7 +10 Daniel went to the hallway. +11 Mary got the milk there. +12 Is Daniel in the bathroom? no 10 +13 Mary moved to the bedroom. +14 Mary left the milk. +15 Is Daniel in the hallway? yes 10 +1 John got the football there. +2 John went to the garden. +3 Is John in the bathroom? no 2 +4 Daniel journeyed to the bedroom. +5 Sandra travelled to the garden. +6 Is Sandra in the garden? yes 5 +7 Daniel journeyed to the garden. +8 John picked up the milk there. +9 Is John in the garden? yes 2 +10 John went back to the kitchen. +11 John left the milk. +12 Is Sandra in the hallway? no 5 +13 John put down the football. +14 Daniel journeyed to the office. +15 Is Daniel in the hallway? no 14 +1 Mary took the apple there. +2 Mary left the apple. +3 Daniel went back to the garden. +4 Mary moved to the kitchen. +5 Is Mary in the hallway? no 4 +6 Daniel travelled to the bedroom. +7 Mary got the milk there. +8 Is Daniel in the kitchen? no 6 +9 Mary put down the milk. +10 Sandra moved to the kitchen. +11 Is Sandra in the hallway? no 10 +12 Mary grabbed the milk there. +13 Sandra went to the garden. +14 Is Sandra in the kitchen? no 13 +15 Mary dropped the milk. +16 Sandra moved to the bedroom. +17 Is Sandra in the hallway? no 16 +1 Mary got the football there. +2 Mary went back to the office. +3 Is Mary in the office? yes 2 +4 Daniel went to the hallway. +5 Mary journeyed to the bathroom. +6 Is Daniel in the hallway? yes 4 +7 Daniel got the apple there. +8 Daniel went to the office. +9 Is Mary in the hallway? no 5 +10 Mary dropped the football. +11 Sandra went to the office. +12 Is Daniel in the office? yes 8 +13 Daniel left the apple. +14 Daniel grabbed the apple there. +15 Is Sandra in the bathroom? no 11 +1 Sandra took the apple there. +2 Sandra put down the apple. +3 Sandra picked up the apple there. +4 John journeyed to the kitchen. +5 Is John in the kitchen? yes 4 +6 John took the milk there. +7 John got the football there. +8 Is John in the bathroom? no 4 +9 John travelled to the bathroom. +10 Mary went back to the kitchen. +11 Is John in the garden? no 9 +12 Sandra journeyed to the kitchen. +13 John journeyed to the bedroom. +14 Is Mary in the bathroom? no 10 +15 John moved to the bathroom. +16 Sandra dropped the apple. +17 Is John in the kitchen? no 15 +1 Daniel took the football there. +2 Sandra went to the garden. +3 Is Sandra in the bedroom? no 2 +4 Daniel journeyed to the hallway. +5 Sandra travelled to the office. +6 Is Sandra in the bedroom? no 5 +7 Sandra travelled to the kitchen. +8 Daniel put down the football. +9 Is Daniel in the hallway? yes 4 +10 Sandra travelled to the office. +11 Daniel got the football there. +12 Is Sandra in the office? yes 10 +13 John went back to the bedroom. +14 Daniel dropped the football. +15 Is John in the bedroom? yes 13 +1 John went to the bedroom. +2 Mary travelled to the hallway. +3 Is John in the bedroom? yes 1 +4 John journeyed to the hallway. +5 Sandra went back to the bedroom. +6 Is John in the hallway? yes 4 +7 Daniel got the milk there. +8 John moved to the bedroom. +9 Is Mary in the hallway? yes 2 +10 Sandra travelled to the kitchen. +11 Daniel moved to the garden. +12 Is Daniel in the kitchen? no 11 +13 Daniel got the apple there. +14 Mary went to the office. +15 Is Mary in the office? yes 14 +1 Sandra went to the hallway. +2 Mary went back to the bathroom. +3 Is Mary in the bedroom? no 2 +4 Sandra went back to the bathroom. +5 Mary journeyed to the hallway. +6 Is Sandra in the bathroom? yes 4 +7 John went to the kitchen. +8 John journeyed to the bathroom. +9 Is John in the bathroom? yes 8 +10 John moved to the bedroom. +11 Sandra picked up the milk there. +12 Is Mary in the garden? no 5 +13 Daniel went to the bedroom. +14 Sandra put down the milk. +15 Is John in the hallway? no 10 +1 Sandra picked up the milk there. +2 Mary got the apple there. +3 Sandra went back to the bedroom. +4 John moved to the bathroom. +5 Is John in the office? no 4 +6 Sandra went to the bathroom. +7 Sandra moved to the hallway. +8 Is Sandra in the garden? no 7 +9 Mary went back to the garden. +10 Mary discarded the apple. +11 Is John in the kitchen? no 4 +12 Mary grabbed the apple there. +13 John went back to the garden. +14 Is John in the garden? yes 13 +15 Mary moved to the bathroom. +16 Sandra picked up the football there. +17 Is John in the garden? yes 13 +1 John went back to the kitchen. +2 Daniel travelled to the garden. +3 Is Daniel in the garden? yes 2 +4 Sandra moved to the bathroom. +5 Sandra journeyed to the kitchen. +6 Is Sandra in the kitchen? yes 5 +7 John travelled to the bedroom. +8 Daniel travelled to the hallway. +9 Is Daniel in the hallway? yes 8 +10 John got the apple there. +11 Daniel journeyed to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 Sandra went back to the bedroom. +14 Sandra went back to the kitchen. +15 Is Daniel in the hallway? no 11 +1 Sandra journeyed to the hallway. +2 Mary journeyed to the office. +3 Is Sandra in the hallway? yes 1 +4 John took the football there. +5 Mary went to the kitchen. +6 Is Mary in the office? no 5 +7 Mary went back to the bathroom. +8 John put down the football. +9 Is Mary in the hallway? no 7 +10 John went to the office. +11 Mary went to the garden. +12 Is Mary in the garden? yes 11 +13 Sandra journeyed to the kitchen. +14 Sandra travelled to the bathroom. +15 Is Sandra in the kitchen? no 14 +1 Sandra moved to the bathroom. +2 Sandra travelled to the hallway. +3 Is Sandra in the bedroom? no 2 +4 Daniel journeyed to the kitchen. +5 John went to the bathroom. +6 Is John in the garden? no 5 +7 Daniel grabbed the milk there. +8 Daniel went back to the garden. +9 Is John in the bathroom? yes 5 +10 John grabbed the football there. +11 Daniel went to the hallway. +12 Is John in the bedroom? no 5 +13 John discarded the football there. +14 Mary journeyed to the bedroom. +15 Is Daniel in the garden? no 11 +1 Daniel moved to the kitchen. +2 Mary grabbed the milk there. +3 Is Daniel in the kitchen? yes 1 +4 John picked up the apple there. +5 John put down the apple. +6 Is Daniel in the bedroom? no 1 +7 John moved to the bathroom. +8 John moved to the bedroom. +9 Is John in the bedroom? yes 8 +10 Sandra moved to the bathroom. +11 Daniel travelled to the hallway. +12 Is Daniel in the hallway? yes 11 +13 John travelled to the bathroom. +14 Daniel picked up the football there. +15 Is Daniel in the hallway? yes 11 +1 John grabbed the football there. +2 John left the football. +3 Sandra travelled to the bedroom. +4 Sandra went back to the hallway. +5 Is Sandra in the hallway? yes 4 +6 John went to the bathroom. +7 Sandra got the milk there. +8 Is Sandra in the hallway? yes 4 +9 Mary journeyed to the hallway. +10 Mary went to the kitchen. +11 Is John in the bathroom? yes 6 +12 Daniel moved to the bedroom. +13 Sandra dropped the milk. +14 Is Daniel in the bathroom? no 12 +15 Mary went back to the office. +16 Mary went to the kitchen. +17 Is Mary in the kitchen? yes 16 +1 Mary travelled to the hallway. +2 Mary went back to the office. +3 Is Mary in the garden? no 2 +4 Mary travelled to the garden. +5 John went to the bathroom. +6 Is Mary in the garden? yes 4 +7 John went back to the kitchen. +8 John went to the office. +9 Is John in the garden? no 8 +10 Mary picked up the milk there. +11 Mary picked up the football there. +12 Is John in the bedroom? no 8 +13 Mary discarded the football. +14 Mary went to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Daniel travelled to the office. +2 Mary travelled to the garden. +3 Is Daniel in the garden? no 1 +4 Mary picked up the apple there. +5 Sandra went to the hallway. +6 Is Daniel in the office? yes 1 +7 Daniel went to the kitchen. +8 John grabbed the football there. +9 Is Mary in the bathroom? no 2 +10 Mary left the apple. +11 Daniel picked up the milk there. +12 Is Sandra in the office? no 5 +13 John left the football. +14 John grabbed the football there. +15 Daniel discarded the milk. +16 Mary travelled to the office. +17 Is Mary in the office? yes 16 +1 Daniel moved to the garden. +2 Daniel grabbed the apple there. +3 Is Daniel in the garden? yes 1 +4 Daniel discarded the apple. +5 Sandra went to the kitchen. +6 Is Daniel in the garden? yes 1 +7 Sandra journeyed to the garden. +8 Daniel took the apple there. +9 Is Sandra in the garden? yes 7 +10 Daniel dropped the apple there. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 Sandra took the apple there. +14 Mary went to the office. +15 Is Mary in the bedroom? no 14 +1 Mary went to the office. +2 Daniel went back to the bedroom. +3 Is Mary in the kitchen? no 1 +4 Daniel moved to the hallway. +5 John journeyed to the hallway. +6 Is Daniel in the office? no 4 +7 Sandra journeyed to the kitchen. +8 Daniel moved to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Daniel went to the garden. +11 Daniel grabbed the milk there. +12 Is John in the hallway? yes 5 +13 Daniel discarded the milk. +14 Sandra moved to the office. +15 Is Sandra in the bedroom? no 14 +1 Sandra went to the hallway. +2 Mary moved to the hallway. +3 Is Mary in the bedroom? no 2 +4 Mary travelled to the office. +5 John travelled to the kitchen. +6 Is Mary in the office? yes 4 +7 Mary journeyed to the garden. +8 John picked up the apple there. +9 Is Mary in the garden? yes 7 +10 John discarded the apple there. +11 Sandra travelled to the garden. +12 Is Mary in the garden? yes 7 +13 John went to the office. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the kitchen? no 14 +1 Daniel took the milk there. +2 Sandra moved to the office. +3 Is Sandra in the office? yes 2 +4 John moved to the garden. +5 Mary went back to the bathroom. +6 Is Sandra in the office? yes 2 +7 John journeyed to the hallway. +8 Daniel went to the bedroom. +9 Is Mary in the bedroom? no 5 +10 Daniel dropped the milk. +11 Sandra journeyed to the hallway. +12 Is John in the office? no 7 +13 John travelled to the garden. +14 John journeyed to the bathroom. +15 Is Daniel in the bedroom? yes 8 +1 Sandra went to the office. +2 Sandra went to the hallway. +3 Is Sandra in the bathroom? no 2 +4 Mary went to the garden. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bathroom? no 5 +7 John grabbed the apple there. +8 John went to the garden. +9 Is John in the hallway? no 8 +10 John dropped the apple. +11 Mary moved to the office. +12 Is John in the garden? yes 8 +13 John got the milk there. +14 Sandra went to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John got the milk there. +2 Daniel took the football there. +3 Sandra journeyed to the bedroom. +4 John journeyed to the garden. +5 Is John in the garden? yes 4 +6 Sandra moved to the office. +7 Mary travelled to the garden. +8 Is Sandra in the office? yes 6 +9 Sandra travelled to the bathroom. +10 Mary went back to the kitchen. +11 Is Mary in the bathroom? no 10 +12 John dropped the milk. +13 Sandra went back to the bedroom. +14 Is Mary in the office? no 10 +15 Mary picked up the apple there. +16 John picked up the milk there. +17 Is Mary in the bathroom? no 10 +1 John took the apple there. +2 Daniel went back to the kitchen. +3 Is Daniel in the office? no 2 +4 Sandra went to the kitchen. +5 Mary grabbed the milk there. +6 Is Sandra in the bedroom? no 4 +7 John dropped the apple. +8 John moved to the hallway. +9 Is John in the kitchen? no 8 +10 Mary left the milk there. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 John grabbed the apple there. +14 John left the apple. +15 Is John in the hallway? no 11 +1 Mary travelled to the office. +2 Mary moved to the hallway. +3 Is Mary in the bathroom? no 2 +4 John got the milk there. +5 Sandra took the football there. +6 Is Mary in the hallway? yes 2 +7 Sandra went back to the garden. +8 Sandra discarded the football there. +9 Is Sandra in the office? no 7 +10 Daniel went back to the kitchen. +11 Mary moved to the office. +12 Is Mary in the office? yes 11 +13 John left the milk. +14 Daniel went back to the office. +15 Is Daniel in the kitchen? no 14 +1 Mary grabbed the milk there. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra moved to the garden. +5 Daniel went back to the garden. +6 Is Sandra in the garden? yes 4 +7 Mary went back to the hallway. +8 Mary dropped the milk there. +9 Is Sandra in the bedroom? no 4 +10 Sandra travelled to the hallway. +11 Mary got the milk there. +12 Is Daniel in the office? no 5 +13 Mary journeyed to the kitchen. +14 Mary took the apple there. +15 Is Sandra in the hallway? yes 10 +1 Sandra travelled to the garden. +2 Mary travelled to the office. +3 Is Mary in the office? yes 2 +4 Daniel went back to the garden. +5 Sandra moved to the hallway. +6 Is Sandra in the office? no 5 +7 Sandra picked up the apple there. +8 Sandra went back to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 Sandra put down the apple. +11 John went to the kitchen. +12 Is Sandra in the bathroom? no 8 +13 Mary moved to the kitchen. +14 Sandra went to the garden. +15 Is Sandra in the garden? yes 14 +1 John took the milk there. +2 Daniel moved to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 John went to the bedroom. +5 John put down the milk. +6 Is Daniel in the kitchen? yes 2 +7 Mary got the milk there. +8 John travelled to the kitchen. +9 Is Daniel in the bathroom? no 2 +10 Daniel travelled to the hallway. +11 Mary travelled to the kitchen. +12 Is Daniel in the hallway? yes 10 +13 Daniel moved to the kitchen. +14 Sandra went to the garden. +15 Is Daniel in the kitchen? yes 13 +1 Daniel travelled to the kitchen. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the bedroom? no 2 +4 Sandra went to the hallway. +5 Sandra picked up the apple there. +6 Is Sandra in the hallway? yes 4 +7 Sandra travelled to the bedroom. +8 Mary travelled to the hallway. +9 Is Sandra in the bedroom? yes 7 +10 John journeyed to the hallway. +11 Sandra went to the kitchen. +12 Is Sandra in the bathroom? no 11 +13 John travelled to the office. +14 Sandra travelled to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Sandra journeyed to the kitchen. +2 Sandra went back to the bathroom. +3 Is Sandra in the hallway? no 2 +4 John got the apple there. +5 John went to the bathroom. +6 Is John in the bathroom? yes 5 +7 Sandra moved to the kitchen. +8 Sandra went back to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 Mary travelled to the bathroom. +11 Sandra moved to the garden. +12 Is John in the bathroom? yes 5 +13 Mary travelled to the office. +14 John journeyed to the garden. +15 Is Sandra in the garden? yes 11 +1 John travelled to the office. +2 John went back to the garden. +3 Is John in the bathroom? no 2 +4 John travelled to the hallway. +5 Mary journeyed to the bedroom. +6 Is John in the kitchen? no 4 +7 Sandra went to the kitchen. +8 Daniel went back to the hallway. +9 Is John in the bathroom? no 4 +10 Daniel went back to the bedroom. +11 Daniel took the football there. +12 Is Daniel in the bedroom? yes 10 +13 Daniel moved to the kitchen. +14 Sandra went to the bathroom. +15 Is Daniel in the kitchen? yes 13 +1 Sandra journeyed to the bedroom. +2 Mary went to the kitchen. +3 Is Mary in the hallway? no 2 +4 Sandra took the milk there. +5 Daniel moved to the kitchen. +6 Is Mary in the kitchen? yes 2 +7 John moved to the garden. +8 Daniel travelled to the office. +9 Is John in the bathroom? no 7 +10 Mary journeyed to the garden. +11 Sandra travelled to the kitchen. +12 Is Daniel in the bathroom? no 8 +13 Sandra left the milk. +14 John moved to the hallway. +15 Is Mary in the garden? yes 10 +1 Sandra went back to the bathroom. +2 Mary journeyed to the hallway. +3 Is Sandra in the kitchen? no 1 +4 Mary moved to the garden. +5 Mary went to the bathroom. +6 Is Mary in the bedroom? no 5 +7 Sandra journeyed to the bedroom. +8 John got the football there. +9 Is Sandra in the bedroom? yes 7 +10 Mary went back to the kitchen. +11 Daniel went back to the kitchen. +12 Is Mary in the office? no 10 +13 Sandra went to the kitchen. +14 Daniel moved to the hallway. +15 Is Daniel in the hallway? yes 14 +1 Daniel took the football there. +2 Daniel discarded the football. +3 John went back to the garden. +4 Daniel took the football there. +5 Is John in the garden? yes 3 +6 Daniel dropped the football. +7 Sandra grabbed the apple there. +8 Is John in the garden? yes 3 +9 Sandra journeyed to the office. +10 Daniel went back to the kitchen. +11 Is Daniel in the hallway? no 10 +12 Sandra left the apple there. +13 Mary travelled to the hallway. +14 Is Mary in the bedroom? no 13 +15 Sandra moved to the kitchen. +16 Mary journeyed to the kitchen. +17 Is Sandra in the kitchen? yes 15 +1 Mary journeyed to the garden. +2 Daniel went to the kitchen. +3 Is Mary in the office? no 1 +4 Mary went back to the bedroom. +5 Daniel moved to the bedroom. +6 Is Mary in the bedroom? yes 4 +7 Mary got the apple there. +8 Mary moved to the bathroom. +9 Is Daniel in the bedroom? yes 5 +10 Daniel journeyed to the hallway. +11 Mary put down the apple. +12 Is Mary in the bedroom? no 8 +13 Mary grabbed the milk there. +14 Mary went back to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 John journeyed to the kitchen. +2 John went back to the bathroom. +3 Is John in the bathroom? yes 2 +4 John travelled to the garden. +5 John journeyed to the hallway. +6 Is John in the office? no 5 +7 Daniel travelled to the bedroom. +8 Mary travelled to the hallway. +9 Is John in the hallway? yes 5 +10 Mary got the football there. +11 Sandra went to the hallway. +12 Is John in the hallway? yes 5 +13 Sandra moved to the bedroom. +14 John went to the garden. +15 Is Sandra in the bedroom? yes 13 +1 Mary travelled to the bedroom. +2 Mary journeyed to the bathroom. +3 Is Mary in the hallway? no 2 +4 Mary went to the kitchen. +5 Mary travelled to the office. +6 Is Mary in the office? yes 5 +7 Mary went back to the hallway. +8 John moved to the kitchen. +9 Is Mary in the hallway? yes 7 +10 John took the football there. +11 Mary journeyed to the bathroom. +12 Is Mary in the office? no 11 +13 Mary grabbed the apple there. +14 John put down the football there. +15 Is John in the kitchen? yes 8 +1 Sandra got the milk there. +2 Sandra dropped the milk. +3 Sandra got the milk there. +4 Daniel moved to the kitchen. +5 Is Daniel in the bathroom? no 4 +6 John picked up the football there. +7 John dropped the football. +8 Is Daniel in the bathroom? no 4 +9 Daniel went to the office. +10 John took the football there. +11 Is Daniel in the office? yes 9 +12 John travelled to the garden. +13 Daniel went back to the bathroom. +14 Is John in the bedroom? no 12 +15 Mary travelled to the garden. +16 John went to the bathroom. +17 Is Mary in the kitchen? no 15 +1 Mary picked up the football there. +2 Daniel got the milk there. +3 Daniel left the milk. +4 Daniel went back to the office. +5 Is Daniel in the bedroom? no 4 +6 Mary put down the football. +7 Daniel travelled to the garden. +8 Is Daniel in the bedroom? no 7 +9 John moved to the garden. +10 Daniel went to the bedroom. +11 Is John in the garden? yes 9 +12 John moved to the office. +13 Daniel travelled to the kitchen. +14 Is John in the bedroom? no 12 +15 John went to the bathroom. +16 Sandra moved to the kitchen. +17 Is John in the bathroom? yes 15 +1 Sandra went to the bedroom. +2 Daniel moved to the hallway. +3 Is Daniel in the kitchen? no 2 +4 John picked up the apple there. +5 John grabbed the milk there. +6 Is Daniel in the kitchen? no 2 +7 John dropped the milk there. +8 John dropped the apple. +9 Is Daniel in the hallway? yes 2 +10 Sandra went to the kitchen. +11 John picked up the milk there. +12 Is Sandra in the bedroom? no 10 +13 John travelled to the bathroom. +14 John discarded the milk there. +15 Is Sandra in the office? no 10 +1 Mary went back to the office. +2 John went back to the office. +3 Is Mary in the office? yes 1 +4 Mary moved to the hallway. +5 Sandra travelled to the office. +6 Is Sandra in the kitchen? no 5 +7 Sandra went back to the hallway. +8 Daniel moved to the bedroom. +9 Is John in the bedroom? no 2 +10 Daniel moved to the kitchen. +11 John got the milk there. +12 Is Daniel in the kitchen? yes 10 +13 Sandra travelled to the bedroom. +14 Mary journeyed to the garden. +15 Is Daniel in the kitchen? yes 10 +1 Daniel went back to the bedroom. +2 John went back to the hallway. +3 Is John in the kitchen? no 2 +4 John picked up the apple there. +5 John dropped the apple there. +6 Is John in the hallway? yes 2 +7 John took the apple there. +8 Mary journeyed to the office. +9 Is John in the office? no 2 +10 Daniel went back to the bathroom. +11 John dropped the apple. +12 Is Daniel in the bathroom? yes 10 +13 John got the apple there. +14 John put down the apple. +15 Is Mary in the bedroom? no 8 +1 Sandra moved to the bathroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel went back to the garden. +5 John moved to the bedroom. +6 Is Sandra in the office? no 2 +7 Mary went to the bathroom. +8 Mary grabbed the apple there. +9 Is Sandra in the kitchen? yes 2 +10 John went back to the kitchen. +11 Mary put down the apple there. +12 Is John in the kitchen? yes 10 +13 Daniel journeyed to the bathroom. +14 Mary went to the office. +15 Is Mary in the hallway? no 14 +1 Sandra went to the office. +2 Mary got the milk there. +3 Is Sandra in the hallway? no 1 +4 Daniel moved to the garden. +5 Mary journeyed to the bathroom. +6 Is Daniel in the bathroom? no 4 +7 Mary dropped the milk. +8 Daniel grabbed the football there. +9 Is Mary in the hallway? no 5 +10 Mary got the milk there. +11 Daniel went back to the office. +12 Is Daniel in the office? yes 11 +13 John journeyed to the bathroom. +14 Daniel went to the kitchen. +15 Is John in the bedroom? no 13 +1 Sandra took the football there. +2 Mary picked up the apple there. +3 Mary discarded the apple there. +4 Daniel grabbed the milk there. +5 Sandra put down the football. +6 Mary moved to the office. +7 Is Mary in the hallway? no 6 +8 John grabbed the football there. +9 Mary went back to the hallway. +10 Is Mary in the hallway? yes 9 +11 Daniel dropped the milk there. +12 Mary went to the office. +13 Is Mary in the bedroom? no 12 +14 Daniel took the milk there. +15 John went to the hallway. +16 Is Mary in the bathroom? no 12 +17 Daniel discarded the milk. +18 John left the football. +19 Is Mary in the office? yes 12 +1 John went back to the bedroom. +2 John went back to the garden. +3 Is John in the garden? yes 2 +4 John took the football there. +5 John took the milk there. +6 Is John in the garden? yes 2 +7 Sandra went to the kitchen. +8 Mary moved to the office. +9 Is Sandra in the kitchen? yes 7 +10 John moved to the bathroom. +11 John discarded the milk. +12 Is Mary in the office? yes 8 +13 John discarded the football there. +14 Sandra went to the office. +15 Is Mary in the hallway? no 8 +1 Sandra went back to the bedroom. +2 John went back to the bathroom. +3 Is John in the kitchen? no 2 +4 Daniel went to the kitchen. +5 Daniel journeyed to the bedroom. +6 Is Sandra in the bedroom? yes 1 +7 Mary journeyed to the hallway. +8 John went back to the hallway. +9 Is Daniel in the bedroom? yes 5 +10 Sandra moved to the kitchen. +11 Daniel went to the hallway. +12 Is Sandra in the bathroom? no 10 +13 Mary went to the bathroom. +14 Sandra travelled to the office. +15 Is Sandra in the garden? no 14 +1 John moved to the kitchen. +2 Mary got the apple there. +3 Is John in the kitchen? yes 1 +4 John went to the hallway. +5 Daniel went back to the office. +6 Is Daniel in the office? yes 5 +7 Daniel moved to the kitchen. +8 Mary put down the apple. +9 Is Daniel in the kitchen? yes 7 +10 Daniel travelled to the bathroom. +11 Sandra went back to the garden. +12 Is Sandra in the kitchen? no 11 +13 Mary grabbed the apple there. +14 Daniel journeyed to the hallway. +15 Is Daniel in the hallway? yes 14 +1 Mary went back to the garden. +2 Mary travelled to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel travelled to the kitchen. +5 Mary went to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Sandra travelled to the hallway. +8 John picked up the football there. +9 Is Mary in the bathroom? no 5 +10 John dropped the football. +11 John went to the bathroom. +12 Is Sandra in the hallway? yes 7 +13 Daniel travelled to the garden. +14 Mary picked up the football there. +15 Is John in the bathroom? yes 11 +1 Sandra journeyed to the bedroom. +2 Sandra travelled to the office. +3 Is Sandra in the office? yes 2 +4 Sandra journeyed to the garden. +5 Mary moved to the hallway. +6 Is Sandra in the hallway? no 4 +7 John journeyed to the garden. +8 Mary picked up the football there. +9 Is John in the hallway? no 7 +10 Sandra went to the office. +11 Mary went back to the bedroom. +12 Is Sandra in the office? yes 10 +13 Mary discarded the football. +14 Daniel journeyed to the bedroom. +15 Is Mary in the garden? no 11 +1 Sandra moved to the bathroom. +2 John travelled to the garden. +3 Is John in the kitchen? no 2 +4 Daniel journeyed to the bathroom. +5 Daniel took the apple there. +6 Is Daniel in the bathroom? yes 4 +7 Daniel went to the office. +8 Daniel went back to the garden. +9 Is John in the office? no 2 +10 John went to the bathroom. +11 Sandra went to the office. +12 Is Daniel in the bedroom? no 8 +13 Sandra moved to the garden. +14 John journeyed to the hallway. +15 Is John in the office? no 14 +1 Mary travelled to the garden. +2 Daniel moved to the kitchen. +3 Is Mary in the garden? yes 1 +4 Daniel went back to the bedroom. +5 Sandra travelled to the kitchen. +6 Is Daniel in the bedroom? yes 4 +7 Sandra took the apple there. +8 Sandra left the apple. +9 Is Sandra in the bedroom? no 5 +10 John grabbed the milk there. +11 Mary went back to the bathroom. +12 Is Sandra in the bathroom? no 5 +13 John left the milk. +14 Sandra grabbed the apple there. +15 Is Mary in the bathroom? yes 11 +1 Daniel travelled to the office. +2 John travelled to the bedroom. +3 Is John in the garden? no 2 +4 Mary travelled to the bathroom. +5 Mary picked up the apple there. +6 Is Mary in the garden? no 4 +7 Daniel moved to the kitchen. +8 John moved to the hallway. +9 Is John in the bedroom? no 8 +10 John went back to the bathroom. +11 Mary discarded the apple. +12 Is John in the kitchen? no 10 +13 Mary got the apple there. +14 Mary travelled to the bedroom. +15 Is John in the bedroom? no 10 +1 Daniel moved to the hallway. +2 Mary journeyed to the office. +3 Is Mary in the office? yes 2 +4 Daniel went back to the office. +5 Daniel picked up the football there. +6 Is Daniel in the office? yes 4 +7 Daniel put down the football. +8 John went to the bathroom. +9 Is John in the bathroom? yes 8 +10 Mary got the football there. +11 Mary dropped the football there. +12 Is John in the bathroom? yes 8 +13 Mary took the football there. +14 Mary left the football. +15 Is John in the bathroom? yes 8 +1 Mary went to the office. +2 Daniel went back to the hallway. +3 Is Daniel in the kitchen? no 2 +4 John travelled to the hallway. +5 Sandra travelled to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel moved to the kitchen. +8 Sandra travelled to the office. +9 Is Sandra in the office? yes 8 +10 John got the football there. +11 John dropped the football. +12 Is Daniel in the bedroom? no 7 +13 Mary went back to the hallway. +14 Mary grabbed the football there. +15 Is Sandra in the kitchen? no 8 +1 Mary went to the kitchen. +2 Sandra picked up the milk there. +3 Is Mary in the garden? no 1 +4 Sandra left the milk. +5 Mary grabbed the apple there. +6 Is Mary in the kitchen? yes 1 +7 Mary picked up the football there. +8 Daniel travelled to the hallway. +9 Is Daniel in the bathroom? no 8 +10 Sandra went back to the bedroom. +11 Mary travelled to the garden. +12 Is Daniel in the bedroom? no 8 +13 Mary discarded the apple. +14 Mary dropped the football. +15 Is Sandra in the hallway? no 10 +1 Daniel picked up the apple there. +2 Sandra moved to the garden. +3 Is Sandra in the kitchen? no 2 +4 John went back to the bedroom. +5 Mary moved to the bedroom. +6 Is Sandra in the garden? yes 2 +7 Mary got the milk there. +8 Daniel discarded the apple. +9 Is Mary in the bedroom? yes 5 +10 Mary put down the milk. +11 Mary grabbed the milk there. +12 Is Mary in the bedroom? yes 5 +13 Daniel picked up the apple there. +14 Sandra journeyed to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra got the apple there. +2 Sandra discarded the apple. +3 Sandra got the apple there. +4 Daniel journeyed to the hallway. +5 Is Daniel in the bedroom? no 4 +6 Daniel went back to the office. +7 Sandra discarded the apple there. +8 Is Daniel in the office? yes 6 +9 Mary travelled to the bathroom. +10 Daniel took the apple there. +11 Is Daniel in the office? yes 6 +12 Daniel left the apple there. +13 Daniel grabbed the apple there. +14 Is Mary in the hallway? no 9 +15 John journeyed to the hallway. +16 Mary travelled to the bedroom. +17 Is Mary in the bedroom? yes 16 +1 John grabbed the milk there. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra journeyed to the kitchen. +5 John left the milk. +6 Is Sandra in the kitchen? yes 4 +7 John grabbed the milk there. +8 John went back to the bedroom. +9 Is Sandra in the office? no 4 +10 Daniel journeyed to the garden. +11 Mary travelled to the hallway. +12 Is John in the bedroom? yes 8 +13 Sandra travelled to the office. +14 Mary took the apple there. +15 Is Daniel in the kitchen? no 10 +1 Mary went back to the kitchen. +2 Mary journeyed to the bedroom. +3 Is Mary in the hallway? no 2 +4 Daniel went back to the hallway. +5 John travelled to the office. +6 Is Mary in the hallway? no 2 +7 Mary travelled to the office. +8 Sandra went back to the bathroom. +9 Is Daniel in the hallway? yes 4 +10 Sandra took the milk there. +11 Mary journeyed to the hallway. +12 Is Sandra in the bedroom? no 8 +13 John went back to the hallway. +14 Sandra got the football there. +15 Is Mary in the bathroom? no 11 +1 Sandra went back to the garden. +2 Sandra went back to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel moved to the garden. +5 Sandra got the football there. +6 Is Daniel in the garden? yes 4 +7 Mary went to the bathroom. +8 Sandra discarded the football. +9 Is Mary in the bathroom? yes 7 +10 Sandra got the football there. +11 Mary took the milk there. +12 Is Mary in the hallway? no 7 +13 Mary journeyed to the kitchen. +14 Sandra journeyed to the hallway. +15 Is Sandra in the hallway? yes 14 +1 John travelled to the garden. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 Mary moved to the hallway. +5 Sandra got the milk there. +6 Is Mary in the bedroom? no 4 +7 Daniel went to the kitchen. +8 Sandra got the football there. +9 Is Mary in the office? no 4 +10 John journeyed to the hallway. +11 Mary travelled to the garden. +12 Is Daniel in the bedroom? no 7 +13 Sandra discarded the football. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel went to the bathroom. +2 Sandra went back to the kitchen. +3 Is Daniel in the kitchen? no 1 +4 Mary moved to the kitchen. +5 Sandra went back to the garden. +6 Is Daniel in the garden? no 1 +7 John moved to the hallway. +8 Sandra grabbed the apple there. +9 Is Sandra in the garden? yes 5 +10 Sandra discarded the apple. +11 Sandra got the apple there. +12 Is John in the hallway? yes 7 +13 Sandra left the apple there. +14 Mary moved to the garden. +15 Is Mary in the hallway? no 14 +1 Sandra picked up the milk there. +2 John travelled to the kitchen. +3 Is John in the bathroom? no 2 +4 Sandra dropped the milk. +5 John journeyed to the garden. +6 Is John in the garden? yes 5 +7 Mary took the football there. +8 Mary discarded the football there. +9 Is John in the garden? yes 5 +10 Daniel journeyed to the bathroom. +11 Sandra got the milk there. +12 Is Daniel in the bathroom? yes 10 +13 Sandra moved to the kitchen. +14 Daniel journeyed to the office. +15 Is Daniel in the office? yes 14 +1 John went to the bathroom. +2 John went back to the hallway. +3 Is John in the hallway? yes 2 +4 Mary went back to the hallway. +5 John journeyed to the garden. +6 Is John in the garden? yes 5 +7 Sandra went back to the hallway. +8 John travelled to the kitchen. +9 Is Sandra in the hallway? yes 7 +10 Daniel went back to the kitchen. +11 John went to the bedroom. +12 Is John in the bedroom? yes 11 +13 John got the milk there. +14 Mary grabbed the football there. +15 Is Daniel in the kitchen? yes 10 +1 Sandra grabbed the apple there. +2 John went to the bathroom. +3 Is John in the hallway? no 2 +4 Mary moved to the garden. +5 John grabbed the milk there. +6 Is John in the bathroom? yes 2 +7 Sandra travelled to the kitchen. +8 Mary picked up the football there. +9 Is Sandra in the kitchen? yes 7 +10 Sandra discarded the apple. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 John went back to the hallway. +14 Sandra went back to the bedroom. +15 Is John in the bedroom? no 13 +1 Daniel went back to the kitchen. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the kitchen? no 2 +4 Mary got the football there. +5 Mary put down the football. +6 Is Daniel in the bathroom? yes 2 +7 Sandra grabbed the apple there. +8 Mary got the football there. +9 Is Daniel in the bathroom? yes 2 +10 Sandra went back to the garden. +11 Sandra went back to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary put down the football. +14 Sandra dropped the apple. +15 Is Sandra in the bedroom? yes 11 +1 Daniel travelled to the garden. +2 Mary picked up the football there. +3 Is Daniel in the garden? yes 1 +4 Sandra travelled to the bathroom. +5 Daniel took the apple there. +6 Is Daniel in the garden? yes 1 +7 Mary left the football there. +8 Daniel picked up the milk there. +9 Is Sandra in the bathroom? yes 4 +10 John travelled to the bedroom. +11 John moved to the bathroom. +12 Is John in the garden? no 11 +13 Mary took the football there. +14 John travelled to the bedroom. +15 Is John in the bedroom? yes 14 +1 Daniel went back to the bedroom. +2 John went back to the office. +3 Is John in the office? yes 2 +4 Sandra grabbed the milk there. +5 Sandra dropped the milk. +6 Is Daniel in the bedroom? yes 1 +7 John went to the bathroom. +8 Daniel picked up the milk there. +9 Is John in the garden? no 7 +10 Daniel grabbed the football there. +11 John went to the kitchen. +12 Is John in the office? no 11 +13 John journeyed to the bathroom. +14 Daniel dropped the football. +15 Is John in the bathroom? yes 13 +1 Daniel travelled to the bathroom. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra went to the kitchen. +5 John travelled to the bathroom. +6 Is John in the bedroom? no 5 +7 Sandra went back to the garden. +8 Mary went to the kitchen. +9 Is Daniel in the hallway? no 2 +10 Daniel went back to the bathroom. +11 Mary travelled to the bathroom. +12 Is John in the bathroom? yes 5 +13 Sandra moved to the bathroom. +14 Sandra went to the garden. +15 Is Sandra in the office? no 14 +1 Daniel picked up the apple there. +2 Daniel dropped the apple. +3 Daniel went to the office. +4 John journeyed to the bathroom. +5 Is Daniel in the office? yes 3 +6 Sandra travelled to the bedroom. +7 Sandra went back to the hallway. +8 Is Sandra in the garden? no 7 +9 Daniel journeyed to the kitchen. +10 John went to the hallway. +11 Is Daniel in the garden? no 9 +12 Sandra grabbed the apple there. +13 Sandra travelled to the bedroom. +14 Is Sandra in the office? no 13 +15 Sandra left the apple there. +16 Daniel took the milk there. +17 Is Sandra in the bedroom? yes 13 +1 Daniel moved to the garden. +2 Sandra moved to the bathroom. +3 Is Daniel in the bathroom? no 1 +4 Daniel picked up the apple there. +5 Sandra moved to the kitchen. +6 Is Sandra in the kitchen? yes 5 +7 Daniel travelled to the bathroom. +8 John got the milk there. +9 Is Daniel in the bathroom? yes 7 +10 John went to the kitchen. +11 Mary moved to the hallway. +12 Is Mary in the office? no 11 +13 Sandra journeyed to the bathroom. +14 Mary went to the garden. +15 Is Sandra in the hallway? no 13 +1 Daniel travelled to the bathroom. +2 John got the apple there. +3 Is Daniel in the bathroom? yes 1 +4 John discarded the apple. +5 John went to the bathroom. +6 Is Daniel in the office? no 1 +7 Sandra moved to the office. +8 Sandra went to the bedroom. +9 Is John in the kitchen? no 5 +10 John went to the office. +11 Daniel went back to the kitchen. +12 Is Daniel in the bathroom? no 11 +13 Sandra went to the hallway. +14 Mary journeyed to the garden. +15 Is Mary in the kitchen? no 14 +1 John went to the bathroom. +2 John travelled to the garden. +3 Is John in the bathroom? no 2 +4 Daniel moved to the bathroom. +5 John travelled to the bathroom. +6 Is Daniel in the hallway? no 4 +7 John travelled to the garden. +8 Sandra moved to the kitchen. +9 Is Sandra in the bathroom? no 8 +10 John journeyed to the bathroom. +11 Sandra moved to the bathroom. +12 Is John in the bathroom? yes 10 +13 John went back to the hallway. +14 John went to the bedroom. +15 Is John in the garden? no 14 +1 John went back to the office. +2 Daniel journeyed to the bathroom. +3 Is John in the bedroom? no 1 +4 Daniel journeyed to the garden. +5 Daniel took the football there. +6 Is Daniel in the bedroom? no 4 +7 Sandra travelled to the garden. +8 Sandra moved to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 John journeyed to the hallway. +11 Daniel moved to the office. +12 Is Daniel in the garden? no 11 +13 Daniel put down the football. +14 Sandra went back to the garden. +15 Is Sandra in the garden? yes 14 +1 Daniel grabbed the apple there. +2 Daniel moved to the office. +3 Is Daniel in the bedroom? no 2 +4 John picked up the football there. +5 Sandra went to the office. +6 Is Daniel in the garden? no 2 +7 Sandra travelled to the garden. +8 John went back to the kitchen. +9 Is Sandra in the office? no 7 +10 Sandra took the milk there. +11 Sandra discarded the milk. +12 Is Sandra in the garden? yes 7 +13 Daniel discarded the apple. +14 Daniel got the apple there. +15 Is John in the office? no 8 +1 Mary went back to the bedroom. +2 Daniel journeyed to the office. +3 Is Mary in the garden? no 1 +4 John went to the office. +5 Mary took the apple there. +6 Is John in the kitchen? no 4 +7 Daniel moved to the garden. +8 John went to the bathroom. +9 Is Daniel in the garden? yes 7 +10 Mary moved to the hallway. +11 Mary dropped the apple. +12 Is Mary in the hallway? yes 10 +13 John travelled to the bedroom. +14 Mary travelled to the garden. +15 Is Mary in the office? no 14 +1 Mary moved to the bedroom. +2 Sandra moved to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John grabbed the milk there. +5 Daniel got the football there. +6 Is Sandra in the hallway? yes 2 +7 Mary moved to the bathroom. +8 Daniel grabbed the apple there. +9 Is Mary in the office? no 7 +10 Mary went to the hallway. +11 Daniel put down the apple. +12 Is Mary in the hallway? yes 10 +13 Mary travelled to the office. +14 Daniel travelled to the office. +15 Is Mary in the office? yes 13 +1 John went to the hallway. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John travelled to the garden. +5 Mary moved to the garden. +6 Is John in the bedroom? no 4 +7 John travelled to the bathroom. +8 Daniel moved to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Sandra moved to the kitchen. +11 Daniel journeyed to the hallway. +12 Is Sandra in the kitchen? yes 10 +13 John went back to the bedroom. +14 Sandra travelled to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Mary moved to the bathroom. +2 Sandra took the football there. +3 Is Mary in the bathroom? yes 1 +4 John went back to the bedroom. +5 Daniel went back to the bedroom. +6 Is Daniel in the kitchen? no 5 +7 Sandra left the football. +8 Sandra went to the office. +9 Is Daniel in the kitchen? no 5 +10 Mary went back to the bedroom. +11 Sandra moved to the bedroom. +12 Is Daniel in the bedroom? yes 5 +13 John went to the garden. +14 Mary moved to the garden. +15 Is Sandra in the bedroom? yes 11 +1 Mary went to the office. +2 Mary went to the bedroom. +3 Is Mary in the office? no 2 +4 Mary moved to the office. +5 John went back to the kitchen. +6 Is Mary in the office? yes 4 +7 Mary went back to the hallway. +8 Daniel went back to the bedroom. +9 Is Mary in the kitchen? no 7 +10 Mary went back to the office. +11 Mary moved to the kitchen. +12 Is John in the kitchen? yes 5 +13 Daniel travelled to the office. +14 John went back to the bedroom. +15 Is Daniel in the hallway? no 13 +1 Sandra moved to the garden. +2 Sandra grabbed the apple there. +3 Is Sandra in the bedroom? no 1 +4 John travelled to the bedroom. +5 Mary picked up the football there. +6 Is John in the kitchen? no 4 +7 Sandra discarded the apple. +8 Sandra took the apple there. +9 Is John in the bedroom? yes 4 +10 Sandra dropped the apple. +11 Daniel moved to the office. +12 Is Daniel in the kitchen? no 11 +13 Daniel went back to the bathroom. +14 Mary went back to the garden. +15 Is Mary in the garden? yes 14 +1 Mary grabbed the milk there. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Sandra went back to the hallway. +5 Daniel journeyed to the bathroom. +6 Is John in the garden? yes 2 +7 John went back to the bathroom. +8 Daniel moved to the office. +9 Is Daniel in the kitchen? no 8 +10 Mary left the milk there. +11 Mary went back to the kitchen. +12 Is Daniel in the kitchen? no 8 +13 Daniel went to the bedroom. +14 Sandra went back to the bedroom. +15 Is Daniel in the hallway? no 13 +1 John went back to the bathroom. +2 Sandra picked up the football there. +3 Is John in the hallway? no 1 +4 Sandra went back to the kitchen. +5 Daniel grabbed the milk there. +6 Is John in the kitchen? no 1 +7 Daniel discarded the milk. +8 Sandra took the apple there. +9 Is Sandra in the kitchen? yes 4 +10 Sandra moved to the office. +11 John travelled to the hallway. +12 Is John in the hallway? yes 11 +13 Daniel picked up the milk there. +14 Daniel moved to the bathroom. +15 Is Sandra in the garden? no 10 +1 Daniel journeyed to the office. +2 John picked up the milk there. +3 Is Daniel in the bathroom? no 1 +4 John put down the milk. +5 Daniel took the apple there. +6 Is Daniel in the bathroom? no 1 +7 Sandra took the football there. +8 Sandra moved to the bathroom. +9 Is Sandra in the office? no 8 +10 Daniel moved to the bedroom. +11 Daniel left the apple. +12 Is Daniel in the kitchen? no 10 +13 Sandra moved to the hallway. +14 Daniel took the apple there. +15 Is Daniel in the bedroom? yes 10 +1 Daniel moved to the hallway. +2 Daniel journeyed to the garden. +3 Is Daniel in the kitchen? no 2 +4 Mary took the milk there. +5 John journeyed to the hallway. +6 Is Daniel in the bedroom? no 2 +7 Daniel moved to the kitchen. +8 Sandra went back to the garden. +9 Is Daniel in the kitchen? yes 7 +10 John travelled to the bedroom. +11 John journeyed to the hallway. +12 Is John in the hallway? yes 11 +13 Mary went back to the kitchen. +14 Mary moved to the garden. +15 Is Sandra in the garden? yes 8 +1 John went to the hallway. +2 Daniel journeyed to the hallway. +3 Is John in the bedroom? no 1 +4 Sandra got the milk there. +5 Sandra left the milk. +6 Is Daniel in the office? no 2 +7 Daniel took the milk there. +8 Daniel discarded the milk. +9 Is Daniel in the kitchen? no 2 +10 John got the milk there. +11 Daniel moved to the office. +12 Is Daniel in the bedroom? no 11 +13 Mary moved to the bedroom. +14 Mary travelled to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Daniel moved to the bedroom. +2 Sandra went back to the office. +3 Is Sandra in the office? yes 2 +4 John journeyed to the kitchen. +5 Daniel took the milk there. +6 Is John in the kitchen? yes 4 +7 Daniel dropped the milk. +8 John went to the bedroom. +9 Is John in the bedroom? yes 8 +10 John moved to the hallway. +11 Daniel went to the kitchen. +12 Is John in the bedroom? no 10 +13 Daniel went to the hallway. +14 Sandra went to the hallway. +15 Is Daniel in the hallway? yes 13 +1 John moved to the bathroom. +2 John took the football there. +3 Is John in the hallway? no 1 +4 John put down the football there. +5 Mary got the milk there. +6 Is John in the bathroom? yes 1 +7 Mary left the milk there. +8 John went back to the hallway. +9 Is John in the hallway? yes 8 +10 Mary took the milk there. +11 Sandra went back to the bathroom. +12 Is John in the garden? no 8 +13 Mary moved to the hallway. +14 John moved to the office. +15 Is Mary in the hallway? yes 13 +1 Sandra took the football there. +2 Daniel went to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel grabbed the apple there. +5 John moved to the bathroom. +6 Is Daniel in the office? no 2 +7 Sandra journeyed to the hallway. +8 John journeyed to the office. +9 Is Daniel in the hallway? no 2 +10 Sandra grabbed the milk there. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 Daniel moved to the hallway. +14 Daniel journeyed to the kitchen. +15 Is John in the bathroom? no 11 +1 Mary got the milk there. +2 Sandra grabbed the football there. +3 Mary dropped the milk. +4 Mary moved to the hallway. +5 Is Mary in the office? no 4 +6 Daniel travelled to the hallway. +7 Mary went to the garden. +8 Is Mary in the garden? yes 7 +9 Sandra dropped the football. +10 Sandra grabbed the football there. +11 Is Mary in the garden? yes 7 +12 Sandra left the football. +13 Sandra went to the bathroom. +14 Is Sandra in the bathroom? yes 13 +15 Mary went to the hallway. +16 John went to the bedroom. +17 Is John in the bedroom? yes 16 +1 Sandra travelled to the hallway. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra got the football there. +5 John went to the hallway. +6 Is Sandra in the kitchen? no 2 +7 John picked up the apple there. +8 John discarded the apple there. +9 Is John in the garden? no 5 +10 Sandra discarded the football there. +11 John went to the bedroom. +12 Is John in the hallway? no 11 +13 Sandra journeyed to the bathroom. +14 John grabbed the football there. +15 Is Sandra in the bathroom? yes 13 +1 Daniel picked up the football there. +2 Daniel travelled to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Daniel moved to the bedroom. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra picked up the milk there. +8 Mary went back to the bedroom. +9 Is Sandra in the garden? no 5 +10 Daniel went back to the bathroom. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 Mary travelled to the garden. +14 Mary went back to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Sandra journeyed to the garden. +2 Mary went to the bathroom. +3 Is Sandra in the office? no 1 +4 Daniel went back to the office. +5 John went to the office. +6 Is Mary in the bathroom? yes 2 +7 John went back to the bathroom. +8 John moved to the hallway. +9 Is Mary in the bedroom? no 2 +10 Daniel travelled to the kitchen. +11 Daniel went back to the bathroom. +12 Is John in the hallway? yes 8 +13 Mary moved to the garden. +14 Mary travelled to the office. +15 Is Mary in the office? yes 14 +1 Mary got the apple there. +2 John moved to the garden. +3 Is John in the bathroom? no 2 +4 Daniel travelled to the hallway. +5 Daniel journeyed to the garden. +6 Is Daniel in the garden? yes 5 +7 Mary went back to the garden. +8 Mary dropped the apple. +9 Is Daniel in the garden? yes 5 +10 Daniel went to the bathroom. +11 Sandra grabbed the apple there. +12 Is Daniel in the bathroom? yes 10 +13 Mary moved to the hallway. +14 Sandra dropped the apple. +15 Is Daniel in the bathroom? yes 10 +1 Sandra got the milk there. +2 Mary went back to the office. +3 Is Mary in the garden? no 2 +4 John picked up the football there. +5 John discarded the football. +6 Is Mary in the office? yes 2 +7 Sandra went to the garden. +8 John travelled to the bathroom. +9 Is Mary in the bathroom? no 2 +10 Mary got the football there. +11 Sandra went back to the hallway. +12 Is Sandra in the hallway? yes 11 +13 John took the apple there. +14 Mary travelled to the bedroom. +15 Is Sandra in the hallway? yes 11 +1 Daniel moved to the hallway. +2 Daniel picked up the milk there. +3 Is Daniel in the kitchen? no 1 +4 John went back to the office. +5 Sandra travelled to the hallway. +6 Is John in the office? yes 4 +7 Mary went to the office. +8 John moved to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra went back to the garden. +11 Sandra moved to the hallway. +12 Is Sandra in the kitchen? no 11 +13 Mary travelled to the hallway. +14 Sandra went to the garden. +15 Is Sandra in the garden? yes 14 +1 Sandra went to the office. +2 John took the football there. +3 Is Sandra in the bedroom? no 1 +4 John discarded the football. +5 Mary moved to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 John grabbed the football there. +8 Daniel moved to the garden. +9 Is Daniel in the garden? yes 8 +10 John left the football. +11 Sandra travelled to the garden. +12 Is Sandra in the garden? yes 11 +13 John took the football there. +14 Daniel picked up the milk there. +15 Is Sandra in the bathroom? no 11 +1 Mary went back to the bedroom. +2 Sandra picked up the milk there. +3 Is Mary in the bedroom? yes 1 +4 Sandra journeyed to the office. +5 Mary journeyed to the bathroom. +6 Is Mary in the garden? no 5 +7 Mary journeyed to the office. +8 Sandra went to the hallway. +9 Is Sandra in the office? no 8 +10 Daniel journeyed to the office. +11 Mary went to the hallway. +12 Is Mary in the hallway? yes 11 +13 Mary went to the kitchen. +14 John moved to the hallway. +15 Is Mary in the kitchen? yes 13 +1 Sandra moved to the bathroom. +2 Sandra got the milk there. +3 Is Sandra in the garden? no 1 +4 Daniel grabbed the apple there. +5 Daniel went back to the hallway. +6 Is Sandra in the bathroom? yes 1 +7 Sandra went back to the office. +8 Sandra left the milk. +9 Is Daniel in the garden? no 5 +10 Mary took the milk there. +11 Mary journeyed to the hallway. +12 Is Sandra in the office? yes 7 +13 Daniel left the apple. +14 Daniel moved to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Daniel got the football there. +2 John travelled to the kitchen. +3 Is John in the bathroom? no 2 +4 Daniel discarded the football. +5 Mary grabbed the milk there. +6 Is John in the kitchen? yes 2 +7 Daniel grabbed the football there. +8 Daniel left the football. +9 Is John in the kitchen? yes 2 +10 Daniel picked up the football there. +11 John went to the bathroom. +12 Is John in the bathroom? yes 11 +13 Mary dropped the milk. +14 Daniel journeyed to the hallway. +15 Is John in the bathroom? yes 11 +1 John got the milk there. +2 Mary journeyed to the office. +3 Is Mary in the garden? no 2 +4 Sandra went back to the hallway. +5 Daniel moved to the kitchen. +6 Is Daniel in the office? no 5 +7 Sandra journeyed to the bathroom. +8 Mary took the apple there. +9 Is Mary in the bedroom? no 2 +10 John went back to the office. +11 John moved to the garden. +12 Is Sandra in the hallway? no 7 +13 John got the football there. +14 Daniel went to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Sandra went back to the hallway. +2 Sandra travelled to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 Mary went to the office. +5 John travelled to the bedroom. +6 Is Mary in the office? yes 4 +7 Sandra went to the office. +8 Sandra got the milk there. +9 Is Sandra in the office? yes 7 +10 Sandra got the football there. +11 Sandra moved to the hallway. +12 Is John in the office? no 5 +13 John got the apple there. +14 John discarded the apple. +15 Is Sandra in the garden? no 11 +1 John grabbed the football there. +2 Mary moved to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Mary went to the kitchen. +5 John moved to the office. +6 Is Mary in the garden? no 4 +7 John dropped the football. +8 Sandra journeyed to the kitchen. +9 Is Mary in the kitchen? yes 4 +10 John travelled to the bathroom. +11 Mary went back to the bathroom. +12 Is John in the bedroom? no 10 +13 Daniel moved to the bedroom. +14 Sandra moved to the bedroom. +15 Is Daniel in the office? no 13 +1 Mary journeyed to the bathroom. +2 Sandra picked up the milk there. +3 Is Mary in the kitchen? no 1 +4 Mary moved to the office. +5 Daniel went back to the office. +6 Is Daniel in the bathroom? no 5 +7 Daniel journeyed to the kitchen. +8 Daniel went back to the office. +9 Is Daniel in the kitchen? no 8 +10 Mary travelled to the bathroom. +11 Mary journeyed to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 John went to the kitchen. +14 Mary grabbed the apple there. +15 Is Mary in the bedroom? yes 11 +1 Mary went back to the garden. +2 Daniel journeyed to the kitchen. +3 Is Mary in the hallway? no 1 +4 Mary journeyed to the bathroom. +5 Mary travelled to the hallway. +6 Is Mary in the hallway? yes 5 +7 Daniel moved to the office. +8 John journeyed to the hallway. +9 Is Mary in the bedroom? no 5 +10 Mary went to the kitchen. +11 Mary went back to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Mary travelled to the kitchen. +14 Mary went back to the bedroom. +15 Is John in the hallway? yes 8 +1 Mary went back to the office. +2 Sandra journeyed to the kitchen. +3 Is Mary in the office? yes 1 +4 Sandra took the apple there. +5 Mary grabbed the football there. +6 Is Mary in the office? yes 1 +7 Daniel travelled to the hallway. +8 Mary left the football. +9 Is Daniel in the hallway? yes 7 +10 Sandra journeyed to the bathroom. +11 Sandra moved to the office. +12 Is Daniel in the hallway? yes 7 +13 Mary picked up the football there. +14 John travelled to the hallway. +15 Is Sandra in the office? yes 11 +1 Mary moved to the hallway. +2 Sandra got the milk there. +3 Is Mary in the hallway? yes 1 +4 Daniel went to the bathroom. +5 Daniel went to the office. +6 Is Mary in the bathroom? no 1 +7 Daniel travelled to the bathroom. +8 Daniel travelled to the garden. +9 Is Daniel in the garden? yes 8 +10 Sandra travelled to the garden. +11 Mary moved to the bathroom. +12 Is Daniel in the garden? yes 8 +13 Mary journeyed to the hallway. +14 Sandra dropped the milk. +15 Is Sandra in the garden? yes 10 +1 Daniel moved to the bedroom. +2 John moved to the bathroom. +3 Is John in the kitchen? no 2 +4 Mary journeyed to the office. +5 Mary travelled to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 John picked up the apple there. +8 John journeyed to the kitchen. +9 Is Mary in the bathroom? yes 5 +10 John picked up the milk there. +11 John went back to the bathroom. +12 Is John in the bathroom? yes 11 +13 Sandra travelled to the office. +14 Mary moved to the hallway. +15 Is Mary in the garden? no 14 +1 Sandra picked up the football there. +2 Daniel went back to the office. +3 Is Daniel in the bedroom? no 2 +4 Sandra left the football. +5 Sandra got the football there. +6 Is Daniel in the kitchen? no 2 +7 Daniel went to the bedroom. +8 Sandra dropped the football. +9 Is Daniel in the bedroom? yes 7 +10 Mary grabbed the milk there. +11 Mary left the milk there. +12 Is Daniel in the bedroom? yes 7 +13 Daniel moved to the kitchen. +14 Daniel went back to the hallway. +15 Is Daniel in the bathroom? no 14 +1 John went back to the garden. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John took the apple there. +5 Mary journeyed to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra journeyed to the kitchen. +8 John moved to the kitchen. +9 Is Mary in the garden? no 5 +10 Mary picked up the milk there. +11 Mary travelled to the hallway. +12 Is Mary in the hallway? yes 11 +13 John moved to the office. +14 John dropped the apple. +15 Is Mary in the hallway? yes 11 +1 John went to the hallway. +2 John went to the kitchen. +3 Is John in the kitchen? yes 2 +4 John went back to the office. +5 Daniel grabbed the milk there. +6 Is John in the office? yes 4 +7 Mary went to the bathroom. +8 Daniel picked up the apple there. +9 Is John in the kitchen? no 4 +10 Sandra journeyed to the office. +11 John journeyed to the hallway. +12 Is John in the hallway? yes 11 +13 Mary grabbed the football there. +14 Daniel left the apple. +15 Is John in the hallway? yes 11 +1 Sandra went back to the office. +2 Daniel journeyed to the garden. +3 Is Sandra in the hallway? no 1 +4 Mary moved to the hallway. +5 Mary travelled to the garden. +6 Is Sandra in the office? yes 1 +7 Sandra took the milk there. +8 Daniel went back to the bedroom. +9 Is Daniel in the office? no 8 +10 Sandra went back to the kitchen. +11 Mary went back to the kitchen. +12 Is Daniel in the bedroom? yes 8 +13 Sandra took the football there. +14 John journeyed to the office. +15 Is Mary in the office? no 11 +1 Mary travelled to the kitchen. +2 Mary journeyed to the bedroom. +3 Is Mary in the kitchen? no 2 +4 Mary picked up the football there. +5 Mary discarded the football. +6 Is Mary in the bedroom? yes 2 +7 Sandra went to the hallway. +8 Daniel travelled to the bedroom. +9 Is Daniel in the office? no 8 +10 Daniel grabbed the football there. +11 Mary journeyed to the garden. +12 Is Mary in the bathroom? no 11 +13 Mary took the apple there. +14 Daniel put down the football. +15 Is Daniel in the bedroom? yes 8 +1 John went back to the garden. +2 Daniel moved to the office. +3 Is Daniel in the office? yes 2 +4 John got the football there. +5 Mary picked up the apple there. +6 Is Daniel in the office? yes 2 +7 John travelled to the kitchen. +8 Daniel went to the garden. +9 Is Daniel in the garden? yes 8 +10 John picked up the milk there. +11 John discarded the milk. +12 Is John in the kitchen? yes 7 +13 John took the milk there. +14 Daniel journeyed to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Sandra picked up the milk there. +2 Daniel went to the garden. +3 Is Daniel in the hallway? no 2 +4 John travelled to the kitchen. +5 Sandra put down the milk there. +6 Is Daniel in the bedroom? no 2 +7 Sandra went back to the bathroom. +8 Mary travelled to the bedroom. +9 Is Daniel in the garden? yes 2 +10 John grabbed the milk there. +11 John left the milk. +12 Is Mary in the bathroom? no 8 +13 Mary travelled to the garden. +14 John grabbed the milk there. +15 Is Mary in the garden? yes 13 +1 Sandra went back to the bedroom. +2 Mary journeyed to the office. +3 Is Sandra in the bedroom? yes 1 +4 John went back to the garden. +5 John went back to the bedroom. +6 Is Sandra in the bedroom? yes 1 +7 Daniel grabbed the apple there. +8 John went to the office. +9 Is John in the bathroom? no 8 +10 Daniel put down the apple. +11 John moved to the bathroom. +12 Is John in the hallway? no 11 +13 Daniel travelled to the bedroom. +14 Mary moved to the bathroom. +15 Is John in the bathroom? yes 11 +1 Daniel went to the hallway. +2 Sandra went back to the kitchen. +3 Is Daniel in the hallway? yes 1 +4 Mary moved to the office. +5 Mary travelled to the bedroom. +6 Is Sandra in the kitchen? yes 2 +7 Daniel moved to the bedroom. +8 John got the apple there. +9 Is Daniel in the office? no 7 +10 Daniel moved to the office. +11 Mary travelled to the garden. +12 Is Mary in the bathroom? no 11 +13 Daniel went back to the garden. +14 John journeyed to the garden. +15 Is Daniel in the garden? yes 13 +1 Sandra journeyed to the kitchen. +2 Sandra moved to the hallway. +3 Is Sandra in the bathroom? no 2 +4 John got the milk there. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Mary moved to the kitchen. +8 Sandra journeyed to the bathroom. +9 Is Daniel in the bedroom? yes 5 +10 Sandra went to the garden. +11 Daniel picked up the apple there. +12 Is Sandra in the garden? yes 10 +13 Sandra went to the kitchen. +14 Daniel dropped the apple. +15 Is Sandra in the kitchen? yes 13 +1 Mary travelled to the office. +2 John went to the hallway. +3 Is Mary in the bathroom? no 1 +4 John journeyed to the kitchen. +5 Sandra grabbed the football there. +6 Is John in the office? no 4 +7 Mary travelled to the garden. +8 Mary got the milk there. +9 Is Mary in the bedroom? no 7 +10 Daniel journeyed to the bathroom. +11 Sandra journeyed to the garden. +12 Is Daniel in the bedroom? no 10 +13 Mary discarded the milk. +14 Sandra left the football. +15 Is Daniel in the garden? no 10 +1 Mary got the football there. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel picked up the apple there. +5 Daniel dropped the apple. +6 Is Daniel in the kitchen? yes 2 +7 Mary left the football. +8 Sandra journeyed to the office. +9 Is Sandra in the office? yes 8 +10 Daniel took the apple there. +11 John took the football there. +12 Is Sandra in the office? yes 8 +13 John travelled to the office. +14 Daniel moved to the garden. +15 Is Sandra in the garden? no 8 +1 Mary moved to the garden. +2 Sandra went back to the garden. +3 Is Mary in the kitchen? no 1 +4 Mary travelled to the kitchen. +5 Mary went back to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Daniel moved to the hallway. +8 Mary got the apple there. +9 Is Mary in the bedroom? yes 5 +10 Mary left the apple. +11 Daniel travelled to the garden. +12 Is Daniel in the garden? yes 11 +13 Daniel took the milk there. +14 Daniel left the milk. +15 Is Daniel in the hallway? no 11 +1 John travelled to the bedroom. +2 Daniel went back to the kitchen. +3 Is Daniel in the garden? no 2 +4 Mary travelled to the garden. +5 Sandra travelled to the office. +6 Is Mary in the garden? yes 4 +7 John went to the office. +8 Daniel went back to the office. +9 Is John in the garden? no 7 +10 John journeyed to the garden. +11 Mary went back to the bedroom. +12 Is Mary in the garden? no 11 +13 Sandra travelled to the bedroom. +14 John went to the hallway. +15 Is Daniel in the hallway? no 8 +1 Sandra moved to the hallway. +2 Mary travelled to the garden. +3 Is Sandra in the bathroom? no 1 +4 John journeyed to the bedroom. +5 Sandra moved to the bedroom. +6 Is Sandra in the garden? no 5 +7 Sandra went to the bathroom. +8 Sandra grabbed the apple there. +9 Is Sandra in the garden? no 7 +10 Sandra moved to the kitchen. +11 Mary got the milk there. +12 Is Sandra in the kitchen? yes 10 +13 Sandra went to the hallway. +14 Sandra put down the apple. +15 Is Sandra in the hallway? yes 13 +1 Daniel took the football there. +2 Sandra went to the bathroom. +3 Is Sandra in the hallway? no 2 +4 Daniel discarded the football there. +5 John journeyed to the hallway. +6 Is John in the hallway? yes 5 +7 Daniel got the football there. +8 Sandra moved to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Daniel left the football there. +11 Mary moved to the hallway. +12 Is Mary in the office? no 11 +13 Sandra went to the bedroom. +14 Sandra moved to the office. +15 Is Sandra in the office? yes 14 +1 Sandra went back to the garden. +2 Mary moved to the garden. +3 Is Mary in the garden? yes 2 +4 John went back to the bedroom. +5 Mary went to the hallway. +6 Is Sandra in the garden? yes 1 +7 Sandra moved to the hallway. +8 Mary journeyed to the garden. +9 Is Mary in the kitchen? no 8 +10 Mary travelled to the hallway. +11 John journeyed to the garden. +12 Is Mary in the hallway? yes 10 +13 Sandra journeyed to the garden. +14 Daniel journeyed to the office. +15 Is Daniel in the office? yes 14 +1 Mary went to the hallway. +2 Sandra went to the kitchen. +3 Is Sandra in the office? no 2 +4 Sandra journeyed to the bathroom. +5 John went to the garden. +6 Is Sandra in the garden? no 4 +7 Mary grabbed the football there. +8 Sandra went to the office. +9 Is Sandra in the office? yes 8 +10 Sandra went back to the hallway. +11 John journeyed to the hallway. +12 Is John in the bedroom? no 11 +13 Mary left the football. +14 Mary journeyed to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Daniel travelled to the bathroom. +2 Daniel picked up the milk there. +3 Is Daniel in the kitchen? no 1 +4 Daniel discarded the milk. +5 Mary went back to the hallway. +6 Is Daniel in the kitchen? no 1 +7 Daniel got the milk there. +8 Sandra got the football there. +9 Is Mary in the hallway? yes 5 +10 Daniel put down the milk. +11 Daniel went back to the garden. +12 Is Daniel in the bathroom? no 11 +13 John moved to the hallway. +14 Sandra moved to the bedroom. +15 Is Daniel in the office? no 11 +1 Mary picked up the football there. +2 Daniel took the apple there. +3 Mary moved to the garden. +4 John went to the bathroom. +5 Is Mary in the bedroom? no 3 +6 Mary went back to the bathroom. +7 Daniel journeyed to the office. +8 Is Daniel in the kitchen? no 7 +9 Daniel went to the kitchen. +10 John journeyed to the kitchen. +11 Is John in the kitchen? yes 10 +12 Sandra moved to the bedroom. +13 John moved to the bedroom. +14 Is Daniel in the kitchen? yes 9 +15 Mary put down the football. +16 John went back to the garden. +17 Is Sandra in the bedroom? yes 12 +1 Daniel went back to the office. +2 John travelled to the hallway. +3 Is John in the hallway? yes 2 +4 John went to the garden. +5 John grabbed the football there. +6 Is John in the bedroom? no 4 +7 John left the football. +8 John took the football there. +9 Is John in the hallway? no 4 +10 Daniel went to the bedroom. +11 Mary went to the kitchen. +12 Is Daniel in the bedroom? yes 10 +13 John grabbed the milk there. +14 Daniel travelled to the office. +15 Is Mary in the bathroom? no 11 +1 John moved to the garden. +2 John went back to the kitchen. +3 Is John in the garden? no 2 +4 Mary went back to the kitchen. +5 John went to the bathroom. +6 Is John in the bathroom? yes 5 +7 John picked up the football there. +8 Sandra journeyed to the bedroom. +9 Is John in the bathroom? yes 5 +10 Daniel went back to the hallway. +11 Mary went back to the bedroom. +12 Is Daniel in the office? no 10 +13 Daniel went back to the office. +14 Daniel got the apple there. +15 Is Daniel in the office? yes 13 +1 John journeyed to the kitchen. +2 John moved to the garden. +3 Is John in the bedroom? no 2 +4 Mary journeyed to the kitchen. +5 Mary went back to the garden. +6 Is Mary in the garden? yes 5 +7 Sandra travelled to the garden. +8 Daniel picked up the apple there. +9 Is Mary in the garden? yes 5 +10 Daniel got the football there. +11 Daniel travelled to the hallway. +12 Is Sandra in the garden? yes 7 +13 Daniel left the football. +14 Mary travelled to the office. +15 Is Daniel in the hallway? yes 11 +1 John went to the garden. +2 Mary moved to the bedroom. +3 Is John in the bathroom? no 1 +4 Mary took the football there. +5 Mary left the football. +6 Is Mary in the bedroom? yes 2 +7 Mary travelled to the hallway. +8 John journeyed to the bathroom. +9 Is Mary in the hallway? yes 7 +10 Sandra moved to the bedroom. +11 Daniel moved to the garden. +12 Is John in the bathroom? yes 8 +13 Sandra grabbed the apple there. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Daniel picked up the football there. +2 Daniel moved to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel travelled to the bathroom. +5 Mary went to the bedroom. +6 Is Mary in the bathroom? no 5 +7 Daniel put down the football. +8 Mary went back to the garden. +9 Is Mary in the bathroom? no 8 +10 Sandra moved to the kitchen. +11 Mary moved to the hallway. +12 Is Mary in the hallway? yes 11 +13 Sandra took the apple there. +14 Sandra put down the apple. +15 Is Mary in the hallway? yes 11 +1 Sandra moved to the garden. +2 Daniel went back to the office. +3 Is Daniel in the office? yes 2 +4 Daniel picked up the apple there. +5 Sandra took the milk there. +6 Is Daniel in the office? yes 2 +7 Daniel travelled to the hallway. +8 John went to the garden. +9 Is Daniel in the bathroom? no 7 +10 John went back to the bathroom. +11 Mary went back to the kitchen. +12 Is Mary in the garden? no 11 +13 Sandra discarded the milk. +14 Daniel took the football there. +15 Is Mary in the kitchen? yes 11 +1 John picked up the football there. +2 John dropped the football. +3 Mary travelled to the bathroom. +4 Daniel travelled to the office. +5 Is Mary in the bathroom? yes 3 +6 John moved to the hallway. +7 Sandra moved to the bedroom. +8 Is Mary in the bathroom? yes 3 +9 Mary moved to the hallway. +10 Daniel moved to the kitchen. +11 Is Daniel in the office? no 10 +12 Daniel got the milk there. +13 John went to the office. +14 Is Sandra in the garden? no 7 +15 John went to the kitchen. +16 Sandra went to the kitchen. +17 Is Daniel in the office? no 10 +1 John grabbed the football there. +2 John travelled to the garden. +3 Is John in the garden? yes 2 +4 Sandra took the milk there. +5 Sandra dropped the milk. +6 Is John in the bedroom? no 2 +7 Mary picked up the milk there. +8 Sandra travelled to the bathroom. +9 Is John in the garden? yes 2 +10 Sandra went back to the office. +11 John dropped the football there. +12 Is Sandra in the office? yes 10 +13 Sandra grabbed the apple there. +14 Mary moved to the bathroom. +15 Is Sandra in the bedroom? no 10 +1 Daniel went back to the hallway. +2 Sandra went to the hallway. +3 Is Sandra in the office? no 2 +4 Mary moved to the hallway. +5 Sandra went to the kitchen. +6 Is Sandra in the office? no 5 +7 Daniel travelled to the office. +8 Sandra moved to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 Daniel went back to the hallway. +11 Daniel journeyed to the garden. +12 Is Daniel in the garden? yes 11 +13 Daniel moved to the bedroom. +14 Daniel went to the office. +15 Is Daniel in the bedroom? no 14 +1 John went back to the hallway. +2 Daniel took the milk there. +3 Is John in the hallway? yes 1 +4 Daniel discarded the milk there. +5 John travelled to the kitchen. +6 Is John in the hallway? no 5 +7 John journeyed to the bedroom. +8 John journeyed to the kitchen. +9 Is John in the bathroom? no 8 +10 Mary took the football there. +11 Mary discarded the football. +12 Is John in the garden? no 8 +13 Daniel journeyed to the office. +14 John travelled to the office. +15 Is Daniel in the office? yes 13 +1 Daniel went to the garden. +2 John went to the bathroom. +3 Is John in the office? no 2 +4 Sandra travelled to the bathroom. +5 Daniel journeyed to the kitchen. +6 Is John in the bathroom? yes 2 +7 Mary went back to the hallway. +8 John moved to the kitchen. +9 Is John in the kitchen? yes 8 +10 Daniel travelled to the office. +11 Mary went back to the bathroom. +12 Is Daniel in the office? yes 10 +13 John went back to the hallway. +14 John got the football there. +15 Is Daniel in the bedroom? no 10 +1 Daniel picked up the milk there. +2 Mary journeyed to the garden. +3 Is Mary in the kitchen? no 2 +4 Sandra moved to the bedroom. +5 Daniel left the milk. +6 Is Mary in the kitchen? no 2 +7 Daniel took the milk there. +8 Sandra moved to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 John travelled to the kitchen. +11 John journeyed to the bedroom. +12 Is Sandra in the garden? no 8 +13 Daniel dropped the milk. +14 Mary travelled to the kitchen. +15 Is John in the bedroom? yes 11 +1 Sandra went to the office. +2 Daniel travelled to the office. +3 Is Sandra in the garden? no 1 +4 Mary moved to the office. +5 Mary journeyed to the hallway. +6 Is Sandra in the office? yes 1 +7 Daniel went back to the garden. +8 Daniel went back to the office. +9 Is Daniel in the office? yes 8 +10 Sandra went back to the hallway. +11 John travelled to the bathroom. +12 Is Mary in the kitchen? no 5 +13 John got the apple there. +14 John grabbed the football there. +15 Is John in the bathroom? yes 11 +1 John picked up the apple there. +2 John discarded the apple. +3 Mary went to the office. +4 John picked up the apple there. +5 Is Mary in the bedroom? no 3 +6 Mary travelled to the bedroom. +7 John took the milk there. +8 Is Mary in the office? no 6 +9 Mary grabbed the football there. +10 John dropped the milk. +11 Is Mary in the bedroom? yes 6 +12 Mary discarded the football. +13 John took the milk there. +14 Daniel travelled to the garden. +15 Mary moved to the bathroom. +16 Is Mary in the bathroom? yes 15 +17 John dropped the apple. +18 Daniel moved to the bedroom. +19 Is Mary in the kitchen? no 15 +1 John moved to the bathroom. +2 Sandra took the apple there. +3 Is John in the bathroom? yes 1 +4 Daniel journeyed to the kitchen. +5 Sandra journeyed to the bedroom. +6 Is Sandra in the kitchen? no 5 +7 Sandra travelled to the office. +8 Sandra discarded the apple. +9 Is Sandra in the office? yes 7 +10 Sandra went back to the bedroom. +11 Daniel grabbed the football there. +12 Is Sandra in the garden? no 10 +13 John moved to the bedroom. +14 Mary travelled to the office. +15 Is Mary in the office? yes 14 +1 Sandra moved to the bedroom. +2 Sandra went to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra went to the bedroom. +5 Sandra took the apple there. +6 Is Sandra in the hallway? no 4 +7 Sandra dropped the apple. +8 John journeyed to the bedroom. +9 Is Sandra in the bedroom? yes 4 +10 Daniel took the football there. +11 Daniel moved to the bathroom. +12 Is Daniel in the bedroom? no 11 +13 John picked up the apple there. +14 Daniel dropped the football. +15 Is John in the bathroom? no 8 +1 Sandra travelled to the bedroom. +2 Mary got the milk there. +3 Is Sandra in the bedroom? yes 1 +4 John went back to the hallway. +5 Mary went to the garden. +6 Is John in the office? no 4 +7 Mary went back to the hallway. +8 Mary travelled to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary moved to the garden. +11 Sandra went to the garden. +12 Is Mary in the garden? yes 10 +13 John journeyed to the bathroom. +14 Daniel moved to the bedroom. +15 Is John in the bedroom? no 13 +1 John picked up the milk there. +2 Mary travelled to the bathroom. +3 Is Mary in the bedroom? no 2 +4 Mary travelled to the kitchen. +5 John discarded the milk. +6 Is Mary in the kitchen? yes 4 +7 Sandra grabbed the apple there. +8 Daniel journeyed to the hallway. +9 Is Daniel in the garden? no 8 +10 John picked up the milk there. +11 Sandra moved to the kitchen. +12 Is Sandra in the garden? no 11 +13 Sandra dropped the apple there. +14 John travelled to the office. +15 Is Daniel in the kitchen? no 8 +1 Mary grabbed the milk there. +2 Mary got the football there. +3 John moved to the hallway. +4 Sandra moved to the garden. +5 Is John in the kitchen? no 3 +6 John moved to the garden. +7 Mary journeyed to the kitchen. +8 Is Mary in the garden? no 7 +9 Mary dropped the milk. +10 Mary discarded the football there. +11 Is Mary in the bedroom? no 7 +12 Mary went back to the bathroom. +13 Sandra journeyed to the kitchen. +14 Is Mary in the hallway? no 12 +15 Mary journeyed to the kitchen. +16 Daniel moved to the kitchen. +17 Is Daniel in the kitchen? yes 16 +1 Mary got the milk there. +2 Daniel went to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 John picked up the apple there. +5 Mary moved to the office. +6 Is Mary in the garden? no 5 +7 Daniel picked up the football there. +8 Daniel went back to the garden. +9 Is Daniel in the garden? yes 8 +10 Daniel went back to the bathroom. +11 Mary discarded the milk there. +12 Is Daniel in the bedroom? no 10 +13 Sandra went back to the bedroom. +14 Daniel journeyed to the office. +15 Is Daniel in the office? yes 14 +1 Sandra travelled to the bedroom. +2 Daniel went to the office. +3 Is Sandra in the bathroom? no 1 +4 Mary went back to the bathroom. +5 Daniel moved to the hallway. +6 Is Mary in the office? no 4 +7 Mary went to the bedroom. +8 Daniel went to the bathroom. +9 Is Mary in the bedroom? yes 7 +10 Daniel journeyed to the kitchen. +11 Daniel moved to the hallway. +12 Is Daniel in the hallway? yes 11 +13 Mary went to the kitchen. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Sandra took the football there. +2 John grabbed the milk there. +3 Sandra dropped the football. +4 John journeyed to the hallway. +5 Is John in the bathroom? no 4 +6 John grabbed the football there. +7 Mary travelled to the garden. +8 Is John in the hallway? yes 4 +9 John travelled to the office. +10 Mary travelled to the hallway. +11 Is John in the hallway? no 9 +12 John left the football. +13 John grabbed the football there. +14 Is Mary in the bathroom? no 10 +15 Sandra went to the bedroom. +16 John went to the hallway. +17 Is Sandra in the bedroom? yes 15 +1 John moved to the bedroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary journeyed to the hallway. +5 John journeyed to the hallway. +6 Is Sandra in the kitchen? yes 2 +7 Daniel got the football there. +8 Mary went back to the office. +9 Is Sandra in the kitchen? yes 2 +10 John journeyed to the garden. +11 Sandra went back to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Sandra journeyed to the bathroom. +14 Sandra went back to the garden. +15 Is Sandra in the garden? yes 14 +1 Daniel journeyed to the office. +2 Mary travelled to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Daniel went back to the garden. +5 Mary picked up the milk there. +6 Is Daniel in the office? no 4 +7 Daniel got the football there. +8 Mary left the milk. +9 Is Daniel in the bathroom? no 4 +10 Daniel travelled to the hallway. +11 Daniel travelled to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Mary travelled to the hallway. +14 Sandra travelled to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Daniel moved to the hallway. +2 Mary journeyed to the garden. +3 Is Mary in the garden? yes 2 +4 Daniel travelled to the bedroom. +5 John moved to the kitchen. +6 Is Daniel in the bedroom? yes 4 +7 Sandra went to the bathroom. +8 Sandra went to the garden. +9 Is Mary in the kitchen? no 2 +10 John went to the office. +11 Mary went back to the hallway. +12 Is Sandra in the kitchen? no 8 +13 Sandra travelled to the office. +14 Mary travelled to the garden. +15 Is Sandra in the office? yes 13 +1 Daniel went back to the bedroom. +2 Daniel went to the hallway. +3 Is Daniel in the kitchen? no 2 +4 John went to the garden. +5 Sandra travelled to the office. +6 Is John in the garden? yes 4 +7 Daniel grabbed the apple there. +8 John travelled to the hallway. +9 Is John in the kitchen? no 8 +10 Daniel travelled to the kitchen. +11 John moved to the office. +12 Is Sandra in the hallway? no 5 +13 John went back to the garden. +14 Daniel went to the garden. +15 Is John in the bedroom? no 13 +1 John went to the bedroom. +2 Sandra moved to the bedroom. +3 Is John in the office? no 1 +4 Mary went back to the garden. +5 Mary picked up the apple there. +6 Is Sandra in the hallway? no 2 +7 Sandra went back to the garden. +8 John went back to the bathroom. +9 Is Sandra in the hallway? no 7 +10 Daniel went to the office. +11 Mary discarded the apple. +12 Is John in the garden? no 8 +13 Sandra moved to the kitchen. +14 Mary took the apple there. +15 Is Sandra in the kitchen? yes 13 +1 John went to the garden. +2 Mary travelled to the kitchen. +3 Is John in the garden? yes 1 +4 Daniel went to the hallway. +5 Daniel grabbed the milk there. +6 Is Daniel in the kitchen? no 4 +7 Daniel discarded the milk. +8 Daniel picked up the milk there. +9 Is Mary in the kitchen? yes 2 +10 Daniel dropped the milk. +11 John moved to the office. +12 Is John in the office? yes 11 +13 Daniel grabbed the football there. +14 Mary took the apple there. +15 Is John in the hallway? no 11 +1 John journeyed to the bedroom. +2 Daniel went to the garden. +3 Is Daniel in the office? no 2 +4 John picked up the milk there. +5 John went to the kitchen. +6 Is Daniel in the garden? yes 2 +7 John left the milk. +8 John went back to the bathroom. +9 Is Daniel in the kitchen? no 2 +10 Sandra went to the office. +11 Sandra went back to the hallway. +12 Is Sandra in the garden? no 11 +13 John went to the hallway. +14 John went back to the office. +15 Is Sandra in the hallway? yes 11 +1 Daniel moved to the garden. +2 John took the milk there. +3 Is Daniel in the office? no 1 +4 John went to the bedroom. +5 John travelled to the kitchen. +6 Is John in the bedroom? no 5 +7 John took the apple there. +8 John left the milk there. +9 Is John in the kitchen? yes 5 +10 John picked up the milk there. +11 John dropped the milk. +12 Is John in the hallway? no 5 +13 John went back to the hallway. +14 Sandra grabbed the football there. +15 Is John in the office? no 13 +1 John journeyed to the bedroom. +2 Mary went back to the garden. +3 Is Mary in the garden? yes 2 +4 Mary grabbed the apple there. +5 Sandra went back to the hallway. +6 Is Sandra in the bathroom? no 5 +7 Mary discarded the apple. +8 Mary moved to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Mary got the football there. +11 Sandra journeyed to the bedroom. +12 Is Mary in the office? no 8 +13 Sandra travelled to the garden. +14 Mary travelled to the garden. +15 Is Sandra in the kitchen? no 13 +1 Daniel went to the bathroom. +2 John went back to the bathroom. +3 Is Daniel in the bedroom? no 1 +4 John took the milk there. +5 Sandra picked up the apple there. +6 Is Daniel in the bathroom? yes 1 +7 John dropped the milk. +8 Sandra went to the kitchen. +9 Is Sandra in the bathroom? no 8 +10 Sandra discarded the apple. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 Daniel went back to the hallway. +14 Sandra went to the hallway. +15 Is Sandra in the office? no 14 +1 Mary grabbed the apple there. +2 John went back to the bathroom. +3 Is John in the bathroom? yes 2 +4 Daniel journeyed to the garden. +5 John went to the kitchen. +6 Is Daniel in the bathroom? no 4 +7 Sandra moved to the kitchen. +8 Mary dropped the apple. +9 Is Sandra in the kitchen? yes 7 +10 Mary journeyed to the bedroom. +11 John went back to the bedroom. +12 Is Sandra in the kitchen? yes 7 +13 Daniel went to the bathroom. +14 John journeyed to the hallway. +15 Is Mary in the garden? no 10 +1 Daniel travelled to the bedroom. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John went to the bedroom. +5 Daniel travelled to the hallway. +6 Is Daniel in the hallway? yes 5 +7 Sandra travelled to the hallway. +8 Daniel travelled to the kitchen. +9 Is John in the bedroom? yes 4 +10 Mary journeyed to the kitchen. +11 John picked up the apple there. +12 Is Sandra in the bathroom? no 7 +13 John picked up the football there. +14 Daniel travelled to the garden. +15 Is Mary in the office? no 10 +1 Mary went back to the office. +2 Mary journeyed to the kitchen. +3 Is Mary in the hallway? no 2 +4 John went back to the hallway. +5 Sandra moved to the bathroom. +6 Is Mary in the bathroom? no 2 +7 John grabbed the apple there. +8 John journeyed to the office. +9 Is John in the bedroom? no 8 +10 John put down the apple. +11 John picked up the apple there. +12 Is John in the garden? no 8 +13 Sandra journeyed to the garden. +14 John dropped the apple there. +15 Is John in the office? yes 8 +1 Mary grabbed the apple there. +2 Daniel went to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel got the milk there. +5 Daniel moved to the hallway. +6 Is Daniel in the hallway? yes 5 +7 Sandra grabbed the football there. +8 Mary discarded the apple. +9 Is Daniel in the bedroom? no 5 +10 Sandra put down the football. +11 Mary picked up the apple there. +12 Is Daniel in the hallway? yes 5 +13 Sandra went to the office. +14 John went back to the bedroom. +15 Is Sandra in the garden? no 13 +1 Sandra travelled to the garden. +2 Mary moved to the bathroom. +3 Is Sandra in the bathroom? no 1 +4 John moved to the garden. +5 Mary moved to the office. +6 Is Mary in the bedroom? no 5 +7 Mary picked up the apple there. +8 Mary journeyed to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary went back to the kitchen. +11 Sandra went to the office. +12 Is Mary in the kitchen? yes 10 +13 Mary put down the apple there. +14 Mary moved to the bathroom. +15 Is Mary in the garden? no 14 +1 John went to the hallway. +2 Sandra journeyed to the office. +3 Is Sandra in the bathroom? no 2 +4 Sandra moved to the kitchen. +5 Mary journeyed to the bathroom. +6 Is Sandra in the office? no 4 +7 Sandra went back to the bathroom. +8 John journeyed to the office. +9 Is Mary in the bathroom? yes 5 +10 John went to the bathroom. +11 Sandra moved to the office. +12 Is John in the bathroom? yes 10 +13 Mary went back to the hallway. +14 Sandra went back to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 Daniel picked up the milk there. +2 John took the football there. +3 Mary moved to the garden. +4 John discarded the football there. +5 Is Mary in the garden? yes 3 +6 John grabbed the football there. +7 Sandra went to the office. +8 Is Sandra in the office? yes 7 +9 John went to the kitchen. +10 Daniel put down the milk there. +11 Is John in the kitchen? yes 9 +12 Daniel picked up the milk there. +13 Mary moved to the kitchen. +14 Is Mary in the kitchen? yes 13 +15 John left the football. +16 John took the football there. +17 Is Mary in the garden? no 13 +1 Mary got the football there. +2 Mary dropped the football. +3 John got the apple there. +4 Sandra moved to the bedroom. +5 Is Sandra in the bedroom? yes 4 +6 Sandra journeyed to the hallway. +7 Mary picked up the football there. +8 Is Sandra in the bathroom? no 6 +9 Daniel travelled to the bedroom. +10 Mary discarded the football. +11 Is Sandra in the hallway? yes 6 +12 John discarded the apple. +13 Daniel travelled to the bathroom. +14 Is Daniel in the bedroom? no 13 +15 Mary moved to the hallway. +16 John got the milk there. +17 Is Daniel in the kitchen? no 13 +1 Sandra got the football there. +2 Sandra dropped the football. +3 Daniel went back to the garden. +4 John journeyed to the bathroom. +5 Is John in the kitchen? no 4 +6 Daniel went to the bathroom. +7 Mary moved to the kitchen. +8 Is John in the bedroom? no 4 +9 John got the apple there. +10 Mary took the milk there. +11 Is Mary in the kitchen? yes 7 +12 John left the apple. +13 John took the apple there. +14 Is Mary in the hallway? no 7 +15 Mary dropped the milk. +16 Mary grabbed the milk there. +17 Sandra got the football there. +18 Daniel journeyed to the bedroom. +19 Is Daniel in the kitchen? no 18 +1 John moved to the bedroom. +2 Mary picked up the milk there. +3 Is John in the office? no 1 +4 Mary went to the hallway. +5 Sandra grabbed the apple there. +6 Is John in the kitchen? no 1 +7 John journeyed to the office. +8 Daniel journeyed to the office. +9 Is Daniel in the office? yes 8 +10 John moved to the bedroom. +11 Sandra went to the garden. +12 Is Sandra in the bathroom? no 11 +13 Sandra discarded the apple there. +14 John travelled to the garden. +15 Is Sandra in the hallway? no 11 +1 Sandra travelled to the kitchen. +2 Mary went back to the bathroom. +3 Is Sandra in the kitchen? yes 1 +4 Sandra went back to the bathroom. +5 John travelled to the garden. +6 Is John in the office? no 5 +7 Sandra grabbed the milk there. +8 Sandra left the milk. +9 Is Sandra in the bathroom? yes 4 +10 Mary journeyed to the office. +11 Sandra took the milk there. +12 Is John in the garden? yes 5 +13 John moved to the bedroom. +14 Sandra moved to the bedroom. +15 Is Mary in the bathroom? no 10 +1 John journeyed to the bathroom. +2 Mary went back to the garden. +3 Is John in the bathroom? yes 1 +4 Mary grabbed the football there. +5 Daniel went back to the garden. +6 Is Mary in the hallway? no 2 +7 Mary left the football. +8 Daniel travelled to the office. +9 Is Daniel in the bathroom? no 8 +10 Mary took the football there. +11 Daniel went back to the garden. +12 Is Daniel in the garden? yes 11 +13 Daniel travelled to the bathroom. +14 Mary went to the hallway. +15 Is Mary in the bathroom? no 14 +1 John went to the office. +2 Sandra took the football there. +3 Is John in the bathroom? no 1 +4 Sandra left the football. +5 John went back to the bedroom. +6 Is John in the bedroom? yes 5 +7 Mary journeyed to the office. +8 Sandra got the football there. +9 Is John in the bedroom? yes 5 +10 Daniel grabbed the milk there. +11 Sandra went back to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Sandra journeyed to the kitchen. +14 Sandra dropped the football. +15 Is Sandra in the office? no 13 +1 John journeyed to the bedroom. +2 Sandra journeyed to the kitchen. +3 Is John in the bedroom? yes 1 +4 Sandra went to the bathroom. +5 Sandra travelled to the hallway. +6 Is Sandra in the hallway? yes 5 +7 John went to the bathroom. +8 Mary travelled to the bedroom. +9 Is Sandra in the hallway? yes 5 +10 John journeyed to the bedroom. +11 Sandra journeyed to the office. +12 Is Sandra in the kitchen? no 11 +13 Sandra travelled to the bathroom. +14 Daniel journeyed to the kitchen. +15 Is Sandra in the bathroom? yes 13 +1 Sandra got the football there. +2 Daniel moved to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Sandra discarded the football. +5 Sandra grabbed the football there. +6 Is Daniel in the hallway? no 2 +7 John moved to the bathroom. +8 Mary went to the garden. +9 Is Mary in the garden? yes 8 +10 John moved to the hallway. +11 Sandra went back to the garden. +12 Is John in the kitchen? no 10 +13 Mary grabbed the milk there. +14 Mary went back to the bathroom. +15 Is Mary in the garden? no 14 +1 Daniel travelled to the garden. +2 Mary travelled to the garden. +3 Is Mary in the hallway? no 2 +4 Sandra picked up the apple there. +5 Mary took the football there. +6 Is Mary in the hallway? no 2 +7 Sandra journeyed to the kitchen. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Mary travelled to the office. +11 John went to the garden. +12 Is Sandra in the kitchen? no 8 +13 Sandra went to the garden. +14 Mary went back to the bathroom. +15 Is Sandra in the garden? yes 13 +1 Daniel went back to the office. +2 Daniel went back to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Sandra moved to the office. +5 Mary picked up the apple there. +6 Is Daniel in the hallway? yes 2 +7 Mary dropped the apple. +8 Sandra journeyed to the bathroom. +9 Is Sandra in the office? no 8 +10 John went to the hallway. +11 Mary got the apple there. +12 Is Sandra in the office? no 8 +13 Mary put down the apple there. +14 Mary moved to the kitchen. +15 Is Mary in the bathroom? no 14 +1 Daniel journeyed to the hallway. +2 Daniel moved to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel journeyed to the garden. +5 John journeyed to the bathroom. +6 Is Daniel in the office? no 4 +7 Sandra travelled to the office. +8 Mary moved to the garden. +9 Is Mary in the bathroom? no 8 +10 John travelled to the garden. +11 Mary journeyed to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Sandra journeyed to the hallway. +14 Daniel moved to the bedroom. +15 Is John in the bedroom? no 10 +1 Daniel went back to the office. +2 Mary took the apple there. +3 Is Daniel in the office? yes 1 +4 Mary dropped the apple there. +5 Mary went back to the kitchen. +6 Is Mary in the garden? no 5 +7 Sandra journeyed to the kitchen. +8 Sandra picked up the football there. +9 Is Mary in the kitchen? yes 5 +10 Sandra got the milk there. +11 Sandra moved to the bedroom. +12 Is Mary in the garden? no 5 +13 Sandra travelled to the office. +14 Sandra put down the football. +15 Is Sandra in the office? yes 13 +1 John moved to the bedroom. +2 Daniel took the milk there. +3 Is John in the bedroom? yes 1 +4 John went back to the bathroom. +5 Daniel discarded the milk. +6 Is John in the hallway? no 4 +7 Daniel got the milk there. +8 Mary moved to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Daniel went back to the office. +11 Mary went to the hallway. +12 Is Mary in the office? no 11 +13 Daniel put down the milk. +14 John went back to the hallway. +15 Is Mary in the hallway? yes 11 +1 Sandra picked up the milk there. +2 Mary went back to the hallway. +3 Is Mary in the bedroom? no 2 +4 Sandra dropped the milk. +5 Sandra grabbed the milk there. +6 Is Mary in the hallway? yes 2 +7 John moved to the garden. +8 John picked up the football there. +9 Is John in the garden? yes 7 +10 Daniel went back to the kitchen. +11 Daniel went to the bathroom. +12 Is Daniel in the bedroom? no 11 +13 John left the football. +14 John grabbed the football there. +15 Is Daniel in the bedroom? no 11 +1 Sandra took the apple there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the garden? no 2 +4 Mary got the football there. +5 Mary grabbed the milk there. +6 Is Sandra in the bedroom? yes 2 +7 John went to the office. +8 Daniel journeyed to the hallway. +9 Is John in the bathroom? no 7 +10 Sandra went to the garden. +11 Daniel went back to the garden. +12 Is Daniel in the hallway? no 11 +13 Mary went back to the bedroom. +14 Mary dropped the milk there. +15 Is Sandra in the garden? yes 10 +1 Daniel moved to the office. +2 Mary travelled to the garden. +3 Is Mary in the garden? yes 2 +4 John moved to the bathroom. +5 Sandra grabbed the milk there. +6 Is John in the bathroom? yes 4 +7 Sandra moved to the bedroom. +8 John travelled to the kitchen. +9 Is John in the kitchen? yes 8 +10 John travelled to the bathroom. +11 John moved to the kitchen. +12 Is John in the kitchen? yes 11 +13 Sandra moved to the garden. +14 Daniel travelled to the garden. +15 Is John in the garden? no 11 +1 Daniel got the milk there. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John grabbed the apple there. +5 John moved to the bedroom. +6 Is John in the bathroom? no 5 +7 Sandra grabbed the football there. +8 Daniel left the milk. +9 Is John in the bedroom? yes 5 +10 Mary went to the bathroom. +11 Daniel grabbed the milk there. +12 Is Mary in the garden? no 10 +13 John moved to the bathroom. +14 Sandra dropped the football there. +15 Is Mary in the bathroom? yes 10 +1 Sandra moved to the garden. +2 John travelled to the bedroom. +3 Is Sandra in the bedroom? no 1 +4 Daniel went to the kitchen. +5 John went back to the bathroom. +6 Is Daniel in the kitchen? yes 4 +7 Daniel moved to the bathroom. +8 Sandra went back to the bedroom. +9 Is Daniel in the bathroom? yes 7 +10 Sandra moved to the bathroom. +11 John got the apple there. +12 Is Daniel in the bathroom? yes 7 +13 Sandra journeyed to the office. +14 John grabbed the milk there. +15 Is Sandra in the office? yes 13 +1 Mary took the milk there. +2 Daniel got the apple there. +3 Daniel went to the office. +4 Sandra travelled to the bathroom. +5 Is Daniel in the office? yes 3 +6 Daniel discarded the apple. +7 John took the football there. +8 Is Daniel in the bathroom? no 3 +9 John went to the office. +10 John journeyed to the bedroom. +11 Is Sandra in the hallway? no 4 +12 Daniel picked up the apple there. +13 John travelled to the kitchen. +14 Is John in the kitchen? yes 13 +15 John went to the bathroom. +16 John put down the football there. +17 Is John in the bathroom? yes 15 +1 Sandra moved to the office. +2 Mary went to the bedroom. +3 Is Sandra in the office? yes 1 +4 Sandra went to the garden. +5 Daniel travelled to the office. +6 Is Daniel in the office? yes 5 +7 Mary moved to the hallway. +8 Sandra grabbed the apple there. +9 Is Sandra in the kitchen? no 4 +10 Mary took the football there. +11 Daniel journeyed to the bedroom. +12 Is Mary in the office? no 7 +13 Daniel travelled to the hallway. +14 Mary put down the football. +15 Is Daniel in the kitchen? no 13 +1 Sandra moved to the office. +2 Daniel travelled to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel went to the bathroom. +5 Sandra got the football there. +6 Is Daniel in the hallway? no 4 +7 Sandra moved to the hallway. +8 Daniel moved to the garden. +9 Is Daniel in the garden? yes 8 +10 Daniel went back to the bathroom. +11 Sandra went to the garden. +12 Is Daniel in the bathroom? yes 10 +13 Sandra dropped the football. +14 Daniel went to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Mary went to the bathroom. +2 John travelled to the bathroom. +3 Is Mary in the office? no 1 +4 Daniel grabbed the football there. +5 Daniel left the football there. +6 Is John in the bathroom? yes 2 +7 Daniel travelled to the office. +8 Daniel travelled to the garden. +9 Is Daniel in the garden? yes 8 +10 Daniel went to the hallway. +11 Daniel grabbed the apple there. +12 Is Daniel in the hallway? yes 10 +13 Sandra journeyed to the hallway. +14 Sandra got the milk there. +15 Is Daniel in the hallway? yes 10 +1 Daniel picked up the football there. +2 Mary journeyed to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Daniel dropped the football. +5 John journeyed to the bedroom. +6 Is John in the bedroom? yes 5 +7 Mary went to the bedroom. +8 Sandra journeyed to the hallway. +9 Is Mary in the bedroom? yes 7 +10 Daniel got the milk there. +11 Daniel put down the milk. +12 Is Mary in the bedroom? yes 7 +13 Daniel picked up the football there. +14 Daniel left the football. +15 Is Sandra in the kitchen? no 8 +1 Daniel travelled to the bathroom. +2 Sandra moved to the kitchen. +3 Is Daniel in the bathroom? yes 1 +4 Sandra took the apple there. +5 Daniel picked up the milk there. +6 Is Sandra in the kitchen? yes 2 +7 Mary went to the bathroom. +8 Sandra put down the apple. +9 Is Mary in the bedroom? no 7 +10 John journeyed to the bedroom. +11 Mary moved to the hallway. +12 Is Mary in the hallway? yes 11 +13 John journeyed to the kitchen. +14 Mary journeyed to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 John travelled to the bathroom. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra went back to the hallway. +5 Mary moved to the bedroom. +6 Is Daniel in the bedroom? yes 2 +7 Mary went back to the garden. +8 John went back to the kitchen. +9 Is Daniel in the bedroom? yes 2 +10 Mary picked up the football there. +11 Daniel travelled to the kitchen. +12 Is Mary in the garden? yes 7 +13 Mary journeyed to the bedroom. +14 Mary travelled to the hallway. +15 Is Daniel in the kitchen? yes 11 +1 Sandra moved to the bathroom. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 John took the milk there. +5 John went to the kitchen. +6 Is Sandra in the bathroom? yes 1 +7 Mary journeyed to the office. +8 Daniel travelled to the garden. +9 Is John in the garden? no 5 +10 John dropped the milk there. +11 John grabbed the apple there. +12 Is John in the bathroom? no 5 +13 John went back to the garden. +14 Sandra went to the office. +15 Is Sandra in the office? yes 14 +1 Mary travelled to the garden. +2 Mary travelled to the bathroom. +3 Is Mary in the office? no 2 +4 Mary moved to the garden. +5 Daniel went back to the garden. +6 Is Mary in the garden? yes 4 +7 Mary went back to the bedroom. +8 John took the milk there. +9 Is Mary in the bedroom? yes 7 +10 Daniel moved to the kitchen. +11 John moved to the office. +12 Is Daniel in the kitchen? yes 10 +13 Mary took the football there. +14 Sandra went back to the kitchen. +15 Is Sandra in the hallway? no 14 +1 John journeyed to the office. +2 Daniel journeyed to the garden. +3 Is John in the kitchen? no 1 +4 Mary went to the bedroom. +5 Daniel grabbed the milk there. +6 Is Daniel in the garden? yes 2 +7 John grabbed the football there. +8 Daniel journeyed to the bedroom. +9 Is Mary in the kitchen? no 4 +10 Mary travelled to the hallway. +11 John dropped the football. +12 Is Daniel in the bedroom? yes 8 +13 Daniel dropped the milk. +14 Mary picked up the apple there. +15 Is Mary in the hallway? yes 10 +1 Sandra got the apple there. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Mary travelled to the bedroom. +5 Sandra put down the apple there. +6 Is Mary in the hallway? no 4 +7 Mary picked up the apple there. +8 Mary journeyed to the office. +9 Is Mary in the hallway? no 8 +10 Mary went to the bedroom. +11 Mary put down the apple. +12 Is Mary in the bedroom? yes 10 +13 Mary got the apple there. +14 Mary left the apple. +15 Is Mary in the bathroom? no 10 +1 Daniel went back to the garden. +2 Daniel journeyed to the hallway. +3 Is Daniel in the hallway? yes 2 +4 John grabbed the apple there. +5 Mary went back to the kitchen. +6 Is Daniel in the hallway? yes 2 +7 John dropped the apple. +8 John went to the hallway. +9 Is Daniel in the hallway? yes 2 +10 Daniel travelled to the bathroom. +11 John journeyed to the office. +12 Is Daniel in the bathroom? yes 10 +13 John journeyed to the bedroom. +14 Daniel went to the kitchen. +15 Is John in the bathroom? no 13 +1 John went to the hallway. +2 Sandra grabbed the milk there. +3 Is John in the hallway? yes 1 +4 Mary travelled to the office. +5 Daniel took the football there. +6 Is John in the kitchen? no 1 +7 Mary took the apple there. +8 Mary travelled to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Daniel left the football. +11 Mary put down the apple. +12 Is Mary in the office? no 8 +13 Mary went back to the garden. +14 Mary journeyed to the office. +15 Is Mary in the office? yes 14 +1 Sandra went back to the kitchen. +2 Sandra got the apple there. +3 Is Sandra in the office? no 1 +4 Sandra dropped the apple. +5 John went back to the kitchen. +6 Is John in the garden? no 5 +7 Sandra picked up the apple there. +8 Sandra moved to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra dropped the apple. +11 Mary journeyed to the bathroom. +12 Is Mary in the bedroom? no 11 +13 Daniel went to the bedroom. +14 Sandra went to the kitchen. +15 Is Sandra in the bathroom? no 14 +1 John went back to the kitchen. +2 John took the milk there. +3 Is John in the kitchen? yes 1 +4 Mary travelled to the office. +5 Mary got the football there. +6 Is Mary in the bathroom? no 4 +7 Mary went to the hallway. +8 Sandra moved to the kitchen. +9 Is Sandra in the hallway? no 8 +10 John put down the milk. +11 Sandra grabbed the milk there. +12 Is Mary in the hallway? yes 7 +13 Mary journeyed to the kitchen. +14 Sandra moved to the bedroom. +15 Is Mary in the hallway? no 13 +1 Daniel picked up the apple there. +2 Mary picked up the football there. +3 John moved to the bedroom. +4 Daniel dropped the apple. +5 Is John in the bedroom? yes 3 +6 John journeyed to the hallway. +7 Daniel moved to the bedroom. +8 Is Daniel in the bedroom? yes 7 +9 Mary got the apple there. +10 Mary left the apple. +11 Is Daniel in the bedroom? yes 7 +12 Daniel moved to the bathroom. +13 John went to the kitchen. +14 Is John in the kitchen? yes 13 +15 Mary left the football there. +16 Sandra journeyed to the office. +17 Is Sandra in the bedroom? no 16 +1 Daniel moved to the office. +2 Mary took the milk there. +3 Is Daniel in the bathroom? no 1 +4 John travelled to the hallway. +5 Daniel got the football there. +6 Is Daniel in the office? yes 1 +7 Sandra went back to the kitchen. +8 Sandra got the apple there. +9 Is Sandra in the bedroom? no 7 +10 Daniel went to the bedroom. +11 Mary discarded the milk. +12 Is Daniel in the office? no 10 +13 Daniel travelled to the office. +14 Mary moved to the hallway. +15 Is Daniel in the garden? no 13 +1 Mary grabbed the football there. +2 Sandra grabbed the milk there. +3 Sandra left the milk. +4 Daniel moved to the hallway. +5 Is Daniel in the bathroom? no 4 +6 Daniel travelled to the bathroom. +7 Mary travelled to the hallway. +8 Is Daniel in the kitchen? no 6 +9 Daniel journeyed to the bedroom. +10 Mary discarded the football. +11 Is Daniel in the hallway? no 9 +12 John moved to the bedroom. +13 Mary picked up the football there. +14 Is Mary in the hallway? yes 7 +15 Daniel went to the bathroom. +16 Sandra moved to the hallway. +17 Is Sandra in the bedroom? no 16 +1 John went to the bedroom. +2 John took the apple there. +3 Is John in the office? no 1 +4 Sandra went back to the office. +5 Mary got the milk there. +6 Is John in the office? no 1 +7 John put down the apple. +8 Daniel journeyed to the office. +9 Is Daniel in the office? yes 8 +10 John got the apple there. +11 John left the apple. +12 Is Daniel in the garden? no 8 +13 Daniel went back to the bathroom. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Daniel got the milk there. +2 John went back to the bathroom. +3 Is John in the office? no 2 +4 Sandra took the apple there. +5 Daniel left the milk. +6 Is John in the bathroom? yes 2 +7 Daniel took the milk there. +8 Daniel journeyed to the bathroom. +9 Is Daniel in the garden? no 8 +10 Daniel discarded the milk there. +11 John took the milk there. +12 Is Daniel in the bedroom? no 8 +13 John moved to the kitchen. +14 Sandra journeyed to the office. +15 Is Sandra in the bedroom? no 14 +1 Sandra grabbed the milk there. +2 Mary grabbed the football there. +3 Daniel went back to the hallway. +4 Sandra left the milk. +5 Is Daniel in the garden? no 3 +6 Sandra journeyed to the office. +7 Daniel moved to the office. +8 Is Daniel in the office? yes 7 +9 John journeyed to the office. +10 Sandra moved to the kitchen. +11 Is Sandra in the garden? no 10 +12 Sandra got the apple there. +13 Mary left the football there. +14 Is Daniel in the office? yes 7 +15 Mary went back to the hallway. +16 John journeyed to the bedroom. +17 Is John in the garden? no 16 +1 Sandra went to the garden. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John grabbed the milk there. +5 Sandra went to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Daniel travelled to the bedroom. +8 John moved to the hallway. +9 Is Daniel in the bedroom? yes 7 +10 Daniel went back to the hallway. +11 John put down the milk there. +12 Is Daniel in the garden? no 10 +13 Mary journeyed to the bathroom. +14 John got the milk there. +15 Is Mary in the kitchen? no 13 +1 Sandra picked up the milk there. +2 Sandra put down the milk. +3 Sandra moved to the office. +4 Daniel went back to the garden. +5 Is Daniel in the garden? yes 4 +6 Daniel picked up the milk there. +7 Daniel put down the milk. +8 Is Sandra in the hallway? no 3 +9 Sandra went to the garden. +10 John went back to the bathroom. +11 Is Sandra in the bedroom? no 9 +12 Daniel moved to the kitchen. +13 John travelled to the office. +14 Is John in the office? yes 13 +15 Sandra took the milk there. +16 Sandra discarded the milk. +17 Is John in the bedroom? no 13 +1 John went back to the garden. +2 John went to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary went to the office. +5 Daniel went to the hallway. +6 Is Mary in the bedroom? no 4 +7 Daniel picked up the milk there. +8 Sandra went to the hallway. +9 Is Daniel in the bedroom? no 5 +10 Sandra travelled to the office. +11 Sandra went to the garden. +12 Is Sandra in the garden? yes 11 +13 John moved to the hallway. +14 Daniel discarded the milk. +15 Is Sandra in the kitchen? no 11 +1 Mary picked up the apple there. +2 Daniel journeyed to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary dropped the apple. +5 Mary took the milk there. +6 Is Daniel in the kitchen? yes 2 +7 Mary went to the hallway. +8 Sandra moved to the garden. +9 Is Daniel in the kitchen? yes 2 +10 Sandra got the apple there. +11 Daniel went to the hallway. +12 Is Daniel in the garden? no 11 +13 Daniel went back to the bathroom. +14 Mary left the milk. +15 Is Daniel in the bathroom? yes 13 +1 John took the apple there. +2 Mary journeyed to the hallway. +3 Is Mary in the bedroom? no 2 +4 Mary got the football there. +5 John put down the apple. +6 Is Mary in the hallway? yes 2 +7 Mary travelled to the bedroom. +8 Daniel moved to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Daniel moved to the bedroom. +11 John picked up the apple there. +12 Is Mary in the bedroom? yes 7 +13 John left the apple. +14 John took the apple there. +15 Is Daniel in the hallway? no 10 +1 Sandra travelled to the garden. +2 John took the milk there. +3 Is Sandra in the bathroom? no 1 +4 Daniel went back to the garden. +5 John put down the milk. +6 Is Daniel in the garden? yes 4 +7 Mary moved to the office. +8 Sandra moved to the hallway. +9 Is Mary in the hallway? no 7 +10 Mary went to the hallway. +11 Sandra went back to the kitchen. +12 Is Sandra in the office? no 11 +13 Daniel travelled to the bathroom. +14 Mary moved to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Daniel journeyed to the bedroom. +2 Daniel journeyed to the garden. +3 Is Daniel in the bathroom? no 2 +4 Sandra travelled to the garden. +5 Daniel moved to the office. +6 Is Daniel in the office? yes 5 +7 Mary travelled to the bedroom. +8 Sandra took the apple there. +9 Is Mary in the hallway? no 7 +10 Sandra grabbed the milk there. +11 Sandra went to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Daniel moved to the garden. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Mary went back to the hallway. +2 John went back to the hallway. +3 Is John in the bedroom? no 2 +4 Daniel moved to the office. +5 Sandra travelled to the bathroom. +6 Is John in the bathroom? no 2 +7 Sandra moved to the bedroom. +8 Daniel grabbed the milk there. +9 Is Sandra in the office? no 7 +10 Daniel travelled to the bathroom. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 Daniel moved to the office. +14 John journeyed to the bedroom. +15 Is Sandra in the bedroom? no 11 +1 Sandra got the milk there. +2 Sandra dropped the milk. +3 John went to the hallway. +4 Sandra journeyed to the bedroom. +5 Is Sandra in the bedroom? yes 4 +6 John took the apple there. +7 Sandra journeyed to the office. +8 Is Sandra in the bedroom? no 7 +9 John travelled to the garden. +10 John grabbed the milk there. +11 Is John in the bedroom? no 9 +12 Daniel travelled to the garden. +13 Mary travelled to the bedroom. +14 Is Mary in the bedroom? yes 13 +15 Daniel travelled to the bedroom. +16 John discarded the milk there. +17 Is Mary in the bedroom? yes 13 +1 Daniel grabbed the football there. +2 Mary travelled to the bedroom. +3 Is Mary in the hallway? no 2 +4 Daniel travelled to the garden. +5 Mary took the apple there. +6 Is Daniel in the bathroom? no 4 +7 Mary moved to the garden. +8 Mary went back to the kitchen. +9 Is Mary in the office? no 8 +10 Mary went to the bedroom. +11 Daniel got the milk there. +12 Is Mary in the office? no 10 +13 Daniel discarded the milk there. +14 Daniel went back to the kitchen. +15 Is Mary in the office? no 10 +1 John travelled to the hallway. +2 Mary went back to the bathroom. +3 Is John in the garden? no 1 +4 John travelled to the bathroom. +5 Daniel travelled to the bedroom. +6 Is John in the garden? no 4 +7 Daniel took the apple there. +8 Daniel discarded the apple. +9 Is John in the hallway? no 4 +10 Sandra journeyed to the garden. +11 Daniel got the apple there. +12 Is Sandra in the bathroom? no 10 +13 Daniel discarded the apple. +14 Daniel went back to the bathroom. +15 Is Sandra in the garden? yes 10 +1 Mary went back to the office. +2 Daniel took the milk there. +3 Is Mary in the office? yes 1 +4 Daniel discarded the milk there. +5 John picked up the apple there. +6 Is Mary in the bathroom? no 1 +7 Mary went to the hallway. +8 John left the apple. +9 Is Mary in the hallway? yes 7 +10 John travelled to the hallway. +11 Mary moved to the garden. +12 Is John in the hallway? yes 10 +13 Sandra moved to the kitchen. +14 Sandra moved to the hallway. +15 Is John in the hallway? yes 10 +1 Sandra travelled to the hallway. +2 John moved to the hallway. +3 Is Sandra in the bathroom? no 1 +4 Sandra moved to the bedroom. +5 John went to the kitchen. +6 Is Sandra in the bedroom? yes 4 +7 Sandra picked up the football there. +8 Sandra travelled to the office. +9 Is Sandra in the office? yes 8 +10 Sandra dropped the football. +11 Mary went back to the office. +12 Is Sandra in the office? yes 8 +13 Daniel travelled to the office. +14 Mary moved to the hallway. +15 Is Sandra in the garden? no 8 +1 Mary took the apple there. +2 John got the milk there. +3 Sandra went back to the bathroom. +4 John journeyed to the kitchen. +5 Is Sandra in the bathroom? yes 3 +6 John put down the milk. +7 John got the milk there. +8 Is John in the bedroom? no 4 +9 John moved to the bedroom. +10 Mary put down the apple. +11 Is John in the hallway? no 9 +12 Sandra took the apple there. +13 Mary journeyed to the garden. +14 Is John in the hallway? no 9 +15 John discarded the milk there. +16 John picked up the milk there. +17 Is Mary in the garden? yes 13 +1 Mary travelled to the bedroom. +2 Daniel grabbed the milk there. +3 Is Mary in the kitchen? no 1 +4 John moved to the kitchen. +5 Daniel discarded the milk. +6 Is John in the kitchen? yes 4 +7 John took the apple there. +8 Sandra went back to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Mary got the football there. +11 Mary put down the football. +12 Is Sandra in the hallway? no 8 +13 John went to the office. +14 Sandra journeyed to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Daniel grabbed the football there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra picked up the milk there. +5 Daniel discarded the football. +6 Is Daniel in the bedroom? yes 2 +7 Sandra journeyed to the kitchen. +8 John went back to the bedroom. +9 Is Daniel in the bedroom? yes 2 +10 Daniel went to the kitchen. +11 John got the football there. +12 Is Sandra in the bathroom? no 7 +13 Mary picked up the apple there. +14 Mary put down the apple. +15 Is Daniel in the kitchen? yes 10 +1 Mary picked up the apple there. +2 Mary discarded the apple. +3 Daniel went back to the hallway. +4 Mary went to the garden. +5 Is Mary in the office? no 4 +6 Mary picked up the football there. +7 Mary put down the football. +8 Is Mary in the garden? yes 4 +9 Daniel went to the garden. +10 Sandra went back to the bathroom. +11 Is Sandra in the bedroom? no 10 +12 Mary got the football there. +13 Mary discarded the football there. +14 Is Daniel in the garden? yes 9 +15 John went to the garden. +16 John picked up the football there. +17 Is John in the bathroom? no 15 +1 Sandra travelled to the kitchen. +2 Daniel went back to the bedroom. +3 Is Daniel in the garden? no 2 +4 John moved to the bathroom. +5 Sandra took the apple there. +6 Is Daniel in the hallway? no 2 +7 Daniel went back to the bathroom. +8 Mary travelled to the garden. +9 Is Daniel in the kitchen? no 7 +10 John moved to the bedroom. +11 Sandra travelled to the bedroom. +12 Is Daniel in the garden? no 7 +13 Sandra got the milk there. +14 Mary went back to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 John took the milk there. +2 John went to the garden. +3 Is John in the bathroom? no 2 +4 Mary journeyed to the bedroom. +5 John put down the milk. +6 Is John in the kitchen? no 2 +7 Mary picked up the football there. +8 Sandra travelled to the kitchen. +9 Is John in the kitchen? no 2 +10 Daniel moved to the hallway. +11 John journeyed to the bedroom. +12 Is Sandra in the garden? no 8 +13 Sandra journeyed to the office. +14 Daniel picked up the apple there. +15 Is Daniel in the kitchen? no 10 +1 John got the apple there. +2 Mary got the football there. +3 John went back to the bedroom. +4 Daniel journeyed to the garden. +5 Is John in the garden? no 3 +6 Daniel travelled to the bedroom. +7 Mary discarded the football. +8 Is John in the garden? no 3 +9 Mary took the football there. +10 Sandra moved to the bathroom. +11 Is Daniel in the bathroom? no 6 +12 Sandra went back to the office. +13 John journeyed to the garden. +14 Is John in the garden? yes 13 +15 Daniel went back to the hallway. +16 Mary travelled to the garden. +17 Is Daniel in the hallway? yes 15 +1 Mary grabbed the apple there. +2 Mary went to the kitchen. +3 Is Mary in the bathroom? no 2 +4 John moved to the bathroom. +5 John journeyed to the kitchen. +6 Is Mary in the garden? no 2 +7 Mary went back to the garden. +8 Mary put down the apple. +9 Is John in the bathroom? no 5 +10 Mary travelled to the bedroom. +11 Daniel travelled to the office. +12 Is Mary in the bathroom? no 10 +13 Daniel took the football there. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the kitchen? no 14 +1 Mary went back to the kitchen. +2 John journeyed to the garden. +3 Is John in the hallway? no 2 +4 John took the apple there. +5 John journeyed to the bedroom. +6 Is John in the garden? no 5 +7 Daniel went to the bedroom. +8 Mary journeyed to the hallway. +9 Is John in the bathroom? no 5 +10 John dropped the apple. +11 Daniel got the apple there. +12 Is John in the bedroom? yes 5 +13 Daniel put down the apple there. +14 Mary grabbed the football there. +15 Is Mary in the hallway? yes 8 +1 Sandra grabbed the milk there. +2 Sandra left the milk. +3 Daniel went to the office. +4 Mary went to the bathroom. +5 Is Daniel in the bedroom? no 3 +6 John went back to the kitchen. +7 Mary journeyed to the hallway. +8 Is Mary in the hallway? yes 7 +9 Sandra grabbed the milk there. +10 Sandra travelled to the office. +11 Is John in the kitchen? yes 6 +12 John travelled to the bedroom. +13 Sandra discarded the milk. +14 Is Mary in the bathroom? no 7 +15 Daniel moved to the kitchen. +16 Daniel journeyed to the office. +17 Is Daniel in the hallway? no 16 +1 Sandra moved to the office. +2 John got the apple there. +3 Is Sandra in the bathroom? no 1 +4 Mary went to the garden. +5 Daniel moved to the bedroom. +6 Is Mary in the garden? yes 4 +7 John dropped the apple there. +8 Daniel journeyed to the bathroom. +9 Is Mary in the kitchen? no 4 +10 Mary journeyed to the bathroom. +11 John grabbed the apple there. +12 Is Daniel in the bathroom? yes 8 +13 Mary went back to the garden. +14 Sandra took the football there. +15 Is Mary in the bedroom? no 13 +1 Mary got the football there. +2 Sandra went to the bedroom. +3 Is Sandra in the kitchen? no 2 +4 Sandra went back to the office. +5 Mary moved to the office. +6 Is Sandra in the bedroom? no 4 +7 John went back to the kitchen. +8 John journeyed to the garden. +9 Is Mary in the office? yes 5 +10 Daniel went back to the bedroom. +11 Mary journeyed to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Daniel went back to the garden. +14 Mary moved to the garden. +15 Is Daniel in the bathroom? no 13 +1 Daniel moved to the kitchen. +2 John picked up the apple there. +3 Is Daniel in the garden? no 1 +4 Sandra travelled to the kitchen. +5 Daniel moved to the bathroom. +6 Is Daniel in the garden? no 5 +7 John put down the apple. +8 Mary went to the hallway. +9 Is Sandra in the garden? no 4 +10 John travelled to the bedroom. +11 Sandra travelled to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Mary journeyed to the office. +14 Mary travelled to the bedroom. +15 Is Sandra in the office? no 11 +1 John went back to the kitchen. +2 John went back to the bedroom. +3 Is John in the kitchen? no 2 +4 Mary grabbed the football there. +5 John went back to the garden. +6 Is John in the bathroom? no 5 +7 John moved to the kitchen. +8 Sandra moved to the garden. +9 Is John in the kitchen? yes 7 +10 Mary discarded the football there. +11 Daniel went back to the kitchen. +12 Is John in the hallway? no 7 +13 John went to the bathroom. +14 Mary moved to the office. +15 Is Mary in the bedroom? no 14 +1 John went to the bathroom. +2 John went to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary travelled to the bathroom. +5 John moved to the hallway. +6 Is Mary in the bathroom? yes 4 +7 John got the football there. +8 Mary travelled to the office. +9 Is Mary in the office? yes 8 +10 Mary got the milk there. +11 John discarded the football there. +12 Is John in the hallway? yes 5 +13 Sandra journeyed to the garden. +14 Mary dropped the milk. +15 Is Mary in the bathroom? no 8 +1 Daniel grabbed the football there. +2 Daniel discarded the football. +3 Daniel moved to the bathroom. +4 Daniel travelled to the kitchen. +5 Is Daniel in the bathroom? no 4 +6 Mary took the apple there. +7 Mary got the milk there. +8 Is Daniel in the garden? no 4 +9 Daniel moved to the hallway. +10 Mary discarded the apple. +11 Is Daniel in the office? no 9 +12 Mary took the apple there. +13 Mary left the apple. +14 Is Daniel in the hallway? yes 9 +15 Daniel took the football there. +16 Sandra went to the office. +17 Is Sandra in the bathroom? no 16 +1 Daniel picked up the football there. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John travelled to the office. +5 Mary travelled to the bedroom. +6 Is Sandra in the bathroom? no 2 +7 Daniel discarded the football. +8 Sandra journeyed to the bathroom. +9 Is Sandra in the office? no 8 +10 Mary went back to the bathroom. +11 Mary took the milk there. +12 Is Mary in the bathroom? yes 10 +13 John picked up the football there. +14 Sandra travelled to the bedroom. +15 Is Mary in the bathroom? yes 10 +1 Daniel went to the hallway. +2 Mary went back to the bathroom. +3 Is Mary in the bedroom? no 2 +4 Mary journeyed to the kitchen. +5 Daniel took the apple there. +6 Is Mary in the kitchen? yes 4 +7 Daniel grabbed the football there. +8 Sandra journeyed to the hallway. +9 Is Mary in the kitchen? yes 4 +10 Mary went back to the garden. +11 Daniel moved to the garden. +12 Is Sandra in the bedroom? no 8 +13 Mary journeyed to the bedroom. +14 Mary took the milk there. +15 Is Sandra in the garden? no 8 +1 Mary grabbed the apple there. +2 Daniel moved to the hallway. +3 Is Daniel in the garden? no 2 +4 Daniel got the football there. +5 Mary travelled to the hallway. +6 Is Daniel in the office? no 2 +7 Daniel left the football. +8 Sandra got the milk there. +9 Is Mary in the garden? no 5 +10 Mary got the football there. +11 John travelled to the hallway. +12 Is John in the office? no 11 +13 Mary went back to the bathroom. +14 Daniel travelled to the bathroom. +15 Is Mary in the hallway? no 13 +1 Mary travelled to the bathroom. +2 Sandra moved to the office. +3 Is Mary in the bathroom? yes 1 +4 Daniel took the milk there. +5 John moved to the bedroom. +6 Is Sandra in the hallway? no 2 +7 Daniel went back to the kitchen. +8 Sandra took the apple there. +9 Is Sandra in the hallway? no 2 +10 Daniel left the milk. +11 Sandra travelled to the bedroom. +12 Is John in the bedroom? yes 5 +13 Mary went to the office. +14 Sandra journeyed to the kitchen. +15 Is Sandra in the bedroom? no 14 +1 John moved to the bedroom. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John went back to the bathroom. +5 Mary moved to the bedroom. +6 Is John in the office? no 4 +7 Mary went back to the kitchen. +8 Mary moved to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 John picked up the milk there. +11 John went to the office. +12 Is Mary in the bedroom? yes 8 +13 John put down the milk. +14 Mary travelled to the bathroom. +15 Is John in the office? yes 11 +1 Daniel moved to the garden. +2 Mary journeyed to the office. +3 Is Daniel in the bedroom? no 1 +4 Mary went back to the bathroom. +5 Daniel moved to the office. +6 Is Daniel in the garden? no 5 +7 Sandra moved to the bedroom. +8 Mary got the milk there. +9 Is Mary in the bathroom? yes 4 +10 Mary discarded the milk. +11 Mary moved to the garden. +12 Is Daniel in the office? yes 5 +13 Daniel went back to the garden. +14 John went to the office. +15 Is Daniel in the kitchen? no 13 +1 John travelled to the bedroom. +2 John took the apple there. +3 Is John in the office? no 1 +4 Daniel went to the kitchen. +5 Daniel journeyed to the bathroom. +6 Is Daniel in the bedroom? no 5 +7 John discarded the apple. +8 Daniel picked up the football there. +9 Is Daniel in the bathroom? yes 5 +10 Daniel discarded the football. +11 Sandra got the milk there. +12 Is Daniel in the bathroom? yes 5 +13 Mary got the football there. +14 John moved to the garden. +15 Is John in the bathroom? no 14 +1 Daniel went back to the hallway. +2 Mary went back to the bathroom. +3 Is Daniel in the hallway? yes 1 +4 Daniel moved to the office. +5 John went to the bedroom. +6 Is Mary in the bathroom? yes 2 +7 Daniel travelled to the bedroom. +8 Daniel journeyed to the garden. +9 Is John in the office? no 5 +10 Daniel got the apple there. +11 Mary grabbed the milk there. +12 Is John in the hallway? no 5 +13 Daniel grabbed the football there. +14 John went to the bathroom. +15 Is John in the kitchen? no 14 +1 John moved to the hallway. +2 John moved to the office. +3 Is John in the hallway? no 2 +4 Sandra journeyed to the bedroom. +5 Daniel took the milk there. +6 Is John in the office? yes 2 +7 Sandra picked up the football there. +8 Sandra went to the garden. +9 Is Sandra in the office? no 8 +10 Daniel left the milk there. +11 Daniel went back to the bedroom. +12 Is Sandra in the office? no 8 +13 Daniel moved to the garden. +14 Sandra moved to the office. +15 Is Daniel in the bathroom? no 13 +1 Sandra took the apple there. +2 Daniel grabbed the football there. +3 John moved to the bathroom. +4 John went back to the kitchen. +5 Is John in the kitchen? yes 4 +6 Mary took the milk there. +7 Mary went to the hallway. +8 Is Mary in the kitchen? no 7 +9 Mary put down the milk. +10 Mary went back to the kitchen. +11 Is Mary in the kitchen? yes 10 +12 Sandra went back to the bedroom. +13 Daniel left the football there. +14 Is Mary in the kitchen? yes 10 +15 Daniel picked up the football there. +16 Daniel left the football. +17 Is Mary in the bedroom? no 10 +1 Sandra picked up the milk there. +2 John moved to the hallway. +3 Is John in the bathroom? no 2 +4 Sandra journeyed to the kitchen. +5 Sandra moved to the bedroom. +6 Is John in the bathroom? no 2 +7 Daniel went to the hallway. +8 Mary went back to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Daniel went to the bedroom. +11 John went back to the bathroom. +12 Is Daniel in the hallway? no 10 +13 Mary went back to the hallway. +14 John travelled to the garden. +15 Is John in the garden? yes 14 +1 Daniel travelled to the kitchen. +2 John moved to the bathroom. +3 Is John in the bathroom? yes 2 +4 Sandra moved to the office. +5 Sandra travelled to the bathroom. +6 Is Daniel in the kitchen? yes 1 +7 John moved to the office. +8 Mary went to the kitchen. +9 Is Sandra in the hallway? no 5 +10 Mary travelled to the garden. +11 Mary journeyed to the kitchen. +12 Is Mary in the bedroom? no 11 +13 John travelled to the kitchen. +14 Daniel went back to the hallway. +15 Is Mary in the office? no 11 +1 Mary travelled to the bedroom. +2 John grabbed the apple there. +3 Is Mary in the bedroom? yes 1 +4 John went to the bedroom. +5 Sandra moved to the garden. +6 Is John in the bedroom? yes 4 +7 Mary went back to the garden. +8 Mary travelled to the hallway. +9 Is Mary in the hallway? yes 8 +10 Sandra went back to the office. +11 John dropped the apple. +12 Is Mary in the bathroom? no 8 +13 Daniel went to the kitchen. +14 Sandra moved to the garden. +15 Is Sandra in the garden? yes 14 +1 Daniel picked up the milk there. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the hallway? no 2 +4 John moved to the bathroom. +5 Daniel put down the milk. +6 Is Sandra in the garden? no 2 +7 John grabbed the milk there. +8 John took the apple there. +9 Is John in the bathroom? yes 4 +10 Sandra went back to the kitchen. +11 John dropped the milk there. +12 Is Sandra in the bathroom? no 10 +13 John left the apple. +14 Daniel took the milk there. +15 Is Sandra in the kitchen? yes 10 +1 Mary moved to the bedroom. +2 Mary went back to the kitchen. +3 Is Mary in the hallway? no 2 +4 Sandra travelled to the kitchen. +5 Mary journeyed to the bathroom. +6 Is Sandra in the bathroom? no 4 +7 John went back to the kitchen. +8 John travelled to the bedroom. +9 Is Sandra in the kitchen? yes 4 +10 Mary picked up the milk there. +11 Sandra went back to the bathroom. +12 Is John in the hallway? no 8 +13 John got the apple there. +14 Daniel went back to the office. +15 Is Sandra in the bedroom? no 11 +1 John travelled to the kitchen. +2 Mary journeyed to the bedroom. +3 Is Mary in the office? no 2 +4 Sandra journeyed to the kitchen. +5 Mary went to the garden. +6 Is John in the bathroom? no 1 +7 Sandra went back to the bathroom. +8 Mary moved to the bathroom. +9 Is Sandra in the office? no 7 +10 Sandra picked up the football there. +11 Sandra journeyed to the kitchen. +12 Is Sandra in the garden? no 11 +13 Mary went to the bedroom. +14 John journeyed to the garden. +15 Is Mary in the bedroom? yes 13 +1 Sandra went back to the office. +2 Sandra got the football there. +3 Is Sandra in the office? yes 1 +4 John travelled to the bathroom. +5 Sandra discarded the football. +6 Is John in the hallway? no 4 +7 John journeyed to the office. +8 Sandra got the football there. +9 Is John in the bathroom? no 7 +10 Sandra put down the football there. +11 John travelled to the garden. +12 Is John in the bathroom? no 11 +13 John moved to the kitchen. +14 John journeyed to the office. +15 Is John in the office? yes 14 +1 Sandra picked up the milk there. +2 Sandra left the milk. +3 Sandra got the milk there. +4 Daniel went to the garden. +5 Is Daniel in the garden? yes 4 +6 Daniel travelled to the kitchen. +7 Mary went back to the office. +8 Is Mary in the office? yes 7 +9 Daniel journeyed to the garden. +10 Daniel journeyed to the hallway. +11 Is Daniel in the bedroom? no 10 +12 Daniel journeyed to the kitchen. +13 Sandra moved to the garden. +14 Is Daniel in the garden? no 12 +15 Daniel travelled to the garden. +16 Sandra put down the milk. +17 Is Daniel in the kitchen? no 15 +1 John went back to the bedroom. +2 Daniel journeyed to the bathroom. +3 Is John in the office? no 1 +4 Mary journeyed to the bedroom. +5 Mary travelled to the kitchen. +6 Is Daniel in the bathroom? yes 2 +7 Sandra went back to the garden. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Sandra travelled to the office. +11 Daniel went back to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 John travelled to the garden. +14 Mary journeyed to the bathroom. +15 Is Daniel in the kitchen? yes 11 +1 Daniel got the football there. +2 Sandra went to the bathroom. +3 Is Sandra in the garden? no 2 +4 Daniel discarded the football there. +5 Daniel journeyed to the bathroom. +6 Is Sandra in the garden? no 2 +7 Mary journeyed to the bathroom. +8 Mary travelled to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Mary picked up the apple there. +11 Mary travelled to the hallway. +12 Is Daniel in the bathroom? yes 5 +13 Mary left the apple. +14 Mary took the apple there. +15 Is Mary in the hallway? yes 11 +1 Sandra took the milk there. +2 Sandra discarded the milk there. +3 Sandra went back to the kitchen. +4 John travelled to the office. +5 Is John in the office? yes 4 +6 Sandra moved to the bathroom. +7 John got the football there. +8 Is John in the office? yes 4 +9 John put down the football there. +10 John went back to the bedroom. +11 Is Sandra in the bathroom? yes 6 +12 John went back to the kitchen. +13 Sandra travelled to the bedroom. +14 Is John in the kitchen? yes 12 +15 Sandra took the milk there. +16 John moved to the office. +17 Is John in the office? yes 16 +1 Daniel travelled to the office. +2 Sandra took the milk there. +3 Is Daniel in the office? yes 1 +4 Mary went to the garden. +5 Mary travelled to the bathroom. +6 Is Mary in the bedroom? no 5 +7 Daniel travelled to the bathroom. +8 John picked up the apple there. +9 Is Daniel in the bathroom? yes 7 +10 John picked up the football there. +11 Daniel went to the garden. +12 Is Mary in the kitchen? no 5 +13 Sandra moved to the bathroom. +14 Mary moved to the bedroom. +15 Is Daniel in the garden? yes 11 +1 Daniel took the milk there. +2 Mary journeyed to the bedroom. +3 Is Mary in the office? no 2 +4 Sandra went to the hallway. +5 Mary moved to the garden. +6 Is Mary in the garden? yes 5 +7 Mary went to the hallway. +8 John grabbed the apple there. +9 Is Sandra in the hallway? yes 4 +10 Daniel dropped the milk. +11 Mary went back to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Daniel went back to the hallway. +14 Sandra went back to the bedroom. +15 Is Sandra in the garden? no 14 +1 Sandra moved to the bedroom. +2 Sandra picked up the apple there. +3 Is Sandra in the office? no 1 +4 Sandra got the football there. +5 Sandra journeyed to the office. +6 Is Sandra in the office? yes 5 +7 Daniel went to the bathroom. +8 John went back to the bedroom. +9 Is Daniel in the garden? no 7 +10 Sandra picked up the milk there. +11 Daniel travelled to the bedroom. +12 Is Daniel in the kitchen? no 11 +13 Daniel travelled to the office. +14 John went to the hallway. +15 Is John in the bedroom? no 14 +1 John travelled to the hallway. +2 Mary journeyed to the kitchen. +3 Is Mary in the hallway? no 2 +4 Sandra went to the kitchen. +5 John moved to the office. +6 Is Mary in the kitchen? yes 2 +7 Daniel went back to the bedroom. +8 John went back to the hallway. +9 Is Mary in the bedroom? no 2 +10 Daniel travelled to the kitchen. +11 Sandra moved to the bathroom. +12 Is John in the office? no 8 +13 Sandra went to the bedroom. +14 Mary went to the garden. +15 Is John in the bathroom? no 8 +1 Mary journeyed to the hallway. +2 Sandra travelled to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Mary went back to the garden. +5 Mary went back to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Mary moved to the hallway. +8 Sandra travelled to the garden. +9 Is Mary in the bathroom? no 7 +10 Daniel went back to the bathroom. +11 John moved to the bedroom. +12 Is Mary in the office? no 7 +13 Mary went back to the office. +14 Sandra moved to the office. +15 Is Daniel in the bathroom? yes 10 +1 John picked up the apple there. +2 John journeyed to the bathroom. +3 Is John in the kitchen? no 2 +4 Mary picked up the milk there. +5 John moved to the bedroom. +6 Is John in the bedroom? yes 5 +7 Sandra moved to the bathroom. +8 John journeyed to the office. +9 Is John in the hallway? no 8 +10 Sandra travelled to the garden. +11 John travelled to the garden. +12 Is Sandra in the garden? yes 10 +13 Mary moved to the garden. +14 Mary picked up the football there. +15 Is John in the garden? yes 11 +1 Sandra got the milk there. +2 Mary moved to the garden. +3 Is Mary in the office? no 2 +4 Mary moved to the office. +5 John went back to the kitchen. +6 Is Mary in the garden? no 4 +7 Daniel journeyed to the office. +8 John grabbed the apple there. +9 Is Daniel in the office? yes 7 +10 Sandra travelled to the office. +11 Daniel journeyed to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Mary got the football there. +14 John travelled to the bathroom. +15 Is Daniel in the office? no 11 +1 John went back to the bathroom. +2 Daniel travelled to the garden. +3 Is Daniel in the bedroom? no 2 +4 Mary went back to the bathroom. +5 Mary journeyed to the garden. +6 Is Daniel in the hallway? no 2 +7 Sandra moved to the hallway. +8 Sandra grabbed the milk there. +9 Is Sandra in the office? no 7 +10 John journeyed to the bedroom. +11 John got the apple there. +12 Is John in the bedroom? yes 10 +13 Sandra travelled to the bathroom. +14 Sandra dropped the milk. +15 Is John in the bedroom? yes 10 +1 John journeyed to the hallway. +2 John travelled to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary grabbed the milk there. +5 Mary put down the milk. +6 Is John in the bedroom? yes 2 +7 Daniel moved to the garden. +8 Mary journeyed to the hallway. +9 Is Daniel in the garden? yes 7 +10 Sandra got the apple there. +11 Daniel went back to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 John journeyed to the bathroom. +14 John went back to the kitchen. +15 Is Mary in the kitchen? no 8 +1 Mary travelled to the garden. +2 Mary travelled to the hallway. +3 Is Mary in the bathroom? no 2 +4 Daniel journeyed to the bedroom. +5 Daniel moved to the office. +6 Is Mary in the bathroom? no 2 +7 John took the football there. +8 Mary moved to the garden. +9 Is Mary in the kitchen? no 8 +10 John put down the football. +11 Mary grabbed the milk there. +12 Is Daniel in the office? yes 5 +13 John took the apple there. +14 Daniel went to the hallway. +15 Is Mary in the garden? yes 8 +1 Daniel travelled to the garden. +2 Sandra went to the office. +3 Is Daniel in the garden? yes 1 +4 Sandra went to the bathroom. +5 Daniel went back to the bathroom. +6 Is Daniel in the kitchen? no 5 +7 Mary went back to the bedroom. +8 John got the apple there. +9 Is Mary in the kitchen? no 7 +10 Daniel journeyed to the garden. +11 Sandra got the milk there. +12 Is Daniel in the garden? yes 10 +13 Sandra went to the bedroom. +14 Daniel went back to the bathroom. +15 Is Sandra in the bedroom? yes 13 +1 Daniel took the milk there. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Daniel journeyed to the kitchen. +5 Sandra travelled to the hallway. +6 Is Sandra in the garden? no 5 +7 John went back to the office. +8 John journeyed to the garden. +9 Is Daniel in the kitchen? yes 4 +10 Daniel discarded the milk. +11 Daniel moved to the garden. +12 Is Daniel in the garden? yes 11 +13 Sandra moved to the bedroom. +14 John went back to the bathroom. +15 Is John in the bathroom? yes 14 +1 Daniel went to the bathroom. +2 Sandra went back to the kitchen. +3 Is Daniel in the office? no 1 +4 Daniel journeyed to the garden. +5 Daniel got the football there. +6 Is Daniel in the office? no 4 +7 Sandra travelled to the hallway. +8 Mary went to the bathroom. +9 Is Daniel in the garden? yes 4 +10 Sandra went back to the office. +11 Mary went to the garden. +12 Is Mary in the garden? yes 11 +13 John travelled to the bathroom. +14 Mary journeyed to the bedroom. +15 Is Mary in the kitchen? no 14 +1 Daniel went back to the hallway. +2 John journeyed to the garden. +3 Is John in the office? no 2 +4 John moved to the bedroom. +5 John grabbed the football there. +6 Is John in the hallway? no 4 +7 John left the football. +8 John took the milk there. +9 Is John in the office? no 4 +10 Daniel journeyed to the bathroom. +11 John dropped the milk. +12 Is Daniel in the garden? no 10 +13 John got the football there. +14 John grabbed the milk there. +15 Is Daniel in the office? no 10 +1 John went to the hallway. +2 Daniel travelled to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Sandra grabbed the apple there. +5 Sandra went back to the office. +6 Is Sandra in the office? yes 5 +7 Sandra moved to the garden. +8 Mary went back to the hallway. +9 Is Sandra in the garden? yes 7 +10 John travelled to the office. +11 Mary journeyed to the office. +12 Is Mary in the office? yes 11 +13 John went to the bedroom. +14 Daniel went to the bathroom. +15 Is Daniel in the hallway? no 14 +1 John got the milk there. +2 Sandra moved to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 John discarded the milk. +5 John took the milk there. +6 Is Sandra in the hallway? no 2 +7 John moved to the garden. +8 John went to the kitchen. +9 Is Sandra in the kitchen? yes 2 +10 Mary moved to the bathroom. +11 John dropped the milk. +12 Is Mary in the kitchen? no 10 +13 Sandra went to the office. +14 Mary went to the garden. +15 Is John in the kitchen? yes 8 +1 Sandra journeyed to the garden. +2 Daniel moved to the garden. +3 Is Sandra in the office? no 1 +4 Sandra moved to the office. +5 Sandra took the apple there. +6 Is Sandra in the garden? no 4 +7 Daniel got the football there. +8 Sandra went to the garden. +9 Is Daniel in the garden? yes 2 +10 Sandra dropped the apple. +11 Mary went back to the garden. +12 Is Mary in the garden? yes 11 +13 Daniel took the apple there. +14 Sandra went back to the kitchen. +15 Is Sandra in the hallway? no 14 +1 Mary journeyed to the kitchen. +2 Daniel moved to the bathroom. +3 Is Mary in the bathroom? no 1 +4 Mary journeyed to the garden. +5 Daniel grabbed the milk there. +6 Is Mary in the office? no 4 +7 Daniel discarded the milk there. +8 Daniel got the apple there. +9 Is Mary in the hallway? no 4 +10 Daniel went to the office. +11 John moved to the kitchen. +12 Is Daniel in the office? yes 10 +13 Mary travelled to the bathroom. +14 Sandra grabbed the football there. +15 Is John in the garden? no 11 +1 Mary went back to the kitchen. +2 John travelled to the bathroom. +3 Is Mary in the kitchen? yes 1 +4 Sandra went to the hallway. +5 Mary journeyed to the bathroom. +6 Is John in the bathroom? yes 2 +7 Mary grabbed the apple there. +8 Mary dropped the apple. +9 Is John in the bathroom? yes 2 +10 Sandra went to the bathroom. +11 John went back to the kitchen. +12 Is Sandra in the garden? no 10 +13 Sandra went to the bedroom. +14 Mary moved to the kitchen. +15 Is John in the kitchen? yes 11 +1 Sandra journeyed to the kitchen. +2 Sandra went back to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra travelled to the office. +5 Daniel went to the hallway. +6 Is Sandra in the garden? no 4 +7 Daniel moved to the garden. +8 John went to the hallway. +9 Is Sandra in the garden? no 4 +10 Daniel grabbed the milk there. +11 Sandra went back to the hallway. +12 Is John in the office? no 8 +13 Mary moved to the kitchen. +14 Daniel put down the milk there. +15 Is Mary in the hallway? no 13 +1 Daniel moved to the office. +2 Daniel went back to the garden. +3 Is Daniel in the bathroom? no 2 +4 Daniel took the football there. +5 John went to the garden. +6 Is John in the bathroom? no 5 +7 John picked up the milk there. +8 Mary went to the hallway. +9 Is John in the garden? yes 5 +10 John put down the milk. +11 Mary moved to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Mary went to the hallway. +14 Daniel picked up the milk there. +15 Is Mary in the office? no 13 +1 Mary grabbed the football there. +2 Mary dropped the football. +3 Daniel travelled to the bathroom. +4 Daniel travelled to the office. +5 Is Daniel in the office? yes 4 +6 Mary went back to the hallway. +7 Mary went back to the office. +8 Is Daniel in the hallway? no 4 +9 Daniel journeyed to the bathroom. +10 John went to the bedroom. +11 Is John in the bedroom? yes 10 +12 Sandra went back to the bedroom. +13 John took the milk there. +14 Is Sandra in the bedroom? yes 12 +15 Mary journeyed to the garden. +16 Sandra travelled to the garden. +17 Is Sandra in the garden? yes 16 +1 Mary took the apple there. +2 Sandra went to the bedroom. +3 Is Sandra in the bathroom? no 2 +4 Sandra went to the hallway. +5 Mary went to the garden. +6 Is Mary in the garden? yes 5 +7 Mary left the apple there. +8 Mary took the football there. +9 Is Sandra in the hallway? yes 4 +10 Daniel took the apple there. +11 Daniel journeyed to the bathroom. +12 Is Mary in the kitchen? no 5 +13 Sandra travelled to the kitchen. +14 Mary dropped the football. +15 Is Sandra in the bathroom? no 13 +1 John went back to the bedroom. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Sandra journeyed to the hallway. +5 Daniel travelled to the bathroom. +6 Is John in the bathroom? no 2 +7 John travelled to the bathroom. +8 John travelled to the kitchen. +9 Is John in the bathroom? no 8 +10 Daniel travelled to the office. +11 Daniel went to the garden. +12 Is John in the kitchen? yes 8 +13 Mary went to the kitchen. +14 Daniel moved to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Sandra went back to the bedroom. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 Sandra travelled to the garden. +5 Daniel went back to the office. +6 Is Daniel in the office? yes 5 +7 Sandra got the apple there. +8 Sandra journeyed to the bathroom. +9 Is Daniel in the kitchen? no 5 +10 Mary moved to the kitchen. +11 Sandra went to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 John went back to the bedroom. +14 John went back to the bathroom. +15 Is Sandra in the garden? no 11 +1 Sandra went to the kitchen. +2 Mary picked up the football there. +3 Is Sandra in the garden? no 1 +4 Mary journeyed to the garden. +5 Mary travelled to the bedroom. +6 Is Sandra in the kitchen? yes 1 +7 Sandra travelled to the office. +8 Mary moved to the garden. +9 Is Mary in the office? no 8 +10 Sandra journeyed to the garden. +11 John went to the garden. +12 Is Mary in the garden? yes 8 +13 Daniel journeyed to the bathroom. +14 Mary took the milk there. +15 Is Daniel in the kitchen? no 13 +1 Daniel went back to the garden. +2 Sandra got the apple there. +3 Is Daniel in the hallway? no 1 +4 Mary went to the office. +5 John moved to the hallway. +6 Is John in the bathroom? no 5 +7 Mary went back to the bathroom. +8 Sandra journeyed to the kitchen. +9 Is Mary in the office? no 7 +10 Mary went back to the bedroom. +11 Daniel moved to the hallway. +12 Is Mary in the bedroom? yes 10 +13 Daniel travelled to the bathroom. +14 Mary travelled to the hallway. +15 Is Mary in the office? no 14 +1 Daniel travelled to the garden. +2 John went to the garden. +3 Is Daniel in the bathroom? no 1 +4 Daniel travelled to the kitchen. +5 John got the apple there. +6 Is John in the bathroom? no 2 +7 John discarded the apple. +8 John took the apple there. +9 Is John in the kitchen? no 2 +10 John discarded the apple there. +11 John journeyed to the hallway. +12 Is John in the kitchen? no 11 +13 John journeyed to the bathroom. +14 Sandra went to the kitchen. +15 Is John in the bedroom? no 13 +1 Sandra got the milk there. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Sandra travelled to the hallway. +5 Sandra discarded the milk. +6 Is Sandra in the bathroom? no 4 +7 Sandra picked up the milk there. +8 Daniel journeyed to the garden. +9 Is John in the garden? yes 2 +10 Daniel moved to the kitchen. +11 Mary went back to the garden. +12 Is Daniel in the office? no 10 +13 Sandra dropped the milk. +14 Sandra took the milk there. +15 Is Daniel in the bedroom? no 10 +1 John went to the garden. +2 John moved to the hallway. +3 Is John in the office? no 2 +4 Sandra got the milk there. +5 Mary journeyed to the kitchen. +6 Is John in the garden? no 2 +7 Daniel went to the bathroom. +8 Sandra left the milk. +9 Is Mary in the bedroom? no 5 +10 Mary went to the bathroom. +11 Daniel went back to the garden. +12 Is Mary in the office? no 10 +13 Sandra grabbed the milk there. +14 Sandra dropped the milk. +15 Is Daniel in the garden? yes 11 +1 John moved to the hallway. +2 Daniel travelled to the bedroom. +3 Is John in the bathroom? no 1 +4 Daniel went to the bathroom. +5 Mary went back to the office. +6 Is John in the kitchen? no 1 +7 Sandra went back to the office. +8 John went to the bedroom. +9 Is Sandra in the office? yes 7 +10 John travelled to the office. +11 Mary grabbed the football there. +12 Is John in the hallway? no 10 +13 Daniel took the milk there. +14 Mary left the football. +15 Is John in the kitchen? no 10 +1 Sandra went back to the bedroom. +2 John journeyed to the office. +3 Is Sandra in the office? no 1 +4 Sandra travelled to the hallway. +5 Daniel got the milk there. +6 Is Sandra in the bathroom? no 4 +7 Daniel journeyed to the hallway. +8 Sandra picked up the football there. +9 Is John in the bedroom? no 2 +10 Daniel left the milk. +11 Mary travelled to the garden. +12 Is Daniel in the hallway? yes 7 +13 Daniel travelled to the office. +14 Daniel went to the bathroom. +15 Is Mary in the garden? yes 11 +1 John picked up the football there. +2 Mary journeyed to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 John journeyed to the hallway. +5 John went to the bedroom. +6 Is Mary in the office? no 2 +7 Daniel grabbed the apple there. +8 Daniel left the apple there. +9 Is John in the bedroom? yes 5 +10 Sandra went to the garden. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 John moved to the kitchen. +14 Sandra went to the kitchen. +15 Is John in the bedroom? no 13 +1 Daniel picked up the football there. +2 Daniel went to the kitchen. +3 Is Daniel in the bedroom? no 2 +4 John got the milk there. +5 John left the milk there. +6 Is Daniel in the bedroom? no 2 +7 John picked up the apple there. +8 Mary went back to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Mary journeyed to the bathroom. +11 Daniel journeyed to the bedroom. +12 Is Mary in the kitchen? no 10 +13 Daniel went to the hallway. +14 Sandra moved to the hallway. +15 Is Daniel in the garden? no 13 +1 John went back to the bathroom. +2 John went to the office. +3 Is John in the bedroom? no 2 +4 John took the football there. +5 John went to the garden. +6 Is John in the office? no 5 +7 John journeyed to the office. +8 Mary moved to the office. +9 Is John in the office? yes 7 +10 John got the apple there. +11 John went back to the bedroom. +12 Is John in the office? no 11 +13 Mary went back to the bathroom. +14 Daniel went back to the garden. +15 Is John in the bedroom? yes 11 +1 John moved to the bathroom. +2 Daniel moved to the bedroom. +3 Is Daniel in the garden? no 2 +4 John took the milk there. +5 Sandra travelled to the bedroom. +6 Is John in the hallway? no 1 +7 John dropped the milk. +8 Daniel picked up the football there. +9 Is Sandra in the bedroom? yes 5 +10 John got the milk there. +11 Daniel went back to the garden. +12 Is Sandra in the garden? no 5 +13 Mary picked up the apple there. +14 Sandra moved to the office. +15 Is Daniel in the bedroom? no 11 +1 Mary went to the office. +2 Sandra picked up the football there. +3 Is Mary in the office? yes 1 +4 Daniel travelled to the office. +5 Sandra took the milk there. +6 Is Daniel in the office? yes 4 +7 Daniel journeyed to the hallway. +8 Daniel moved to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Mary journeyed to the bedroom. +11 Sandra discarded the milk there. +12 Is Daniel in the bathroom? yes 8 +13 Mary picked up the apple there. +14 Daniel went back to the bedroom. +15 Is Daniel in the bathroom? no 14 +1 Sandra moved to the garden. +2 Mary went to the garden. +3 Is Mary in the office? no 2 +4 John went to the kitchen. +5 John picked up the apple there. +6 Is John in the kitchen? yes 4 +7 Daniel went to the office. +8 Daniel went back to the kitchen. +9 Is Daniel in the bedroom? no 8 +10 Daniel went back to the hallway. +11 Mary went back to the office. +12 Is Mary in the office? yes 11 +13 Daniel travelled to the office. +14 Mary took the football there. +15 Is Daniel in the garden? no 13 +1 Mary went to the office. +2 John picked up the apple there. +3 Is Mary in the garden? no 1 +4 Mary travelled to the bedroom. +5 John left the apple. +6 Is Mary in the bathroom? no 4 +7 Mary travelled to the office. +8 Mary went to the kitchen. +9 Is Mary in the hallway? no 8 +10 John grabbed the apple there. +11 John put down the apple. +12 Is Mary in the garden? no 8 +13 Sandra moved to the hallway. +14 Mary grabbed the football there. +15 Is Mary in the office? no 8 +1 Mary journeyed to the office. +2 John picked up the milk there. +3 Is Mary in the office? yes 1 +4 Mary went to the bathroom. +5 John went back to the office. +6 Is Mary in the garden? no 4 +7 John dropped the milk. +8 John moved to the bathroom. +9 Is Mary in the bathroom? yes 4 +10 Sandra went to the hallway. +11 Daniel went back to the kitchen. +12 Is John in the office? no 8 +13 Sandra took the football there. +14 Sandra left the football. +15 Is Daniel in the kitchen? yes 11 +1 Mary picked up the football there. +2 Mary put down the football. +3 John grabbed the milk there. +4 John left the milk. +5 Mary moved to the hallway. +6 John moved to the bedroom. +7 Is John in the bedroom? yes 6 +8 John went to the garden. +9 John picked up the football there. +10 Is John in the bathroom? no 8 +11 Daniel journeyed to the hallway. +12 John discarded the football there. +13 Is John in the kitchen? no 8 +14 Sandra went back to the hallway. +15 John moved to the kitchen. +16 Is Sandra in the bedroom? no 14 +17 John went to the hallway. +18 Mary journeyed to the bedroom. +19 Is John in the bedroom? no 17 +1 Sandra travelled to the garden. +2 Daniel grabbed the football there. +3 Is Sandra in the hallway? no 1 +4 John journeyed to the hallway. +5 Daniel moved to the office. +6 Is Sandra in the kitchen? no 1 +7 Daniel went to the garden. +8 Mary travelled to the garden. +9 Is Daniel in the bathroom? no 7 +10 John travelled to the bedroom. +11 Mary travelled to the bathroom. +12 Is Mary in the hallway? no 11 +13 John travelled to the office. +14 John picked up the apple there. +15 Is Mary in the office? no 11 +1 Sandra moved to the garden. +2 John travelled to the kitchen. +3 Is John in the kitchen? yes 2 +4 Sandra went to the hallway. +5 Sandra travelled to the office. +6 Is Sandra in the office? yes 5 +7 Daniel moved to the garden. +8 Daniel grabbed the apple there. +9 Is John in the kitchen? yes 2 +10 Mary journeyed to the office. +11 Mary moved to the bedroom. +12 Is Daniel in the hallway? no 7 +13 John went back to the bathroom. +14 Daniel went to the hallway. +15 Is Mary in the hallway? no 11 +1 Daniel journeyed to the hallway. +2 Mary went to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 John travelled to the kitchen. +5 Sandra travelled to the kitchen. +6 Is John in the kitchen? yes 4 +7 Daniel took the milk there. +8 Daniel moved to the kitchen. +9 Is Daniel in the garden? no 8 +10 Mary moved to the garden. +11 Mary travelled to the hallway. +12 Is Sandra in the kitchen? yes 5 +13 Daniel put down the milk. +14 John took the milk there. +15 Is Daniel in the kitchen? yes 8 +1 Mary picked up the apple there. +2 Mary put down the apple. +3 Mary travelled to the kitchen. +4 John travelled to the kitchen. +5 Is John in the kitchen? yes 4 +6 Daniel moved to the office. +7 John went to the garden. +8 Is Daniel in the kitchen? no 6 +9 Sandra grabbed the milk there. +10 John grabbed the football there. +11 Is John in the hallway? no 7 +12 John left the football. +13 Sandra went back to the bathroom. +14 Is Sandra in the kitchen? no 13 +15 Sandra discarded the milk. +16 Sandra grabbed the milk there. +17 Is Sandra in the office? no 13 +1 Daniel went to the bedroom. +2 Sandra moved to the bedroom. +3 Is Daniel in the bedroom? yes 1 +4 Sandra moved to the garden. +5 Daniel went back to the garden. +6 Is Sandra in the office? no 4 +7 Sandra went to the hallway. +8 Sandra went back to the bedroom. +9 Is Sandra in the garden? no 8 +10 John went to the garden. +11 Daniel went back to the hallway. +12 Is Daniel in the kitchen? no 11 +13 Mary travelled to the garden. +14 Sandra moved to the garden. +15 Is Sandra in the garden? yes 14 +1 Mary moved to the bathroom. +2 Sandra picked up the apple there. +3 Is Mary in the bathroom? yes 1 +4 Sandra went to the bedroom. +5 Sandra moved to the kitchen. +6 Is Mary in the bathroom? yes 1 +7 Sandra went to the hallway. +8 Sandra put down the apple. +9 Is Sandra in the bedroom? no 7 +10 Sandra grabbed the apple there. +11 Sandra went back to the bedroom. +12 Is Sandra in the bathroom? no 11 +13 Sandra put down the apple there. +14 Daniel went to the bedroom. +15 Is Sandra in the office? no 11 +1 Sandra moved to the kitchen. +2 Daniel grabbed the milk there. +3 Is Sandra in the office? no 1 +4 Sandra went to the bedroom. +5 Mary took the apple there. +6 Is Sandra in the garden? no 4 +7 Mary left the apple. +8 Mary got the apple there. +9 Is Sandra in the bedroom? yes 4 +10 Mary discarded the apple there. +11 Mary got the apple there. +12 Mary dropped the apple. +13 John went back to the bedroom. +14 Is John in the bedroom? yes 13 +15 Mary travelled to the office. +16 Daniel travelled to the bedroom. +17 Is Daniel in the kitchen? no 16 +1 Mary went back to the bedroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Sandra travelled to the kitchen. +5 Mary travelled to the office. +6 Is Sandra in the bedroom? no 4 +7 Mary moved to the garden. +8 Daniel moved to the garden. +9 Is Daniel in the garden? yes 8 +10 Sandra went back to the bathroom. +11 Daniel took the milk there. +12 Is Mary in the garden? yes 7 +13 Sandra journeyed to the office. +14 Daniel dropped the milk. +15 Is Daniel in the bathroom? no 8 +1 Sandra grabbed the football there. +2 Daniel travelled to the garden. +3 Is Daniel in the garden? yes 2 +4 John moved to the office. +5 John travelled to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary travelled to the bedroom. +8 John went to the bathroom. +9 Is Mary in the bedroom? yes 7 +10 Sandra dropped the football. +11 Sandra went back to the office. +12 Is Sandra in the bedroom? no 11 +13 John moved to the hallway. +14 Daniel went back to the bathroom. +15 Is John in the office? no 13 +1 Mary moved to the garden. +2 Mary moved to the bedroom. +3 Is Mary in the hallway? no 2 +4 Daniel got the milk there. +5 John went to the bathroom. +6 Is Mary in the bedroom? yes 2 +7 Sandra went to the hallway. +8 Daniel put down the milk. +9 Is Sandra in the hallway? yes 7 +10 Daniel grabbed the milk there. +11 John went to the bedroom. +12 Is John in the bathroom? no 11 +13 Sandra journeyed to the bathroom. +14 Daniel left the milk. +15 Is Sandra in the garden? no 13 +1 John went to the kitchen. +2 Mary travelled to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary went to the bathroom. +5 Mary travelled to the office. +6 Is Mary in the office? yes 5 +7 John went to the bedroom. +8 John travelled to the bathroom. +9 Is Mary in the kitchen? no 5 +10 Daniel journeyed to the garden. +11 Daniel went back to the office. +12 Is John in the bathroom? yes 8 +13 Mary grabbed the football there. +14 Daniel went back to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Sandra journeyed to the bathroom. +2 Daniel took the milk there. +3 Is Sandra in the hallway? no 1 +4 John moved to the bathroom. +5 Sandra went back to the hallway. +6 Is Sandra in the office? no 5 +7 Sandra travelled to the bedroom. +8 Mary grabbed the apple there. +9 Is Sandra in the bedroom? yes 7 +10 John journeyed to the office. +11 Sandra went back to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Daniel put down the milk there. +14 John got the milk there. +15 Is Sandra in the kitchen? no 11 +1 Daniel travelled to the hallway. +2 Mary went back to the hallway. +3 Is Mary in the garden? no 2 +4 Daniel travelled to the bedroom. +5 John went to the bedroom. +6 Is John in the bathroom? no 5 +7 Sandra went back to the garden. +8 Mary grabbed the milk there. +9 Is Sandra in the office? no 7 +10 Mary got the apple there. +11 Daniel journeyed to the office. +12 Is John in the bathroom? no 5 +13 John went to the hallway. +14 Sandra journeyed to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Mary moved to the bathroom. +2 Daniel went back to the bedroom. +3 Is Mary in the bathroom? yes 1 +4 John journeyed to the kitchen. +5 John moved to the garden. +6 Is Mary in the hallway? no 1 +7 Sandra travelled to the office. +8 Sandra got the football there. +9 Is Sandra in the office? yes 7 +10 Mary took the apple there. +11 Daniel got the milk there. +12 Is Sandra in the office? yes 7 +13 Mary went to the kitchen. +14 Daniel discarded the milk. +15 Is Mary in the kitchen? yes 13 +1 Mary took the milk there. +2 Sandra picked up the football there. +3 Sandra went back to the bedroom. +4 Daniel journeyed to the office. +5 Is Sandra in the bedroom? yes 3 +6 Mary put down the milk there. +7 John moved to the bedroom. +8 Is John in the bedroom? yes 7 +9 Sandra travelled to the office. +10 Daniel went to the garden. +11 Is Daniel in the hallway? no 10 +12 John journeyed to the office. +13 Sandra moved to the kitchen. +14 Is Daniel in the garden? yes 10 +15 Mary journeyed to the garden. +16 Mary went to the bathroom. +17 Is Sandra in the office? no 13 +1 John went back to the office. +2 Sandra moved to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Mary journeyed to the garden. +5 John moved to the garden. +6 Is John in the bathroom? no 5 +7 John grabbed the apple there. +8 Sandra went to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 John dropped the apple. +11 Mary picked up the apple there. +12 Is Sandra in the kitchen? no 8 +13 Mary discarded the apple. +14 Sandra moved to the garden. +15 Is Sandra in the garden? yes 14 +1 John grabbed the apple there. +2 Mary travelled to the hallway. +3 Is Mary in the hallway? yes 2 +4 John travelled to the bathroom. +5 Daniel moved to the bathroom. +6 Is Mary in the bedroom? no 2 +7 Mary went back to the bathroom. +8 Mary went to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Daniel went to the kitchen. +11 Mary journeyed to the bedroom. +12 Is Mary in the office? no 11 +13 Sandra journeyed to the hallway. +14 John discarded the apple. +15 Is Sandra in the hallway? yes 13 +1 John journeyed to the kitchen. +2 Mary picked up the football there. +3 Is John in the hallway? no 1 +4 John picked up the apple there. +5 John went to the office. +6 Is John in the office? yes 5 +7 Mary went to the hallway. +8 Mary left the football. +9 Is Mary in the hallway? yes 7 +10 John discarded the apple. +11 John took the milk there. +12 Is John in the bathroom? no 5 +13 John took the apple there. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Sandra picked up the football there. +2 Mary journeyed to the garden. +3 Is Mary in the hallway? no 2 +4 Mary went back to the office. +5 Sandra went to the office. +6 Is Mary in the office? yes 4 +7 Sandra dropped the football. +8 Mary journeyed to the hallway. +9 Is Sandra in the kitchen? no 5 +10 John journeyed to the hallway. +11 Mary travelled to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 John moved to the office. +14 Sandra moved to the bathroom. +15 Is John in the office? yes 13 +1 Mary travelled to the hallway. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 Sandra went back to the hallway. +5 John travelled to the garden. +6 Is John in the office? no 5 +7 John went to the bedroom. +8 Sandra went to the office. +9 Is Mary in the office? yes 2 +10 John went back to the hallway. +11 John went to the office. +12 Is John in the office? yes 11 +13 Mary travelled to the hallway. +14 Mary went back to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Sandra picked up the milk there. +2 Sandra put down the milk. +3 Mary journeyed to the office. +4 Sandra took the milk there. +5 Is Mary in the office? yes 3 +6 Mary got the apple there. +7 Mary moved to the bathroom. +8 Is Mary in the bathroom? yes 7 +9 Sandra put down the milk. +10 Mary left the apple. +11 Is Mary in the bathroom? yes 7 +12 Mary got the apple there. +13 Sandra took the milk there. +14 Is Mary in the bathroom? yes 7 +15 Sandra put down the milk. +16 John went to the office. +17 Is John in the office? yes 16 +1 John went to the bathroom. +2 John got the football there. +3 Is John in the bathroom? yes 1 +4 Mary went back to the bedroom. +5 Sandra journeyed to the bathroom. +6 Is Mary in the bedroom? yes 4 +7 Daniel went to the bedroom. +8 John went to the kitchen. +9 Is Sandra in the kitchen? no 5 +10 Mary went to the bathroom. +11 John took the milk there. +12 Is Daniel in the kitchen? no 7 +13 Sandra went back to the office. +14 Daniel moved to the office. +15 Is Daniel in the office? yes 14 +1 Sandra grabbed the milk there. +2 Sandra put down the milk. +3 Sandra journeyed to the hallway. +4 Daniel went to the bedroom. +5 Is Daniel in the bedroom? yes 4 +6 Daniel journeyed to the kitchen. +7 John travelled to the garden. +8 Is Daniel in the bedroom? no 6 +9 John picked up the football there. +10 John travelled to the bathroom. +11 Is Daniel in the garden? no 6 +12 Mary travelled to the office. +13 Daniel moved to the hallway. +14 Is John in the bathroom? yes 10 +15 Daniel went back to the bathroom. +16 Mary grabbed the milk there. +17 Is Mary in the bedroom? no 12 +1 Mary went to the bathroom. +2 Daniel grabbed the apple there. +3 Is Mary in the bathroom? yes 1 +4 Daniel went back to the bedroom. +5 Daniel got the milk there. +6 Is Daniel in the garden? no 4 +7 Daniel put down the milk. +8 Mary went to the garden. +9 Is Mary in the garden? yes 8 +10 Daniel grabbed the milk there. +11 Daniel travelled to the hallway. +12 Is Daniel in the bedroom? no 11 +13 Daniel took the football there. +14 Sandra went to the office. +15 Is Mary in the garden? yes 8 +1 Mary got the football there. +2 Sandra got the apple there. +3 Sandra discarded the apple. +4 Mary left the football. +5 Sandra grabbed the apple there. +6 Sandra left the apple. +7 Sandra picked up the apple there. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Mary moved to the garden. +11 Sandra travelled to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 John went back to the garden. +14 Mary journeyed to the office. +15 Is Mary in the office? yes 14 +16 John travelled to the office. +17 Sandra went back to the hallway. +18 Is John in the office? yes 16 +19 Sandra dropped the apple. +20 Sandra grabbed the apple there. +21 Is John in the kitchen? no 16 +1 Daniel went to the hallway. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John went to the kitchen. +5 Daniel took the football there. +6 Is Daniel in the hallway? no 2 +7 Sandra took the apple there. +8 John travelled to the garden. +9 Is John in the garden? yes 8 +10 John moved to the bedroom. +11 Daniel put down the football. +12 Is John in the bathroom? no 10 +13 Sandra discarded the apple. +14 John got the football there. +15 Is John in the bedroom? yes 10 +1 John moved to the bedroom. +2 John went to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel grabbed the football there. +5 Mary went back to the kitchen. +6 Is Mary in the bedroom? no 5 +7 Mary grabbed the apple there. +8 Daniel moved to the bedroom. +9 Is Mary in the kitchen? yes 5 +10 John travelled to the bathroom. +11 John journeyed to the hallway. +12 Is John in the hallway? yes 11 +13 Mary discarded the apple. +14 Mary travelled to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Mary moved to the bathroom. +2 Daniel moved to the bathroom. +3 Is Mary in the kitchen? no 1 +4 Sandra grabbed the apple there. +5 Mary went to the hallway. +6 Is Mary in the hallway? yes 5 +7 Daniel moved to the bedroom. +8 John picked up the football there. +9 Is Daniel in the garden? no 7 +10 Sandra went back to the kitchen. +11 Sandra travelled to the bedroom. +12 Is Mary in the kitchen? no 5 +13 John moved to the bedroom. +14 Mary journeyed to the office. +15 Is Sandra in the hallway? no 11 +1 Daniel got the milk there. +2 John moved to the bathroom. +3 Is John in the bathroom? yes 2 +4 Daniel travelled to the garden. +5 Daniel dropped the milk. +6 Is John in the hallway? no 2 +7 Sandra picked up the milk there. +8 Sandra went back to the bathroom. +9 Is Daniel in the garden? yes 4 +10 Sandra went back to the hallway. +11 Mary went to the hallway. +12 Is Mary in the garden? no 11 +13 John went back to the hallway. +14 Mary went back to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Sandra got the milk there. +2 Daniel went to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 John journeyed to the bathroom. +5 Daniel went to the office. +6 Is Daniel in the kitchen? no 5 +7 Sandra dropped the milk. +8 Sandra picked up the milk there. +9 Is John in the bedroom? no 4 +10 Sandra travelled to the bedroom. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 John moved to the bedroom. +14 John travelled to the garden. +15 Is John in the garden? yes 14 +1 Mary went to the bedroom. +2 John moved to the kitchen. +3 Is John in the office? no 2 +4 John travelled to the office. +5 Mary journeyed to the hallway. +6 Is John in the office? yes 4 +7 Sandra moved to the kitchen. +8 Daniel grabbed the apple there. +9 Is John in the kitchen? no 4 +10 John journeyed to the bathroom. +11 Daniel travelled to the kitchen. +12 Is Sandra in the hallway? no 7 +13 John went to the hallway. +14 Sandra moved to the garden. +15 Is John in the bedroom? no 13 +1 Sandra travelled to the bathroom. +2 Mary travelled to the garden. +3 Is Mary in the garden? yes 2 +4 John went to the bathroom. +5 Daniel moved to the bathroom. +6 Is Sandra in the bathroom? yes 1 +7 Sandra travelled to the bedroom. +8 Daniel went to the kitchen. +9 Is Mary in the garden? yes 2 +10 John journeyed to the hallway. +11 Mary journeyed to the bathroom. +12 Is Sandra in the bedroom? yes 7 +13 Daniel went back to the bathroom. +14 Sandra got the football there. +15 Is Mary in the bathroom? yes 11 +1 Mary travelled to the bedroom. +2 John went back to the bathroom. +3 Is John in the bathroom? yes 2 +4 Daniel went to the kitchen. +5 Sandra went back to the kitchen. +6 Is Mary in the office? no 1 +7 John travelled to the garden. +8 Sandra journeyed to the office. +9 Is John in the office? no 7 +10 Sandra went to the bedroom. +11 Daniel went back to the hallway. +12 Is Sandra in the kitchen? no 10 +13 Sandra took the milk there. +14 John went back to the hallway. +15 Is John in the hallway? yes 14 +1 John moved to the bathroom. +2 Sandra picked up the apple there. +3 Is John in the garden? no 1 +4 Mary went to the bedroom. +5 Mary moved to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary moved to the garden. +8 Sandra went to the bathroom. +9 Is Mary in the bathroom? no 7 +10 Mary grabbed the football there. +11 Sandra left the apple. +12 Is Mary in the garden? yes 7 +13 Daniel travelled to the garden. +14 Daniel moved to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Sandra moved to the office. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel journeyed to the kitchen. +5 John moved to the garden. +6 Is John in the garden? yes 5 +7 Mary travelled to the kitchen. +8 Sandra went to the bathroom. +9 Is Sandra in the office? no 8 +10 Mary journeyed to the hallway. +11 Sandra got the football there. +12 Is Mary in the bathroom? no 10 +13 Mary journeyed to the kitchen. +14 Daniel went back to the hallway. +15 Is Sandra in the bedroom? no 8 +1 Mary journeyed to the kitchen. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bathroom? no 2 +4 John got the apple there. +5 Sandra went back to the hallway. +6 Is Mary in the kitchen? yes 1 +7 John left the apple. +8 Sandra went back to the bedroom. +9 Is Daniel in the kitchen? no 2 +10 Sandra went to the kitchen. +11 Mary travelled to the office. +12 Is Mary in the office? yes 11 +13 John picked up the apple there. +14 John put down the apple. +15 Is Mary in the kitchen? no 11 +1 John moved to the hallway. +2 Sandra went back to the office. +3 Is John in the hallway? yes 1 +4 John grabbed the football there. +5 John journeyed to the office. +6 Is Sandra in the garden? no 2 +7 John took the apple there. +8 Mary went back to the office. +9 Is John in the office? yes 5 +10 John left the apple. +11 Daniel went back to the bathroom. +12 Is Mary in the office? yes 8 +13 John moved to the garden. +14 Sandra grabbed the apple there. +15 Is Mary in the office? yes 8 +1 Mary went back to the bathroom. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel travelled to the bedroom. +5 John journeyed to the bathroom. +6 Is Daniel in the bathroom? no 4 +7 John moved to the office. +8 John travelled to the bedroom. +9 Is John in the garden? no 8 +10 John travelled to the kitchen. +11 Sandra travelled to the hallway. +12 Is John in the kitchen? yes 10 +13 Mary travelled to the garden. +14 Sandra got the milk there. +15 Is Mary in the garden? yes 13 +1 Daniel travelled to the hallway. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel moved to the kitchen. +5 Sandra went to the bathroom. +6 Is Daniel in the office? no 4 +7 Sandra went to the kitchen. +8 Sandra took the milk there. +9 Is Daniel in the kitchen? yes 4 +10 John went back to the hallway. +11 Sandra put down the milk. +12 Is John in the hallway? yes 10 +13 Daniel took the milk there. +14 Mary moved to the hallway. +15 Is John in the kitchen? no 10 +1 Sandra went back to the hallway. +2 Mary went back to the garden. +3 Is Sandra in the hallway? yes 1 +4 Daniel took the football there. +5 Sandra travelled to the garden. +6 Is Sandra in the kitchen? no 5 +7 Mary moved to the bathroom. +8 John journeyed to the office. +9 Is Sandra in the garden? yes 5 +10 John went back to the garden. +11 Daniel dropped the football. +12 Is John in the hallway? no 10 +13 Mary went to the garden. +14 John went to the bathroom. +15 Is John in the bathroom? yes 14 +1 Mary picked up the football there. +2 Sandra travelled to the office. +3 Is Sandra in the garden? no 2 +4 Sandra travelled to the garden. +5 Sandra picked up the apple there. +6 Is Sandra in the garden? yes 4 +7 John went to the bathroom. +8 John journeyed to the bedroom. +9 Is John in the kitchen? no 8 +10 John journeyed to the garden. +11 Mary journeyed to the kitchen. +12 Is John in the bedroom? no 10 +13 Sandra travelled to the hallway. +14 Sandra discarded the apple. +15 Is John in the garden? yes 10 +1 John got the apple there. +2 John moved to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary journeyed to the hallway. +5 Sandra journeyed to the garden. +6 Is Sandra in the bathroom? no 5 +7 Mary journeyed to the bathroom. +8 Sandra went to the bedroom. +9 Is John in the bedroom? no 2 +10 Mary moved to the garden. +11 John went to the office. +12 Is John in the garden? no 11 +13 John travelled to the bathroom. +14 Daniel travelled to the office. +15 Is John in the office? no 13 +1 Daniel took the apple there. +2 John journeyed to the office. +3 Is John in the garden? no 2 +4 Sandra journeyed to the office. +5 Daniel put down the apple. +6 Is Sandra in the office? yes 4 +7 Sandra grabbed the milk there. +8 Sandra put down the milk. +9 Is John in the bathroom? no 2 +10 Sandra travelled to the hallway. +11 Mary went back to the garden. +12 Is Sandra in the hallway? yes 10 +13 Daniel took the apple there. +14 Sandra went to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Mary moved to the garden. +2 Mary journeyed to the kitchen. +3 Is Mary in the bedroom? no 2 +4 Mary went back to the bedroom. +5 Daniel went back to the office. +6 Is Mary in the kitchen? no 4 +7 Daniel got the apple there. +8 Daniel went to the kitchen. +9 Is Mary in the office? no 4 +10 Sandra went back to the kitchen. +11 Daniel left the apple. +12 Is Daniel in the hallway? no 8 +13 Sandra went to the bathroom. +14 John went back to the bathroom. +15 Is John in the office? no 14 +1 Sandra journeyed to the office. +2 Daniel took the apple there. +3 Is Sandra in the garden? no 1 +4 Sandra picked up the milk there. +5 Daniel went back to the garden. +6 Is Sandra in the office? yes 1 +7 Sandra put down the milk. +8 Sandra picked up the milk there. +9 Is Daniel in the kitchen? no 5 +10 Mary went to the bedroom. +11 Daniel went to the bedroom. +12 Is Mary in the bedroom? yes 10 +13 Daniel put down the apple. +14 Sandra discarded the milk. +15 Is Daniel in the bathroom? no 11 +1 John journeyed to the kitchen. +2 John travelled to the hallway. +3 Is John in the bathroom? no 2 +4 Daniel moved to the bathroom. +5 John went to the garden. +6 Is John in the garden? yes 5 +7 Daniel went to the hallway. +8 Daniel moved to the bathroom. +9 Is John in the bedroom? no 5 +10 John went to the office. +11 Sandra travelled to the bathroom. +12 Is Daniel in the bathroom? yes 8 +13 Mary went to the bathroom. +14 Mary moved to the kitchen. +15 Is Daniel in the hallway? no 8 +1 Sandra picked up the football there. +2 Sandra journeyed to the garden. +3 Is Sandra in the garden? yes 2 +4 Mary grabbed the apple there. +5 Daniel went to the hallway. +6 Is Daniel in the bathroom? no 5 +7 Mary travelled to the office. +8 John travelled to the garden. +9 Is Mary in the hallway? no 7 +10 John journeyed to the bedroom. +11 Sandra put down the football. +12 Is John in the garden? no 10 +13 Sandra journeyed to the hallway. +14 Sandra travelled to the kitchen. +15 Is John in the garden? no 10 +1 John moved to the office. +2 Sandra travelled to the garden. +3 Is John in the office? yes 1 +4 Daniel went to the garden. +5 Mary went to the garden. +6 Is John in the office? yes 1 +7 Daniel went to the bathroom. +8 Mary travelled to the bathroom. +9 Is Daniel in the bathroom? yes 7 +10 Sandra moved to the bedroom. +11 Sandra journeyed to the office. +12 Is Sandra in the office? yes 11 +13 Mary journeyed to the hallway. +14 Mary took the milk there. +15 Is Sandra in the office? yes 11 +1 Daniel grabbed the milk there. +2 Daniel travelled to the kitchen. +3 Is Daniel in the bedroom? no 2 +4 Daniel discarded the milk. +5 Mary travelled to the office. +6 Is Daniel in the bathroom? no 2 +7 Mary travelled to the bedroom. +8 Daniel journeyed to the garden. +9 Is Daniel in the bathroom? no 8 +10 Daniel went to the bedroom. +11 Mary journeyed to the garden. +12 Is Mary in the garden? yes 11 +13 Daniel went to the hallway. +14 Daniel moved to the office. +15 Is Daniel in the bedroom? no 14 +1 Daniel went back to the bathroom. +2 Sandra got the football there. +3 Is Daniel in the bathroom? yes 1 +4 Mary journeyed to the bathroom. +5 John journeyed to the bedroom. +6 Is Daniel in the bathroom? yes 1 +7 Sandra moved to the bedroom. +8 Mary journeyed to the office. +9 Is Mary in the office? yes 8 +10 Daniel went back to the kitchen. +11 Mary moved to the kitchen. +12 Is Sandra in the bedroom? yes 7 +13 Sandra put down the football there. +14 Mary went to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra moved to the kitchen. +2 Mary went back to the kitchen. +3 Is Mary in the bathroom? no 2 +4 Sandra travelled to the bedroom. +5 John took the football there. +6 Is Sandra in the kitchen? no 4 +7 John put down the football. +8 Sandra went to the kitchen. +9 Is Sandra in the hallway? no 8 +10 Daniel travelled to the bathroom. +11 John travelled to the office. +12 Is John in the office? yes 11 +13 Daniel took the milk there. +14 Daniel got the apple there. +15 Is John in the hallway? no 11 +1 John moved to the office. +2 Sandra grabbed the football there. +3 Is John in the bathroom? no 1 +4 Sandra dropped the football. +5 Mary grabbed the milk there. +6 Is John in the garden? no 1 +7 John went to the hallway. +8 Mary moved to the bathroom. +9 Is John in the hallway? yes 7 +10 Mary went back to the kitchen. +11 Mary discarded the milk. +12 Is Mary in the kitchen? yes 10 +13 John journeyed to the bathroom. +14 Sandra went back to the office. +15 Is Mary in the bathroom? no 10 +1 Sandra travelled to the bedroom. +2 John took the football there. +3 Is Sandra in the bedroom? yes 1 +4 Sandra moved to the kitchen. +5 Sandra took the apple there. +6 Is Sandra in the hallway? no 4 +7 Mary journeyed to the kitchen. +8 Sandra put down the apple there. +9 Is Sandra in the kitchen? yes 4 +10 Mary moved to the bedroom. +11 Daniel went back to the garden. +12 Is Mary in the hallway? no 10 +13 Sandra went back to the hallway. +14 Daniel took the milk there. +15 Is Mary in the garden? no 10 +1 John went back to the kitchen. +2 Sandra journeyed to the bathroom. +3 Is John in the kitchen? yes 1 +4 John took the milk there. +5 Sandra got the apple there. +6 Is John in the kitchen? yes 1 +7 Sandra discarded the apple. +8 Sandra journeyed to the garden. +9 Is Sandra in the bathroom? no 8 +10 Daniel went back to the bedroom. +11 Daniel grabbed the football there. +12 Is Daniel in the garden? no 10 +13 John discarded the milk. +14 John grabbed the milk there. +15 Is Daniel in the bedroom? yes 10 +1 Mary journeyed to the hallway. +2 Mary took the apple there. +3 Is Mary in the office? no 1 +4 John travelled to the bedroom. +5 Mary journeyed to the bathroom. +6 Is Mary in the garden? no 5 +7 Mary discarded the apple. +8 Mary got the apple there. +9 Is Mary in the hallway? no 5 +10 John went back to the garden. +11 Sandra got the football there. +12 Is Mary in the bathroom? yes 5 +13 Mary dropped the apple. +14 Daniel picked up the milk there. +15 Is John in the bathroom? no 10 +1 Mary journeyed to the bathroom. +2 Mary travelled to the office. +3 Is Mary in the office? yes 2 +4 John moved to the garden. +5 Sandra grabbed the football there. +6 Is Mary in the office? yes 2 +7 Sandra travelled to the office. +8 Sandra went to the hallway. +9 Is John in the garden? yes 4 +10 Mary moved to the garden. +11 Sandra went to the kitchen. +12 Is Sandra in the bathroom? no 11 +13 Sandra journeyed to the bathroom. +14 Sandra grabbed the milk there. +15 Is Sandra in the bedroom? no 13 +1 John journeyed to the office. +2 Mary journeyed to the bathroom. +3 Is John in the office? yes 1 +4 Sandra moved to the bathroom. +5 Daniel grabbed the milk there. +6 Is John in the office? yes 1 +7 John went back to the bedroom. +8 Sandra travelled to the office. +9 Is Sandra in the office? yes 8 +10 Mary moved to the bedroom. +11 John moved to the bathroom. +12 Is John in the bedroom? no 11 +13 Daniel went back to the kitchen. +14 John journeyed to the kitchen. +15 Is Daniel in the bedroom? no 13 +1 Daniel travelled to the garden. +2 Daniel got the milk there. +3 Is Daniel in the garden? yes 1 +4 Daniel put down the milk. +5 Sandra got the milk there. +6 Is Daniel in the garden? yes 1 +7 Daniel travelled to the kitchen. +8 John travelled to the bathroom. +9 Is Daniel in the garden? no 7 +10 Mary travelled to the hallway. +11 Sandra moved to the bedroom. +12 Is Sandra in the office? no 11 +13 Sandra grabbed the apple there. +14 John travelled to the bedroom. +15 Is Mary in the hallway? yes 10 +1 Mary grabbed the milk there. +2 John went to the garden. +3 Is John in the kitchen? no 2 +4 John moved to the kitchen. +5 Mary put down the milk. +6 Is John in the hallway? no 4 +7 Sandra moved to the garden. +8 Sandra travelled to the bathroom. +9 Is John in the bedroom? no 4 +10 Mary picked up the milk there. +11 John journeyed to the hallway. +12 Is Sandra in the kitchen? no 8 +13 Daniel went to the office. +14 Daniel travelled to the bedroom. +15 Is John in the bedroom? no 11 +1 John went back to the hallway. +2 John grabbed the milk there. +3 Is John in the bathroom? no 1 +4 Daniel took the football there. +5 John put down the milk. +6 Is John in the hallway? yes 1 +7 John went to the office. +8 Daniel dropped the football there. +9 Is John in the garden? no 7 +10 Daniel got the football there. +11 John travelled to the bedroom. +12 Is John in the office? no 11 +13 Daniel discarded the football. +14 John journeyed to the garden. +15 Is John in the garden? yes 14 +1 Mary travelled to the garden. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 John grabbed the football there. +5 Daniel went back to the garden. +6 Is Daniel in the kitchen? no 5 +7 John moved to the hallway. +8 John got the milk there. +9 Is Daniel in the garden? yes 5 +10 Daniel went to the bedroom. +11 Mary travelled to the bathroom. +12 Is John in the bathroom? no 7 +13 John left the milk. +14 John moved to the bathroom. +15 Is Daniel in the kitchen? no 10 +1 John moved to the office. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary went to the garden. +5 Sandra took the apple there. +6 Is John in the office? yes 1 +7 John moved to the hallway. +8 John journeyed to the garden. +9 Is Mary in the bathroom? no 4 +10 Mary journeyed to the office. +11 Daniel travelled to the hallway. +12 Is Mary in the office? yes 10 +13 Daniel went back to the bedroom. +14 Sandra left the apple there. +15 Is Daniel in the bathroom? no 13 +1 John travelled to the garden. +2 Daniel went back to the kitchen. +3 Is John in the bedroom? no 1 +4 Daniel moved to the hallway. +5 Daniel picked up the football there. +6 Is Daniel in the hallway? yes 4 +7 Sandra journeyed to the kitchen. +8 Daniel left the football. +9 Is Sandra in the office? no 7 +10 John went back to the kitchen. +11 Daniel took the football there. +12 Is John in the kitchen? yes 10 +13 Daniel travelled to the bedroom. +14 John moved to the hallway. +15 Is John in the office? no 14 +1 Daniel took the milk there. +2 Sandra travelled to the kitchen. +3 Is Sandra in the garden? no 2 +4 Daniel moved to the office. +5 Daniel moved to the bathroom. +6 Is Sandra in the kitchen? yes 2 +7 John went to the bathroom. +8 Sandra moved to the hallway. +9 Is Sandra in the kitchen? no 8 +10 Daniel went back to the office. +11 Daniel grabbed the football there. +12 Is Daniel in the office? yes 10 +13 John moved to the hallway. +14 Daniel discarded the football. +15 Is Sandra in the hallway? yes 8 +1 Sandra went to the kitchen. +2 Sandra went back to the garden. +3 Is Sandra in the office? no 2 +4 Sandra went to the office. +5 Mary moved to the office. +6 Is Sandra in the office? yes 4 +7 Mary went to the hallway. +8 Sandra went back to the garden. +9 Is Mary in the hallway? yes 7 +10 John moved to the bedroom. +11 Daniel took the apple there. +12 Is Mary in the garden? no 7 +13 Daniel picked up the milk there. +14 Daniel discarded the apple. +15 Is Sandra in the garden? yes 8 +1 Mary travelled to the garden. +2 Mary grabbed the apple there. +3 Is Mary in the garden? yes 1 +4 Mary dropped the apple. +5 Mary went to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Sandra travelled to the hallway. +8 Sandra went back to the garden. +9 Is Mary in the kitchen? yes 5 +10 Sandra took the milk there. +11 Sandra went to the bathroom. +12 Is Sandra in the kitchen? no 11 +13 Daniel journeyed to the bathroom. +14 Mary travelled to the garden. +15 Is Daniel in the kitchen? no 13 +1 Daniel went to the office. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 John journeyed to the hallway. +5 John moved to the bathroom. +6 Is Daniel in the office? yes 1 +7 Daniel went back to the kitchen. +8 Sandra journeyed to the kitchen. +9 Is Daniel in the bedroom? no 7 +10 Daniel moved to the bathroom. +11 Mary travelled to the garden. +12 Is Daniel in the bathroom? yes 10 +13 John moved to the garden. +14 John journeyed to the hallway. +15 Is Daniel in the office? no 10 +1 Daniel journeyed to the office. +2 John picked up the milk there. +3 Is Daniel in the office? yes 1 +4 John dropped the milk. +5 John grabbed the apple there. +6 Is Daniel in the garden? no 1 +7 John journeyed to the bedroom. +8 Daniel travelled to the bedroom. +9 Is John in the office? no 7 +10 John left the apple. +11 Daniel picked up the apple there. +12 Is John in the bedroom? yes 7 +13 Daniel went to the hallway. +14 Daniel left the apple there. +15 Is Daniel in the hallway? yes 13 +1 Daniel journeyed to the garden. +2 Daniel journeyed to the hallway. +3 Is Daniel in the bedroom? no 2 +4 Sandra went to the bathroom. +5 Sandra picked up the apple there. +6 Is Sandra in the bathroom? yes 4 +7 Sandra travelled to the kitchen. +8 Sandra put down the apple. +9 Is Daniel in the hallway? yes 2 +10 Sandra got the football there. +11 Sandra went back to the hallway. +12 Is Sandra in the office? no 11 +13 Sandra put down the football. +14 Daniel moved to the garden. +15 Is Sandra in the hallway? yes 11 +1 Mary took the football there. +2 Daniel went back to the office. +3 Is Daniel in the office? yes 2 +4 John journeyed to the garden. +5 Mary journeyed to the bathroom. +6 Is John in the garden? yes 4 +7 Sandra got the apple there. +8 Sandra discarded the apple there. +9 Is John in the bedroom? no 4 +10 Daniel grabbed the apple there. +11 John travelled to the office. +12 Is Mary in the bedroom? no 5 +13 Daniel travelled to the hallway. +14 Mary put down the football. +15 Is John in the office? yes 11 +1 Sandra took the milk there. +2 Daniel got the apple there. +3 Daniel took the football there. +4 John went to the garden. +5 Is John in the garden? yes 4 +6 Daniel dropped the apple there. +7 Sandra went to the hallway. +8 Is Sandra in the bathroom? no 7 +9 Sandra picked up the apple there. +10 Sandra journeyed to the bathroom. +11 Is Sandra in the bathroom? yes 10 +12 John went to the bedroom. +13 Mary moved to the bedroom. +14 Is Sandra in the bathroom? yes 10 +15 Sandra went to the kitchen. +16 Daniel put down the football there. +17 Is Sandra in the office? no 15 +1 Mary went to the bathroom. +2 John grabbed the football there. +3 Is Mary in the garden? no 1 +4 John left the football. +5 John journeyed to the bathroom. +6 Is Mary in the office? no 1 +7 Daniel travelled to the kitchen. +8 Mary travelled to the kitchen. +9 Is Daniel in the bathroom? no 7 +10 Sandra journeyed to the hallway. +11 Daniel travelled to the hallway. +12 Is Daniel in the garden? no 11 +13 John went back to the office. +14 John went to the bedroom. +15 Is John in the bedroom? yes 14 +1 Sandra went back to the hallway. +2 John journeyed to the kitchen. +3 Is Sandra in the bathroom? no 1 +4 Daniel grabbed the football there. +5 Daniel journeyed to the bedroom. +6 Is Sandra in the hallway? yes 1 +7 Daniel dropped the football. +8 Daniel grabbed the football there. +9 Is Daniel in the bedroom? yes 5 +10 Daniel went to the office. +11 Daniel discarded the football. +12 Is Daniel in the office? yes 10 +13 Mary went back to the hallway. +14 Sandra went to the garden. +15 Is Mary in the hallway? yes 13 +1 John travelled to the hallway. +2 Mary got the apple there. +3 Is John in the kitchen? no 1 +4 Mary moved to the bathroom. +5 Mary put down the apple. +6 Is Mary in the garden? no 4 +7 Mary took the apple there. +8 Daniel moved to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 John travelled to the kitchen. +11 Mary dropped the apple. +12 Is John in the kitchen? yes 10 +13 Mary travelled to the hallway. +14 John journeyed to the garden. +15 Is John in the garden? yes 14 +1 John moved to the office. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 John travelled to the garden. +5 Daniel journeyed to the garden. +6 Is John in the bathroom? no 4 +7 Mary went to the hallway. +8 John went back to the bedroom. +9 Is Mary in the hallway? yes 7 +10 Sandra journeyed to the bathroom. +11 Sandra went to the garden. +12 Is Sandra in the garden? yes 11 +13 Sandra travelled to the office. +14 Daniel went to the bedroom. +15 Is Sandra in the garden? no 13 +1 Daniel got the milk there. +2 Daniel left the milk. +3 Daniel journeyed to the hallway. +4 John journeyed to the hallway. +5 Is John in the hallway? yes 4 +6 Mary journeyed to the hallway. +7 John moved to the office. +8 Is Mary in the hallway? yes 6 +9 Daniel went back to the bedroom. +10 Sandra travelled to the bathroom. +11 Is Mary in the hallway? yes 6 +12 Sandra journeyed to the bedroom. +13 Sandra got the apple there. +14 Is Daniel in the bedroom? yes 9 +15 Sandra left the apple. +16 Sandra went back to the office. +17 Is Sandra in the office? yes 16 +1 Mary took the football there. +2 Mary went back to the garden. +3 Is Mary in the garden? yes 2 +4 Sandra moved to the garden. +5 John journeyed to the hallway. +6 Is Sandra in the kitchen? no 4 +7 Daniel travelled to the bedroom. +8 Mary journeyed to the bathroom. +9 Is John in the kitchen? no 5 +10 Daniel grabbed the milk there. +11 Mary dropped the football. +12 Is Mary in the bathroom? yes 8 +13 Mary journeyed to the garden. +14 Daniel took the apple there. +15 Is Mary in the garden? yes 13 +1 Daniel went to the garden. +2 John got the apple there. +3 Is Daniel in the bedroom? no 1 +4 Sandra moved to the hallway. +5 John went to the office. +6 Is John in the office? yes 5 +7 Daniel went to the kitchen. +8 Daniel journeyed to the garden. +9 Is Sandra in the kitchen? no 4 +10 Mary went to the bathroom. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 Daniel grabbed the football there. +14 John got the milk there. +15 Is Daniel in the garden? yes 8 +1 Daniel got the milk there. +2 Mary went back to the kitchen. +3 Is Mary in the hallway? no 2 +4 Daniel went to the bedroom. +5 Mary went back to the hallway. +6 Is Daniel in the bedroom? yes 4 +7 Daniel moved to the kitchen. +8 Daniel journeyed to the bedroom. +9 Is Mary in the hallway? yes 5 +10 Daniel dropped the milk. +11 Daniel took the milk there. +12 Is Daniel in the hallway? no 8 +13 Daniel grabbed the football there. +14 Mary went back to the bathroom. +15 Is Mary in the hallway? no 14 +1 John took the football there. +2 Sandra moved to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John moved to the office. +5 Mary got the milk there. +6 Is Sandra in the hallway? yes 2 +7 Mary went to the garden. +8 Mary put down the milk. +9 Is John in the office? yes 4 +10 Mary journeyed to the bedroom. +11 Sandra went to the office. +12 Is Mary in the garden? no 10 +13 John moved to the bathroom. +14 John travelled to the kitchen. +15 Is Mary in the hallway? no 10 +1 John got the football there. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John put down the football. +5 Daniel went back to the garden. +6 Is Daniel in the bathroom? no 5 +7 John moved to the bathroom. +8 Sandra moved to the bedroom. +9 Is John in the bathroom? yes 7 +10 John moved to the office. +11 Mary travelled to the hallway. +12 Is Daniel in the kitchen? no 5 +13 Mary went to the kitchen. +14 Daniel went to the bathroom. +15 Is Mary in the bathroom? no 13 +1 John took the football there. +2 Sandra took the milk there. +3 Sandra put down the milk. +4 Sandra went to the office. +5 Is Sandra in the office? yes 4 +6 Mary journeyed to the hallway. +7 John put down the football. +8 Is Sandra in the office? yes 4 +9 John went to the bathroom. +10 Daniel journeyed to the office. +11 Is Daniel in the office? yes 10 +12 John got the apple there. +13 Mary journeyed to the kitchen. +14 Is John in the bedroom? no 9 +15 John discarded the apple there. +16 Sandra went back to the bedroom. +17 Is Sandra in the office? no 16 +1 Mary grabbed the apple there. +2 Daniel journeyed to the office. +3 Is Daniel in the office? yes 2 +4 John went back to the bedroom. +5 Mary travelled to the hallway. +6 Is Daniel in the office? yes 2 +7 Sandra travelled to the bathroom. +8 John went back to the garden. +9 Is Mary in the bedroom? no 5 +10 Sandra moved to the hallway. +11 Sandra went to the bathroom. +12 Is Mary in the hallway? yes 5 +13 Sandra picked up the milk there. +14 Mary dropped the apple. +15 Is John in the garden? yes 8 +1 Sandra went to the kitchen. +2 Mary grabbed the football there. +3 Is Sandra in the bathroom? no 1 +4 John journeyed to the hallway. +5 Mary left the football. +6 Is Sandra in the bathroom? no 1 +7 Mary grabbed the football there. +8 Sandra travelled to the office. +9 Is John in the garden? no 4 +10 John journeyed to the garden. +11 Sandra moved to the bedroom. +12 Is John in the garden? yes 10 +13 Sandra went back to the garden. +14 John journeyed to the kitchen. +15 Is Sandra in the garden? yes 13 +1 John took the apple there. +2 Sandra went to the bedroom. +3 Is Sandra in the garden? no 2 +4 Sandra travelled to the bathroom. +5 Mary grabbed the football there. +6 Is Sandra in the bedroom? no 4 +7 Mary discarded the football. +8 Mary travelled to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary journeyed to the bathroom. +11 Sandra took the milk there. +12 Is Mary in the bedroom? no 10 +13 Sandra went to the bedroom. +14 John left the apple. +15 Is Sandra in the bedroom? yes 13 +1 Mary journeyed to the office. +2 John went back to the kitchen. +3 Is John in the kitchen? yes 2 +4 Mary got the apple there. +5 Mary left the apple. +6 Is John in the kitchen? yes 2 +7 Mary got the apple there. +8 Sandra picked up the milk there. +9 Is John in the kitchen? yes 2 +10 Mary journeyed to the kitchen. +11 Daniel journeyed to the hallway. +12 Is Daniel in the hallway? yes 11 +13 John went to the hallway. +14 Mary dropped the apple. +15 Is Daniel in the hallway? yes 11 +1 Daniel took the milk there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Daniel left the milk. +5 Sandra went to the hallway. +6 Is Sandra in the hallway? yes 5 +7 Mary moved to the hallway. +8 Sandra went back to the office. +9 Is Sandra in the office? yes 8 +10 Daniel went back to the office. +11 Sandra grabbed the apple there. +12 Is Sandra in the office? yes 8 +13 Daniel took the football there. +14 John moved to the hallway. +15 Is Sandra in the garden? no 8 +1 Sandra got the milk there. +2 Sandra dropped the milk. +3 Daniel travelled to the office. +4 Sandra picked up the milk there. +5 Is Daniel in the office? yes 3 +6 John journeyed to the kitchen. +7 John moved to the bedroom. +8 Is John in the bedroom? yes 7 +9 Sandra dropped the milk there. +10 John went back to the bathroom. +11 Is John in the bathroom? yes 10 +12 John moved to the hallway. +13 John moved to the bathroom. +14 Is John in the office? no 13 +15 John moved to the hallway. +16 Sandra got the milk there. +17 Is John in the kitchen? no 15 +1 Sandra moved to the hallway. +2 Sandra moved to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Daniel journeyed to the bathroom. +5 Daniel moved to the hallway. +6 Is Sandra in the kitchen? no 2 +7 Mary moved to the garden. +8 Daniel journeyed to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 John went back to the office. +11 Mary travelled to the office. +12 Is John in the hallway? no 10 +13 Mary got the football there. +14 John moved to the garden. +15 Is Daniel in the hallway? no 8 +1 Daniel picked up the football there. +2 Daniel left the football. +3 Mary got the apple there. +4 John got the football there. +5 Sandra travelled to the bedroom. +6 Mary got the milk there. +7 Is Sandra in the bathroom? no 5 +8 John discarded the football. +9 John journeyed to the kitchen. +10 Is Sandra in the bathroom? no 5 +11 Daniel got the football there. +12 Mary discarded the milk there. +13 Is John in the kitchen? yes 9 +14 Mary went back to the office. +15 John moved to the bedroom. +16 Is John in the bathroom? no 15 +17 Mary journeyed to the bedroom. +18 Mary put down the apple. +19 Is Mary in the bedroom? yes 17 +1 Sandra took the milk there. +2 Sandra discarded the milk. +3 Daniel travelled to the kitchen. +4 Mary went back to the kitchen. +5 Is Daniel in the kitchen? yes 3 +6 Mary went to the bathroom. +7 John journeyed to the hallway. +8 Is Mary in the bathroom? yes 6 +9 Sandra grabbed the apple there. +10 Sandra left the apple. +11 Is Mary in the bedroom? no 6 +12 Daniel went to the bathroom. +13 Daniel travelled to the office. +14 Is Daniel in the bathroom? no 13 +15 Sandra picked up the apple there. +16 Sandra journeyed to the bedroom. +17 Is Sandra in the bedroom? yes 16 +1 John went back to the bedroom. +2 John picked up the apple there. +3 Is John in the bedroom? yes 1 +4 Sandra got the milk there. +5 Sandra went back to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra travelled to the office. +8 Sandra went back to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Sandra put down the milk. +11 Sandra took the milk there. +12 Is Sandra in the bedroom? no 8 +13 Sandra travelled to the bathroom. +14 John went to the bathroom. +15 Is John in the office? no 14 +1 Daniel picked up the football there. +2 Daniel went to the office. +3 Is Daniel in the bedroom? no 2 +4 Daniel went back to the kitchen. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Sandra went to the kitchen. +8 Daniel left the football. +9 Is Sandra in the office? no 7 +10 Daniel got the football there. +11 John got the milk there. +12 Is Daniel in the bedroom? yes 5 +13 Daniel went to the garden. +14 Daniel left the football. +15 Is Daniel in the garden? yes 13 +1 Mary took the milk there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bathroom? no 2 +4 Mary left the milk. +5 John moved to the hallway. +6 Is Sandra in the bedroom? yes 2 +7 Mary grabbed the milk there. +8 Mary left the milk. +9 Is Sandra in the bedroom? yes 2 +10 Daniel went to the bathroom. +11 Mary grabbed the milk there. +12 Is Daniel in the bedroom? no 10 +13 Sandra travelled to the kitchen. +14 Mary travelled to the hallway. +15 Is Mary in the bathroom? no 14 +1 Mary grabbed the football there. +2 Daniel travelled to the office. +3 Is Daniel in the hallway? no 2 +4 John picked up the apple there. +5 Mary took the milk there. +6 Is Daniel in the kitchen? no 2 +7 John went to the bedroom. +8 Mary put down the football. +9 Is John in the bedroom? yes 7 +10 John left the apple. +11 Mary dropped the milk. +12 Is John in the bedroom? yes 7 +13 Mary went back to the bedroom. +14 John picked up the apple there. +15 Is Mary in the bedroom? yes 13 +1 Sandra got the football there. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary went back to the office. +5 Sandra went to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 John journeyed to the bedroom. +8 John went to the hallway. +9 Is Mary in the office? yes 4 +10 Sandra dropped the football. +11 Mary travelled to the hallway. +12 Is Mary in the bathroom? no 11 +13 Sandra journeyed to the kitchen. +14 Sandra journeyed to the bedroom. +15 Is John in the hallway? yes 8 +1 Mary moved to the bathroom. +2 Daniel journeyed to the bathroom. +3 Is Mary in the bedroom? no 1 +4 Daniel journeyed to the garden. +5 Sandra travelled to the hallway. +6 Is Daniel in the kitchen? no 4 +7 Sandra went to the bathroom. +8 Daniel moved to the office. +9 Is Daniel in the office? yes 8 +10 Mary picked up the milk there. +11 Mary moved to the garden. +12 Is Mary in the hallway? no 11 +13 Sandra journeyed to the hallway. +14 Mary moved to the office. +15 Is Mary in the office? yes 14 +1 John travelled to the bedroom. +2 Mary went back to the garden. +3 Is John in the kitchen? no 1 +4 Daniel went to the garden. +5 Daniel went back to the bedroom. +6 Is Daniel in the garden? no 5 +7 Mary went back to the bathroom. +8 Mary journeyed to the garden. +9 Is Mary in the garden? yes 8 +10 Mary journeyed to the hallway. +11 Mary moved to the bedroom. +12 Is Daniel in the bedroom? yes 5 +13 John went back to the garden. +14 Daniel moved to the hallway. +15 Is Mary in the hallway? no 11 +1 Sandra moved to the bedroom. +2 Sandra travelled to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 John journeyed to the kitchen. +5 Daniel went back to the bathroom. +6 Is Sandra in the bedroom? no 2 +7 John went back to the office. +8 John grabbed the football there. +9 Is John in the hallway? no 7 +10 John discarded the football. +11 John moved to the bedroom. +12 Is Daniel in the bathroom? yes 5 +13 Sandra moved to the bathroom. +14 John took the milk there. +15 Is John in the bedroom? yes 11 +1 Mary got the apple there. +2 John took the milk there. +3 Sandra travelled to the office. +4 John discarded the milk. +5 Is Sandra in the bathroom? no 3 +6 John went to the hallway. +7 Mary journeyed to the bedroom. +8 Is Mary in the bedroom? yes 7 +9 Sandra travelled to the bedroom. +10 Mary journeyed to the hallway. +11 Is Mary in the office? no 10 +12 Sandra moved to the kitchen. +13 Mary discarded the apple. +14 Is Sandra in the hallway? no 12 +15 Sandra went to the bedroom. +16 Sandra journeyed to the garden. +17 Is Sandra in the hallway? no 16 +1 John picked up the apple there. +2 John went to the office. +3 Is John in the office? yes 2 +4 John put down the apple. +5 John took the apple there. +6 Is John in the bedroom? no 2 +7 John discarded the apple. +8 Mary moved to the bathroom. +9 Is John in the office? yes 2 +10 John grabbed the apple there. +11 John dropped the apple. +12 Is Mary in the garden? no 8 +13 Mary moved to the kitchen. +14 Sandra went to the garden. +15 Is Mary in the kitchen? yes 13 +1 John went back to the kitchen. +2 Daniel went back to the kitchen. +3 Is John in the kitchen? yes 1 +4 Sandra went back to the kitchen. +5 Daniel went back to the office. +6 Is Sandra in the hallway? no 4 +7 Daniel took the apple there. +8 Daniel left the apple there. +9 Is Sandra in the bedroom? no 4 +10 Sandra moved to the garden. +11 Mary travelled to the garden. +12 Is Mary in the garden? yes 11 +13 Daniel got the apple there. +14 Sandra went to the office. +15 Is Mary in the garden? yes 11 +1 John journeyed to the bathroom. +2 Mary moved to the bedroom. +3 Is John in the bathroom? yes 1 +4 Sandra got the football there. +5 Sandra moved to the kitchen. +6 Is Mary in the bedroom? yes 2 +7 Sandra left the football. +8 Daniel travelled to the garden. +9 Is Sandra in the office? no 5 +10 Sandra grabbed the football there. +11 John went to the office. +12 Is Sandra in the kitchen? yes 5 +13 Sandra journeyed to the hallway. +14 John journeyed to the hallway. +15 Is John in the bedroom? no 14 +1 Mary picked up the milk there. +2 Mary picked up the apple there. +3 John journeyed to the bedroom. +4 Mary discarded the apple. +5 Is John in the bedroom? yes 3 +6 Mary got the apple there. +7 Daniel went to the bedroom. +8 Is Daniel in the bedroom? yes 7 +9 Daniel journeyed to the bathroom. +10 Daniel grabbed the football there. +11 Is Daniel in the bathroom? yes 9 +12 Mary put down the milk there. +13 Sandra moved to the garden. +14 Is Daniel in the bathroom? yes 9 +15 John moved to the office. +16 Daniel travelled to the kitchen. +17 Is John in the office? yes 15 +1 John went back to the hallway. +2 Sandra grabbed the football there. +3 Is John in the kitchen? no 1 +4 Daniel travelled to the garden. +5 Daniel grabbed the milk there. +6 Is John in the hallway? yes 1 +7 Mary travelled to the hallway. +8 Mary went back to the bedroom. +9 Is Mary in the hallway? no 8 +10 Daniel moved to the office. +11 Daniel left the milk there. +12 Is Daniel in the office? yes 10 +13 Sandra journeyed to the kitchen. +14 Sandra dropped the football. +15 Is Sandra in the bathroom? no 13 +1 Daniel travelled to the kitchen. +2 Mary travelled to the bedroom. +3 Is Daniel in the kitchen? yes 1 +4 Daniel moved to the bedroom. +5 John journeyed to the hallway. +6 Is Daniel in the bedroom? yes 4 +7 Mary got the football there. +8 Sandra travelled to the bathroom. +9 Is John in the garden? no 5 +10 Daniel went to the hallway. +11 Mary dropped the football. +12 Is Daniel in the office? no 10 +13 John moved to the bedroom. +14 John journeyed to the kitchen. +15 Is John in the office? no 14 +1 Sandra went to the office. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Daniel went back to the office. +5 Sandra got the milk there. +6 Is Sandra in the bedroom? no 2 +7 Sandra discarded the milk. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the bedroom? no 8 +10 Daniel moved to the garden. +11 Mary went to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Sandra moved to the hallway. +14 John journeyed to the garden. +15 Is Mary in the kitchen? yes 11 +1 Mary went to the garden. +2 Mary journeyed to the office. +3 Is Mary in the bathroom? no 2 +4 Mary went to the kitchen. +5 John went to the bedroom. +6 Is Mary in the kitchen? yes 4 +7 Daniel got the milk there. +8 Mary travelled to the bedroom. +9 Is Mary in the kitchen? no 8 +10 Daniel travelled to the garden. +11 Daniel moved to the office. +12 Is John in the bedroom? yes 5 +13 Daniel journeyed to the garden. +14 Mary journeyed to the bathroom. +15 Is Daniel in the garden? yes 13 +1 John moved to the bathroom. +2 John went to the office. +3 Is John in the bathroom? no 2 +4 Sandra travelled to the bathroom. +5 Sandra took the milk there. +6 Is John in the office? yes 2 +7 Daniel went back to the hallway. +8 Daniel went to the office. +9 Is Daniel in the garden? no 8 +10 Sandra discarded the milk. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 Mary journeyed to the bedroom. +14 Daniel journeyed to the garden. +15 Is Daniel in the bedroom? no 14 +1 Mary went back to the hallway. +2 John went to the bedroom. +3 Is Mary in the hallway? yes 1 +4 Mary picked up the football there. +5 Mary discarded the football. +6 Is Mary in the hallway? yes 1 +7 Daniel grabbed the football there. +8 Sandra went to the bathroom. +9 Is John in the bathroom? no 2 +10 Mary moved to the bathroom. +11 Mary went to the kitchen. +12 Is Sandra in the bathroom? yes 8 +13 Mary travelled to the hallway. +14 Mary moved to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Mary went back to the hallway. +2 Mary went to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel went to the office. +5 Mary went back to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra journeyed to the bedroom. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 Mary moved to the office. +11 John journeyed to the garden. +12 Is Mary in the bedroom? no 10 +13 John went to the bathroom. +14 Daniel journeyed to the garden. +15 Is Mary in the office? yes 10 +1 Mary got the apple there. +2 John travelled to the kitchen. +3 Is John in the kitchen? yes 2 +4 Mary left the apple there. +5 Sandra got the milk there. +6 Is John in the kitchen? yes 2 +7 Mary went back to the hallway. +8 John moved to the bedroom. +9 Is John in the bedroom? yes 8 +10 Daniel moved to the bathroom. +11 Daniel travelled to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 John took the apple there. +14 John travelled to the bathroom. +15 Is Daniel in the bedroom? yes 11 +1 Sandra went back to the hallway. +2 John moved to the bathroom. +3 Is Sandra in the hallway? yes 1 +4 Sandra journeyed to the kitchen. +5 John journeyed to the office. +6 Is John in the garden? no 5 +7 Mary travelled to the office. +8 Mary moved to the garden. +9 Is John in the office? yes 5 +10 John journeyed to the hallway. +11 John moved to the garden. +12 Is John in the garden? yes 11 +13 Daniel went back to the garden. +14 John moved to the bedroom. +15 Is Daniel in the kitchen? no 13 +1 Daniel took the football there. +2 Sandra grabbed the milk there. +3 Daniel took the apple there. +4 John moved to the garden. +5 Is John in the kitchen? no 4 +6 Daniel moved to the bathroom. +7 John went to the hallway. +8 Is Daniel in the bathroom? yes 6 +9 Sandra put down the milk. +10 Sandra grabbed the milk there. +11 Is Daniel in the bathroom? yes 6 +12 Sandra moved to the hallway. +13 Sandra dropped the milk there. +14 Is John in the hallway? yes 7 +15 Sandra got the milk there. +16 Mary went back to the kitchen. +17 Is Mary in the kitchen? yes 16 +1 Sandra journeyed to the kitchen. +2 John picked up the apple there. +3 Is Sandra in the hallway? no 1 +4 John moved to the bathroom. +5 John travelled to the office. +6 Is John in the office? yes 5 +7 John put down the apple. +8 Sandra journeyed to the office. +9 Is John in the office? yes 5 +10 Daniel took the apple there. +11 Daniel discarded the apple. +12 Is John in the hallway? no 5 +13 Mary journeyed to the bedroom. +14 Sandra got the apple there. +15 Is Mary in the office? no 13 +1 Daniel grabbed the milk there. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 John moved to the garden. +5 John picked up the apple there. +6 Is John in the bedroom? no 4 +7 John discarded the apple. +8 John grabbed the apple there. +9 Is John in the garden? yes 4 +10 Daniel went to the bathroom. +11 Daniel grabbed the football there. +12 Is Daniel in the office? no 10 +13 Daniel left the football. +14 Sandra moved to the hallway. +15 Is Sandra in the bathroom? no 14 +1 Sandra went back to the office. +2 Mary took the milk there. +3 Is Sandra in the bathroom? no 1 +4 Daniel travelled to the bedroom. +5 Sandra went to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra picked up the football there. +8 Mary went back to the garden. +9 Is Sandra in the bathroom? yes 5 +10 Mary dropped the milk. +11 Daniel moved to the garden. +12 Is Daniel in the kitchen? no 11 +13 Sandra left the football. +14 Mary travelled to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Daniel picked up the football there. +2 Daniel left the football. +3 Daniel moved to the hallway. +4 Daniel journeyed to the garden. +5 Is Daniel in the garden? yes 4 +6 John travelled to the bedroom. +7 Sandra moved to the garden. +8 Is Daniel in the garden? yes 4 +9 John took the football there. +10 Daniel went back to the bedroom. +11 Is Daniel in the kitchen? no 10 +12 John went to the office. +13 John got the apple there. +14 Is Daniel in the bedroom? yes 10 +15 Sandra journeyed to the bedroom. +16 John moved to the hallway. +17 Is John in the hallway? yes 16 +1 Sandra went back to the bathroom. +2 Sandra went to the office. +3 Is Sandra in the bathroom? no 2 +4 John moved to the hallway. +5 Mary grabbed the apple there. +6 Is Sandra in the office? yes 2 +7 Mary moved to the hallway. +8 Mary put down the apple there. +9 Is Sandra in the office? yes 2 +10 John travelled to the garden. +11 Mary went back to the garden. +12 Is Mary in the bathroom? no 11 +13 Daniel went back to the garden. +14 Mary journeyed to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Daniel journeyed to the garden. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Mary went back to the kitchen. +5 Sandra moved to the hallway. +6 Is Daniel in the bedroom? no 2 +7 Mary travelled to the office. +8 Mary got the football there. +9 Is Daniel in the hallway? no 2 +10 Mary put down the football. +11 John went to the bedroom. +12 Is Mary in the hallway? no 7 +13 John journeyed to the bathroom. +14 Mary moved to the bathroom. +15 Is John in the bathroom? yes 13 +1 Mary travelled to the garden. +2 Daniel went to the garden. +3 Is Daniel in the office? no 2 +4 Daniel journeyed to the kitchen. +5 John moved to the bedroom. +6 Is Mary in the hallway? no 1 +7 John went back to the garden. +8 Daniel went to the garden. +9 Is Daniel in the hallway? no 8 +10 John went to the bathroom. +11 John got the milk there. +12 Is Daniel in the office? no 8 +13 John went back to the office. +14 Sandra moved to the bathroom. +15 Is Sandra in the bedroom? no 14 +1 Daniel went to the bathroom. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary went to the bedroom. +5 John grabbed the football there. +6 Is Daniel in the bedroom? yes 2 +7 Sandra went to the bathroom. +8 John left the football. +9 Is Sandra in the bathroom? yes 7 +10 Daniel moved to the bathroom. +11 Mary moved to the office. +12 Is Sandra in the office? no 7 +13 Sandra moved to the office. +14 Daniel journeyed to the hallway. +15 Is Daniel in the hallway? yes 14 +1 Daniel travelled to the garden. +2 Mary travelled to the hallway. +3 Is Mary in the hallway? yes 2 +4 Mary grabbed the football there. +5 John travelled to the bedroom. +6 Is Mary in the bathroom? no 2 +7 Mary dropped the football. +8 Sandra grabbed the milk there. +9 Is Mary in the office? no 2 +10 John journeyed to the garden. +11 Sandra discarded the milk there. +12 Is John in the garden? yes 10 +13 Mary journeyed to the bathroom. +14 Mary got the milk there. +15 Is John in the garden? yes 10 +1 Mary travelled to the hallway. +2 Mary moved to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel went to the bathroom. +5 Sandra took the football there. +6 Is Mary in the bedroom? yes 2 +7 Sandra discarded the football there. +8 Mary went to the hallway. +9 Is Mary in the hallway? yes 8 +10 John moved to the kitchen. +11 John journeyed to the hallway. +12 Is John in the office? no 11 +13 Sandra got the football there. +14 Sandra put down the football. +15 Is John in the garden? no 11 +1 Sandra picked up the football there. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the bedroom? no 2 +4 John moved to the garden. +5 Daniel travelled to the garden. +6 Is Daniel in the hallway? no 5 +7 Sandra travelled to the office. +8 Mary went to the office. +9 Is Daniel in the hallway? no 5 +10 Daniel travelled to the bedroom. +11 Sandra journeyed to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Daniel grabbed the milk there. +14 John went to the bedroom. +15 Is Mary in the office? yes 8 +1 Daniel travelled to the bathroom. +2 Daniel moved to the garden. +3 Is Daniel in the bedroom? no 2 +4 Mary took the football there. +5 Mary travelled to the bathroom. +6 Is Daniel in the garden? yes 2 +7 Mary travelled to the garden. +8 Mary travelled to the hallway. +9 Is Mary in the kitchen? no 8 +10 Daniel got the apple there. +11 John got the milk there. +12 Is Mary in the office? no 8 +13 Sandra went to the kitchen. +14 Daniel discarded the apple. +15 Is Sandra in the bedroom? no 13 +1 Sandra moved to the office. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the hallway? no 2 +4 John went back to the kitchen. +5 Sandra picked up the apple there. +6 Is Sandra in the office? yes 1 +7 Sandra went back to the bathroom. +8 Sandra travelled to the bedroom. +9 Is Sandra in the kitchen? no 8 +10 Sandra grabbed the milk there. +11 Sandra journeyed to the garden. +12 Is Sandra in the kitchen? no 11 +13 Mary went to the office. +14 John went to the garden. +15 Is Sandra in the kitchen? no 11 +1 Sandra travelled to the bathroom. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Sandra got the milk there. +5 Daniel picked up the football there. +6 Is Daniel in the hallway? no 2 +7 Daniel put down the football. +8 Sandra travelled to the hallway. +9 Is Sandra in the garden? no 8 +10 Daniel journeyed to the kitchen. +11 Sandra travelled to the bedroom. +12 Is Daniel in the bathroom? no 10 +13 Sandra picked up the football there. +14 Sandra put down the football. +15 Is Sandra in the bedroom? yes 11 +1 John journeyed to the kitchen. +2 John went back to the office. +3 Is John in the bathroom? no 2 +4 Sandra took the apple there. +5 Mary went to the bedroom. +6 Is John in the office? yes 2 +7 Mary went back to the office. +8 Daniel took the football there. +9 Is John in the office? yes 2 +10 Sandra went to the garden. +11 John moved to the bedroom. +12 Is Mary in the hallway? no 7 +13 John moved to the office. +14 John went back to the kitchen. +15 Is John in the kitchen? yes 14 +1 Sandra travelled to the hallway. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra moved to the office. +5 Sandra moved to the bedroom. +6 Is Sandra in the kitchen? no 5 +7 Sandra went to the garden. +8 Daniel took the milk there. +9 Is Sandra in the office? no 7 +10 Daniel discarded the milk. +11 Daniel picked up the milk there. +12 Is Sandra in the hallway? no 7 +13 Daniel put down the milk. +14 John went back to the office. +15 Is John in the office? yes 14 +1 Sandra grabbed the apple there. +2 Sandra went back to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra travelled to the office. +5 John went back to the bathroom. +6 Is Sandra in the office? yes 4 +7 Daniel journeyed to the garden. +8 Sandra went to the kitchen. +9 Is John in the bathroom? yes 5 +10 Daniel moved to the kitchen. +11 Sandra went back to the office. +12 Is Daniel in the bathroom? no 10 +13 Mary moved to the hallway. +14 Sandra moved to the hallway. +15 Is Sandra in the bedroom? no 14 +1 John travelled to the bedroom. +2 Mary grabbed the milk there. +3 Is John in the bedroom? yes 1 +4 Mary dropped the milk there. +5 John went back to the bathroom. +6 Is John in the garden? no 5 +7 John got the milk there. +8 Daniel went to the kitchen. +9 Is Daniel in the bathroom? no 8 +10 Mary moved to the office. +11 Mary travelled to the kitchen. +12 Is Mary in the hallway? no 11 +13 Mary moved to the hallway. +14 Daniel journeyed to the bathroom. +15 Is Mary in the hallway? yes 13 +1 John travelled to the office. +2 Mary went back to the bedroom. +3 Is John in the hallway? no 1 +4 Mary picked up the milk there. +5 Mary discarded the milk. +6 Is Mary in the bedroom? yes 2 +7 Mary picked up the milk there. +8 Sandra journeyed to the kitchen. +9 Is Mary in the bedroom? yes 2 +10 Mary moved to the bathroom. +11 Mary grabbed the apple there. +12 Is Mary in the hallway? no 10 +13 John went back to the hallway. +14 John journeyed to the office. +15 Is John in the office? yes 14 +1 Sandra travelled to the kitchen. +2 John took the milk there. +3 Is Sandra in the bedroom? no 1 +4 Daniel moved to the bedroom. +5 Daniel travelled to the garden. +6 Is Sandra in the kitchen? yes 1 +7 Sandra picked up the football there. +8 Mary went back to the bedroom. +9 Is Daniel in the garden? yes 5 +10 Sandra left the football. +11 Sandra got the football there. +12 Is Mary in the bathroom? no 8 +13 Sandra dropped the football there. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the garden? no 14 +1 Mary went back to the bathroom. +2 Sandra went to the office. +3 Is Mary in the hallway? no 1 +4 Mary went back to the bedroom. +5 Daniel journeyed to the bedroom. +6 Is Sandra in the garden? no 2 +7 Sandra went to the bedroom. +8 Daniel moved to the office. +9 Is Daniel in the office? yes 8 +10 Daniel took the apple there. +11 Daniel dropped the apple there. +12 Is Sandra in the bedroom? yes 7 +13 Sandra went to the office. +14 Sandra journeyed to the bathroom. +15 Is Sandra in the bathroom? yes 14 +1 Daniel got the apple there. +2 Mary went back to the bedroom. +3 Is Mary in the bathroom? no 2 +4 John went to the kitchen. +5 John took the milk there. +6 Is Mary in the bedroom? yes 2 +7 Mary moved to the office. +8 Mary went back to the garden. +9 Is Mary in the garden? yes 8 +10 Daniel travelled to the hallway. +11 Mary travelled to the hallway. +12 Is Mary in the kitchen? no 11 +13 Daniel took the football there. +14 John discarded the milk. +15 Is Mary in the bedroom? no 11 +1 Sandra journeyed to the bathroom. +2 John travelled to the garden. +3 Is Sandra in the bathroom? yes 1 +4 Daniel picked up the milk there. +5 Mary got the football there. +6 Is Sandra in the bathroom? yes 1 +7 Mary moved to the hallway. +8 Daniel went back to the office. +9 Is John in the garden? yes 2 +10 Daniel went back to the bedroom. +11 Mary discarded the football. +12 Is Daniel in the bedroom? yes 10 +13 Sandra moved to the hallway. +14 John journeyed to the bedroom. +15 Is Daniel in the garden? no 10 +1 Mary went to the kitchen. +2 Mary travelled to the garden. +3 Is Mary in the garden? yes 2 +4 Mary got the apple there. +5 Mary went back to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Daniel travelled to the garden. +8 Daniel journeyed to the bathroom. +9 Is Daniel in the office? no 8 +10 Mary put down the apple. +11 Daniel journeyed to the garden. +12 Is Daniel in the garden? yes 11 +13 Mary moved to the bedroom. +14 Mary moved to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 John went to the bedroom. +2 Mary travelled to the bathroom. +3 Is John in the garden? no 1 +4 Mary went back to the kitchen. +5 Sandra travelled to the office. +6 Is Mary in the garden? no 4 +7 Daniel went back to the hallway. +8 Sandra took the apple there. +9 Is Sandra in the hallway? no 5 +10 Sandra left the apple. +11 Sandra took the apple there. +12 Is Daniel in the kitchen? no 7 +13 Sandra went to the kitchen. +14 John moved to the hallway. +15 Is John in the hallway? yes 14 +1 John went back to the garden. +2 John went back to the office. +3 Is John in the office? yes 2 +4 Mary took the apple there. +5 Daniel journeyed to the garden. +6 Is Daniel in the bedroom? no 5 +7 Daniel travelled to the bedroom. +8 Sandra went to the office. +9 Is John in the bathroom? no 2 +10 Daniel travelled to the garden. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the office? no 11 +13 John journeyed to the garden. +14 John travelled to the office. +15 Is Sandra in the kitchen? no 11 +1 Mary went to the office. +2 Mary moved to the garden. +3 Is Mary in the office? no 2 +4 John moved to the hallway. +5 John moved to the office. +6 Is Mary in the garden? yes 2 +7 John took the football there. +8 Sandra travelled to the bedroom. +9 Is John in the office? yes 5 +10 Sandra journeyed to the bathroom. +11 Daniel travelled to the office. +12 Is Daniel in the hallway? no 11 +13 Daniel went to the hallway. +14 Daniel travelled to the office. +15 Is Daniel in the office? yes 14 +1 Sandra travelled to the office. +2 Sandra moved to the garden. +3 Is Sandra in the hallway? no 2 +4 Mary moved to the garden. +5 John picked up the football there. +6 Is Sandra in the garden? yes 2 +7 John dropped the football. +8 Sandra journeyed to the office. +9 Is Sandra in the bathroom? no 8 +10 Mary travelled to the kitchen. +11 John travelled to the bedroom. +12 Is Mary in the hallway? no 10 +13 John travelled to the kitchen. +14 John moved to the bathroom. +15 Is John in the bathroom? yes 14 +1 Mary journeyed to the hallway. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the bedroom? no 2 +4 Sandra got the apple there. +5 Mary went back to the kitchen. +6 Is Sandra in the garden? no 2 +7 Mary went back to the hallway. +8 Sandra left the apple. +9 Is Mary in the hallway? yes 7 +10 John travelled to the kitchen. +11 John grabbed the apple there. +12 Is John in the hallway? no 10 +13 Daniel travelled to the garden. +14 Daniel journeyed to the office. +15 Is Daniel in the office? yes 14 +1 Mary travelled to the kitchen. +2 John went to the bedroom. +3 Is John in the bedroom? yes 2 +4 Daniel travelled to the hallway. +5 Daniel went to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Sandra travelled to the kitchen. +8 Mary travelled to the garden. +9 Is Daniel in the bathroom? no 5 +10 Mary grabbed the apple there. +11 John moved to the hallway. +12 Is Daniel in the kitchen? yes 5 +13 John went back to the bathroom. +14 Mary dropped the apple there. +15 Is John in the bathroom? yes 13 +1 Sandra travelled to the kitchen. +2 Mary went back to the garden. +3 Is Mary in the garden? yes 2 +4 John picked up the milk there. +5 Daniel grabbed the apple there. +6 Is Mary in the garden? yes 2 +7 Mary grabbed the football there. +8 John put down the milk. +9 Is Mary in the hallway? no 2 +10 Sandra went to the office. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 Mary put down the football. +14 Sandra moved to the bathroom. +15 Is Sandra in the office? no 14 +1 Mary grabbed the milk there. +2 Mary discarded the milk. +3 Daniel moved to the hallway. +4 John picked up the football there. +5 Is Daniel in the hallway? yes 3 +6 Sandra picked up the milk there. +7 Sandra discarded the milk. +8 Is Daniel in the hallway? yes 3 +9 Sandra journeyed to the garden. +10 Mary took the milk there. +11 Is Sandra in the garden? yes 9 +12 John journeyed to the garden. +13 John picked up the apple there. +14 Is John in the garden? yes 12 +15 Mary left the milk. +16 Sandra moved to the bathroom. +17 Is John in the hallway? no 12 +1 Daniel moved to the garden. +2 Mary journeyed to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Daniel got the football there. +5 Daniel moved to the kitchen. +6 Is Daniel in the bedroom? no 5 +7 John went to the garden. +8 Mary moved to the kitchen. +9 Is Mary in the garden? no 8 +10 Mary took the milk there. +11 Mary dropped the milk. +12 Is Daniel in the kitchen? yes 5 +13 Daniel travelled to the bathroom. +14 John travelled to the office. +15 Is Mary in the office? no 8 +1 John picked up the milk there. +2 John went to the kitchen. +3 Is John in the bedroom? no 2 +4 John left the milk. +5 John grabbed the milk there. +6 Is John in the kitchen? yes 2 +7 John put down the milk. +8 Daniel went to the garden. +9 Is Daniel in the office? no 8 +10 John grabbed the milk there. +11 Daniel moved to the hallway. +12 Is Daniel in the kitchen? no 11 +13 Mary travelled to the bedroom. +14 Mary journeyed to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary moved to the office. +2 Mary moved to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 John journeyed to the garden. +5 John journeyed to the kitchen. +6 Is John in the office? no 5 +7 John went to the garden. +8 Daniel journeyed to the kitchen. +9 Is John in the bathroom? no 7 +10 Sandra got the milk there. +11 Mary travelled to the garden. +12 Is John in the garden? yes 7 +13 John journeyed to the kitchen. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra grabbed the football there. +2 Sandra went back to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra got the apple there. +5 Mary went to the bedroom. +6 Is Sandra in the garden? yes 2 +7 Sandra discarded the football. +8 Sandra dropped the apple. +9 Is Sandra in the garden? yes 2 +10 John journeyed to the kitchen. +11 Sandra picked up the football there. +12 Is John in the hallway? no 10 +13 Mary grabbed the milk there. +14 Mary travelled to the garden. +15 Is Mary in the garden? yes 14 +1 John took the milk there. +2 Mary grabbed the apple there. +3 Mary went back to the office. +4 Daniel went to the garden. +5 Is Daniel in the garden? yes 4 +6 Daniel went back to the kitchen. +7 John put down the milk. +8 Is Daniel in the kitchen? yes 6 +9 Sandra travelled to the garden. +10 John got the milk there. +11 Is Daniel in the kitchen? yes 6 +12 Mary discarded the apple. +13 John went to the kitchen. +14 Is Sandra in the hallway? no 9 +15 Mary moved to the kitchen. +16 Daniel went back to the office. +17 Is Mary in the garden? no 15 +1 John went back to the bathroom. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Daniel moved to the bathroom. +5 Daniel moved to the garden. +6 Is John in the garden? yes 2 +7 John journeyed to the bathroom. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Daniel moved to the bedroom. +11 Daniel went to the office. +12 Is John in the bathroom? yes 7 +13 Mary went to the office. +14 Mary grabbed the apple there. +15 Is Daniel in the office? yes 11 +1 Mary journeyed to the garden. +2 Mary travelled to the hallway. +3 Is Mary in the kitchen? no 2 +4 Daniel moved to the garden. +5 Daniel went to the hallway. +6 Is Mary in the hallway? yes 2 +7 Sandra travelled to the bedroom. +8 John got the apple there. +9 Is Sandra in the garden? no 7 +10 John moved to the bedroom. +11 Daniel got the football there. +12 Is John in the bedroom? yes 10 +13 Daniel put down the football. +14 John put down the apple. +15 Is John in the kitchen? no 10 +1 John went back to the garden. +2 John journeyed to the bedroom. +3 Is John in the hallway? no 2 +4 Daniel travelled to the garden. +5 Mary journeyed to the bedroom. +6 Is John in the bedroom? yes 2 +7 Daniel got the apple there. +8 John went back to the hallway. +9 Is John in the garden? no 8 +10 Daniel dropped the apple. +11 John moved to the garden. +12 Is John in the garden? yes 11 +13 John travelled to the hallway. +14 Sandra travelled to the bathroom. +15 Is John in the hallway? yes 13 +1 Mary took the football there. +2 Sandra grabbed the milk there. +3 Mary left the football. +4 Daniel travelled to the garden. +5 Is Daniel in the bedroom? no 4 +6 Daniel journeyed to the hallway. +7 Sandra put down the milk. +8 Is Daniel in the bathroom? no 6 +9 Mary grabbed the football there. +10 John went back to the bedroom. +11 Is Daniel in the kitchen? no 6 +12 Daniel went to the garden. +13 Sandra went to the bedroom. +14 Is John in the office? no 10 +15 Mary put down the football. +16 Daniel moved to the office. +17 Is Sandra in the hallway? no 13 +1 Mary went back to the office. +2 Mary journeyed to the garden. +3 Is Mary in the garden? yes 2 +4 John got the football there. +5 Mary went back to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra went to the hallway. +8 John got the apple there. +9 Is Mary in the bathroom? yes 5 +10 John went to the bedroom. +11 Sandra went to the office. +12 Is Sandra in the office? yes 11 +13 John dropped the football. +14 Mary went to the office. +15 Is John in the garden? no 10 +1 Daniel went to the kitchen. +2 Sandra grabbed the milk there. +3 Is Daniel in the garden? no 1 +4 Daniel travelled to the office. +5 Sandra put down the milk. +6 Is Daniel in the office? yes 4 +7 John journeyed to the office. +8 Sandra took the milk there. +9 Is John in the office? yes 7 +10 Daniel journeyed to the bedroom. +11 Mary went to the garden. +12 Is John in the kitchen? no 7 +13 Mary went to the kitchen. +14 Sandra went to the hallway. +15 Is Mary in the kitchen? yes 13 +1 Daniel went back to the office. +2 John took the milk there. +3 Is Daniel in the kitchen? no 1 +4 Daniel grabbed the football there. +5 Sandra went back to the garden. +6 Is Daniel in the kitchen? no 1 +7 John journeyed to the office. +8 Sandra moved to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Daniel left the football. +11 Sandra travelled to the office. +12 Is Sandra in the office? yes 11 +13 Daniel picked up the football there. +14 John put down the milk there. +15 Is Sandra in the hallway? no 11 +1 Daniel travelled to the bedroom. +2 Daniel picked up the football there. +3 Is Daniel in the bedroom? yes 1 +4 John travelled to the kitchen. +5 Mary went back to the garden. +6 Is John in the bathroom? no 4 +7 Sandra took the milk there. +8 Mary journeyed to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 John went to the hallway. +11 Sandra discarded the milk there. +12 Is John in the hallway? yes 10 +13 Sandra went to the kitchen. +14 John went to the kitchen. +15 Is Sandra in the kitchen? yes 13 +1 Sandra journeyed to the kitchen. +2 Daniel travelled to the bedroom. +3 Is Sandra in the kitchen? yes 1 +4 John went to the office. +5 Mary went back to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Sandra travelled to the bedroom. +8 Daniel journeyed to the kitchen. +9 Is Daniel in the office? no 8 +10 Mary journeyed to the bathroom. +11 Mary went back to the garden. +12 Is Mary in the hallway? no 11 +13 Mary moved to the office. +14 Mary went back to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra went back to the office. +2 Mary moved to the office. +3 Is Mary in the kitchen? no 2 +4 Sandra moved to the hallway. +5 Sandra went to the garden. +6 Is Sandra in the garden? yes 5 +7 Sandra grabbed the milk there. +8 John went back to the hallway. +9 Is John in the hallway? yes 8 +10 John took the apple there. +11 John journeyed to the kitchen. +12 Is Sandra in the bedroom? no 5 +13 Mary went to the bathroom. +14 Mary got the football there. +15 Is John in the kitchen? yes 11 +1 Sandra moved to the office. +2 Daniel moved to the bathroom. +3 Is Sandra in the garden? no 1 +4 John got the apple there. +5 John discarded the apple. +6 Is Daniel in the garden? no 2 +7 John travelled to the bathroom. +8 Mary travelled to the garden. +9 Is John in the bathroom? yes 7 +10 Daniel went back to the kitchen. +11 Sandra travelled to the hallway. +12 Is Sandra in the bedroom? no 11 +13 Mary took the milk there. +14 Sandra picked up the apple there. +15 Is Daniel in the bathroom? no 10 +1 John grabbed the football there. +2 John left the football there. +3 Sandra moved to the kitchen. +4 John went back to the garden. +5 Is John in the office? no 4 +6 Daniel took the football there. +7 John went back to the hallway. +8 Is John in the bathroom? no 7 +9 Mary travelled to the bedroom. +10 Mary went back to the bathroom. +11 Is John in the hallway? yes 7 +12 Mary went back to the hallway. +13 Mary went back to the kitchen. +14 Is Mary in the kitchen? yes 13 +15 Daniel travelled to the bathroom. +16 John went back to the bathroom. +17 Is Mary in the hallway? no 13 +1 John moved to the bedroom. +2 John travelled to the bathroom. +3 Is John in the bathroom? yes 2 +4 Sandra took the football there. +5 Daniel went back to the bedroom. +6 Is John in the office? no 2 +7 Sandra dropped the football. +8 John moved to the kitchen. +9 Is John in the kitchen? yes 8 +10 Sandra picked up the apple there. +11 Daniel travelled to the hallway. +12 Is Daniel in the kitchen? no 11 +13 Daniel picked up the milk there. +14 Daniel left the milk. +15 Is Daniel in the bathroom? no 11 +1 John travelled to the office. +2 Daniel picked up the football there. +3 Is John in the office? yes 1 +4 John went back to the hallway. +5 Daniel put down the football there. +6 Is John in the hallway? yes 4 +7 Daniel grabbed the milk there. +8 Sandra travelled to the bedroom. +9 Is John in the hallway? yes 4 +10 Daniel got the apple there. +11 John travelled to the bedroom. +12 Is John in the bedroom? yes 11 +13 John moved to the office. +14 John moved to the hallway. +15 Is John in the kitchen? no 14 +1 Mary went to the bathroom. +2 Sandra journeyed to the garden. +3 Is Mary in the bathroom? yes 1 +4 Mary picked up the milk there. +5 Mary put down the milk. +6 Is Sandra in the hallway? no 2 +7 Mary journeyed to the office. +8 Mary went back to the hallway. +9 Is Mary in the garden? no 8 +10 John moved to the hallway. +11 Daniel travelled to the hallway. +12 Is Daniel in the hallway? yes 11 +13 Sandra got the apple there. +14 Daniel journeyed to the kitchen. +15 Is Mary in the bedroom? no 8 +1 Sandra went to the bedroom. +2 Sandra went to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Sandra travelled to the bathroom. +5 John journeyed to the bathroom. +6 Is Sandra in the kitchen? no 4 +7 Mary took the apple there. +8 John travelled to the kitchen. +9 Is John in the office? no 8 +10 Mary travelled to the kitchen. +11 John journeyed to the garden. +12 Is John in the bathroom? no 11 +13 Mary discarded the apple there. +14 John moved to the hallway. +15 Is John in the hallway? yes 14 +1 Mary picked up the apple there. +2 Mary went back to the office. +3 Is Mary in the bathroom? no 2 +4 Sandra journeyed to the garden. +5 Daniel moved to the hallway. +6 Is Mary in the hallway? no 2 +7 Daniel journeyed to the kitchen. +8 Mary travelled to the bathroom. +9 Is Daniel in the bathroom? no 7 +10 Mary travelled to the garden. +11 Mary dropped the apple. +12 Is Mary in the hallway? no 10 +13 Mary got the apple there. +14 Mary dropped the apple. +15 Is Mary in the garden? yes 10 +1 Mary moved to the hallway. +2 Sandra moved to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel travelled to the bathroom. +5 Daniel went to the garden. +6 Is Daniel in the garden? yes 5 +7 Daniel moved to the hallway. +8 Daniel went back to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Sandra journeyed to the kitchen. +11 Mary travelled to the kitchen. +12 Is Sandra in the kitchen? yes 10 +13 Daniel journeyed to the hallway. +14 Mary moved to the bathroom. +15 Is Daniel in the hallway? yes 13 +1 Sandra moved to the bedroom. +2 Mary travelled to the bedroom. +3 Is Sandra in the bedroom? yes 1 +4 Sandra moved to the bathroom. +5 Mary moved to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 John travelled to the bedroom. +8 Mary got the milk there. +9 Is John in the bedroom? yes 7 +10 Daniel moved to the office. +11 Daniel went back to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Mary discarded the milk. +14 Daniel went to the kitchen. +15 Is Daniel in the garden? no 14 +1 Daniel journeyed to the hallway. +2 John went to the bedroom. +3 Is John in the bedroom? yes 2 +4 John got the milk there. +5 Daniel went back to the kitchen. +6 Is John in the garden? no 2 +7 Daniel went back to the office. +8 Daniel moved to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Mary journeyed to the office. +11 Daniel moved to the garden. +12 Is Daniel in the garden? yes 11 +13 John went to the garden. +14 Mary went back to the hallway. +15 Is Daniel in the office? no 11 +1 Daniel went to the bedroom. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Mary moved to the kitchen. +5 Mary journeyed to the garden. +6 Is Mary in the hallway? no 5 +7 Sandra got the football there. +8 Mary went to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary grabbed the apple there. +11 Sandra journeyed to the hallway. +12 Is Mary in the bedroom? no 8 +13 Sandra put down the football. +14 Daniel went back to the kitchen. +15 Is Mary in the bathroom? yes 8 +1 John grabbed the milk there. +2 Daniel got the apple there. +3 Sandra moved to the bedroom. +4 John journeyed to the garden. +5 Is Sandra in the bathroom? no 3 +6 John discarded the milk. +7 John got the milk there. +8 Is Sandra in the kitchen? no 3 +9 Mary journeyed to the bedroom. +10 Daniel journeyed to the bedroom. +11 Is Mary in the garden? no 9 +12 Sandra travelled to the office. +13 Sandra went to the kitchen. +14 Is Daniel in the bedroom? yes 10 +15 Daniel left the apple. +16 Sandra travelled to the bathroom. +17 Is Sandra in the office? no 16 +1 Mary went to the hallway. +2 Sandra travelled to the bedroom. +3 Is Mary in the hallway? yes 1 +4 Mary picked up the football there. +5 Sandra went back to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra took the milk there. +8 Sandra discarded the milk there. +9 Is Sandra in the bathroom? yes 5 +10 Sandra moved to the garden. +11 John travelled to the bathroom. +12 Is Sandra in the office? no 10 +13 Mary went back to the kitchen. +14 Mary moved to the garden. +15 Is Sandra in the hallway? no 10 +1 Sandra journeyed to the kitchen. +2 Sandra picked up the milk there. +3 Is Sandra in the kitchen? yes 1 +4 Daniel went to the garden. +5 Daniel grabbed the apple there. +6 Is Sandra in the bedroom? no 1 +7 Daniel put down the apple. +8 John picked up the apple there. +9 Is Daniel in the bedroom? no 4 +10 John dropped the apple there. +11 Daniel travelled to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John took the apple there. +14 Mary went back to the garden. +15 Is Mary in the bedroom? no 14 +1 Mary took the apple there. +2 Sandra took the milk there. +3 Sandra travelled to the kitchen. +4 John moved to the bathroom. +5 Is John in the kitchen? no 4 +6 Sandra went to the hallway. +7 Sandra went to the garden. +8 Is Sandra in the office? no 7 +9 John went to the kitchen. +10 Mary left the apple. +11 Is John in the hallway? no 9 +12 Sandra left the milk. +13 Mary got the apple there. +14 Is Sandra in the garden? yes 7 +15 Sandra picked up the milk there. +16 Daniel journeyed to the garden. +17 Is Daniel in the garden? yes 16 +1 Daniel went to the bedroom. +2 Mary got the apple there. +3 Is Daniel in the bedroom? yes 1 +4 Mary journeyed to the hallway. +5 John went to the kitchen. +6 Is Daniel in the bedroom? yes 1 +7 Daniel took the milk there. +8 John journeyed to the bedroom. +9 Is Mary in the office? no 4 +10 Daniel left the milk. +11 Mary put down the apple. +12 Is John in the bedroom? yes 8 +13 John picked up the milk there. +14 John journeyed to the hallway. +15 Is John in the hallway? yes 14 +1 Daniel journeyed to the kitchen. +2 Sandra took the milk there. +3 Is Daniel in the kitchen? yes 1 +4 Daniel took the football there. +5 Daniel dropped the football. +6 Is Daniel in the bathroom? no 1 +7 Mary moved to the office. +8 Mary travelled to the bathroom. +9 Is Mary in the hallway? no 8 +10 Sandra discarded the milk. +11 Daniel picked up the football there. +12 Is Mary in the bathroom? yes 8 +13 Mary travelled to the garden. +14 Sandra took the milk there. +15 Is Mary in the garden? yes 13 +1 Mary moved to the bedroom. +2 Daniel moved to the garden. +3 Is Daniel in the office? no 2 +4 John moved to the office. +5 Mary travelled to the office. +6 Is Daniel in the garden? yes 2 +7 Mary went to the bedroom. +8 Daniel picked up the football there. +9 Is Mary in the hallway? no 7 +10 Daniel went back to the bedroom. +11 Mary travelled to the bathroom. +12 Is Mary in the hallway? no 11 +13 Mary went back to the office. +14 Daniel put down the football. +15 Is Daniel in the office? no 10 +1 Daniel went back to the hallway. +2 John grabbed the apple there. +3 Is Daniel in the bathroom? no 1 +4 John dropped the apple. +5 Daniel journeyed to the kitchen. +6 Is Daniel in the bedroom? no 5 +7 John picked up the apple there. +8 Daniel journeyed to the hallway. +9 Is Daniel in the kitchen? no 8 +10 John left the apple. +11 Daniel journeyed to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John moved to the office. +14 Sandra went to the kitchen. +15 Is Sandra in the garden? no 14 +1 John moved to the garden. +2 Sandra journeyed to the office. +3 Is Sandra in the hallway? no 2 +4 Daniel went to the bathroom. +5 John grabbed the football there. +6 Is Sandra in the bathroom? no 2 +7 John dropped the football there. +8 John grabbed the football there. +9 Is Sandra in the bedroom? no 2 +10 John went to the hallway. +11 Daniel took the apple there. +12 Is John in the garden? no 10 +13 John journeyed to the office. +14 John put down the football. +15 Is John in the office? yes 13 +1 Daniel went back to the hallway. +2 Daniel went to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John moved to the office. +5 Sandra moved to the office. +6 Is Daniel in the bathroom? yes 2 +7 Sandra travelled to the bedroom. +8 Daniel moved to the hallway. +9 Is Daniel in the hallway? yes 8 +10 Daniel went to the office. +11 Mary grabbed the milk there. +12 Is Daniel in the office? yes 10 +13 Mary left the milk. +14 Mary moved to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Mary journeyed to the garden. +2 Daniel travelled to the bathroom. +3 Is Mary in the garden? yes 1 +4 John moved to the hallway. +5 Daniel went to the hallway. +6 Is John in the hallway? yes 4 +7 Daniel journeyed to the garden. +8 Daniel picked up the apple there. +9 Is Daniel in the bathroom? no 7 +10 Mary moved to the bathroom. +11 Daniel left the apple. +12 Is Daniel in the garden? yes 7 +13 Mary went back to the kitchen. +14 John moved to the bedroom. +15 Is John in the bathroom? no 14 +1 Sandra got the football there. +2 John went to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary travelled to the kitchen. +5 Sandra put down the football. +6 Is Mary in the bedroom? no 4 +7 Sandra went to the hallway. +8 Sandra went back to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra went back to the bathroom. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary picked up the milk there. +14 Daniel went back to the bedroom. +15 Is Sandra in the office? no 11 +1 Sandra travelled to the garden. +2 John got the football there. +3 Is Sandra in the garden? yes 1 +4 Mary journeyed to the bathroom. +5 John discarded the football. +6 Is Mary in the bathroom? yes 4 +7 John got the football there. +8 Sandra journeyed to the office. +9 Is Mary in the bathroom? yes 4 +10 Daniel journeyed to the office. +11 John left the football. +12 Is Daniel in the office? yes 10 +13 John got the football there. +14 Mary went to the office. +15 Is Sandra in the bathroom? no 8 +1 Sandra travelled to the garden. +2 Daniel moved to the bathroom. +3 Is Sandra in the garden? yes 1 +4 Mary journeyed to the office. +5 Daniel journeyed to the garden. +6 Is Mary in the bedroom? no 4 +7 Daniel picked up the milk there. +8 John journeyed to the hallway. +9 Is Daniel in the bathroom? no 5 +10 Sandra travelled to the bedroom. +11 Daniel journeyed to the hallway. +12 Is Daniel in the garden? no 11 +13 Mary travelled to the bedroom. +14 Daniel moved to the kitchen. +15 Is Sandra in the bedroom? yes 10 +1 Daniel journeyed to the hallway. +2 Mary got the milk there. +3 Is Daniel in the hallway? yes 1 +4 Mary went back to the kitchen. +5 Sandra moved to the bathroom. +6 Is Daniel in the hallway? yes 1 +7 Mary took the football there. +8 John went back to the bedroom. +9 Is Mary in the kitchen? yes 4 +10 Sandra moved to the office. +11 Sandra travelled to the bedroom. +12 Is John in the bedroom? yes 8 +13 John journeyed to the kitchen. +14 Daniel travelled to the office. +15 Is Sandra in the bedroom? yes 11 +1 John went back to the hallway. +2 Mary grabbed the apple there. +3 Is John in the hallway? yes 1 +4 Sandra journeyed to the garden. +5 Sandra journeyed to the hallway. +6 Is Sandra in the bathroom? no 5 +7 John got the milk there. +8 Mary went to the bathroom. +9 Is Mary in the garden? no 8 +10 Mary travelled to the office. +11 Daniel moved to the bathroom. +12 Is Mary in the garden? no 10 +13 Mary dropped the apple. +14 John went back to the bathroom. +15 Is Daniel in the bathroom? yes 11 +1 Mary went to the bathroom. +2 Sandra grabbed the football there. +3 Is Mary in the kitchen? no 1 +4 John journeyed to the office. +5 Sandra left the football. +6 Is Mary in the bathroom? yes 1 +7 Mary grabbed the milk there. +8 Sandra got the football there. +9 Is John in the office? yes 4 +10 John went to the hallway. +11 Daniel went to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Daniel moved to the kitchen. +14 Mary discarded the milk. +15 Is Daniel in the garden? no 13 +1 Sandra went to the bathroom. +2 John grabbed the milk there. +3 Is Sandra in the hallway? no 1 +4 Daniel got the football there. +5 Sandra took the apple there. +6 Is Sandra in the bathroom? yes 1 +7 Sandra put down the apple there. +8 John put down the milk. +9 Sandra went to the kitchen. +10 Mary grabbed the milk there. +11 Is Sandra in the bedroom? no 9 +12 Sandra travelled to the hallway. +13 Daniel dropped the football. +14 Is Sandra in the office? no 12 +15 John moved to the bathroom. +16 Mary dropped the milk. +17 Is John in the hallway? no 15 +1 Sandra went back to the garden. +2 Mary went back to the kitchen. +3 Is Mary in the hallway? no 2 +4 John picked up the apple there. +5 Daniel went back to the bathroom. +6 Is Sandra in the garden? yes 1 +7 Sandra journeyed to the bathroom. +8 Daniel journeyed to the kitchen. +9 Is Sandra in the bathroom? yes 7 +10 John put down the apple. +11 Mary took the apple there. +12 Is Sandra in the hallway? no 7 +13 Sandra went to the hallway. +14 Mary journeyed to the office. +15 Is Mary in the office? yes 14 +1 John went to the office. +2 Daniel got the milk there. +3 Is John in the garden? no 1 +4 Sandra journeyed to the bathroom. +5 John journeyed to the kitchen. +6 Is John in the kitchen? yes 5 +7 John journeyed to the bedroom. +8 Daniel journeyed to the bedroom. +9 Is John in the office? no 7 +10 John travelled to the office. +11 Daniel moved to the bathroom. +12 Is John in the office? yes 10 +13 Daniel moved to the office. +14 Daniel dropped the milk. +15 Is John in the garden? no 10 +1 Sandra took the football there. +2 Daniel picked up the apple there. +3 John went back to the hallway. +4 Mary journeyed to the hallway. +5 Is Mary in the hallway? yes 4 +6 Daniel travelled to the garden. +7 Daniel put down the apple. +8 Is Mary in the kitchen? no 4 +9 Daniel picked up the apple there. +10 Sandra went to the bedroom. +11 Is Sandra in the bedroom? yes 10 +12 Daniel put down the apple. +13 Daniel went to the office. +14 Is Daniel in the office? yes 13 +15 Mary journeyed to the garden. +16 Sandra travelled to the kitchen. +17 Is Sandra in the bathroom? no 16 +1 Mary went to the bathroom. +2 John went to the bathroom. +3 Is Mary in the office? no 1 +4 John grabbed the football there. +5 John went to the office. +6 Is John in the office? yes 5 +7 John travelled to the bathroom. +8 John put down the football. +9 Is John in the bathroom? yes 7 +10 John travelled to the garden. +11 Sandra went back to the office. +12 Is John in the garden? yes 10 +13 Daniel went to the bathroom. +14 John got the apple there. +15 Is Daniel in the bedroom? no 13 +1 Mary grabbed the football there. +2 Mary took the apple there. +3 Mary put down the football. +4 Daniel journeyed to the office. +5 Is Daniel in the hallway? no 4 +6 Mary took the football there. +7 Daniel travelled to the garden. +8 Is Daniel in the office? no 7 +9 Mary left the apple. +10 John took the apple there. +11 Is Daniel in the garden? yes 7 +12 Mary journeyed to the bathroom. +13 John dropped the apple. +14 Is Mary in the garden? no 12 +15 John grabbed the apple there. +16 Daniel moved to the hallway. +17 Is Daniel in the kitchen? no 16 +1 John went back to the bathroom. +2 Sandra travelled to the bedroom. +3 Is John in the garden? no 1 +4 Sandra got the apple there. +5 Mary travelled to the hallway. +6 Is Sandra in the garden? no 2 +7 Sandra dropped the apple. +8 Mary went to the garden. +9 Is Sandra in the bedroom? yes 2 +10 Mary took the football there. +11 Daniel moved to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 Mary put down the football there. +14 John moved to the office. +15 Is Mary in the garden? yes 8 +1 John went back to the bathroom. +2 John moved to the kitchen. +3 Is John in the kitchen? yes 2 +4 Daniel travelled to the hallway. +5 Sandra went to the bedroom. +6 Is John in the kitchen? yes 2 +7 Sandra moved to the bathroom. +8 Daniel went to the garden. +9 Is Daniel in the hallway? no 8 +10 John moved to the hallway. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 Daniel journeyed to the kitchen. +14 Daniel journeyed to the bathroom. +15 Is John in the bedroom? no 11 +1 Mary travelled to the garden. +2 Sandra went to the kitchen. +3 Is Sandra in the garden? no 2 +4 John journeyed to the hallway. +5 John travelled to the kitchen. +6 Is John in the bathroom? no 5 +7 Daniel went to the hallway. +8 Daniel grabbed the football there. +9 Is Sandra in the kitchen? yes 2 +10 Daniel discarded the football. +11 John went back to the hallway. +12 Is Daniel in the hallway? yes 7 +13 Daniel got the football there. +14 Mary journeyed to the office. +15 Is Mary in the kitchen? no 14 +1 Mary journeyed to the hallway. +2 Daniel picked up the football there. +3 Is Mary in the hallway? yes 1 +4 Daniel journeyed to the garden. +5 Daniel went to the office. +6 Is Daniel in the office? yes 5 +7 Mary grabbed the apple there. +8 Daniel moved to the garden. +9 Is Daniel in the garden? yes 8 +10 Daniel journeyed to the kitchen. +11 John moved to the garden. +12 Is Daniel in the kitchen? yes 10 +13 Daniel put down the football. +14 Mary put down the apple. +15 Is Daniel in the kitchen? yes 10 +1 Mary travelled to the garden. +2 Mary got the milk there. +3 Is Mary in the garden? yes 1 +4 Sandra went to the bathroom. +5 Mary discarded the milk. +6 Is Sandra in the hallway? no 4 +7 Mary picked up the milk there. +8 Daniel picked up the football there. +9 Is Sandra in the kitchen? no 4 +10 Daniel moved to the office. +11 Daniel discarded the football. +12 Is Daniel in the office? yes 10 +13 Daniel travelled to the bathroom. +14 Daniel went to the hallway. +15 Is Daniel in the hallway? yes 14 +1 John journeyed to the office. +2 Mary took the football there. +3 Is John in the office? yes 1 +4 Mary put down the football. +5 Mary went to the bathroom. +6 Is Mary in the bedroom? no 5 +7 Daniel journeyed to the garden. +8 Sandra moved to the kitchen. +9 Is Sandra in the garden? no 8 +10 Daniel went to the bathroom. +11 Sandra picked up the apple there. +12 Is Mary in the bathroom? yes 5 +13 John journeyed to the bathroom. +14 Sandra moved to the bedroom. +15 Is Sandra in the hallway? no 14 +1 Sandra went back to the bathroom. +2 Sandra grabbed the apple there. +3 Is Sandra in the bathroom? yes 1 +4 Mary travelled to the garden. +5 Daniel went back to the office. +6 Is Daniel in the bedroom? no 5 +7 Mary grabbed the milk there. +8 Sandra went to the kitchen. +9 Is Daniel in the office? yes 5 +10 Mary grabbed the football there. +11 Daniel went back to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 John moved to the kitchen. +14 Sandra left the apple. +15 Is Sandra in the garden? no 8 +1 John got the apple there. +2 John took the milk there. +3 John discarded the milk. +4 John picked up the milk there. +5 Daniel went back to the garden. +6 Mary moved to the garden. +7 Is Mary in the office? no 6 +8 Daniel took the football there. +9 John left the milk. +10 Is Daniel in the bedroom? no 5 +11 Mary journeyed to the bedroom. +12 Mary went to the bathroom. +13 Is Mary in the bathroom? yes 12 +14 Sandra journeyed to the bedroom. +15 Daniel went back to the bedroom. +16 Is Daniel in the bathroom? no 15 +17 Mary went back to the hallway. +18 Sandra moved to the office. +19 Is Mary in the hallway? yes 17 +1 John grabbed the football there. +2 John discarded the football. +3 John grabbed the football there. +4 Sandra got the apple there. +5 Sandra put down the apple. +6 John travelled to the kitchen. +7 Is John in the garden? no 6 +8 John moved to the garden. +9 John took the milk there. +10 Is John in the hallway? no 8 +11 Sandra journeyed to the kitchen. +12 John moved to the bedroom. +13 Is Sandra in the kitchen? yes 11 +14 John went back to the bathroom. +15 John left the football. +16 Is John in the office? no 14 +17 Mary journeyed to the hallway. +18 Mary grabbed the apple there. +19 Is Mary in the kitchen? no 17 +1 John got the milk there. +2 John left the milk. +3 John travelled to the garden. +4 Daniel moved to the hallway. +5 Is Daniel in the office? no 4 +6 Mary went back to the office. +7 Mary picked up the football there. +8 Is Mary in the garden? no 6 +9 Sandra went to the hallway. +10 John moved to the kitchen. +11 Is Mary in the office? yes 6 +12 Daniel moved to the bedroom. +13 Daniel moved to the kitchen. +14 Is Daniel in the bathroom? no 13 +15 Daniel travelled to the bathroom. +16 Daniel journeyed to the bedroom. +17 Is Daniel in the garden? no 16 +1 John went to the kitchen. +2 Daniel moved to the garden. +3 Is John in the garden? no 1 +4 John went to the hallway. +5 John moved to the garden. +6 Is John in the garden? yes 5 +7 Daniel moved to the kitchen. +8 Daniel went back to the bathroom. +9 Is Daniel in the office? no 8 +10 Sandra got the milk there. +11 Daniel journeyed to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Daniel journeyed to the bathroom. +14 Sandra journeyed to the hallway. +15 Is Sandra in the bedroom? no 14 +1 Daniel went to the bathroom. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra got the football there. +5 John went to the kitchen. +6 Is Daniel in the kitchen? no 1 +7 Sandra put down the football. +8 Daniel went back to the office. +9 Is Sandra in the kitchen? yes 2 +10 Sandra took the football there. +11 Daniel went to the garden. +12 Is Daniel in the garden? yes 11 +13 Mary moved to the office. +14 Sandra went to the hallway. +15 Is Daniel in the office? no 11 +1 Sandra moved to the hallway. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the hallway? no 2 +4 John got the apple there. +5 John went back to the bathroom. +6 Is Sandra in the hallway? yes 1 +7 John took the football there. +8 Daniel got the milk there. +9 Is John in the bathroom? yes 5 +10 Mary went back to the garden. +11 John travelled to the garden. +12 Is Mary in the garden? yes 10 +13 Sandra went to the bathroom. +14 Daniel dropped the milk there. +15 Is Sandra in the bathroom? yes 13 +1 Daniel grabbed the milk there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Daniel put down the milk. +5 Mary took the football there. +6 Is Daniel in the kitchen? no 2 +7 Sandra journeyed to the bedroom. +8 Sandra picked up the milk there. +9 Is Sandra in the bedroom? yes 7 +10 Mary dropped the football. +11 Sandra left the milk. +12 Is Sandra in the bedroom? yes 7 +13 Sandra got the milk there. +14 Mary took the football there. +15 Sandra discarded the milk. +16 Daniel took the milk there. +17 John went back to the office. +18 Mary journeyed to the hallway. +19 Is Mary in the hallway? yes 18 +1 Sandra picked up the milk there. +2 John went to the bathroom. +3 Is John in the bathroom? yes 2 +4 Daniel went to the kitchen. +5 Mary travelled to the bathroom. +6 Is Mary in the hallway? no 5 +7 John moved to the kitchen. +8 Mary went to the bedroom. +9 Is John in the kitchen? yes 7 +10 Sandra dropped the milk there. +11 Sandra moved to the kitchen. +12 Is Mary in the bedroom? yes 8 +13 Daniel journeyed to the hallway. +14 Mary travelled to the kitchen. +15 Is Sandra in the bedroom? no 11 +1 Daniel grabbed the football there. +2 Mary journeyed to the hallway. +3 Is Mary in the kitchen? no 2 +4 Daniel dropped the football. +5 Mary travelled to the garden. +6 Is Mary in the garden? yes 5 +7 Daniel picked up the football there. +8 Daniel journeyed to the bedroom. +9 Is Mary in the kitchen? no 5 +10 Sandra moved to the hallway. +11 Daniel went back to the bathroom. +12 Is Sandra in the office? no 10 +13 John went back to the hallway. +14 Sandra travelled to the bathroom. +15 Is John in the hallway? yes 13 +1 Daniel moved to the bedroom. +2 Daniel journeyed to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary picked up the milk there. +5 Mary discarded the milk. +6 Is Daniel in the kitchen? yes 2 +7 John travelled to the kitchen. +8 John picked up the apple there. +9 Is John in the kitchen? yes 7 +10 John travelled to the garden. +11 John put down the apple. +12 Is John in the garden? yes 10 +13 John picked up the apple there. +14 Mary went to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra journeyed to the garden. +2 John went to the kitchen. +3 Is John in the office? no 2 +4 Mary travelled to the kitchen. +5 Mary went back to the hallway. +6 Is Sandra in the garden? yes 1 +7 Mary travelled to the office. +8 John travelled to the garden. +9 Is John in the kitchen? no 8 +10 John moved to the hallway. +11 Sandra got the apple there. +12 Is Mary in the office? yes 7 +13 Mary took the milk there. +14 Sandra went back to the kitchen. +15 Is John in the hallway? yes 10 +1 John moved to the bathroom. +2 Daniel grabbed the football there. +3 Is John in the bathroom? yes 1 +4 Sandra moved to the kitchen. +5 Mary got the milk there. +6 Is Sandra in the office? no 4 +7 Daniel put down the football there. +8 Mary travelled to the kitchen. +9 Is Sandra in the bedroom? no 4 +10 Daniel picked up the football there. +11 John travelled to the kitchen. +12 Is Mary in the bathroom? no 8 +13 Daniel went back to the kitchen. +14 Daniel journeyed to the garden. +15 Is Mary in the hallway? no 8 +1 Sandra took the milk there. +2 John went to the kitchen. +3 Is John in the kitchen? yes 2 +4 Daniel moved to the kitchen. +5 Mary travelled to the hallway. +6 Is Daniel in the kitchen? yes 4 +7 John journeyed to the garden. +8 John went to the bedroom. +9 Is Daniel in the office? no 4 +10 Sandra discarded the milk. +11 Mary went back to the bedroom. +12 Is John in the bedroom? yes 8 +13 Daniel travelled to the bedroom. +14 Sandra travelled to the kitchen. +15 Is Sandra in the hallway? no 14 +1 Daniel went back to the hallway. +2 John moved to the kitchen. +3 Is John in the bedroom? no 2 +4 Daniel went to the bathroom. +5 Sandra went to the office. +6 Is Sandra in the office? yes 5 +7 Mary journeyed to the bathroom. +8 Sandra went back to the hallway. +9 Is Sandra in the bedroom? no 8 +10 Sandra journeyed to the office. +11 Mary travelled to the kitchen. +12 Is Sandra in the office? yes 10 +13 Sandra went back to the hallway. +14 Daniel travelled to the office. +15 Is Daniel in the garden? no 14 +1 Daniel travelled to the bathroom. +2 Daniel picked up the apple there. +3 Is Daniel in the bedroom? no 1 +4 Daniel dropped the apple. +5 Sandra moved to the hallway. +6 Is Daniel in the bathroom? yes 1 +7 Daniel grabbed the football there. +8 Daniel took the apple there. +9 Is Sandra in the hallway? yes 5 +10 Daniel put down the football. +11 Daniel dropped the apple there. +12 Is Sandra in the hallway? yes 5 +13 Sandra travelled to the kitchen. +14 Mary went to the bedroom. +15 Is Sandra in the hallway? no 13 +1 Daniel picked up the milk there. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 John took the football there. +5 Mary went back to the office. +6 Is Sandra in the office? yes 2 +7 John went to the bedroom. +8 Daniel travelled to the office. +9 Is John in the bedroom? yes 7 +10 John travelled to the kitchen. +11 John discarded the football. +12 Is Mary in the office? yes 5 +13 John got the football there. +14 John went to the bathroom. +15 Is Daniel in the office? yes 8 +1 Mary travelled to the kitchen. +2 Mary went back to the garden. +3 Is Mary in the bathroom? no 2 +4 John took the apple there. +5 Sandra journeyed to the office. +6 Is Mary in the garden? yes 2 +7 Mary went back to the bedroom. +8 Sandra took the football there. +9 Is Sandra in the kitchen? no 5 +10 John went back to the bedroom. +11 John journeyed to the garden. +12 Is John in the bedroom? no 11 +13 Daniel went to the bathroom. +14 John left the apple. +15 Is John in the garden? yes 11 +1 Daniel moved to the bathroom. +2 Sandra went to the bathroom. +3 Is Daniel in the bathroom? yes 1 +4 Daniel travelled to the kitchen. +5 Daniel went back to the office. +6 Is Daniel in the bedroom? no 5 +7 John moved to the bedroom. +8 Daniel journeyed to the bedroom. +9 Is John in the bedroom? yes 7 +10 Sandra went to the garden. +11 John went back to the bathroom. +12 Is Daniel in the hallway? no 8 +13 Sandra picked up the milk there. +14 Sandra picked up the apple there. +15 Is Sandra in the office? no 10 +1 Mary journeyed to the office. +2 Mary moved to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Sandra got the milk there. +5 Sandra went back to the kitchen. +6 Is Sandra in the bedroom? no 5 +7 Sandra went to the bathroom. +8 Sandra moved to the office. +9 Is Sandra in the kitchen? no 8 +10 John moved to the hallway. +11 Sandra put down the milk there. +12 Is Sandra in the office? yes 8 +13 Daniel travelled to the kitchen. +14 Sandra got the milk there. +15 Is Sandra in the bedroom? no 8 +1 Daniel journeyed to the garden. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 Daniel moved to the office. +5 Sandra journeyed to the garden. +6 Is Mary in the bathroom? no 2 +7 Sandra journeyed to the bathroom. +8 Mary journeyed to the bedroom. +9 Is Daniel in the hallway? no 4 +10 Daniel went to the bedroom. +11 Daniel journeyed to the office. +12 Is Sandra in the bathroom? yes 7 +13 Daniel travelled to the hallway. +14 John went back to the garden. +15 Is John in the garden? yes 14 +1 John moved to the hallway. +2 Sandra moved to the garden. +3 Is John in the office? no 1 +4 Daniel journeyed to the kitchen. +5 Mary moved to the bathroom. +6 Is Daniel in the hallway? no 4 +7 Daniel journeyed to the hallway. +8 Mary journeyed to the kitchen. +9 Is Mary in the hallway? no 8 +10 John went back to the kitchen. +11 John picked up the football there. +12 Is Daniel in the hallway? yes 7 +13 Mary travelled to the garden. +14 John discarded the football. +15 Is Mary in the garden? yes 13 +1 Mary journeyed to the bedroom. +2 Sandra went back to the hallway. +3 Is Mary in the bedroom? yes 1 +4 Mary went back to the office. +5 John journeyed to the office. +6 Is Sandra in the kitchen? no 2 +7 John took the apple there. +8 Daniel went to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Mary picked up the milk there. +11 Mary left the milk. +12 Is Daniel in the garden? no 8 +13 Sandra went back to the office. +14 Sandra took the milk there. +15 Is Daniel in the bedroom? yes 8 +1 Daniel took the milk there. +2 Daniel put down the milk. +3 Mary travelled to the office. +4 Sandra went back to the kitchen. +5 Is Sandra in the kitchen? yes 4 +6 Daniel travelled to the hallway. +7 Mary moved to the hallway. +8 Is Mary in the hallway? yes 7 +9 Mary journeyed to the office. +10 Daniel travelled to the bedroom. +11 Is Sandra in the kitchen? yes 4 +12 John travelled to the office. +13 Daniel went back to the garden. +14 Is John in the hallway? no 12 +15 Daniel got the apple there. +16 Mary moved to the hallway. +17 Is Daniel in the kitchen? no 13 +1 Sandra got the apple there. +2 Sandra went back to the garden. +3 Is Sandra in the hallway? no 2 +4 Mary took the football there. +5 Mary travelled to the kitchen. +6 Is Sandra in the garden? yes 2 +7 Sandra left the apple. +8 Mary moved to the garden. +9 Is Mary in the bathroom? no 8 +10 John moved to the hallway. +11 Mary discarded the football there. +12 Is Mary in the hallway? no 8 +13 Sandra got the apple there. +14 Sandra grabbed the football there. +15 Is John in the office? no 10 +1 Sandra went to the garden. +2 John moved to the garden. +3 Is John in the hallway? no 2 +4 Mary took the milk there. +5 Sandra journeyed to the hallway. +6 Is John in the bedroom? no 2 +7 John travelled to the hallway. +8 Daniel went to the garden. +9 Is John in the garden? no 7 +10 Sandra went back to the kitchen. +11 John grabbed the apple there. +12 Is Sandra in the garden? no 10 +13 John moved to the garden. +14 Mary put down the milk. +15 Is Sandra in the kitchen? yes 10 +1 Daniel went to the bedroom. +2 John went to the kitchen. +3 Is John in the bedroom? no 2 +4 Sandra travelled to the bathroom. +5 Sandra took the milk there. +6 Is Sandra in the garden? no 4 +7 Sandra went to the bedroom. +8 Mary moved to the office. +9 Is Mary in the bedroom? no 8 +10 Mary went back to the bathroom. +11 Daniel went to the bathroom. +12 Is Mary in the bathroom? yes 10 +13 Sandra moved to the hallway. +14 John journeyed to the garden. +15 Is Mary in the bathroom? yes 10 +1 Mary went to the office. +2 Mary moved to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel picked up the football there. +5 Daniel took the apple there. +6 Is Mary in the hallway? no 2 +7 Mary went to the garden. +8 Mary travelled to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Sandra got the milk there. +11 Sandra discarded the milk. +12 Is Mary in the bedroom? no 8 +13 Sandra moved to the kitchen. +14 Sandra travelled to the bedroom. +15 Is Mary in the garden? no 8 +1 Sandra travelled to the garden. +2 John journeyed to the hallway. +3 Is Sandra in the bedroom? no 1 +4 John picked up the apple there. +5 John discarded the apple there. +6 Is Sandra in the garden? yes 1 +7 Sandra journeyed to the office. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the kitchen? yes 8 +10 Mary went back to the bedroom. +11 Sandra journeyed to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Daniel picked up the apple there. +14 Mary moved to the hallway. +15 Is Sandra in the office? no 11 +1 Sandra went to the bedroom. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Mary journeyed to the hallway. +5 Daniel journeyed to the office. +6 Is Mary in the office? no 4 +7 Mary travelled to the bathroom. +8 John got the apple there. +9 Is Mary in the bathroom? yes 7 +10 Sandra journeyed to the hallway. +11 Sandra journeyed to the bathroom. +12 Is Daniel in the kitchen? no 5 +13 Daniel got the football there. +14 Daniel grabbed the milk there. +15 Is Sandra in the hallway? no 11 +1 Daniel went to the office. +2 Mary travelled to the bathroom. +3 Is Daniel in the kitchen? no 1 +4 Daniel went to the bathroom. +5 Mary went to the garden. +6 Is Daniel in the bathroom? yes 4 +7 Mary went to the bedroom. +8 Sandra went back to the kitchen. +9 Is Mary in the bedroom? yes 7 +10 Mary went back to the hallway. +11 John went back to the garden. +12 Is Mary in the hallway? yes 10 +13 John grabbed the apple there. +14 Sandra went back to the hallway. +15 Is Sandra in the kitchen? no 14 +1 John travelled to the bathroom. +2 Daniel picked up the milk there. +3 Is John in the hallway? no 1 +4 Mary got the football there. +5 Daniel dropped the milk. +6 Is John in the garden? no 1 +7 John moved to the hallway. +8 Mary dropped the football. +9 Is John in the hallway? yes 7 +10 Sandra went to the kitchen. +11 Mary picked up the football there. +12 Is Sandra in the office? no 10 +13 Mary dropped the football there. +14 John travelled to the kitchen. +15 Is Sandra in the kitchen? yes 10 +1 Sandra grabbed the apple there. +2 Mary went back to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 John went back to the bedroom. +5 Mary went back to the office. +6 Is Mary in the garden? no 5 +7 Daniel travelled to the office. +8 Mary grabbed the milk there. +9 Is John in the office? no 4 +10 Sandra discarded the apple. +11 Mary got the football there. +12 Is Mary in the office? yes 5 +13 Sandra travelled to the kitchen. +14 Mary went back to the bedroom. +15 Is Sandra in the hallway? no 13 +1 Mary went back to the garden. +2 John went to the bedroom. +3 Is Mary in the hallway? no 1 +4 Sandra moved to the kitchen. +5 John grabbed the milk there. +6 Is John in the garden? no 2 +7 Mary travelled to the office. +8 Daniel went back to the hallway. +9 Is Daniel in the hallway? yes 8 +10 Sandra went to the office. +11 John took the football there. +12 Is Mary in the office? yes 7 +13 John left the football. +14 Sandra journeyed to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra moved to the bedroom. +2 John travelled to the office. +3 Is John in the office? yes 2 +4 Daniel journeyed to the office. +5 Daniel journeyed to the garden. +6 Is Daniel in the garden? yes 5 +7 Daniel journeyed to the hallway. +8 Daniel went back to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Daniel went to the hallway. +11 Daniel grabbed the milk there. +12 Is Daniel in the office? no 10 +13 Daniel dropped the milk. +14 John travelled to the kitchen. +15 Is Daniel in the hallway? yes 10 +1 Sandra moved to the hallway. +2 Sandra grabbed the milk there. +3 Is Sandra in the hallway? yes 1 +4 Sandra dropped the milk. +5 Sandra picked up the milk there. +6 Is Sandra in the kitchen? no 1 +7 Sandra dropped the milk. +8 Sandra took the milk there. +9 Daniel went to the kitchen. +10 John went to the bathroom. +11 Is John in the bedroom? no 10 +12 Mary got the football there. +13 Sandra went back to the office. +14 Is John in the garden? no 10 +15 Sandra went back to the kitchen. +16 Mary dropped the football there. +17 Is John in the hallway? no 10 +1 John picked up the football there. +2 John travelled to the bedroom. +3 Is John in the garden? no 2 +4 John went to the kitchen. +5 Sandra went back to the office. +6 Is Sandra in the office? yes 5 +7 John dropped the football. +8 Mary journeyed to the garden. +9 Is John in the office? no 4 +10 John took the apple there. +11 John got the football there. +12 Is Mary in the kitchen? no 8 +13 Sandra travelled to the kitchen. +14 Daniel moved to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 John travelled to the bedroom. +2 Daniel took the apple there. +3 Is John in the bedroom? yes 1 +4 Daniel journeyed to the office. +5 Mary grabbed the milk there. +6 Is John in the bedroom? yes 1 +7 Sandra moved to the hallway. +8 Mary left the milk. +9 Is Sandra in the kitchen? no 7 +10 Mary went to the kitchen. +11 John travelled to the hallway. +12 Is John in the bedroom? no 11 +13 John went to the office. +14 Sandra journeyed to the office. +15 Is John in the garden? no 13 +1 Daniel moved to the bathroom. +2 Mary took the football there. +3 Is Daniel in the kitchen? no 1 +4 Sandra grabbed the apple there. +5 Mary discarded the football. +6 Is Daniel in the bedroom? no 1 +7 Daniel went back to the kitchen. +8 Daniel travelled to the office. +9 Is Daniel in the office? yes 8 +10 Mary journeyed to the office. +11 Sandra dropped the apple. +12 Is Daniel in the office? yes 8 +13 John journeyed to the office. +14 Mary grabbed the milk there. +15 Is Daniel in the hallway? no 8 +1 Daniel went back to the kitchen. +2 Daniel went back to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 John journeyed to the bedroom. +5 Mary went back to the bathroom. +6 Is Mary in the bedroom? no 5 +7 Daniel went back to the kitchen. +8 Sandra moved to the bedroom. +9 Is Daniel in the kitchen? yes 7 +10 Mary grabbed the apple there. +11 John went back to the bathroom. +12 Is Sandra in the bedroom? yes 8 +13 Mary moved to the hallway. +14 Daniel moved to the bathroom. +15 Is Sandra in the bedroom? yes 8 +1 Daniel journeyed to the garden. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 Sandra got the football there. +5 Mary got the milk there. +6 Is Daniel in the bedroom? no 2 +7 Mary put down the milk. +8 Sandra travelled to the office. +9 Is Sandra in the hallway? no 8 +10 Daniel went back to the kitchen. +11 Daniel travelled to the bathroom. +12 Is Sandra in the hallway? no 8 +13 Sandra put down the football. +14 John grabbed the football there. +15 Is Daniel in the kitchen? no 11 +1 John went back to the garden. +2 Daniel picked up the milk there. +3 Is John in the garden? yes 1 +4 Daniel discarded the milk there. +5 John journeyed to the kitchen. +6 Is John in the kitchen? yes 5 +7 Daniel travelled to the bedroom. +8 John journeyed to the hallway. +9 Is John in the bathroom? no 8 +10 John picked up the milk there. +11 Daniel moved to the kitchen. +12 Is John in the hallway? yes 8 +13 John went to the office. +14 John journeyed to the hallway. +15 Is Daniel in the kitchen? yes 11 +1 Sandra went to the garden. +2 Daniel got the apple there. +3 Is Sandra in the office? no 1 +4 Sandra travelled to the bathroom. +5 Daniel put down the apple. +6 Is Sandra in the garden? no 4 +7 Daniel picked up the apple there. +8 Daniel went to the office. +9 Is Daniel in the office? yes 8 +10 Daniel left the apple there. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 John travelled to the office. +14 John grabbed the apple there. +15 Is John in the office? yes 13 +1 Daniel moved to the bedroom. +2 Mary took the apple there. +3 Is Daniel in the bedroom? yes 1 +4 Mary dropped the apple. +5 Daniel travelled to the office. +6 Is Daniel in the office? yes 5 +7 Mary grabbed the apple there. +8 Daniel journeyed to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Daniel travelled to the bathroom. +11 Mary went to the bedroom. +12 Is Daniel in the bathroom? yes 10 +13 Sandra went back to the office. +14 Mary travelled to the garden. +15 Is Daniel in the office? no 10 +1 Sandra went to the garden. +2 Sandra moved to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 John travelled to the bedroom. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 John went to the hallway. +8 Sandra journeyed to the kitchen. +9 Is John in the bathroom? no 7 +10 John picked up the football there. +11 Daniel moved to the hallway. +12 Is Sandra in the bedroom? no 8 +13 Daniel went back to the kitchen. +14 Mary journeyed to the hallway. +15 Is Daniel in the kitchen? yes 13 +1 Daniel travelled to the hallway. +2 John got the milk there. +3 Is Daniel in the garden? no 1 +4 Daniel went back to the garden. +5 John put down the milk there. +6 Is Daniel in the hallway? no 4 +7 Sandra moved to the office. +8 Daniel moved to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 John took the milk there. +11 John discarded the milk. +12 Is Sandra in the bathroom? no 7 +13 Mary travelled to the bathroom. +14 Mary moved to the office. +15 Is Daniel in the kitchen? no 8 +1 Daniel journeyed to the office. +2 Sandra moved to the bathroom. +3 Is Sandra in the garden? no 2 +4 Sandra journeyed to the bedroom. +5 Mary grabbed the apple there. +6 Is Sandra in the bedroom? yes 4 +7 John went to the garden. +8 Mary put down the apple. +9 Is Sandra in the garden? no 4 +10 Sandra journeyed to the hallway. +11 Daniel moved to the bathroom. +12 Is Sandra in the bathroom? no 10 +13 John picked up the milk there. +14 Daniel went to the office. +15 Is Daniel in the office? yes 14 +1 Mary moved to the kitchen. +2 Mary took the apple there. +3 Is Mary in the kitchen? yes 1 +4 Sandra got the football there. +5 Mary put down the apple there. +6 Is Mary in the kitchen? yes 1 +7 Sandra discarded the football. +8 Mary picked up the apple there. +9 Sandra went back to the kitchen. +10 Daniel went back to the bathroom. +11 Is Sandra in the kitchen? yes 9 +12 Daniel grabbed the football there. +13 Daniel dropped the football. +14 Is Sandra in the kitchen? yes 9 +15 Daniel got the football there. +16 Daniel put down the football. +17 Is Daniel in the bedroom? no 10 +1 Sandra moved to the office. +2 John journeyed to the kitchen. +3 Is Sandra in the office? yes 1 +4 Daniel got the apple there. +5 Mary went back to the kitchen. +6 Is Sandra in the garden? no 1 +7 Daniel took the football there. +8 Daniel put down the football. +9 Is Mary in the kitchen? yes 5 +10 Daniel left the apple. +11 Daniel moved to the kitchen. +12 Is Mary in the kitchen? yes 5 +13 Sandra went to the bedroom. +14 John went to the bathroom. +15 Is John in the bathroom? yes 14 +1 Daniel picked up the milk there. +2 Daniel dropped the milk. +3 Daniel picked up the milk there. +4 Daniel left the milk. +5 Sandra went to the office. +6 Daniel grabbed the milk there. +7 Is Sandra in the office? yes 5 +8 Daniel discarded the milk. +9 Sandra journeyed to the garden. +10 Is Sandra in the garden? yes 9 +11 John travelled to the office. +12 Daniel travelled to the garden. +13 Is Sandra in the kitchen? no 9 +14 John went back to the bathroom. +15 Daniel went back to the hallway. +16 Is John in the bathroom? yes 14 +17 Mary travelled to the bedroom. +18 Sandra journeyed to the kitchen. +19 Is Daniel in the hallway? yes 15 +1 Sandra journeyed to the bedroom. +2 Daniel journeyed to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Mary went to the hallway. +5 Daniel went to the bathroom. +6 Is Mary in the hallway? yes 4 +7 John grabbed the apple there. +8 John left the apple. +9 Is Mary in the bathroom? no 4 +10 Daniel moved to the office. +11 John travelled to the bedroom. +12 Is Daniel in the office? yes 10 +13 Daniel got the apple there. +14 Sandra went to the garden. +15 Is Sandra in the garden? yes 14 +1 Sandra moved to the kitchen. +2 Sandra travelled to the office. +3 Is Sandra in the garden? no 2 +4 Mary journeyed to the bedroom. +5 Sandra journeyed to the kitchen. +6 Is Mary in the bedroom? yes 4 +7 Sandra travelled to the hallway. +8 Mary went to the garden. +9 Is Sandra in the hallway? yes 7 +10 Mary moved to the hallway. +11 Sandra went back to the garden. +12 Is Sandra in the bedroom? no 11 +13 John journeyed to the office. +14 Sandra moved to the kitchen. +15 Is Sandra in the bathroom? no 14 +1 Daniel went back to the hallway. +2 Daniel went to the bedroom. +3 Is Daniel in the garden? no 2 +4 Daniel travelled to the garden. +5 Daniel went to the bathroom. +6 Is Daniel in the office? no 5 +7 Sandra went to the garden. +8 Sandra went to the bathroom. +9 Is Daniel in the bedroom? no 5 +10 John journeyed to the hallway. +11 Sandra moved to the hallway. +12 Is Sandra in the hallway? yes 11 +13 Daniel journeyed to the bedroom. +14 John went to the office. +15 Is Sandra in the office? no 11 +1 Mary got the football there. +2 John journeyed to the bedroom. +3 Is John in the office? no 2 +4 Mary put down the football there. +5 John went to the bathroom. +6 Is John in the kitchen? no 5 +7 Mary grabbed the milk there. +8 Daniel took the apple there. +9 Is John in the bathroom? yes 5 +10 Daniel went back to the kitchen. +11 Daniel dropped the apple. +12 Is Daniel in the kitchen? yes 10 +13 Mary went back to the bathroom. +14 Daniel went to the office. +15 Is Mary in the bathroom? yes 13 +1 Daniel took the football there. +2 Sandra moved to the bathroom. +3 Is Sandra in the office? no 2 +4 John got the milk there. +5 John travelled to the bedroom. +6 Is Sandra in the office? no 2 +7 John journeyed to the bathroom. +8 John journeyed to the hallway. +9 Is John in the hallway? yes 8 +10 John discarded the milk. +11 Mary picked up the milk there. +12 Is John in the office? no 8 +13 Mary travelled to the garden. +14 Mary picked up the apple there. +15 Is John in the hallway? yes 8 +1 Mary journeyed to the hallway. +2 John got the milk there. +3 Is Mary in the bedroom? no 1 +4 Sandra moved to the bathroom. +5 Sandra grabbed the football there. +6 Is Mary in the office? no 1 +7 John left the milk there. +8 Daniel travelled to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Daniel travelled to the bedroom. +11 John travelled to the bathroom. +12 Is John in the bathroom? yes 11 +13 Mary went to the kitchen. +14 Sandra put down the football. +15 Is Mary in the kitchen? yes 13 +1 Daniel went back to the hallway. +2 Mary went to the kitchen. +3 Is Daniel in the office? no 1 +4 John got the apple there. +5 Daniel journeyed to the office. +6 Is Daniel in the office? yes 5 +7 Daniel went back to the bathroom. +8 Sandra got the football there. +9 Is Mary in the hallway? no 2 +10 Mary travelled to the bedroom. +11 Sandra moved to the office. +12 Is Daniel in the garden? no 7 +13 Daniel journeyed to the hallway. +14 John moved to the bedroom. +15 Is Daniel in the hallway? yes 13 +1 Sandra went to the garden. +2 John moved to the office. +3 Is John in the bedroom? no 2 +4 John went to the bedroom. +5 John travelled to the office. +6 Is Sandra in the garden? yes 1 +7 Mary went back to the office. +8 John went to the bathroom. +9 Is Mary in the bathroom? no 7 +10 Sandra got the apple there. +11 Mary went back to the bathroom. +12 Is Mary in the office? no 11 +13 John travelled to the hallway. +14 Mary got the football there. +15 Is John in the bedroom? no 13 +1 Mary went back to the office. +2 Daniel picked up the milk there. +3 Is Mary in the bathroom? no 1 +4 John went to the kitchen. +5 Daniel went back to the office. +6 Is Daniel in the kitchen? no 5 +7 John went to the bathroom. +8 Daniel went to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 Daniel dropped the milk. +11 John grabbed the milk there. +12 Is Daniel in the bathroom? yes 8 +13 Sandra journeyed to the bathroom. +14 Mary picked up the football there. +15 Is Daniel in the bathroom? yes 8 +1 Sandra moved to the garden. +2 Daniel went back to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Mary went to the office. +5 Daniel got the football there. +6 Is Daniel in the bedroom? yes 2 +7 Daniel left the football. +8 John got the milk there. +9 Is Mary in the office? yes 4 +10 Sandra got the apple there. +11 Daniel grabbed the football there. +12 Mary went back to the hallway. +13 John dropped the milk. +14 Is Mary in the hallway? yes 12 +15 Mary went back to the kitchen. +16 Daniel journeyed to the garden. +17 Is Mary in the garden? no 15 +1 Mary journeyed to the bathroom. +2 Mary grabbed the milk there. +3 Is Mary in the kitchen? no 1 +4 Sandra journeyed to the bathroom. +5 Mary travelled to the hallway. +6 Is Sandra in the bedroom? no 4 +7 John travelled to the hallway. +8 Mary picked up the football there. +9 Is John in the bedroom? no 7 +10 Mary dropped the football. +11 Mary discarded the milk. +12 Is Mary in the bathroom? no 5 +13 John journeyed to the bathroom. +14 Daniel moved to the hallway. +15 Is Daniel in the hallway? yes 14 +1 John grabbed the football there. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Mary went to the hallway. +5 Mary moved to the garden. +6 Is Mary in the garden? yes 5 +7 John went to the office. +8 Daniel travelled to the bathroom. +9 Is Mary in the garden? yes 5 +10 Sandra went back to the bedroom. +11 Daniel took the milk there. +12 Is Mary in the garden? yes 5 +13 Sandra moved to the bathroom. +14 Sandra went back to the hallway. +15 Is Sandra in the kitchen? no 14 +1 Daniel went back to the bathroom. +2 Daniel moved to the hallway. +3 Is Daniel in the kitchen? no 2 +4 Sandra went to the garden. +5 John journeyed to the garden. +6 Is John in the garden? yes 5 +7 Sandra moved to the kitchen. +8 Daniel grabbed the milk there. +9 Is Sandra in the kitchen? yes 7 +10 Daniel journeyed to the office. +11 Daniel travelled to the kitchen. +12 Is Daniel in the hallway? no 11 +13 Daniel dropped the milk there. +14 Sandra moved to the bedroom. +15 Is Daniel in the bedroom? no 11 +1 Mary went back to the bathroom. +2 John got the football there. +3 Is Mary in the bedroom? no 1 +4 John travelled to the bathroom. +5 Sandra went to the office. +6 Is Sandra in the kitchen? no 5 +7 John left the football. +8 Mary went back to the kitchen. +9 Is John in the bathroom? yes 4 +10 Sandra travelled to the kitchen. +11 Sandra got the milk there. +12 Is Mary in the kitchen? yes 8 +13 Sandra dropped the milk. +14 Mary picked up the milk there. +15 Is Sandra in the kitchen? yes 10 +1 Daniel picked up the apple there. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel discarded the apple there. +5 Daniel picked up the apple there. +6 Is Sandra in the office? no 2 +7 Mary travelled to the kitchen. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 Daniel journeyed to the bedroom. +11 Mary went to the garden. +12 Is Daniel in the garden? no 10 +13 Daniel left the apple. +14 Mary went back to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 Mary journeyed to the kitchen. +2 Sandra journeyed to the garden. +3 Is Mary in the kitchen? yes 1 +4 John went back to the kitchen. +5 Sandra picked up the apple there. +6 Is John in the kitchen? yes 4 +7 Sandra went back to the bedroom. +8 Daniel moved to the hallway. +9 Is Sandra in the kitchen? no 7 +10 John went to the office. +11 Daniel journeyed to the office. +12 Is John in the office? yes 10 +13 Sandra dropped the apple. +14 Sandra grabbed the apple there. +15 Is Daniel in the hallway? no 11 +1 Daniel went back to the kitchen. +2 John went to the bathroom. +3 Is Daniel in the kitchen? yes 1 +4 Daniel took the football there. +5 John journeyed to the bedroom. +6 Is John in the bathroom? no 5 +7 Daniel dropped the football there. +8 John went to the garden. +9 Is John in the garden? yes 8 +10 Daniel journeyed to the garden. +11 Sandra went back to the office. +12 Is Daniel in the office? no 10 +13 Mary journeyed to the kitchen. +14 Mary took the football there. +15 Is Sandra in the kitchen? no 11 +1 Daniel took the football there. +2 Daniel dropped the football there. +3 Daniel travelled to the kitchen. +4 Mary journeyed to the kitchen. +5 Is Daniel in the kitchen? yes 3 +6 Sandra moved to the office. +7 John journeyed to the bathroom. +8 Is Sandra in the office? yes 6 +9 Sandra went back to the garden. +10 Sandra grabbed the football there. +11 Is Sandra in the bathroom? no 9 +12 Mary journeyed to the office. +13 John journeyed to the garden. +14 Is Mary in the bedroom? no 12 +15 Daniel travelled to the bedroom. +16 John went to the kitchen. +17 Is Daniel in the garden? no 15 +1 Sandra went to the garden. +2 Sandra went back to the office. +3 Is Sandra in the kitchen? no 2 +4 Sandra journeyed to the bathroom. +5 John journeyed to the bathroom. +6 Is Sandra in the bathroom? yes 4 +7 John moved to the hallway. +8 Sandra journeyed to the office. +9 Is John in the garden? no 7 +10 Mary moved to the bathroom. +11 Mary picked up the milk there. +12 Is Mary in the bathroom? yes 10 +13 Mary journeyed to the office. +14 John moved to the bathroom. +15 Is Sandra in the office? yes 8 +1 Daniel moved to the bathroom. +2 Mary got the milk there. +3 Is Daniel in the kitchen? no 1 +4 Daniel got the apple there. +5 Mary dropped the milk. +6 Is Daniel in the garden? no 1 +7 John got the football there. +8 Mary took the milk there. +9 John went to the garden. +10 Daniel journeyed to the hallway. +11 Is Daniel in the hallway? yes 10 +12 Daniel moved to the kitchen. +13 John put down the football. +14 Is Daniel in the kitchen? yes 12 +15 John grabbed the football there. +16 Daniel journeyed to the office. +17 Is Daniel in the office? yes 16 +1 John went to the bedroom. +2 Daniel grabbed the milk there. +3 Is John in the bedroom? yes 1 +4 Sandra moved to the garden. +5 Daniel went back to the kitchen. +6 Is Daniel in the office? no 5 +7 Daniel moved to the garden. +8 Daniel discarded the milk there. +9 Is Sandra in the office? no 4 +10 Daniel picked up the milk there. +11 Daniel journeyed to the office. +12 Is Daniel in the bedroom? no 11 +13 Daniel travelled to the bedroom. +14 Mary moved to the office. +15 Is Mary in the office? yes 14 +1 Sandra went back to the bedroom. +2 Sandra went back to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra went back to the kitchen. +5 John travelled to the kitchen. +6 Is Sandra in the kitchen? yes 4 +7 Daniel picked up the milk there. +8 Daniel dropped the milk. +9 Is Sandra in the garden? no 4 +10 Daniel travelled to the garden. +11 John picked up the milk there. +12 Is Daniel in the office? no 10 +13 John went to the bedroom. +14 John went back to the kitchen. +15 Is John in the hallway? no 14 +1 Sandra moved to the bathroom. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel journeyed to the garden. +5 Daniel got the apple there. +6 Is Sandra in the hallway? no 2 +7 Sandra went to the bathroom. +8 Mary went to the kitchen. +9 Is Sandra in the bathroom? yes 7 +10 John moved to the hallway. +11 John went to the kitchen. +12 Is John in the kitchen? yes 11 +13 Sandra went back to the bedroom. +14 Daniel moved to the bathroom. +15 Is Sandra in the bedroom? yes 13 +1 Daniel moved to the bathroom. +2 Sandra journeyed to the bathroom. +3 Is Daniel in the bathroom? yes 1 +4 Daniel moved to the office. +5 Daniel grabbed the apple there. +6 Is Daniel in the hallway? no 4 +7 Sandra went to the bedroom. +8 Sandra went to the hallway. +9 Is Sandra in the garden? no 8 +10 Sandra journeyed to the garden. +11 Daniel left the apple. +12 Is Sandra in the bedroom? no 10 +13 Daniel picked up the apple there. +14 John moved to the garden. +15 Is Sandra in the bedroom? no 10 +1 Mary journeyed to the bathroom. +2 Daniel went back to the hallway. +3 Is Daniel in the bedroom? no 2 +4 Sandra went to the kitchen. +5 Sandra got the football there. +6 Is Mary in the hallway? no 1 +7 John went back to the kitchen. +8 Daniel went to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Sandra dropped the football. +11 John journeyed to the bathroom. +12 Is Daniel in the bathroom? no 8 +13 Sandra picked up the football there. +14 Sandra dropped the football. +15 Is John in the bathroom? yes 11 +1 Mary went back to the bathroom. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel went to the hallway. +5 Mary went back to the hallway. +6 Is Mary in the garden? no 5 +7 Sandra picked up the milk there. +8 Daniel journeyed to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 John went back to the bedroom. +11 Sandra put down the milk. +12 Is John in the bedroom? yes 10 +13 Daniel moved to the hallway. +14 Sandra grabbed the milk there. +15 Is Daniel in the hallway? yes 13 +1 Sandra went to the bathroom. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 Daniel went to the garden. +5 Sandra moved to the hallway. +6 Is Daniel in the garden? yes 4 +7 Daniel went to the kitchen. +8 Daniel journeyed to the office. +9 Is Daniel in the office? yes 8 +10 John went to the kitchen. +11 Daniel journeyed to the bathroom. +12 Is John in the kitchen? yes 10 +13 John went to the bedroom. +14 Mary journeyed to the hallway. +15 Is Daniel in the kitchen? no 11 +1 Daniel grabbed the apple there. +2 Daniel put down the apple. +3 Daniel went to the office. +4 Mary went to the garden. +5 Is Daniel in the office? yes 3 +6 Sandra picked up the apple there. +7 Mary grabbed the milk there. +8 Is Mary in the garden? yes 4 +9 Sandra discarded the apple. +10 Mary travelled to the bathroom. +11 Is Mary in the bathroom? yes 10 +12 Mary dropped the milk. +13 Daniel moved to the hallway. +14 Is Daniel in the hallway? yes 13 +15 Daniel travelled to the bedroom. +16 Daniel went back to the garden. +17 Is Daniel in the garden? yes 16 +1 Sandra moved to the office. +2 Mary went back to the hallway. +3 Is Mary in the hallway? yes 2 +4 Daniel journeyed to the office. +5 Sandra journeyed to the garden. +6 Is Sandra in the garden? yes 5 +7 Mary journeyed to the garden. +8 Mary journeyed to the hallway. +9 Is Daniel in the bedroom? no 4 +10 Sandra went to the hallway. +11 Daniel went to the bedroom. +12 Is Sandra in the hallway? yes 10 +13 Daniel went back to the kitchen. +14 Mary moved to the garden. +15 Is Daniel in the garden? no 13 +1 Sandra went back to the garden. +2 John went back to the kitchen. +3 Is John in the bedroom? no 2 +4 Daniel moved to the bathroom. +5 Sandra went back to the office. +6 Is Sandra in the office? yes 5 +7 Sandra took the milk there. +8 Sandra left the milk there. +9 Is Sandra in the office? yes 5 +10 Daniel went back to the garden. +11 Daniel travelled to the bedroom. +12 Is Daniel in the bedroom? yes 11 +13 Sandra took the milk there. +14 Sandra journeyed to the hallway. +15 Is Daniel in the garden? no 11 +1 Sandra grabbed the milk there. +2 Daniel grabbed the apple there. +3 Daniel dropped the apple. +4 John went back to the hallway. +5 Is John in the hallway? yes 4 +6 Sandra put down the milk there. +7 Sandra grabbed the milk there. +8 Is John in the hallway? yes 4 +9 Sandra travelled to the office. +10 John moved to the office. +11 Is John in the kitchen? no 10 +12 Sandra moved to the bathroom. +13 Sandra went to the hallway. +14 Is Sandra in the hallway? yes 13 +15 Daniel went back to the hallway. +16 Sandra journeyed to the office. +17 Is Sandra in the bathroom? no 16 +1 John grabbed the football there. +2 Daniel took the apple there. +3 Daniel travelled to the hallway. +4 Mary went back to the kitchen. +5 Is Daniel in the hallway? yes 3 +6 Daniel discarded the apple there. +7 Sandra got the apple there. +8 Is Mary in the bathroom? no 4 +9 John dropped the football. +10 John grabbed the football there. +11 Is Mary in the hallway? no 4 +12 Sandra left the apple. +13 Mary took the milk there. +14 John discarded the football. +15 Mary moved to the hallway. +16 Is Mary in the bedroom? no 15 +17 Daniel took the apple there. +18 John went back to the garden. +19 Is John in the hallway? no 18 +1 Sandra took the football there. +2 Sandra discarded the football. +3 Sandra travelled to the garden. +4 John travelled to the office. +5 Is John in the office? yes 4 +6 Daniel picked up the apple there. +7 Mary travelled to the office. +8 Is Mary in the hallway? no 7 +9 John moved to the bathroom. +10 John went back to the hallway. +11 Is John in the bedroom? no 10 +12 Daniel left the apple there. +13 Sandra grabbed the apple there. +14 Is John in the kitchen? no 10 +15 Sandra dropped the apple. +16 Mary took the milk there. +17 Is John in the hallway? yes 10 +1 John went to the kitchen. +2 Mary grabbed the apple there. +3 Is John in the hallway? no 1 +4 Mary got the football there. +5 Sandra travelled to the garden. +6 Is John in the kitchen? yes 1 +7 Mary travelled to the bathroom. +8 John travelled to the office. +9 Is John in the office? yes 8 +10 Sandra travelled to the office. +11 Mary travelled to the hallway. +12 Is Sandra in the kitchen? no 10 +13 John journeyed to the bathroom. +14 John journeyed to the bedroom. +15 Is Mary in the hallway? yes 11 +1 Daniel went back to the bathroom. +2 John moved to the bedroom. +3 Is Daniel in the bathroom? yes 1 +4 Sandra took the football there. +5 Mary moved to the office. +6 Is Mary in the bedroom? no 5 +7 Mary went back to the garden. +8 Mary journeyed to the office. +9 Is Mary in the office? yes 8 +10 Mary went back to the bathroom. +11 Daniel journeyed to the kitchen. +12 Is Mary in the kitchen? no 10 +13 Sandra journeyed to the kitchen. +14 Sandra travelled to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra journeyed to the kitchen. +2 John went back to the bedroom. +3 Is Sandra in the kitchen? yes 1 +4 Daniel moved to the office. +5 Mary went to the bathroom. +6 Is John in the bedroom? yes 2 +7 Mary went to the garden. +8 Mary moved to the office. +9 Is John in the bedroom? yes 2 +10 Daniel travelled to the bedroom. +11 Sandra went back to the bedroom. +12 Is Daniel in the bedroom? yes 10 +13 John moved to the office. +14 John travelled to the kitchen. +15 Is Sandra in the office? no 11 +1 Mary went to the hallway. +2 John travelled to the office. +3 Is Mary in the hallway? yes 1 +4 Mary got the football there. +5 John took the milk there. +6 Is John in the hallway? no 2 +7 John discarded the milk. +8 John picked up the milk there. +9 Is John in the garden? no 2 +10 Sandra travelled to the hallway. +11 Mary went to the kitchen. +12 Is Sandra in the hallway? yes 10 +13 John went back to the bathroom. +14 Sandra went back to the garden. +15 Is Sandra in the garden? yes 14 +1 Mary went to the bathroom. +2 John moved to the bedroom. +3 Is John in the hallway? no 2 +4 Daniel grabbed the apple there. +5 Sandra got the milk there. +6 Is Mary in the bathroom? yes 1 +7 Mary moved to the bedroom. +8 Mary moved to the garden. +9 Is Mary in the bedroom? no 8 +10 John grabbed the football there. +11 Sandra journeyed to the bedroom. +12 Is Mary in the kitchen? no 8 +13 John travelled to the garden. +14 John left the football. +15 Is John in the garden? yes 13 +1 John grabbed the football there. +2 Mary moved to the hallway. +3 Is Mary in the bedroom? no 2 +4 John dropped the football there. +5 John picked up the football there. +6 Is Mary in the hallway? yes 2 +7 Mary moved to the bathroom. +8 Daniel journeyed to the bedroom. +9 Is Mary in the office? no 7 +10 Sandra went back to the kitchen. +11 Sandra went to the hallway. +12 Is Sandra in the office? no 11 +13 Daniel moved to the hallway. +14 Mary picked up the apple there. +15 Is Daniel in the bathroom? no 13 +1 John moved to the office. +2 John picked up the apple there. +3 Is John in the kitchen? no 1 +4 Sandra journeyed to the bathroom. +5 Daniel moved to the kitchen. +6 Is John in the office? yes 1 +7 Sandra went back to the garden. +8 John moved to the hallway. +9 Is John in the hallway? yes 8 +10 John went back to the bedroom. +11 Mary travelled to the office. +12 Is Sandra in the garden? yes 7 +13 Mary picked up the football there. +14 John went back to the office. +15 Is John in the office? yes 14 +1 Mary journeyed to the bathroom. +2 John went back to the bathroom. +3 Is Mary in the garden? no 1 +4 John got the football there. +5 John left the football. +6 Is John in the kitchen? no 2 +7 Daniel travelled to the hallway. +8 Mary got the football there. +9 Is Daniel in the hallway? yes 7 +10 Sandra went to the hallway. +11 John travelled to the kitchen. +12 Is John in the kitchen? yes 11 +13 Sandra picked up the apple there. +14 Sandra travelled to the bedroom. +15 Is John in the kitchen? yes 11 +1 Daniel picked up the milk there. +2 Daniel went to the office. +3 Is Daniel in the kitchen? no 2 +4 Daniel left the milk there. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Mary went back to the bathroom. +8 Daniel journeyed to the hallway. +9 Is Mary in the office? no 7 +10 Daniel went back to the garden. +11 John went to the garden. +12 Is Daniel in the bedroom? no 10 +13 Sandra moved to the hallway. +14 Daniel journeyed to the office. +15 Is Daniel in the office? yes 14 +1 Mary journeyed to the garden. +2 Mary went to the hallway. +3 Is Mary in the hallway? yes 2 +4 Sandra picked up the football there. +5 Daniel travelled to the garden. +6 Is Mary in the hallway? yes 2 +7 Mary went back to the bathroom. +8 Mary grabbed the milk there. +9 Is Mary in the bathroom? yes 7 +10 Mary put down the milk. +11 Sandra went to the bedroom. +12 Is Mary in the kitchen? no 7 +13 Mary grabbed the milk there. +14 Daniel travelled to the bathroom. +15 Is Daniel in the office? no 14 +1 John journeyed to the garden. +2 John travelled to the kitchen. +3 Is John in the bedroom? no 2 +4 John went to the hallway. +5 John grabbed the milk there. +6 Is John in the kitchen? no 4 +7 John went to the bedroom. +8 Sandra got the apple there. +9 Is John in the hallway? no 7 +10 John moved to the bathroom. +11 Sandra dropped the apple. +12 Is John in the garden? no 10 +13 Mary moved to the office. +14 John moved to the garden. +15 Is John in the bedroom? no 14 +1 Mary moved to the office. +2 Mary travelled to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 John travelled to the office. +5 John went back to the hallway. +6 Is John in the kitchen? no 5 +7 Sandra went back to the bedroom. +8 Daniel travelled to the bedroom. +9 Is Sandra in the garden? no 7 +10 John moved to the kitchen. +11 Daniel travelled to the hallway. +12 Is John in the kitchen? yes 10 +13 Daniel journeyed to the bedroom. +14 John went back to the office. +15 Is John in the bathroom? no 14 +1 Daniel grabbed the football there. +2 John grabbed the apple there. +3 John put down the apple. +4 Sandra grabbed the milk there. +5 Daniel travelled to the hallway. +6 Sandra left the milk. +7 Is Daniel in the kitchen? no 5 +8 Sandra went to the office. +9 John took the apple there. +10 Is Daniel in the bedroom? no 5 +11 John discarded the apple. +12 Sandra went back to the bathroom. +13 Is Sandra in the bathroom? yes 12 +14 Daniel dropped the football there. +15 Mary journeyed to the kitchen. +16 Is Mary in the kitchen? yes 15 +17 John grabbed the apple there. +18 Daniel picked up the football there. +19 Is Mary in the hallway? no 15 +1 Sandra went to the office. +2 John went to the hallway. +3 Is John in the bedroom? no 2 +4 John travelled to the kitchen. +5 Mary journeyed to the bedroom. +6 Is John in the office? no 4 +7 Sandra went to the bedroom. +8 Mary moved to the garden. +9 Is Mary in the garden? yes 8 +10 Sandra grabbed the milk there. +11 Mary got the football there. +12 Is Mary in the bathroom? no 8 +13 John travelled to the garden. +14 Mary went to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Mary took the apple there. +2 Sandra journeyed to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra took the football there. +5 Sandra put down the football. +6 Is Sandra in the bathroom? yes 2 +7 Mary dropped the apple. +8 Daniel travelled to the office. +9 Is Sandra in the bathroom? yes 2 +10 Sandra grabbed the football there. +11 Sandra dropped the football. +12 Is Daniel in the garden? no 8 +13 John travelled to the kitchen. +14 Sandra got the football there. +15 Is Daniel in the bedroom? no 8 +1 Mary journeyed to the kitchen. +2 Mary travelled to the office. +3 Is Mary in the hallway? no 2 +4 Daniel grabbed the apple there. +5 Daniel got the football there. +6 Is Mary in the office? yes 2 +7 Daniel left the football. +8 Daniel went to the garden. +9 Is Daniel in the kitchen? no 8 +10 Daniel discarded the apple there. +11 Daniel went back to the kitchen. +12 Is Daniel in the bedroom? no 11 +13 Sandra journeyed to the kitchen. +14 Sandra went to the bathroom. +15 Is Sandra in the hallway? no 14 +1 John journeyed to the hallway. +2 Mary picked up the football there. +3 Is John in the bedroom? no 1 +4 Daniel travelled to the kitchen. +5 Mary discarded the football. +6 Is John in the kitchen? no 1 +7 Mary took the football there. +8 John went to the kitchen. +9 Is Daniel in the office? no 4 +10 Mary left the football. +11 Mary took the football there. +12 Is John in the kitchen? yes 8 +13 Daniel went to the bathroom. +14 John went back to the bathroom. +15 Is John in the bathroom? yes 14 +1 Daniel picked up the milk there. +2 Mary went to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Daniel moved to the bathroom. +5 Mary went back to the bathroom. +6 Is Daniel in the hallway? no 4 +7 Sandra picked up the apple there. +8 John grabbed the football there. +9 Is Mary in the kitchen? no 5 +10 John moved to the office. +11 Sandra travelled to the bathroom. +12 Is Sandra in the office? no 11 +13 Mary travelled to the office. +14 John left the football. +15 Is Mary in the hallway? no 13 +1 Sandra grabbed the apple there. +2 Mary picked up the milk there. +3 John travelled to the kitchen. +4 Sandra discarded the apple. +5 Is John in the kitchen? yes 3 +6 Sandra took the apple there. +7 Mary went to the bathroom. +8 Is John in the bedroom? no 3 +9 Daniel journeyed to the bathroom. +10 Sandra left the apple. +11 Is Mary in the bathroom? yes 7 +12 John travelled to the garden. +13 Mary put down the milk. +14 Is Daniel in the bathroom? yes 9 +15 Daniel took the milk there. +16 Mary journeyed to the kitchen. +17 Is Mary in the kitchen? yes 16 +1 Sandra got the apple there. +2 Daniel grabbed the football there. +3 John took the milk there. +4 Mary went back to the hallway. +5 Is Mary in the hallway? yes 4 +6 Daniel dropped the football. +7 Sandra moved to the bathroom. +8 Is Mary in the bathroom? no 4 +9 Daniel moved to the bedroom. +10 John discarded the milk. +11 Is Daniel in the office? no 9 +12 Sandra took the football there. +13 Sandra discarded the football. +14 Is Sandra in the hallway? no 7 +15 John grabbed the milk there. +16 John discarded the milk. +17 John went back to the hallway. +18 Sandra travelled to the garden. +19 Is John in the bedroom? no 17 +1 Sandra went to the kitchen. +2 John moved to the kitchen. +3 Is Sandra in the office? no 1 +4 Sandra journeyed to the bedroom. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the garden? no 5 +7 Sandra journeyed to the kitchen. +8 Daniel went to the office. +9 Is Daniel in the office? yes 8 +10 Sandra went back to the office. +11 Sandra moved to the bathroom. +12 Is Sandra in the office? no 11 +13 Daniel travelled to the bathroom. +14 Sandra moved to the office. +15 Is Sandra in the bathroom? no 14 +1 John grabbed the football there. +2 Daniel went back to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John picked up the milk there. +5 Mary went to the office. +6 Is Mary in the office? yes 5 +7 Mary journeyed to the kitchen. +8 Sandra moved to the bedroom. +9 Is Sandra in the bathroom? no 8 +10 John put down the football. +11 Sandra moved to the garden. +12 Is Mary in the kitchen? yes 7 +13 John dropped the milk. +14 Daniel went to the garden. +15 Is Sandra in the bathroom? no 11 +1 Daniel went to the kitchen. +2 John took the milk there. +3 Is Daniel in the kitchen? yes 1 +4 Sandra went to the hallway. +5 Mary went to the hallway. +6 Is Sandra in the kitchen? no 4 +7 Sandra went to the kitchen. +8 Mary travelled to the office. +9 Is Sandra in the kitchen? yes 7 +10 Mary went back to the bedroom. +11 John moved to the garden. +12 Is John in the garden? yes 11 +13 John got the football there. +14 Mary travelled to the kitchen. +15 Is John in the garden? yes 11 +1 John travelled to the hallway. +2 Daniel picked up the milk there. +3 Is John in the hallway? yes 1 +4 John went to the bedroom. +5 John went to the hallway. +6 Is John in the office? no 5 +7 Daniel left the milk. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Mary went back to the bathroom. +11 Mary journeyed to the garden. +12 Is Mary in the garden? yes 11 +13 John took the apple there. +14 Sandra grabbed the football there. +15 Is Mary in the garden? yes 11 +1 John journeyed to the bedroom. +2 Daniel journeyed to the garden. +3 Is Daniel in the office? no 2 +4 Sandra journeyed to the garden. +5 Mary went back to the office. +6 Is Sandra in the garden? yes 4 +7 Sandra travelled to the kitchen. +8 John journeyed to the office. +9 Is Sandra in the garden? no 7 +10 Sandra moved to the garden. +11 John grabbed the football there. +12 Is Sandra in the bathroom? no 10 +13 Daniel went back to the office. +14 John discarded the football. +15 Is John in the office? yes 8 +1 Sandra went back to the bathroom. +2 John journeyed to the bathroom. +3 Is John in the bathroom? yes 2 +4 John went to the office. +5 John went to the garden. +6 Is John in the garden? yes 5 +7 Sandra moved to the hallway. +8 Mary travelled to the hallway. +9 Is Sandra in the hallway? yes 7 +10 John took the milk there. +11 Sandra picked up the football there. +12 Is John in the office? no 5 +13 Sandra left the football. +14 Mary picked up the apple there. +15 Is Mary in the garden? no 8 +1 Daniel moved to the office. +2 John picked up the apple there. +3 Is Daniel in the office? yes 1 +4 Daniel moved to the bathroom. +5 John put down the apple. +6 Is Daniel in the bathroom? yes 4 +7 John picked up the apple there. +8 Daniel went to the office. +9 Is Daniel in the kitchen? no 8 +10 Daniel went back to the kitchen. +11 Sandra journeyed to the bathroom. +12 Is Sandra in the office? no 11 +13 John journeyed to the bathroom. +14 Sandra journeyed to the bedroom. +15 Is Sandra in the kitchen? no 14 +1 Mary journeyed to the bedroom. +2 John got the apple there. +3 Is Mary in the bedroom? yes 1 +4 Sandra went back to the bedroom. +5 Sandra journeyed to the kitchen. +6 Is Mary in the kitchen? no 1 +7 John put down the apple. +8 John grabbed the apple there. +9 Is Sandra in the hallway? no 5 +10 Sandra went back to the bathroom. +11 John travelled to the kitchen. +12 Is Sandra in the kitchen? no 10 +13 John put down the apple. +14 Mary went to the office. +15 Is Sandra in the bathroom? yes 10 +1 Sandra picked up the apple there. +2 John grabbed the football there. +3 John put down the football. +4 Sandra left the apple. +5 John grabbed the football there. +6 Sandra journeyed to the garden. +7 Is Sandra in the garden? yes 6 +8 Mary journeyed to the office. +9 Mary journeyed to the bedroom. +10 Is Mary in the bedroom? yes 9 +11 John journeyed to the bedroom. +12 John went to the garden. +13 Is John in the garden? yes 12 +14 John put down the football. +15 Sandra got the football there. +16 Is John in the garden? yes 12 +17 Mary travelled to the garden. +18 Mary travelled to the office. +19 Is John in the hallway? no 12 +1 John went to the hallway. +2 Daniel travelled to the hallway. +3 Is John in the hallway? yes 1 +4 Sandra went to the hallway. +5 Mary grabbed the milk there. +6 Is Daniel in the hallway? yes 2 +7 Sandra journeyed to the garden. +8 Sandra went to the office. +9 Is Sandra in the bathroom? no 8 +10 John went back to the bathroom. +11 Mary put down the milk. +12 Is John in the bathroom? yes 10 +13 Sandra travelled to the garden. +14 Daniel moved to the office. +15 Is Sandra in the bedroom? no 13 +1 Mary went back to the garden. +2 Daniel travelled to the bedroom. +3 Is Mary in the bedroom? no 1 +4 Sandra travelled to the garden. +5 Sandra journeyed to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra went to the garden. +8 Daniel moved to the kitchen. +9 Is Sandra in the bathroom? no 7 +10 Mary travelled to the bedroom. +11 Daniel journeyed to the bathroom. +12 Is Sandra in the garden? yes 7 +13 John moved to the office. +14 Daniel took the apple there. +15 Is John in the bedroom? no 13 +1 Mary grabbed the milk there. +2 John moved to the bedroom. +3 Is John in the kitchen? no 2 +4 Mary discarded the milk. +5 John took the milk there. +6 Is John in the bedroom? yes 2 +7 Daniel travelled to the garden. +8 Sandra went to the bedroom. +9 Is Daniel in the garden? yes 7 +10 John went to the kitchen. +11 John moved to the hallway. +12 Is John in the hallway? yes 11 +13 John journeyed to the office. +14 Mary moved to the kitchen. +15 Is Sandra in the bedroom? yes 8 +1 Daniel got the milk there. +2 Daniel discarded the milk. +3 Mary picked up the apple there. +4 Daniel got the milk there. +5 Daniel put down the milk. +6 John travelled to the garden. +7 Is John in the bathroom? no 6 +8 Daniel picked up the milk there. +9 Sandra moved to the office. +10 Is Sandra in the hallway? no 9 +11 Daniel left the milk. +12 Mary discarded the apple. +13 Is Sandra in the kitchen? no 9 +14 Sandra travelled to the kitchen. +15 Daniel took the milk there. +16 Is Sandra in the bathroom? no 14 +17 Sandra went back to the hallway. +18 Mary took the apple there. +19 Is Sandra in the hallway? yes 17 +1 Daniel travelled to the kitchen. +2 Mary moved to the bedroom. +3 Is Daniel in the bedroom? no 1 +4 Sandra went back to the garden. +5 Daniel travelled to the office. +6 Is Sandra in the hallway? no 4 +7 Sandra grabbed the football there. +8 Daniel went to the hallway. +9 Is Mary in the bedroom? yes 2 +10 Sandra took the apple there. +11 John went to the bedroom. +12 Is John in the bedroom? yes 11 +13 John went back to the office. +14 Sandra dropped the apple. +15 Is Daniel in the bedroom? no 8 +1 Daniel took the football there. +2 Daniel dropped the football there. +3 Mary went to the bathroom. +4 Mary grabbed the apple there. +5 Is Mary in the hallway? no 3 +6 Mary journeyed to the bedroom. +7 Sandra went back to the office. +8 Is Mary in the bedroom? yes 6 +9 Mary put down the apple. +10 Sandra took the football there. +11 Is Mary in the bedroom? yes 6 +12 Sandra travelled to the hallway. +13 Daniel travelled to the hallway. +14 Is Sandra in the hallway? yes 12 +15 John journeyed to the bedroom. +16 Mary picked up the apple there. +17 Is Daniel in the hallway? yes 13 +1 Mary journeyed to the office. +2 John went to the bathroom. +3 Is Mary in the office? yes 1 +4 Daniel went to the garden. +5 Daniel went to the bedroom. +6 Is Mary in the office? yes 1 +7 Mary took the milk there. +8 Sandra journeyed to the office. +9 Is John in the bathroom? yes 2 +10 Sandra went back to the bedroom. +11 Sandra went to the office. +12 Is Sandra in the garden? no 11 +13 Daniel travelled to the bathroom. +14 Mary travelled to the kitchen. +15 Is Sandra in the office? yes 11 +1 Mary got the milk there. +2 Mary travelled to the garden. +3 Is Mary in the bathroom? no 2 +4 Daniel journeyed to the kitchen. +5 Daniel journeyed to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 Sandra got the football there. +8 Mary put down the milk. +9 Is Mary in the garden? yes 2 +10 John went back to the kitchen. +11 Daniel went back to the office. +12 Is Daniel in the office? yes 11 +13 John took the apple there. +14 Sandra travelled to the hallway. +15 Is Daniel in the hallway? no 11 +1 Sandra moved to the bedroom. +2 Mary grabbed the football there. +3 Is Sandra in the bedroom? yes 1 +4 Daniel grabbed the milk there. +5 Mary put down the football there. +6 Is Sandra in the bedroom? yes 1 +7 Sandra went to the kitchen. +8 Mary picked up the football there. +9 Is Sandra in the bedroom? no 7 +10 Daniel moved to the office. +11 Daniel moved to the hallway. +12 Is Daniel in the hallway? yes 11 +13 Daniel took the apple there. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the bathroom? no 14 +1 Daniel travelled to the bedroom. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 John went back to the bathroom. +5 Sandra went to the bedroom. +6 Is Daniel in the kitchen? no 2 +7 John went to the kitchen. +8 Mary moved to the garden. +9 Is John in the bedroom? no 7 +10 John picked up the football there. +11 Sandra journeyed to the hallway. +12 Is Mary in the garden? yes 8 +13 Daniel moved to the bedroom. +14 John put down the football. +15 Is Daniel in the bedroom? yes 13 +1 Sandra went to the kitchen. +2 Daniel took the apple there. +3 Is Sandra in the kitchen? yes 1 +4 John took the milk there. +5 John put down the milk. +6 Is Sandra in the kitchen? yes 1 +7 Sandra moved to the hallway. +8 John picked up the milk there. +9 Is Sandra in the hallway? yes 7 +10 John dropped the milk. +11 Sandra got the milk there. +12 Is Sandra in the hallway? yes 7 +13 Daniel dropped the apple. +14 Daniel travelled to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 John journeyed to the garden. +2 Mary grabbed the football there. +3 Is John in the garden? yes 1 +4 Mary dropped the football. +5 Sandra grabbed the milk there. +6 Is John in the garden? yes 1 +7 Sandra discarded the milk. +8 Mary went to the kitchen. +9 Is Mary in the bathroom? no 8 +10 Sandra went to the bathroom. +11 Sandra moved to the bedroom. +12 Is Mary in the office? no 8 +13 Mary went back to the garden. +14 Mary went back to the bedroom. +15 Is Mary in the garden? no 14 +1 Mary travelled to the office. +2 John got the apple there. +3 Is Mary in the office? yes 1 +4 John discarded the apple. +5 John travelled to the bedroom. +6 Is John in the bedroom? yes 5 +7 Sandra travelled to the garden. +8 Sandra went back to the bedroom. +9 Is John in the office? no 5 +10 Mary journeyed to the hallway. +11 Daniel journeyed to the hallway. +12 Is Daniel in the garden? no 11 +13 Daniel went to the kitchen. +14 Daniel went to the garden. +15 Is Daniel in the kitchen? no 14 +1 Sandra moved to the hallway. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary picked up the apple there. +5 Daniel went back to the bathroom. +6 Is Daniel in the hallway? no 5 +7 Sandra journeyed to the bathroom. +8 John went back to the garden. +9 Is Daniel in the bathroom? yes 5 +10 Sandra journeyed to the office. +11 Sandra journeyed to the bedroom. +12 Is Daniel in the office? no 5 +13 Daniel moved to the office. +14 Daniel journeyed to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 John moved to the bedroom. +2 Sandra moved to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra grabbed the milk there. +5 Daniel moved to the kitchen. +6 Is John in the bedroom? yes 1 +7 Sandra discarded the milk there. +8 John travelled to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra picked up the milk there. +11 Sandra discarded the milk there. +12 Is John in the hallway? yes 8 +13 Daniel went back to the bedroom. +14 John went to the office. +15 Is Daniel in the bedroom? yes 13 +1 John got the milk there. +2 John dropped the milk. +3 Sandra went back to the kitchen. +4 Sandra picked up the milk there. +5 Is Sandra in the kitchen? yes 3 +6 Sandra dropped the milk. +7 John got the milk there. +8 Is Sandra in the garden? no 3 +9 Daniel got the apple there. +10 Daniel travelled to the kitchen. +11 Is Daniel in the bedroom? no 10 +12 Daniel travelled to the bathroom. +13 Mary moved to the hallway. +14 Is Daniel in the bathroom? yes 12 +15 Daniel picked up the football there. +16 Sandra journeyed to the bedroom. +17 Is Daniel in the hallway? no 12 +1 Daniel grabbed the football there. +2 Sandra travelled to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Daniel journeyed to the garden. +5 Daniel put down the football. +6 Is Sandra in the hallway? no 2 +7 Mary travelled to the bathroom. +8 Daniel went to the bedroom. +9 Is Mary in the office? no 7 +10 Daniel travelled to the garden. +11 Daniel grabbed the milk there. +12 Is Daniel in the hallway? no 10 +13 Mary travelled to the kitchen. +14 Mary went to the garden. +15 Is Mary in the bathroom? no 14 +1 John picked up the football there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Daniel travelled to the hallway. +5 Sandra went back to the bathroom. +6 Is Sandra in the bedroom? no 5 +7 Daniel went back to the kitchen. +8 Mary went to the kitchen. +9 Is Sandra in the kitchen? no 5 +10 Sandra moved to the kitchen. +11 Daniel travelled to the bathroom. +12 Is Sandra in the bathroom? no 10 +13 John discarded the football. +14 Mary went back to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 John took the football there. +2 Daniel moved to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Sandra travelled to the kitchen. +5 John journeyed to the hallway. +6 Is Sandra in the hallway? no 4 +7 Sandra travelled to the bedroom. +8 Sandra journeyed to the hallway. +9 Is Daniel in the hallway? yes 2 +10 Daniel journeyed to the garden. +11 John travelled to the bathroom. +12 Is Daniel in the kitchen? no 10 +13 John put down the football. +14 John grabbed the football there. +15 Is Daniel in the garden? yes 10 +1 John went to the office. +2 Daniel moved to the office. +3 Is Daniel in the hallway? no 2 +4 Mary went to the bedroom. +5 Sandra went back to the bathroom. +6 Is Daniel in the office? yes 2 +7 Sandra went to the garden. +8 Sandra went to the kitchen. +9 Is Mary in the bedroom? yes 4 +10 John went to the garden. +11 Sandra moved to the garden. +12 Is Sandra in the bathroom? no 11 +13 John went back to the office. +14 John moved to the garden. +15 Is Sandra in the garden? yes 11 +1 Sandra took the football there. +2 Sandra travelled to the hallway. +3 Is Sandra in the garden? no 2 +4 Daniel went to the garden. +5 Daniel moved to the bathroom. +6 Is Daniel in the kitchen? no 5 +7 Daniel picked up the milk there. +8 Sandra dropped the football. +9 Is Daniel in the bathroom? yes 5 +10 John journeyed to the kitchen. +11 Sandra went back to the bathroom. +12 Is John in the kitchen? yes 10 +13 John journeyed to the bedroom. +14 Sandra journeyed to the bedroom. +15 Is John in the garden? no 13 +1 Daniel travelled to the bathroom. +2 John travelled to the garden. +3 Is Daniel in the bathroom? yes 1 +4 John went to the bathroom. +5 John travelled to the bedroom. +6 Is John in the bedroom? yes 5 +7 Daniel went back to the bedroom. +8 John picked up the football there. +9 Is John in the bedroom? yes 5 +10 John put down the football. +11 Daniel picked up the football there. +12 Is John in the garden? no 5 +13 Sandra went back to the hallway. +14 Mary journeyed to the bedroom. +15 Is Mary in the bathroom? no 14 +1 John picked up the milk there. +2 Daniel went back to the office. +3 Is Daniel in the kitchen? no 2 +4 Daniel picked up the football there. +5 John dropped the milk. +6 Is Daniel in the office? yes 2 +7 Daniel put down the football. +8 Sandra went back to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 John picked up the milk there. +11 Daniel moved to the bathroom. +12 Is Daniel in the hallway? no 11 +13 Daniel moved to the office. +14 Sandra journeyed to the kitchen. +15 Is Daniel in the bathroom? no 13 +1 Mary travelled to the office. +2 Daniel journeyed to the kitchen. +3 Is Mary in the office? yes 1 +4 Daniel travelled to the bathroom. +5 John went to the bedroom. +6 Is John in the bathroom? no 5 +7 John went back to the bathroom. +8 John went back to the hallway. +9 Is Daniel in the office? no 4 +10 Sandra went back to the garden. +11 Daniel got the apple there. +12 Is John in the bedroom? no 8 +13 Daniel left the apple. +14 Sandra went to the bathroom. +15 Is Sandra in the garden? no 14 +1 John went back to the office. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the office? no 2 +4 John got the football there. +5 Daniel moved to the bathroom. +6 Is John in the office? yes 1 +7 John dropped the football. +8 Mary moved to the office. +9 Is Sandra in the kitchen? yes 2 +10 John journeyed to the bathroom. +11 Mary grabbed the football there. +12 Is Mary in the office? yes 8 +13 Daniel travelled to the kitchen. +14 Mary put down the football. +15 Is Mary in the hallway? no 8 +1 John moved to the office. +2 Mary grabbed the apple there. +3 Is John in the office? yes 1 +4 Mary discarded the apple. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the garden? no 5 +7 Sandra went to the bedroom. +8 John journeyed to the bedroom. +9 Is John in the hallway? no 8 +10 John took the milk there. +11 John journeyed to the garden. +12 Is Daniel in the bedroom? yes 5 +13 Sandra moved to the hallway. +14 John put down the milk there. +15 Is Sandra in the hallway? yes 13 +1 Mary took the football there. +2 Sandra went back to the bedroom. +3 Is Sandra in the kitchen? no 2 +4 Daniel went to the kitchen. +5 John travelled to the hallway. +6 Is Sandra in the bedroom? yes 2 +7 Sandra went to the office. +8 Sandra journeyed to the bedroom. +9 Is John in the kitchen? no 5 +10 John went back to the kitchen. +11 Mary discarded the football there. +12 Is John in the bathroom? no 10 +13 Mary went back to the kitchen. +14 Daniel moved to the office. +15 Is John in the bedroom? no 10 +1 John went back to the hallway. +2 John journeyed to the garden. +3 Is John in the bathroom? no 2 +4 John travelled to the kitchen. +5 John went to the office. +6 Is John in the garden? no 5 +7 Sandra went back to the kitchen. +8 Mary moved to the garden. +9 Is Mary in the garden? yes 8 +10 Daniel moved to the bathroom. +11 Sandra went to the garden. +12 Is Mary in the garden? yes 8 +13 Sandra travelled to the bedroom. +14 Mary took the milk there. +15 Is Daniel in the hallway? no 10 +1 Daniel travelled to the hallway. +2 Daniel went to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John went to the hallway. +5 Mary moved to the bedroom. +6 Is Daniel in the bedroom? yes 2 +7 John journeyed to the bathroom. +8 John journeyed to the kitchen. +9 Is Mary in the bedroom? yes 5 +10 Sandra moved to the office. +11 Sandra went to the bedroom. +12 Is Mary in the bathroom? no 5 +13 Sandra journeyed to the kitchen. +14 John went to the hallway. +15 Is John in the hallway? yes 14 +1 John got the milk there. +2 Mary grabbed the apple there. +3 Daniel got the football there. +4 Mary travelled to the hallway. +5 Is Mary in the garden? no 4 +6 John discarded the milk. +7 John grabbed the milk there. +8 Is Mary in the office? no 4 +9 Mary went back to the kitchen. +10 John dropped the milk. +11 Is Mary in the hallway? no 9 +12 Daniel dropped the football. +13 Daniel got the football there. +14 Is Mary in the bedroom? no 9 +15 Sandra went to the office. +16 Sandra went back to the garden. +17 Is Sandra in the garden? yes 16 +1 Mary went to the hallway. +2 John grabbed the apple there. +3 Is Mary in the garden? no 1 +4 Mary went back to the garden. +5 Sandra journeyed to the garden. +6 Is Sandra in the hallway? no 5 +7 John went to the bedroom. +8 Daniel went to the bedroom. +9 Is Mary in the garden? yes 4 +10 John dropped the apple. +11 John moved to the hallway. +12 Is Daniel in the bedroom? yes 8 +13 Daniel moved to the bathroom. +14 John moved to the bedroom. +15 Is Daniel in the bathroom? yes 13 +1 Daniel went back to the bedroom. +2 Mary took the football there. +3 Is Daniel in the bedroom? yes 1 +4 Sandra took the milk there. +5 Sandra discarded the milk. +6 Is Daniel in the bathroom? no 1 +7 Sandra got the milk there. +8 Mary travelled to the bedroom. +9 Is Mary in the kitchen? no 8 +10 Daniel went back to the garden. +11 Sandra left the milk. +12 Is Mary in the bedroom? yes 8 +13 Daniel went back to the kitchen. +14 Daniel moved to the garden. +15 Is Daniel in the kitchen? no 14 +1 John went back to the kitchen. +2 John went back to the bathroom. +3 Is John in the bathroom? yes 2 +4 John journeyed to the kitchen. +5 Mary travelled to the office. +6 Is John in the garden? no 4 +7 Mary travelled to the garden. +8 John moved to the bedroom. +9 Is John in the kitchen? no 8 +10 Daniel travelled to the hallway. +11 Mary travelled to the hallway. +12 Is John in the office? no 8 +13 Mary got the football there. +14 Sandra journeyed to the office. +15 Is Sandra in the office? yes 14 +1 Sandra travelled to the bathroom. +2 Sandra moved to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 John moved to the bathroom. +5 John went to the hallway. +6 Is Sandra in the kitchen? yes 2 +7 Mary journeyed to the hallway. +8 John got the apple there. +9 Is Sandra in the office? no 2 +10 Mary went to the garden. +11 Sandra moved to the office. +12 Is Sandra in the hallway? no 11 +13 John discarded the apple. +14 Sandra travelled to the kitchen. +15 Is Mary in the garden? yes 10 +1 Mary grabbed the milk there. +2 John went back to the bedroom. +3 Is John in the bedroom? yes 2 +4 Daniel journeyed to the office. +5 Mary dropped the milk. +6 Is Daniel in the bedroom? no 4 +7 John travelled to the kitchen. +8 Sandra grabbed the milk there. +9 Is John in the office? no 7 +10 Daniel journeyed to the bathroom. +11 Sandra put down the milk there. +12 Is Daniel in the bathroom? yes 10 +13 Mary journeyed to the office. +14 Daniel moved to the office. +15 Is Daniel in the office? yes 14 +1 John got the apple there. +2 Sandra grabbed the milk there. +3 Sandra journeyed to the bedroom. +4 John went back to the bathroom. +5 Is John in the bathroom? yes 4 +6 Mary moved to the office. +7 Sandra grabbed the football there. +8 Is Sandra in the kitchen? no 3 +9 John went to the office. +10 Sandra dropped the football. +11 Is John in the office? yes 9 +12 John moved to the garden. +13 John dropped the apple. +14 Is John in the garden? yes 12 +15 Daniel went back to the garden. +16 Daniel picked up the apple there. +17 Is Daniel in the hallway? no 15 +1 Sandra moved to the bedroom. +2 John moved to the hallway. +3 Is Sandra in the bathroom? no 1 +4 Daniel went back to the garden. +5 Sandra went to the kitchen. +6 Is Daniel in the bedroom? no 4 +7 Daniel travelled to the kitchen. +8 Daniel took the apple there. +9 Is Daniel in the kitchen? yes 7 +10 Sandra grabbed the football there. +11 Mary went back to the bathroom. +12 Is Daniel in the bedroom? no 7 +13 Sandra went back to the bedroom. +14 Mary journeyed to the garden. +15 Is Mary in the garden? yes 14 +1 Sandra travelled to the bedroom. +2 Daniel moved to the bedroom. +3 Is Daniel in the garden? no 2 +4 Daniel got the milk there. +5 Mary went to the office. +6 Is Sandra in the bedroom? yes 1 +7 Sandra went to the garden. +8 Daniel discarded the milk. +9 Is Mary in the office? yes 5 +10 John went to the hallway. +11 Daniel took the milk there. +12 Is John in the hallway? yes 10 +13 Mary travelled to the garden. +14 John went to the kitchen. +15 Is John in the kitchen? yes 14 +1 Daniel moved to the bathroom. +2 Daniel took the football there. +3 Is Daniel in the office? no 1 +4 Daniel left the football. +5 Daniel travelled to the office. +6 Is Daniel in the office? yes 5 +7 John went back to the bathroom. +8 Daniel moved to the bathroom. +9 Is John in the bedroom? no 7 +10 Mary went to the bedroom. +11 John journeyed to the kitchen. +12 Is Daniel in the bedroom? no 8 +13 John took the apple there. +14 Daniel took the football there. +15 Is Daniel in the bathroom? yes 8 +1 Sandra moved to the kitchen. +2 John journeyed to the garden. +3 Is Sandra in the kitchen? yes 1 +4 John went to the office. +5 Daniel moved to the garden. +6 Is John in the bathroom? no 4 +7 John picked up the apple there. +8 John left the apple. +9 Is Daniel in the kitchen? no 5 +10 Daniel moved to the hallway. +11 Mary went back to the garden. +12 Is Daniel in the hallway? yes 10 +13 John moved to the bedroom. +14 Sandra moved to the office. +15 Is Mary in the kitchen? no 11 +1 Mary travelled to the garden. +2 Mary moved to the bathroom. +3 Is Mary in the bedroom? no 2 +4 Sandra went back to the office. +5 Sandra grabbed the apple there. +6 Is Sandra in the kitchen? no 4 +7 Sandra put down the apple. +8 Sandra moved to the hallway. +9 Is Mary in the bedroom? no 2 +10 Mary went back to the office. +11 Sandra went back to the bedroom. +12 Is Sandra in the bathroom? no 11 +13 Mary went back to the hallway. +14 Sandra travelled to the office. +15 Is Mary in the hallway? yes 13 +1 John moved to the garden. +2 Mary went to the office. +3 Is John in the garden? yes 1 +4 Mary went back to the bedroom. +5 Sandra went to the hallway. +6 Is Mary in the office? no 4 +7 John journeyed to the kitchen. +8 John went back to the office. +9 Is John in the office? yes 8 +10 Sandra moved to the garden. +11 Sandra went back to the kitchen. +12 Is John in the office? yes 8 +13 Daniel went back to the kitchen. +14 Sandra went to the office. +15 Is Sandra in the garden? no 14 +1 Mary got the apple there. +2 Sandra moved to the kitchen. +3 Is Sandra in the garden? no 2 +4 Mary discarded the apple there. +5 Sandra grabbed the football there. +6 Is Sandra in the kitchen? yes 2 +7 Sandra left the football. +8 Mary went back to the garden. +9 Is Sandra in the kitchen? yes 2 +10 Daniel moved to the garden. +11 Daniel went to the kitchen. +12 Is Daniel in the garden? no 11 +13 Sandra journeyed to the bedroom. +14 Sandra travelled to the garden. +15 Is Sandra in the bedroom? no 14 +1 Sandra took the milk there. +2 Sandra dropped the milk. +3 Sandra grabbed the milk there. +4 Mary grabbed the football there. +5 Sandra put down the milk there. +6 Daniel journeyed to the bedroom. +7 Is Daniel in the bedroom? yes 6 +8 John got the milk there. +9 Mary got the apple there. +10 Is Daniel in the bedroom? yes 6 +11 Mary travelled to the hallway. +12 Mary went to the garden. +13 Is Daniel in the office? no 6 +14 Mary moved to the bedroom. +15 Daniel journeyed to the bathroom. +16 Is Mary in the bedroom? yes 14 +17 Mary went back to the hallway. +18 John left the milk. +19 Is Mary in the hallway? yes 17 +1 Mary travelled to the bedroom. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bathroom? no 2 +4 Sandra grabbed the milk there. +5 Sandra journeyed to the kitchen. +6 Is Sandra in the office? no 5 +7 Sandra discarded the milk. +8 Daniel journeyed to the kitchen. +9 Is Sandra in the kitchen? yes 5 +10 Mary went to the hallway. +11 John went to the hallway. +12 Is Mary in the bedroom? no 10 +13 Sandra grabbed the milk there. +14 Sandra dropped the milk. +15 Is Mary in the bathroom? no 10 +1 Mary went to the bedroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel went back to the hallway. +5 Daniel moved to the kitchen. +6 Is Sandra in the kitchen? yes 2 +7 John journeyed to the hallway. +8 John went back to the kitchen. +9 Is Daniel in the bedroom? no 5 +10 John journeyed to the office. +11 Sandra moved to the bathroom. +12 Is Sandra in the bathroom? yes 11 +13 Sandra picked up the apple there. +14 John got the milk there. +15 Is John in the kitchen? no 10 +1 Mary went back to the bathroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary got the apple there. +5 Sandra went back to the bedroom. +6 Is Mary in the office? no 1 +7 John went to the kitchen. +8 Daniel went back to the bedroom. +9 Is Sandra in the bedroom? yes 5 +10 Mary travelled to the hallway. +11 Mary travelled to the office. +12 Is Sandra in the bedroom? yes 5 +13 Sandra journeyed to the bathroom. +14 Mary put down the apple. +15 Is Mary in the office? yes 11 +1 Mary moved to the bedroom. +2 Daniel grabbed the apple there. +3 Is Mary in the bedroom? yes 1 +4 John travelled to the bedroom. +5 Daniel moved to the bathroom. +6 Is Mary in the garden? no 1 +7 Sandra travelled to the office. +8 Sandra went back to the bedroom. +9 Is John in the kitchen? no 4 +10 Daniel left the apple. +11 Daniel grabbed the apple there. +12 Is Daniel in the bathroom? yes 5 +13 Daniel discarded the apple. +14 Daniel moved to the garden. +15 Is Sandra in the bedroom? yes 8 +1 Sandra journeyed to the kitchen. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John went back to the office. +5 Mary went back to the bedroom. +6 Is Mary in the garden? no 5 +7 John went to the kitchen. +8 Sandra took the apple there. +9 Is John in the kitchen? yes 7 +10 Daniel travelled to the kitchen. +11 Mary went to the bathroom. +12 Is Mary in the kitchen? no 11 +13 Sandra moved to the garden. +14 Sandra discarded the apple. +15 Is Sandra in the garden? yes 13 +1 John moved to the hallway. +2 John journeyed to the office. +3 Is John in the bathroom? no 2 +4 Mary journeyed to the bedroom. +5 John journeyed to the bedroom. +6 Is Mary in the hallway? no 4 +7 Sandra went back to the office. +8 Mary travelled to the bathroom. +9 Is John in the kitchen? no 5 +10 John went back to the garden. +11 Sandra went back to the garden. +12 Is Mary in the hallway? no 8 +13 Sandra moved to the hallway. +14 Mary took the football there. +15 Is Mary in the bathroom? yes 8 +1 Daniel travelled to the office. +2 John went to the office. +3 Is Daniel in the bathroom? no 1 +4 Sandra journeyed to the bathroom. +5 John journeyed to the bedroom. +6 Is John in the bedroom? yes 5 +7 Sandra went back to the garden. +8 Sandra moved to the kitchen. +9 Is John in the bathroom? no 5 +10 Sandra went back to the hallway. +11 Sandra went to the kitchen. +12 Is Sandra in the bathroom? no 11 +13 John went to the garden. +14 Sandra journeyed to the office. +15 Is Sandra in the bathroom? no 14 +1 Daniel went to the garden. +2 John picked up the apple there. +3 Is Daniel in the kitchen? no 1 +4 Mary journeyed to the bedroom. +5 Sandra went back to the bathroom. +6 Is Sandra in the kitchen? no 5 +7 John went back to the bedroom. +8 Daniel moved to the bedroom. +9 Is Sandra in the bathroom? yes 5 +10 John journeyed to the bathroom. +11 John left the apple. +12 Is John in the bathroom? yes 10 +13 Daniel travelled to the kitchen. +14 John got the apple there. +15 Is Daniel in the kitchen? yes 13 +1 Sandra went back to the bathroom. +2 Mary got the milk there. +3 Is Sandra in the bedroom? no 1 +4 Mary moved to the hallway. +5 Mary went to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 John went back to the hallway. +8 John moved to the garden. +9 Is Mary in the kitchen? yes 5 +10 Sandra journeyed to the office. +11 John went back to the hallway. +12 Is John in the hallway? yes 11 +13 John went back to the garden. +14 Mary picked up the football there. +15 Is John in the office? no 13 +1 Mary moved to the garden. +2 John journeyed to the hallway. +3 Is Mary in the garden? yes 1 +4 Mary moved to the bedroom. +5 John travelled to the kitchen. +6 Is John in the hallway? no 5 +7 Mary journeyed to the office. +8 Daniel journeyed to the garden. +9 Is Daniel in the garden? yes 8 +10 John grabbed the apple there. +11 Sandra travelled to the bathroom. +12 Is Daniel in the garden? yes 8 +13 Mary moved to the kitchen. +14 John journeyed to the office. +15 Is Daniel in the office? no 8 +1 John moved to the hallway. +2 Mary went to the garden. +3 Is Mary in the kitchen? no 2 +4 Sandra went to the office. +5 Sandra moved to the bathroom. +6 Is Mary in the garden? yes 2 +7 Mary travelled to the office. +8 John went to the garden. +9 Is Sandra in the hallway? no 5 +10 Mary picked up the apple there. +11 Sandra journeyed to the office. +12 Is John in the garden? yes 8 +13 Sandra went back to the kitchen. +14 Sandra went to the office. +15 Is Sandra in the office? yes 14 +1 Daniel got the apple there. +2 John picked up the football there. +3 Daniel went back to the office. +4 Daniel discarded the apple. +5 Is Daniel in the office? yes 3 +6 Daniel took the apple there. +7 Daniel moved to the bathroom. +8 Is Daniel in the bathroom? yes 7 +9 Daniel went to the bedroom. +10 Daniel travelled to the garden. +11 Is Daniel in the garden? yes 10 +12 Daniel moved to the office. +13 Daniel put down the apple. +14 Is Daniel in the hallway? no 12 +15 Sandra moved to the bedroom. +16 John put down the football. +17 Is Daniel in the garden? no 12 +1 Mary took the football there. +2 Mary went to the kitchen. +3 Is Mary in the hallway? no 2 +4 John went to the garden. +5 Sandra moved to the bathroom. +6 Is John in the office? no 4 +7 Mary put down the football there. +8 Daniel moved to the office. +9 Is Daniel in the bathroom? no 8 +10 Daniel got the milk there. +11 Mary got the football there. +12 Is Daniel in the office? yes 8 +13 Sandra went to the garden. +14 Daniel discarded the milk there. +15 Is Daniel in the office? yes 8 +1 Daniel grabbed the apple there. +2 Daniel journeyed to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Mary went to the office. +5 Sandra moved to the office. +6 Is Mary in the bedroom? no 4 +7 Sandra went to the bedroom. +8 Daniel went back to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Daniel dropped the apple there. +11 Daniel grabbed the apple there. +12 Is Sandra in the bathroom? no 7 +13 Daniel put down the apple. +14 John travelled to the kitchen. +15 Is Daniel in the kitchen? yes 8 +1 Daniel picked up the milk there. +2 John picked up the apple there. +3 Mary travelled to the garden. +4 Daniel travelled to the kitchen. +5 Is Daniel in the bedroom? no 4 +6 Daniel moved to the bedroom. +7 Sandra went back to the kitchen. +8 Is Daniel in the garden? no 6 +9 Daniel put down the milk. +10 Mary went to the office. +11 Is Daniel in the bedroom? yes 6 +12 Mary journeyed to the bedroom. +13 Daniel picked up the milk there. +14 Is Mary in the kitchen? no 12 +15 John discarded the apple there. +16 Mary journeyed to the kitchen. +17 Is Mary in the kitchen? yes 16 +1 Sandra went back to the bathroom. +2 John journeyed to the kitchen. +3 Is Sandra in the bathroom? yes 1 +4 John went back to the bathroom. +5 Sandra moved to the bedroom. +6 Is John in the bathroom? yes 4 +7 Daniel travelled to the bathroom. +8 Sandra moved to the office. +9 Is John in the bathroom? yes 4 +10 Daniel went to the garden. +11 Mary travelled to the bathroom. +12 Is Sandra in the garden? no 8 +13 John travelled to the garden. +14 John went to the kitchen. +15 Is Mary in the bathroom? yes 11 +1 Mary went to the office. +2 Daniel went back to the bathroom. +3 Is Mary in the office? yes 1 +4 Daniel went back to the office. +5 Sandra went back to the office. +6 Is Daniel in the office? yes 4 +7 Daniel travelled to the garden. +8 Sandra travelled to the bathroom. +9 Is Daniel in the kitchen? no 7 +10 Daniel grabbed the apple there. +11 Daniel grabbed the milk there. +12 Is Sandra in the bathroom? yes 8 +13 John went back to the bedroom. +14 Daniel dropped the apple. +15 Is John in the office? no 13 +1 Sandra travelled to the hallway. +2 Daniel moved to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel travelled to the hallway. +5 Daniel took the football there. +6 Is Daniel in the hallway? yes 4 +7 John moved to the hallway. +8 Sandra moved to the garden. +9 Is Daniel in the hallway? yes 4 +10 Daniel went to the office. +11 Sandra travelled to the kitchen. +12 Is Daniel in the office? yes 10 +13 Mary got the milk there. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel grabbed the football there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Daniel left the football. +5 Daniel grabbed the football there. +6 Is Daniel in the garden? no 2 +7 John travelled to the bedroom. +8 Daniel put down the football. +9 Is Daniel in the office? no 2 +10 John travelled to the office. +11 Daniel went back to the kitchen. +12 Is Daniel in the hallway? no 11 +13 Mary travelled to the garden. +14 John moved to the bathroom. +15 Is Mary in the garden? yes 13 +1 Daniel journeyed to the bedroom. +2 Daniel travelled to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 Sandra moved to the kitchen. +5 John moved to the garden. +6 Is Sandra in the hallway? no 4 +7 John grabbed the football there. +8 John went to the kitchen. +9 Is Daniel in the bedroom? no 2 +10 Daniel moved to the bedroom. +11 Mary grabbed the apple there. +12 Is Daniel in the bedroom? yes 10 +13 John got the milk there. +14 Sandra went to the hallway. +15 Is Daniel in the hallway? no 10 +1 John went to the bedroom. +2 Daniel journeyed to the garden. +3 Is John in the bedroom? yes 1 +4 Daniel went back to the bedroom. +5 Sandra travelled to the office. +6 Is Sandra in the bedroom? no 5 +7 Sandra went to the bathroom. +8 John travelled to the garden. +9 Is Sandra in the bathroom? yes 7 +10 John journeyed to the bedroom. +11 Sandra went back to the hallway. +12 Is John in the hallway? no 10 +13 Mary went back to the bedroom. +14 Mary went back to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 John journeyed to the hallway. +2 Daniel took the milk there. +3 Is John in the hallway? yes 1 +4 Daniel went to the bedroom. +5 Daniel travelled to the garden. +6 Is John in the kitchen? no 1 +7 Mary went back to the bedroom. +8 Daniel grabbed the apple there. +9 Is Mary in the kitchen? no 7 +10 Daniel moved to the hallway. +11 Daniel left the apple. +12 Is Daniel in the bathroom? no 10 +13 Daniel discarded the milk there. +14 Mary moved to the hallway. +15 Is Daniel in the hallway? yes 10 +1 Mary got the milk there. +2 John went back to the garden. +3 Is John in the garden? yes 2 +4 Mary discarded the milk there. +5 Mary travelled to the bedroom. +6 Is John in the garden? yes 2 +7 John grabbed the apple there. +8 Sandra travelled to the bedroom. +9 Is Mary in the bathroom? no 5 +10 John journeyed to the office. +11 John went to the bedroom. +12 Is Sandra in the bedroom? yes 8 +13 Mary journeyed to the bathroom. +14 John discarded the apple. +15 Is John in the garden? no 11 +1 John moved to the hallway. +2 Daniel moved to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John travelled to the bathroom. +5 Daniel travelled to the hallway. +6 Is John in the bathroom? yes 4 +7 Sandra got the milk there. +8 Mary went to the bedroom. +9 Is Daniel in the hallway? yes 5 +10 Mary went to the garden. +11 Mary travelled to the bedroom. +12 Is Daniel in the bathroom? no 5 +13 Sandra travelled to the bathroom. +14 Sandra put down the milk. +15 Is Mary in the bedroom? yes 11 +1 Daniel journeyed to the kitchen. +2 John travelled to the office. +3 Is Daniel in the kitchen? yes 1 +4 John moved to the hallway. +5 Daniel took the apple there. +6 Is John in the bedroom? no 4 +7 Mary grabbed the football there. +8 Mary travelled to the bathroom. +9 Is John in the kitchen? no 4 +10 Daniel discarded the apple. +11 Daniel took the apple there. +12 Is Mary in the garden? no 8 +13 Daniel put down the apple there. +14 Mary put down the football. +15 Is Mary in the office? no 8 +1 Sandra picked up the football there. +2 Sandra dropped the football. +3 John journeyed to the hallway. +4 Sandra went to the bathroom. +5 Is John in the hallway? yes 3 +6 Sandra travelled to the garden. +7 Daniel moved to the hallway. +8 Is Sandra in the garden? yes 6 +9 Daniel journeyed to the kitchen. +10 Mary got the milk there. +11 Is Sandra in the kitchen? no 6 +12 Sandra travelled to the hallway. +13 Daniel journeyed to the garden. +14 Is Daniel in the office? no 13 +15 John moved to the office. +16 Mary dropped the milk. +17 Is Sandra in the bathroom? no 12 +1 Daniel journeyed to the bathroom. +2 Sandra moved to the bedroom. +3 Is Daniel in the bathroom? yes 1 +4 Mary picked up the football there. +5 John travelled to the bedroom. +6 Is Daniel in the bathroom? yes 1 +7 Daniel moved to the bedroom. +8 Daniel went back to the kitchen. +9 Is Sandra in the bedroom? yes 2 +10 Daniel went to the bathroom. +11 Sandra travelled to the kitchen. +12 Is Daniel in the garden? no 10 +13 Mary left the football. +14 Daniel travelled to the office. +15 Is Sandra in the office? no 11 +1 Daniel moved to the bathroom. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary moved to the office. +5 Mary went back to the bathroom. +6 Is Daniel in the bedroom? yes 2 +7 Daniel moved to the garden. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 Sandra travelled to the hallway. +11 Mary moved to the garden. +12 Is Mary in the kitchen? no 11 +13 Sandra journeyed to the bathroom. +14 John went back to the office. +15 Is Sandra in the garden? no 13 +1 Sandra journeyed to the hallway. +2 John moved to the bedroom. +3 Is John in the bedroom? yes 2 +4 Daniel took the football there. +5 Daniel went to the garden. +6 Is Daniel in the kitchen? no 5 +7 Sandra moved to the bedroom. +8 Mary went back to the hallway. +9 Is Mary in the hallway? yes 8 +10 John journeyed to the bathroom. +11 Mary went back to the bedroom. +12 Is Daniel in the bedroom? no 5 +13 John journeyed to the kitchen. +14 Mary went to the office. +15 Is Mary in the office? yes 14 +1 Mary went to the office. +2 Daniel journeyed to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 John travelled to the garden. +5 John travelled to the bedroom. +6 Is Mary in the office? yes 1 +7 Mary travelled to the bathroom. +8 John went to the hallway. +9 Is Daniel in the garden? no 2 +10 John took the milk there. +11 John dropped the milk. +12 Is Mary in the bedroom? no 7 +13 John went to the office. +14 Mary travelled to the bedroom. +15 Is John in the office? yes 13 +1 Daniel went to the bathroom. +2 Daniel travelled to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 Mary picked up the apple there. +5 Sandra travelled to the garden. +6 Is Daniel in the bedroom? yes 2 +7 Sandra went back to the hallway. +8 Daniel went to the bathroom. +9 Is Sandra in the office? no 7 +10 John went back to the garden. +11 Sandra took the football there. +12 Is Sandra in the hallway? yes 7 +13 Mary discarded the apple. +14 Mary went to the garden. +15 Is John in the office? no 10 +1 Sandra picked up the apple there. +2 Daniel went back to the garden. +3 Is Daniel in the office? no 2 +4 Sandra left the apple. +5 Mary journeyed to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 John travelled to the bathroom. +8 John moved to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra journeyed to the bedroom. +11 Daniel grabbed the football there. +12 Is Sandra in the bathroom? no 10 +13 John went back to the kitchen. +14 Daniel left the football. +15 Is John in the kitchen? yes 13 +1 Daniel went to the kitchen. +2 John travelled to the hallway. +3 Is Daniel in the bathroom? no 1 +4 John went to the bathroom. +5 John moved to the garden. +6 Is John in the garden? yes 5 +7 Sandra journeyed to the bathroom. +8 Daniel went back to the bathroom. +9 Is Sandra in the bathroom? yes 7 +10 Sandra took the football there. +11 John moved to the bedroom. +12 Is Sandra in the bedroom? no 7 +13 John travelled to the hallway. +14 Mary moved to the hallway. +15 Is Daniel in the kitchen? no 8 +1 Mary went to the kitchen. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel grabbed the football there. +5 Sandra journeyed to the bathroom. +6 Is Mary in the kitchen? yes 1 +7 Sandra moved to the hallway. +8 John picked up the apple there. +9 Is Sandra in the office? no 7 +10 Daniel discarded the football. +11 John moved to the bathroom. +12 Is Sandra in the office? no 7 +13 Mary journeyed to the office. +14 John discarded the apple. +15 Is John in the bathroom? yes 11 +1 John got the apple there. +2 John dropped the apple. +3 Mary got the milk there. +4 Mary put down the milk. +5 John journeyed to the bedroom. +6 Sandra went back to the kitchen. +7 Is Sandra in the hallway? no 6 +8 Mary grabbed the football there. +9 Daniel went back to the office. +10 Is Daniel in the office? yes 9 +11 Mary went back to the garden. +12 Mary moved to the bathroom. +13 Is Sandra in the garden? no 6 +14 Sandra went to the office. +15 John moved to the office. +16 Is John in the office? yes 15 +17 John went back to the bedroom. +18 John journeyed to the garden. +19 Is Sandra in the office? yes 14 +1 John moved to the office. +2 Daniel grabbed the milk there. +3 Is John in the office? yes 1 +4 Daniel journeyed to the bedroom. +5 Daniel put down the milk. +6 Is John in the office? yes 1 +7 Daniel journeyed to the garden. +8 Daniel got the football there. +9 Is Daniel in the garden? yes 7 +10 Mary travelled to the garden. +11 Daniel put down the football. +12 Is Mary in the bedroom? no 10 +13 Mary grabbed the football there. +14 Sandra moved to the hallway. +15 Is Mary in the garden? yes 10 +1 Daniel went to the hallway. +2 Mary journeyed to the office. +3 Is Daniel in the hallway? yes 1 +4 John journeyed to the bathroom. +5 Sandra went to the hallway. +6 Is Mary in the kitchen? no 2 +7 Mary got the milk there. +8 Sandra got the apple there. +9 Is Sandra in the kitchen? no 5 +10 John journeyed to the garden. +11 Sandra journeyed to the kitchen. +12 Is John in the garden? yes 10 +13 Sandra went to the bathroom. +14 Sandra went to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel travelled to the kitchen. +2 Sandra went back to the bathroom. +3 Is Daniel in the kitchen? yes 1 +4 John travelled to the bathroom. +5 Sandra travelled to the hallway. +6 Is John in the bathroom? yes 4 +7 John picked up the football there. +8 Daniel took the milk there. +9 Is Sandra in the hallway? yes 5 +10 John moved to the office. +11 Daniel went to the bathroom. +12 Is Sandra in the bathroom? no 5 +13 Daniel left the milk. +14 John went to the bathroom. +15 Is John in the bathroom? yes 14 +1 Mary went to the kitchen. +2 Sandra picked up the football there. +3 Is Mary in the garden? no 1 +4 John went back to the hallway. +5 John went back to the office. +6 Is John in the bedroom? no 5 +7 Daniel went back to the bedroom. +8 Sandra went back to the office. +9 Is Daniel in the bedroom? yes 7 +10 Daniel got the apple there. +11 Sandra left the football. +12 Is Sandra in the office? yes 8 +13 Mary went to the bathroom. +14 John picked up the football there. +15 Is Sandra in the bathroom? no 8 +1 Mary picked up the football there. +2 Mary journeyed to the hallway. +3 Is Mary in the office? no 2 +4 Mary travelled to the garden. +5 Mary put down the football. +6 Is Mary in the hallway? no 4 +7 Sandra went back to the hallway. +8 Sandra went to the kitchen. +9 Is Mary in the bedroom? no 4 +10 Sandra went back to the office. +11 John took the football there. +12 Is Sandra in the garden? no 10 +13 John travelled to the office. +14 Daniel travelled to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Mary went to the bathroom. +2 Sandra picked up the milk there. +3 Is Mary in the office? no 1 +4 Mary went to the office. +5 Sandra journeyed to the bathroom. +6 Is Mary in the office? yes 4 +7 John travelled to the bathroom. +8 Mary journeyed to the bathroom. +9 Is Mary in the bedroom? no 8 +10 Mary went to the kitchen. +11 Daniel went to the bedroom. +12 Is John in the bathroom? yes 7 +13 Sandra journeyed to the office. +14 Sandra went to the garden. +15 Is Mary in the hallway? no 10 +1 Mary got the milk there. +2 John went to the bathroom. +3 Is John in the bathroom? yes 2 +4 John moved to the kitchen. +5 Mary moved to the bedroom. +6 Is John in the kitchen? yes 4 +7 Mary left the milk. +8 Daniel went to the office. +9 Is Mary in the garden? no 5 +10 Mary travelled to the garden. +11 Mary travelled to the office. +12 Is Mary in the office? yes 11 +13 John grabbed the apple there. +14 John left the apple. +15 Is Mary in the office? yes 11 +1 Sandra travelled to the kitchen. +2 Sandra travelled to the bedroom. +3 Is Sandra in the kitchen? no 2 +4 Mary grabbed the milk there. +5 John went back to the hallway. +6 Is John in the hallway? yes 5 +7 Sandra took the football there. +8 Mary dropped the milk. +9 Is Sandra in the bedroom? yes 2 +10 Mary moved to the kitchen. +11 Daniel went back to the bathroom. +12 Is Daniel in the kitchen? no 11 +13 Mary moved to the bedroom. +14 John moved to the bedroom. +15 Is John in the bedroom? yes 14 +1 Daniel went back to the kitchen. +2 Mary travelled to the bathroom. +3 Is Daniel in the kitchen? yes 1 +4 John picked up the football there. +5 Mary journeyed to the garden. +6 Is Mary in the garden? yes 5 +7 John moved to the hallway. +8 John dropped the football. +9 Is Mary in the garden? yes 5 +10 Daniel got the apple there. +11 John journeyed to the kitchen. +12 Is Mary in the garden? yes 5 +13 Sandra journeyed to the garden. +14 John went to the bedroom. +15 Is John in the bedroom? yes 14 +1 Mary journeyed to the bathroom. +2 Sandra moved to the garden. +3 Is Mary in the kitchen? no 1 +4 Mary went to the office. +5 John moved to the hallway. +6 Is John in the garden? no 5 +7 John journeyed to the bathroom. +8 Mary travelled to the garden. +9 Is Sandra in the garden? yes 2 +10 Mary journeyed to the kitchen. +11 Sandra went to the hallway. +12 Is Mary in the bedroom? no 10 +13 Mary went back to the hallway. +14 John took the apple there. +15 Is Mary in the hallway? yes 13 +1 Sandra picked up the football there. +2 Sandra went back to the garden. +3 Is Sandra in the garden? yes 2 +4 Sandra discarded the football there. +5 Mary journeyed to the bedroom. +6 Is Mary in the garden? no 5 +7 Sandra picked up the football there. +8 Sandra got the milk there. +9 Is Mary in the bedroom? yes 5 +10 Mary went to the hallway. +11 Daniel went to the kitchen. +12 Is Mary in the hallway? yes 10 +13 Sandra dropped the football. +14 Sandra travelled to the kitchen. +15 Is Daniel in the garden? no 11 +1 Daniel got the milk there. +2 Daniel discarded the milk. +3 Mary got the apple there. +4 Sandra journeyed to the hallway. +5 Is Sandra in the garden? no 4 +6 Daniel took the football there. +7 Sandra went to the garden. +8 Is Sandra in the garden? yes 7 +9 Mary left the apple. +10 Daniel left the football there. +11 Is Sandra in the garden? yes 7 +12 Mary travelled to the office. +13 Sandra picked up the apple there. +14 Is Sandra in the garden? yes 7 +15 Sandra put down the apple. +16 Mary moved to the garden. +17 Is Mary in the bedroom? no 16 +1 Sandra journeyed to the garden. +2 Daniel went back to the garden. +3 Is Daniel in the garden? yes 2 +4 Mary got the milk there. +5 Mary moved to the hallway. +6 Is Daniel in the office? no 2 +7 Sandra went back to the kitchen. +8 Sandra travelled to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra moved to the bedroom. +11 Mary discarded the milk there. +12 Is Sandra in the office? no 10 +13 Mary picked up the milk there. +14 Daniel went back to the bathroom. +15 Is Daniel in the garden? no 14 +1 Sandra journeyed to the bedroom. +2 Daniel journeyed to the office. +3 Is Sandra in the bedroom? yes 1 +4 Mary grabbed the football there. +5 Sandra travelled to the hallway. +6 Is Daniel in the garden? no 2 +7 Mary discarded the football. +8 Sandra took the milk there. +9 Is Daniel in the office? yes 2 +10 Mary grabbed the apple there. +11 Mary took the football there. +12 Is Sandra in the hallway? yes 5 +13 Daniel went to the garden. +14 Mary put down the apple. +15 Is Daniel in the garden? yes 13 +1 Sandra went back to the bathroom. +2 Sandra journeyed to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 John journeyed to the kitchen. +5 Mary went to the office. +6 Is Sandra in the kitchen? no 2 +7 John journeyed to the garden. +8 John went to the hallway. +9 Is John in the office? no 8 +10 John went to the bathroom. +11 John went back to the hallway. +12 Is Mary in the office? yes 5 +13 Sandra travelled to the hallway. +14 Daniel got the football there. +15 Is John in the hallway? yes 11 +1 Daniel took the apple there. +2 John grabbed the milk there. +3 Daniel discarded the apple. +4 Mary travelled to the bedroom. +5 Is Mary in the bedroom? yes 4 +6 Sandra went back to the office. +7 Sandra journeyed to the hallway. +8 Is Sandra in the office? no 7 +9 John went back to the bathroom. +10 Mary got the football there. +11 Is Sandra in the bedroom? no 7 +12 Daniel journeyed to the bedroom. +13 Sandra moved to the bedroom. +14 Is John in the hallway? no 9 +15 John put down the milk. +16 Sandra moved to the hallway. +17 Is Sandra in the hallway? yes 16 +1 Daniel grabbed the apple there. +2 Daniel went to the hallway. +3 Is Daniel in the garden? no 2 +4 Sandra went back to the garden. +5 Sandra grabbed the football there. +6 Is Daniel in the bedroom? no 2 +7 Sandra put down the football. +8 Mary grabbed the milk there. +9 Is Sandra in the kitchen? no 4 +10 Mary went back to the garden. +11 Sandra travelled to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 Mary moved to the bedroom. +14 Sandra travelled to the garden. +15 Is Mary in the bedroom? yes 13 +1 John took the apple there. +2 John travelled to the garden. +3 Is John in the garden? yes 2 +4 Daniel travelled to the kitchen. +5 John left the apple there. +6 Is John in the garden? yes 2 +7 Sandra got the apple there. +8 Sandra went back to the hallway. +9 Is Daniel in the garden? no 4 +10 John went to the bathroom. +11 Sandra discarded the apple there. +12 Is Sandra in the bedroom? no 8 +13 Mary went back to the office. +14 Mary went to the garden. +15 Is John in the bathroom? yes 10 +1 Daniel travelled to the bedroom. +2 Daniel journeyed to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel grabbed the apple there. +5 Mary went back to the garden. +6 Is Daniel in the bedroom? no 2 +7 Mary travelled to the kitchen. +8 Daniel discarded the apple. +9 Is Daniel in the garden? yes 2 +10 Sandra grabbed the milk there. +11 Mary went to the bathroom. +12 Is Mary in the hallway? no 11 +13 Sandra put down the milk. +14 Daniel took the apple there. +15 Is Mary in the bedroom? no 11 +1 John moved to the bathroom. +2 Mary travelled to the bathroom. +3 Is Mary in the kitchen? no 2 +4 Mary travelled to the kitchen. +5 John went to the kitchen. +6 Is John in the bedroom? no 5 +7 Sandra moved to the kitchen. +8 John journeyed to the garden. +9 Is Sandra in the kitchen? yes 7 +10 John got the milk there. +11 Daniel went to the office. +12 Is Daniel in the bathroom? no 11 +13 Daniel travelled to the bathroom. +14 John went back to the kitchen. +15 Is John in the hallway? no 14 +1 Sandra got the apple there. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Mary got the milk there. +5 Mary dropped the milk. +6 Is Daniel in the bathroom? no 2 +7 Sandra journeyed to the bathroom. +8 Mary picked up the milk there. +9 Is Daniel in the kitchen? yes 2 +10 Sandra journeyed to the office. +11 Mary dropped the milk there. +12 Is Sandra in the garden? no 10 +13 Sandra left the apple. +14 Sandra went back to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Daniel journeyed to the office. +2 Mary travelled to the hallway. +3 Is Daniel in the office? yes 1 +4 John went back to the kitchen. +5 Mary journeyed to the office. +6 Is Mary in the garden? no 5 +7 Sandra moved to the garden. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the garden? no 8 +10 Sandra took the football there. +11 Daniel journeyed to the kitchen. +12 Is Mary in the office? yes 5 +13 John went to the hallway. +14 Sandra dropped the football. +15 Is Sandra in the garden? no 8 +1 Sandra travelled to the bedroom. +2 Daniel journeyed to the office. +3 Is Sandra in the bedroom? yes 1 +4 John went to the bathroom. +5 Mary went back to the hallway. +6 Is Mary in the bedroom? no 5 +7 Mary took the milk there. +8 John travelled to the garden. +9 Is John in the garden? yes 8 +10 Daniel journeyed to the garden. +11 John travelled to the office. +12 Is John in the office? yes 11 +13 Daniel moved to the hallway. +14 Mary moved to the office. +15 Is John in the office? yes 11 +1 Mary journeyed to the kitchen. +2 Mary grabbed the milk there. +3 Is Mary in the kitchen? yes 1 +4 Sandra journeyed to the garden. +5 Sandra journeyed to the bedroom. +6 Is Sandra in the bedroom? yes 5 +7 Mary put down the milk. +8 Mary got the milk there. +9 Is Sandra in the garden? no 5 +10 Mary went back to the bedroom. +11 Mary moved to the bathroom. +12 Is Mary in the kitchen? no 11 +13 Mary travelled to the garden. +14 John moved to the garden. +15 Is John in the garden? yes 14 +1 John journeyed to the garden. +2 Sandra went back to the kitchen. +3 Is John in the garden? yes 1 +4 Sandra journeyed to the bathroom. +5 Mary went to the bedroom. +6 Is Mary in the office? no 5 +7 Mary moved to the hallway. +8 John went back to the bathroom. +9 Is Mary in the hallway? yes 7 +10 Sandra moved to the kitchen. +11 Sandra went back to the hallway. +12 Is Mary in the hallway? yes 7 +13 Mary moved to the office. +14 Mary went to the bathroom. +15 Is Sandra in the hallway? yes 11 +1 Sandra moved to the bedroom. +2 John went to the kitchen. +3 Is Sandra in the bedroom? yes 1 +4 John took the milk there. +5 Daniel journeyed to the office. +6 Is John in the kitchen? yes 2 +7 Daniel went to the bedroom. +8 Mary journeyed to the hallway. +9 Is Daniel in the garden? no 7 +10 John discarded the milk. +11 Sandra travelled to the bathroom. +12 Is Daniel in the office? no 7 +13 Mary journeyed to the bathroom. +14 Sandra grabbed the football there. +15 Is Mary in the kitchen? no 13 +1 Daniel moved to the garden. +2 John went to the kitchen. +3 Is John in the kitchen? yes 2 +4 Mary went to the hallway. +5 Sandra got the milk there. +6 Is Mary in the bedroom? no 4 +7 Sandra left the milk there. +8 Sandra travelled to the hallway. +9 Is Mary in the bathroom? no 4 +10 Sandra journeyed to the bedroom. +11 John got the milk there. +12 Is Sandra in the garden? no 10 +13 John travelled to the hallway. +14 Daniel moved to the office. +15 Is John in the bathroom? no 13 +1 Mary moved to the hallway. +2 John went to the bedroom. +3 Is John in the hallway? no 2 +4 Daniel went to the garden. +5 Mary moved to the bedroom. +6 Is Mary in the kitchen? no 5 +7 Mary went back to the bathroom. +8 Mary travelled to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Daniel moved to the office. +11 Sandra got the milk there. +12 Is Daniel in the office? yes 10 +13 John journeyed to the hallway. +14 Mary journeyed to the office. +15 Is John in the garden? no 13 +1 Mary went to the office. +2 John picked up the football there. +3 Is Mary in the bedroom? no 1 +4 Sandra went back to the hallway. +5 Daniel got the milk there. +6 Is Sandra in the bathroom? no 4 +7 John journeyed to the kitchen. +8 Mary went to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Daniel discarded the milk. +11 Daniel moved to the office. +12 Is John in the bedroom? no 7 +13 Sandra travelled to the garden. +14 John went back to the garden. +15 Is Mary in the bedroom? no 8 +1 John went to the bathroom. +2 Sandra moved to the hallway. +3 Is Sandra in the garden? no 2 +4 Sandra took the milk there. +5 Mary journeyed to the garden. +6 Is Mary in the garden? yes 5 +7 Sandra dropped the milk. +8 Sandra went to the garden. +9 Is Mary in the garden? yes 5 +10 Sandra went back to the office. +11 Mary travelled to the bathroom. +12 Is Sandra in the office? yes 10 +13 Sandra travelled to the bedroom. +14 Mary went to the office. +15 Is Mary in the hallway? no 14 +1 Mary picked up the football there. +2 Sandra went to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John journeyed to the office. +5 John journeyed to the hallway. +6 Is Sandra in the bedroom? no 2 +7 John went to the office. +8 Mary went to the kitchen. +9 Is Sandra in the hallway? yes 2 +10 Mary left the football. +11 Sandra journeyed to the office. +12 Is Mary in the bathroom? no 8 +13 Sandra travelled to the garden. +14 Mary went back to the bedroom. +15 Is Sandra in the kitchen? no 13 +1 John picked up the apple there. +2 Daniel picked up the milk there. +3 John dropped the apple. +4 Daniel dropped the milk. +5 Sandra journeyed to the garden. +6 Daniel grabbed the milk there. +7 Is Sandra in the kitchen? no 5 +8 Mary moved to the office. +9 Sandra travelled to the office. +10 Is Sandra in the hallway? no 9 +11 John picked up the apple there. +12 Sandra travelled to the garden. +13 Is Sandra in the garden? yes 12 +14 John discarded the apple. +15 Mary picked up the apple there. +16 Is Sandra in the garden? yes 12 +17 Mary put down the apple there. +18 John picked up the apple there. +19 Is Sandra in the office? no 12 +1 Sandra went to the office. +2 Daniel went to the garden. +3 Is Sandra in the garden? no 1 +4 Sandra moved to the bathroom. +5 Mary grabbed the apple there. +6 Is Daniel in the garden? yes 2 +7 Mary travelled to the garden. +8 Daniel picked up the milk there. +9 Is Sandra in the kitchen? no 4 +10 Sandra went to the bedroom. +11 Mary discarded the apple. +12 Is Sandra in the office? no 10 +13 Daniel travelled to the bedroom. +14 Mary went back to the kitchen. +15 Is Sandra in the bedroom? yes 10 +1 Daniel went back to the bathroom. +2 Mary moved to the hallway. +3 Is Daniel in the bathroom? yes 1 +4 John went to the office. +5 John went back to the bathroom. +6 Is Daniel in the garden? no 1 +7 Sandra journeyed to the garden. +8 Daniel went to the garden. +9 Is John in the bedroom? no 5 +10 Daniel journeyed to the kitchen. +11 Mary got the milk there. +12 Is Sandra in the bedroom? no 7 +13 Mary took the football there. +14 Sandra went back to the office. +15 Is Daniel in the office? no 10 +1 Sandra went to the garden. +2 John journeyed to the bathroom. +3 Is Sandra in the office? no 1 +4 Daniel went back to the office. +5 Mary picked up the apple there. +6 Is Daniel in the office? yes 4 +7 Daniel journeyed to the garden. +8 Sandra took the milk there. +9 Is John in the bathroom? yes 2 +10 Sandra picked up the football there. +11 John went to the garden. +12 Is John in the garden? yes 11 +13 Sandra put down the football. +14 Sandra discarded the milk there. +15 Is John in the garden? yes 11 +1 Daniel journeyed to the kitchen. +2 John went back to the garden. +3 Is John in the garden? yes 2 +4 Sandra moved to the bathroom. +5 Daniel journeyed to the garden. +6 Is Daniel in the bathroom? no 5 +7 Mary went back to the kitchen. +8 Sandra took the milk there. +9 Is Mary in the bathroom? no 7 +10 Sandra took the apple there. +11 Mary journeyed to the bathroom. +12 Is Daniel in the hallway? no 5 +13 Sandra left the apple. +14 Sandra took the apple there. +15 Is Mary in the garden? no 11 +1 Daniel got the milk there. +2 Daniel went back to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Sandra journeyed to the bedroom. +5 John moved to the hallway. +6 Is John in the bathroom? no 5 +7 Daniel left the milk. +8 Mary journeyed to the hallway. +9 Is Mary in the office? no 8 +10 Sandra travelled to the kitchen. +11 Daniel went back to the office. +12 Is Daniel in the office? yes 11 +13 Mary journeyed to the garden. +14 Mary journeyed to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary went back to the bedroom. +2 Sandra travelled to the office. +3 Is Sandra in the office? yes 2 +4 Mary moved to the hallway. +5 Mary journeyed to the bathroom. +6 Is Mary in the office? no 5 +7 John went to the kitchen. +8 Daniel went back to the office. +9 Is Mary in the bathroom? yes 5 +10 John went back to the bedroom. +11 Mary went back to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Daniel went to the bathroom. +14 John journeyed to the kitchen. +15 Is John in the kitchen? yes 14 +1 Sandra travelled to the bathroom. +2 John journeyed to the garden. +3 Is John in the bathroom? no 2 +4 John journeyed to the hallway. +5 Daniel went to the office. +6 Is John in the hallway? yes 4 +7 Daniel took the apple there. +8 Daniel dropped the apple there. +9 Is John in the hallway? yes 4 +10 Sandra moved to the office. +11 Sandra grabbed the apple there. +12 Is Daniel in the bedroom? no 5 +13 Daniel went back to the bedroom. +14 John journeyed to the kitchen. +15 Is Daniel in the garden? no 13 +1 Sandra got the milk there. +2 Mary went to the bedroom. +3 Is Mary in the kitchen? no 2 +4 Sandra journeyed to the office. +5 Sandra discarded the milk there. +6 Is Sandra in the office? yes 4 +7 Mary went back to the garden. +8 Sandra took the apple there. +9 Is Mary in the bathroom? no 7 +10 Mary journeyed to the office. +11 Daniel went back to the office. +12 Is Daniel in the office? yes 11 +13 Daniel went to the garden. +14 Daniel travelled to the bathroom. +15 Is Mary in the hallway? no 10 +1 Mary moved to the kitchen. +2 Sandra got the apple there. +3 Is Mary in the bathroom? no 1 +4 Sandra left the apple. +5 Sandra went back to the bedroom. +6 Is Mary in the bedroom? no 1 +7 Daniel went to the garden. +8 John went to the bathroom. +9 Is Sandra in the bedroom? yes 5 +10 Mary travelled to the garden. +11 Sandra went to the kitchen. +12 Is John in the bathroom? yes 8 +13 John got the milk there. +14 John discarded the milk there. +15 Is Sandra in the kitchen? yes 11 +1 Sandra journeyed to the garden. +2 Sandra moved to the office. +3 Is Sandra in the office? yes 2 +4 Mary grabbed the milk there. +5 Daniel moved to the office. +6 Is Sandra in the office? yes 2 +7 Mary travelled to the garden. +8 Mary travelled to the office. +9 Is Sandra in the kitchen? no 2 +10 Mary put down the milk. +11 Mary travelled to the bedroom. +12 Is Mary in the office? no 11 +13 Mary travelled to the hallway. +14 John grabbed the football there. +15 Is Mary in the garden? no 13 +1 Mary moved to the bedroom. +2 Daniel got the football there. +3 Is Mary in the bedroom? yes 1 +4 Sandra went to the bedroom. +5 Daniel went back to the hallway. +6 Is Sandra in the bedroom? yes 4 +7 Mary moved to the garden. +8 Mary went to the bedroom. +9 Is Sandra in the bedroom? yes 4 +10 Daniel put down the football there. +11 Sandra moved to the hallway. +12 Is Daniel in the office? no 5 +13 Daniel went to the office. +14 Sandra went back to the bedroom. +15 Is Sandra in the bathroom? no 14 +1 Daniel grabbed the apple there. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Daniel grabbed the milk there. +5 Daniel dropped the milk. +6 Is Daniel in the bedroom? no 2 +7 Daniel grabbed the milk there. +8 Sandra picked up the football there. +9 Is Daniel in the garden? no 2 +10 John journeyed to the bathroom. +11 Daniel went to the hallway. +12 Is John in the office? no 10 +13 Sandra dropped the football. +14 Daniel put down the milk there. +15 Is Daniel in the hallway? yes 11 +1 Mary travelled to the office. +2 Daniel took the football there. +3 Is Mary in the office? yes 1 +4 Daniel discarded the football. +5 Sandra moved to the bathroom. +6 Is Sandra in the office? no 5 +7 John moved to the bedroom. +8 Mary picked up the milk there. +9 Is John in the kitchen? no 7 +10 John took the football there. +11 Sandra moved to the office. +12 Is Sandra in the office? yes 11 +13 Daniel travelled to the bathroom. +14 John left the football. +15 Is Daniel in the hallway? no 13 +1 Daniel grabbed the milk there. +2 Mary travelled to the kitchen. +3 Is Mary in the garden? no 2 +4 Daniel put down the milk. +5 Mary moved to the garden. +6 Is Mary in the kitchen? no 5 +7 Sandra journeyed to the bathroom. +8 John journeyed to the bedroom. +9 Is Mary in the garden? yes 5 +10 Mary moved to the kitchen. +11 John took the apple there. +12 Is Sandra in the office? no 7 +13 John left the apple there. +14 Daniel got the milk there. +15 Is Mary in the hallway? no 10 +1 Daniel moved to the office. +2 Daniel grabbed the apple there. +3 Is Daniel in the office? yes 1 +4 Sandra moved to the bedroom. +5 Daniel put down the apple. +6 Is Daniel in the hallway? no 1 +7 Daniel travelled to the garden. +8 Daniel travelled to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Mary moved to the hallway. +11 Mary went to the garden. +12 Is Daniel in the kitchen? no 8 +13 Mary moved to the office. +14 John journeyed to the bathroom. +15 Is Mary in the office? yes 13 +1 Sandra went back to the bedroom. +2 John went to the hallway. +3 Is Sandra in the office? no 1 +4 Mary journeyed to the bathroom. +5 Daniel moved to the kitchen. +6 Is Mary in the garden? no 4 +7 Daniel went to the bedroom. +8 Sandra moved to the bathroom. +9 Is Daniel in the bathroom? no 7 +10 Sandra got the football there. +11 John moved to the office. +12 Is Daniel in the garden? no 7 +13 John got the apple there. +14 Sandra left the football. +15 Is Sandra in the office? no 8 +1 John picked up the milk there. +2 Sandra went to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Mary went to the office. +5 Mary journeyed to the hallway. +6 Is Mary in the hallway? yes 5 +7 Daniel went back to the hallway. +8 Sandra went back to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 Sandra went to the garden. +11 John went back to the garden. +12 Is Sandra in the bedroom? no 10 +13 John moved to the kitchen. +14 Sandra went back to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra went back to the office. +2 Mary journeyed to the bathroom. +3 Is Sandra in the bedroom? no 1 +4 Daniel grabbed the apple there. +5 Daniel discarded the apple. +6 Is Mary in the garden? no 2 +7 John moved to the bedroom. +8 Mary went back to the bedroom. +9 Is Mary in the bedroom? yes 8 +10 Sandra journeyed to the bedroom. +11 Sandra went back to the office. +12 Is Mary in the bedroom? yes 8 +13 John grabbed the football there. +14 Sandra moved to the bedroom. +15 Is Mary in the bedroom? yes 8 +1 Sandra moved to the hallway. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel journeyed to the kitchen. +5 John journeyed to the office. +6 Is John in the bathroom? no 5 +7 Sandra went to the garden. +8 Mary picked up the milk there. +9 Is Daniel in the kitchen? yes 4 +10 Mary left the milk there. +11 Mary took the milk there. +12 Is John in the office? yes 5 +13 Sandra went back to the kitchen. +14 Mary put down the milk. +15 Is Sandra in the kitchen? yes 13 +1 Sandra grabbed the football there. +2 Mary went back to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Mary journeyed to the hallway. +5 Sandra left the football. +6 Is Mary in the hallway? yes 4 +7 Sandra took the football there. +8 Sandra got the milk there. +9 Is Mary in the hallway? yes 4 +10 Sandra discarded the football there. +11 Mary took the apple there. +12 Sandra took the football there. +13 John journeyed to the garden. +14 Is John in the office? no 13 +15 Mary journeyed to the garden. +16 Sandra dropped the football. +17 Is Mary in the hallway? no 15 +1 Sandra grabbed the milk there. +2 Daniel moved to the hallway. +3 Is Daniel in the hallway? yes 2 +4 Daniel picked up the apple there. +5 Daniel left the apple. +6 Is Daniel in the garden? no 2 +7 Mary journeyed to the kitchen. +8 Daniel got the apple there. +9 Is Daniel in the hallway? yes 2 +10 Daniel travelled to the office. +11 Daniel dropped the apple. +12 Is Mary in the garden? no 7 +13 Daniel grabbed the apple there. +14 Mary went to the hallway. +15 Is Mary in the hallway? yes 14 +1 Sandra moved to the bedroom. +2 Sandra went back to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Daniel grabbed the football there. +5 Sandra moved to the garden. +6 Is Sandra in the bathroom? no 5 +7 Mary went back to the garden. +8 Daniel discarded the football there. +9 Is Sandra in the office? no 5 +10 Sandra went to the bathroom. +11 Daniel picked up the football there. +12 Is Mary in the garden? yes 7 +13 Sandra journeyed to the office. +14 Daniel went to the bathroom. +15 Is Sandra in the office? yes 13 +1 Sandra journeyed to the bathroom. +2 John grabbed the football there. +3 Is Sandra in the garden? no 1 +4 John dropped the football. +5 Mary journeyed to the garden. +6 Is Sandra in the hallway? no 1 +7 John grabbed the football there. +8 Sandra travelled to the office. +9 Is Sandra in the bedroom? no 8 +10 Daniel travelled to the bathroom. +11 John journeyed to the bedroom. +12 Is Daniel in the bedroom? no 10 +13 Sandra grabbed the apple there. +14 John left the football. +15 Is John in the bedroom? yes 11 +1 John moved to the garden. +2 Sandra journeyed to the hallway. +3 Is John in the office? no 1 +4 Sandra went back to the bathroom. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Daniel took the milk there. +8 John grabbed the football there. +9 Is Sandra in the hallway? no 4 +10 Mary journeyed to the bedroom. +11 John put down the football. +12 Is Mary in the office? no 10 +13 Sandra journeyed to the bedroom. +14 John travelled to the bedroom. +15 Is Sandra in the bedroom? yes 13 +1 John moved to the office. +2 Mary grabbed the football there. +3 Is John in the office? yes 1 +4 John got the milk there. +5 John discarded the milk. +6 Is John in the garden? no 1 +7 John took the milk there. +8 Mary dropped the football. +9 Mary grabbed the football there. +10 Daniel went to the hallway. +11 Is Daniel in the hallway? yes 10 +12 Sandra went back to the kitchen. +13 John picked up the apple there. +14 Is Sandra in the hallway? no 12 +15 John dropped the apple. +16 John travelled to the bathroom. +17 Is Sandra in the kitchen? yes 12 +1 Mary took the milk there. +2 Mary went to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary went back to the office. +5 Mary went back to the bedroom. +6 Is Mary in the hallway? no 5 +7 John travelled to the garden. +8 Mary journeyed to the kitchen. +9 Is John in the garden? yes 7 +10 Sandra went to the office. +11 Daniel went to the office. +12 Is Sandra in the bathroom? no 10 +13 Mary dropped the milk there. +14 Daniel went back to the hallway. +15 Is Mary in the garden? no 8 +1 Sandra went back to the office. +2 Daniel journeyed to the kitchen. +3 Is Sandra in the office? yes 1 +4 Sandra moved to the bedroom. +5 Daniel moved to the office. +6 Is Sandra in the hallway? no 4 +7 Sandra journeyed to the office. +8 Sandra journeyed to the kitchen. +9 Is Sandra in the bathroom? no 8 +10 John journeyed to the hallway. +11 John picked up the milk there. +12 Is Sandra in the kitchen? yes 8 +13 John grabbed the apple there. +14 Mary got the football there. +15 Is Sandra in the office? no 8 +1 John went to the office. +2 Daniel moved to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Mary moved to the bathroom. +5 Daniel travelled to the garden. +6 Is John in the office? yes 1 +7 Daniel went back to the hallway. +8 Sandra went back to the garden. +9 Is Daniel in the hallway? yes 7 +10 Daniel picked up the football there. +11 Mary went back to the garden. +12 Is Mary in the garden? yes 11 +13 Daniel journeyed to the bathroom. +14 Sandra went back to the bathroom. +15 Is Sandra in the hallway? no 14 +1 Sandra moved to the kitchen. +2 Sandra travelled to the office. +3 Is Sandra in the bathroom? no 2 +4 Mary went to the kitchen. +5 John moved to the office. +6 Is John in the garden? no 5 +7 Mary went back to the garden. +8 Mary went to the office. +9 Is Mary in the bedroom? no 8 +10 Mary went back to the hallway. +11 Daniel went back to the bedroom. +12 Is Mary in the garden? no 10 +13 John moved to the kitchen. +14 John went back to the garden. +15 Is Mary in the hallway? yes 10 +1 Sandra journeyed to the garden. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel journeyed to the office. +5 John moved to the bathroom. +6 Is Sandra in the bathroom? no 1 +7 Daniel took the football there. +8 Sandra went back to the hallway. +9 Is Sandra in the bedroom? no 8 +10 John went back to the kitchen. +11 Sandra went to the bedroom. +12 Is John in the kitchen? yes 10 +13 Sandra went to the kitchen. +14 Sandra took the apple there. +15 Is Sandra in the hallway? no 13 +1 Sandra travelled to the hallway. +2 Daniel got the milk there. +3 Is Sandra in the kitchen? no 1 +4 John journeyed to the hallway. +5 John journeyed to the garden. +6 Is Sandra in the hallway? yes 1 +7 Daniel moved to the hallway. +8 Sandra journeyed to the garden. +9 Is Sandra in the garden? yes 8 +10 Sandra journeyed to the office. +11 Daniel dropped the milk. +12 Is Sandra in the bathroom? no 10 +13 Daniel went back to the bedroom. +14 John went back to the kitchen. +15 Is Daniel in the kitchen? no 13 +1 John moved to the garden. +2 Mary went to the office. +3 Is Mary in the office? yes 2 +4 Mary moved to the garden. +5 Sandra moved to the kitchen. +6 Is Mary in the garden? yes 4 +7 Sandra took the apple there. +8 Sandra journeyed to the bedroom. +9 Is Mary in the garden? yes 4 +10 Daniel moved to the hallway. +11 Sandra left the apple there. +12 Is Sandra in the bedroom? yes 8 +13 Daniel went to the office. +14 Mary went back to the kitchen. +15 Is Daniel in the garden? no 13 +1 Sandra went to the office. +2 Daniel picked up the football there. +3 Is Sandra in the kitchen? no 1 +4 Mary grabbed the milk there. +5 Daniel dropped the football. +6 Is Sandra in the office? yes 1 +7 Daniel got the football there. +8 John went to the kitchen. +9 Is John in the bedroom? no 8 +10 John journeyed to the bedroom. +11 Daniel moved to the hallway. +12 Is John in the bedroom? yes 10 +13 John travelled to the office. +14 Sandra went back to the hallway. +15 Is John in the bathroom? no 13 +1 Mary went to the garden. +2 John moved to the office. +3 Is John in the office? yes 2 +4 Sandra picked up the football there. +5 John travelled to the bedroom. +6 Is John in the bedroom? yes 5 +7 John travelled to the hallway. +8 Daniel journeyed to the bedroom. +9 Is John in the hallway? yes 7 +10 John moved to the bathroom. +11 Sandra moved to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Daniel journeyed to the hallway. +14 Sandra went back to the hallway. +15 Is John in the office? no 10 +1 Mary picked up the milk there. +2 John took the apple there. +3 Mary left the milk there. +4 Sandra journeyed to the garden. +5 Is Sandra in the bathroom? no 4 +6 Daniel went back to the kitchen. +7 Sandra moved to the bathroom. +8 Is Sandra in the garden? no 7 +9 Mary journeyed to the office. +10 Daniel journeyed to the bathroom. +11 Is Daniel in the office? no 10 +12 Daniel journeyed to the bedroom. +13 John dropped the apple. +14 Is Daniel in the kitchen? no 12 +15 Daniel moved to the garden. +16 Daniel grabbed the football there. +17 Is Daniel in the kitchen? no 15 +1 Daniel travelled to the kitchen. +2 Sandra went to the bedroom. +3 Is Daniel in the garden? no 1 +4 John travelled to the garden. +5 Sandra grabbed the apple there. +6 Is Daniel in the kitchen? yes 1 +7 Daniel journeyed to the office. +8 Sandra journeyed to the office. +9 Is Daniel in the office? yes 7 +10 John went to the bathroom. +11 Daniel went to the hallway. +12 Is Daniel in the bedroom? no 11 +13 Mary went back to the kitchen. +14 John journeyed to the hallway. +15 Is John in the office? no 14 +1 Sandra picked up the milk there. +2 Mary grabbed the football there. +3 Daniel moved to the garden. +4 Mary went to the office. +5 Is Daniel in the office? no 3 +6 John travelled to the garden. +7 Mary discarded the football. +8 Is Daniel in the garden? yes 3 +9 Sandra went back to the bedroom. +10 Sandra left the milk. +11 Is Sandra in the bedroom? yes 9 +12 Mary grabbed the football there. +13 Mary journeyed to the hallway. +14 Is Mary in the hallway? yes 13 +15 Sandra went back to the office. +16 Mary went back to the kitchen. +17 Is Mary in the kitchen? yes 16 +1 Daniel moved to the hallway. +2 John grabbed the apple there. +3 Is Daniel in the hallway? yes 1 +4 Sandra went to the office. +5 John went to the office. +6 Is Daniel in the kitchen? no 1 +7 Sandra travelled to the garden. +8 Sandra travelled to the office. +9 Is Sandra in the office? yes 8 +10 Sandra grabbed the milk there. +11 Mary journeyed to the bathroom. +12 Is John in the bathroom? no 5 +13 John dropped the apple. +14 Daniel moved to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 John got the milk there. +2 Daniel travelled to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 John journeyed to the kitchen. +5 John left the milk. +6 Is Daniel in the kitchen? yes 2 +7 John journeyed to the hallway. +8 Daniel got the milk there. +9 Is John in the hallway? yes 7 +10 Mary went to the kitchen. +11 Daniel moved to the bedroom. +12 Is Daniel in the hallway? no 11 +13 John went to the bathroom. +14 John travelled to the kitchen. +15 Is Mary in the kitchen? yes 10 +1 Mary went back to the kitchen. +2 John went back to the bedroom. +3 Is John in the bathroom? no 2 +4 Mary picked up the apple there. +5 Mary discarded the apple. +6 Is Mary in the bathroom? no 1 +7 Mary got the apple there. +8 Daniel travelled to the office. +9 Is John in the bedroom? yes 2 +10 John moved to the bathroom. +11 Daniel picked up the football there. +12 Is Daniel in the garden? no 8 +13 Mary moved to the bedroom. +14 Mary left the apple. +15 Is Mary in the kitchen? no 13 +1 Daniel travelled to the hallway. +2 Sandra grabbed the apple there. +3 Is Daniel in the office? no 1 +4 Mary journeyed to the garden. +5 Sandra travelled to the garden. +6 Is Sandra in the bathroom? no 5 +7 Sandra went to the bathroom. +8 Daniel journeyed to the kitchen. +9 Is Sandra in the bathroom? yes 7 +10 Sandra discarded the apple there. +11 John picked up the apple there. +12 Is Daniel in the kitchen? yes 8 +13 John moved to the bedroom. +14 Daniel grabbed the football there. +15 Is Daniel in the kitchen? yes 8 +1 Daniel journeyed to the bathroom. +2 Sandra moved to the bedroom. +3 Is Daniel in the bathroom? yes 1 +4 Daniel moved to the bedroom. +5 Sandra went back to the kitchen. +6 Is Sandra in the bedroom? no 5 +7 Daniel journeyed to the garden. +8 John went back to the office. +9 Is Daniel in the hallway? no 7 +10 Mary travelled to the bedroom. +11 Daniel journeyed to the office. +12 Is Daniel in the garden? no 11 +13 Daniel went to the kitchen. +14 Sandra picked up the football there. +15 Is Mary in the bedroom? yes 10 +1 Daniel went back to the kitchen. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 Daniel journeyed to the kitchen. +5 Mary went back to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Mary moved to the hallway. +8 Daniel went to the garden. +9 Is Mary in the hallway? yes 7 +10 Sandra travelled to the office. +11 Sandra travelled to the hallway. +12 Is Mary in the bathroom? no 7 +13 Daniel went back to the bedroom. +14 Daniel went to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Mary took the apple there. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 Mary went to the garden. +5 Mary went to the hallway. +6 Is Mary in the hallway? yes 5 +7 Sandra went back to the office. +8 Sandra picked up the milk there. +9 Is Mary in the kitchen? no 5 +10 Mary put down the apple. +11 John went to the hallway. +12 Is Sandra in the kitchen? no 7 +13 John went to the kitchen. +14 John moved to the garden. +15 Is John in the bedroom? no 14 +1 John journeyed to the garden. +2 John went to the kitchen. +3 Is John in the office? no 2 +4 Mary travelled to the hallway. +5 John got the milk there. +6 Is John in the garden? no 2 +7 Mary moved to the garden. +8 Sandra went to the bedroom. +9 Is Mary in the garden? yes 7 +10 Daniel travelled to the bathroom. +11 John travelled to the garden. +12 Is Mary in the kitchen? no 7 +13 Daniel travelled to the garden. +14 Mary went to the bathroom. +15 Is Sandra in the bedroom? yes 8 +1 John moved to the kitchen. +2 Mary picked up the milk there. +3 Is John in the bathroom? no 1 +4 Daniel journeyed to the bathroom. +5 Mary discarded the milk. +6 Is Daniel in the bathroom? yes 4 +7 Sandra went back to the bedroom. +8 Daniel journeyed to the office. +9 Is Sandra in the kitchen? no 7 +10 Mary took the milk there. +11 John went back to the garden. +12 Is Sandra in the bedroom? yes 7 +13 Daniel travelled to the hallway. +14 Sandra went to the hallway. +15 Is Daniel in the kitchen? no 13 +1 Mary travelled to the kitchen. +2 Mary went to the bathroom. +3 Is Mary in the kitchen? no 2 +4 John journeyed to the kitchen. +5 John travelled to the bedroom. +6 Is John in the hallway? no 5 +7 Daniel moved to the bedroom. +8 Mary travelled to the office. +9 Is John in the bedroom? yes 5 +10 Daniel travelled to the kitchen. +11 Sandra travelled to the office. +12 Is Sandra in the office? yes 11 +13 John journeyed to the kitchen. +14 Sandra grabbed the milk there. +15 Is Sandra in the bedroom? no 11 +1 John took the milk there. +2 Mary travelled to the kitchen. +3 Is Mary in the hallway? no 2 +4 John discarded the milk. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Daniel took the football there. +8 Sandra moved to the bedroom. +9 Is Mary in the hallway? no 2 +10 Daniel put down the football. +11 Sandra travelled to the office. +12 Is John in the kitchen? yes 5 +13 John went to the garden. +14 Daniel went to the office. +15 Is Daniel in the hallway? no 14 +1 Mary grabbed the apple there. +2 Mary left the apple. +3 John journeyed to the kitchen. +4 Daniel went to the garden. +5 Is Daniel in the office? no 4 +6 John journeyed to the hallway. +7 Sandra picked up the milk there. +8 Is John in the hallway? yes 6 +9 Mary moved to the hallway. +10 John journeyed to the bedroom. +11 Is John in the bedroom? yes 10 +12 John travelled to the hallway. +13 Daniel went to the bathroom. +14 Is Daniel in the bathroom? yes 13 +15 John moved to the bedroom. +16 Sandra went back to the bathroom. +17 Is John in the bedroom? yes 15 +1 Sandra picked up the football there. +2 Sandra took the milk there. +3 John went back to the hallway. +4 John journeyed to the bedroom. +5 Is John in the bedroom? yes 4 +6 Sandra travelled to the kitchen. +7 Sandra went back to the office. +8 Is Sandra in the office? yes 7 +9 Daniel went to the hallway. +10 Daniel picked up the apple there. +11 Is Sandra in the bathroom? no 7 +12 Sandra travelled to the kitchen. +13 Sandra journeyed to the bedroom. +14 Is Daniel in the hallway? yes 9 +15 Sandra dropped the milk. +16 Mary went back to the bedroom. +17 Is Sandra in the garden? no 13 +1 Daniel went back to the bathroom. +2 Daniel travelled to the hallway. +3 Is Daniel in the bedroom? no 2 +4 Sandra journeyed to the bathroom. +5 Daniel went back to the office. +6 Is Daniel in the office? yes 5 +7 Sandra went back to the hallway. +8 John travelled to the hallway. +9 Is Sandra in the bedroom? no 7 +10 Daniel grabbed the football there. +11 Mary journeyed to the hallway. +12 Is Daniel in the bathroom? no 5 +13 Sandra travelled to the bedroom. +14 Mary went back to the office. +15 Is John in the office? no 8 +1 John journeyed to the garden. +2 Daniel went back to the garden. +3 Is John in the garden? yes 1 +4 John got the apple there. +5 John dropped the apple. +6 Is Daniel in the garden? yes 2 +7 Daniel grabbed the milk there. +8 Daniel journeyed to the hallway. +9 Is Daniel in the hallway? yes 8 +10 John took the apple there. +11 Daniel discarded the milk. +12 Is Daniel in the hallway? yes 8 +13 Mary travelled to the bedroom. +14 Mary took the football there. +15 Is Mary in the bedroom? yes 13 +1 Mary travelled to the kitchen. +2 Daniel picked up the apple there. +3 Is Mary in the garden? no 1 +4 Daniel put down the apple. +5 Sandra went back to the bedroom. +6 Is Sandra in the kitchen? no 5 +7 Daniel got the apple there. +8 Mary went back to the office. +9 Is Mary in the bedroom? no 8 +10 John travelled to the office. +11 Sandra went to the hallway. +12 Is John in the garden? no 10 +13 Sandra grabbed the football there. +14 Daniel discarded the apple. +15 Is Sandra in the office? no 11 +1 Daniel grabbed the milk there. +2 Sandra moved to the bedroom. +3 Is Sandra in the garden? no 2 +4 Daniel left the milk. +5 John took the milk there. +6 Is Sandra in the kitchen? no 2 +7 Mary went back to the garden. +8 Mary went back to the bathroom. +9 Is Sandra in the bedroom? yes 2 +10 Sandra travelled to the kitchen. +11 Sandra got the football there. +12 Is Sandra in the office? no 10 +13 Sandra left the football. +14 Sandra moved to the hallway. +15 Is Mary in the kitchen? no 8 +1 Sandra went back to the hallway. +2 Daniel went back to the bedroom. +3 Is Sandra in the kitchen? no 1 +4 Sandra travelled to the bedroom. +5 Sandra went to the garden. +6 Is Sandra in the kitchen? no 5 +7 Daniel moved to the garden. +8 John grabbed the apple there. +9 Is Daniel in the hallway? no 7 +10 Mary went to the office. +11 John left the apple. +12 Is Sandra in the garden? yes 5 +13 Sandra went back to the bathroom. +14 Daniel picked up the apple there. +15 Is Mary in the office? yes 10 +1 Daniel journeyed to the hallway. +2 John moved to the office. +3 Is Daniel in the office? no 1 +4 John picked up the milk there. +5 John left the milk. +6 Is John in the office? yes 2 +7 Sandra journeyed to the bathroom. +8 Sandra went to the hallway. +9 Is John in the bathroom? no 2 +10 Daniel journeyed to the kitchen. +11 Sandra went to the office. +12 Is Sandra in the bathroom? no 11 +13 Daniel moved to the garden. +14 Daniel moved to the office. +15 Is Daniel in the office? yes 14 +1 Mary journeyed to the bedroom. +2 Daniel moved to the kitchen. +3 Is Mary in the bedroom? yes 1 +4 Sandra went to the kitchen. +5 Mary grabbed the football there. +6 Is Mary in the bedroom? yes 1 +7 Sandra went back to the hallway. +8 Sandra moved to the office. +9 Is Sandra in the kitchen? no 8 +10 Mary went back to the garden. +11 John moved to the office. +12 Is Sandra in the office? yes 8 +13 Mary went to the bedroom. +14 Mary went to the hallway. +15 Is Sandra in the office? yes 8 +1 Mary grabbed the apple there. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the bathroom? no 2 +4 Sandra moved to the office. +5 Sandra moved to the bedroom. +6 Is Daniel in the bathroom? no 2 +7 John travelled to the hallway. +8 Mary journeyed to the bathroom. +9 Is Sandra in the bathroom? no 5 +10 Mary put down the apple. +11 Sandra travelled to the kitchen. +12 Is John in the bathroom? no 7 +13 Mary went to the office. +14 Sandra went back to the garden. +15 Is Mary in the office? yes 13 +1 John moved to the hallway. +2 Sandra got the milk there. +3 Is John in the hallway? yes 1 +4 Sandra dropped the milk there. +5 John journeyed to the bathroom. +6 Is John in the office? no 5 +7 John took the milk there. +8 Daniel went back to the bathroom. +9 Is John in the kitchen? no 5 +10 Mary went back to the bathroom. +11 Sandra went to the hallway. +12 Is John in the bathroom? yes 5 +13 John dropped the milk. +14 Mary travelled to the hallway. +15 Is Sandra in the office? no 11 +1 Mary went back to the kitchen. +2 John took the milk there. +3 Is Mary in the kitchen? yes 1 +4 John went to the garden. +5 Mary went to the garden. +6 Is Mary in the hallway? no 5 +7 Sandra went back to the garden. +8 Mary got the football there. +9 Is John in the kitchen? no 4 +10 Daniel journeyed to the garden. +11 John moved to the hallway. +12 Is John in the hallway? yes 11 +13 Mary went back to the bedroom. +14 Daniel went to the hallway. +15 Is Daniel in the kitchen? no 14 +1 Sandra moved to the hallway. +2 Daniel moved to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Sandra journeyed to the kitchen. +5 Sandra went to the office. +6 Is Daniel in the bedroom? yes 2 +7 John journeyed to the bathroom. +8 Daniel went back to the bathroom. +9 Is Daniel in the office? no 8 +10 Mary went back to the hallway. +11 Sandra travelled to the bathroom. +12 Is Mary in the bathroom? no 10 +13 Sandra went to the kitchen. +14 Mary went back to the kitchen. +15 Is Mary in the garden? no 14 +1 Sandra went back to the bedroom. +2 Mary travelled to the office. +3 Is Sandra in the bedroom? yes 1 +4 Sandra got the apple there. +5 Sandra travelled to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Sandra grabbed the milk there. +8 Sandra put down the milk. +9 Is Sandra in the bathroom? yes 5 +10 Sandra grabbed the milk there. +11 Sandra put down the milk. +12 Is Sandra in the bathroom? yes 5 +13 Sandra put down the apple. +14 Sandra picked up the apple there. +15 Sandra took the milk there. +16 Mary went back to the bathroom. +17 Is Mary in the hallway? no 16 +1 Daniel grabbed the football there. +2 Daniel discarded the football. +3 John journeyed to the office. +4 Sandra journeyed to the hallway. +5 Is John in the office? yes 3 +6 Daniel went back to the bathroom. +7 John journeyed to the kitchen. +8 Is John in the kitchen? yes 7 +9 Sandra journeyed to the office. +10 Mary travelled to the garden. +11 Is Sandra in the office? yes 9 +12 Mary moved to the kitchen. +13 John journeyed to the bathroom. +14 Is John in the hallway? no 13 +15 Mary moved to the garden. +16 Mary went back to the bedroom. +17 Is Mary in the kitchen? no 16 +1 Daniel went to the garden. +2 John took the apple there. +3 Is Daniel in the bathroom? no 1 +4 Sandra travelled to the garden. +5 John discarded the apple. +6 Is Sandra in the garden? yes 4 +7 Daniel moved to the office. +8 John picked up the apple there. +9 Is Sandra in the garden? yes 4 +10 Sandra moved to the hallway. +11 John put down the apple there. +12 Is Sandra in the office? no 10 +13 John got the apple there. +14 Mary went back to the office. +15 Is Sandra in the kitchen? no 10 +1 John journeyed to the hallway. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Sandra went back to the bedroom. +5 John moved to the kitchen. +6 Is Daniel in the bathroom? yes 2 +7 Daniel travelled to the kitchen. +8 Daniel travelled to the hallway. +9 Is Sandra in the hallway? no 4 +10 Sandra went to the kitchen. +11 Daniel moved to the garden. +12 Is Daniel in the garden? yes 11 +13 Daniel journeyed to the office. +14 Mary travelled to the kitchen. +15 Is Daniel in the bathroom? no 13 +1 Mary went back to the bedroom. +2 John took the apple there. +3 Is Mary in the hallway? no 1 +4 Daniel went to the kitchen. +5 Mary travelled to the garden. +6 Is Mary in the garden? yes 5 +7 Sandra moved to the bathroom. +8 Daniel took the football there. +9 Is Daniel in the kitchen? yes 4 +10 John journeyed to the bedroom. +11 Daniel put down the football. +12 Is John in the kitchen? no 10 +13 John dropped the apple there. +14 Sandra went back to the kitchen. +15 Is John in the bedroom? yes 10 +1 John moved to the bedroom. +2 Mary moved to the bedroom. +3 Is Mary in the bedroom? yes 2 +4 Mary went back to the hallway. +5 Daniel travelled to the garden. +6 Is Daniel in the garden? yes 5 +7 Mary went to the garden. +8 John took the football there. +9 Is Mary in the hallway? no 7 +10 Daniel travelled to the bedroom. +11 John picked up the apple there. +12 Is Daniel in the bedroom? yes 10 +13 Daniel went back to the kitchen. +14 Daniel travelled to the bathroom. +15 Is Daniel in the bathroom? yes 14 +1 Sandra got the football there. +2 Sandra put down the football there. +3 Sandra journeyed to the hallway. +4 Mary moved to the hallway. +5 Is Mary in the kitchen? no 4 +6 Sandra moved to the kitchen. +7 Sandra travelled to the hallway. +8 Is Sandra in the hallway? yes 7 +9 Sandra picked up the apple there. +10 Sandra dropped the apple there. +11 Is Mary in the hallway? yes 4 +12 Daniel journeyed to the kitchen. +13 Mary journeyed to the garden. +14 Is Mary in the office? no 13 +15 Mary got the football there. +16 Mary discarded the football. +17 Is Mary in the garden? yes 13 +1 John journeyed to the bathroom. +2 Daniel journeyed to the hallway. +3 Is Daniel in the bathroom? no 2 +4 Daniel got the milk there. +5 Daniel discarded the milk. +6 Is John in the office? no 1 +7 Sandra travelled to the kitchen. +8 Sandra moved to the bathroom. +9 Is Daniel in the hallway? yes 2 +10 Daniel travelled to the bedroom. +11 Mary went back to the office. +12 Is Sandra in the garden? no 8 +13 Mary went back to the bathroom. +14 John moved to the kitchen. +15 Is Daniel in the office? no 10 +1 Mary picked up the apple there. +2 John journeyed to the bedroom. +3 Is John in the bedroom? yes 2 +4 John journeyed to the kitchen. +5 Mary journeyed to the office. +6 Is Mary in the office? yes 5 +7 Daniel went back to the garden. +8 John journeyed to the office. +9 Is John in the garden? no 8 +10 Mary left the apple there. +11 Sandra got the apple there. +12 Is Mary in the office? yes 5 +13 Daniel grabbed the milk there. +14 John moved to the garden. +15 Is John in the garden? yes 14 +1 Mary travelled to the garden. +2 John got the milk there. +3 Is Mary in the office? no 1 +4 John put down the milk there. +5 John picked up the milk there. +6 Is Mary in the kitchen? no 1 +7 John went to the garden. +8 Sandra travelled to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 Sandra went back to the hallway. +11 Daniel moved to the office. +12 Is Sandra in the office? no 10 +13 Sandra travelled to the office. +14 John travelled to the bedroom. +15 Is John in the bedroom? yes 14 +1 Mary moved to the garden. +2 Mary moved to the hallway. +3 Is Mary in the office? no 2 +4 Daniel went to the kitchen. +5 Daniel went back to the bedroom. +6 Is Mary in the hallway? yes 2 +7 John travelled to the bedroom. +8 John travelled to the bathroom. +9 Is Mary in the bathroom? no 2 +10 Mary grabbed the milk there. +11 Daniel journeyed to the bathroom. +12 Is John in the bathroom? yes 8 +13 Mary discarded the milk. +14 John moved to the garden. +15 Is John in the garden? yes 14 +1 Mary moved to the kitchen. +2 Mary travelled to the office. +3 Is Mary in the hallway? no 2 +4 Mary journeyed to the kitchen. +5 Daniel moved to the kitchen. +6 Is Mary in the office? no 4 +7 Sandra picked up the football there. +8 Sandra journeyed to the bedroom. +9 Is Daniel in the garden? no 5 +10 Sandra discarded the football. +11 Sandra got the football there. +12 Is Sandra in the bedroom? yes 8 +13 Daniel moved to the garden. +14 John picked up the milk there. +15 Is Daniel in the bedroom? no 13 +1 Mary went to the garden. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 Daniel grabbed the apple there. +5 Mary moved to the bedroom. +6 Is Mary in the bedroom? yes 5 +7 Daniel picked up the milk there. +8 John journeyed to the bathroom. +9 Is Sandra in the kitchen? no 2 +10 Mary moved to the hallway. +11 Daniel journeyed to the bathroom. +12 Is John in the hallway? no 8 +13 John journeyed to the bedroom. +14 John journeyed to the kitchen. +15 Is John in the office? no 14 +1 Sandra took the milk there. +2 John got the apple there. +3 Sandra dropped the milk. +4 John went to the garden. +5 Is John in the hallway? no 4 +6 John put down the apple there. +7 John grabbed the apple there. +8 Is John in the garden? yes 4 +9 Daniel went to the office. +10 Sandra journeyed to the office. +11 Is John in the bedroom? no 4 +12 Daniel got the football there. +13 Mary journeyed to the garden. +14 Is Daniel in the garden? no 9 +15 John travelled to the hallway. +16 Daniel discarded the football. +17 Is Mary in the garden? yes 13 +1 Mary picked up the milk there. +2 Sandra journeyed to the garden. +3 Is Sandra in the office? no 2 +4 Daniel journeyed to the garden. +5 John travelled to the kitchen. +6 Is Sandra in the office? no 2 +7 Mary went back to the office. +8 Sandra moved to the office. +9 Is Daniel in the hallway? no 4 +10 Daniel went to the bedroom. +11 Sandra journeyed to the garden. +12 Is John in the bathroom? no 5 +13 Mary dropped the milk. +14 Daniel journeyed to the garden. +15 Is Daniel in the office? no 14 +1 Sandra journeyed to the garden. +2 Daniel picked up the milk there. +3 Is Sandra in the office? no 1 +4 John moved to the kitchen. +5 Daniel put down the milk there. +6 Is Sandra in the garden? yes 1 +7 Daniel got the milk there. +8 Mary journeyed to the garden. +9 Is John in the kitchen? yes 4 +10 Mary went back to the bathroom. +11 John went to the bedroom. +12 Is John in the bedroom? yes 11 +13 Daniel put down the milk. +14 Daniel got the milk there. +15 Is Mary in the bathroom? yes 10 +1 Sandra got the milk there. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra moved to the garden. +5 John went back to the bathroom. +6 Is Sandra in the kitchen? no 4 +7 Daniel went to the bathroom. +8 Sandra discarded the milk. +9 Is Sandra in the garden? yes 4 +10 Sandra moved to the hallway. +11 John moved to the garden. +12 Is John in the garden? yes 11 +13 John got the milk there. +14 Sandra went back to the bedroom. +15 Is Sandra in the office? no 14 +1 Sandra grabbed the apple there. +2 John travelled to the bedroom. +3 Is John in the bedroom? yes 2 +4 Sandra travelled to the garden. +5 Mary went back to the garden. +6 Is John in the bathroom? no 2 +7 Sandra journeyed to the bedroom. +8 Sandra travelled to the garden. +9 Is Mary in the garden? yes 5 +10 John went back to the bathroom. +11 Sandra discarded the apple. +12 Is Mary in the garden? yes 5 +13 Mary took the apple there. +14 John went back to the garden. +15 Is John in the bathroom? no 14 +1 Mary moved to the kitchen. +2 Mary went to the garden. +3 Is Mary in the garden? yes 2 +4 John journeyed to the kitchen. +5 John journeyed to the office. +6 Is Mary in the hallway? no 2 +7 John got the milk there. +8 Sandra moved to the office. +9 Is John in the bedroom? no 5 +10 John dropped the milk. +11 Sandra got the milk there. +12 Is John in the bedroom? no 5 +13 Sandra journeyed to the hallway. +14 Sandra discarded the milk. +15 Is Sandra in the garden? no 13 +1 John moved to the bathroom. +2 Mary got the football there. +3 Is John in the bathroom? yes 1 +4 Sandra journeyed to the bedroom. +5 Mary journeyed to the bedroom. +6 Is Sandra in the bedroom? yes 4 +7 Sandra moved to the hallway. +8 John travelled to the garden. +9 Is Sandra in the bedroom? no 7 +10 John journeyed to the office. +11 Mary grabbed the milk there. +12 Is John in the garden? no 10 +13 Mary dropped the milk there. +14 Mary journeyed to the kitchen. +15 Is John in the bathroom? no 10 +1 John travelled to the garden. +2 Sandra went back to the bathroom. +3 Is Sandra in the kitchen? no 2 +4 John went back to the bathroom. +5 Mary moved to the hallway. +6 Is Sandra in the bathroom? yes 2 +7 Mary went to the kitchen. +8 Daniel travelled to the office. +9 Is Daniel in the hallway? no 8 +10 Daniel picked up the milk there. +11 Sandra picked up the football there. +12 Is Mary in the bathroom? no 7 +13 Mary moved to the bedroom. +14 Sandra travelled to the office. +15 Is Sandra in the office? yes 14 +1 Daniel took the football there. +2 John travelled to the kitchen. +3 Is John in the kitchen? yes 2 +4 John travelled to the bedroom. +5 John picked up the milk there. +6 Is John in the bedroom? yes 4 +7 Daniel journeyed to the kitchen. +8 John put down the milk there. +9 Is John in the kitchen? no 4 +10 Sandra went to the bathroom. +11 Sandra took the apple there. +12 Is Daniel in the office? no 7 +13 John took the milk there. +14 Sandra went back to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 John went back to the hallway. +2 Mary went to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 Mary took the apple there. +5 Mary dropped the apple there. +6 Is Mary in the garden? no 2 +7 Mary went to the office. +8 Daniel went back to the bathroom. +9 Is Mary in the hallway? no 7 +10 John journeyed to the office. +11 Sandra went back to the kitchen. +12 Is John in the office? yes 10 +13 John travelled to the bedroom. +14 John journeyed to the hallway. +15 Is Sandra in the garden? no 11 +1 Sandra went to the office. +2 Daniel went back to the office. +3 Is Daniel in the office? yes 2 +4 Mary travelled to the office. +5 John travelled to the bathroom. +6 Is John in the hallway? no 5 +7 Daniel journeyed to the bedroom. +8 Mary went to the kitchen. +9 Is Daniel in the bedroom? yes 7 +10 Sandra went back to the bathroom. +11 Mary grabbed the football there. +12 Is Daniel in the bedroom? yes 7 +13 Mary dropped the football. +14 Mary took the football there. +15 Is Mary in the hallway? no 8 +1 Sandra went to the office. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Daniel travelled to the office. +5 Daniel went back to the kitchen. +6 Is Sandra in the bathroom? no 1 +7 Sandra journeyed to the bedroom. +8 John went to the bathroom. +9 Is Daniel in the office? no 5 +10 Sandra went back to the kitchen. +11 Mary moved to the kitchen. +12 Is Mary in the kitchen? yes 11 +13 Daniel moved to the office. +14 Daniel travelled to the bathroom. +15 Is John in the office? no 8 +1 Daniel travelled to the bedroom. +2 Mary picked up the milk there. +3 Is Daniel in the bedroom? yes 1 +4 Mary put down the milk. +5 Sandra travelled to the garden. +6 Is Sandra in the hallway? no 5 +7 Mary travelled to the kitchen. +8 Daniel journeyed to the office. +9 Is Daniel in the bedroom? no 8 +10 Sandra moved to the hallway. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 Mary took the football there. +14 Mary went back to the office. +15 Is John in the bathroom? no 11 +1 John picked up the football there. +2 Mary went back to the garden. +3 Is Mary in the kitchen? no 2 +4 John moved to the hallway. +5 John moved to the office. +6 Is John in the office? yes 5 +7 John left the football. +8 Sandra went back to the kitchen. +9 Is John in the bathroom? no 5 +10 John journeyed to the kitchen. +11 John travelled to the office. +12 Is John in the office? yes 11 +13 Mary travelled to the office. +14 Mary went back to the garden. +15 Is John in the office? yes 11 +1 Mary went back to the bedroom. +2 Sandra took the apple there. +3 Is Mary in the bedroom? yes 1 +4 Sandra dropped the apple. +5 Daniel journeyed to the hallway. +6 Is Daniel in the hallway? yes 5 +7 Sandra took the apple there. +8 Mary travelled to the hallway. +9 Is Mary in the hallway? yes 8 +10 John moved to the bedroom. +11 Daniel travelled to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 Daniel travelled to the bedroom. +14 Daniel went to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Sandra picked up the apple there. +2 John moved to the kitchen. +3 Is John in the office? no 2 +4 John went to the office. +5 Daniel travelled to the bathroom. +6 Is John in the kitchen? no 4 +7 Sandra journeyed to the kitchen. +8 Daniel went to the bedroom. +9 Is Daniel in the bathroom? no 8 +10 Sandra went to the bathroom. +11 Mary moved to the garden. +12 Is Sandra in the bedroom? no 10 +13 Sandra moved to the kitchen. +14 Mary moved to the bedroom. +15 Is Daniel in the bedroom? yes 8 +1 John moved to the bedroom. +2 John picked up the football there. +3 Is John in the bedroom? yes 1 +4 John went to the kitchen. +5 Sandra went to the kitchen. +6 Is John in the kitchen? yes 4 +7 Daniel travelled to the bathroom. +8 Daniel travelled to the garden. +9 Is Daniel in the kitchen? no 8 +10 John discarded the football. +11 John got the football there. +12 Is Daniel in the garden? yes 8 +13 Mary moved to the hallway. +14 John dropped the football. +15 Is Daniel in the garden? yes 8 +1 John travelled to the hallway. +2 John took the milk there. +3 Is John in the hallway? yes 1 +4 Daniel went to the bathroom. +5 John put down the milk. +6 Is Daniel in the bathroom? yes 4 +7 Daniel took the football there. +8 John took the milk there. +9 Is Daniel in the bathroom? yes 4 +10 Sandra moved to the garden. +11 Daniel moved to the hallway. +12 Is Daniel in the hallway? yes 11 +13 John moved to the garden. +14 John journeyed to the kitchen. +15 Is Sandra in the office? no 10 +1 Daniel moved to the hallway. +2 Sandra travelled to the kitchen. +3 Is Daniel in the office? no 1 +4 Sandra got the milk there. +5 Daniel went to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 John moved to the bedroom. +8 Sandra went to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 Daniel moved to the office. +11 Sandra took the football there. +12 Is Daniel in the office? yes 10 +13 Sandra discarded the milk. +14 Sandra took the milk there. +15 Is Sandra in the bedroom? yes 8 +1 Mary picked up the apple there. +2 Mary travelled to the garden. +3 Is Mary in the garden? yes 2 +4 Daniel went back to the bathroom. +5 Daniel got the milk there. +6 Is Daniel in the bathroom? yes 4 +7 Daniel moved to the garden. +8 Daniel went back to the kitchen. +9 Is Mary in the garden? yes 2 +10 Sandra grabbed the football there. +11 Daniel put down the milk there. +12 Is Daniel in the bathroom? no 8 +13 Daniel went to the bathroom. +14 Mary left the apple there. +15 Is Daniel in the office? no 13 +1 Daniel got the milk there. +2 Daniel discarded the milk. +3 John went back to the garden. +4 John went back to the bedroom. +5 Is John in the bedroom? yes 4 +6 Sandra got the apple there. +7 John journeyed to the bathroom. +8 Is John in the office? no 7 +9 Daniel moved to the bathroom. +10 Sandra discarded the apple. +11 Is John in the kitchen? no 7 +12 Sandra picked up the apple there. +13 Mary journeyed to the garden. +14 Is Daniel in the hallway? no 9 +15 Sandra put down the apple. +16 Sandra moved to the office. +17 Is Sandra in the bathroom? no 16 +1 Daniel went back to the hallway. +2 Sandra went back to the garden. +3 Is Daniel in the hallway? yes 1 +4 Sandra travelled to the kitchen. +5 John travelled to the kitchen. +6 Is Sandra in the kitchen? yes 4 +7 John got the apple there. +8 Mary journeyed to the bedroom. +9 Is Sandra in the kitchen? yes 4 +10 Sandra journeyed to the hallway. +11 John went back to the bathroom. +12 Is John in the bathroom? yes 11 +13 John left the apple. +14 John got the football there. +15 Is John in the garden? no 11 +1 Sandra grabbed the milk there. +2 Sandra went back to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Mary grabbed the football there. +5 Daniel moved to the garden. +6 Is Daniel in the garden? yes 5 +7 John journeyed to the hallway. +8 Daniel went to the bedroom. +9 Is Daniel in the bathroom? no 8 +10 Mary put down the football there. +11 Daniel went back to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John went back to the bathroom. +14 John went back to the bedroom. +15 Is John in the bedroom? yes 14 +1 John moved to the bedroom. +2 Daniel took the milk there. +3 Is John in the office? no 1 +4 John journeyed to the bathroom. +5 Daniel dropped the milk. +6 Is John in the bathroom? yes 4 +7 Mary journeyed to the bedroom. +8 Daniel took the milk there. +9 Is Mary in the bedroom? yes 7 +10 Daniel left the milk. +11 Sandra went back to the hallway. +12 Is Sandra in the kitchen? no 11 +13 John went to the bedroom. +14 Daniel got the milk there. +15 Is Sandra in the bathroom? no 11 +1 Sandra went back to the hallway. +2 Daniel travelled to the office. +3 Is Sandra in the bathroom? no 1 +4 John went back to the bedroom. +5 Sandra took the apple there. +6 Is John in the kitchen? no 4 +7 Sandra left the apple. +8 Mary journeyed to the hallway. +9 Is Daniel in the bathroom? no 2 +10 Sandra went to the garden. +11 Mary travelled to the office. +12 Is Mary in the bedroom? no 11 +13 John moved to the bathroom. +14 Mary went back to the kitchen. +15 Is Mary in the garden? no 14 +1 John moved to the hallway. +2 John took the football there. +3 Is John in the hallway? yes 1 +4 John travelled to the garden. +5 Mary travelled to the office. +6 Is Mary in the office? yes 5 +7 Sandra went to the hallway. +8 John got the milk there. +9 Is John in the kitchen? no 4 +10 John dropped the milk. +11 John got the milk there. +12 Is Sandra in the hallway? yes 7 +13 Daniel travelled to the bathroom. +14 Sandra journeyed to the garden. +15 Is Sandra in the bedroom? no 14 +1 Mary journeyed to the office. +2 John moved to the hallway. +3 Is Mary in the bedroom? no 1 +4 Daniel went to the hallway. +5 Mary travelled to the hallway. +6 Is Mary in the kitchen? no 5 +7 Sandra travelled to the kitchen. +8 Daniel journeyed to the kitchen. +9 Is John in the hallway? yes 2 +10 Daniel travelled to the office. +11 Mary journeyed to the kitchen. +12 Is Daniel in the office? yes 10 +13 Mary travelled to the bathroom. +14 John got the milk there. +15 Is Daniel in the bathroom? no 10 +1 John journeyed to the bedroom. +2 John picked up the football there. +3 Is John in the bedroom? yes 1 +4 Daniel travelled to the bathroom. +5 Sandra went to the office. +6 Is Daniel in the bathroom? yes 4 +7 John journeyed to the office. +8 Daniel travelled to the office. +9 Is Daniel in the office? yes 8 +10 John travelled to the kitchen. +11 Daniel went to the kitchen. +12 Is John in the hallway? no 10 +13 Sandra moved to the garden. +14 Sandra went to the bathroom. +15 Is Sandra in the hallway? no 14 +1 Mary journeyed to the office. +2 Daniel went to the bathroom. +3 Is Mary in the bathroom? no 1 +4 Mary picked up the apple there. +5 Mary put down the apple. +6 Is Daniel in the bathroom? yes 2 +7 Daniel went to the bedroom. +8 Mary took the apple there. +9 Is Daniel in the garden? no 7 +10 Mary travelled to the bathroom. +11 Sandra journeyed to the hallway. +12 Is Sandra in the bedroom? no 11 +13 Sandra got the football there. +14 Mary moved to the kitchen. +15 Is Mary in the bathroom? no 14 +1 John travelled to the office. +2 Mary got the football there. +3 Is John in the office? yes 1 +4 John went to the garden. +5 Sandra moved to the hallway. +6 Is John in the hallway? no 4 +7 Daniel grabbed the apple there. +8 Daniel went back to the office. +9 Is John in the office? no 4 +10 Daniel travelled to the bathroom. +11 Daniel went to the office. +12 Is Daniel in the office? yes 11 +13 Daniel journeyed to the bathroom. +14 Mary left the football there. +15 Is Daniel in the bathroom? yes 13 +1 John got the apple there. +2 John dropped the apple. +3 Mary took the milk there. +4 Mary left the milk. +5 Mary went to the hallway. +6 Sandra travelled to the office. +7 Is Mary in the garden? no 5 +8 John journeyed to the kitchen. +9 Daniel went to the bedroom. +10 Is Daniel in the garden? no 9 +11 John got the milk there. +12 John travelled to the bedroom. +13 Is John in the bedroom? yes 12 +14 Mary journeyed to the garden. +15 John moved to the kitchen. +16 Is Daniel in the office? no 9 +17 Sandra went back to the bedroom. +18 John discarded the milk. +19 Is John in the kitchen? yes 15 +1 John journeyed to the kitchen. +2 Sandra went back to the bedroom. +3 Is John in the kitchen? yes 1 +4 John went to the garden. +5 John picked up the football there. +6 Is John in the garden? yes 4 +7 Mary got the milk there. +8 Sandra travelled to the office. +9 Is Sandra in the kitchen? no 8 +10 Sandra journeyed to the kitchen. +11 Mary moved to the garden. +12 Is Mary in the garden? yes 11 +13 Mary put down the milk there. +14 John left the football. +15 Is Sandra in the kitchen? yes 10 +1 Daniel moved to the kitchen. +2 Mary took the milk there. +3 Is Daniel in the bedroom? no 1 +4 John went back to the kitchen. +5 Mary left the milk. +6 Is Daniel in the garden? no 1 +7 John grabbed the milk there. +8 Mary journeyed to the hallway. +9 Is John in the kitchen? yes 4 +10 John put down the milk. +11 Sandra picked up the apple there. +12 Is Mary in the hallway? yes 8 +13 John journeyed to the bedroom. +14 John went back to the bathroom. +15 Is John in the office? no 14 +1 Daniel travelled to the hallway. +2 Sandra travelled to the garden. +3 Is Daniel in the hallway? yes 1 +4 Mary journeyed to the hallway. +5 Daniel went to the garden. +6 Is Daniel in the bedroom? no 5 +7 Daniel went back to the kitchen. +8 Mary journeyed to the bedroom. +9 Is Sandra in the bedroom? no 2 +10 Mary went to the hallway. +11 John went to the hallway. +12 Is Mary in the hallway? yes 10 +13 Daniel travelled to the bedroom. +14 Mary moved to the bedroom. +15 Is Mary in the bedroom? yes 14 +1 John journeyed to the kitchen. +2 Mary travelled to the office. +3 Is Mary in the office? yes 2 +4 Mary travelled to the kitchen. +5 Mary took the milk there. +6 Is Mary in the office? no 4 +7 Daniel journeyed to the hallway. +8 John went to the bathroom. +9 Is John in the bedroom? no 8 +10 Mary dropped the milk. +11 Mary travelled to the bedroom. +12 Is John in the bathroom? yes 8 +13 Daniel moved to the office. +14 Daniel journeyed to the bedroom. +15 Is Mary in the bedroom? yes 11 +1 John went to the garden. +2 John went to the bathroom. +3 Is John in the bathroom? yes 2 +4 Mary grabbed the apple there. +5 John moved to the garden. +6 Is John in the office? no 5 +7 John journeyed to the office. +8 John went to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra went to the bathroom. +11 John travelled to the garden. +12 Is John in the bathroom? no 11 +13 Mary put down the apple. +14 Daniel travelled to the garden. +15 Is Sandra in the hallway? no 10 +1 John moved to the office. +2 Sandra went to the kitchen. +3 Is Sandra in the office? no 2 +4 Mary moved to the bathroom. +5 Mary journeyed to the bedroom. +6 Is Sandra in the kitchen? yes 2 +7 Daniel travelled to the hallway. +8 Sandra grabbed the football there. +9 Is Mary in the bedroom? yes 5 +10 Daniel picked up the milk there. +11 John went to the kitchen. +12 Is Mary in the garden? no 5 +13 Daniel discarded the milk. +14 Sandra dropped the football. +15 Is John in the bedroom? no 11 +1 John grabbed the football there. +2 Mary got the milk there. +3 Daniel journeyed to the bedroom. +4 Sandra journeyed to the bedroom. +5 Is Sandra in the office? no 4 +6 Daniel moved to the garden. +7 Mary went back to the office. +8 Is Daniel in the kitchen? no 6 +9 Mary dropped the milk. +10 Daniel moved to the kitchen. +11 Is Daniel in the office? no 10 +12 John journeyed to the hallway. +13 Mary journeyed to the bathroom. +14 Is Mary in the garden? no 13 +15 John went back to the bathroom. +16 Mary went to the garden. +17 Is John in the garden? no 15 +1 John journeyed to the hallway. +2 Sandra got the apple there. +3 Is John in the bedroom? no 1 +4 Sandra dropped the apple. +5 Mary moved to the bedroom. +6 Is John in the bathroom? no 1 +7 John moved to the kitchen. +8 John went back to the garden. +9 Is John in the bathroom? no 8 +10 Sandra picked up the apple there. +11 Mary grabbed the milk there. +12 Is John in the bathroom? no 8 +13 Mary dropped the milk. +14 Mary moved to the hallway. +15 Is Mary in the bathroom? no 14 +1 Sandra picked up the milk there. +2 Sandra travelled to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Daniel journeyed to the garden. +5 Sandra moved to the bedroom. +6 Is Sandra in the garden? no 5 +7 Sandra left the milk there. +8 Mary went back to the office. +9 Is Sandra in the bedroom? yes 5 +10 Sandra picked up the milk there. +11 Sandra dropped the milk there. +12 Is Mary in the office? yes 8 +13 Sandra travelled to the hallway. +14 Mary went to the bedroom. +15 Is Mary in the hallway? no 14 +1 John travelled to the office. +2 John picked up the apple there. +3 Is John in the bathroom? no 1 +4 Sandra went back to the office. +5 Mary picked up the football there. +6 Is John in the garden? no 1 +7 Mary put down the football. +8 Mary went to the bathroom. +9 Is Sandra in the hallway? no 4 +10 John discarded the apple. +11 Daniel journeyed to the bathroom. +12 Is Daniel in the bathroom? yes 11 +13 John took the apple there. +14 Mary moved to the garden. +15 Is Daniel in the bathroom? yes 11 +1 Mary went back to the office. +2 Sandra went back to the bedroom. +3 Is Sandra in the hallway? no 2 +4 Mary went back to the kitchen. +5 Mary journeyed to the office. +6 Is Mary in the office? yes 5 +7 Sandra journeyed to the hallway. +8 Daniel took the milk there. +9 Is Mary in the bathroom? no 5 +10 Daniel put down the milk. +11 Sandra travelled to the office. +12 Is Sandra in the hallway? no 11 +13 Daniel took the milk there. +14 Daniel discarded the milk there. +15 Is Sandra in the office? yes 11 +1 Sandra moved to the bedroom. +2 Daniel went to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 John journeyed to the bedroom. +5 Mary travelled to the bathroom. +6 Is Sandra in the garden? no 1 +7 John got the apple there. +8 John left the apple. +9 Is Mary in the kitchen? no 5 +10 Mary went back to the hallway. +11 John grabbed the apple there. +12 Is Mary in the bedroom? no 10 +13 John went to the garden. +14 John left the apple. +15 Is John in the garden? yes 13 +1 Sandra got the apple there. +2 John grabbed the football there. +3 Daniel went to the garden. +4 Daniel went back to the bathroom. +5 Is Daniel in the bathroom? yes 4 +6 Mary went back to the hallway. +7 Sandra went to the bathroom. +8 Is Mary in the bathroom? no 6 +9 John discarded the football. +10 John picked up the football there. +11 Is Mary in the kitchen? no 6 +12 John went to the bedroom. +13 Sandra discarded the apple there. +14 Is Sandra in the bathroom? yes 7 +15 Sandra journeyed to the hallway. +16 John left the football. +17 Is John in the bedroom? yes 12 +1 Sandra moved to the kitchen. +2 Sandra journeyed to the office. +3 Is Sandra in the office? yes 2 +4 Daniel travelled to the hallway. +5 Daniel moved to the kitchen. +6 Is Sandra in the office? yes 2 +7 Sandra went to the kitchen. +8 Mary picked up the milk there. +9 Is Sandra in the kitchen? yes 7 +10 Mary went back to the kitchen. +11 Mary dropped the milk. +12 Is Sandra in the bedroom? no 7 +13 Sandra got the milk there. +14 Mary went back to the garden. +15 Is Mary in the bathroom? no 14 +1 Daniel travelled to the bedroom. +2 Daniel moved to the garden. +3 Is Daniel in the garden? yes 2 +4 Daniel journeyed to the hallway. +5 John moved to the bedroom. +6 Is John in the kitchen? no 5 +7 John journeyed to the bathroom. +8 John journeyed to the office. +9 Is John in the office? yes 8 +10 Sandra journeyed to the bedroom. +11 John went back to the bedroom. +12 Is John in the hallway? no 11 +13 John journeyed to the kitchen. +14 John moved to the hallway. +15 Is John in the office? no 14 +1 Sandra went back to the hallway. +2 John got the milk there. +3 Is Sandra in the kitchen? no 1 +4 Mary went back to the bathroom. +5 Mary went back to the hallway. +6 Is Mary in the hallway? yes 5 +7 Mary travelled to the garden. +8 John went to the bedroom. +9 Is John in the hallway? no 8 +10 John left the milk. +11 Sandra went back to the office. +12 Is Mary in the garden? yes 7 +13 Daniel took the milk there. +14 Sandra went to the bathroom. +15 Is John in the bedroom? yes 8 +1 Sandra went back to the kitchen. +2 Mary went back to the office. +3 Is Mary in the kitchen? no 2 +4 John moved to the office. +5 Sandra travelled to the garden. +6 Is Sandra in the garden? yes 5 +7 Sandra picked up the football there. +8 Sandra discarded the football. +9 Is Mary in the kitchen? no 2 +10 Daniel moved to the garden. +11 Mary moved to the hallway. +12 Is Sandra in the garden? yes 5 +13 Daniel grabbed the football there. +14 John travelled to the bedroom. +15 Is Daniel in the hallway? no 10 +1 Daniel picked up the milk there. +2 John got the football there. +3 Daniel put down the milk. +4 Daniel went to the garden. +5 Is Daniel in the bathroom? no 4 +6 Daniel travelled to the kitchen. +7 Sandra got the apple there. +8 Is Daniel in the office? no 6 +9 Daniel grabbed the milk there. +10 Daniel left the milk. +11 Is Daniel in the garden? no 6 +12 John journeyed to the hallway. +13 Daniel picked up the milk there. +14 Is John in the hallway? yes 12 +15 Daniel travelled to the garden. +16 Sandra discarded the apple. +17 Is Daniel in the bathroom? no 15 +1 Sandra got the milk there. +2 Mary journeyed to the hallway. +3 Is Mary in the bedroom? no 2 +4 Sandra moved to the garden. +5 Sandra moved to the hallway. +6 Is Mary in the bathroom? no 2 +7 Sandra left the milk there. +8 Mary took the milk there. +9 Is Sandra in the hallway? yes 5 +10 Daniel moved to the bathroom. +11 Sandra journeyed to the kitchen. +12 Is Daniel in the bathroom? yes 10 +13 Mary put down the milk. +14 Sandra moved to the office. +15 Is Sandra in the office? yes 14 +1 John went to the bedroom. +2 Mary went to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Mary took the football there. +5 John travelled to the kitchen. +6 Is Mary in the kitchen? no 2 +7 Mary left the football. +8 Sandra travelled to the kitchen. +9 Is John in the bedroom? no 5 +10 Daniel journeyed to the bathroom. +11 Daniel grabbed the football there. +12 Is Daniel in the bathroom? yes 10 +13 John moved to the bedroom. +14 John journeyed to the garden. +15 Is John in the office? no 14 +1 Mary picked up the football there. +2 Sandra grabbed the milk there. +3 Mary left the football there. +4 Daniel moved to the office. +5 Is Daniel in the office? yes 4 +6 Daniel journeyed to the hallway. +7 Sandra left the milk. +8 Is Daniel in the garden? no 6 +9 Daniel picked up the football there. +10 John went back to the bedroom. +11 Is Daniel in the bathroom? no 6 +12 Daniel discarded the football there. +13 Sandra got the milk there. +14 Is John in the bedroom? yes 10 +15 Sandra left the milk there. +16 Daniel got the football there. +17 Is John in the kitchen? no 10 +1 Daniel journeyed to the bathroom. +2 Daniel travelled to the garden. +3 Is Daniel in the office? no 2 +4 Sandra journeyed to the bedroom. +5 Sandra got the football there. +6 Is Daniel in the garden? yes 2 +7 Sandra went back to the bathroom. +8 Sandra put down the football there. +9 Is Sandra in the bedroom? no 7 +10 Daniel journeyed to the kitchen. +11 Mary journeyed to the bedroom. +12 Is Mary in the bathroom? no 11 +13 Mary travelled to the bathroom. +14 John travelled to the bathroom. +15 Is John in the bathroom? yes 14 +1 Sandra went back to the bedroom. +2 Mary went back to the office. +3 Is Mary in the kitchen? no 2 +4 Sandra moved to the bathroom. +5 John journeyed to the bedroom. +6 Is John in the bathroom? no 5 +7 John went back to the kitchen. +8 Mary went to the kitchen. +9 Is John in the kitchen? yes 7 +10 Mary journeyed to the bedroom. +11 Mary moved to the kitchen. +12 Is John in the kitchen? yes 7 +13 Sandra travelled to the bedroom. +14 Daniel got the milk there. +15 Is Mary in the kitchen? yes 11 +1 Mary moved to the hallway. +2 John moved to the kitchen. +3 Is Mary in the office? no 1 +4 Mary grabbed the apple there. +5 Mary dropped the apple. +6 Is Mary in the garden? no 1 +7 Mary grabbed the apple there. +8 John went to the hallway. +9 Is John in the bathroom? no 8 +10 John went to the office. +11 John went back to the bathroom. +12 Is John in the bathroom? yes 11 +13 John went to the office. +14 John took the football there. +15 Is John in the garden? no 13 +1 Sandra picked up the milk there. +2 Mary went back to the bedroom. +3 Is Mary in the hallway? no 2 +4 Daniel picked up the apple there. +5 Daniel discarded the apple. +6 Is Mary in the bedroom? yes 2 +7 John went back to the hallway. +8 Sandra put down the milk. +9 Is John in the hallway? yes 7 +10 Daniel journeyed to the office. +11 John went back to the garden. +12 Is John in the garden? yes 11 +13 Daniel went to the bathroom. +14 Mary picked up the milk there. +15 Is Daniel in the hallway? no 13 +1 John grabbed the apple there. +2 Sandra picked up the milk there. +3 Sandra put down the milk. +4 Daniel picked up the milk there. +5 John dropped the apple. +6 Sandra moved to the kitchen. +7 Is Sandra in the hallway? no 6 +8 Mary journeyed to the kitchen. +9 Daniel put down the milk. +10 Is Sandra in the kitchen? yes 6 +11 Daniel went back to the bathroom. +12 John picked up the football there. +13 Is Daniel in the bathroom? yes 11 +14 John got the apple there. +15 Sandra travelled to the hallway. +16 Is Daniel in the hallway? no 11 +17 John put down the football there. +18 Mary went back to the garden. +19 Is Mary in the garden? yes 18 +1 Sandra went to the garden. +2 Daniel went back to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 Sandra grabbed the football there. +5 Daniel went to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 Sandra moved to the hallway. +8 John went back to the office. +9 Is Daniel in the hallway? no 5 +10 Sandra moved to the garden. +11 Sandra discarded the football there. +12 Is Sandra in the garden? yes 10 +13 Daniel moved to the hallway. +14 John travelled to the kitchen. +15 Is Daniel in the bedroom? no 13 +1 Daniel went back to the garden. +2 Daniel picked up the apple there. +3 Is Daniel in the garden? yes 1 +4 Sandra moved to the hallway. +5 Daniel travelled to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Daniel took the milk there. +8 John grabbed the football there. +9 Is Sandra in the hallway? yes 4 +10 Daniel went to the bathroom. +11 Daniel travelled to the bedroom. +12 Is Daniel in the office? no 11 +13 Daniel moved to the office. +14 John went to the office. +15 Is John in the office? yes 14 +1 Daniel grabbed the milk there. +2 John picked up the football there. +3 John went back to the bedroom. +4 Daniel went to the hallway. +5 Is John in the bathroom? no 3 +6 Daniel grabbed the apple there. +7 John travelled to the hallway. +8 Is Daniel in the bedroom? no 4 +9 Daniel went back to the bathroom. +10 Daniel dropped the milk. +11 Is John in the bedroom? no 7 +12 Daniel journeyed to the kitchen. +13 John left the football. +14 Is Daniel in the kitchen? yes 12 +15 Sandra journeyed to the bedroom. +16 Daniel dropped the apple. +17 Is Sandra in the bathroom? no 15 +1 Mary journeyed to the office. +2 Daniel took the football there. +3 Is Mary in the office? yes 1 +4 Sandra journeyed to the bathroom. +5 Daniel went back to the office. +6 Is Sandra in the bathroom? yes 4 +7 Daniel discarded the football. +8 Mary went to the bedroom. +9 Is Sandra in the bathroom? yes 4 +10 John went back to the bedroom. +11 Mary journeyed to the office. +12 Is Mary in the bathroom? no 11 +13 John journeyed to the hallway. +14 Sandra went to the bedroom. +15 Is Sandra in the kitchen? no 14 +1 Daniel got the apple there. +2 Mary got the football there. +3 Mary discarded the football. +4 Mary journeyed to the bathroom. +5 Is Mary in the garden? no 4 +6 Daniel went to the office. +7 Daniel travelled to the garden. +8 Is Mary in the bathroom? yes 4 +9 Sandra took the football there. +10 Daniel dropped the apple. +11 Is Daniel in the bathroom? no 7 +12 Mary went back to the bedroom. +13 John moved to the office. +14 Is Daniel in the kitchen? no 7 +15 John travelled to the kitchen. +16 Sandra grabbed the apple there. +17 Is John in the bedroom? no 15 +1 John went back to the hallway. +2 John journeyed to the bedroom. +3 Is John in the bedroom? yes 2 +4 Mary moved to the garden. +5 Sandra went back to the bedroom. +6 Is Mary in the bedroom? no 4 +7 Sandra took the football there. +8 Sandra went to the hallway. +9 Is Sandra in the bedroom? no 8 +10 Daniel journeyed to the hallway. +11 Mary moved to the office. +12 Is Mary in the office? yes 11 +13 Sandra went to the office. +14 Mary went back to the garden. +15 Is Sandra in the office? yes 13 +1 Daniel journeyed to the garden. +2 Mary went to the kitchen. +3 Is Daniel in the office? no 1 +4 Daniel journeyed to the hallway. +5 Sandra went back to the office. +6 Is Mary in the kitchen? yes 2 +7 Daniel moved to the bathroom. +8 Mary grabbed the apple there. +9 Is Daniel in the bathroom? yes 7 +10 Daniel went back to the office. +11 Mary went to the garden. +12 Is Daniel in the hallway? no 10 +13 Sandra moved to the bathroom. +14 Mary left the apple. +15 Is Daniel in the office? yes 10 +1 Sandra journeyed to the hallway. +2 Daniel took the football there. +3 Is Sandra in the hallway? yes 1 +4 Mary journeyed to the bedroom. +5 Mary went back to the garden. +6 Is Mary in the office? no 5 +7 Mary went to the kitchen. +8 Daniel journeyed to the bathroom. +9 Is Mary in the bathroom? no 7 +10 Mary picked up the apple there. +11 Mary put down the apple. +12 Is Mary in the kitchen? yes 7 +13 John journeyed to the bedroom. +14 Daniel travelled to the kitchen. +15 Is John in the kitchen? no 13 +1 John got the milk there. +2 John went to the hallway. +3 Is John in the hallway? yes 2 +4 John left the milk. +5 Mary journeyed to the kitchen. +6 Is John in the office? no 2 +7 John journeyed to the office. +8 Daniel journeyed to the hallway. +9 Is Mary in the hallway? no 5 +10 Sandra picked up the football there. +11 Daniel travelled to the garden. +12 Is Mary in the bedroom? no 5 +13 Sandra grabbed the apple there. +14 Daniel went back to the office. +15 Is Daniel in the office? yes 14 +1 Daniel journeyed to the kitchen. +2 Mary got the milk there. +3 Is Daniel in the kitchen? yes 1 +4 Daniel travelled to the bathroom. +5 Daniel took the football there. +6 Is Daniel in the office? no 4 +7 Mary went back to the bedroom. +8 Daniel moved to the kitchen. +9 Is Daniel in the hallway? no 8 +10 Mary moved to the bathroom. +11 John travelled to the hallway. +12 Is Mary in the garden? no 10 +13 Sandra took the apple there. +14 Daniel moved to the office. +15 Is Mary in the bedroom? no 10 +1 Sandra went to the kitchen. +2 John journeyed to the kitchen. +3 Is John in the kitchen? yes 2 +4 John got the milk there. +5 Mary went to the garden. +6 Is John in the garden? no 2 +7 Sandra travelled to the hallway. +8 Sandra picked up the apple there. +9 Is Sandra in the bedroom? no 7 +10 Daniel travelled to the hallway. +11 John travelled to the hallway. +12 Is Mary in the garden? yes 5 +13 Sandra discarded the apple. +14 Daniel took the apple there. +15 Is John in the kitchen? no 11 +1 Sandra picked up the football there. +2 John got the apple there. +3 Mary journeyed to the bathroom. +4 John journeyed to the bathroom. +5 Is John in the bathroom? yes 4 +6 John put down the apple. +7 Sandra picked up the apple there. +8 Is John in the office? no 4 +9 Daniel journeyed to the bedroom. +10 Sandra went to the bedroom. +11 Is Sandra in the bedroom? yes 10 +12 Sandra discarded the apple there. +13 John journeyed to the kitchen. +14 Is John in the bathroom? no 13 +15 Sandra dropped the football. +16 Sandra took the apple there. +17 Is John in the bedroom? no 13 +1 Sandra went to the hallway. +2 John moved to the bedroom. +3 Is Sandra in the hallway? yes 1 +4 Mary moved to the bedroom. +5 Daniel went back to the garden. +6 Is Sandra in the garden? no 1 +7 Mary journeyed to the hallway. +8 Mary took the milk there. +9 Is Mary in the hallway? yes 7 +10 Daniel grabbed the football there. +11 Mary moved to the office. +12 Is Mary in the office? yes 11 +13 Mary dropped the milk. +14 Sandra picked up the apple there. +15 Is Mary in the kitchen? no 11 +1 Daniel journeyed to the office. +2 Daniel moved to the hallway. +3 Is Daniel in the bathroom? no 2 +4 John moved to the garden. +5 Sandra travelled to the hallway. +6 Is Sandra in the office? no 5 +7 Sandra went back to the kitchen. +8 Sandra journeyed to the office. +9 Is Sandra in the bathroom? no 8 +10 Sandra moved to the bedroom. +11 Sandra went back to the office. +12 Is Sandra in the office? yes 11 +13 John went back to the bedroom. +14 Daniel moved to the bathroom. +15 Is Daniel in the hallway? no 14 +1 Mary moved to the kitchen. +2 Sandra journeyed to the office. +3 Is Mary in the kitchen? yes 1 +4 Sandra picked up the milk there. +5 Daniel journeyed to the office. +6 Is Daniel in the office? yes 5 +7 Sandra discarded the milk. +8 Sandra picked up the milk there. +9 Is Sandra in the kitchen? no 2 +10 John moved to the hallway. +11 John journeyed to the kitchen. +12 Is John in the kitchen? yes 11 +13 John went back to the office. +14 Sandra travelled to the bedroom. +15 Is John in the office? yes 13 +1 Daniel travelled to the hallway. +2 John went back to the bathroom. +3 Is John in the kitchen? no 2 +4 John picked up the apple there. +5 Mary moved to the bedroom. +6 Is Daniel in the hallway? yes 1 +7 John put down the apple there. +8 Daniel went back to the bedroom. +9 Is Mary in the hallway? no 5 +10 Mary went to the kitchen. +11 Daniel went to the office. +12 Is Daniel in the office? yes 11 +13 Mary took the milk there. +14 Sandra went to the bathroom. +15 Is Sandra in the hallway? no 14 +1 Mary grabbed the football there. +2 Sandra went to the office. +3 Is Sandra in the garden? no 2 +4 John journeyed to the bathroom. +5 Sandra went back to the bathroom. +6 Is John in the bathroom? yes 4 +7 Mary journeyed to the office. +8 Mary moved to the bedroom. +9 Is Sandra in the kitchen? no 5 +10 Daniel travelled to the bedroom. +11 John moved to the garden. +12 Is Sandra in the kitchen? no 5 +13 Daniel went back to the office. +14 Sandra moved to the office. +15 Is Daniel in the office? yes 13 +1 Mary went back to the bedroom. +2 John went to the bathroom. +3 Is Mary in the office? no 1 +4 John got the football there. +5 Sandra moved to the garden. +6 Is John in the bathroom? yes 2 +7 John left the football. +8 Sandra journeyed to the office. +9 Is Sandra in the office? yes 8 +10 Daniel went back to the bathroom. +11 Daniel got the football there. +12 Is Sandra in the kitchen? no 8 +13 Sandra got the milk there. +14 John moved to the bedroom. +15 Is Daniel in the garden? no 10 +1 John picked up the football there. +2 John took the apple there. +3 Mary moved to the office. +4 John journeyed to the bathroom. +5 Is Mary in the bathroom? no 3 +6 Sandra went back to the garden. +7 John went to the office. +8 Is John in the garden? no 7 +9 Mary went to the hallway. +10 Daniel went to the garden. +11 Is John in the garden? no 7 +12 Daniel went to the bathroom. +13 Sandra went to the office. +14 Is Daniel in the bathroom? yes 12 +15 Mary moved to the garden. +16 Daniel picked up the milk there. +17 Is Sandra in the bathroom? no 13 +1 John picked up the milk there. +2 John dropped the milk. +3 Sandra travelled to the bedroom. +4 John took the milk there. +5 Is Sandra in the garden? no 3 +6 Sandra went to the bathroom. +7 Mary got the apple there. +8 Is Sandra in the bathroom? yes 6 +9 John dropped the milk. +10 Sandra journeyed to the kitchen. +11 Is Sandra in the kitchen? yes 10 +12 John took the milk there. +13 Mary put down the apple. +14 Is Sandra in the bathroom? no 10 +15 Sandra took the football there. +16 Mary got the apple there. +17 Is Sandra in the garden? no 10 +1 Sandra travelled to the garden. +2 Daniel travelled to the kitchen. +3 Is Sandra in the bathroom? no 1 +4 Daniel went to the hallway. +5 Mary went back to the kitchen. +6 Is Sandra in the hallway? no 1 +7 Daniel travelled to the kitchen. +8 Mary moved to the garden. +9 Is Mary in the garden? yes 8 +10 Mary journeyed to the bathroom. +11 Daniel moved to the hallway. +12 Is Daniel in the kitchen? no 11 +13 Mary moved to the kitchen. +14 Daniel travelled to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Sandra moved to the kitchen. +2 Daniel went back to the bathroom. +3 Is Sandra in the hallway? no 1 +4 Sandra got the milk there. +5 Daniel moved to the hallway. +6 Is Daniel in the hallway? yes 5 +7 Sandra dropped the milk. +8 Sandra went to the bathroom. +9 Is Sandra in the garden? no 8 +10 Daniel went to the kitchen. +11 Sandra journeyed to the office. +12 Is Sandra in the bedroom? no 11 +13 Daniel picked up the football there. +14 John went back to the bedroom. +15 Is John in the bedroom? yes 14 +1 Sandra picked up the football there. +2 Mary journeyed to the hallway. +3 Is Mary in the bedroom? no 2 +4 Sandra put down the football there. +5 Sandra journeyed to the hallway. +6 Is Mary in the kitchen? no 2 +7 Mary travelled to the bathroom. +8 Sandra went back to the office. +9 Is Mary in the bathroom? yes 7 +10 Sandra journeyed to the hallway. +11 Sandra journeyed to the kitchen. +12 Is Sandra in the kitchen? yes 11 +13 Daniel moved to the kitchen. +14 Daniel took the apple there. +15 Is Sandra in the kitchen? yes 11 +1 Mary went back to the hallway. +2 John grabbed the milk there. +3 Is Mary in the bathroom? no 1 +4 Sandra travelled to the kitchen. +5 John went to the kitchen. +6 Is Sandra in the kitchen? yes 4 +7 John discarded the milk. +8 Daniel journeyed to the bathroom. +9 Is John in the bathroom? no 5 +10 Daniel went back to the kitchen. +11 Sandra picked up the milk there. +12 Is Daniel in the office? no 10 +13 Daniel went back to the hallway. +14 Sandra went back to the office. +15 Is Sandra in the hallway? no 14 +1 Sandra journeyed to the garden. +2 John travelled to the garden. +3 Is John in the hallway? no 2 +4 John travelled to the bedroom. +5 Sandra got the apple there. +6 Is John in the bedroom? yes 4 +7 Daniel went back to the office. +8 Sandra left the apple. +9 Is John in the bedroom? yes 4 +10 John moved to the garden. +11 Mary moved to the hallway. +12 Is John in the office? no 10 +13 Sandra got the apple there. +14 Daniel journeyed to the hallway. +15 Is John in the bedroom? no 10 +1 Mary took the milk there. +2 John went to the garden. +3 Is John in the garden? yes 2 +4 Daniel got the apple there. +5 Daniel journeyed to the hallway. +6 Is John in the garden? yes 2 +7 John picked up the football there. +8 Mary went back to the garden. +9 Is John in the bathroom? no 2 +10 Sandra went to the hallway. +11 Daniel left the apple. +12 Is Daniel in the hallway? yes 5 +13 Sandra travelled to the bedroom. +14 John dropped the football. +15 Is Sandra in the office? no 13 +1 Sandra went to the bathroom. +2 John journeyed to the hallway. +3 Is Sandra in the garden? no 1 +4 Sandra took the football there. +5 Daniel journeyed to the kitchen. +6 Is John in the hallway? yes 2 +7 Daniel went to the bathroom. +8 Sandra journeyed to the garden. +9 Is Daniel in the bathroom? yes 7 +10 Daniel went to the office. +11 John went back to the kitchen. +12 Is Daniel in the office? yes 10 +13 Sandra dropped the football there. +14 John got the milk there. +15 Is Sandra in the bedroom? no 8 +1 Sandra travelled to the bedroom. +2 Daniel grabbed the football there. +3 Is Sandra in the bedroom? yes 1 +4 Daniel left the football there. +5 Sandra travelled to the kitchen. +6 Is Sandra in the bedroom? no 5 +7 Daniel went back to the office. +8 John went to the bedroom. +9 Is Daniel in the garden? no 7 +10 Sandra went to the office. +11 John journeyed to the garden. +12 Is John in the kitchen? no 11 +13 Mary travelled to the bathroom. +14 Mary travelled to the garden. +15 Is John in the bedroom? no 11 +1 Mary got the apple there. +2 Mary grabbed the milk there. +3 Mary moved to the garden. +4 Mary went back to the bedroom. +5 Is Mary in the bedroom? yes 4 +6 Daniel went back to the kitchen. +7 Mary went to the hallway. +8 Is Mary in the kitchen? no 7 +9 Sandra travelled to the garden. +10 John travelled to the garden. +11 Is Mary in the bathroom? no 7 +12 Mary travelled to the garden. +13 Sandra went back to the hallway. +14 Is Sandra in the hallway? yes 13 +15 Mary put down the milk there. +16 Mary picked up the milk there. +17 Is John in the garden? yes 10 +1 John picked up the football there. +2 John went to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel journeyed to the kitchen. +5 Mary took the milk there. +6 Is Daniel in the kitchen? yes 4 +7 John discarded the football. +8 Mary went back to the office. +9 Is John in the bedroom? no 2 +10 Mary travelled to the bedroom. +11 Daniel went back to the office. +12 Is Mary in the office? no 10 +13 Mary left the milk. +14 Sandra went to the hallway. +15 Is Daniel in the office? yes 11 +1 John grabbed the football there. +2 John went to the garden. +3 Is John in the bedroom? no 2 +4 John dropped the football. +5 John got the football there. +6 Is John in the garden? yes 2 +7 Daniel got the milk there. +8 Sandra went to the office. +9 Is Sandra in the office? yes 8 +10 Mary journeyed to the hallway. +11 Daniel put down the milk. +12 Is Mary in the hallway? yes 10 +13 Daniel picked up the milk there. +14 Mary picked up the apple there. +15 Is Sandra in the office? yes 8 +1 Daniel journeyed to the garden. +2 Mary went to the hallway. +3 Is Daniel in the bedroom? no 1 +4 Mary went to the garden. +5 Sandra moved to the kitchen. +6 Is Sandra in the bedroom? no 5 +7 John went to the kitchen. +8 Daniel journeyed to the hallway. +9 Is Mary in the bathroom? no 4 +10 Daniel got the football there. +11 John travelled to the office. +12 Is John in the bedroom? no 11 +13 Mary travelled to the bathroom. +14 Mary went to the bedroom. +15 Is Mary in the office? no 14 +1 Daniel grabbed the apple there. +2 John went to the garden. +3 Is John in the bathroom? no 2 +4 Daniel moved to the bathroom. +5 Mary moved to the hallway. +6 Is John in the garden? yes 2 +7 Daniel discarded the apple. +8 Sandra got the apple there. +9 Is Daniel in the kitchen? no 4 +10 Sandra travelled to the garden. +11 Sandra dropped the apple there. +12 Is Mary in the hallway? yes 5 +13 John moved to the office. +14 Sandra travelled to the hallway. +15 Is Sandra in the garden? no 14 +1 Mary picked up the apple there. +2 Daniel travelled to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 John travelled to the garden. +5 Mary travelled to the hallway. +6 Is Mary in the kitchen? no 5 +7 Sandra went back to the hallway. +8 Daniel went to the bedroom. +9 Is Daniel in the garden? no 8 +10 John went to the office. +11 Mary left the apple. +12 Is Daniel in the garden? no 8 +13 John travelled to the bathroom. +14 Sandra moved to the office. +15 Is John in the office? no 13 +1 Mary went to the kitchen. +2 Daniel took the football there. +3 Is Mary in the kitchen? yes 1 +4 Mary went to the hallway. +5 John went to the kitchen. +6 Is Mary in the bathroom? no 4 +7 Mary moved to the garden. +8 Daniel went to the kitchen. +9 Is Mary in the hallway? no 7 +10 John travelled to the hallway. +11 Mary went back to the hallway. +12 Is Daniel in the kitchen? yes 8 +13 Daniel discarded the football there. +14 Daniel got the football there. +15 Is John in the garden? no 10 +1 Sandra went back to the bathroom. +2 Daniel moved to the kitchen. +3 Is Sandra in the bedroom? no 1 +4 Daniel went to the bedroom. +5 Mary went back to the hallway. +6 Is Daniel in the bedroom? yes 4 +7 Mary got the apple there. +8 Daniel went back to the hallway. +9 Is Daniel in the hallway? yes 8 +10 John journeyed to the hallway. +11 Mary went to the bedroom. +12 Is John in the bathroom? no 10 +13 John went back to the bathroom. +14 Sandra grabbed the milk there. +15 Is Daniel in the kitchen? no 8 +1 John went back to the bathroom. +2 Mary moved to the office. +3 Is Mary in the bedroom? no 2 +4 John grabbed the apple there. +5 Daniel went back to the kitchen. +6 Is Daniel in the kitchen? yes 5 +7 Daniel got the milk there. +8 John put down the apple. +9 Is Mary in the office? yes 2 +10 Sandra went back to the garden. +11 Sandra travelled to the bathroom. +12 Is Daniel in the office? no 5 +13 John went to the bedroom. +14 Daniel put down the milk. +15 Is John in the bathroom? no 13 +1 Sandra got the football there. +2 Mary went back to the office. +3 Is Mary in the office? yes 2 +4 Daniel journeyed to the hallway. +5 John went to the garden. +6 Is Mary in the garden? no 2 +7 Daniel took the apple there. +8 Daniel discarded the apple. +9 Is John in the garden? yes 5 +10 Sandra discarded the football there. +11 Sandra picked up the football there. +12 Is John in the bedroom? no 5 +13 Sandra dropped the football. +14 John took the football there. +15 John went to the bathroom. +16 Sandra went to the bedroom. +17 Is John in the bathroom? yes 15 +1 Mary went to the office. +2 Sandra journeyed to the office. +3 Is Sandra in the hallway? no 2 +4 Mary moved to the kitchen. +5 Mary got the milk there. +6 Is Sandra in the office? yes 2 +7 Sandra moved to the garden. +8 Mary went to the bedroom. +9 Is Sandra in the garden? yes 7 +10 Mary dropped the milk. +11 Mary moved to the bathroom. +12 Is Mary in the bathroom? yes 11 +13 Mary picked up the football there. +14 John went to the bathroom. +15 Is Mary in the kitchen? no 11 +1 Sandra journeyed to the hallway. +2 Sandra picked up the milk there. +3 Is Sandra in the office? no 1 +4 Sandra dropped the milk. +5 Sandra got the milk there. +6 Is Sandra in the garden? no 1 +7 Sandra discarded the milk there. +8 Sandra travelled to the bedroom. +9 Is Sandra in the office? no 8 +10 Sandra moved to the bathroom. +11 Sandra took the football there. +12 Is Sandra in the bathroom? yes 10 +13 Daniel went to the bathroom. +14 Mary went to the hallway. +15 Is Daniel in the bathroom? yes 13 +1 John went to the bedroom. +2 John moved to the garden. +3 Is John in the bedroom? no 2 +4 Sandra moved to the office. +5 John went to the bedroom. +6 Is John in the bedroom? yes 5 +7 John moved to the bathroom. +8 John went to the garden. +9 Is John in the garden? yes 8 +10 Daniel travelled to the bedroom. +11 Daniel moved to the bathroom. +12 Is Daniel in the bedroom? no 11 +13 Daniel journeyed to the office. +14 John journeyed to the kitchen. +15 Is Daniel in the bedroom? no 13 +1 Sandra travelled to the garden. +2 Sandra went back to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary travelled to the kitchen. +5 Daniel travelled to the bathroom. +6 Is Sandra in the kitchen? yes 2 +7 Daniel journeyed to the hallway. +8 Mary went to the garden. +9 Is Mary in the bedroom? no 8 +10 Sandra grabbed the apple there. +11 John journeyed to the bathroom. +12 Is Daniel in the hallway? yes 7 +13 Sandra travelled to the office. +14 Sandra travelled to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Sandra journeyed to the garden. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra moved to the bedroom. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bathroom? no 5 +7 Mary grabbed the apple there. +8 John moved to the kitchen. +9 Is Daniel in the hallway? no 5 +10 Mary put down the apple there. +11 John journeyed to the office. +12 Is John in the bedroom? no 11 +13 Mary got the apple there. +14 Mary put down the apple there. +15 Is John in the bathroom? no 11 +1 Sandra went back to the bedroom. +2 Sandra travelled to the hallway. +3 Is Sandra in the hallway? yes 2 +4 Mary journeyed to the bathroom. +5 Sandra went to the bathroom. +6 Is Sandra in the garden? no 5 +7 John got the milk there. +8 John got the football there. +9 Is Sandra in the bathroom? yes 5 +10 Sandra went to the hallway. +11 Sandra moved to the garden. +12 Is Sandra in the garden? yes 11 +13 Daniel went to the bedroom. +14 Mary went to the kitchen. +15 Is Sandra in the garden? yes 11 +1 Mary picked up the football there. +2 Daniel went back to the bedroom. +3 Is Daniel in the bedroom? yes 2 +4 John went to the bedroom. +5 Daniel travelled to the bathroom. +6 Is Daniel in the bedroom? no 5 +7 Mary moved to the bedroom. +8 Mary put down the football. +9 Is Daniel in the bathroom? yes 5 +10 John took the football there. +11 Daniel grabbed the milk there. +12 Is Mary in the bedroom? yes 7 +13 Sandra journeyed to the hallway. +14 Daniel dropped the milk. +15 Is Sandra in the hallway? yes 13 +1 John grabbed the milk there. +2 Mary journeyed to the kitchen. +3 Is Mary in the garden? no 2 +4 Sandra travelled to the bathroom. +5 Daniel travelled to the hallway. +6 Is Sandra in the garden? no 4 +7 Mary journeyed to the bedroom. +8 Mary journeyed to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Daniel went back to the kitchen. +11 Mary went to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 Mary moved to the office. +14 Daniel got the apple there. +15 Is Daniel in the kitchen? yes 10 +1 Sandra went back to the bathroom. +2 Sandra took the milk there. +3 Is Sandra in the garden? no 1 +4 Sandra journeyed to the garden. +5 John travelled to the kitchen. +6 Is Sandra in the office? no 4 +7 John went to the hallway. +8 Mary moved to the office. +9 Is John in the hallway? yes 7 +10 Sandra dropped the milk. +11 Mary moved to the kitchen. +12 Is Mary in the garden? no 11 +13 Sandra took the milk there. +14 Daniel travelled to the garden. +15 Is Mary in the garden? no 11 +1 Mary journeyed to the office. +2 John went back to the office. +3 Is John in the office? yes 2 +4 John moved to the bathroom. +5 Daniel travelled to the bathroom. +6 Is Mary in the hallway? no 1 +7 Sandra went back to the office. +8 Sandra went to the bathroom. +9 Is Sandra in the bedroom? no 8 +10 Daniel moved to the bedroom. +11 Sandra journeyed to the kitchen. +12 Is Daniel in the bedroom? yes 10 +13 Daniel went back to the kitchen. +14 Daniel got the apple there. +15 Is Sandra in the kitchen? yes 11 +1 Daniel went to the bedroom. +2 Sandra went back to the hallway. +3 Is Sandra in the garden? no 2 +4 Sandra journeyed to the bathroom. +5 Mary grabbed the milk there. +6 Is Daniel in the garden? no 1 +7 Mary journeyed to the bathroom. +8 Mary dropped the milk. +9 Is Sandra in the bathroom? yes 4 +10 Sandra picked up the milk there. +11 Mary journeyed to the office. +12 Is Mary in the bathroom? no 11 +13 Sandra put down the milk there. +14 John journeyed to the kitchen. +15 Is Mary in the bathroom? no 11 +1 John got the milk there. +2 Mary grabbed the football there. +3 John dropped the milk. +4 Sandra went back to the office. +5 Is Sandra in the office? yes 4 +6 Mary travelled to the bathroom. +7 John travelled to the garden. +8 Is John in the hallway? no 7 +9 Sandra went back to the bathroom. +10 Sandra moved to the office. +11 Is Sandra in the office? yes 10 +12 John travelled to the bathroom. +13 John journeyed to the office. +14 Is John in the hallway? no 13 +15 Sandra journeyed to the garden. +16 Sandra went back to the hallway. +17 Is Sandra in the hallway? yes 16 +1 John travelled to the garden. +2 Daniel went to the garden. +3 Is John in the garden? yes 1 +4 Daniel grabbed the milk there. +5 Sandra journeyed to the bedroom. +6 Is John in the garden? yes 1 +7 Daniel put down the milk. +8 Daniel picked up the milk there. +9 Is Sandra in the garden? no 5 +10 Mary travelled to the kitchen. +11 Sandra picked up the football there. +12 Is Mary in the kitchen? yes 10 +13 Daniel went to the bedroom. +14 Sandra dropped the football there. +15 Is Daniel in the hallway? no 13 +1 Mary journeyed to the office. +2 Daniel took the milk there. +3 Is Mary in the bathroom? no 1 +4 John travelled to the kitchen. +5 Mary journeyed to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Sandra went back to the bathroom. +8 Mary went to the garden. +9 Is Sandra in the bedroom? no 7 +10 Mary went to the office. +11 John got the apple there. +12 Is Sandra in the garden? no 7 +13 Daniel discarded the milk. +14 John dropped the apple there. +15 Is Mary in the office? yes 10 +1 Sandra moved to the bedroom. +2 John went to the bedroom. +3 Is Sandra in the hallway? no 1 +4 Sandra journeyed to the bathroom. +5 Daniel went back to the office. +6 Is Sandra in the hallway? no 4 +7 Sandra journeyed to the bedroom. +8 John journeyed to the bathroom. +9 Is John in the bathroom? yes 8 +10 John grabbed the milk there. +11 John discarded the milk. +12 Is Sandra in the bedroom? yes 7 +13 Mary went back to the bedroom. +14 John travelled to the garden. +15 Is John in the garden? yes 14 +1 John got the milk there. +2 John journeyed to the hallway. +3 Is John in the hallway? yes 2 +4 Daniel travelled to the kitchen. +5 Daniel travelled to the office. +6 Is John in the hallway? yes 2 +7 Sandra journeyed to the kitchen. +8 Daniel journeyed to the kitchen. +9 Is Sandra in the office? no 7 +10 Mary travelled to the kitchen. +11 John dropped the milk there. +12 Is Sandra in the kitchen? yes 7 +13 John grabbed the milk there. +14 John travelled to the bedroom. +15 Is Daniel in the kitchen? yes 8 +1 Daniel went back to the bathroom. +2 Mary travelled to the hallway. +3 Is Daniel in the kitchen? no 1 +4 Daniel got the football there. +5 Sandra travelled to the office. +6 Is Sandra in the office? yes 5 +7 Mary moved to the office. +8 Daniel left the football. +9 Is Mary in the hallway? no 7 +10 John went to the hallway. +11 Daniel went to the garden. +12 Is Sandra in the office? yes 5 +13 John took the apple there. +14 Sandra went to the kitchen. +15 Is Sandra in the bathroom? no 14 +1 Daniel went to the kitchen. +2 Daniel moved to the garden. +3 Is Daniel in the bedroom? no 2 +4 Mary journeyed to the hallway. +5 Sandra journeyed to the office. +6 Is Mary in the bedroom? no 4 +7 Mary went back to the office. +8 Sandra travelled to the bedroom. +9 Is Mary in the hallway? no 7 +10 John travelled to the bedroom. +11 Sandra travelled to the bathroom. +12 Is John in the bedroom? yes 10 +13 Sandra went to the garden. +14 Mary went back to the hallway. +15 Is Mary in the hallway? yes 14 +1 Sandra got the milk there. +2 Sandra moved to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Sandra moved to the hallway. +5 Daniel went back to the bathroom. +6 Is Daniel in the kitchen? no 5 +7 Mary travelled to the office. +8 Mary got the apple there. +9 Is Sandra in the hallway? yes 4 +10 Sandra put down the milk. +11 Sandra got the milk there. +12 Is Daniel in the hallway? no 5 +13 Sandra moved to the bedroom. +14 Mary left the apple. +15 Is Sandra in the bedroom? yes 13 +1 Sandra took the milk there. +2 Sandra discarded the milk. +3 Sandra grabbed the milk there. +4 Sandra left the milk. +5 Mary travelled to the bedroom. +6 Mary went to the office. +7 Is Mary in the office? yes 6 +8 Sandra took the milk there. +9 Mary journeyed to the garden. +10 Is Mary in the office? no 9 +11 Sandra dropped the milk there. +12 John went back to the bedroom. +13 Is Mary in the garden? yes 9 +14 Daniel journeyed to the bathroom. +15 John took the milk there. +16 Is John in the bedroom? yes 12 +17 John put down the milk. +18 Sandra journeyed to the office. +19 Is John in the bedroom? yes 12 +1 Mary moved to the office. +2 Sandra picked up the apple there. +3 Is Mary in the kitchen? no 1 +4 Daniel went back to the office. +5 Daniel went back to the garden. +6 Is Daniel in the bathroom? no 5 +7 John moved to the garden. +8 Sandra got the milk there. +9 Is Daniel in the bedroom? no 5 +10 Mary took the football there. +11 Mary dropped the football there. +12 Is Daniel in the garden? yes 5 +13 Sandra went to the office. +14 Sandra discarded the milk there. +15 Is Sandra in the office? yes 13 +1 Daniel got the football there. +2 Daniel went to the garden. +3 Is Daniel in the garden? yes 2 +4 John picked up the milk there. +5 Mary went back to the bathroom. +6 Is Daniel in the bathroom? no 2 +7 Sandra moved to the hallway. +8 Daniel put down the football. +9 Is Sandra in the office? no 7 +10 Sandra picked up the apple there. +11 John moved to the bedroom. +12 Is Mary in the bedroom? no 5 +13 Sandra moved to the kitchen. +14 Mary travelled to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary picked up the apple there. +2 Daniel went back to the office. +3 Is Daniel in the garden? no 2 +4 Mary dropped the apple. +5 Sandra journeyed to the office. +6 Is Sandra in the office? yes 5 +7 Daniel got the football there. +8 John travelled to the garden. +9 Is Sandra in the office? yes 5 +10 Mary travelled to the garden. +11 Daniel left the football. +12 Is Sandra in the office? yes 5 +13 Daniel picked up the football there. +14 Daniel put down the football. +15 Is Mary in the kitchen? no 10 +1 Sandra grabbed the apple there. +2 Sandra got the football there. +3 Daniel grabbed the milk there. +4 Daniel travelled to the garden. +5 Is Daniel in the bathroom? no 4 +6 John went to the garden. +7 Sandra journeyed to the bathroom. +8 Is Sandra in the garden? no 7 +9 Daniel went back to the kitchen. +10 Mary went to the garden. +11 Is John in the bedroom? no 6 +12 Daniel discarded the milk. +13 Daniel journeyed to the bathroom. +14 Is Daniel in the bedroom? no 13 +15 Sandra moved to the bedroom. +16 Daniel travelled to the kitchen. +17 Is Daniel in the kitchen? yes 16 +1 Mary travelled to the bedroom. +2 John got the football there. +3 Is Mary in the bedroom? yes 1 +4 Mary went back to the bathroom. +5 John dropped the football. +6 Is Mary in the bathroom? yes 4 +7 Daniel moved to the hallway. +8 Sandra travelled to the kitchen. +9 Is Daniel in the garden? no 7 +10 Sandra went to the bathroom. +11 John journeyed to the office. +12 Is Daniel in the bedroom? no 7 +13 Daniel took the football there. +14 Mary travelled to the garden. +15 Is Sandra in the bedroom? no 10 +1 Sandra journeyed to the bedroom. +2 Sandra picked up the football there. +3 Is Sandra in the bedroom? yes 1 +4 Daniel moved to the kitchen. +5 Sandra travelled to the kitchen. +6 Is Daniel in the office? no 4 +7 Mary travelled to the bathroom. +8 John journeyed to the office. +9 Is Mary in the hallway? no 7 +10 Sandra discarded the football. +11 Daniel travelled to the bathroom. +12 Is Mary in the bathroom? yes 7 +13 Sandra took the football there. +14 Sandra put down the football. +15 Is John in the kitchen? no 8 +1 Mary went to the bedroom. +2 Mary went to the hallway. +3 Is Mary in the hallway? yes 2 +4 John took the milk there. +5 Mary journeyed to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Daniel journeyed to the bedroom. +8 Daniel travelled to the bathroom. +9 Is Mary in the bathroom? yes 5 +10 John put down the milk. +11 Mary picked up the milk there. +12 Is Daniel in the bathroom? yes 8 +13 Daniel moved to the hallway. +14 Sandra journeyed to the bedroom. +15 Is Daniel in the hallway? yes 13 +1 John moved to the hallway. +2 Mary picked up the milk there. +3 Is John in the office? no 1 +4 John moved to the bedroom. +5 John picked up the football there. +6 Is John in the bedroom? yes 4 +7 Mary got the apple there. +8 Daniel went to the bathroom. +9 Is Daniel in the bathroom? yes 8 +10 John journeyed to the office. +11 John moved to the bathroom. +12 Is John in the bathroom? yes 11 +13 John left the football. +14 Daniel went back to the garden. +15 Is Daniel in the garden? yes 14 +1 John travelled to the bedroom. +2 Mary went to the office. +3 Is John in the hallway? no 1 +4 Mary picked up the football there. +5 Sandra went back to the garden. +6 Is Mary in the office? yes 2 +7 Mary dropped the football there. +8 Daniel journeyed to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Mary took the football there. +11 Daniel got the milk there. +12 Is Sandra in the bathroom? no 5 +13 Daniel discarded the milk. +14 Mary dropped the football. +15 Is Daniel in the office? no 8 +1 Daniel took the milk there. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Mary journeyed to the office. +5 Daniel journeyed to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Daniel went to the kitchen. +8 Daniel dropped the milk. +9 Is Mary in the bedroom? no 4 +10 Sandra went to the office. +11 John moved to the kitchen. +12 Is Sandra in the bedroom? no 10 +13 Sandra travelled to the bathroom. +14 Mary travelled to the hallway. +15 Is John in the bathroom? no 11 +1 Daniel moved to the bathroom. +2 Mary went back to the bathroom. +3 Is Daniel in the bathroom? yes 1 +4 John travelled to the garden. +5 Sandra went to the bathroom. +6 Is Sandra in the bathroom? yes 5 +7 Mary picked up the milk there. +8 Mary put down the milk. +9 Is John in the office? no 4 +10 Sandra travelled to the garden. +11 Mary went to the kitchen. +12 Is Sandra in the garden? yes 10 +13 Mary picked up the apple there. +14 Daniel picked up the milk there. +15 Is Sandra in the garden? yes 10 +1 Daniel went to the bedroom. +2 Sandra journeyed to the office. +3 Is Daniel in the bedroom? yes 1 +4 Sandra picked up the football there. +5 Sandra went to the hallway. +6 Is Sandra in the bathroom? no 5 +7 Mary went to the kitchen. +8 John travelled to the bedroom. +9 Is Sandra in the garden? no 5 +10 Sandra discarded the football there. +11 Sandra travelled to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Daniel took the milk there. +14 Daniel discarded the milk. +15 Is Sandra in the bedroom? yes 11 +1 Sandra moved to the bedroom. +2 Mary went to the bathroom. +3 Is Mary in the hallway? no 2 +4 Daniel went to the office. +5 Sandra moved to the office. +6 Is Sandra in the bedroom? no 5 +7 John went back to the garden. +8 Mary went back to the bedroom. +9 Is Sandra in the kitchen? no 5 +10 John journeyed to the office. +11 Sandra went back to the bedroom. +12 Is John in the hallway? no 10 +13 Daniel journeyed to the bedroom. +14 Sandra went to the kitchen. +15 Is Sandra in the office? no 14 +1 Sandra travelled to the kitchen. +2 Mary took the apple there. +3 Is Sandra in the office? no 1 +4 Sandra journeyed to the garden. +5 John went to the garden. +6 Is Sandra in the office? no 4 +7 Mary left the apple. +8 Sandra went back to the hallway. +9 Is Sandra in the hallway? yes 8 +10 Daniel went back to the bedroom. +11 John travelled to the hallway. +12 Is Sandra in the bathroom? no 8 +13 Daniel picked up the football there. +14 Sandra journeyed to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 Daniel grabbed the football there. +2 Daniel went to the garden. +3 Is Daniel in the bedroom? no 2 +4 Mary went back to the hallway. +5 Sandra grabbed the milk there. +6 Is Daniel in the garden? yes 2 +7 Daniel left the football. +8 John journeyed to the office. +9 Is Daniel in the garden? yes 2 +10 Daniel moved to the bedroom. +11 Mary journeyed to the bathroom. +12 Is Mary in the bathroom? yes 11 +13 Daniel went back to the garden. +14 Daniel grabbed the football there. +15 Is Daniel in the garden? yes 13 +1 Daniel went back to the office. +2 Sandra travelled to the bedroom. +3 Is Sandra in the bedroom? yes 2 +4 Daniel took the football there. +5 Daniel went back to the kitchen. +6 Is Daniel in the bathroom? no 5 +7 John grabbed the apple there. +8 John journeyed to the kitchen. +9 Is Sandra in the bedroom? yes 2 +10 John left the apple. +11 Daniel dropped the football. +12 Is John in the garden? no 8 +13 Sandra journeyed to the bathroom. +14 Sandra journeyed to the bedroom. +15 Is John in the kitchen? yes 8 +1 Sandra picked up the apple there. +2 Daniel travelled to the office. +3 Is Daniel in the office? yes 2 +4 Daniel moved to the bathroom. +5 John picked up the milk there. +6 Is Daniel in the hallway? no 4 +7 John left the milk. +8 Daniel grabbed the football there. +9 Is Daniel in the bathroom? yes 4 +10 John grabbed the milk there. +11 Daniel discarded the football. +12 Mary travelled to the bedroom. +13 John journeyed to the kitchen. +14 Is John in the garden? no 13 +15 Mary moved to the garden. +16 Sandra moved to the bathroom. +17 Is Mary in the garden? yes 15 +1 John travelled to the office. +2 Mary journeyed to the garden. +3 Is John in the garden? no 1 +4 Daniel journeyed to the kitchen. +5 Daniel travelled to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 John went back to the hallway. +8 Sandra went back to the kitchen. +9 Is Sandra in the garden? no 8 +10 John travelled to the bathroom. +11 Daniel grabbed the apple there. +12 Is John in the office? no 10 +13 Daniel dropped the apple. +14 Sandra went back to the bedroom. +15 Is John in the bathroom? yes 10 +1 Mary grabbed the apple there. +2 Mary dropped the apple. +3 Daniel went back to the bathroom. +4 Mary got the apple there. +5 Is Daniel in the bathroom? yes 3 +6 Sandra got the milk there. +7 Mary discarded the apple. +8 Is Daniel in the bathroom? yes 3 +9 Sandra put down the milk. +10 Mary travelled to the kitchen. +11 Is Mary in the hallway? no 10 +12 Daniel journeyed to the bedroom. +13 John went to the garden. +14 Is Mary in the bedroom? no 10 +15 John journeyed to the bedroom. +16 John travelled to the kitchen. +17 Is John in the kitchen? yes 16 +1 Mary went to the hallway. +2 Sandra took the football there. +3 Is Mary in the garden? no 1 +4 Sandra grabbed the milk there. +5 Daniel moved to the bathroom. +6 Is Mary in the bedroom? no 1 +7 Sandra journeyed to the kitchen. +8 Sandra went back to the garden. +9 Is Sandra in the garden? yes 8 +10 Daniel went back to the bedroom. +11 John travelled to the kitchen. +12 Is John in the bedroom? no 11 +13 Daniel journeyed to the kitchen. +14 Sandra went back to the bedroom. +15 Is Sandra in the bedroom? yes 14 +1 Mary went back to the bedroom. +2 Daniel went to the kitchen. +3 Is Daniel in the kitchen? yes 2 +4 John went back to the hallway. +5 Daniel got the milk there. +6 Is John in the kitchen? no 4 +7 Daniel travelled to the bedroom. +8 Sandra went to the hallway. +9 Is Daniel in the garden? no 7 +10 Daniel picked up the apple there. +11 Mary travelled to the office. +12 Is Sandra in the office? no 8 +13 Daniel went back to the kitchen. +14 Daniel dropped the apple. +15 Is Mary in the kitchen? no 11 +1 John travelled to the garden. +2 Sandra journeyed to the hallway. +3 Is John in the bathroom? no 1 +4 Daniel went to the office. +5 Sandra moved to the office. +6 Is Daniel in the garden? no 4 +7 Daniel went back to the garden. +8 Daniel journeyed to the kitchen. +9 Is Daniel in the kitchen? yes 8 +10 Sandra moved to the hallway. +11 Daniel went to the hallway. +12 Is Daniel in the hallway? yes 11 +13 John got the apple there. +14 John left the apple. +15 Is Daniel in the hallway? yes 11 +1 Daniel journeyed to the bedroom. +2 Sandra went to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Daniel picked up the milk there. +5 Mary moved to the bedroom. +6 Is Sandra in the kitchen? yes 2 +7 Mary moved to the garden. +8 Sandra moved to the office. +9 Is Sandra in the office? yes 8 +10 Sandra moved to the kitchen. +11 Daniel travelled to the hallway. +12 Is Daniel in the bathroom? no 11 +13 Daniel went to the garden. +14 Daniel left the milk. +15 Is Sandra in the bedroom? no 10 +1 John journeyed to the bedroom. +2 John journeyed to the garden. +3 Is John in the garden? yes 2 +4 Daniel moved to the hallway. +5 John journeyed to the kitchen. +6 Is Daniel in the hallway? yes 4 +7 John went back to the bedroom. +8 John took the football there. +9 Is John in the bathroom? no 7 +10 Daniel journeyed to the garden. +11 Daniel travelled to the office. +12 Is Daniel in the office? yes 11 +13 John got the apple there. +14 Mary went back to the bedroom. +15 Is Daniel in the office? yes 11 +1 John moved to the bedroom. +2 John took the football there. +3 Is John in the hallway? no 1 +4 Sandra went back to the bedroom. +5 John put down the football. +6 Is Sandra in the office? no 4 +7 Daniel took the apple there. +8 John got the football there. +9 Is Sandra in the bedroom? yes 4 +10 Daniel went back to the kitchen. +11 Daniel dropped the apple there. +12 Is Daniel in the hallway? no 10 +13 Daniel moved to the hallway. +14 Mary journeyed to the office. +15 Is Daniel in the bedroom? no 13 +1 Sandra journeyed to the garden. +2 Sandra travelled to the hallway. +3 Is Sandra in the bedroom? no 2 +4 John moved to the office. +5 John got the football there. +6 Is Sandra in the garden? no 2 +7 John went to the kitchen. +8 John got the milk there. +9 Is John in the kitchen? yes 7 +10 Mary moved to the office. +11 John went back to the hallway. +12 Is Mary in the bathroom? no 10 +13 Sandra went back to the garden. +14 Mary went back to the garden. +15 Is John in the bedroom? no 11 +1 Daniel picked up the apple there. +2 Daniel put down the apple. +3 Sandra travelled to the office. +4 Sandra moved to the garden. +5 Is Sandra in the kitchen? no 4 +6 John moved to the bathroom. +7 Daniel picked up the apple there. +8 Is Sandra in the garden? yes 4 +9 John went back to the office. +10 Sandra went to the hallway. +11 Is John in the office? yes 9 +12 Daniel moved to the garden. +13 Sandra took the milk there. +14 Is John in the office? yes 9 +15 Mary moved to the bathroom. +16 Daniel journeyed to the bathroom. +17 Is Daniel in the garden? no 16 +1 Sandra moved to the garden. +2 John went back to the bedroom. +3 Is Sandra in the office? no 1 +4 John moved to the garden. +5 Mary went to the office. +6 Is John in the hallway? no 4 +7 John travelled to the office. +8 Mary took the football there. +9 Is John in the garden? no 7 +10 Daniel journeyed to the bedroom. +11 Mary put down the football. +12 Is Mary in the hallway? no 5 +13 John picked up the football there. +14 John put down the football there. +15 Is Daniel in the garden? no 10 +1 Mary picked up the apple there. +2 Daniel went to the garden. +3 Is Daniel in the garden? yes 2 +4 John journeyed to the hallway. +5 Mary left the apple. +6 Is John in the kitchen? no 4 +7 Mary grabbed the apple there. +8 Sandra picked up the football there. +9 Is John in the hallway? yes 4 +10 Sandra moved to the garden. +11 John went back to the office. +12 Is John in the office? yes 11 +13 Daniel went back to the bedroom. +14 Mary dropped the apple. +15 Is John in the office? yes 11 +1 John took the apple there. +2 Sandra got the football there. +3 Sandra travelled to the office. +4 John dropped the apple there. +5 Is Sandra in the office? yes 3 +6 Daniel moved to the bathroom. +7 Mary went back to the office. +8 Is Sandra in the office? yes 3 +9 John went to the hallway. +10 Mary took the milk there. +11 Is Mary in the office? yes 7 +12 Daniel travelled to the office. +13 John journeyed to the garden. +14 Is Mary in the kitchen? no 7 +15 Sandra journeyed to the bedroom. +16 Daniel went to the hallway. +17 Is John in the bedroom? no 13 +1 Daniel travelled to the hallway. +2 John took the apple there. +3 Is Daniel in the kitchen? no 1 +4 John discarded the apple there. +5 Mary grabbed the milk there. +6 Is Daniel in the bedroom? no 1 +7 Mary discarded the milk. +8 John moved to the kitchen. +9 Is John in the kitchen? yes 8 +10 John moved to the bedroom. +11 Mary took the milk there. +12 Is John in the bedroom? yes 10 +13 John travelled to the hallway. +14 Mary left the milk. +15 Is John in the bathroom? no 13 +1 Daniel took the apple there. +2 Mary went to the hallway. +3 Is Mary in the bathroom? no 2 +4 Sandra went to the garden. +5 Daniel travelled to the garden. +6 Is Sandra in the office? no 4 +7 Daniel journeyed to the kitchen. +8 Daniel journeyed to the bedroom. +9 Is Mary in the hallway? yes 2 +10 John travelled to the bathroom. +11 Mary went back to the bathroom. +12 Is Daniel in the bathroom? no 8 +13 John went to the kitchen. +14 Sandra grabbed the football there. +15 Is Daniel in the kitchen? no 8 +1 Sandra travelled to the bedroom. +2 Daniel went back to the bedroom. +3 Is Daniel in the kitchen? no 2 +4 Daniel journeyed to the bathroom. +5 John went back to the hallway. +6 Is John in the kitchen? no 5 +7 John got the milk there. +8 Sandra grabbed the apple there. +9 Is John in the hallway? yes 5 +10 John moved to the garden. +11 John put down the milk. +12 Is John in the hallway? no 10 +13 Daniel went back to the garden. +14 Daniel took the football there. +15 Is John in the bedroom? no 10 +1 John went back to the kitchen. +2 Daniel moved to the office. +3 Is John in the bathroom? no 1 +4 Mary got the football there. +5 Daniel travelled to the bedroom. +6 Is Daniel in the kitchen? no 5 +7 Mary travelled to the office. +8 Mary went to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Sandra moved to the hallway. +11 Mary went to the office. +12 Is Daniel in the office? no 5 +13 Sandra took the apple there. +14 Sandra dropped the apple. +15 Is Sandra in the hallway? yes 10 +1 Sandra picked up the apple there. +2 Sandra left the apple. +3 John went back to the bedroom. +4 Mary journeyed to the office. +5 Is Mary in the office? yes 4 +6 Daniel grabbed the apple there. +7 Daniel dropped the apple. +8 Is Mary in the office? yes 4 +9 Daniel got the apple there. +10 Daniel put down the apple. +11 Is Mary in the kitchen? no 4 +12 Mary took the milk there. +13 Sandra got the apple there. +14 Sandra journeyed to the kitchen. +15 Sandra discarded the apple. +16 Is Sandra in the hallway? no 14 +17 Sandra took the apple there. +18 Daniel moved to the kitchen. +19 Is Sandra in the kitchen? yes 14 +1 Daniel journeyed to the bedroom. +2 Daniel moved to the kitchen. +3 Is Daniel in the bathroom? no 2 +4 Sandra journeyed to the kitchen. +5 Sandra went back to the garden. +6 Is Daniel in the bathroom? no 2 +7 John went back to the bathroom. +8 Daniel took the football there. +9 Is Sandra in the kitchen? no 5 +10 Daniel travelled to the hallway. +11 Mary moved to the garden. +12 Is Mary in the hallway? no 11 +13 Sandra went to the office. +14 Daniel left the football. +15 Is Daniel in the bathroom? no 10 +1 John went to the kitchen. +2 Mary went back to the bedroom. +3 Is John in the bathroom? no 1 +4 Sandra took the football there. +5 Sandra went back to the kitchen. +6 Is Mary in the bedroom? yes 2 +7 John went to the hallway. +8 John travelled to the office. +9 Is John in the office? yes 8 +10 Sandra went back to the garden. +11 Sandra picked up the apple there. +12 Is John in the office? yes 8 +13 Sandra travelled to the kitchen. +14 Sandra discarded the apple. +15 Is John in the office? yes 8 +1 John picked up the milk there. +2 John went back to the bathroom. +3 Is John in the bedroom? no 2 +4 John put down the milk. +5 Sandra travelled to the kitchen. +6 Is John in the bathroom? yes 2 +7 John got the milk there. +8 John dropped the milk. +9 Is Sandra in the bathroom? no 5 +10 Mary went to the bedroom. +11 Sandra got the football there. +12 Is Mary in the bedroom? yes 10 +13 Sandra went to the garden. +14 Daniel picked up the milk there. +15 Is Mary in the bedroom? yes 10 +1 John journeyed to the bedroom. +2 Sandra travelled to the garden. +3 Is John in the bedroom? yes 1 +4 Daniel journeyed to the garden. +5 Mary got the milk there. +6 Is Sandra in the hallway? no 2 +7 Mary dropped the milk. +8 Mary went back to the hallway. +9 Is Daniel in the hallway? no 4 +10 John went back to the kitchen. +11 Daniel went to the bedroom. +12 Is John in the kitchen? yes 10 +13 Mary went to the garden. +14 John went to the office. +15 Is Mary in the kitchen? no 13 +1 John travelled to the bathroom. +2 Daniel travelled to the garden. +3 Is John in the garden? no 1 +4 Mary grabbed the milk there. +5 Mary travelled to the hallway. +6 Is Daniel in the garden? yes 2 +7 Mary took the football there. +8 Mary journeyed to the bathroom. +9 Is Mary in the bathroom? yes 8 +10 Mary travelled to the hallway. +11 Mary left the football. +12 Is Mary in the hallway? yes 10 +13 Daniel travelled to the bathroom. +14 Mary grabbed the football there. +15 Is Daniel in the bathroom? yes 13 +1 Mary got the football there. +2 Sandra travelled to the garden. +3 Is Sandra in the kitchen? no 2 +4 Daniel went back to the garden. +5 Sandra got the apple there. +6 Is Sandra in the office? no 2 +7 John travelled to the office. +8 John journeyed to the bathroom. +9 Is Sandra in the bedroom? no 2 +10 Mary put down the football. +11 Sandra put down the apple. +12 Is John in the bathroom? yes 8 +13 Mary journeyed to the office. +14 Sandra picked up the apple there. +15 Is Mary in the bedroom? no 13 +1 Sandra travelled to the garden. +2 John went back to the hallway. +3 Is Sandra in the garden? yes 1 +4 Sandra journeyed to the bedroom. +5 Daniel got the apple there. +6 Is Sandra in the hallway? no 4 +7 Daniel dropped the apple. +8 Daniel picked up the milk there. +9 Is Sandra in the bedroom? yes 4 +10 Mary went back to the office. +11 Daniel left the milk. +12 Is Mary in the hallway? no 10 +13 Daniel grabbed the apple there. +14 Mary moved to the bedroom. +15 Is Mary in the garden? no 14 +1 Mary grabbed the football there. +2 Mary discarded the football. +3 John went back to the kitchen. +4 Sandra went to the garden. +5 Is Sandra in the garden? yes 4 +6 John journeyed to the hallway. +7 Mary moved to the kitchen. +8 Is John in the hallway? yes 6 +9 John travelled to the office. +10 Sandra got the football there. +11 Is John in the office? yes 9 +12 Sandra moved to the hallway. +13 Sandra travelled to the office. +14 Is Sandra in the office? yes 13 +15 Sandra discarded the football. +16 Sandra moved to the garden. +17 Is Sandra in the garden? yes 16 +1 Sandra journeyed to the bathroom. +2 Sandra journeyed to the kitchen. +3 Is Sandra in the office? no 2 +4 Sandra got the milk there. +5 Daniel went back to the office. +6 Is Sandra in the kitchen? yes 2 +7 Sandra moved to the bathroom. +8 Sandra journeyed to the hallway. +9 Is Sandra in the hallway? yes 8 +10 John travelled to the hallway. +11 Sandra put down the milk. +12 Is John in the hallway? yes 10 +13 John picked up the milk there. +14 John went back to the kitchen. +15 Is John in the kitchen? yes 14 +1 Mary went to the garden. +2 Sandra travelled to the bedroom. +3 Is Mary in the garden? yes 1 +4 John journeyed to the garden. +5 Sandra moved to the hallway. +6 Is John in the garden? yes 4 +7 Mary went back to the hallway. +8 Mary travelled to the office. +9 Is John in the garden? yes 4 +10 Sandra went back to the office. +11 Daniel travelled to the kitchen. +12 Is Daniel in the kitchen? yes 11 +13 Mary went to the garden. +14 Mary travelled to the bathroom. +15 Is Mary in the bathroom? yes 14 +1 Sandra went to the kitchen. +2 Mary went back to the garden. +3 Is Sandra in the kitchen? yes 1 +4 Sandra took the football there. +5 Daniel moved to the office. +6 Is Daniel in the garden? no 5 +7 Sandra travelled to the office. +8 Sandra left the football. +9 Is Sandra in the office? yes 7 +10 Sandra went back to the hallway. +11 Sandra took the milk there. +12 Is Sandra in the hallway? yes 10 +13 Mary went to the kitchen. +14 Daniel took the football there. +15 Is Sandra in the hallway? yes 10 +1 Mary travelled to the hallway. +2 John went back to the garden. +3 Is John in the garden? yes 2 +4 Daniel travelled to the kitchen. +5 John journeyed to the office. +6 Is Daniel in the kitchen? yes 4 +7 John journeyed to the garden. +8 Sandra grabbed the football there. +9 Is Daniel in the garden? no 4 +10 John travelled to the hallway. +11 John journeyed to the garden. +12 Is John in the garden? yes 11 +13 Mary went to the bedroom. +14 Sandra put down the football. +15 Is John in the garden? yes 11 +1 Daniel got the apple there. +2 Daniel moved to the office. +3 Is Daniel in the office? yes 2 +4 Mary went to the bathroom. +5 John travelled to the kitchen. +6 Is Mary in the bathroom? yes 4 +7 Mary moved to the office. +8 John journeyed to the garden. +9 Is Mary in the garden? no 7 +10 Daniel discarded the apple. +11 Daniel took the milk there. +12 Is Mary in the kitchen? no 7 +13 Daniel travelled to the bedroom. +14 Mary grabbed the apple there. +15 Is Daniel in the bedroom? yes 13 +1 Mary went to the garden. +2 Mary picked up the apple there. +3 Is Mary in the garden? yes 1 +4 John took the football there. +5 Mary travelled to the office. +6 Is Mary in the garden? no 5 +7 Mary grabbed the milk there. +8 Daniel moved to the bedroom. +9 Is Daniel in the bedroom? yes 8 +10 Mary journeyed to the bathroom. +11 Sandra went back to the bedroom. +12 Is Sandra in the bedroom? yes 11 +13 Mary discarded the apple. +14 Mary dropped the milk there. +15 Is Daniel in the kitchen? no 8 +1 Mary journeyed to the office. +2 Daniel travelled to the office. +3 Is Daniel in the hallway? no 2 +4 Sandra went to the office. +5 Daniel got the apple there. +6 Is Daniel in the office? yes 2 +7 Daniel put down the apple. +8 Mary journeyed to the bathroom. +9 Is Daniel in the office? yes 2 +10 John picked up the milk there. +11 Sandra picked up the apple there. +12 Is Mary in the garden? no 8 +13 John travelled to the office. +14 Daniel went back to the hallway. +15 Is Daniel in the hallway? yes 14 +1 Sandra journeyed to the bedroom. +2 Mary went back to the garden. +3 Is Sandra in the kitchen? no 1 +4 Mary journeyed to the office. +5 Daniel journeyed to the bathroom. +6 Is Mary in the office? yes 4 +7 Sandra moved to the kitchen. +8 Daniel went back to the hallway. +9 Is Daniel in the bathroom? no 8 +10 John journeyed to the bedroom. +11 Sandra journeyed to the hallway. +12 Is John in the bedroom? yes 10 +13 Mary travelled to the bedroom. +14 Mary grabbed the football there. +15 Is John in the garden? no 10 +1 Sandra moved to the office. +2 John journeyed to the hallway. +3 Is Sandra in the hallway? no 1 +4 Daniel grabbed the football there. +5 Sandra travelled to the hallway. +6 Is Sandra in the hallway? yes 5 +7 Daniel travelled to the bedroom. +8 Daniel went back to the bathroom. +9 Is John in the hallway? yes 2 +10 Daniel travelled to the bedroom. +11 Daniel took the apple there. +12 Is Sandra in the hallway? yes 5 +13 John moved to the bedroom. +14 Daniel left the football. +15 Is John in the bedroom? yes 13 +1 Sandra grabbed the apple there. +2 Sandra left the apple there. +3 Sandra picked up the apple there. +4 Mary went to the hallway. +5 Is Mary in the bedroom? no 4 +6 John moved to the bedroom. +7 Sandra dropped the apple. +8 Is Mary in the bathroom? no 4 +9 Sandra journeyed to the garden. +10 John journeyed to the kitchen. +11 Is John in the kitchen? yes 10 +12 Daniel journeyed to the bedroom. +13 Sandra got the milk there. +14 Is John in the kitchen? yes 10 +15 Sandra went to the kitchen. +16 Daniel went to the bathroom. +17 Is Daniel in the bathroom? yes 16 +1 John journeyed to the hallway. +2 Daniel journeyed to the kitchen. +3 Is John in the kitchen? no 1 +4 Daniel grabbed the milk there. +5 Daniel put down the milk. +6 Is John in the hallway? yes 1 +7 Sandra went to the kitchen. +8 John journeyed to the office. +9 Is Sandra in the kitchen? yes 7 +10 Daniel travelled to the office. +11 Sandra travelled to the bathroom. +12 Is Daniel in the hallway? no 10 +13 John journeyed to the garden. +14 Sandra went back to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Sandra moved to the hallway. +2 John travelled to the hallway. +3 Is Sandra in the hallway? yes 1 +4 Daniel journeyed to the office. +5 Sandra moved to the bedroom. +6 Is John in the office? no 2 +7 Sandra journeyed to the bathroom. +8 Sandra moved to the bedroom. +9 Is Sandra in the garden? no 8 +10 Mary travelled to the hallway. +11 John went back to the office. +12 Is Sandra in the kitchen? no 8 +13 John journeyed to the hallway. +14 Daniel went to the kitchen. +15 Is John in the hallway? yes 13 +1 Sandra went back to the office. +2 Daniel went to the bathroom. +3 Is Daniel in the bathroom? yes 2 +4 Daniel moved to the hallway. +5 Mary journeyed to the garden. +6 Is Sandra in the bathroom? no 1 +7 Daniel moved to the bedroom. +8 Mary moved to the hallway. +9 Is Mary in the garden? no 8 +10 Sandra went back to the garden. +11 Mary took the apple there. +12 Is Daniel in the bedroom? yes 7 +13 Sandra picked up the milk there. +14 Mary left the apple. +15 Is Sandra in the bathroom? no 10 +1 Daniel journeyed to the hallway. +2 Sandra went to the office. +3 Is Daniel in the hallway? yes 1 +4 John went back to the bedroom. +5 Daniel went to the bathroom. +6 Is Daniel in the garden? no 5 +7 John went back to the garden. +8 Sandra went back to the bathroom. +9 Is John in the garden? yes 7 +10 Sandra journeyed to the kitchen. +11 Mary went to the kitchen. +12 Is Sandra in the kitchen? yes 10 +13 Mary moved to the bathroom. +14 Daniel journeyed to the bedroom. +15 Is Daniel in the bedroom? yes 14 +1 Sandra journeyed to the garden. +2 Mary took the football there. +3 Is Sandra in the garden? yes 1 +4 Daniel went to the bathroom. +5 John journeyed to the garden. +6 Is Sandra in the hallway? no 1 +7 John took the apple there. +8 Sandra went back to the hallway. +9 Is Sandra in the bathroom? no 8 +10 Sandra took the milk there. +11 John left the apple. +12 Is John in the garden? yes 5 +13 Mary moved to the kitchen. +14 John went back to the kitchen. +15 Is John in the office? no 14 +1 Mary got the milk there. +2 Sandra got the apple there. +3 John travelled to the office. +4 Mary moved to the bathroom. +5 Is Mary in the bathroom? yes 4 +6 Daniel grabbed the football there. +7 Sandra went back to the bedroom. +8 Is John in the office? yes 3 +9 Mary discarded the milk. +10 Sandra went to the kitchen. +11 Is Sandra in the kitchen? yes 10 +12 John journeyed to the hallway. +13 Mary journeyed to the bedroom. +14 Is Sandra in the kitchen? yes 10 +15 John journeyed to the kitchen. +16 Sandra put down the apple there. +17 Is John in the kitchen? yes 15 +1 Daniel went back to the kitchen. +2 Mary grabbed the milk there. +3 Is Daniel in the kitchen? yes 1 +4 Mary moved to the garden. +5 Sandra travelled to the bathroom. +6 Is Mary in the hallway? no 4 +7 Daniel travelled to the garden. +8 Mary put down the milk. +9 Is Daniel in the garden? yes 7 +10 Daniel moved to the office. +11 Mary moved to the bedroom. +12 Is Mary in the bedroom? yes 11 +13 John moved to the hallway. +14 Mary travelled to the kitchen. +15 Is John in the bathroom? no 13 +1 Mary journeyed to the hallway. +2 Mary went to the bedroom. +3 Is Mary in the hallway? no 2 +4 John moved to the kitchen. +5 John went to the hallway. +6 Is Mary in the office? no 2 +7 Sandra travelled to the bedroom. +8 Daniel went to the bedroom. +9 Is Mary in the bedroom? yes 2 +10 Daniel travelled to the bathroom. +11 Daniel went to the garden. +12 Is John in the hallway? yes 5 +13 John travelled to the office. +14 Daniel picked up the football there. +15 Is Daniel in the garden? yes 11 +1 Mary travelled to the hallway. +2 Sandra went back to the bathroom. +3 Is Mary in the hallway? yes 1 +4 John travelled to the bathroom. +5 Daniel went to the bathroom. +6 Is Sandra in the hallway? no 2 +7 John got the apple there. +8 John journeyed to the garden. +9 Is Sandra in the hallway? no 2 +10 John discarded the apple. +11 Mary moved to the kitchen. +12 Is Daniel in the kitchen? no 5 +13 Mary grabbed the milk there. +14 John got the apple there. +15 Is John in the bathroom? no 8 +1 John went to the bathroom. +2 Daniel got the football there. +3 Is John in the office? no 1 +4 Sandra went to the office. +5 John moved to the office. +6 Is John in the kitchen? no 5 +7 Daniel picked up the apple there. +8 Sandra journeyed to the kitchen. +9 Is John in the hallway? no 5 +10 Sandra went back to the hallway. +11 Sandra moved to the garden. +12 Is John in the office? yes 5 +13 Mary went back to the bathroom. +14 Daniel journeyed to the hallway. +15 Is Sandra in the garden? yes 11 +1 Daniel moved to the hallway. +2 Mary took the football there. +3 Is Daniel in the hallway? yes 1 +4 John travelled to the office. +5 Sandra journeyed to the garden. +6 Is Sandra in the bathroom? no 5 +7 Sandra travelled to the office. +8 Daniel picked up the apple there. +9 Is Sandra in the bathroom? no 7 +10 Daniel travelled to the kitchen. +11 Sandra went back to the bedroom. +12 Is Sandra in the office? no 11 +13 Mary went to the office. +14 Daniel dropped the apple. +15 Is Daniel in the kitchen? yes 10 +1 Sandra travelled to the kitchen. +2 Sandra went to the bathroom. +3 Is Sandra in the kitchen? no 2 +4 Daniel took the apple there. +5 Sandra moved to the bedroom. +6 Is Sandra in the bathroom? no 5 +7 Daniel went to the bathroom. +8 Mary travelled to the bathroom. +9 Is Daniel in the bedroom? no 7 +10 Mary went to the hallway. +11 John picked up the football there. +12 Is Daniel in the garden? no 7 +13 Daniel went to the garden. +14 Mary picked up the milk there. +15 Is Mary in the hallway? yes 10 +1 Mary grabbed the milk there. +2 Mary travelled to the hallway. +3 Is Mary in the bathroom? no 2 +4 John travelled to the garden. +5 Daniel moved to the hallway. +6 Is Daniel in the bedroom? no 5 +7 Daniel journeyed to the bathroom. +8 John moved to the office. +9 Is John in the hallway? no 8 +10 John went to the bedroom. +11 Mary got the football there. +12 Is John in the office? no 10 +13 Daniel went back to the kitchen. +14 Mary left the milk. +15 Is John in the garden? no 10 +1 Daniel travelled to the office. +2 Sandra went back to the garden. +3 Is Daniel in the office? yes 1 +4 Daniel moved to the hallway. +5 Daniel moved to the bathroom. +6 Is Sandra in the bedroom? no 2 +7 Sandra journeyed to the hallway. +8 Sandra journeyed to the bathroom. +9 Is Daniel in the bathroom? yes 5 +10 Sandra travelled to the bedroom. +11 Daniel grabbed the milk there. +12 Is Sandra in the bedroom? yes 10 +13 John went to the office. +14 Sandra went back to the hallway. +15 Is Sandra in the hallway? yes 14 +1 Daniel travelled to the bedroom. +2 Mary travelled to the hallway. +3 Is Mary in the bedroom? no 2 +4 Mary travelled to the bathroom. +5 Sandra went to the hallway. +6 Is Sandra in the hallway? yes 5 +7 John went back to the office. +8 Daniel took the apple there. +9 Is Mary in the kitchen? no 4 +10 Daniel went back to the kitchen. +11 Daniel grabbed the milk there. +12 Is Daniel in the hallway? no 10 +13 John went to the garden. +14 John got the football there. +15 Is John in the garden? yes 13 +1 Mary moved to the office. +2 Mary travelled to the kitchen. +3 Is Mary in the kitchen? yes 2 +4 John journeyed to the hallway. +5 Mary moved to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 John got the milk there. +8 Daniel journeyed to the hallway. +9 Is Mary in the bedroom? no 5 +10 John dropped the milk. +11 Daniel took the milk there. +12 Is Daniel in the garden? no 8 +13 John went back to the garden. +14 John went to the bathroom. +15 Is Daniel in the bedroom? no 8 +1 Daniel grabbed the apple there. +2 Sandra got the football there. +3 Daniel picked up the milk there. +4 Daniel discarded the apple there. +5 Mary moved to the bedroom. +6 Mary got the apple there. +7 Is Mary in the bedroom? yes 5 +8 Sandra put down the football. +9 Sandra took the football there. +10 Is Mary in the kitchen? no 5 +11 Daniel travelled to the garden. +12 Sandra dropped the football. +13 Is Daniel in the garden? yes 11 +14 Mary went to the bathroom. +15 Daniel travelled to the kitchen. +16 Is Daniel in the kitchen? yes 15 +17 Mary went back to the bedroom. +18 Mary took the football there. +19 Is Mary in the bedroom? yes 17 +1 Daniel travelled to the bathroom. +2 Mary moved to the bedroom. +3 Is Mary in the bathroom? no 2 +4 John journeyed to the hallway. +5 John moved to the bathroom. +6 Is Mary in the bedroom? yes 2 +7 John went back to the kitchen. +8 John got the apple there. +9 Is John in the garden? no 7 +10 Sandra moved to the garden. +11 Daniel moved to the garden. +12 Is Sandra in the bedroom? no 10 +13 John dropped the apple. +14 Mary went back to the bathroom. +15 Is Daniel in the office? no 11 +1 Sandra went to the bathroom. +2 Daniel went to the bedroom. +3 Is Daniel in the garden? no 2 +4 John went back to the office. +5 John went to the kitchen. +6 Is John in the kitchen? yes 5 +7 Sandra picked up the milk there. +8 Sandra picked up the football there. +9 Is John in the bedroom? no 5 +10 John travelled to the garden. +11 Sandra put down the football. +12 Is John in the garden? yes 10 +13 Sandra put down the milk. +14 Sandra travelled to the kitchen. +15 Is Sandra in the office? no 14 +1 Mary went back to the hallway. +2 Mary travelled to the garden. +3 Is Mary in the hallway? no 2 +4 Sandra picked up the apple there. +5 Sandra went back to the office. +6 Is Sandra in the kitchen? no 5 +7 Daniel moved to the kitchen. +8 Daniel grabbed the milk there. +9 Is Daniel in the kitchen? yes 7 +10 Mary got the football there. +11 Daniel dropped the milk. +12 Is Sandra in the office? yes 5 +13 Mary left the football. +14 John moved to the kitchen. +15 Is John in the office? no 14 +1 Mary picked up the milk there. +2 John grabbed the football there. +3 John discarded the football. +4 Sandra went back to the bedroom. +5 Is Sandra in the bedroom? yes 4 +6 Mary put down the milk. +7 John got the football there. +8 Is Sandra in the hallway? no 4 +9 Mary took the milk there. +10 John discarded the football. +11 Is Sandra in the hallway? no 4 +12 Daniel journeyed to the bathroom. +13 Sandra journeyed to the garden. +14 Is Daniel in the bathroom? yes 12 +15 Mary left the milk. +16 John journeyed to the garden. +17 Is Daniel in the bathroom? yes 12 +1 Mary went back to the hallway. +2 John got the football there. +3 Is Mary in the hallway? yes 1 +4 Daniel moved to the hallway. +5 John journeyed to the hallway. +6 Is Mary in the bathroom? no 1 +7 Daniel went to the kitchen. +8 John left the football there. +9 Is Daniel in the bedroom? no 7 +10 Mary went back to the kitchen. +11 John picked up the football there. +12 Is Mary in the garden? no 10 +13 John went to the kitchen. +14 Sandra went to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 John went to the kitchen. +2 Daniel went back to the hallway. +3 Is John in the kitchen? yes 1 +4 Mary travelled to the kitchen. +5 Sandra went to the garden. +6 Is Sandra in the garden? yes 5 +7 Daniel moved to the garden. +8 Mary went back to the garden. +9 Is Daniel in the office? no 7 +10 Daniel moved to the office. +11 Sandra went back to the bathroom. +12 Is Sandra in the hallway? no 11 +13 Sandra grabbed the milk there. +14 Mary went back to the kitchen. +15 Is Mary in the kitchen? yes 14 +1 Sandra moved to the hallway. +2 Sandra grabbed the football there. +3 Is Sandra in the garden? no 1 +4 Daniel took the apple there. +5 Mary grabbed the milk there. +6 Is Sandra in the hallway? yes 1 +7 Mary went to the hallway. +8 John went back to the office. +9 Is John in the office? yes 8 +10 John went back to the bedroom. +11 Sandra discarded the football. +12 Is Mary in the hallway? yes 7 +13 Sandra went to the bedroom. +14 Mary went back to the bathroom. +15 Is Sandra in the bathroom? no 13 +1 Mary went to the bathroom. +2 Sandra travelled to the garden. +3 Is Sandra in the garden? yes 2 +4 John travelled to the hallway. +5 Mary moved to the kitchen. +6 Is John in the hallway? yes 4 +7 Sandra journeyed to the kitchen. +8 John got the football there. +9 Is Mary in the garden? no 5 +10 Sandra went to the garden. +11 John moved to the kitchen. +12 Is John in the kitchen? yes 11 +13 Daniel went back to the bathroom. +14 Sandra went back to the kitchen. +15 Is Sandra in the kitchen? yes 14 +1 Daniel grabbed the apple there. +2 Daniel moved to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 Daniel journeyed to the office. +5 John went to the bedroom. +6 Is Daniel in the hallway? no 4 +7 Mary moved to the office. +8 Daniel discarded the apple. +9 Is John in the bedroom? yes 5 +10 Daniel got the apple there. +11 Mary moved to the hallway. +12 Is Mary in the hallway? yes 11 +13 John journeyed to the bathroom. +14 John grabbed the football there. +15 Is Mary in the hallway? yes 11 +1 Mary journeyed to the garden. +2 Mary went to the office. +3 Is Mary in the bathroom? no 2 +4 Mary went to the bathroom. +5 John journeyed to the bathroom. +6 Is Mary in the hallway? no 4 +7 Sandra went to the bathroom. +8 John travelled to the bedroom. +9 Is Mary in the garden? no 4 +10 Daniel went back to the bathroom. +11 Mary went back to the office. +12 Is Sandra in the kitchen? no 7 +13 Daniel went back to the office. +14 Sandra moved to the garden. +15 Is Daniel in the bedroom? no 13 +1 Mary journeyed to the bedroom. +2 Daniel took the apple there. +3 Is Mary in the bedroom? yes 1 +4 Daniel got the milk there. +5 Mary went to the garden. +6 Is Mary in the garden? yes 5 +7 Daniel discarded the apple. +8 Sandra journeyed to the office. +9 Is Sandra in the office? yes 8 +10 John picked up the apple there. +11 Daniel discarded the milk there. +12 Is Sandra in the bedroom? no 8 +13 Daniel picked up the milk there. +14 Daniel travelled to the garden. +15 Is Sandra in the office? yes 8 +1 John travelled to the office. +2 Daniel went to the office. +3 Is John in the hallway? no 1 +4 Daniel moved to the bathroom. +5 Mary moved to the office. +6 Is John in the office? yes 1 +7 Sandra journeyed to the kitchen. +8 Mary travelled to the bathroom. +9 Is Mary in the kitchen? no 8 +10 Sandra travelled to the hallway. +11 Daniel picked up the milk there. +12 Is Sandra in the bathroom? no 10 +13 John took the apple there. +14 John travelled to the garden. +15 Is John in the hallway? no 14 +1 Sandra got the apple there. +2 John travelled to the bathroom. +3 Is John in the bedroom? no 2 +4 Mary picked up the milk there. +5 Mary moved to the bathroom. +6 Is Mary in the garden? no 5 +7 Sandra went back to the bedroom. +8 Sandra journeyed to the bathroom. +9 Is Sandra in the office? no 8 +10 Daniel went back to the bathroom. +11 Mary moved to the hallway. +12 Is Daniel in the kitchen? no 10 +13 John moved to the bedroom. +14 Mary put down the milk. +15 Is Mary in the hallway? yes 11 +1 Mary grabbed the milk there. +2 Daniel picked up the football there. +3 John got the apple there. +4 Sandra went to the kitchen. +5 Is Sandra in the kitchen? yes 4 +6 Daniel left the football. +7 Sandra went to the office. +8 Is Sandra in the office? yes 7 +9 Daniel grabbed the football there. +10 Sandra travelled to the hallway. +11 Is Sandra in the hallway? yes 10 +12 John travelled to the office. +13 Daniel dropped the football. +14 Is John in the garden? no 12 +15 Mary went to the hallway. +16 Sandra moved to the kitchen. +17 Is Sandra in the office? no 16 +1 Sandra moved to the garden. +2 Sandra picked up the milk there. +3 Is Sandra in the bathroom? no 1 +4 John moved to the hallway. +5 Mary moved to the kitchen. +6 Is Mary in the bathroom? no 5 +7 John went back to the kitchen. +8 Sandra journeyed to the kitchen. +9 Is John in the office? no 7 +10 Mary went back to the bathroom. +11 Daniel went to the hallway. +12 Is John in the kitchen? yes 7 +13 Daniel journeyed to the office. +14 Mary got the football there. +15 Is Daniel in the kitchen? no 13 +1 Sandra moved to the kitchen. +2 Mary grabbed the football there. +3 Is Sandra in the kitchen? yes 1 +4 John moved to the kitchen. +5 Mary dropped the football. +6 Is Sandra in the kitchen? yes 1 +7 Sandra travelled to the bedroom. +8 Mary took the football there. +9 Is Sandra in the office? no 7 +10 Daniel travelled to the kitchen. +11 Daniel picked up the apple there. +12 Is Daniel in the kitchen? yes 10 +13 Daniel went back to the bathroom. +14 Daniel left the apple there. +15 Is Daniel in the bathroom? yes 13 +1 Daniel moved to the kitchen. +2 Daniel went to the bathroom. +3 Is Daniel in the bedroom? no 2 +4 Daniel went back to the kitchen. +5 Mary took the milk there. +6 Is Daniel in the kitchen? yes 4 +7 John grabbed the apple there. +8 John dropped the apple there. +9 Is Daniel in the hallway? no 4 +10 John journeyed to the bedroom. +11 Mary put down the milk there. +12 Is John in the bedroom? yes 10 +13 Daniel went back to the bedroom. +14 Daniel went back to the bathroom. +15 Is Daniel in the kitchen? no 14 +1 Daniel went back to the garden. +2 John journeyed to the hallway. +3 Is Daniel in the hallway? no 1 +4 Daniel travelled to the bedroom. +5 Sandra moved to the office. +6 Is Sandra in the kitchen? no 5 +7 Daniel moved to the office. +8 John journeyed to the garden. +9 Is Daniel in the office? yes 7 +10 John went back to the office. +11 Mary went back to the garden. +12 Is Mary in the bathroom? no 11 +13 Sandra went to the bedroom. +14 Daniel went back to the bathroom. +15 Is John in the office? yes 10 +1 John journeyed to the bathroom. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 John journeyed to the bedroom. +5 Sandra took the milk there. +6 Is John in the hallway? no 4 +7 Sandra put down the milk there. +8 Mary went to the hallway. +9 Is Sandra in the garden? no 2 +10 Daniel journeyed to the office. +11 Sandra went back to the bedroom. +12 Is Mary in the office? no 8 +13 Sandra went to the bathroom. +14 Daniel went back to the kitchen. +15 Is Daniel in the hallway? no 14 +1 Sandra travelled to the kitchen. +2 Mary got the football there. +3 Is Sandra in the kitchen? yes 1 +4 Daniel travelled to the kitchen. +5 John travelled to the garden. +6 Is Daniel in the kitchen? yes 4 +7 Daniel picked up the milk there. +8 Mary left the football there. +9 Is Daniel in the kitchen? yes 4 +10 Daniel went to the garden. +11 Sandra went to the bathroom. +12 Is Sandra in the hallway? no 11 +13 Mary went back to the hallway. +14 Daniel discarded the milk. +15 Is Sandra in the kitchen? no 11 +1 Mary moved to the kitchen. +2 Sandra moved to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Mary journeyed to the hallway. +5 Daniel went back to the garden. +6 Is Sandra in the hallway? yes 2 +7 Sandra got the apple there. +8 Sandra travelled to the bedroom. +9 Is Mary in the bathroom? no 4 +10 John went to the kitchen. +11 John went back to the hallway. +12 Is Sandra in the kitchen? no 8 +13 Sandra travelled to the office. +14 Sandra discarded the apple there. +15 Is John in the hallway? yes 11 +1 John went to the hallway. +2 Sandra picked up the football there. +3 Is John in the hallway? yes 1 +4 Mary went back to the hallway. +5 Mary journeyed to the bathroom. +6 Is Mary in the bathroom? yes 5 +7 Sandra travelled to the kitchen. +8 Sandra grabbed the milk there. +9 Is Sandra in the kitchen? yes 7 +10 John journeyed to the office. +11 John went to the bedroom. +12 Is John in the kitchen? no 11 +13 John journeyed to the garden. +14 Sandra travelled to the office. +15 Is John in the bathroom? no 13 +1 John picked up the apple there. +2 Sandra travelled to the office. +3 Is Sandra in the office? yes 2 +4 Mary went to the kitchen. +5 Mary moved to the garden. +6 Is Mary in the garden? yes 5 +7 Mary went to the kitchen. +8 Sandra grabbed the milk there. +9 Is Mary in the kitchen? yes 7 +10 Sandra left the milk. +11 Mary went back to the garden. +12 Is Mary in the kitchen? no 11 +13 John dropped the apple there. +14 John moved to the bedroom. +15 Is Mary in the garden? yes 11 +1 Daniel went back to the bedroom. +2 Sandra travelled to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John journeyed to the kitchen. +5 Daniel journeyed to the office. +6 Is Daniel in the office? yes 5 +7 Daniel went back to the garden. +8 Daniel went to the hallway. +9 Is Daniel in the hallway? yes 8 +10 Sandra went to the office. +11 Daniel moved to the kitchen. +12 Is Daniel in the bedroom? no 11 +13 Mary grabbed the milk there. +14 Mary dropped the milk. +15 Is Daniel in the bedroom? no 11 +1 Sandra took the apple there. +2 John moved to the kitchen. +3 Is John in the garden? no 2 +4 Daniel journeyed to the office. +5 Sandra discarded the apple. +6 Is Daniel in the office? yes 4 +7 Mary went to the bathroom. +8 Daniel went back to the hallway. +9 Is John in the garden? no 2 +10 Daniel travelled to the bathroom. +11 Sandra picked up the apple there. +12 Is Daniel in the garden? no 10 +13 John travelled to the garden. +14 John picked up the milk there. +15 Is John in the hallway? no 13 +1 John went back to the bathroom. +2 John grabbed the milk there. +3 Is John in the bathroom? yes 1 +4 Mary picked up the football there. +5 Mary discarded the football. +6 Is John in the garden? no 1 +7 Sandra went to the bathroom. +8 Sandra went back to the hallway. +9 Is Sandra in the hallway? yes 8 +10 John left the milk there. +11 Sandra went back to the garden. +12 Is Sandra in the kitchen? no 11 +13 Mary travelled to the bathroom. +14 John took the milk there. +15 Is Sandra in the kitchen? no 11 +1 Daniel went back to the office. +2 Mary went back to the bathroom. +3 Is Mary in the bathroom? yes 2 +4 Daniel picked up the apple there. +5 Daniel dropped the apple. +6 Is Daniel in the office? yes 1 +7 Daniel moved to the kitchen. +8 Sandra journeyed to the bathroom. +9 Is Mary in the garden? no 2 +10 Mary journeyed to the kitchen. +11 Sandra grabbed the football there. +12 Is Daniel in the kitchen? yes 7 +13 Daniel journeyed to the hallway. +14 Sandra put down the football. +15 Is Mary in the office? no 10 +1 Daniel moved to the bedroom. +2 Mary got the football there. +3 Is Daniel in the bedroom? yes 1 +4 Daniel journeyed to the hallway. +5 John journeyed to the bathroom. +6 Is Daniel in the hallway? yes 4 +7 Mary put down the football there. +8 Mary took the football there. +9 Is Daniel in the hallway? yes 4 +10 Mary travelled to the hallway. +11 John got the apple there. +12 Is John in the office? no 5 +13 Mary went back to the bedroom. +14 John put down the apple. +15 Is Mary in the bedroom? yes 13 +1 Sandra went back to the kitchen. +2 Daniel moved to the office. +3 Is Sandra in the kitchen? yes 1 +4 John went back to the office. +5 Mary went back to the garden. +6 Is Mary in the bathroom? no 5 +7 Sandra took the milk there. +8 Mary went back to the office. +9 Is John in the office? yes 4 +10 Sandra picked up the football there. +11 John journeyed to the bathroom. +12 Is Mary in the bathroom? no 8 +13 Sandra got the apple there. +14 Mary went back to the hallway. +15 Is Mary in the hallway? yes 14 +1 Mary travelled to the office. +2 Daniel went back to the bathroom. +3 Is Mary in the office? yes 1 +4 Daniel took the football there. +5 Sandra journeyed to the office. +6 Is Daniel in the bathroom? yes 2 +7 John went back to the office. +8 Mary moved to the bathroom. +9 Is John in the office? yes 7 +10 John travelled to the bedroom. +11 Daniel journeyed to the kitchen. +12 Is Sandra in the bedroom? no 5 +13 Daniel dropped the football. +14 John travelled to the hallway. +15 Is John in the hallway? yes 14 +1 Daniel took the apple there. +2 Daniel put down the apple there. +3 Mary journeyed to the office. +4 Daniel went to the kitchen. +5 Is Mary in the office? yes 3 +6 Daniel picked up the football there. +7 Mary went to the bedroom. +8 Is Mary in the bathroom? no 7 +9 John moved to the kitchen. +10 Mary moved to the bathroom. +11 Is John in the kitchen? yes 9 +12 Mary took the milk there. +13 Mary discarded the milk. +14 Is John in the hallway? no 9 +15 Daniel travelled to the office. +16 Sandra travelled to the kitchen. +17 Is Daniel in the kitchen? no 15 +1 Daniel travelled to the bathroom. +2 Mary travelled to the hallway. +3 Is Daniel in the bathroom? yes 1 +4 John travelled to the bathroom. +5 Mary got the football there. +6 Is John in the bathroom? yes 4 +7 Sandra travelled to the kitchen. +8 Mary journeyed to the kitchen. +9 Is Mary in the kitchen? yes 8 +10 Daniel picked up the milk there. +11 Daniel travelled to the hallway. +12 Is Sandra in the kitchen? yes 7 +13 Sandra went back to the office. +14 Mary left the football. +15 Is Mary in the kitchen? yes 8 +1 Sandra grabbed the football there. +2 Sandra travelled to the kitchen. +3 Is Sandra in the kitchen? yes 2 +4 Sandra journeyed to the office. +5 Daniel went back to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 Sandra went back to the hallway. +8 Sandra put down the football. +9 Is Sandra in the office? no 7 +10 John moved to the bedroom. +11 Sandra picked up the football there. +12 Is Daniel in the bathroom? yes 5 +13 Daniel went to the kitchen. +14 Sandra journeyed to the bedroom. +15 Is Daniel in the bathroom? no 13 +1 Mary moved to the garden. +2 Mary went back to the bedroom. +3 Is Mary in the office? no 2 +4 Sandra travelled to the kitchen. +5 John travelled to the kitchen. +6 Is Sandra in the hallway? no 4 +7 Sandra went to the hallway. +8 Mary got the football there. +9 Is Sandra in the hallway? yes 7 +10 Mary discarded the football. +11 Daniel went to the office. +12 Is Daniel in the office? yes 11 +13 Daniel went to the garden. +14 Daniel moved to the kitchen. +15 Is Daniel in the kitchen? yes 14 +1 Mary travelled to the bathroom. +2 Mary went to the hallway. +3 Is Mary in the hallway? yes 2 +4 Daniel went back to the hallway. +5 Daniel travelled to the bathroom. +6 Is Daniel in the bathroom? yes 5 +7 John went back to the bedroom. +8 John journeyed to the garden. +9 Is Daniel in the hallway? no 5 +10 John travelled to the office. +11 Daniel journeyed to the garden. +12 Is John in the garden? no 10 +13 Mary moved to the garden. +14 Sandra journeyed to the hallway. +15 Is Mary in the kitchen? no 13 +1 Daniel journeyed to the bedroom. +2 Sandra went to the hallway. +3 Is Sandra in the hallway? yes 2 +4 John went to the bedroom. +5 Mary went back to the hallway. +6 Is Mary in the bedroom? no 5 +7 John went back to the hallway. +8 Sandra got the football there. +9 Is Mary in the office? no 5 +10 Daniel moved to the kitchen. +11 John moved to the garden. +12 Is John in the office? no 11 +13 Daniel went to the garden. +14 Mary went to the kitchen. +15 Is Daniel in the garden? yes 13 +1 John went back to the bedroom. +2 John travelled to the office. +3 Is John in the office? yes 2 +4 Daniel journeyed to the garden. +5 Mary got the apple there. +6 Is John in the kitchen? no 2 +7 Sandra travelled to the bathroom. +8 Mary went back to the kitchen. +9 Is John in the kitchen? no 2 +10 Mary put down the apple. +11 Sandra moved to the kitchen. +12 Is Mary in the kitchen? yes 8 +13 Mary got the milk there. +14 Sandra took the football there. +15 Is Mary in the kitchen? yes 8 +1 Sandra went to the garden. +2 John moved to the garden. +3 Is Sandra in the bedroom? no 1 +4 Mary went back to the office. +5 Mary moved to the bathroom. +6 Is Sandra in the bedroom? no 1 +7 John picked up the football there. +8 John went to the hallway. +9 Is John in the hallway? yes 8 +10 Sandra journeyed to the bathroom. +11 John travelled to the garden. +12 Is John in the garden? yes 11 +13 Daniel travelled to the hallway. +14 Daniel moved to the kitchen. +15 Is Daniel in the garden? no 14 +1 Mary got the football there. +2 Daniel picked up the apple there. +3 John went to the kitchen. +4 Sandra travelled to the office. +5 Is John in the kitchen? yes 3 +6 John went back to the garden. +7 John journeyed to the bedroom. +8 Is John in the garden? no 7 +9 Daniel picked up the milk there. +10 Daniel went back to the kitchen. +11 Is John in the hallway? no 7 +12 John moved to the bathroom. +13 Sandra went to the bathroom. +14 Is Daniel in the garden? no 10 +15 Sandra travelled to the bedroom. +16 Sandra travelled to the hallway. +17 Is Sandra in the hallway? yes 16 +1 Sandra went to the office. +2 John got the milk there. +3 Is Sandra in the office? yes 1 +4 Sandra travelled to the bathroom. +5 John journeyed to the kitchen. +6 Is Sandra in the bathroom? yes 4 +7 Sandra moved to the kitchen. +8 Mary went to the bathroom. +9 Is John in the kitchen? yes 5 +10 Daniel journeyed to the hallway. +11 John left the milk. +12 Is Daniel in the bathroom? no 10 +13 Daniel went to the bedroom. +14 Mary moved to the office. +15 Is Mary in the kitchen? no 14 +1 Daniel picked up the apple there. +2 John went back to the garden. +3 Is John in the kitchen? no 2 +4 Sandra took the football there. +5 Daniel moved to the garden. +6 Is Daniel in the kitchen? no 5 +7 Mary went back to the hallway. +8 John moved to the bedroom. +9 Is John in the bedroom? yes 8 +10 John grabbed the milk there. +11 John moved to the hallway. +12 Is John in the office? no 11 +13 Daniel put down the apple there. +14 John dropped the milk. +15 Is John in the garden? no 11 +1 Mary went to the bedroom. +2 Mary went to the hallway. +3 Is Mary in the hallway? yes 2 +4 Sandra travelled to the garden. +5 Sandra went to the hallway. +6 Is Mary in the hallway? yes 2 +7 Mary picked up the milk there. +8 Mary discarded the milk there. +9 Is Sandra in the hallway? yes 5 +10 John went to the bathroom. +11 Sandra got the milk there. +12 Is John in the bathroom? yes 10 +13 Sandra put down the milk. +14 Mary journeyed to the garden. +15 Is Mary in the office? no 14 +1 John moved to the hallway. +2 Sandra got the milk there. +3 Is John in the hallway? yes 1 +4 John journeyed to the garden. +5 Sandra put down the milk. +6 Is John in the garden? yes 4 +7 Mary journeyed to the bathroom. +8 Mary took the apple there. +9 Is Mary in the bathroom? yes 7 +10 Mary got the football there. +11 Mary moved to the bedroom. +12 Is Mary in the kitchen? no 11 +13 Sandra journeyed to the kitchen. +14 Sandra moved to the bathroom. +15 Is Sandra in the office? no 14 +1 John took the football there. +2 Mary picked up the apple there. +3 Daniel went back to the office. +4 Sandra went to the kitchen. +5 Is Sandra in the hallway? no 4 +6 Mary went back to the kitchen. +7 Mary journeyed to the garden. +8 Is Daniel in the office? yes 3 +9 Mary dropped the apple. +10 Daniel journeyed to the bedroom. +11 Is Daniel in the bedroom? yes 10 +12 John went back to the office. +13 John travelled to the hallway. +14 Is John in the bedroom? no 13 +15 Sandra went to the bedroom. +16 Sandra went back to the hallway. +17 Is John in the kitchen? no 13 +1 Mary picked up the football there. +2 Daniel moved to the office. +3 Is Daniel in the bedroom? no 2 +4 Mary got the apple there. +5 Daniel travelled to the bedroom. +6 Is Daniel in the bedroom? yes 5 +7 Mary went back to the office. +8 Mary went to the garden. +9 Is Daniel in the bedroom? yes 5 +10 Mary moved to the bathroom. +11 Sandra went to the bathroom. +12 Is Mary in the bathroom? yes 10 +13 John moved to the bedroom. +14 John went to the kitchen. +15 Is John in the bedroom? no 14 +1 John took the football there. +2 John travelled to the office. +3 Is John in the office? yes 2 +4 John got the milk there. +5 Sandra journeyed to the office. +6 Is John in the bathroom? no 2 +7 Daniel went back to the bathroom. +8 Sandra journeyed to the bedroom. +9 Is Sandra in the bedroom? yes 8 +10 John moved to the hallway. +11 John moved to the bathroom. +12 Is Sandra in the bedroom? yes 8 +13 Daniel went back to the garden. +14 Daniel journeyed to the office. +15 Is John in the bathroom? yes 11 +1 John moved to the garden. +2 Daniel went to the bathroom. +3 Is John in the garden? yes 1 +4 John grabbed the apple there. +5 Mary went to the kitchen. +6 Is Mary in the kitchen? yes 5 +7 Daniel grabbed the milk there. +8 Mary picked up the football there. +9 Is Daniel in the bathroom? yes 2 +10 Mary moved to the bedroom. +11 Mary left the football. +12 Is Mary in the garden? no 10 +13 Daniel discarded the milk. +14 Daniel moved to the garden. +15 Is Mary in the office? no 10 +1 Sandra picked up the apple there. +2 John moved to the bathroom. +3 Is John in the bathroom? yes 2 +4 Daniel journeyed to the bedroom. +5 Sandra discarded the apple. +6 Is John in the bathroom? yes 2 +7 Sandra moved to the kitchen. +8 Sandra travelled to the bathroom. +9 Is John in the bathroom? yes 2 +10 Mary went to the bathroom. +11 Sandra went back to the kitchen. +12 Is Mary in the bedroom? no 10 +13 Sandra travelled to the garden. +14 Sandra got the milk there. +15 Is Sandra in the garden? yes 13 +1 John journeyed to the hallway. +2 Daniel journeyed to the bedroom. +3 Is Daniel in the hallway? no 2 +4 Daniel went back to the kitchen. +5 Mary went back to the bedroom. +6 Is Daniel in the kitchen? yes 4 +7 Sandra moved to the garden. +8 Daniel got the football there. +9 Is Daniel in the garden? no 4 +10 Daniel went back to the hallway. +11 Daniel picked up the apple there. +12 Is Sandra in the garden? yes 7 +13 John moved to the bathroom. +14 Sandra journeyed to the hallway. +15 Is John in the bathroom? yes 13 +1 Daniel went back to the bedroom. +2 John went back to the bathroom. +3 Is John in the bathroom? yes 2 +4 Sandra grabbed the football there. +5 Daniel moved to the kitchen. +6 Is John in the kitchen? no 2 +7 Mary journeyed to the kitchen. +8 Mary went to the hallway. +9 Is John in the garden? no 2 +10 John went to the hallway. +11 Sandra put down the football. +12 Is Mary in the hallway? yes 8 +13 Daniel went to the bathroom. +14 Daniel went to the bedroom. +15 Is Daniel in the kitchen? no 14 +1 John went back to the hallway. +2 Sandra took the football there. +3 Is John in the bedroom? no 1 +4 John journeyed to the bathroom. +5 Sandra left the football there. +6 Is John in the bathroom? yes 4 +7 Sandra got the apple there. +8 Sandra discarded the apple. +9 Is John in the bathroom? yes 4 +10 John moved to the office. +11 Daniel moved to the office. +12 Is Daniel in the hallway? no 11 +13 Mary went to the office. +14 John travelled to the garden. +15 Is Mary in the bathroom? no 13 +1 Daniel travelled to the bedroom. +2 Sandra went to the office. +3 Is Sandra in the office? yes 2 +4 Daniel travelled to the kitchen. +5 Sandra went back to the bathroom. +6 Is Sandra in the garden? no 5 +7 Sandra went to the hallway. +8 Mary travelled to the bathroom. +9 Is Sandra in the office? no 7 +10 Sandra took the football there. +11 Sandra got the milk there. +12 Is Sandra in the kitchen? no 7 +13 John moved to the garden. +14 John journeyed to the office. +15 Is John in the bathroom? no 14 +1 Daniel grabbed the football there. +2 John moved to the office. +3 Is John in the bedroom? no 2 +4 Daniel journeyed to the bathroom. +5 Sandra grabbed the apple there. +6 Is Daniel in the bathroom? yes 4 +7 Sandra dropped the apple. +8 Daniel put down the football. +9 Is Daniel in the bathroom? yes 4 +10 Daniel got the apple there. +11 Mary grabbed the milk there. +12 John travelled to the bedroom. +13 Daniel put down the apple. +14 Is John in the bedroom? yes 12 +15 Mary dropped the milk. +16 Sandra journeyed to the hallway. +17 Is Sandra in the hallway? yes 16 +1 John journeyed to the hallway. +2 John moved to the bathroom. +3 Is John in the kitchen? no 2 +4 Sandra picked up the milk there. +5 Sandra got the football there. +6 Is John in the bathroom? yes 2 +7 Sandra journeyed to the hallway. +8 Sandra moved to the bathroom. +9 Is Sandra in the bathroom? yes 8 +10 Sandra moved to the garden. +11 John went back to the hallway. +12 Is Sandra in the office? no 10 +13 Sandra went to the bedroom. +14 Daniel travelled to the bedroom. +15 Is Sandra in the kitchen? no 13 +1 Mary grabbed the milk there. +2 Mary dropped the milk. +3 John went to the hallway. +4 Sandra moved to the bathroom. +5 Is Sandra in the office? no 4 +6 Sandra travelled to the bedroom. +7 Sandra went to the hallway. +8 Is Sandra in the hallway? yes 7 +9 Daniel journeyed to the office. +10 Sandra took the football there. +11 Is Sandra in the kitchen? no 7 +12 Daniel travelled to the garden. +13 Daniel journeyed to the hallway. +14 Is Daniel in the hallway? yes 13 +15 Sandra left the football. +16 John grabbed the football there. +17 Is Daniel in the bathroom? no 13 +1 Sandra moved to the garden. +2 Sandra went to the bathroom. +3 Is Sandra in the bathroom? yes 2 +4 Sandra journeyed to the kitchen. +5 Sandra got the football there. +6 Is Sandra in the bedroom? no 4 +7 Sandra discarded the football. +8 Daniel moved to the office. +9 Is Sandra in the kitchen? yes 4 +10 Sandra took the football there. +11 Daniel grabbed the milk there. +12 Is Daniel in the kitchen? no 8 +13 Sandra left the football there. +14 Sandra got the football there. +15 Is Daniel in the bedroom? no 8 +1 Mary grabbed the apple there. +2 Mary journeyed to the bathroom. +3 Is Mary in the kitchen? no 2 +4 Daniel travelled to the kitchen. +5 Mary discarded the apple. +6 Is Daniel in the kitchen? yes 4 +7 John grabbed the apple there. +8 John dropped the apple. +9 Is Mary in the bathroom? yes 2 +10 Mary travelled to the hallway. +11 Sandra moved to the garden. +12 Is Sandra in the office? no 11 +13 Sandra got the milk there. +14 Mary got the football there. +15 Is Mary in the hallway? yes 10 +1 Sandra went to the bathroom. +2 Mary went to the bathroom. +3 Is Sandra in the kitchen? no 1 +4 Mary picked up the apple there. +5 Mary moved to the hallway. +6 Is Sandra in the bathroom? yes 1 +7 Mary grabbed the milk there. +8 John travelled to the office. +9 Is Mary in the hallway? yes 5 +10 Mary dropped the milk. +11 John went to the bedroom. +12 Is John in the bathroom? no 11 +13 Sandra went to the garden. +14 Daniel went to the office. +15 Is Sandra in the garden? yes 13 +1 Sandra got the apple there. +2 Sandra put down the apple. +3 Mary picked up the apple there. +4 John went to the office. +5 Is John in the office? yes 4 +6 Mary dropped the apple there. +7 Mary took the apple there. +8 Is John in the office? yes 4 +9 Mary went to the garden. +10 Mary put down the apple. +11 Is Mary in the bathroom? no 9 +12 Daniel went back to the kitchen. +13 Mary got the apple there. +14 Is Daniel in the office? no 12 +15 Sandra journeyed to the kitchen. +16 John went back to the bedroom. +17 Is Sandra in the office? no 15 +1 Daniel went to the office. +2 John travelled to the bedroom. +3 Is John in the office? no 2 +4 Sandra got the milk there. +5 Sandra journeyed to the bedroom. +6 Is John in the bedroom? yes 2 +7 Daniel went to the bathroom. +8 Sandra discarded the milk. +9 Is Sandra in the bedroom? yes 5 +10 John went to the bathroom. +11 Daniel travelled to the kitchen. +12 Is Sandra in the bedroom? yes 5 +13 Sandra grabbed the milk there. +14 Mary travelled to the bedroom. +15 Is Daniel in the garden? no 11 +1 Mary travelled to the kitchen. +2 Sandra travelled to the office. +3 Is Mary in the bathroom? no 1 +4 Mary picked up the football there. +5 Daniel moved to the bathroom. +6 Is Sandra in the office? yes 2 +7 Mary went to the hallway. +8 Sandra moved to the bathroom. +9 Is Sandra in the bedroom? no 8 +10 Daniel took the milk there. +11 Mary left the football. +12 Is Mary in the bathroom? no 7 +13 Sandra journeyed to the hallway. +14 Daniel put down the milk there. +15 Is Sandra in the hallway? yes 13 +1 Daniel went to the office. +2 Sandra journeyed to the hallway. +3 Is Sandra in the kitchen? no 2 +4 Daniel went back to the bedroom. +5 Mary got the apple there. +6 Is Daniel in the bedroom? yes 4 +7 Sandra moved to the bathroom. +8 Mary journeyed to the bedroom. +9 Is Sandra in the hallway? no 7 +10 Mary put down the apple there. +11 Sandra got the milk there. +12 Is Mary in the kitchen? no 8 +13 Sandra travelled to the bedroom. +14 Sandra took the apple there. +15 Is Mary in the bedroom? yes 8 diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb new file mode 100644 index 0000000..b19ba89 --- /dev/null +++ b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb @@ -0,0 +1,409 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "48aad21d", + "metadata": {}, + "source": [ + "# Tutorial: BabI6 Training and Preprocessing in Python (Part II)\n", + "\n", + "In Part I of this tutorial, we learned how to create DisCoCirc circuits for question asking for the babI6 dataset. In this part, we proceed to train the model with the circuits that we created." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b67efc5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Parameters determining the type of the data\n", + "# SANDWICH functor flag\n", + "SANDWICH = True\n", + "\n", + "# Updating the FFL Parameter\n", + "FFL = True\n", + "\n", + "# Names of Resulting file paths for the Datasets\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "\n", + "BATCH_SIZE = 2\n", + "EPOCHS = 30\n", + "SEED = 2\n", + "LEARNING_RATE = 0.005" + ] + }, + { + "cell_type": "markdown", + "id": "0f9091f4", + "metadata": {}, + "source": [ + "## 8. Training the Circuits and Tests\n", + "Now that we have the data ready, we proceed with the training as usual, except that, we have to deal with pairs of circuits instead of single circuits, which will be accommodated by overriding the forward() method in the model." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c6023fa1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "import pickle\n", + "training_dict_babi6 = {}\n", + "\n", + "with open(TRAINING_DATASET_FILEPATH, 'rb') as file:\n", + " training_dict_babi6 = pickle.load(file)\n", + "\n", + "val_dict_babi6 = {}\n", + "\n", + "with open(VALIDATION_DATASET_FILEPATH, 'rb') as file:\n", + " val_dict_babi6 = pickle.load(file)\n", + "\n", + "test_dict_babi6 = {}\n", + "with open(TEST_DATASET_FILEPATH, 'rb') as file:\n", + " test_dict_babi6 = pickle.load(file)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1565fb9d", + "metadata": {}, + "outputs": [], + "source": [ + "training_circuits = []\n", + "training_answers = []\n", + "training_questions = []\n", + "training_contexts = []\n", + "\n", + "for key, value in training_dict_babi6.items():\n", + " training_answers.append(value['answer'])\n", + " training_questions.append(value['question'])\n", + " training_contexts.append(value['text'])\n", + " training_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + "\n", + "val_circuits = []\n", + "val_answers = []\n", + "val_questions = []\n", + "val_contexts = []\n", + "\n", + "for key, value in val_dict_babi6.items():\n", + " val_answers.append(value['answer'])\n", + " val_questions.append(value['question'])\n", + " val_contexts.append(value['text'])\n", + " val_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + " \n", + "test_circuits = []\n", + "test_answers = []\n", + "test_questions = []\n", + "test_contexts = []\n", + "\n", + "for key, value in test_dict_babi6.items():\n", + " test_answers.append(value['answer'])\n", + " test_questions.append(value['question'])\n", + " test_contexts.append(value['text'])\n", + " test_circuits.append(value['quantum_circ_pair_pos_neg'])" + ] + }, + { + "cell_type": "markdown", + "id": "99b9ac0c", + "metadata": {}, + "source": [ + "We also modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "007b6bc8", + "metadata": {}, + "outputs": [], + "source": [ + "training_answers = [[0., 1.] if not answer else [1., 0.] for answer in training_answers]\n", + "val_answers = [[0., 1.] if not answer else [1., 0.] for answer in val_answers]\n", + "test_answers = [[0., 1.] if not answer else [1., 0.] for answer in test_answers]" + ] + }, + { + "cell_type": "markdown", + "id": "1d54c0c2", + "metadata": {}, + "source": [ + "The following shows how we override the forward() method to accommodate having pairs of circuits." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "67d6507a", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq import PennyLaneModel\n", + "from lambeq.backend.quantum import Diagram\n", + "import torch\n", + "\n", + "\n", + "class PairCircuitModel(PennyLaneModel):\n", + " def forward(self, circ_pairs: list[tuple[Diagram, Diagram]]) -> torch.Tensor:\n", + " pos_circs, neg_circs = zip(*circ_pairs)\n", + " pos_out = abs(self.get_diagram_output(pos_circs))\n", + " neg_out = abs(self.get_diagram_output(neg_circs))\n", + "\n", + " # implement a function that would merge pos_out and neg_out into an nx2 tensor\n", + " out_tensor = torch.stack((pos_out, neg_out), dim=1)\n", + " out_tensor = torch.softmax(out_tensor, dim=1)\n", + " \n", + " return out_tensor\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "549f1f68", + "metadata": {}, + "source": [ + "The way circuits are stored in our current example is as pairs. However, when initializing circuits, one has to simply pass all the circuits to be initilised to the model (as seen in later cells). Therefore, for the initialisation step, we will create a new collection of circuits that includes all the circuits from the pairs of circuits that we originally have." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "84d09be7", + "metadata": {}, + "outputs": [], + "source": [ + "all_circuits = []\n", + "\n", + "for circuit_tuple in training_circuits:\n", + " for circuit in circuit_tuple:\n", + " all_circuits.append(circuit)\n", + "\n", + "for circuit_tuple in val_circuits:\n", + " for circuit in circuit_tuple:\n", + " all_circuits.append(circuit)\n", + "\n", + "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", + "model = PairCircuitModel.from_diagrams(all_circuits,\n", + " probabilities=False,\n", + " normalize=True,\n", + " backend_config=backend_config)\n", + "\n", + "model.initialise_weights()" + ] + }, + { + "cell_type": "markdown", + "id": "a897cf89", + "metadata": {}, + "source": [ + "Finally, we proceed with training as usual (see previous tutorials for more details on this part)." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9081225f", + "metadata": {}, + "outputs": [], + "source": [ + "def acc(y_hat, y):\n", + " return (torch.argmax(y_hat, dim=1) ==\n", + " torch.argmax(y, dim=1)).sum().item()/len(y)\n", + "\n", + "def loss(y_hat, y):\n", + " return torch.nn.functional.binary_cross_entropy(\n", + " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", + " )\n", + "\n", + "\n", + "eval_metrics = {\"acc\": acc}" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "991d8f44", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq import Dataset\n", + "\n", + "train_dataset = Dataset(training_circuits,\n", + " training_answers,\n", + " batch_size=BATCH_SIZE)\n", + "\n", + "val_dataset = Dataset(val_circuits, val_answers, shuffle=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a340f1a1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_15626/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n" + ] + }, + { + "ename": "IndexError", + "evalue": "Dimension out of range (expected to be in range of [-1, 0], but got 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[19], line 16\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mlambeq\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PytorchTrainer\n\u001b[1;32m 3\u001b[0m trainer \u001b[38;5;241m=\u001b[39m PytorchTrainer(\n\u001b[1;32m 4\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[1;32m 5\u001b[0m loss_function\u001b[38;5;241m=\u001b[39mloss,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 13\u001b[0m seed\u001b[38;5;241m=\u001b[39mSEED\n\u001b[1;32m 14\u001b[0m )\n\u001b[0;32m---> 16\u001b[0m \u001b[43mtrainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_dataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_dataset\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/trainer.py:588\u001b[0m, in \u001b[0;36mTrainer.fit\u001b[0;34m(self, train_dataset, val_dataset, log_interval, eval_interval, eval_mode, early_stopping_criterion, early_stopping_interval, minimize_criterion, full_timing_report)\u001b[0m\n\u001b[1;32m 580\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m batch \u001b[38;5;129;01min\u001b[39;00m tqdm(train_dataset,\n\u001b[1;32m 581\u001b[0m desc\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBatch\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 582\u001b[0m total\u001b[38;5;241m=\u001b[39mtrain_dataset\u001b[38;5;241m.\u001b[39mbatches_per_epoch,\n\u001b[1;32m 583\u001b[0m disable\u001b[38;5;241m=\u001b[39mdisable_tqdm,\n\u001b[1;32m 584\u001b[0m leave\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 585\u001b[0m position\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m):\n\u001b[1;32m 587\u001b[0m step \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m--> 588\u001b[0m t_loss \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_step_and_eval\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 589\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining_step\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrain_losses\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_train_eval_running\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_durations\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 594\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate_on_train\u001b[49m\n\u001b[1;32m 595\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 597\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_to_tensorboard(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrain/step_loss\u001b[39m\u001b[38;5;124m'\u001b[39m, t_loss, step)\n\u001b[1;32m 598\u001b[0m status_bar\u001b[38;5;241m.\u001b[39mset_description(\n\u001b[1;32m 599\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_generate_stat_report(\n\u001b[1;32m 600\u001b[0m train_loss\u001b[38;5;241m=\u001b[39mt_loss,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 607\u001b[0m )\n\u001b[1;32m 608\u001b[0m )\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/trainer.py:390\u001b[0m, in \u001b[0;36mTrainer._step_and_eval\u001b[0;34m(self, batch, step_func, losses, eval_results, step_durations, evaluate)\u001b[0m\n\u001b[1;32m 388\u001b[0m step_start \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 389\u001b[0m batch_size \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(batch[\u001b[38;5;241m0\u001b[39m])\n\u001b[0;32m--> 390\u001b[0m y_hat, loss \u001b[38;5;241m=\u001b[39m \u001b[43mstep_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 391\u001b[0m losses\u001b[38;5;241m.\u001b[39mappend((batch_size, loss))\n\u001b[1;32m 393\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevaluate_functions \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m evaluate:\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/pytorch_trainer.py:197\u001b[0m, in \u001b[0;36mPytorchTrainer.training_step\u001b[0;34m(self, batch)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Perform a training step.\u001b[39;00m\n\u001b[1;32m 184\u001b[0m \n\u001b[1;32m 185\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 194\u001b[0m \n\u001b[1;32m 195\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 196\u001b[0m x, y \u001b[38;5;241m=\u001b[39m batch\n\u001b[0;32m--> 197\u001b[0m y_hat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 198\u001b[0m loss \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mloss_function(y_hat, y\u001b[38;5;241m.\u001b[39mto(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdevice))\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_costs\u001b[38;5;241m.\u001b[39mappend(loss\u001b[38;5;241m.\u001b[39mitem())\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/model.py:55\u001b[0m, in \u001b[0;36mModel.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs: Any, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Any:\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[15], line 14\u001b[0m, in \u001b[0;36mPairCircuitModel.forward\u001b[0;34m(self, circ_pairs)\u001b[0m\n\u001b[1;32m 10\u001b[0m neg_out \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_diagram_output(neg_circs))\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# implement a function that would merge pos_out and neg_out into an nx2 tensor\u001b[39;00m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;66;03m#out_tensor = torch.stack((pos_out, neg_out), dim=1)\u001b[39;00m\n\u001b[0;32m---> 14\u001b[0m out_tensor \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpos_out\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munsqueeze\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mneg_out\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munsqueeze\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdim\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 15\u001b[0m out_tensor \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39msoftmax(out_tensor, dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_tensor\n", + "\u001b[0;31mIndexError\u001b[0m: Dimension out of range (expected to be in range of [-1, 0], but got 1)" + ] + } + ], + "source": [ + "from lambeq import PytorchTrainer\n", + "\n", + "trainer = PytorchTrainer(\n", + " model=model,\n", + " loss_function=loss,\n", + " optimizer=torch.optim.Adam,\n", + " learning_rate=LEARNING_RATE,\n", + " epochs=EPOCHS,\n", + " evaluate_functions=eval_metrics,\n", + " evaluate_on_train=True,\n", + " use_tensorboard=False,\n", + " verbose='text',\n", + " seed=SEED\n", + " )\n", + "\n", + "trainer.fit(train_dataset, val_dataset)" + ] + }, + { + "cell_type": "markdown", + "id": "c91c8756", + "metadata": {}, + "source": [ + "Now that the training has ended, the final part is to test and plot the graphs for the results of the training as shown below. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2df2f3c7", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'trainer' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[30], line 13\u001b[0m\n\u001b[1;32m 10\u001b[0m ax_tl\u001b[38;5;241m.\u001b[39mset_ylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mLoss\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 12\u001b[0m colours \u001b[38;5;241m=\u001b[39m \u001b[38;5;28miter\u001b[39m(plt\u001b[38;5;241m.\u001b[39mrcParams[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes.prop_cycle\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mby_key()[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcolor\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m---> 13\u001b[0m range_ \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;241m1\u001b[39m, \u001b[43mtrainer\u001b[49m\u001b[38;5;241m.\u001b[39mepochs \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 14\u001b[0m ax_tl\u001b[38;5;241m.\u001b[39mplot(range_, trainer\u001b[38;5;241m.\u001b[39mtrain_epoch_costs, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mnext\u001b[39m(colours))\n\u001b[1;32m 15\u001b[0m ax_bl\u001b[38;5;241m.\u001b[39mplot(range_, trainer\u001b[38;5;241m.\u001b[39mtrain_eval_results[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124macc\u001b[39m\u001b[38;5;124m'\u001b[39m], color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mnext\u001b[39m(colours))\n", + "\u001b[0;31mNameError\u001b[0m: name 'trainer' is not defined" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAAIjCAYAAADxz9EgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASMNJREFUeJzt3Qu4VVW5MOCPO2KCFxSUULyTNzAQxEtmkZSmklmI/kLkpdJMpY6KF/COetQ4JUrerZOJmponDVPS32NyIkE9WmoZGWRyywRFBYP1P2P8z97tvVkb2Dhhb9Z63+eZsudcc6411nAzP745xvxmq1KpVAoAAAAK0bqYtwEAACCRZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkwTryla98JXr16rVWx1544YXRqlWrwtsEQPV47bXXciy5/fbbm7spUHUkWVSdFHDWZHniiSeau6kbvDvvvDMmTJjQ3M0AKExKWOrGio4dO8Y222wTQ4YMie9973vx9ttvN3cTiYjLL788HnjggfX+uX/729/yhdLnnntuvX82LUurUqlUau5GwPr0n//5n/XWf/jDH8ajjz4aP/rRj+pt/8xnPhPdunVb68/54IMPYsWKFdGhQ4cmH/vPf/4zLyl4b8g+//nPx4svvpivpgJUSpI1atSouPjii2P77bfP5/q5c+fmC3Mplmy77bbx4IMPxl577dXcTc3n3tTG2267Lc+uqCYf+chH4uijj17vo3jPPPNM7LPPPlXZ59TXtsE6VLz/83/+T731//mf/8mBseH2ht59993o1KnTGn9Ou3bt1rqNbdu2zQsALdPnPve56N+/f+36mDFj4le/+lW+uHTEEUfESy+9FBtttFGzthFoPqYLQhmf/OQnY4899ogZM2bEJz7xiZxcnXvuufm1n/3sZ3HYYYfl6SFplGrHHXeMSy65JJYvX77Ke7Jq5sZfffXVceONN+bj0vHpitdvf/vb1d6Tlda/+c1v5ukPqW3p2N133z2mTJmyUvvTFdUU/NNIWPqcH/zgB2t8n9cf//jH+OIXvxjdu3fPx3/0ox+NY445JhYtWrTSiGC/fv3yPyI233zzvM+cOXPq9eFDDz0Uf/nLX2qn1aztPWoAG4JPfepTccEFF+TzXsNZEy+//HIeWUnny3RuTefoNOJVdwQknSfvuOOOld73kUceya/9/Oc/r932+uuvx1e/+tU846ImHtx6661r1M6UDB544IGx8cYbx6abbhpHHnlkTgrrqokZqd1f/vKXo3PnzrHFFlvE6aefHu+//37Z+HTPPffEbrvtluPCoEGD4oUXXsivpxi000475e+dYkO52Q2/+c1v4rOf/Wx06dIlx9yDDjoofv3rX5dt06uvvppjbGp72j+NLKYLoXXbs2TJktyXNfFndaNK3//+93Mfps/ebLPN8v+fNOW9rtX1eYq9KaYnqU01n+2euOrkUjk04u9//3u+UpmShzTKVTN1MJ0s0zSE0aNH5z9TsBo7dmwsXrw4/v3f/32175tO2mnO/te+9rV88r3qqqviqKOOilmzZq129Oupp56K++67L0455ZTYZJNN8vz/lBDNnj07B7/k2WefzYFq6623josuuignf2lay5Zbbrnati1btizfV7B06dI47bTTcqKVgkoK7G+99VYOZslll12W/yGRAu+JJ54YCxYsyAEqJaTp81PgO++883Ji9te//jW++93v5uNSfwFUsuOPPz5flPvlL38ZJ510Ut72u9/9Lvbff//o0aNHnHPOOTm5ufvuu2Po0KHx05/+NL7whS/kf9TvsMMOefvIkSPrvefkyZPzP/zT+TmZN29e7LvvvrXJTTq//+IXv4gTTjghx6Izzjij0fY99thjObalz0pJy3vvvZfP36l9M2fOXOliWDrPp23jx4/PMz9S3PnHP/6Rp9rX9d///d85aTz11FPzeto/jeqdddZZcf311+e4lY5LMS8lKil21kg/pzalC3fjxo2L1q1b5+l2KWlN7ztgwICV2pSmQabPSG2++eabY6uttoorr7wyv56m/6fYlI47+eST87Z0wbExN910U3zrW9/KSXBNEvm///u/OfE79thj17jPP/axj+V4m/5NkD43JbLJfvvtt4rfGCpWuicLqtmpp56a7kust+2ggw7K2yZNmrTS/u++++5K2772ta+VOnXqVHr//fdrt40cObK03Xbb1a7/+c9/zu+5xRZblN58883a7T/72c/y9v/6r/+q3TZu3LiV2pTW27dvX3r11Vdrtz3//PN5+/e///3abYcffnhuy+uvv1677Y9//GOpbdu2K71nQ88++2ze55577ml0n9dee63Upk2b0mWXXVZv+wsvvJA/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AACAyk6yXnzxxRgwYED++e6774499tgjnn766fjxj38ct99+e9FtBAAAqOwk64MPPqh9Uv1jjz0WRxxxRP65d+/e8cYbbxTbQgAAgEpPsnbfffeYNGlS/Pd//3c8+uij8dnPfjZv/9vf/hZbbLFF0W0EAACo7CTryiuvjB/84AfxyU9+MoYPHx59+vTJ2x988MHaaYQAAADVqO3aHJSSq4ULF+aHd2222Wa1208++eTo1KlTke0DAACo/JGs9957L5YuXVqbYP3lL3+JCRMmxCuvvBJbbbVV0W0EAACo7CTryCOPjB/+8If557feeisGDhwY11xzTQwdOjRuuOGGotsIAABQ2UnWzJkz48ADD8w/33vvvdGtW7c8mpUSr+9973tFtxEAAKCyk6x33303Ntlkk/zzL3/5yzjqqKOidevWse++++ZkCwAAoFqtVZK10047xQMPPBBz5syJRx55JA455JC8ff78+dG5c+ei2wgAAFDZSdbYsWPjO9/5TvTq1SuXbB80aFDtqNbee+9ddBsBAAAqu4T70UcfHQcccEC88cYbtc/ISj796U/HF77whSLbBwAAUPlJVtK9e/e8/PWvf83rH/3oRz2IGAAAqHprNV1wxYoVcfHFF0eXLl1iu+22y8umm24al1xySX4NAACgWq3VSNZ5550Xt9xyS1xxxRWx//77521PPfVUXHjhhfH+++/HZZddVnQ7AQAAKjfJuuOOO+Lmm2+OI444onbbXnvtFT169IhTTjlFkgUAAFSttZou+Oabb0bv3r1X2p62pdcAAACq1VolWami4HXXXbfS9rQtjWgBAABUq7WaLnjVVVfFYYcdFo899ljtM7KmTZuWH0788MMPF91GAACAyh7JOuigg+IPf/hDfibWW2+9lZejjjoqfve738WPfvSj4lsJAACwgWhVKpVKRb3Z888/Hx//+Mdj+fLl0VItXrw4l55ftGhRdO7cubmbA1BVnIPL0y8AlXX+XauRLAAAAMqTZAEAABRIkgUAANBc1QVTcYtVSQUwAAAAqlmTkqx0U9jqXh8xYsSHbRMAAEB1JFm33XbbumsJAABABWgR92RNnDgxevXqFR07doyBAwfG9OnT1+i4u+66K1q1ahVDhw5d520EAADYIJKsyZMnx+jRo2PcuHExc+bM6NOnTwwZMiTmz5+/yuNee+21+M53vhMHHnjgemsrAABAi0+yrr322jjppJNi1KhRsdtuu8WkSZOiU6dOceuttzZ6THrY8XHHHRcXXXRR7LDDDuu1vQAAAC02yVq2bFnMmDEjBg8e/K8GtW6d16dNm9bocRdffHFstdVWccIJJ6z2M5YuXZqf5Fx3AYDmJDYBVLZmTbIWLlyYR6W6detWb3tanzt3btljnnrqqbjlllvipptuWqPPGD9+fK56WLP07NmzkLYDwNoSmwAqW7NPF2yKt99+O44//vicYHXt2nWNjhkzZkwsWrSodpkzZ846bycArIrYBFDZmlTCvWgpUWrTpk3Mmzev3va03r1795X2/9Of/pQLXhx++OG121asWJH/bNu2bbzyyiux44471jumQ4cOeQGAlkJsAqhszTqS1b59++jXr19MnTq1XtKU1gcNGrTS/r17944XXnghnnvuudrliCOOiIMPPjj/bLoFAABQ1SNZSSrfPnLkyOjfv38MGDAgJkyYEEuWLMnVBpMRI0ZEjx498vz19BytPfbYo97xm266af6z4XYAAICqTLKGDRsWCxYsiLFjx+ZiF3379o0pU6bUFsOYPXt2rjgIAACwIWhVKpVKUUVSmdxUySndaNy5c+fmbg5AVXEOLk+/AFTW+dcQEQAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAABUWpI1ceLE6NWrV3Ts2DEGDhwY06dPb3Tfm266KQ488MDYbLPN8jJ48OBV7g8AAFBVSdbkyZNj9OjRMW7cuJg5c2b06dMnhgwZEvPnzy+7/xNPPBHDhw+Pxx9/PKZNmxY9e/aMQw45JF5//fX13nYAAICGWpVKpVI0ozRytc8++8R1112X11esWJETp9NOOy3OOeec1R6/fPnyPKKVjh8xYsRq91+8eHF06dIlFi1aFJ07dy7kOwCwZpyDy9MvAJV1/m0bzWjZsmUxY8aMGDNmTO221q1b5ymAaZRqTbz77rvxwQcfxOabb1729aVLl+albkcCQHMSmwAqW7NOF1y4cGEeierWrVu97Wl97ty5a/QeZ599dmyzzTY5MStn/PjxOTutWdIoGQA0J7EJoLI1+z1ZH8YVV1wRd911V9x///25aEY5aZQsDf/VLHPmzFnv7QSAusQmgMrWrNMFu3btGm3atIl58+bV257Wu3fvvspjr7766pxkPfbYY7HXXns1ul+HDh3yAgAthdgEUNmadSSrffv20a9fv5g6dWrttlT4Iq0PGjSo0eOuuuqquOSSS2LKlCnRv3//9dRaAACAFj6SlaTy7SNHjszJ0oABA2LChAmxZMmSGDVqVH49VQzs0aNHnr+eXHnllTF27Ni4884787O1au7d+shHPpIXAACAqk6yhg0bFgsWLMiJU0qY+vbtm0eoaophzJ49O1ccrHHDDTfkqoRHH310vfdJz9m68MIL13v7AQAAWtRzstY3zyIBaD7OweXpF4DKOv9u0NUFAQAAWhpJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAACVlmRNnDgxevXqFR07doyBAwfG9OnTV7n/PffcE717987777nnnvHwww+vt7YCAAC06CRr8uTJMXr06Bg3blzMnDkz+vTpE0OGDIn58+eX3f/pp5+O4cOHxwknnBDPPvtsDB06NC8vvvjiem87AABAQ61KpVIpmlEaudpnn33iuuuuy+srVqyInj17xmmnnRbnnHPOSvsPGzYslixZEj//+c9rt+27777Rt2/fmDRp0mo/b/HixdGlS5dYtGhRdO7cueBvA8CqOAeXp18AKuv82zaa0bJly2LGjBkxZsyY2m2tW7eOwYMHx7Rp08oek7anka+60sjXAw88UHb/pUuX5qVG6sCaDgVg/ao59zbz9b1mJzYBVHZcatYka+HChbF8+fLo1q1bve1p/eWXXy57zNy5c8vun7aXM378+LjoootW2p5GywBoHn//+9/zlcNqJTYBVHZcatYka31Io2R1R77eeuut2G677WL27NlVHeAby+RTgJ8zZ47pKnXol8bpm/L0S+PSiM22224bm2++eVQzsWnN+LvUOH1Tnn5pnL5Zv3GpWZOsrl27Rps2bWLevHn1tqf17t27lz0mbW/K/h06dMhLQymI+QUrL/WLvlmZfmmcvilPvzQuTQ2vZmJT0/i71Dh9U55+aZy+WT9xqVmjXPv27aNfv34xderU2m2p8EVaHzRoUNlj0va6+yePPvpoo/sDAACsT80+XTBNlxg5cmT0798/BgwYEBMmTMjVA0eNGpVfHzFiRPTo0SPPX09OP/30OOigg+Kaa66Jww47LO6666545pln4sYbb2zmbwIAANACkqxUkn3BggUxduzYXLwilWKfMmVKbXGLND+97vDdfvvtF3feeWecf/75ce6558bOO++cKwvusccea/R5aXpGeiZXuWka1U7flKdfGqdvytMvjdM35emX8vRL4/RNefqlcfpm/fZLsz8nCwAAoJJU953HAAAABZNkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFApSdaTTz4Zhx9+eGyzzTbRqlWreOCBB1Z7zBNPPBEf//jHo0OHDrHTTjvF7bffvl7aCgAA0OKTrCVLlkSfPn1i4sSJa7T/n//85zjssMPi4IMPjueeey7OOOOMOPHEE+ORRx5Z520FAABYE61KpVIpWoA0knX//ffH0KFDG93n7LPPjoceeihefPHF2m3HHHNMvPXWWzFlypT11FIAAIDGtY0NyLRp02Lw4MH1tg0ZMiSPaDVm6dKleamxYsWKePPNN2OLLbbIiR0A60+6rvf222/naeKtW1fvbcFiE0Blx6UNKsmaO3dudOvWrd62tL548eJ47733YqONNlrpmPHjx8dFF120HlsJwOrMmTMnPvrRj0a1EpsAKjsubVBJ1toYM2ZMjB49unZ90aJFse222+aO7Ny5c7O2DaDapItiPXv2jE022SSqmdgEUNlxaYNKsrp37x7z5s2rty2tp4BUbhQrSVUI09JQOkYgA2ge1T4lTmwCqOy4tEFNiB80aFBMnTq13rZHH300bwcAAGgJmjXJeuedd3Ip9rTUlGhPP8+ePbt2OsWIESNq9//6178es2bNirPOOitefvnluP766+Puu++OM888s9m+AwAAQItJsp555pnYe++985Kk+enp57Fjx+b1N954ozbhSrbffvtcwj2NXqXna11zzTVx88035wqDAAAALUGLeU7W+ry5rUuXLvkmY/PeAdYv5+Dy9AtAZZ1/N6h7sgAAAFo6SRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAAlZRkTZw4MXr16hUdO3aMgQMHxvTp01e5/4QJE2LXXXeNjTbaKHr27BlnnnlmvP/+++utvQAAAC02yZo8eXKMHj06xo0bFzNnzow+ffrEkCFDYv78+WX3v/POO+Occ87J+7/00ktxyy235Pc499xz13vbAQAAWlySde2118ZJJ50Uo0aNit122y0mTZoUnTp1iltvvbXs/k8//XTsv//+ceyxx+bRr0MOOSSGDx++2tEvAACAik+yli1bFjNmzIjBgwf/qzGtW+f1adOmlT1mv/32y8fUJFWzZs2Khx9+OA499NBGP2fp0qWxePHiegsANCexCaCyNVuStXDhwli+fHl069at3va0Pnfu3LLHpBGsiy++OA444IBo165d7LjjjvHJT35yldMFx48fH126dKld0n1cANCcxCaAytbshS+a4oknnojLL788rr/++nwP13333RcPPfRQXHLJJY0eM2bMmFi0aFHtMmfOnPXaZgBoSGwCqGxtm+uDu3btGm3atIl58+bV257Wu3fvXvaYCy64II4//vg48cQT8/qee+4ZS5YsiZNPPjnOO++8PN2woQ4dOuQFAFoKsQmgsjXbSFb79u2jX79+MXXq1NptK1asyOuDBg0qe8y77767UiKVErWkVCqt4xYDAAC04JGsJJVvHzlyZPTv3z8GDBiQn4GVRqZStcFkxIgR0aNHjzx3PTn88MNzRcK99947P1Pr1VdfzaNbaXtNsgUAAFC1SdawYcNiwYIFMXbs2Fzsom/fvjFlypTaYhizZ8+uN3J1/vnnR6tWrfKfr7/+emy55ZY5wbrsssua8VsAAAD8S6tSlc2zS2VyUyWndKNx586dm7s5AFXFObg8/QJQWeffDaq6IAAAQEsnyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKA5k6xevXrFxRdfHLNnzy6yHQAAANWZZJ1xxhlx3333xQ477BCf+cxn4q677oqlS5eum9YBAABUQ5L13HPPxfTp0+NjH/tYnHbaabH11lvHN7/5zZg5c+a6aSUAAECl35P18Y9/PL73ve/F3/72txg3blzcfPPNsc8++0Tfvn3j1ltvjVKpVGxLAQAAKjnJ+uCDD+Luu++OI444Ir797W9H//79c6L1xS9+Mc4999w47rjj1uh9Jk6cmO/z6tixYwwcODCPkK3KW2+9FaeeemoePevQoUPssssu8fDDD6/t1wAAAChU26YekKYE3nbbbfGTn/wkWrduHSNGjIjvfve70bt379p9vvCFL+RRrdWZPHlyjB49OiZNmpQTrAkTJsSQIUPilVdeia222mql/ZctW5bvA0uv3XvvvdGjR4/4y1/+EptuumlTvwYAAEDLSLJS8pQSnRtuuCGGDh0a7dq1W2mf7bffPo455pjVvte1114bJ510UowaNSqvp2TroYceytMNzznnnJX2T9vffPPNePrpp2s/N42CAQAAbLBJ1qxZs2K77bZb5T4bb7xxHu1alTQqNWPGjBgzZkzttjQyNnjw4Jg2bVrZYx588MEYNGhQni74s5/9LLbccss49thj4+yzz442bdqUPSZVPqxb/XDx4sWr+YYAsG6JTQCVrcn3ZM2fPz9+85vfrLQ9bXvmmWfW+H0WLlwYy5cvj27dutXbntbnzp3baIKXpgmm49J9WBdccEFcc801cemllzb6OePHj48uXbrULj179lzjNgLAuiA2AVS2JidZaRRpzpw5K21//fXX82vr0ooVK/L9WDfeeGP069cvhg0bFuedd16eZtiYNFK2aNGi2qVc2wFgfRKbACpbk6cL/v73v8/l2xvae++982trqmvXrnmK37x58+ptT+vdu3cve0yqKJjuxao7NTA9qyuNfKXph+3bt1/pmFSBMC0A0FKITQCVrckjWSkoNEyMkjfeeCPatl3znC0lRGk0aurUqfVGqtJ6uu+qnP333z9effXVvF+NP/zhDzn5KpdgAQAAtPgk65BDDqmd5lD32VXp2Vip6mBTpPLtN910U9xxxx3x0ksvxTe+8Y1YsmRJbbXBVB6+bmGM9HqqLnj66afn5CpVIrz88svX+TRFAACAdTZd8Oqrr45PfOITucJgmiKYPPfcc7lgxY9+9KMmvVe6p2rBggUxduzYPOWvb9++MWXKlNpiGLNnz84VB2ukG4MfeeSROPPMM2OvvfbKz8lKCVeqLggAANAStCqVSqWmHpRGm3784x/H888/HxtttFFOeIYPH172mVktTSqTmyo5pZG4zp07N3dzAKqKc3B5+gWgss6/TR7JqnkO1sknn1xYIwAAACrFWiVZSaokmKbzpap+dR1xxBFFtAsAAKA6kqz0QOAvfOEL8cILL0SrVq2iZrZh+jlJDwoGAACoVk2uLpgKTWy//fYxf/786NSpU/zud7+LJ598Mvr37x9PPPHEumklAABApY5kTZs2LX71q1/lhwmnyn9pOeCAA2L8+PHxrW99K5599tl101IAAIBKHMlK0wE32WST/HNKtP72t7/ln1NJ91deeaX4FgIAAFTySNYee+yRS7enKYMDBw6Mq666Ktq3bx833nhj7LDDDuumlQAAAJWaZJ1//vn5OVnJxRdfHJ///OfjwAMPjC222CImT568LtoIAABQuUnWkCFDan/eaaed4uWXX44333wzNttss9oKgwAAANWqSfdkffDBB9G2bdt48cUX623ffPPNJVgAAABNTbLatWsX2267rWdhAQAAFFVd8Lzzzotzzz03TxEEAADgQ96Tdd1118Wrr74a22yzTS7bvvHGG9d7febMmU19SwAAgOpNsoYOHbpuWgIAAFCNSda4cePWTUsAAACq8Z4sAAAAChzJat269SrLtas8CAAAVLMmJ1n333//Ss/OevbZZ+OOO+6Iiy66qMi2AQAAVH6SdeSRR6607eijj47dd989Jk+eHCeccEJRbQMAAKjee7L23XffmDp1alFvBwAAUL1J1nvvvRff+973okePHkW8HQAAQPVMF9xss83qFb4olUrx9ttvR6dOneI///M/i24fAABAZSdZ3/3ud+slWana4JZbbhkDBw7MCRgAAEA1a3KS9ZWvfGXdtAQAAKAa78m67bbb4p577llpe9qWyrgDAABUsyYnWePHj4+uXbuutH2rrbaKyy+/vKh2AQAAVEeSNXv27Nh+++1X2r7ddtvl1wAAAKpZk5OsNGL1v//7vyttf/7552OLLbYoql0AAADVkWQNHz48vvWtb8Xjjz8ey5cvz8uvfvWrOP300+OYY45ZN60EAACo1OqCl1xySbz22mvx6U9/Otq2/f+Hr1ixIkaMGOGeLAAAoOo1Oclq3759TJ48OS699NJ47rnnYqONNoo999wz35MFAABQ7Zo8XbDGzjvvHF/60pfi85///IdOsCZOnBi9evWKjh075ocaT58+fY2Ou+uuu/KDkYcOHfqhPh8AAKDZkqwvfvGLceWVV660/aqrrspJV1OlUbHRo0fHuHHjYubMmdGnT58YMmRIzJ8/f5XHpSmL3/nOd+LAAw9s8mcCAAC0mCTrySefjEMPPXSl7Z/73Ofya0117bXXxkknnRSjRo2K3XbbLSZNmhSdOnWKW2+9tdFjUrGN4447Li666KLYYYcdmvyZAAAALSbJeuedd/J9WQ21a9cuFi9e3KT3WrZsWcyYMSMGDx78rwa1bp3Xp02b1uhxF198cS4lf8IJJ6z2M5YuXZrbVXcBgOYkNgFUtiYnWanIRZriV+7+qDQS1RQLFy7Mo1LdunWrtz2tz507t+wxTz31VNxyyy1x0003rdFnjB8/Prp06VK79OzZs0ltBICiiU0Ala3J1QUvuOCCOOqoo+JPf/pTfOpTn8rbpk6dGnfeeWfce++9sS69/fbbcfzxx+cEq2vXrmt0zJgxY/I9XzXS1ULBDIDmJDYBVLYmJ1mHH354PPDAA/mZWCmpSiXcU7GK9EDizTffvEnvlRKlNm3axLx58+ptT+vdu3dfaf+U2KWCF6kNNdIzuvIXads2Xnnlldhxxx3rHdOhQ4e8AEBLITYBVLa1KuF+2GGHxa9//etYsmRJzJo1K7785S/nSn8p2WqKdG9Xv3798khY3aQprQ8aNGil/Xv37h0vvPBCfj5XzXLEEUfEwQcfnH92FRAAANjgRrJqpEqC6d6on/70p7HNNtvkKYTpeVdNlaZLjBw5Mvr37x8DBgyICRMm5OQtVRtMRowYET169Mjz19NztPbYY496x2+66ab5z4bbAQAAWnySlYpR3H777Tm5SvPH0whWqpCUpg82tehFjWHDhsWCBQti7Nix+f379u0bU6ZMqS2GMXv27FxxEAAAYEPQqlQqldZkx3QfVBq9SlMF0zOqPvvZz+b7qVLp9ueff36tk6z1LSWHqZLTokWLonPnzs3dHICq4hxcnn4BqKzz7xqPZP3iF7+Ib33rW/GNb3wjdt5558IaAAAAUEnWeB5eej5VKqGeClUMHDgwrrvuuvycKwAAANYiydp3333z86neeOON+NrXvpYfPpwKXqRqgI8++mhOwAAAAKpdkytKbLzxxvHVr341j2ylcurf/va344orroitttoql1MHAACoZh+qbN+uu+4aV111Vfz1r3+Nn/zkJ8W1CgAAYANVSG30VGVw6NCh8eCDDxbxdgAAABssD6ACAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAACotCRr4sSJ0atXr+jYsWMMHDgwpk+f3ui+N910Uxx44IGx2Wab5WXw4MGr3B8AAKCqkqzJkyfH6NGjY9y4cTFz5szo06dPDBkyJObPn192/yeeeCKGDx8ejz/+eEybNi169uwZhxxySLz++uvrve0AAAANtSqVSqVoRmnkap999onrrrsur69YsSInTqeddlqcc845qz1++fLleUQrHT9ixIjV7r948eLo0qVLLFq0KDp37lzIdwBgzTgHl6dfACrr/Ns2mtGyZctixowZMWbMmNptrVu3zlMA0yjVmnj33Xfjgw8+iM0337zs60uXLs1L3Y4EgOYkNgFUtmadLrhw4cI8EtWtW7d629P63Llz1+g9zj777Nhmm21yYlbO+PHjc3Zas6RRMgBoTmITQGVr9nuyPowrrrgi7rrrrrj//vtz0Yxy0ihZGv6rWebMmbPe2wkAdYlNAJWtWacLdu3aNdq0aRPz5s2rtz2td+/efZXHXn311TnJeuyxx2KvvfZqdL8OHTrkBQBaCrEJoLI160hW+/bto1+/fjF16tTabanwRVofNGhQo8ddddVVcckll8SUKVOif//+66m1AAAALXwkK0nl20eOHJmTpQEDBsSECRNiyZIlMWrUqPx6qhjYo0ePPH89ufLKK2Ps2LFx55135mdr1dy79ZGPfCQvAAAAVZ1kDRs2LBYsWJATp5Qw9e3bN49Q1RTDmD17dq44WOOGG27IVQmPPvroeu+TnrN14YUXrvf2AwAAtKjnZK1vnkUC0Hycg8vTLwCVdf7doKsLAgAAtDSSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAqLcmaOHFi9OrVKzp27BgDBw6M6dOnr3L/e+65J3r37p3333PPPePhhx9eb20FAABo0UnW5MmTY/To0TFu3LiYOXNm9OnTJ4YMGRLz588vu//TTz8dw4cPjxNOOCGeffbZGDp0aF5efPHF9d52AACAhlqVSqVSNKM0crXPPvvEddddl9dXrFgRPXv2jNNOOy3OOeeclfYfNmxYLFmyJH7+85/Xbtt3332jb9++MWnSpNV+3uLFi6NLly6xaNGi6Ny5c8HfBoBVcQ4uT78AVNb5t200o2XLlsWMGTNizJgxtdtat24dgwcPjmnTppU9Jm1PI191pZGvBx54oOz+S5cuzUuN1IE1HQrA+lVz7m3m63vNTmwCqOy41KxJ1sKFC2P58uXRrVu3etvT+ssvv1z2mLlz55bdP20vZ/z48XHRRRettD2NlgHQPP7+97/nK4fVSmwCqOy41KxJ1vqQRsnqjny99dZbsd1228Xs2bOrOsA3lsmnAD9nzhzTVerQL43TN+Xpl8alEZttt902Nt9886hmYtOa8XepcfqmPP3SOH2zfuNSsyZZXbt2jTZt2sS8efPqbU/r3bt3L3tM2t6U/Tt06JCXhlIQ8wtWXuoXfbMy/dI4fVOefmlcmhpezcSmpvF3qXH6pjz90jh9s37iUrNGufbt20e/fv1i6tSptdtS4Yu0PmjQoLLHpO11908effTRRvcHAABYn5p9umCaLjFy5Mjo379/DBgwICZMmJCrB44aNSq/PmLEiOjRo0eev56cfvrpcdBBB8U111wThx12WNx1113xzDPPxI033tjM3wQAAKAFJFmpJPuCBQti7NixuXhFKsU+ZcqU2uIWaX563eG7/fbbL+688844//zz49xzz42dd945VxbcY4891ujz0vSM9EyuctM0qp2+KU+/NE7flKdfGqdvytMv5emXxumb8vRL4/TN+u2XZn9OFgAAQCWp7juPAQAACibJAgAAKJAkCwAAoECSLAAAgAJVZJI1ceLE6NWrV3Ts2DEGDhwY06dPX+X+99xzT/Tu3Tvvv+eee8bDDz8claopfXPTTTfFgQceGJtttlleBg8evNq+rJbfmRrpEQKtWrWKoUOHRqVqat+89dZbceqpp8bWW2+dK/XssssuFfl3qqn9kh5Pseuuu8ZGG20UPXv2jDPPPDPef//9qCRPPvlkHH744bHNNtvkvxep8uvqPPHEE/Hxj388/67stNNOcfvtt0elEpvKE5caJzaVJy41TmxqQbGpVGHuuuuuUvv27Uu33npr6Xe/+13ppJNOKm266aalefPmld3/17/+dalNmzalq666qvT73/++dP7555fatWtXeuGFF0rV3jfHHntsaeLEiaVnn3229NJLL5W+8pWvlLp06VL661//Wqrmfqnx5z//udSjR4/SgQceWDryyCNLlaipfbN06dJS//79S4ceemjpqaeeyn30xBNPlJ577rlSNffLj3/841KHDh3yn6lPHnnkkdLWW29dOvPMM0uV5OGHHy6dd955pfvuuy9VrS3df//9q9x/1qxZpU6dOpVGjx6dz7/f//738/l4ypQppUojNpUnLjVObCpPXGqc2NSyYlPFJVkDBgwonXrqqbXry5cvL22zzTal8ePHl93/y1/+cumwww6rt23gwIGlr33ta6Vq75uG/vnPf5Y22WST0h133FGq9n5JfbHffvuVbr755tLIkSMrMpCtTd/ccMMNpR122KG0bNmyUiVrar+kfT/1qU/V25ZO3vvvv3+pUq1JIDvrrLNKu+++e71tw4YNKw0ZMqRUacSm8sSlxolN5YlLjRObWlZsqqjpgsuWLYsZM2bk6QM10oOM0/q0adPKHpO2190/GTJkSKP7V1PfNPTuu+/GBx98EJtvvnlUe79cfPHFsdVWW8UJJ5wQlWpt+ubBBx+MQYMG5WkZ6YHi6SHhl19+eSxfvjyquV/SQ9TTMTXTNmbNmpWnqhx66KFRzZx/qzs2iUuNE5vKE5caJzYVp6jzb9uoIAsXLsx/adJforrS+ssvv1z2mLlz55bdP22v9r5p6Oyzz87zWRv+4lVbvzz11FNxyy23xHPPPReVbG36Jp2gf/WrX8Vxxx2XT9SvvvpqnHLKKfkfQelp6tXaL8cee2w+7oADDkizB+Kf//xnfP3rX49zzz03qllj59/FixfHe++9l+8RqARiU3niUuPEpvLEpcaJTS0vNlXUSBbrzhVXXJFvpL3//vvzzZTV6u23347jjz8+33zdtWvX5m5Oi7NixYp8FfXGG2+Mfv36xbBhw+K8886LSZMmRTVLN9CmK6fXX399zJw5M+6777546KGH4pJLLmnupsEGS1z6F7GpceJS48SmdauiRrLSiaVNmzYxb968etvTevfu3csek7Y3Zf9q6psaV199dQ5mjz32WOy1115Rzf3ypz/9KV577bVcpabuCTxp27ZtvPLKK7HjjjtGtf7OpMpN7dq1y8fV+NjHPpavCqWpDO3bt49q7JcLLrgg/wPoxBNPzOupUtySJUvi5JNPzsE+TemoRo2dfzt37lwxo1iJ2FSeuNQ4sak8calxYlPLi00V1XvpL0q6SjF16tR6J5m0nubjlpO2190/efTRRxvdv5r6JrnqqqvyFY0pU6ZE//79o9I0tV9SOeUXXnghT8eoWY444og4+OCD88+p/Gk1/87sv//+eSpGTXBP/vCHP+QgVymBbG36Jd030jBY1QT8/38fbnVy/q3u2CQuNU5sKk9capzYVJzCzr+lCixfmcpR3n777bns4sknn5zLV86dOze/fvzxx5fOOeecemVy27ZtW7r66qtzOdhx48ZVZJnctembK664IpcCvffee0tvvPFG7fL222+XqrlfGqrUCk5r0zezZ8/Olb6++c1vll555ZXSz3/+89JWW21VuvTSS0vV3C/pvJL65Sc/+UkuDfvLX/6ytOOOO+YKcpUknRtSae20pPBy7bXX5p//8pe/5NdTn6S+aVgm99/+7d/y+TeV5q7kEu5i08rEpcaJTeWJS40Tm1pWbKq4JCtJ9ey33XbbfCJO5Sz/53/+p/a1gw46KJ946rr77rtLu+yyS94/lWx86KGHSpWqKX2z3Xbb5V/Ghkv6S1ntvzPVEMjWtm+efvrpXGo6nehT2dzLLrsslxWu5n754IMPShdeeGEOXh07diz17NmzdMopp5T+8Y9/lCrJ448/XvacUdMX6c/UNw2P6du3b+7H9Pty2223lSqV2FSeuNQ4sak8calxYlPLiU2t0n8KHGEDAACoahV1TxYAAEBzk2QBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWVAhevXqFRMmTGjuZgBAJi5RzSRZsBa+8pWvxNChQ/PPn/zkJ+OMM85Yb599++23x6abbrrS9t/+9rdx8sknr7d2ANByiEvQsrRt7gYA/9+yZcuiffv2a338lltuWWh7AKhu4hKsPSNZ8CGvHP7f//t/4z/+4z+iVatWeXnttdfyay+++GJ87nOfi4985CPRrVu3OP7442PhwoW1x6Yrjd/85jfz1cauXbvGkCFD8vZrr7029txzz9h4442jZ8+eccopp8Q777yTX3viiSdi1KhRsWjRotrPu/DCC8tOy5g9e3YceeSR+fM7d+4cX/7yl2PevHm1r6fj+vbtGz/60Y/ysV26dIljjjkm3n777dp97r333tyWjTbaKLbYYosYPHhwLFmyZD30LABrQ1yClkGSBR9CCmKDBg2Kk046Kd544428pAD01ltvxac+9anYe++945lnnokpU6bkQJICSl133HFHvkr461//OiZNmpS3tW7dOr73ve/F7373u/z6r371qzjrrLPya/vtt18OWCk41Xzed77znZXatWLFihzI3nzzzRxsH3300Zg1a1YMGzas3n5/+tOf4oEHHoif//zneUn7XnHFFfm19N7Dhw+Pr371q/HSSy/lQHrUUUdFqVRahz0KwIchLkHLYLogfAjpKlsKRp06dYru3bvXbr/uuutyILv88strt91666050P3hD3+IXXbZJW/beeed46qrrqr3nnXn0acreZdeeml8/etfj+uvvz5/VvrMdKWw7uc1NHXq1HjhhRfiz3/+c/7M5Ic//GHsvvvueY78PvvsUxv00lz6TTbZJK+nq5rp2MsuuywHs3/+8585gG233Xb59XT1EICWS1yClsFIFqwDzz//fDz++ON5SkTN0rt379qrdDX69eu30rGPPfZYfPrTn44ePXrkIJMCzN///vd499131/jz0xW+FMRqAlmy22675RuT02t1g2VNIEu23nrrmD9/fv65T58+uR0pgH3pS1+Km266Kf7xj3+sRW8A0NzEJVi/JFmwDqS56ocffng899xz9ZY//vGP8YlPfKJ2vzS/va40b/7zn/987LXXXvHTn/40ZsyYERMnTqy9Ablo7dq1q7eerkSmq4hJmzZt8nSOX/ziFzkQfv/7349dd901X4UEYMMiLsH6JcmCDylNlVi+fHm9bR//+Mfz3PV0RW6nnXaqtzQMYHWl4JWCyTXXXBP77rtvnr7xt7/9bbWf19DHPvaxmDNnTl5q/P73v89z8lNgWlMpuO2///5x0UUXxbPPPps/+/7771/j4wFY/8QlaH6SLPiQUsD6zW9+k6/2pSpNKRideuqp+ebedINummuepmI88sgjuQLTqgJRCnYffPBBvjqXbghOFZZqbjyu+3npimSao54+r9x0jVRtKU2nOO6442LmzJkxffr0GDFiRBx00EHRv3//Nfpe6TulufvpBulUEeq+++6LBQsW5EAJQMslLkHzk2TBh5SqKKUpDOlKXHomSDrxb7PNNrkyUwpchxxySA4s6cbhNPc8VWlqTJpvnkrlXnnllbHHHnvEj3/84xg/fny9fVIlp3TDcarIlD6v4Q3KNVf6fvazn8Vmm22Wp4Gk4LbDDjvE5MmT1/h7pUpRTz75ZBx66KH5yuX555+fr2Sm8r8AtFziEjS/ViV1LwEAAApjJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAKI4/w81Pqe4U4tTMAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "fig, ((ax_tl, ax_tr), (ax_bl, ax_br)) = plt.subplots(2, 2, sharex=True, sharey='row', figsize=(10, 6))\n", + "ax_tl.set_title('Training set')\n", + "ax_tr.set_title('Development set')\n", + "ax_bl.set_xlabel('Iterations')\n", + "ax_br.set_xlabel('Iterations')\n", + "ax_bl.set_ylabel('Accuracy')\n", + "ax_tl.set_ylabel('Loss')\n", + "\n", + "colours = iter(plt.rcParams['axes.prop_cycle'].by_key()['color'])\n", + "range_ = np.arange(1, trainer.epochs + 1)\n", + "ax_tl.plot(range_, trainer.train_epoch_costs, color=next(colours))\n", + "ax_bl.plot(range_, trainer.train_eval_results['acc'], color=next(colours))\n", + "ax_tr.plot(range_, trainer.val_costs, color=next(colours))\n", + "ax_br.plot(range_, trainer.val_eval_results['acc'], color=next(colours))\n", + "\n", + "# mark best model as circle\n", + "best_epoch = np.argmax(trainer.val_eval_results['acc'])\n", + "ax_tl.plot(best_epoch + 1, trainer.train_epoch_costs[best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_tr.plot(best_epoch + 1, trainer.val_costs[best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_bl.plot(best_epoch + 1, trainer.train_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_br.plot(best_epoch + 1, trainer.val_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", + "\n", + "ax_br.text(best_epoch + 1.4, trainer.val_eval_results['acc'][best_epoch], 'early stopping', va='center')" + ] + }, + { + "cell_type": "markdown", + "id": "4ad0b133", + "metadata": {}, + "source": [ + "Finally, We select the best model (from the best epoch) and use it to get the accuracy on the test data. The best epoch is determined based on the validation accuracy, which is marked on the plot by a circle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "463a2d27", + "metadata": {}, + "outputs": [], + "source": [ + "model.load(trainer.log_dir + '/best_model.lt')\n", + "test_acc = acc(model(test_circuits), torch.tensor(test_answers))\n", + "print('Test Accuracy:', test_acc)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "experimentsenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb new file mode 100644 index 0000000..5bbb3f4 --- /dev/null +++ b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb @@ -0,0 +1,708 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "48aad21d", + "metadata": {}, + "source": [ + "\n", + "# Tutorial: babI6 Training and Preprocessing in Python\n", + "\n", + "In this tutorial, we will try to implement question asking and answering for babI6 tasks. babI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "cf759bce", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "from typing import Tuple, List\n", + "from lambeq.experimental.discocirc import DisCoCircReader\n", + "import os\n", + "import warnings\n", + "import pickle\n", + "\n", + "warnings.filterwarnings('ignore')\n", + "os.environ['TOKENIZERS_PARALLELISM'] = 'true'" + ] + }, + { + "cell_type": "markdown", + "id": "e20186c0", + "metadata": {}, + "source": [ + "Before we delve into the code, we first highlight two new features of the new parser that will be used in this tutorial: the sandwich functor and foliated frames. \n", + "\n", + "In the previous versions of the parser, the semantic functor, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of frames. The sandwich functor addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's contents. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter). For more detail on this, we recommend reading the paper explaining the theory behind the new parser [here](in_the_making)." + ] + }, + { + "cell_type": "markdown", + "id": "3e26d138", + "metadata": {}, + "source": [ + "## 1. Setting Up Configuration Variables\n", + "\n", + "This cell defines paths and key configuration variables:\n", + "- `FILEPATH` specifies paths to the file containing the babI6 data. \n", + "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", + "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", + "- `SANDWICH` is a flag for using the sandwich functor: True to apply the sandwich functor on the circuits, False to apply the usual semantic functor.\n", + "- `FFL` is a flag for activating the foliated frames. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", + "- `TRAINING_SAMPLE_SIZE`, `VALIDATION_SAMPLE_SIZE`, and `TEST_SAMPLE_SIZE` specify the size of the data for training, validation, and testing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28993a72", + "metadata": {}, + "outputs": [], + "source": [ + "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", + "\n", + "# The path of the file where the initial babI6 data is stored\n", + "FILEPATH = '../data/qa6_train_10k.txt'\n", + "\n", + "# Maximum length of the context\n", + "TEXT_LENGTH = 4\n", + "\n", + "# Maximum Number of wires in a circuit\n", + "MAX_WIDTH = 9\n", + "\n", + "# SANDWICH functor flag\n", + "SANDWICH = True\n", + "\n", + "# Updating the FFL parameter\n", + "FFL = True\n", + "\n", + "# Sizes of training, validation, and test datasets\n", + "TRAINING_SAMPLE_SIZE = 120\n", + "VALIDATION_SAMPLE_SIZE = 30\n", + "TEST_SAMPLE_SIZE = 30\n", + "\n", + "# Paths of resulting files for the datasets\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" + ] + }, + { + "cell_type": "markdown", + "id": "d21b2f18", + "metadata": {}, + "source": [ + "## 2. Data Preprocessing Function\n", + "\n", + "The next step is to write a function `task_file_reader`, which processes the babI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", + "\n", + "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. We want to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", + "\n", + "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "05e8f624", + "metadata": {}, + "outputs": [], + "source": [ + "# Reading the texts, questions, expected answers, and text_length from the TXT file\n", + "def task_file_reader(path : str | Path) -> Tuple[List[List[str]],\n", + " List[str],\n", + " List[str],\n", + " List[str]]:\n", + " \"\"\"\n", + " reads the .txt file at `path`\n", + " returns 3 lists of equal length\n", + " - text sentences, questions, answers and text length\n", + " \"\"\"\n", + " with open(path) as f:\n", + " lines = f.readlines()\n", + "\n", + " # split the lines into stories\n", + " # record the first line location of new stories\n", + " story_splits = [i for i, line in enumerate(lines) if line[0:2] == '1 ']\n", + " # have no more need for line indices - delete these\n", + " lines = [' '.join(line.split(' ')[1:]) for line in lines]\n", + " # also delete . and \\n\n", + " lines = [line.replace('.', '').replace('\\n','') for line in lines]\n", + " stories = [lines[i:j] for i, j in zip(story_splits, story_splits[1:]+[None])]\n", + "\n", + " # create text and QnA pairs\n", + " texts = []\n", + " qnas = []\n", + " text_length = []\n", + " for story in stories:\n", + " # record the lines in the story corresponding to questions\n", + " question_splits = [i for i, line in enumerate(story) if '?' in line]\n", + " for index in question_splits:\n", + " # record the text corresponding to each question\n", + " ctx = [line.lower() for line in story[:index] if '?' not in line]\n", + " texts.append(ctx)\n", + " text_length.append(len(ctx))\n", + " # record the question\n", + " qnas.append(story[index])\n", + "\n", + " # split qna into questions and answers\n", + " questions = [qna.split('\\t')[0].lower().rstrip()[:-1] + \" ?\" for qna in qnas]\n", + " answers = [qna.split('\\t')[1].lower() for qna in qnas]\n", + "\n", + " # Filtering the data \n", + " filtered_data = [\n", + " (text, question, answer, text_length)\n", + " for text, question, answer, text_length in zip(texts, questions, answers, text_length)\n", + " if len(text) <= TEXT_LENGTH\n", + " ]\n", + "\n", + " # Applying the filter\n", + " texts, questions, answers, text_length = map(list, zip(*filtered_data))\n", + "\n", + " # Converting the texts from arrays of sentences to strings\n", + " processed_texts_list = []\n", + " for text in texts:\n", + " processed_text = \"\"\n", + " for sentence in text:\n", + " processed_text += sentence + \". \"\n", + " \n", + " processed_texts_list.append(processed_text)\n", + " \n", + "\n", + " return processed_texts_list, questions, answers, text_length\n", + "\n", + "\n", + "texts, questions, answers, text_lengths = task_file_reader(FILEPATH)" + ] + }, + { + "cell_type": "markdown", + "id": "67428372", + "metadata": {}, + "source": [ + "## 3. Converting The Texts into Circuits\n", + "\n", + "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the reader, then we use it with the `SANDWICH` flag indicating whether to use the SANDWICH functor or not, as well as the `FFL` flag which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", + "\n", + "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated DisCoCirc circuit, the question, the answer, and the text_length." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5dbca676", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# making the circuits from the texts and storing them in the dictionary\n", + "reader = DisCoCircReader()\n", + "datadict = {}\n", + "for i, (text, quest, ans, text_length) in enumerate(zip(texts, questions, answers, text_lengths)):\n", + " datadict.update({i:{'text':text, 'dsc_diag': reader.text2circuit(text, sandwich=SANDWICH, foliated_frame_labels = FFL), 'question':quest, 'answer':ans, 'text_length': text_length}})\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "b150eddc", + "metadata": {}, + "source": [ + "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", + "While we have the circuits corresponding to the texts ready, they are still DisCoCirc circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into quantum circuits by applying an ansatz. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one qubit for each noun." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73465ead", + "metadata": {}, + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[114], line 8\u001b[0m\n\u001b[1;32m 5\u001b[0m ansatz \u001b[38;5;241m=\u001b[39m Sim4Ansatz({N:\u001b[38;5;241m1\u001b[39m}, n_layers\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m datadict\u001b[38;5;241m.\u001b[39mkeys():\n\u001b[0;32m----> 8\u001b[0m datadict[i]\u001b[38;5;241m.\u001b[39mupdate({\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtext_circuit_sim4_13\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[43mansatz\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdatadict\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mdsc_diag\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m})\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/ansatz/circuit.py:114\u001b[0m, in \u001b[0;36mCircuitAnsatz.__call__\u001b[0;34m(self, diagram)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, diagram: Diagram) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Circuit:\n\u001b[1;32m 113\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Convert a lambeq diagram into a lambeq circuit.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 114\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdiagram\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1966\u001b[0m, in \u001b[0;36mFunctor.__call__\u001b[0;34m(self, entity)\u001b[0m\n\u001b[1;32m 1964\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mob_with_cache(entity)\n\u001b[1;32m 1965\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1966\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mar_with_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mentity\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1991\u001b[0m, in \u001b[0;36mFunctor.ar_with_cache\u001b[0;34m(self, ar)\u001b[0m\n\u001b[1;32m 1988\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 1990\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m ar\u001b[38;5;241m.\u001b[39mis_id:\n\u001b[0;32m-> 1991\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mar\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_functor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1992\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1993\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtarget_category\u001b[38;5;241m.\u001b[39mDiagram\u001b[38;5;241m.\u001b[39mid(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mob_with_cache(ar\u001b[38;5;241m.\u001b[39mdom))\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1244\u001b[0m, in \u001b[0;36mDiagram.apply_functor\u001b[0;34m(self, functor)\u001b[0m\n\u001b[1;32m 1242\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers:\n\u001b[1;32m 1243\u001b[0m left, box, right \u001b[38;5;241m=\u001b[39m layer\u001b[38;5;241m.\u001b[39munpack()\n\u001b[0;32m-> 1244\u001b[0m diagram \u001b[38;5;241m>>\u001b[39m\u001b[38;5;241m=\u001b[39m (\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mid\u001b[49m\u001b[43m(\u001b[49m\u001b[43mleft\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1245\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m@\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbox\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_diagram\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1246\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m@\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mid\u001b[49m\u001b[43m(\u001b[49m\u001b[43mright\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 1247\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m diagram\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:923\u001b[0m, in \u001b[0;36mDiagram.__matmul__\u001b[0;34m(self, rhs)\u001b[0m\n\u001b[1;32m 922\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__matmul__\u001b[39m(\u001b[38;5;28mself\u001b[39m, rhs: Diagrammable \u001b[38;5;241m|\u001b[39m Ty) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Self:\n\u001b[0;32m--> 923\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrhs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:917\u001b[0m, in \u001b[0;36mDiagram.tensor\u001b[0;34m(self, *diagrams)\u001b[0m\n\u001b[1;32m 915\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m diagram \u001b[38;5;129;01min\u001b[39;00m diags:\n\u001b[1;32m 916\u001b[0m right \u001b[38;5;241m=\u001b[39m right[\u001b[38;5;28mlen\u001b[39m(diagram\u001b[38;5;241m.\u001b[39mdom):]\n\u001b[0;32m--> 917\u001b[0m layers \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m [layer\u001b[38;5;241m.\u001b[39mextend(left, right) \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m diagram\u001b[38;5;241m.\u001b[39mlayers]\n\u001b[1;32m 918\u001b[0m left \u001b[38;5;241m@\u001b[39m\u001b[38;5;241m=\u001b[39m diagram\u001b[38;5;241m.\u001b[39mcod\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m)(dom\u001b[38;5;241m=\u001b[39mdom, cod\u001b[38;5;241m=\u001b[39mleft, layers\u001b[38;5;241m=\u001b[39mlayers)\n", + "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:917\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 915\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m diagram \u001b[38;5;129;01min\u001b[39;00m diags:\n\u001b[1;32m 916\u001b[0m right \u001b[38;5;241m=\u001b[39m right[\u001b[38;5;28mlen\u001b[39m(diagram\u001b[38;5;241m.\u001b[39mdom):]\n\u001b[0;32m--> 917\u001b[0m layers \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m [layer\u001b[38;5;241m.\u001b[39mextend(left, right) \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m diagram\u001b[38;5;241m.\u001b[39mlayers]\n\u001b[1;32m 918\u001b[0m left \u001b[38;5;241m@\u001b[39m\u001b[38;5;241m=\u001b[39m diagram\u001b[38;5;241m.\u001b[39mcod\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m)(dom\u001b[38;5;241m=\u001b[39mdom, cod\u001b[38;5;241m=\u001b[39mleft, layers\u001b[38;5;241m=\u001b[39mlayers)\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "from lambeq import Sim4Ansatz\n", + "from lambeq import AtomicType\n", + "\n", + "N = AtomicType.NOUN\n", + "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", + "\n", + "for i in datadict.keys():\n", + " datadict[i].update({'text_circuit_sim4_13': ansatz(datadict[i]['dsc_diag'])})" + ] + }, + { + "cell_type": "markdown", + "id": "ffdeb9a1", + "metadata": {}, + "source": [ + "## 5. Question Asking Circuits and Further Processing of the Circuits\n", + "The main spirit of this tutorial is having questions also be circuits that one sequetially composes with the circuits representing texts in order to see the similarity between the texts and guess the answer to the question by performing postselections. More details on question asking can be found [here](https://arxiv.org/pdf/2409.08777).\n", + "\n", + "Now that we already have the circuits representing the texts, we need to make the circuits representing the questions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the question, we have to make sure that the wires of the question box correspond to the nouns from the text that are asked about. \n", + "\n", + "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the babI6 experiments, all the questions are of the format \"Is the subject in the location?\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15baa8dd", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq.backend.grammar import Ty\n", + "\n", + "def return_noun_list(text):\n", + " noun_list = []\n", + " for b in text.boxes:\n", + " if b.dom == Ty() and b.cod == N:\n", + " noun_list.append(b.name)\n", + " \n", + " return noun_list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32d767fc", + "metadata": {}, + "outputs": [], + "source": [ + "def return_q_nouns(question):\n", + " question_words = question.split(' ')\n", + " q_nouns = [question_words[1], question_words[4].strip('?')]\n", + " return q_nouns" + ] + }, + { + "cell_type": "markdown", + "id": "7ae48f77", + "metadata": {}, + "source": [ + "We proceed to add the lists obtained from the functions above to the dictionary to be used later once we want to add the question asking boxes. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eeefa4e2", + "metadata": {}, + "outputs": [], + "source": [ + "for i in datadict.keys():\n", + " datadict[i].update({'noun_list_text': return_noun_list(datadict[i]['dsc_diag'])})\n", + " datadict[i].update({'noun_list_question': return_q_nouns(datadict[i]['question'])})" + ] + }, + { + "cell_type": "markdown", + "id": "210a2617", + "metadata": {}, + "source": [ + "We needed to extract the list of nouns in the texts as well as the list of nouns in their corresponding questions to remove the entries where the question nouns include nouns that are not in the text (questions that ask about subjects or locations not present in the text. We do this for simplification purposes). The following cell checks every entry from the `datadict` dictionary and adds the ids of \"bad\" entries (entries where the question contains nouns not present in the text) to the `discarded_ids` list that will be used later on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac2c4298", + "metadata": {}, + "outputs": [], + "source": [ + "#reduce texts where question nouns are not in the text\n", + "discarded_datalist = []\n", + "discarded_ids = []\n", + "for i in datadict.keys():\n", + " text_nouns = datadict[i]['noun_list_text']\n", + " q_nouns = datadict[i]['noun_list_question']\n", + " for noun in q_nouns:\n", + " if noun not in text_nouns:\n", + " discarded_datalist.append(datadict[i])\n", + " discarded_ids.append(i)\n", + " break" + ] + }, + { + "cell_type": "markdown", + "id": "7deda19b", + "metadata": {}, + "source": [ + "Now that we have a list of ids of entries that should be discarded because they contain nouns in the questions that are not present in the reduced contexts corresponding to them, we simply remove the said entries from the `datadict` dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72b15b5f", + "metadata": {}, + "outputs": [], + "source": [ + "reduced_datadict = {}\n", + "for i in datadict.keys():\n", + " if i not in discarded_ids:\n", + " if datadict[i]['text_length'] < TEXT_LENGTH:\n", + " reduced_datadict.update({i:datadict[i]})" + ] + }, + { + "cell_type": "markdown", + "id": "33fb6e7e", + "metadata": {}, + "source": [ + "Moreover, remember that for efficiency purposes, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "af318e63", + "metadata": {}, + "outputs": [], + "source": [ + "# Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", + "def right_cod_size(circuit):\n", + " if len(circuit.cod) > MAX_WIDTH:\n", + " return False\n", + " return True\n", + "\n", + "def filter_entries_by_pos_neg_circuit_pair(entries):\n", + " filtered_entries = {}\n", + " \n", + " for key, entry in entries.items():\n", + " pos_neg_circuit_pair = entry.get('text_circuit_sim4_13')\n", + " if pos_neg_circuit_pair and right_cod_size(pos_neg_circuit_pair):\n", + " filtered_entries[key] = entry\n", + " \n", + " return filtered_entries\n", + "\n", + "filtered_cod_datadict = filter_entries_by_pos_neg_circuit_pair(reduced_datadict)" + ] + }, + { + "cell_type": "markdown", + "id": "b04a8ff9", + "metadata": {}, + "source": [ + "Now that the text circuits are post-processed for optimization, it is time to make the question asking circuits to later sequentially compose the latter with the former. \n", + "\n", + "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in DiscoCir, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", + "\n", + "Notice that we also created two question boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", + "\n", + "We apply the same ansatz applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the ansatz to a parallel composition of two effects (bras). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4ea6896", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq.backend.grammar import Box, Id\n", + "from lambeq.backend.quantum import Bra, Discard, qubit, Id, Swap\n", + "from lambeq import AtomicType, Sim4Ansatz\n", + "\n", + "N = AtomicType.NOUN\n", + "\n", + "q1 = Box('is_in', N@N, N@N)\n", + "q2 = Box('is_not_in', N@N, N@N)\n", + "\n", + "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", + "qcirc1 = ansatz(q1)\n", + "qcirc2 = ansatz(q2)\n", + "\n", + "#add the postselections to the questions\n", + "qcirc1_final = qcirc1 >> Bra(0) @ Bra(0)\n", + "qcirc2_final = qcirc2 >> Bra(0) @ Bra(0)\n", + "\n", + "is_in_q = qcirc1_final\n", + "is_not_in_q = qcirc2_final\n", + "\n", + "is_in_q_swp = Swap(qubit, qubit) >> qcirc1 >> Bra(0) @ Bra(0)\n", + "is_not_in_q_swp = Swap(qubit, qubit) >> qcirc2 >> Bra(0) @ Bra(0)" + ] + }, + { + "cell_type": "markdown", + "id": "fa5f120a", + "metadata": {}, + "source": [ + "## 5. Assembling The Text Circuits with the Question Circuits\n", + "\n", + "Now that we have all the ingredients in place (the text and question circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", + "\n", + "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question. In order for us to attach the question boxes, we have to make sure that the wires from the question circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the quetion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created question boxes that are also equiped with swaps for this purpose).\n", + "\n", + "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative questions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative questions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f50a873", + "metadata": {}, + "outputs": [], + "source": [ + "# Bringing everything together by plugging the question asking part to the text circuits\n", + "for i in reduced_datadict.keys():\n", + " \n", + " text_circuit = reduced_datadict[i]['text_circuit_sim4_13']\n", + " text_nouns = datadict[i]['noun_list_text']\n", + " q_nouns = datadict[i]['noun_list_question']\n", + " qid1 = datadict[i]['noun_list_text'].index(q_nouns[0])\n", + " qid2 = datadict[i]['noun_list_text'].index(q_nouns[1])\n", + "\n", + " swap_required = False\n", + " \n", + " if qid1 > qid2: \n", + " swap_required = True\n", + " elif qid1 < qid2:\n", + " swap_required = False\n", + " else:\n", + " print('noun ids are idential, error')\n", + "\n", + " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", + " \n", + " \n", + " for k in range(1, len(text_circuit.cod)):\n", + " if k == qid1 or k == qid2:\n", + " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", + " else:\n", + " quest_mid_layer = quest_mid_layer @ Discard()\n", + "\n", + " final_circuit = text_circuit >> quest_mid_layer\n", + "\n", + " if swap_required:\n", + " final_circuit_pos = final_circuit >> is_in_q_swp\n", + " final_circuit_neg = final_circuit >> is_not_in_q_swp\n", + " else:\n", + " final_circuit_pos = final_circuit >> is_in_q\n", + " final_circuit_neg = final_circuit >> is_not_in_q\n", + "\n", + " reduced_datadict[i].update({'pos_neg_circuit_pair': (final_circuit_pos, final_circuit_neg)})" + ] + }, + { + "cell_type": "markdown", + "id": "8fd17926", + "metadata": {}, + "source": [ + "## 6. Preparing The Datasets for Training\n", + "Now that our circuit pairs are ready, we move on to the final step of training a model.\n", + "\n", + "The first step is to prepare the data for training. We start with updating the \"yes\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc8aecdb", + "metadata": {}, + "outputs": [], + "source": [ + "babi6_datadict = {}\n", + "for i in reduced_datadict.keys():\n", + " # Add the updated dictionary with the transformed 'answer'\n", + " babi6_datadict.update({\n", + " i: {\n", + " 'text': reduced_datadict[i]['text'],\n", + " 'question': reduced_datadict[i]['question'],\n", + " 'answer': 1 if reduced_datadict[i]['answer'] == 'yes' else 0, # Transform 'yes' to 1 and 'no' to 0\n", + " 'quantum_circ_pair_pos_neg': reduced_datadict[i]['pos_neg_circuit_pair'],\n", + " 'text_length': reduced_datadict[i]['text_length']\n", + " }\n", + " })" + ] + }, + { + "cell_type": "markdown", + "id": "3545dc09", + "metadata": {}, + "source": [ + "The next step would be to make three sets: training, validation, and test sets. We try to balance the entries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bcecde44", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the minimum size is: 88\n" + ] + } + ], + "source": [ + "import random\n", + "from collections import defaultdict\n", + "\n", + "# Add the 'measure' field to each item\n", + "for key, value in babi6_datadict.items():\n", + " temp = -1 if value['answer'] == 0 else 1\n", + " value['measure'] = temp * value['text_length']\n", + "\n", + "# Group items by absolute value of measure\n", + "abs_value_groups = defaultdict(list)\n", + "for key, value in babi6_datadict.items():\n", + " abs_value = abs(value['measure'])\n", + " abs_value_groups[abs_value].append((key, value))\n", + "\n", + "# Balance signs within each group and ensure diverse sizes\n", + "new_balanced_dict = {}\n", + "for abs_value, items in abs_value_groups.items():\n", + " # Separate positive and negative items\n", + " positive_items = [(k, v) for k, v in items if v['measure'] > 0]\n", + " negative_items = [(k, v) for k, v in items if v['measure'] < 0]\n", + " \n", + " # Determine the maximum balanced size for this group\n", + " min_size = min(len(positive_items), len(negative_items))\n", + " print(\"the minimum size is: \" + str(min_size))\n", + " \n", + " # Randomly sample from each group to balance\n", + " balanced_positive = random.sample(positive_items, min_size)\n", + " balanced_negative = random.sample(negative_items, min_size)\n", + " \n", + " # Add to the balanced dictionary\n", + " for k, v in balanced_positive + balanced_negative:\n", + " new_balanced_dict[k] = v" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91b7c34d", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Convert dictionary into list of keys and values\n", + "keys = list(new_balanced_dict.keys())\n", + "values = list(new_balanced_dict.values())\n", + "\n", + "# Split into training and temporary (validation + testing)\n", + "train_keys, temp_keys, train_values, temp_values = train_test_split(\n", + " keys, values, test_size=0.4, random_state=42 # 60% training, 40% temp\n", + ")\n", + "\n", + "# =Split the temporary set into validation and testing\n", + "val_keys, test_keys, val_values, test_values = train_test_split(\n", + " temp_keys, temp_values, test_size=0.5, random_state=42 # 20% validation, 20% testing\n", + ")\n", + "\n", + "# Reconstruct dictionaries for training, validation, and testing\n", + "training_dict_babi6 = {k: v for k, v in zip(train_keys, train_values)}\n", + "validation_dict_babi6 = {k: v for k, v in zip(val_keys, val_values)}\n", + "test_dict_babi6 = {k: v for k, v in zip(test_keys, test_values)}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0dd61567", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "52\n", + "53\n" + ] + } + ], + "source": [ + "yes_count = 0\n", + "no_count = 0\n", + "for i in training_dict_babi6:\n", + " if training_dict_babi6[i]['answer'] == 0:\n", + " no_count += 1\n", + " else:\n", + " yes_count += 1\n", + "\n", + "print(yes_count)\n", + "print(no_count)" + ] + }, + { + "cell_type": "markdown", + "id": "af769549", + "metadata": {}, + "source": [ + "Now, the final step is to store all of this data in separate files for training, validation, and testing, to be used in part II of this tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9f1a78c", + "metadata": {}, + "outputs": [], + "source": [ + "with open(TRAINING_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(training_dict_babi6, file)\n", + "with open(VALIDATION_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(validation_dict_babi6, file)\n", + "with open(TEST_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(test_dict_babi6, file) " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "experimentsenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 2356f8c01b9896c53b45a7a0d868ad5c737c623b Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 13 Feb 2025 15:12:22 +0000 Subject: [PATCH 02/23] minor changes: errors eliminated --- ...al_Babi6_new_parser-release training.ipynb | 146 +++++++++++++----- ...i6_new_parser-release-preparing-data.ipynb | 53 ++----- 2 files changed, 125 insertions(+), 74 deletions(-) diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb index b19ba89..5119b92 100644 --- a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb +++ b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "b67efc5e", "metadata": {}, "outputs": [], @@ -29,7 +29,7 @@ "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "\n", - "BATCH_SIZE = 2\n", + "BATCH_SIZE = 5\n", "EPOCHS = 30\n", "SEED = 2\n", "LEARNING_RATE = 0.005" @@ -137,6 +137,27 @@ "test_answers = [[0., 1.] if not answer else [1., 0.] for answer in test_answers]" ] }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6857d72a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "105" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(training_answers)" + ] + }, { "cell_type": "markdown", "id": "1d54c0c2", @@ -147,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "67d6507a", "metadata": {}, "outputs": [], @@ -181,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 7, "id": "84d09be7", "metadata": {}, "outputs": [], @@ -196,6 +217,10 @@ " for circuit in circuit_tuple:\n", " all_circuits.append(circuit)\n", "\n", + "for circuit_tuple in test_circuits:\n", + " for circuit in circuit_tuple:\n", + " all_circuits.append(circuit)\n", + "\n", "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", "model = PairCircuitModel.from_diagrams(all_circuits,\n", " probabilities=False,\n", @@ -215,7 +240,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "id": "9081225f", "metadata": {}, "outputs": [], @@ -235,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 9, "id": "991d8f44", "metadata": {}, "outputs": [], @@ -251,7 +276,28 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 10, + "id": "ec1a4b8e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "105" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(train_dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "id": "a340f1a1", "metadata": {}, "outputs": [ @@ -259,24 +305,41 @@ "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_15626/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n" - ] - }, - { - "ename": "IndexError", - "evalue": "Dimension out of range (expected to be in range of [-1, 0], but got 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[19], line 16\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mlambeq\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PytorchTrainer\n\u001b[1;32m 3\u001b[0m trainer \u001b[38;5;241m=\u001b[39m PytorchTrainer(\n\u001b[1;32m 4\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[1;32m 5\u001b[0m loss_function\u001b[38;5;241m=\u001b[39mloss,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 13\u001b[0m seed\u001b[38;5;241m=\u001b[39mSEED\n\u001b[1;32m 14\u001b[0m )\n\u001b[0;32m---> 16\u001b[0m \u001b[43mtrainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_dataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_dataset\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/trainer.py:588\u001b[0m, in \u001b[0;36mTrainer.fit\u001b[0;34m(self, train_dataset, val_dataset, log_interval, eval_interval, eval_mode, early_stopping_criterion, early_stopping_interval, minimize_criterion, full_timing_report)\u001b[0m\n\u001b[1;32m 580\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m batch \u001b[38;5;129;01min\u001b[39;00m tqdm(train_dataset,\n\u001b[1;32m 581\u001b[0m desc\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBatch\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 582\u001b[0m total\u001b[38;5;241m=\u001b[39mtrain_dataset\u001b[38;5;241m.\u001b[39mbatches_per_epoch,\n\u001b[1;32m 583\u001b[0m disable\u001b[38;5;241m=\u001b[39mdisable_tqdm,\n\u001b[1;32m 584\u001b[0m leave\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 585\u001b[0m position\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m):\n\u001b[1;32m 587\u001b[0m step \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m--> 588\u001b[0m t_loss \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_step_and_eval\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 589\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining_step\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrain_losses\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_train_eval_running\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_durations\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 594\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate_on_train\u001b[49m\n\u001b[1;32m 595\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 597\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_to_tensorboard(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrain/step_loss\u001b[39m\u001b[38;5;124m'\u001b[39m, t_loss, step)\n\u001b[1;32m 598\u001b[0m status_bar\u001b[38;5;241m.\u001b[39mset_description(\n\u001b[1;32m 599\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_generate_stat_report(\n\u001b[1;32m 600\u001b[0m train_loss\u001b[38;5;241m=\u001b[39mt_loss,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 607\u001b[0m )\n\u001b[1;32m 608\u001b[0m )\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/trainer.py:390\u001b[0m, in \u001b[0;36mTrainer._step_and_eval\u001b[0;34m(self, batch, step_func, losses, eval_results, step_durations, evaluate)\u001b[0m\n\u001b[1;32m 388\u001b[0m step_start \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[1;32m 389\u001b[0m batch_size \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(batch[\u001b[38;5;241m0\u001b[39m])\n\u001b[0;32m--> 390\u001b[0m y_hat, loss \u001b[38;5;241m=\u001b[39m \u001b[43mstep_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 391\u001b[0m losses\u001b[38;5;241m.\u001b[39mappend((batch_size, loss))\n\u001b[1;32m 393\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevaluate_functions \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m evaluate:\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/pytorch_trainer.py:197\u001b[0m, in \u001b[0;36mPytorchTrainer.training_step\u001b[0;34m(self, batch)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Perform a training step.\u001b[39;00m\n\u001b[1;32m 184\u001b[0m \n\u001b[1;32m 185\u001b[0m \u001b[38;5;124;03mParameters\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 194\u001b[0m \n\u001b[1;32m 195\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 196\u001b[0m x, y \u001b[38;5;241m=\u001b[39m batch\n\u001b[0;32m--> 197\u001b[0m y_hat \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 198\u001b[0m loss \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mloss_function(y_hat, y\u001b[38;5;241m.\u001b[39mto(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdevice))\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtrain_costs\u001b[38;5;241m.\u001b[39mappend(loss\u001b[38;5;241m.\u001b[39mitem())\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/training/model.py:55\u001b[0m, in \u001b[0;36mModel.__call__\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs: Any, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Any:\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n", - "Cell \u001b[0;32mIn[15], line 14\u001b[0m, in \u001b[0;36mPairCircuitModel.forward\u001b[0;34m(self, circ_pairs)\u001b[0m\n\u001b[1;32m 10\u001b[0m neg_out \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_diagram_output(neg_circs))\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# implement a function that would merge pos_out and neg_out into an nx2 tensor\u001b[39;00m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;66;03m#out_tensor = torch.stack((pos_out, neg_out), dim=1)\u001b[39;00m\n\u001b[0;32m---> 14\u001b[0m out_tensor \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcat\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpos_out\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munsqueeze\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mneg_out\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munsqueeze\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdim\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 15\u001b[0m out_tensor \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39msoftmax(out_tensor, dim\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_tensor\n", - "\u001b[0;31mIndexError\u001b[0m: Dimension out of range (expected to be in range of [-1, 0], but got 1)" + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_45123/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", + "Epoch 1: train/loss: 1.5370 valid/loss: 2.9836 train/time: 1m49s valid/time: 38.70s train/acc: 0.5429 valid/acc: 0.4571\n", + "Epoch 2: train/loss: 0.6532 valid/loss: 2.7895 train/time: 1m58s valid/time: 40.71s train/acc: 0.6000 valid/acc: 0.3429\n", + "Epoch 3: train/loss: 2.2022 valid/loss: 3.5438 train/time: 1m57s valid/time: 39.87s train/acc: 0.6286 valid/acc: 0.3429\n", + "Epoch 4: train/loss: 0.8276 valid/loss: 4.5185 train/time: 1m51s valid/time: 42.11s train/acc: 0.6952 valid/acc: 0.4286\n", + "Epoch 5: train/loss: 0.7184 valid/loss: 4.9401 train/time: 1m55s valid/time: 42.15s train/acc: 0.7238 valid/acc: 0.3714\n", + "Epoch 6: train/loss: 0.4825 valid/loss: 5.4519 train/time: 1m53s valid/time: 39.68s train/acc: 0.7143 valid/acc: 0.3714\n", + "Epoch 7: train/loss: 0.4445 valid/loss: 6.5718 train/time: 1m51s valid/time: 39.32s train/acc: 0.7238 valid/acc: 0.4000\n", + "Epoch 8: train/loss: 0.3679 valid/loss: 6.2385 train/time: 2m0s valid/time: 40.68s train/acc: 0.7429 valid/acc: 0.4000\n", + "Epoch 9: train/loss: 0.3095 valid/loss: 6.7013 train/time: 1m54s valid/time: 40.06s train/acc: 0.7619 valid/acc: 0.4286\n", + "Epoch 10: train/loss: 0.2272 valid/loss: 6.4791 train/time: 1m59s valid/time: 40.86s train/acc: 0.8095 valid/acc: 0.4286\n", + "Epoch 11: train/loss: 0.6715 valid/loss: 6.6007 train/time: 1m54s valid/time: 39.54s train/acc: 0.8000 valid/acc: 0.4571\n", + "Epoch 12: train/loss: 0.3922 valid/loss: 1.7500 train/time: 1m58s valid/time: 44.03s train/acc: 0.7905 valid/acc: 0.4571\n", + "Epoch 13: train/loss: 3.7541 valid/loss: 3.8887 train/time: 1m53s valid/time: 41.77s train/acc: 0.7619 valid/acc: 0.6286\n", + "Epoch 14: train/loss: 2.0752 valid/loss: 5.7808 train/time: 1m59s valid/time: 41.75s train/acc: 0.6476 valid/acc: 0.3714\n", + "Epoch 15: train/loss: 1.0661 valid/loss: 1.6665 train/time: 2m0s valid/time: 41.13s train/acc: 0.6667 valid/acc: 0.5429\n", + "Epoch 16: train/loss: 0.1893 valid/loss: 1.7724 train/time: 1m57s valid/time: 41.65s train/acc: 0.7429 valid/acc: 0.6286\n", + "Epoch 17: train/loss: 0.6477 valid/loss: 1.4505 train/time: 2m5s valid/time: 44.40s train/acc: 0.6762 valid/acc: 0.5714\n", + "Epoch 18: train/loss: 0.2460 valid/loss: 1.0262 train/time: 1m53s valid/time: 12m29s train/acc: 0.8000 valid/acc: 0.6571\n", + "Epoch 19: train/loss: 0.5696 valid/loss: 1.1213 train/time: 1m59s valid/time: 40.40s train/acc: 0.8190 valid/acc: 0.6857\n", + "Epoch 20: train/loss: 0.3404 valid/loss: 1.1174 train/time: 2m10s valid/time: 45.98s train/acc: 0.8476 valid/acc: 0.6571\n", + "Epoch 21: train/loss: 0.5572 valid/loss: 1.1474 train/time: 2m1s valid/time: 45.00s train/acc: 0.8857 valid/acc: 0.7143\n", + "Epoch 22: train/loss: 0.0731 valid/loss: 1.3623 train/time: 2m0s valid/time: 41.02s train/acc: 0.9048 valid/acc: 0.6571\n", + "Epoch 23: train/loss: 0.1005 valid/loss: 1.6095 train/time: 2m1s valid/time: 42.97s train/acc: 0.9048 valid/acc: 0.6571\n", + "Epoch 24: train/loss: 0.3268 valid/loss: 2.6929 train/time: 1m56s valid/time: 42.86s train/acc: 0.9048 valid/acc: 0.6571\n", + "Epoch 25: train/loss: 0.0672 valid/loss: 2.7171 train/time: 2m6s valid/time: 48.04s train/acc: 0.9143 valid/acc: 0.7143\n", + "Epoch 26: train/loss: 0.4277 valid/loss: 1.5331 train/time: 1m57s valid/time: 42.90s train/acc: 0.9429 valid/acc: 0.7429\n", + "Epoch 27: train/loss: 0.4089 valid/loss: 2.7178 train/time: 1m59s valid/time: 40.65s train/acc: 0.9429 valid/acc: 0.7429\n", + "Epoch 28: train/loss: 0.1028 valid/loss: 2.6944 train/time: 1m57s valid/time: 40.42s train/acc: 0.9429 valid/acc: 0.7143\n", + "Epoch 29: train/loss: 0.4875 valid/loss: 2.9313 train/time: 1m60s valid/time: 42.20s train/acc: 0.9429 valid/acc: 0.7429\n", + "Epoch 30: train/loss: 0.0199 valid/loss: 2.6868 train/time: 1m60s valid/time: 40.84s train/acc: 0.9429 valid/acc: 0.7143\n", + "\n", + "Training completed!\n", + "train/time: 58m55s train/time_per_epoch: 1m58s train/time_per_step: 5.61s valid/time: 32m41s valid/time_per_eval: 1m5s\n" ] } ], @@ -309,24 +372,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "2df2f3c7", "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'trainer' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[30], line 13\u001b[0m\n\u001b[1;32m 10\u001b[0m ax_tl\u001b[38;5;241m.\u001b[39mset_ylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mLoss\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 12\u001b[0m colours \u001b[38;5;241m=\u001b[39m \u001b[38;5;28miter\u001b[39m(plt\u001b[38;5;241m.\u001b[39mrcParams[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes.prop_cycle\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mby_key()[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcolor\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m---> 13\u001b[0m range_ \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marange(\u001b[38;5;241m1\u001b[39m, \u001b[43mtrainer\u001b[49m\u001b[38;5;241m.\u001b[39mepochs \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 14\u001b[0m ax_tl\u001b[38;5;241m.\u001b[39mplot(range_, trainer\u001b[38;5;241m.\u001b[39mtrain_epoch_costs, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mnext\u001b[39m(colours))\n\u001b[1;32m 15\u001b[0m ax_bl\u001b[38;5;241m.\u001b[39mplot(range_, trainer\u001b[38;5;241m.\u001b[39mtrain_eval_results[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124macc\u001b[39m\u001b[38;5;124m'\u001b[39m], color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mnext\u001b[39m(colours))\n", - "\u001b[0;31mNameError\u001b[0m: name 'trainer' is not defined" - ] + "data": { + "text/plain": [ + "Text(26.4, 0.7428571428571429, 'early stopping')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAAIjCAYAAADxz9EgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASMNJREFUeJzt3Qu4VVW5MOCPO2KCFxSUULyTNzAQxEtmkZSmklmI/kLkpdJMpY6KF/COetQ4JUrerZOJmponDVPS32NyIkE9WmoZGWRyywRFBYP1P2P8z97tvVkb2Dhhb9Z63+eZsudcc6411nAzP745xvxmq1KpVAoAAAAK0bqYtwEAACCRZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkwTryla98JXr16rVWx1544YXRqlWrwtsEQPV47bXXciy5/fbbm7spUHUkWVSdFHDWZHniiSeau6kbvDvvvDMmTJjQ3M0AKExKWOrGio4dO8Y222wTQ4YMie9973vx9ttvN3cTiYjLL788HnjggfX+uX/729/yhdLnnntuvX82LUurUqlUau5GwPr0n//5n/XWf/jDH8ajjz4aP/rRj+pt/8xnPhPdunVb68/54IMPYsWKFdGhQ4cmH/vPf/4zLyl4b8g+//nPx4svvpivpgJUSpI1atSouPjii2P77bfP5/q5c+fmC3Mplmy77bbx4IMPxl577dXcTc3n3tTG2267Lc+uqCYf+chH4uijj17vo3jPPPNM7LPPPlXZ59TXtsE6VLz/83/+T731//mf/8mBseH2ht59993o1KnTGn9Ou3bt1rqNbdu2zQsALdPnPve56N+/f+36mDFj4le/+lW+uHTEEUfESy+9FBtttFGzthFoPqYLQhmf/OQnY4899ogZM2bEJz7xiZxcnXvuufm1n/3sZ3HYYYfl6SFplGrHHXeMSy65JJYvX77Ke7Jq5sZfffXVceONN+bj0vHpitdvf/vb1d6Tlda/+c1v5ukPqW3p2N133z2mTJmyUvvTFdUU/NNIWPqcH/zgB2t8n9cf//jH+OIXvxjdu3fPx3/0ox+NY445JhYtWrTSiGC/fv3yPyI233zzvM+cOXPq9eFDDz0Uf/nLX2qn1aztPWoAG4JPfepTccEFF+TzXsNZEy+//HIeWUnny3RuTefoNOJVdwQknSfvuOOOld73kUceya/9/Oc/r932+uuvx1e/+tU846ImHtx6661r1M6UDB544IGx8cYbx6abbhpHHnlkTgrrqokZqd1f/vKXo3PnzrHFFlvE6aefHu+//37Z+HTPPffEbrvtluPCoEGD4oUXXsivpxi000475e+dYkO52Q2/+c1v4rOf/Wx06dIlx9yDDjoofv3rX5dt06uvvppjbGp72j+NLKYLoXXbs2TJktyXNfFndaNK3//+93Mfps/ebLPN8v+fNOW9rtX1eYq9KaYnqU01n+2euOrkUjk04u9//3u+UpmShzTKVTN1MJ0s0zSE0aNH5z9TsBo7dmwsXrw4/v3f/32175tO2mnO/te+9rV88r3qqqviqKOOilmzZq129Oupp56K++67L0455ZTYZJNN8vz/lBDNnj07B7/k2WefzYFq6623josuuignf2lay5Zbbrnati1btizfV7B06dI47bTTcqKVgkoK7G+99VYOZslll12W/yGRAu+JJ54YCxYsyAEqJaTp81PgO++883Ji9te//jW++93v5uNSfwFUsuOPPz5flPvlL38ZJ510Ut72u9/9Lvbff//o0aNHnHPOOTm5ufvuu2Po0KHx05/+NL7whS/kf9TvsMMOefvIkSPrvefkyZPzP/zT+TmZN29e7LvvvrXJTTq//+IXv4gTTjghx6Izzjij0fY99thjObalz0pJy3vvvZfP36l9M2fOXOliWDrPp23jx4/PMz9S3PnHP/6Rp9rX9d///d85aTz11FPzeto/jeqdddZZcf311+e4lY5LMS8lKil21kg/pzalC3fjxo2L1q1b5+l2KWlN7ztgwICV2pSmQabPSG2++eabY6uttoorr7wyv56m/6fYlI47+eST87Z0wbExN910U3zrW9/KSXBNEvm///u/OfE79thj17jPP/axj+V4m/5NkD43JbLJfvvtt4rfGCpWuicLqtmpp56a7kust+2ggw7K2yZNmrTS/u++++5K2772ta+VOnXqVHr//fdrt40cObK03Xbb1a7/+c9/zu+5xRZblN58883a7T/72c/y9v/6r/+q3TZu3LiV2pTW27dvX3r11Vdrtz3//PN5+/e///3abYcffnhuy+uvv1677Y9//GOpbdu2K71nQ88++2ze55577ml0n9dee63Upk2b0mWXXVZv+wsvvJA/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AACAyk6yXnzxxRgwYED++e6774499tgjnn766fjxj38ct99+e9FtBAAAqOwk64MPPqh9Uv1jjz0WRxxxRP65d+/e8cYbbxTbQgAAgEpPsnbfffeYNGlS/Pd//3c8+uij8dnPfjZv/9vf/hZbbLFF0W0EAACo7CTryiuvjB/84AfxyU9+MoYPHx59+vTJ2x988MHaaYQAAADVqO3aHJSSq4ULF+aHd2222Wa1208++eTo1KlTke0DAACo/JGs9957L5YuXVqbYP3lL3+JCRMmxCuvvBJbbbVV0W0EAACo7CTryCOPjB/+8If557feeisGDhwY11xzTQwdOjRuuOGGotsIAABQ2UnWzJkz48ADD8w/33vvvdGtW7c8mpUSr+9973tFtxEAAKCyk6x33303Ntlkk/zzL3/5yzjqqKOidevWse++++ZkCwAAoFqtVZK10047xQMPPBBz5syJRx55JA455JC8ff78+dG5c+ei2wgAAFDZSdbYsWPjO9/5TvTq1SuXbB80aFDtqNbee+9ddBsBAAAqu4T70UcfHQcccEC88cYbtc/ISj796U/HF77whSLbBwAAUPlJVtK9e/e8/PWvf83rH/3oRz2IGAAAqHprNV1wxYoVcfHFF0eXLl1iu+22y8umm24al1xySX4NAACgWq3VSNZ5550Xt9xyS1xxxRWx//77521PPfVUXHjhhfH+++/HZZddVnQ7AQAAKjfJuuOOO+Lmm2+OI444onbbXnvtFT169IhTTjlFkgUAAFSttZou+Oabb0bv3r1X2p62pdcAAACq1VolWami4HXXXbfS9rQtjWgBAABUq7WaLnjVVVfFYYcdFo899ljtM7KmTZuWH0788MMPF91GAACAyh7JOuigg+IPf/hDfibWW2+9lZejjjoqfve738WPfvSj4lsJAACwgWhVKpVKRb3Z888/Hx//+Mdj+fLl0VItXrw4l55ftGhRdO7cubmbA1BVnIPL0y8AlXX+XauRLAAAAMqTZAEAABRIkgUAANBc1QVTcYtVSQUwAAAAqlmTkqx0U9jqXh8xYsSHbRMAAEB1JFm33XbbumsJAABABWgR92RNnDgxevXqFR07doyBAwfG9OnT1+i4u+66K1q1ahVDhw5d520EAADYIJKsyZMnx+jRo2PcuHExc+bM6NOnTwwZMiTmz5+/yuNee+21+M53vhMHHnjgemsrAABAi0+yrr322jjppJNi1KhRsdtuu8WkSZOiU6dOceuttzZ6THrY8XHHHRcXXXRR7LDDDuu1vQAAAC02yVq2bFnMmDEjBg8e/K8GtW6d16dNm9bocRdffHFstdVWccIJJ6z2M5YuXZqf5Fx3AYDmJDYBVLZmTbIWLlyYR6W6detWb3tanzt3btljnnrqqbjlllvipptuWqPPGD9+fK56WLP07NmzkLYDwNoSmwAqW7NPF2yKt99+O44//vicYHXt2nWNjhkzZkwsWrSodpkzZ846bycArIrYBFDZmlTCvWgpUWrTpk3Mmzev3va03r1795X2/9Of/pQLXhx++OG121asWJH/bNu2bbzyyiux44471jumQ4cOeQGAlkJsAqhszTqS1b59++jXr19MnTq1XtKU1gcNGrTS/r17944XXnghnnvuudrliCOOiIMPPjj/bLoFAABQ1SNZSSrfPnLkyOjfv38MGDAgJkyYEEuWLMnVBpMRI0ZEjx498vz19BytPfbYo97xm266af6z4XYAAICqTLKGDRsWCxYsiLFjx+ZiF3379o0pU6bUFsOYPXt2rjgIAACwIWhVKpVKUUVSmdxUySndaNy5c+fmbg5AVXEOLk+/AFTW+dcQEQAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAABUWpI1ceLE6NWrV3Ts2DEGDhwY06dPb3Tfm266KQ488MDYbLPN8jJ48OBV7g8AAFBVSdbkyZNj9OjRMW7cuJg5c2b06dMnhgwZEvPnzy+7/xNPPBHDhw+Pxx9/PKZNmxY9e/aMQw45JF5//fX13nYAAICGWpVKpVI0ozRytc8++8R1112X11esWJETp9NOOy3OOeec1R6/fPnyPKKVjh8xYsRq91+8eHF06dIlFi1aFJ07dy7kOwCwZpyDy9MvAJV1/m0bzWjZsmUxY8aMGDNmTO221q1b5ymAaZRqTbz77rvxwQcfxOabb1729aVLl+albkcCQHMSmwAqW7NOF1y4cGEeierWrVu97Wl97ty5a/QeZ599dmyzzTY5MStn/PjxOTutWdIoGQA0J7EJoLI1+z1ZH8YVV1wRd911V9x///25aEY5aZQsDf/VLHPmzFnv7QSAusQmgMrWrNMFu3btGm3atIl58+bV257Wu3fvvspjr7766pxkPfbYY7HXXns1ul+HDh3yAgAthdgEUNmadSSrffv20a9fv5g6dWrttlT4Iq0PGjSo0eOuuuqquOSSS2LKlCnRv3//9dRaAACAFj6SlaTy7SNHjszJ0oABA2LChAmxZMmSGDVqVH49VQzs0aNHnr+eXHnllTF27Ni4884787O1au7d+shHPpIXAACAqk6yhg0bFgsWLMiJU0qY+vbtm0eoaophzJ49O1ccrHHDDTfkqoRHH310vfdJz9m68MIL13v7AQAAWtRzstY3zyIBaD7OweXpF4DKOv9u0NUFAQAAWhpJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAACVlmRNnDgxevXqFR07doyBAwfG9OnTV7n/PffcE717987777nnnvHwww+vt7YCAAC06CRr8uTJMXr06Bg3blzMnDkz+vTpE0OGDIn58+eX3f/pp5+O4cOHxwknnBDPPvtsDB06NC8vvvjiem87AABAQ61KpVIpmlEaudpnn33iuuuuy+srVqyInj17xmmnnRbnnHPOSvsPGzYslixZEj//+c9rt+27777Rt2/fmDRp0mo/b/HixdGlS5dYtGhRdO7cueBvA8CqOAeXp18AKuv82zaa0bJly2LGjBkxZsyY2m2tW7eOwYMHx7Rp08oek7anka+60sjXAw88UHb/pUuX5qVG6sCaDgVg/ao59zbz9b1mJzYBVHZcatYka+HChbF8+fLo1q1bve1p/eWXXy57zNy5c8vun7aXM378+LjoootW2p5GywBoHn//+9/zlcNqJTYBVHZcatYka31Io2R1R77eeuut2G677WL27NlVHeAby+RTgJ8zZ47pKnXol8bpm/L0S+PSiM22224bm2++eVQzsWnN+LvUOH1Tnn5pnL5Zv3GpWZOsrl27Rps2bWLevHn1tqf17t27lz0mbW/K/h06dMhLQymI+QUrL/WLvlmZfmmcvilPvzQuTQ2vZmJT0/i71Dh9U55+aZy+WT9xqVmjXPv27aNfv34xderU2m2p8EVaHzRoUNlj0va6+yePPvpoo/sDAACsT80+XTBNlxg5cmT0798/BgwYEBMmTMjVA0eNGpVfHzFiRPTo0SPPX09OP/30OOigg+Kaa66Jww47LO6666545pln4sYbb2zmbwIAANACkqxUkn3BggUxduzYXLwilWKfMmVKbXGLND+97vDdfvvtF3feeWecf/75ce6558bOO++cKwvusccea/R5aXpGeiZXuWka1U7flKdfGqdvytMvjdM35emX8vRL4/RNefqlcfpm/fZLsz8nCwAAoJJU953HAAAABZNkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFApSdaTTz4Zhx9+eGyzzTbRqlWreOCBB1Z7zBNPPBEf//jHo0OHDrHTTjvF7bffvl7aCgAA0OKTrCVLlkSfPn1i4sSJa7T/n//85zjssMPi4IMPjueeey7OOOOMOPHEE+ORRx5Z520FAABYE61KpVIpWoA0knX//ffH0KFDG93n7LPPjoceeihefPHF2m3HHHNMvPXWWzFlypT11FIAAIDGtY0NyLRp02Lw4MH1tg0ZMiSPaDVm6dKleamxYsWKePPNN2OLLbbIiR0A60+6rvf222/naeKtW1fvbcFiE0Blx6UNKsmaO3dudOvWrd62tL548eJ47733YqONNlrpmPHjx8dFF120HlsJwOrMmTMnPvrRj0a1EpsAKjsubVBJ1toYM2ZMjB49unZ90aJFse222+aO7Ny5c7O2DaDapItiPXv2jE022SSqmdgEUNlxaYNKsrp37x7z5s2rty2tp4BUbhQrSVUI09JQOkYgA2ge1T4lTmwCqOy4tEFNiB80aFBMnTq13rZHH300bwcAAGgJmjXJeuedd3Ip9rTUlGhPP8+ePbt2OsWIESNq9//6178es2bNirPOOitefvnluP766+Puu++OM888s9m+AwAAQItJsp555pnYe++985Kk+enp57Fjx+b1N954ozbhSrbffvtcwj2NXqXna11zzTVx88035wqDAAAALUGLeU7W+ry5rUuXLvkmY/PeAdYv5+Dy9AtAZZ1/N6h7sgAAAFo6SRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWQAAAAWSZAEAABRIkgUAAFAgSRYAAECBJFkAAAAFkmQBAAAUSJIFAABQIEkWAABAgSRZAAAAlZRkTZw4MXr16hUdO3aMgQMHxvTp01e5/4QJE2LXXXeNjTbaKHr27BlnnnlmvP/+++utvQAAAC02yZo8eXKMHj06xo0bFzNnzow+ffrEkCFDYv78+WX3v/POO+Occ87J+7/00ktxyy235Pc499xz13vbAQAAWlySde2118ZJJ50Uo0aNit122y0mTZoUnTp1iltvvbXs/k8//XTsv//+ceyxx+bRr0MOOSSGDx++2tEvAACAik+yli1bFjNmzIjBgwf/qzGtW+f1adOmlT1mv/32y8fUJFWzZs2Khx9+OA499NBGP2fp0qWxePHiegsANCexCaCyNVuStXDhwli+fHl069at3va0Pnfu3LLHpBGsiy++OA444IBo165d7LjjjvHJT35yldMFx48fH126dKld0n1cANCcxCaAytbshS+a4oknnojLL788rr/++nwP13333RcPPfRQXHLJJY0eM2bMmFi0aFHtMmfOnPXaZgBoSGwCqGxtm+uDu3btGm3atIl58+bV257Wu3fvXvaYCy64II4//vg48cQT8/qee+4ZS5YsiZNPPjnOO++8PN2woQ4dOuQFAFoKsQmgsjXbSFb79u2jX79+MXXq1NptK1asyOuDBg0qe8y77767UiKVErWkVCqt4xYDAAC04JGsJJVvHzlyZPTv3z8GDBiQn4GVRqZStcFkxIgR0aNHjzx3PTn88MNzRcK99947P1Pr1VdfzaNbaXtNsgUAAFC1SdawYcNiwYIFMXbs2Fzsom/fvjFlypTaYhizZ8+uN3J1/vnnR6tWrfKfr7/+emy55ZY5wbrsssua8VsAAAD8S6tSlc2zS2VyUyWndKNx586dm7s5AFXFObg8/QJQWeffDaq6IAAAQEsnyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKA5k6xevXrFxRdfHLNnzy6yHQAAANWZZJ1xxhlx3333xQ477BCf+cxn4q677oqlS5eum9YBAABUQ5L13HPPxfTp0+NjH/tYnHbaabH11lvHN7/5zZg5c+a6aSUAAECl35P18Y9/PL73ve/F3/72txg3blzcfPPNsc8++0Tfvn3j1ltvjVKpVGxLAQAAKjnJ+uCDD+Luu++OI444Ir797W9H//79c6L1xS9+Mc4999w47rjj1uh9Jk6cmO/z6tixYwwcODCPkK3KW2+9FaeeemoePevQoUPssssu8fDDD6/t1wAAAChU26YekKYE3nbbbfGTn/wkWrduHSNGjIjvfve70bt379p9vvCFL+RRrdWZPHlyjB49OiZNmpQTrAkTJsSQIUPilVdeia222mql/ZctW5bvA0uv3XvvvdGjR4/4y1/+EptuumlTvwYAAEDLSLJS8pQSnRtuuCGGDh0a7dq1W2mf7bffPo455pjVvte1114bJ510UowaNSqvp2TroYceytMNzznnnJX2T9vffPPNePrpp2s/N42CAQAAbLBJ1qxZs2K77bZb5T4bb7xxHu1alTQqNWPGjBgzZkzttjQyNnjw4Jg2bVrZYx588MEYNGhQni74s5/9LLbccss49thj4+yzz442bdqUPSZVPqxb/XDx4sWr+YYAsG6JTQCVrcn3ZM2fPz9+85vfrLQ9bXvmmWfW+H0WLlwYy5cvj27dutXbntbnzp3baIKXpgmm49J9WBdccEFcc801cemllzb6OePHj48uXbrULj179lzjNgLAuiA2AVS2JidZaRRpzpw5K21//fXX82vr0ooVK/L9WDfeeGP069cvhg0bFuedd16eZtiYNFK2aNGi2qVc2wFgfRKbACpbk6cL/v73v8/l2xvae++982trqmvXrnmK37x58+ptT+vdu3cve0yqKJjuxao7NTA9qyuNfKXph+3bt1/pmFSBMC0A0FKITQCVrckjWSkoNEyMkjfeeCPatl3znC0lRGk0aurUqfVGqtJ6uu+qnP333z9effXVvF+NP/zhDzn5KpdgAQAAtPgk65BDDqmd5lD32VXp2Vip6mBTpPLtN910U9xxxx3x0ksvxTe+8Y1YsmRJbbXBVB6+bmGM9HqqLnj66afn5CpVIrz88svX+TRFAACAdTZd8Oqrr45PfOITucJgmiKYPPfcc7lgxY9+9KMmvVe6p2rBggUxduzYPOWvb9++MWXKlNpiGLNnz84VB2ukG4MfeeSROPPMM2OvvfbKz8lKCVeqLggAANAStCqVSqWmHpRGm3784x/H888/HxtttFFOeIYPH172mVktTSqTmyo5pZG4zp07N3dzAKqKc3B5+gWgss6/TR7JqnkO1sknn1xYIwAAACrFWiVZSaokmKbzpap+dR1xxBFFtAsAAKA6kqz0QOAvfOEL8cILL0SrVq2iZrZh+jlJDwoGAACoVk2uLpgKTWy//fYxf/786NSpU/zud7+LJ598Mvr37x9PPPHEumklAABApY5kTZs2LX71q1/lhwmnyn9pOeCAA2L8+PHxrW99K5599tl101IAAIBKHMlK0wE32WST/HNKtP72t7/ln1NJ91deeaX4FgIAAFTySNYee+yRS7enKYMDBw6Mq666Ktq3bx833nhj7LDDDuumlQAAAJWaZJ1//vn5OVnJxRdfHJ///OfjwAMPjC222CImT568LtoIAABQuUnWkCFDan/eaaed4uWXX44333wzNttss9oKgwAAANWqSfdkffDBB9G2bdt48cUX623ffPPNJVgAAABNTbLatWsX2267rWdhAQAAFFVd8Lzzzotzzz03TxEEAADgQ96Tdd1118Wrr74a22yzTS7bvvHGG9d7febMmU19SwAAgOpNsoYOHbpuWgIAAFCNSda4cePWTUsAAACq8Z4sAAAAChzJat269SrLtas8CAAAVLMmJ1n333//Ss/OevbZZ+OOO+6Iiy66qMi2AQAAVH6SdeSRR6607eijj47dd989Jk+eHCeccEJRbQMAAKjee7L23XffmDp1alFvBwAAUL1J1nvvvRff+973okePHkW8HQAAQPVMF9xss83qFb4olUrx9ttvR6dOneI///M/i24fAABAZSdZ3/3ud+slWana4JZbbhkDBw7MCRgAAEA1a3KS9ZWvfGXdtAQAAKAa78m67bbb4p577llpe9qWyrgDAABUsyYnWePHj4+uXbuutH2rrbaKyy+/vKh2AQAAVEeSNXv27Nh+++1X2r7ddtvl1wAAAKpZk5OsNGL1v//7vyttf/7552OLLbYoql0AAADVkWQNHz48vvWtb8Xjjz8ey5cvz8uvfvWrOP300+OYY45ZN60EAACo1OqCl1xySbz22mvx6U9/Otq2/f+Hr1ixIkaMGOGeLAAAoOo1Oclq3759TJ48OS699NJ47rnnYqONNoo999wz35MFAABQ7Zo8XbDGzjvvHF/60pfi85///IdOsCZOnBi9evWKjh075ocaT58+fY2Ou+uuu/KDkYcOHfqhPh8AAKDZkqwvfvGLceWVV660/aqrrspJV1OlUbHRo0fHuHHjYubMmdGnT58YMmRIzJ8/f5XHpSmL3/nOd+LAAw9s8mcCAAC0mCTrySefjEMPPXSl7Z/73Ofya0117bXXxkknnRSjRo2K3XbbLSZNmhSdOnWKW2+9tdFjUrGN4447Li666KLYYYcdmvyZAAAALSbJeuedd/J9WQ21a9cuFi9e3KT3WrZsWcyYMSMGDx78rwa1bp3Xp02b1uhxF198cS4lf8IJJ6z2M5YuXZrbVXcBgOYkNgFUtiYnWanIRZriV+7+qDQS1RQLFy7Mo1LdunWrtz2tz507t+wxTz31VNxyyy1x0003rdFnjB8/Prp06VK79OzZs0ltBICiiU0Ala3J1QUvuOCCOOqoo+JPf/pTfOpTn8rbpk6dGnfeeWfce++9sS69/fbbcfzxx+cEq2vXrmt0zJgxY/I9XzXS1ULBDIDmJDYBVLYmJ1mHH354PPDAA/mZWCmpSiXcU7GK9EDizTffvEnvlRKlNm3axLx58+ptT+vdu3dfaf+U2KWCF6kNNdIzuvIXads2Xnnlldhxxx3rHdOhQ4e8AEBLITYBVLa1KuF+2GGHxa9//etYsmRJzJo1K7785S/nSn8p2WqKdG9Xv3798khY3aQprQ8aNGil/Xv37h0vvPBCfj5XzXLEEUfEwQcfnH92FRAAANjgRrJqpEqC6d6on/70p7HNNtvkKYTpeVdNlaZLjBw5Mvr37x8DBgyICRMm5OQtVRtMRowYET169Mjz19NztPbYY496x2+66ab5z4bbAQAAWnySlYpR3H777Tm5SvPH0whWqpCUpg82tehFjWHDhsWCBQti7Nix+f379u0bU6ZMqS2GMXv27FxxEAAAYEPQqlQqldZkx3QfVBq9SlMF0zOqPvvZz+b7qVLp9ueff36tk6z1LSWHqZLTokWLonPnzs3dHICq4hxcnn4BqKzz7xqPZP3iF7+Ib33rW/GNb3wjdt5558IaAAAAUEnWeB5eej5VKqGeClUMHDgwrrvuuvycKwAAANYiydp3333z86neeOON+NrXvpYfPpwKXqRqgI8++mhOwAAAAKpdkytKbLzxxvHVr341j2ylcurf/va344orroitttoql1MHAACoZh+qbN+uu+4aV111Vfz1r3+Nn/zkJ8W1CgAAYANVSG30VGVw6NCh8eCDDxbxdgAAABssD6ACAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAACotCRr4sSJ0atXr+jYsWMMHDgwpk+f3ui+N910Uxx44IGx2Wab5WXw4MGr3B8AAKCqkqzJkyfH6NGjY9y4cTFz5szo06dPDBkyJObPn192/yeeeCKGDx8ejz/+eEybNi169uwZhxxySLz++uvrve0AAAANtSqVSqVoRmnkap999onrrrsur69YsSInTqeddlqcc845qz1++fLleUQrHT9ixIjV7r948eLo0qVLLFq0KDp37lzIdwBgzTgHl6dfACrr/Ns2mtGyZctixowZMWbMmNptrVu3zlMA0yjVmnj33Xfjgw8+iM0337zs60uXLs1L3Y4EgOYkNgFUtmadLrhw4cI8EtWtW7d629P63Llz1+g9zj777Nhmm21yYlbO+PHjc3Zas6RRMgBoTmITQGVr9nuyPowrrrgi7rrrrrj//vtz0Yxy0ihZGv6rWebMmbPe2wkAdYlNAJWtWacLdu3aNdq0aRPz5s2rtz2td+/efZXHXn311TnJeuyxx2KvvfZqdL8OHTrkBQBaCrEJoLI160hW+/bto1+/fjF16tTabanwRVofNGhQo8ddddVVcckll8SUKVOif//+66m1AAAALXwkK0nl20eOHJmTpQEDBsSECRNiyZIlMWrUqPx6qhjYo0ePPH89ufLKK2Ps2LFx55135mdr1dy79ZGPfCQvAAAAVZ1kDRs2LBYsWJATp5Qw9e3bN49Q1RTDmD17dq44WOOGG27IVQmPPvroeu+TnrN14YUXrvf2AwAAtKjnZK1vnkUC0Hycg8vTLwCVdf7doKsLAgAAtDSSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAAokyQIAACiQJAsAAKBAkiwAAIACSbIAAAAqLcmaOHFi9OrVKzp27BgDBw6M6dOnr3L/e+65J3r37p3333PPPePhhx9eb20FAABo0UnW5MmTY/To0TFu3LiYOXNm9OnTJ4YMGRLz588vu//TTz8dw4cPjxNOOCGeffbZGDp0aF5efPHF9d52AACAhlqVSqVSNKM0crXPPvvEddddl9dXrFgRPXv2jNNOOy3OOeeclfYfNmxYLFmyJH7+85/Xbtt3332jb9++MWnSpNV+3uLFi6NLly6xaNGi6Ny5c8HfBoBVcQ4uT78AVNb5t200o2XLlsWMGTNizJgxtdtat24dgwcPjmnTppU9Jm1PI191pZGvBx54oOz+S5cuzUuN1IE1HQrA+lVz7m3m63vNTmwCqOy41KxJ1sKFC2P58uXRrVu3etvT+ssvv1z2mLlz55bdP20vZ/z48XHRRRettD2NlgHQPP7+97/nK4fVSmwCqOy41KxJ1vqQRsnqjny99dZbsd1228Xs2bOrOsA3lsmnAD9nzhzTVerQL43TN+Xpl8alEZttt902Nt9886hmYtOa8XepcfqmPP3SOH2zfuNSsyZZXbt2jTZt2sS8efPqbU/r3bt3L3tM2t6U/Tt06JCXhlIQ8wtWXuoXfbMy/dI4fVOefmlcmhpezcSmpvF3qXH6pjz90jh9s37iUrNGufbt20e/fv1i6tSptdtS4Yu0PmjQoLLHpO11908effTRRvcHAABYn5p9umCaLjFy5Mjo379/DBgwICZMmJCrB44aNSq/PmLEiOjRo0eev56cfvrpcdBBB8U111wThx12WNx1113xzDPPxI033tjM3wQAAKAFJFmpJPuCBQti7NixuXhFKsU+ZcqU2uIWaX563eG7/fbbL+688844//zz49xzz42dd945VxbcY4891ujz0vSM9EyuctM0qp2+KU+/NE7flKdfGqdvytMv5emXxumb8vRL4/TN+u2XZn9OFgAAQCWp7juPAQAACibJAgAAKJAkCwAAoECSLAAAgAJVZJI1ceLE6NWrV3Ts2DEGDhwY06dPX+X+99xzT/Tu3Tvvv+eee8bDDz8claopfXPTTTfFgQceGJtttlleBg8evNq+rJbfmRrpEQKtWrWKoUOHRqVqat+89dZbceqpp8bWW2+dK/XssssuFfl3qqn9kh5Pseuuu8ZGG20UPXv2jDPPPDPef//9qCRPPvlkHH744bHNNtvkvxep8uvqPPHEE/Hxj388/67stNNOcfvtt0elEpvKE5caJzaVJy41TmxqQbGpVGHuuuuuUvv27Uu33npr6Xe/+13ppJNOKm266aalefPmld3/17/+dalNmzalq666qvT73/++dP7555fatWtXeuGFF0rV3jfHHntsaeLEiaVnn3229NJLL5W+8pWvlLp06VL661//Wqrmfqnx5z//udSjR4/SgQceWDryyCNLlaipfbN06dJS//79S4ceemjpqaeeyn30xBNPlJ577rlSNffLj3/841KHDh3yn6lPHnnkkdLWW29dOvPMM0uV5OGHHy6dd955pfvuuy9VrS3df//9q9x/1qxZpU6dOpVGjx6dz7/f//738/l4ypQppUojNpUnLjVObCpPXGqc2NSyYlPFJVkDBgwonXrqqbXry5cvL22zzTal8ePHl93/y1/+cumwww6rt23gwIGlr33ta6Vq75uG/vnPf5Y22WST0h133FGq9n5JfbHffvuVbr755tLIkSMrMpCtTd/ccMMNpR122KG0bNmyUiVrar+kfT/1qU/V25ZO3vvvv3+pUq1JIDvrrLNKu+++e71tw4YNKw0ZMqRUacSm8sSlxolN5YlLjRObWlZsqqjpgsuWLYsZM2bk6QM10oOM0/q0adPKHpO2190/GTJkSKP7V1PfNPTuu+/GBx98EJtvvnlUe79cfPHFsdVWW8UJJ5wQlWpt+ubBBx+MQYMG5WkZ6YHi6SHhl19+eSxfvjyquV/SQ9TTMTXTNmbNmpWnqhx66KFRzZx/qzs2iUuNE5vKE5caJzYVp6jzb9uoIAsXLsx/adJforrS+ssvv1z2mLlz55bdP22v9r5p6Oyzz87zWRv+4lVbvzz11FNxyy23xHPPPReVbG36Jp2gf/WrX8Vxxx2XT9SvvvpqnHLKKfkfQelp6tXaL8cee2w+7oADDkizB+Kf//xnfP3rX49zzz03qllj59/FixfHe++9l+8RqARiU3niUuPEpvLEpcaJTS0vNlXUSBbrzhVXXJFvpL3//vvzzZTV6u23347jjz8+33zdtWvX5m5Oi7NixYp8FfXGG2+Mfv36xbBhw+K8886LSZMmRTVLN9CmK6fXX399zJw5M+6777546KGH4pJLLmnupsEGS1z6F7GpceJS48SmdauiRrLSiaVNmzYxb968etvTevfu3csek7Y3Zf9q6psaV199dQ5mjz32WOy1115Rzf3ypz/9KV577bVcpabuCTxp27ZtvPLKK7HjjjtGtf7OpMpN7dq1y8fV+NjHPpavCqWpDO3bt49q7JcLLrgg/wPoxBNPzOupUtySJUvi5JNPzsE+TemoRo2dfzt37lwxo1iJ2FSeuNQ4sak8calxYlPLi00V1XvpL0q6SjF16tR6J5m0nubjlpO2190/efTRRxvdv5r6JrnqqqvyFY0pU6ZE//79o9I0tV9SOeUXXnghT8eoWY444og4+OCD88+p/Gk1/87sv//+eSpGTXBP/vCHP+QgVymBbG36Jd030jBY1QT8/38fbnVy/q3u2CQuNU5sKk9capzYVJzCzr+lCixfmcpR3n777bns4sknn5zLV86dOze/fvzxx5fOOeecemVy27ZtW7r66qtzOdhx48ZVZJnctembK664IpcCvffee0tvvPFG7fL222+XqrlfGqrUCk5r0zezZ8/Olb6++c1vll555ZXSz3/+89JWW21VuvTSS0vV3C/pvJL65Sc/+UkuDfvLX/6ytOOOO+YKcpUknRtSae20pPBy7bXX5p//8pe/5NdTn6S+aVgm99/+7d/y+TeV5q7kEu5i08rEpcaJTeWJS40Tm1pWbKq4JCtJ9ey33XbbfCJO5Sz/53/+p/a1gw46KJ946rr77rtLu+yyS94/lWx86KGHSpWqKX2z3Xbb5V/Ghkv6S1ntvzPVEMjWtm+efvrpXGo6nehT2dzLLrsslxWu5n754IMPShdeeGEOXh07diz17NmzdMopp5T+8Y9/lCrJ448/XvacUdMX6c/UNw2P6du3b+7H9Pty2223lSqV2FSeuNQ4sak8calxYlPLiU2t0n8KHGEDAACoahV1TxYAAEBzk2QBAAAUSJIFAABQIEkWAABAgSRZAAAABZJkAQAAFEiSBQAAUCBJFgAAQIEkWVAhevXqFRMmTGjuZgBAJi5RzSRZsBa+8pWvxNChQ/PPn/zkJ+OMM85Yb599++23x6abbrrS9t/+9rdx8sknr7d2ANByiEvQsrRt7gYA/9+yZcuiffv2a338lltuWWh7AKhu4hKsPSNZ8CGvHP7f//t/4z/+4z+iVatWeXnttdfyay+++GJ87nOfi4985CPRrVu3OP7442PhwoW1x6Yrjd/85jfz1cauXbvGkCFD8vZrr7029txzz9h4442jZ8+eccopp8Q777yTX3viiSdi1KhRsWjRotrPu/DCC8tOy5g9e3YceeSR+fM7d+4cX/7yl2PevHm1r6fj+vbtGz/60Y/ysV26dIljjjkm3n777dp97r333tyWjTbaKLbYYosYPHhwLFmyZD30LABrQ1yClkGSBR9CCmKDBg2Kk046Kd544428pAD01ltvxac+9anYe++945lnnokpU6bkQJICSl133HFHvkr461//OiZNmpS3tW7dOr73ve/F7373u/z6r371qzjrrLPya/vtt18OWCk41Xzed77znZXatWLFihzI3nzzzRxsH3300Zg1a1YMGzas3n5/+tOf4oEHHoif//zneUn7XnHFFfm19N7Dhw+Pr371q/HSSy/lQHrUUUdFqVRahz0KwIchLkHLYLogfAjpKlsKRp06dYru3bvXbr/uuutyILv88strt91666050P3hD3+IXXbZJW/beeed46qrrqr3nnXn0acreZdeeml8/etfj+uvvz5/VvrMdKWw7uc1NHXq1HjhhRfiz3/+c/7M5Ic//GHsvvvueY78PvvsUxv00lz6TTbZJK+nq5rp2MsuuywHs3/+8585gG233Xb59XT1EICWS1yClsFIFqwDzz//fDz++ON5SkTN0rt379qrdDX69eu30rGPPfZYfPrTn44ePXrkIJMCzN///vd499131/jz0xW+FMRqAlmy22675RuT02t1g2VNIEu23nrrmD9/fv65T58+uR0pgH3pS1+Km266Kf7xj3+sRW8A0NzEJVi/JFmwDqS56ocffng899xz9ZY//vGP8YlPfKJ2vzS/va40b/7zn/987LXXXvHTn/40ZsyYERMnTqy9Ablo7dq1q7eerkSmq4hJmzZt8nSOX/ziFzkQfv/7349dd901X4UEYMMiLsH6JcmCDylNlVi+fHm9bR//+Mfz3PV0RW6nnXaqtzQMYHWl4JWCyTXXXBP77rtvnr7xt7/9bbWf19DHPvaxmDNnTl5q/P73v89z8lNgWlMpuO2///5x0UUXxbPPPps/+/7771/j4wFY/8QlaH6SLPiQUsD6zW9+k6/2pSpNKRideuqp+ebedINummuepmI88sgjuQLTqgJRCnYffPBBvjqXbghOFZZqbjyu+3npimSao54+r9x0jVRtKU2nOO6442LmzJkxffr0GDFiRBx00EHRv3//Nfpe6TulufvpBulUEeq+++6LBQsW5EAJQMslLkHzk2TBh5SqKKUpDOlKXHomSDrxb7PNNrkyUwpchxxySA4s6cbhNPc8VWlqTJpvnkrlXnnllbHHHnvEj3/84xg/fny9fVIlp3TDcarIlD6v4Q3KNVf6fvazn8Vmm22Wp4Gk4LbDDjvE5MmT1/h7pUpRTz75ZBx66KH5yuX555+fr2Sm8r8AtFziEjS/ViV1LwEAAApjJAsAAKBAkiwAAIACSbIAAAAKJMkCAAAokCQLAACgQJIsAACAAkmyAAAACiTJAgAAKJAkCwAAoECSLAAAgAJJsgAAAKI4/w81Pqe4U4tTMAAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAIjCAYAAABVpWnzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAsWVJREFUeJzs3Qd0VNUWBuA/vVeSkACh9450kCYIFqSJYgWxPRVsqCiioKigoogKiqIodiyIjSJVujSlSW8JkEII6T2Zt/aZzJCEBDLJzNwp/7fWfVMy5ST4crNn77O3i06n04GIiIiIiIgchqvWCyAiIiIiIiLzYqBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHZCH33HMP6tevX6XnvvTSS3BxcTH7moiIyHmcPHlSnUs+//xzrZdCRBpgoEdOR056lTnWrVun9VLt3jfffIPZs2drvQwiIrORoKnkucLb2xu1atXCoEGD8N577yE9PV3rJRKA6dOnY8mSJVZ/37Nnz6oPa//991+rvzdRWS46nU53yb1EDuyrr74qdfuLL77AypUr8eWXX5a6/9prr0XNmjWr/D75+fkoKiqCl5eXyc8tKChQh/wBYc8GDx6Mffv2qU+ViYgcJdAbO3Yspk2bhgYNGqjf9fHx8erDQTmX1K1bF7/++ivatm2r9VLV715Z42effaaqTJyJv78/Ro4cafVs5o4dO9C5c2en/JmT7XHXegFE1nbXXXeVur1161Z1ci57f1lZWVnw9fWt9Pt4eHhUeY3u7u7qICIi23T99dejU6dOxtuTJk3CmjVr1AdcQ4YMwYEDB+Dj46PpGonIubF0k6gcffv2RevWrbFz50707t1bBXjPP/+8+tovv/yCG2+8UZXqSLauUaNGeOWVV1BYWHjZPXqGvRJvvfUWPv74Y/U8eb588rd9+/Yr7tGT2+PHj1elKLI2eW6rVq2wfPnyS9YvnyzLHyCSEZT3+eijjyq97+/IkSO4+eabERkZqZ5fp04d3HbbbUhNTb0kM9qxY0f1h0xoaKh6TGxsbKmf4R9//IFTp04ZS5yqumeRiMgeXHPNNXjxxRfV772y1SMHDx5UGSb5fSm/W+V3tGT+SmaC5PfkwoULL3ndFStWqK/9/vvvxvvOnDmDe++9V1WeGM4HCxYsqNQ6JSDt1asX/Pz8EBwcjKFDh6rAtCTDOUPWfeuttyIwMBA1atTA448/jpycnHLPTz/88ANatmypzgvdu3fH3r171dflHNS4cWP1fcu5obwqj7///hvXXXcdgoKC1Dm3T58+2LRpU7lrOnr0qDrHytrl8ZJhlQ9jS64nMzNT/SwN558rZdfef/999TOU9w4JCVH/PrL9oKQr/czl3CvndCFrMrw390iSVpgyIKrA+fPn1Se2EsBIts9Qxim/sKUkZMKECepSTphTpkxBWloaZs6cecXXlROH7OH43//+p04Ab775JkaMGIHjx49fMQu4ceNGLF68GI888ggCAgLUfhAJymJiYtQJWPzzzz/qZBkVFYWXX35ZBaBSYhQeHn7FteXl5al9Jrm5uXj00UdVsCcnNvnjIiUlRZ1QxWuvvab+mJGT//33349z586pk6QExfL+cvKdPHmyCg5Pnz6Nd955Rz1Pfl5ERI7s7rvvVh8M/vnnn3jggQfUffv370fPnj1Ru3ZtPPfccyrA+v777zFs2DD89NNPGD58uAosGjZsqO4fM2ZMqddctGiRCj7k97NISEhAt27djAGW/H5ftmwZ7rvvPnUueuKJJypc36pVq9S5Td5LAqfs7Gz1+1vWt2vXrks+kJPf83LfjBkzVAWMnHcuXLigtj2UtGHDBhW4jhs3Tt2Wx0t2c+LEifjggw/UeUueJ+c8CZbk3Gkg12VN8uHh1KlT4erqqkofJXCW1+3Spcsla5KSVHkPWfMnn3yCiIgIvPHGG+rrshVDzk3yvAcffFDdJx96VmT+/Pl47LHHVCBuCGT37Nmjgs877rij0j/zFi1aqPOt/E0g7yvBtOjRo8dl/oshsiDZo0fkzMaNGyf7VEvd16dPH3XfvHnzLnl8VlbWJff973//0/n6+upycnKM940ZM0ZXr1494+0TJ06o16xRo4YuOTnZeP8vv/yi7v/tt9+M902dOvWSNcltT09P3dGjR4337d69W93//vvvG++76aab1FrOnDljvO/IkSM6d3f3S16zrH/++Uc95ocffqjwMSdPntS5ubnpXnvttVL37927V71HyftvvPHGUj8DIiJ799lnn6nfk9u3b6/wMUFBQboOHToYb/fv31/Xpk2bUueIoqIiXY8ePXRNmjQx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eVQ+npuIiMjS7K50MywsTP1BlJAgTcovktuRkZGXPN7Ly0sdREREtoLnJiIisjS7y+h5enqiY8eOWL16tfE+6VYnt7t3767p2oiIiIiIiGyB3WX0hIxWGDNmDDp16qRm58l4hczMTNWFk4iIiIiIyNnZZaA3atQonDt3DlOmTFENWNq3b4/ly5df0qClPDKgWLDDGRGR9Rl+9xp+F5Mez01ERNpIc+DzkovOEb+ryzh9+jS7mxERaUyaj9SpU0frZdgMnpuIiLQV64DnJacL9GQ/39mzZxEQEAAXFxdjJC8nWPkHDgwMhCNx5O/N0b8/fm/2yZG/N3N8f3LKkSHxtWrVUjNQSY/nJsfhyN+bo39//N7sE89LDla6WR3yD1hRtC7/cTjaf/zO8L05+vfH780+OfL3Vt3vT+bGUWk8NzkeR/7eHP374/dmn3heupRjha1ERERERETEQI+IiIiIiMjRMNArHlw7depUhxxe68jfm6N/f/ze7JMjf2/O8P3ZEkf+WfN7s1+O/P3xe7NPjvy9VZfTNWMhIiIiIiJydMzoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA7GHU6mqKgIZ8+eRUBAAFxcXLReDhGRU9HpdEhPT0etWrXg6srPGg14biIi0obOgc9LThfoyYk0Ojpa62UQETm12NhY1KlTR+tl2Ayem4iItBXrgOclpwv05NNSwz9mYGCg1sshInIqaWlpKqAx/C4mPZ6biIi0kebA5yWnC/QMJTFyIuXJlIhIGyxPLI3nJiIibbk44HnJsQpRiYiIiIiIyPkyekREtqCwsBAbNmxAXFwcoqKi0KtXL7i5uWm9LCIiInIQzOgREVnZ4sWL0bhxY/Tr1w933HGHupTbcj8RERGROTDQIyKyIgnmRo4ciTZt2mDLli2qpbNcym25n8EeERERmYOLToZHOFlnnaCgIKSmpnLDOxFZvVxTMncS1C1ZsqTUvB6ZozZs2DDs27cPR44ccdgyTv4OLh9/LkRE2khz4N+/3KNHRGQlsifv5MmT+Pbbb/VB3p4fgJ2fA4V5qrxiUqsU9PjtBDY81wV9m4XCZrUcAvR4VOtVEBER0WUw0CMishJpvCJat2wBrJgMbJlT6uutoS+wiDt+APDzgM2Kaqf1CoiIiOgKGOgREVmJdNcU+2YNQzfs0t/Z83Eguqv+/n8OAHgGUUNfBLq0hc0Krqf1CoiIiOgKGOgREVlJrxZRqB/qienfbsSSO0PhevM8oNVw4x69GRM/QoMGDdDrzomAg+7RIyIiIutg100iIms4uhpun12Ltwe44fcjBRi2sTm2pEUau25KI5bff/8db731lsM2YiEiIiLrYUaPiMiSpLHx3/OAFc8DuiKMuLYnfhxyB556YRp69OhhfJhk8n788UeMGDFC0+USERGRY2CgR0RkKQW5wB9PAf98qb/d/k5g8DsY4e6FobeNVl04pUGL7N3r1asXM3lERERkNgz0iIgsIeMcsOguIHYr4OIKDHwV6PYI4OKivixBXd++fbVeJRERETkoBnpEROYWtwf47g4gNRbwCgJGLgCaDNB6VUREROREGOgREZlDYQFwdhdwdBWw+X0gPwsIbQTcsQgIa6L16oiIiMjJMNAjIqqqC6eAY2uAY6uB4+uB3NSLX2vYD7jlM8AnRMsVEhERkZPSfLzC3LlzUb9+fXh7e6Nr167Ytm1bhY/Nz8/HtGnT0KhRI/X4du3aYfny5VZdLxE5sdx04NAy4I+ngfeuAt5tC/z+BHDgN32Q5x0MtBwGDPsQuPNHBnlERETknBm9RYsWYcKECZg3b54K8mbPno1Bgwbh0KFDiIiIuOTxL7zwAr766ivMnz8fzZs3x4oVKzB8+HBs3rwZHTp00OR7ICIbUZAH/PMFcGqLzDQw/+unxQGntwFFBRfvc3EDorsAjfoDja4BarUHXNk5k4iIiLTnotPJkCdtSHDXuXNnzJkzR90uKipCdHQ0Hn30UTz33HOXPL5WrVqYPHkyxo0bZ7zv5ptvho+PjwoAKyMtLQ1BQUFITU1FYGCgGb8bItKE/Ao78Cuw6iUg+bjl3y+kAdC4OLCr3wvw5u8RU/B3cPn4cyEi0kaaA//+1Syjl5eXh507d2LSpEnG+1xdXTFgwABs2SKfyF8qNzdXlWyWJEHexo0bK3wfeY4cJf8xichBxGwF/nxRn2kTfuFAlwcBLwv8ovb0A+r3BEIbmv+1yenw3ERERA4b6CUlJaGwsBA1a9Ysdb/cPnjwYLnPkbLOWbNmoXfv3mqf3urVq7F48WL1OhWZMWMGXn75ZbOvn4g0lHREn8E7+Lv+tocv0ONR/eEVoPXqiK6I5yYiInL4ZiymePfdd9GkSRO1P8/T0xPjx4/H2LFjVSawIpIxlFSs4YiNjbXqmonIzEPI/3gKmNtVH+TJIPKrxgCP/QP0e55BHtkNnpuIiMhhM3phYWFwc3NDQkJCqfvldmRkZLnPCQ8Px5IlS5CTk4Pz58+rPXuyl69hw4pLqby8vNRBRHYsLxPY8gGwaTaQl6G/r+l1wICXgYjmWq+OyGQ8NxERkcNm9CQj17FjR1V+aSDNWOR29+7dL/tc2adXu3ZtFBQU4KeffsLQoUOtsGIi0sT+JcD7HYG1r+qDvFodgDG/6weRM8gjIiIisr3xCjJaYcyYMejUqRO6dOmixitkZmaqckwxevRoFdDJXgbx999/48yZM2jfvr26fOmll1RwOHHiRC2/DSKylP9+AX64Rz8uIbgu0H8q0GqEdG7SemVERERENk3TQG/UqFE4d+4cpkyZgvj4eBXAyQB0Q4OWmJiYUvvvpGRTZukdP34c/v7+uOGGG/Dll18iODhYw++CiCzixHrgp/v1QV6Hu4AbZwHuLHUjIiIisvk5elpw5FkZRA4jbjfw2Y1AXjrQfDBw6xccRO4g+Du4fPy5EBFpI82Bf/+y/omIbMv5Y8BXN+uDvHpXAzd/yiCPiIiIyEQM9IjIdqQnAF+NADLPATXbALd/A3h4a70qIiIiIrvDQI+IbENOqj6Td+EkEFIfuOsnwDtI61URERER2SUGekSkvfwc4Ns7gIS9gF84cPfPQIC+KRMRERERmY6BHhFpq6gQWHw/cGoj4Bmgz+SFNtR6VURERER2jYEeEWlHmv7+MQE48Bvg5qnfkxfVTutVEREREdk9BnpEpJ21rwE7P5dJL8CI+UCD3lqviIiIiMghMNAjIm38/RGwfqb++o1vA62Gab0iIiIiIofBQI+IrG/vj8CyZ/XX+z4PdL5P6xURERERORQGekRk3T15G98BfrpfbgCdHwD6TNR6VUREREQOx13rBRCRE41Q+O0xYM8i/e2OY4Hr3wBcXLReGREREZHDYaBHRJaXHg98dwdwZifg4qYP8DrfzyCPiIiIyEIY6BGRZZ3ZpQ/y0uMA72Dg1oVAw75ar4qIiIjIoTHQIyLLNl35ZRxQkAOENQPu+I7D0ImIiIisgIEeEZlfURGw9lVgw9v6200GATd/AngHar0yIiIiIqfAQI+IzCs3HVj8IHBoqf52z8eB/lMBVzetV0ZERETkNBjoEZH5XDgJfHs7kPgf4OYFDHkfaDdK61UREREROR0GekRkHsf/An64B8hOBvwjgdu+Bup00npVRERERE6JgR4RVc/5Y8Cql4ADv+pv1+oA3PYNEFhL65UREREROS0GekRUNZlJwF9vADsWAEUFgIsrcNUY4LoZgIeP1qsjIiIicmoM9Mh+6XTAib/0ZYLhzTh821rysoCtHwAbZwN56fr7mgwEBrwM1Gyp9eqIiIiICICr1guYO3cu6tevD29vb3Tt2hXbtm277ONnz56NZs2awcfHB9HR0XjyySeRk5NjtfWSDdk4C/hiKPBBV2BWS2DJOGDfT0Dmea1X5piKCoF/vgLe7wiseUUf5EW1A0b/Ctz5A4M8IiIiIhuiaUZv0aJFmDBhAubNm6eCPAniBg0ahEOHDiEiIuKSx3/zzTd47rnnsGDBAvTo0QOHDx/GPffcAxcXF8yaNUuT74E0ErsNWPOa/rqbJ5B+Fvj3K/0BF6BWe6DRNUCj/kCdzoC7p9Yrtu/M6dHVwMopQOJ+/X1BdYH+U4DWNwOumn9eRERERERluOh08lecNiS469y5M+bMmaNuFxUVqSzdo48+qgK6ssaPH48DBw5g9erVxvueeuop/P3339i4cWOl3jMtLQ1BQUFITU1FYCCHN9ul7BRgXi8gNQZoc4u+hf+pzcCxNcCxtReDEQNPf6B+L6Bxf33wF9qQZZ6VlfAfsPw5fYms8A4Cej8DdH4A8PDWenVkh/g7uHz8uRARaSPNgX//apbRy8vLw86dOzFp0iTjfa6urhgwYAC2bNlS7nMki/fVV1+p8s4uXbrg+PHjWLp0Ke6+++4K3yc3N1cdJf8xyY7J5xK/Pa4P8kLqAzfO0jf+kCBODpEWBxxfezHwy0oCDi/THyK4bnG27xqgQR/AJ1jTb8lm5WcDC2/S//wka9rlQaDXU4BvqNYrI7J7PDcREZHDBnpJSUkoLCxEzZo1S90vtw8ePFjuc+644w71vKuvvhqSiCwoKMBDDz2E559/vsL3mTFjBl5++WWzr580susL4L8lgKs7cPMCwLucT14Co4D2d+iPoiIgYa8+6JPyw5itQEoMsPNz/SGdImt3uhj41e4IuLFHkXJykz7Ik2Y3963QB9ZEZBY8NxERkaXZ1eaadevWYfr06fjggw+wa9cuLF68GH/88QdeeeWVCp8jGUNJxRqO2NhYq66ZzOjcIWDZs/rr17wI1Ol45efI/jFpGHL1k8A9vwPPnQLu+AHo+jAQ1hTQFQGntwF/vQ4sGAi82RD47k79yICsZDi1Y8Ul0k0HMsgjMjOem4iIyNI0S12EhYXBzc0NCQkJpe6X25GRkeU+58UXX1Rlmvfff7+63aZNG2RmZuLBBx/E5MmTVelnWV5eXuogO5efA/x4L1CQDTTsB/R4rGqv4+mnD1zkECmx+jJPyfYdXwfkpAAHf9cff72pH/xd+yo4paOr9JeNB2i9EiKHw3MTERE5bEbP09MTHTt2LNVYRZqxyO3u3buX+5ysrKxLgjkJFoWGPWXIGla+CCTsA/zCgeEfma/TY3A0cNVo4NaFwMTjwP1rgH4v6Bu2pMcBn10P7P0RTufCKSDpMODipt/HSERERER2RdPNSDJaYcyYMejUqZNqriLjFSRDN3bsWPX10aNHo3bt2movg7jpppvUGIUOHTqojp1Hjx5VWT653xDwkQM6+Aew7WP99WHzgIDS+zrNxtVNXw4qR9f/AT/dDxxZAfx0H5D4nz4AdJZRAoayzegubFZDREREZIc0DfRGjRqFc+fOYcqUKYiPj0f79u2xfPlyY4OWmJiYUhm8F154Qc3Mk8szZ84gPDxcBXmvvVY8T40cT+oZ4Jdx+uvdxwNNrFRGKE1ebv8WWP0ysOldYMPbQOIBYMTHgFcAHJ6UsgpDJ1MiIiIisiuaztHTgiPPynA4RYX69v6nNgG1OgD3/qnN4PPdi4BfHwUKc4GIlvoA0JGbkxTmA280APLSgQfWOu8eRbII/g4uH38uRETaSHPg379OUodGdmn9W/ogTwae3/ypNkGeaDcKGLtUP2ZASjg/7gec2ACHFbtNH+T51gCi2mu9GiIiIiKqAgZ6ZJtObdGPPBAyFL1GI23XU6cT8OBafWYxOxn4chiw/VM4dLfNRv2dZ08iERERkYPhX3Fke2R+nTRCkRl37W7XZ9RsQWAtYOwyoPVIoKgA+GMC8MdT+lJHR2zEwrEKRERERHaLgR7ZFtky+ttjQNpp/YiDG2bCpnj4ADd/AvSfIltcge2fAF8Od5zh6hmJQNxu/fVG12i9GiIiIiKqIgZ6ZDvi9+qDpgO/Aa4ewMgFttnh0sUF6PWUfpi67B88uQH4YQwcwrE1+suodoB/uNarISIiIqIqYqBH2ks9Dfz8EDCvF3B8rT7Iu/Et/X44W9b8BuDe5frrJ9YDaXFwmP15LNskIiIiK6pfv76aqe2IXnrpJTVGztoY6JF2clKBlVOB964Cdn8rdZtA65uB8duBjvfALkS2AWp30l8/XBz02auioosZPQZ6RERETqewsBDr1q3Dt99+qy7ltiNYt26dmsWdkpKiyfs//fTTWL26uAeCswxMJydVkAfs+BT46019B0tRrydw7StAnY6wO82uB87sAA4tAzqNhd2K+xfIOg94BgB1Omu9GiIiIrKixYsX46mnnsLJkydLZdnefvttjBgxwmLvm5eXB09PjUZoWYm/v786rI0ZPbJuo5V9i4G5nYHlz+mDvLBmwO3fAff8YZ9Bnmh2g/7y+DogLxN262jxJ00N+wBuHlqvhoiIiKwY5I0cORJt2rTBli1bkJ6eri7lttwvXxdFRUWYMWMGGjRoAB8fH7Rr1w4//vij8XUkA3jfffcZv96sWTO8++67pd7rnnvuwbBhw/Daa6+hVq1a6jFl3XvvvRg8eHCp+/Lz8xEREYFPPy1/vNWpU6dw0003ISQkBH5+fmjVqhWWLl2qAtd+/fqpx8jXJLMnaxC5ubmYOHGiui6vffXVV2P79u2XZAL/+OMPtG3bFt7e3ujWrRv27dtnfMznn3+O4OBgLFmyBE2aNFGPGTRoEGJjYyss3TT8DN566y1ERUWhRo0aGDdunPoeDeLi4nDjjTeqn6P8PL/55huTy1uZ0SPrOLUZ+PMF4MxO/W3/mkDfSUCHuwE3O//PMKIFEFwXSInRB3vNb7T+GvJz9E1i3L2q/hrcn0dEROR0JDiTTJ4EVhKsuBQVIf/sWVxVqxa+f+89jMzOxlNPPIHrO3TAzA8+wDc//4z3p01D4wYNsPHvv3HXXXchPDwcffr0UYFgnTp18MMPP6jgZfPmzXjwwQdVMHPrrbca31PKGAMDA7Fy5cpy13TfvfeiT9++KtiR54rff/8dWVlZGDWq/LFbEihJdnD9+vUq0Pvvv/9UFi06Oho//fQTbr75Zhw6dEi9rwRPQoK8X3/9VV2X533wwQcqSDt69ChCQ0ONr/3MM8+ogDUyMhLPP/+8CigPHz4MDw/9B+OyLglcv/jiC5WdfOSRR3Dbbbdh06ZNFf7c165dq743uZT3k+9LgsEHHnhAfX306NFISkpSwaa8z4QJE5CYmGjSv62d/4VNNu/cYWDVS8ChP/S3PfyAno8B3ccDXtZPYVuEBFiS1ft7HnBoqfUDPRnt8GEPwCdUP9S9KsFedgpwuvgTrMb9zb5EIiIisk0bNmxQWS/Zl5d3+DBOj38U+adPG79+Z3Y27oiNxde9e+P1M2fwaXRdNHptunRWQE8AN/n7Y85LL6HP2rUqIHn55ZeNz5VMlGQGv//++1KBngRin3zySbklm/lnziBq1izUd3fHx08/jalff63u/+yzz3DLLbdUWAIZExOjgjnJQoqGDRsav2YI2iRrJ9k3kZmZiQ8//FAd999/P5o3b4758+er4FOyhhLcGUydOhXXXnutur5w4UIVzP7888/G70kycXPmzEHXrl2Nj2nRogW2bduGLl26lLteyS7Kc9zc3NR7S/ZOAmAJ9A4ePIhVq1ap7GKnTvpeEPLzkoyhKRjokWWkJwB/vQ7sXAjoCgEXN+Cq0fosXkBNOBzZpyeB3uEV+qYmrlasit7+KZAepz/k5931QdNf48Rf+n8nKaWV7CQRERE5BcmaiboJCTj58CPQZWfDxcMDLsVBWFNvbyDmFA4V6ZCt0+H+0xdLEkVeURFabN2Kc+/PQdi4R/DBhx9iwYIFKvDKzs5WWbayHSclGCsvyMuLjcWJW25FYXIyRgYG4Ysff8T/WrQExt6DZcuWYc2a4qZx5Xjsscfw8MMP488//8SAAQNU0CfllhU5duyYCtAMwZmQQFUCswMHDpR6bPfu3UsFjVJuWvIx7u7u6Nz5Yn8DCdwkoJTHVBToSWmpBHkGkt3bu3evui6ZR3nNq666yvj1xo0bq+DQFNyjR+aVmwGsex14rwOwY4E+eJBs1yNbgJtmO2aQJ+r2ALwCgcxzF8tTrVWyue2ji7c3vAXkZVWjbJPZPCIiImci5Yhi/WOPqyDPr0cPNNm4Ac127lBH3ocfqK83mPy8uly6Zg12Hzqkjn/378eGp57C7Fq1kTR3Lj644UbVYVL26UnA9e+//2Ls2LEq2CtJMnplFWVl4cI336ogz6tFC9zz6KOIzc/H2vnzMWf4cDSoVw+9evWq8PuQrNzx48dx9913q4CpU6dOeP/992GrDGWfBrIXUEpfzYmBHplHYQGw83Pg/auAdTOA/EygdkfgnqXA7d8C4ZdutHUo7p4X97ZJ+aa17PlOH1wG1gGC6wEZCcC2j01vkmNoxMJAj4iIyGlIcNXw5yWo7eGBj8+fR9BddyL644/gFhR0SfOVO+64A15eXipTJ9klOZo0b45ub72Fq958QyIXbP57Kzr4B+CBYcPQoUMH9RjJnF2OrqAA8dOno/DCBdkwiIDrrkP9r79C8xdfwODevfFzZga+370HQ1xckHuF15L9eA899JCxg+j8+fPV/YbsYclxEY0aNVL3//3338b7JMMn5ZItW7Ys9bpbt241Xr9w4YLanyelmQYFBQXYsWOH8bZk5GSUQ8nHmEIyhvKa//zzj/E+2ccn723RQE+6vUybNk39IxOpIOHQcmBeT+C3x/WBRkh9YORnwP2rgfpSve0kDN03ZcyCNcinPpvn6K93e1hfFis2zdbPKKyscweBtDOAu7d+zAURERE5PGm4cvKuu5D155+YGBmFdVmZeGjbNmzdvt3YdVM6Q0oTFOkOKaWIkq178skn1R40CeB27dqlsma/ZGSg3sLP0SAkBHuTz+OLAQOwe/FivPjii6W6WJZVmJqK2Af/hwtffKlu+/XuhdrvzIKrr6+6/fDkyfglLQ3H8/Nwk06Hk6NuQ8Zff5X7Wk888QRWrFiBEydOqHWtXbvWGGjVq1dPZczkezl37hwyMjJUVlFKPWWNQvbFyf44aawiGcmSJPaR/XPSbVM6ZoaFhamfTcns3KOPPqqCxp07d6rHSHfOiso2r0RKP6X8VBrZyD4/CfjkujSRke/DYoGe/BAlSpYNjrIp8bvvvlOtScmGSXmfJZzZBXw+GPh2lD5Y8AkBrnsdGLcNaD1C36TEmTQZoN+LeO4AkHzC8u8nA9rPHwG8goCOY4C2t+r32GVfALbMrfzrGLJ59a8GPPRdqIiIiMhxZe36R+2Fy/3vANxCQ3H/z4vVmAQpeezRo4fqTCmXEtjI/YY5eq+88ooKjCTLJ0HUddddp0YPSMbP96qr8Nzq1RhUpw6ePHQIvW+5BWe3bVMdKMuTe/w4Tt46CpmbN8PFxwfuoTXgf/XVpQIZCXaiatXCwAEDUK9bNxRlZCD2oYdx/tMF0EmyoQTJ1knnTcO6mjZtqrpoitq1a6smMc899xxq1qyJ8ePHq/tff/11DBkyRF3v3bu3yppJsFh2L5w87vHHH0fHjh0RHx+P3377rdQeQ19fXzz77LMq69mzZ0/VMGbRokXV+jeSDp6yVlnX8OHDVRAaEBCgxjdUlouu7E+pkiRSlrkR0qFHfrDyjcnMi5KbBm1RWloagoKCkJqaqv4jdvjB5Muf1e+VC28ONLpGf0jWxlP/SYlJZO+XjEk4tgY4tlof3Ak3L31G6eonAR99JyOnJYHvyQ36gFd+Jpa04DogZgvQ8wng2uIOV/uXAD+MATz9gcf3AH41rvw6XwwDjq8FBs0Aupf/y5jIXJzqd7AJ+HMhImtJWfwz4qdOhS4/H17NmyN67hx41K6tviZ/00sXTsNYA9kTV7JhSGXLQc9Oeh7pK1ao2yGj70bNiRPh4n6xB2TGhg04M+EpFKWnw71WFKLnzoV3OWWOknmTIE06bg4fPBjxr7yKlB9+UF8LGjoUkdNehquXl8V+/65bt07N4JOSSUO3zrIkHpJEmJRqWtLp06dVaap04+zfv79lu25KQCfH22+/raJliWKlPal00ZGuN7Lx0pTUIplZZhLw/WjgVPH8DgnK5Nj6AeDmCdTtfjHwq9m6/C6R8hlAwj59xkeCOwkqCktspnVxBdrcClzzAhAcbb3vzda7b0qgJ/v0LBnoxW7X/3u4egBdH7p4f4shQGRbIH4PsOkdYOCrl38dGfBu+G+E8/OIiIgcluyFS5z5FpIXLlS3A669FrVenwHXEo1RJKjr27dvtd5Hyi6l/DLpgw+RNGeOKsvMO3pMX5IZGIjkzxciceZMtQXF56qrUOf99+Beo/QH07I3UGbISZwhAZZk3SRQlMDOq2lTJLz+OlJ/+QV5J0+i9vvvwSMiAo5mzZo1KtCV2EoCb5n5J1voJMNXWVUO9GSzosyPkAhb5k1IHarUs0q0KYMEJdqUCe6kgfh9wHe36wd4ewYAQ6XjkIs+C3d0DZB2Wt9OX45VUwG/CKBRP33QV+sq4Oyu4qzdWiCzzGBGafrRuDhAbNAH8L04TJKKA70Vz+sznzKbzlIZzs3v6S+lXDNQP0hUkYC9/xTg65HAtvlAt3Glv17WyU364D2oLhBm2mwWIiIisg+FaWkqg5a5caO6HTZunBqF4GKhcVDyuuHjx8GrSROcfe45VZ4pZZrerVsj7Q/9bOWgm0cgcupUuJYzZkF6gUg5qMyrk4yZjBpQr+vigtC774JXo4Y4/eQEZO/ejZO33Io6c+bAp01rOJL8/HwVU0knUSnZlFLar7/++pJunWYt3ZSSTQnupGTT1dVVTW03DBk0kHpemSUhszNsjcOXxxz4HVj8oL7rZUgD4PbvgIjmpbN054/qAznJ1En2Kf8y7fg9fIH6vfSBnXRkrNHY+fbemWpuV3329OZPgTYjzf/6yceB96REWgc8shWIKFPqIP/GUtYZuxXodB8weFbFr7XsWf38v45j9eMviCzM4X8HVxF/LkT2Iz8hEaduvx2e9esjev7HcDGxtNHaivLyVJCVe/AgXLy9VRYv8LrrrPb+OQcOIHbcOBScjTN+KF3zuWcRcvfd1ar+k2xe7CPjkHf8OFy8vFBr5psIHDjQ5NdJc+DfvyZn9CSAkyYsUqYp3WbKiyolAr/tttvMtUaqDPnjfv1bwNriUr0GvYFbFl6acZP/Q0nmRo6u/wMKcoHYbcUZvDX6kr/INsVlnf2B6C6Ae/Vqn51O0+v0gZ5037REoKcareiAxtdeGuQZ/o37vwh8fiOwayHQ8zF9J9TycH4eERGRSRLfeEN1rJRD9ouF2PjfvMkLFqggT5qu1P1kPrzLjA6wNNl71+CHH3Dm6aeRe/Qoas14Hf5XV7/LtwTa9Rd9p143a/MWuIeHm2W9jsTkjN6pU6dUi1Jzmjt3LmbOnKm62LRr1061aa2oHanUDf9VTlvVG264QXX9ccqoXZqk/DIO2L9Yf7vLg8Cg6YBb5VO7ZEYxfwMLBuq7YU48Zt5/h8zzwDutgIJsYMxv+oD+Sk1W2t0BDP/w0q9LZ9D32gOu7sDE44C3fmYOkSU55O9gM+DPhcg+ZG7Zgpix9xpvuwYFodGypXAPtc2tLHmnz+D44MHQ5eSg1syZCLppsKbrkbDD3D08dIWFyPnvP/i0aVOl56c58O9fkwtzExMTSw0WNJD7Sg4KrCxpPTphwgRMnTpVlYVKoDdo0CD1PuWR0Q6yIdFwSJmobBy95ZZb4JRSzwCfXa8P8uQP9sGzgRtmMsjTUp1OgG8YkJuq36tnTts/0Qd5Ue31JbWXI1k9w1D1c4cu/brs2RTRXRnkERERXYEuLw/x015R14NvGwWvFi1QlJqKxLfehq1KmD5dBXm+XbsicPCNWi/HIo0apXS2qkGeozM50JP5FLGxsZfcf+bMGfU1U82aNUvNhZAunTKFft68eWoWxYIFC8p9fGhoKCIjI42HNIKRxztloCedFz/uC8T9C/iEAqN/ATqN1XpV5OqmL980zLozl/xsYNvH+us9Hr3yXsnaHYHmgwFdEbD2tUu/Lo15BMs2iYiIruj8Z58j78QJuIWFIWLCBERO0X+gmrp4MbJ27YKtSV+zFhlr1gDSrfLFF9gN3wmZHOj9999/5c7K69Chg/qaKfLy8tT0eBmGaFyQq6u6vWXLlkq9xqeffqr2A8p0+/LIMHdJyZY8HMK/3wKf36DvihnRCnhwrX7gNdmGZsWB3sE/9PsnzeHfb4CsJCC4LtByWOWe02+yvuPqf78AcbtLz1iUrquCYxWIrM5hz01EDir/zBkkfajfBlFz4jNwCwyEb4cOCL5Fvxc//qWX1fgCW1GUnY2E1/Qf8tYYew+8GjfWeklkD4Gel5cXEhISLrlfyigNrU8rS+ZjyGBGmfpektyW/XpXsm3bNlW6KV0/KzJjxgxVd2s4ZNCg3ZPyvSUP6dviN7sRuG9Fxc02SBsN++kHyaecujhYvjqKCoubsEA/MsGtkv9fq9nyYkOYNSVm6sX+DeRlAH7hQE2WOxBZm0Oem4gcWPz0GfoSyM6dEXjTTcb7wydMgFtQEHIPH0byV1/BViR99JEKTt2johD2sAXn+pJjBXoDBw7EpEmT1IZFA5kEL3MepBunNUk2T4YIVtS4RRjWajjKKzu1KzKbbbW+Phw9HgNGfQV4BWi9KirLyx9o2Ed/XYanV5e8RvIxwDsY6HCXac/tO0kK2IEjfwIxW0t325TOqhaaoUNEcJ5zE5EDS1+7FhmrV+tLIKe8WKoE0j0kBOFPP6WuJ733PvLLSYZYW+7xE0j+VL8Fqubzk9QAc3JOJv+F99Zbb6kTknTe7NevnzpknIJk4GR6vSnCwsJUI5WyGUK5LfvvLiczMxPfffedGtJ+pQykdNApedi1LXOAnBQgvDkw4CX+kW7LDPv0Dplhn97m94vnm9ynDyJNUaPRxeBQPiSQUlJDIxaWbRJpwuHOTUQOqignBwmvTVfXQ8eMVgPAywq++Wb4tGuHoqwsNXpB666WCa++Al1+Pvx690JAie1R5HxMjhJq166NPXv24M0331TNUzp27Ih3330Xe/fuNbn0xNPTUz1/tXxKUqyoqEjd7t69+2Wf+8MPP6g9DnfdZWJ2w55lJgFbP7y490qafpDtB3qntwMZ5XeRrfS4Bim1dPPUj86oij4T9c8/tRHYswiI36vfu9eoX9XXRUREZMOkQcqxGwfjzMSJKMrMrNJrnP/4Y+SfPg33yEiEP/JIuY9xcXVF5NQp6sP3tKXLkLnZzB23TZC+fDkyN2+Bi6cnIl9gAxZnZ/LAdCGNTx58sIp/cJYhoxXGjBmDTp06qRLM2bNnq2yddOEUo0ePVsGl7GcoW7YpA9tr1KgBp7HxHf2+Kmmt3+JifTjZqKDa+n8r6Yp6eAVw1d1Ve53N7+kv244CAiKruJY6QKf7gL8/BH57XH9frfaAX1jVXo+IiMiGpfz0E+JeehnIz0fesWPIPXQY0R/MhUft2pV+jbyTJ3F+/ifqes1Jk+BaQeM/IUPIQ+64Axe++kqNYGjw6y9w9fSENRVmZCJhxuvqeo0HH4Rn3bpWfX9ykEBPSIfNmJgY1TmzpCFDhpj0OqNGjcK5c+cwZcoUVf7Zvn17LF++3NigRd5DOnGWdOjQIWzcuBF//vknnGpe3rb5+uvXvHjl1vpkG5rdUBzoLa9aoJd0VN+50zBSoTp6TQB2fQHkF3+qybJNIiJyMNL5MnHmTCQv/ELd9uvTGzn7/0PuoUM4ccutqPP+e/Dt2PHKr6PTIf6VV/UlkL16IWDglftQhD/+GNKWL1cBYvKCzxD20P9gTUlz5qAgMREedeuixgMVNyok52FyoHf8+HEMHz5clWpKOlj+jyAMqWHpommq8ePHq6M869atu+S+Zs2aGd/XaayfCRTmAnW7c+6ZPZExC+umA8fW6OfgefiYvicTOn0ZaHiz6q3FPwLo9hCwoXgvLQM9IiJyIIWpqTgz4SlkbtqkboeNH4+wRx5GQUICYseNQ+5/B3DqnrGqoUrIFeYvp69YoV5HXwI5uVIlkG4BAaj57EScfWYikubNQ+DgwfCsU/kMYnXkHDqM5C+/VNdlZp6rl5dV3pccbI/e448/rpqvJCYmqkHl+/fvx/r161XpZXlBGZlB8gngH/3/edF/CrN59iSyLRBYG8jPAk6sN+25GeeA3d9e7LBqDpIVDIoGajQGancyz2sSERHZQKfJk6Nu0wdnPj6oPXs2wsePU/vnPKKiUP+rrxBw3XWqlDP+xSmIf216hXPvSpVA3n8/POvVq/Q6JLjz7dJFjWJImK5v4mJpKvs4bZpkWxAwcCD8e/WyyvuSAwZ6Msh82rRpqmOmlFTKcfXVV6s9dI89ZqY/Rqm0da8DRQX6Vvj1emi9GjKFBOXNrq/amIXt84GCHKB2R/P9u/uEAOO2AQ9vrvwsPiIiIhuWsWEjTo4apUomZW5c/W++RuB1g0o9RkYM1H5nFsIe02+DuPDll4h98H8qC1hW0gcfqCygR3Q0ajz4gElrkcyfZAxlFEPGmjVIX7MWlpa65Bdk79wJF19f1Jz0nMXfjxw40JPSzIAA/dw2CfbOnj2rrsu4Bdk7R2aWeEDfJVFc84LWq6GqMAR60pClqOjKj5ey5COrgL8/upiFM2cW19MXcGdJBxER2TfJZJ3/7HPE/u9/KEpPh0+HDmjww/fwbtGiwiBMOmfWfu9dlfWT7pgnbr0VucePGx+TI4PPFy5U16Vk09Xb2+R1eTVujBr3jFHXE157DUXZ2bAUCVRlT6IIf+Rhlb0kqnKg17p1a+zevVtd79q1qxqzsGnTJpXla9iwoakvR1ey9jX9Hq3mg4HaV2m9GqqK+r0AT38gPU7fmOVy4nYDXwwFvr5ZPy8xoiXQwrQGR0RERI6uKC8Pcc9P1s+tKypC0M0jUHfh53APu3I36cCBA1H/22/gUasW8k/F4OSto5Cxfn3pEshrB8C/T58qry/s4YdVdjH/zBkkffwxLCVx9mwUJifDs3EjhI4ebbH3IScJ9F544QU1605IcHfixAn06tULS5cuxXvvFbeBJ/M4+w9w4Df9vDNm8+yXZM8aXaO/fmhZ+Y9JiQEWPwh81Bs48Zd+5l338cA9f3BeIhERUQkFSUmIGXMPUn/+Wc2uk3LFqFdfNWmcgXfz5qj/w/fw6dQRRRkZiH3oYZx57HFk79ipsn0yTqE6ZBSDoYwy+ZNPkXviBMwte+9epHynr/qKfHGKahxDVJLJm3QGDbpY89y4cWMcPHgQycnJCAkJ4VBGc1vzqv6y7a1ARPllCGRHYxYO/KoP9K6ZfPH+7BR9F0wp05SuqqLNLfrAPqS+ZsslIiKy1SBPxiQUxMXBNSAAtWfNgn+vq6v0Wu41aqDeggWIf+UVpPzwI9JXrlT3S6dOyfZVV8C118Kvdy9krt+Ak7fdDrfAQJhTYUqK2u4ROOQm+HXtYtbXJicM9PLz8+Hj44N///1XlXAahIaGWmJtzu3UZuDoKsDVHejLjbV2r8lAwMUVSNgLpMTqRx1s/0Q/NiP7wsUSz2unsUSXiIioAhe++UYFedIoJfqjj+DVsEG1Xk+NT5g2DV5NmyHh9dfh1awpaozR76+rLtWY5YUXcHzYcBSlpqrD3NyCg1HzmWfM/rrkhIGeh4cH6tatW6VZeWQCacax+hX99Q53A6Hc+2j3/GoA0V2BmC3AqqnA6R1Ayin918Kb6wM8FQwyK05ERFQeGV4umTcRMeHJagd5JQOy0LvvQuDgG+Hq42PWEkjPunXRaNkyFMTpmxeamwS8kpkkMkvp5uTJk/H888/jyy+/ZCbPUo6tBmKk/b0X0Juf0jhU900J9Pb9pL/tHwn0ex5ofydHHRAREV1B+rp1KDh3Dm41aiCgf3+zv757SAgswaNmhDqIrM3kvy7nzJmDo0ePolatWmqkgp+fX6mv79q1y5zrc+5sXuf7gaDaWq+IzKXlUGDdG/qsXc/Hge7jAM/S//8hIiKi8hkajwSPGMHGI0SWCPSGDRtm6lPIFNJlU1rwe/gBVz+p9WrInKS5yqM7AQ8fwCdY69UQERHZjbzYWGRu2qQ+LA2+9Ratl0PkmIHe1KlTLbMSAooKi+fmAej+COAfrvWKyNwCOciUiIjIVCnff68u/Xr2hGd0tNbLIXLMOXpkQXt/BM4dBLyD9DPUiIiIiJycLi8PKT8tVtdDbhul9XKIHDej5+rqetl5eezIWUWF+cC66frrsn+LpX1ERERESF+1CoXJyXCPiIB/375aL4fIcQO9n3/++ZLZev/88w8WLlyIl19+2Zxrcy5bPwAunAT8woGuD2m9GiIiIrJTuceOIfGddxD28MPwadVKs8Hm8S9PQ9DNIxBQzeDsgqEJy8iRcHFnl2qiyjL5/y1Dhw695L6RI0eiVatWWLRoEe677z5TX9K5yb48mau2+X397d4T2YmRiIiIquzC198gY9VquAUFwee14r3/VnZ+/idIX7kSmVu3otGypXAPC6vS6+QeP46sbdukpAzBt4w0+zqJHJnZ9uh169YNq1evNtfLOYecVODb20oEec/oRyoQERERVVH2/n3qMj8mVpP3L8rJQcqSJfrr6elInPlWlV8rZZG+CYuUbHpEsaEZkdUDvezsbLz33nuoXZsz3yrt/DHgk2uBI38C7t7AyAXANS+oT6yIiIiIqkKXn4/cAweNIwm0kLZ8OYpSU+EWHKzGIaT+8guytm+vVsAYMupWC6yUyLGZXLoZEhJSqhmLTqdDeno6fH198dVXX5l7fY7p+Drg+zFATgoQUAu4/RugVgetV0VERER2LvfoUdWlUhQkJKAoNxeuXl5WXYMhCxd6zz3Ij4tDyqJFiJ82DQ0WL4aLh4fJAaNHrVrwu/pqC66YyDGZHOi98847pQI96cIZHh6Orl27qiCQLkOnA7Z9DCyfBOgKgdqdgNu+BgIitV4ZEREROYDsffqyTUWnQ/6ZM/Bq2NBq759z6BCy//kHcHdH8M0jVGCX/uefyD1yFMlffIka991rcsAYfOutcHFzs+CqiRyTyXWC99xzD8aMGWM87r77blx33XVVDvLmzp2L+vXrw9vbWwWL22TD7WWkpKRg3LhxiIqKgpeXF5o2bYqlS5fC5hXkAb89DiybqA/y2t0O3PMHgzwiIiIym5z9+0vdzrdy+aZk70RA//5wDw9X5ZsRTz+t7js3dy7y4+OrFDASkRUCvc8++ww//PDDJffLfTJiwRTSpXPChAmYOnUqdu3ahXbt2mHQoEFITEws9/F5eXm49tprcfLkSfz44484dOgQ5s+fb/t7AzOTgC+GArvk5+MCXPsKMOxDwMNb65URERGRA8nZpw/0XIrLNfOs2JClKDMTqb/8eslg86Dhw+DToQN0WVlImPF6lQJGIrJCoDdjxgyEldMiNyIiAtOnFw/8rqRZs2bhgQcewNixY9GyZUvMmzdP7fVbsGBBuY+X+5OTk7FkyRL07NlTZQL79OmjAkSbFb8P+LgfELMZ8AoE7vge6PmY2pxMREREZC5FeXkqEyb8+/RRl/mnrRfopS5dqoI9j3p14du1q/F+F1dXRL40FXBzQ/qKFcjYsLFKASMRWTjQi4mJQYMGDS65v169euprlSXZuZ07d2LAgAEXF+Pqqm5v2bKl3Of8+uuv6N69uyrdrFmzJlq3bq2Cy8LCwgrfJzc3F2lpaaUOqzm6Cvh0IJAaA4Q2BO5fBTQdaL33JyIim6TpuYkcVu7hI0B+PlyDguDXvZvVM3opxYPNQ24dpYK7krybNUPoXXeq6/GvvqKaxJgaMBKRhQM9ydzt2bPnkvt3796NGjVqVPp1kpKSVIAmAVtJcju+gvrt48ePq5JNeZ7sy3vxxRfx9ttv49VXX71sBjIoKMh4REdHwyqyLwCL/wfkZwIN+wL3rwbCm1nnvYmIyKZpdm4ih5ZT3IjFp1UreETXVdfzYiv/IXx1ZO/dp/YHSvOVoBHDy31M2KOPqjLM/FMxOP/pp1UKGImo8kz+f8/tt9+Oxx57DGvXrlUBlxxr1qzB448/jttuuw2WVFRUpALNjz/+GB07dsSoUaMwefJkVfJZkUmTJiE1NdV4xFprU/KaV4GsJCCsKXDHD4BvqHXel4iIbJ5m5yZyikYs3q1bwzO6jrqeH3tajcKytJTvi/fUDRoE9woa9Ln5+yPiuWfV9fMffVzunL/KBIxEZKHxCq+88opqhtJfNse6uxsDsNGjR5u0R0/2+bm5uSEhIaHU/XI7MrL8TpTSadPDw0M9z6BFixYqAyiloJ6enpc8RzpzymFVZ3YB24s/qbrxbcD90nUREZHz0uTcRA4ve78+o+fdupWaPQdXV+hyc1GQeA4eNSMs9r6F6elI/f2PSu2pC7zhBqT8+COytmxFwquvoc68D0uN7apMwEhEFsroSTAl3TKl4+XXX3+NxYsX49ixY6pRSnmB1uVeR7Jyq1evNt4nAaPcln145ZEGLEePHlWPMzh8+LAKAE15b4sqKgT+eEqG1wBtbgEa9NZ6RUREROTgZM+b2qMnpZutW6uMmEdUlFUasqT+9ht02dnwbNwIPh07XvaxEtRFvjgF8PBAxl9/IWPNmioFjER0ZVUufG7SpAluueUWDB48WDViqQoZrSDjEWQsw4EDB/Dwww8jMzNTdeEUkiWU8hYD+bp03ZQyUQnw/vjjD5VFlOYsNmPn58DZXfoOmwMr3jtIREREZC650m2zoABuoaFwLw7wPOpGW7whi5SFltpTV4mu4l4NG6BG8d968a+9hqKsLJMDRiKyQKB3880344033rjk/jfffFMFfqaQPXZvvfUWpkyZgvbt2+Pff//F8uXLjQ1apItnXFyc8fGyWX3FihXYvn072rZtq/YKStD33HPPwSZknANWT9Nf7zeZw9CJiIjIKrKLG7F4t2plDLY8ixuyWHJoevY//yL38GG4eHsjaOiQSj8v7OGHVHlpwdk4JM37qEoBIxGZeY/e+vXr8dJLL11y//XXX686YJpq/Pjx6ijPunXrLrlPyjq3bt0Km7RqKpCTAkS2ATrfr/VqiIiIyMkGpcv+PAOP4oYs5TU9MRfDYHPZe+cWFFTp57n6+KDm5Odxetx4nP/sM3jWq1ulgJGIzJjRy8jIKHc/nDRJceo5QKe2AP9+rb9+4yzAzeQYmoiIiKhaHTdlf56BpTN6hSkpSFu2TF0PGXWryc/3v+Ya+Pftq2b/xb3wYpUCRiIyY6DXpk0b1YylrO+++w4tW7aEUyosKG7AAqDD3UB0F61XRERERE6iKDsbuUePGkcrWCujl7JkCXR5efBq0QLebdua/Hwpz6z5wmS4SAfa4hEQVQkYiah8JqedZEj5iBEjVKfNa665Rt0nnTK/+eYbNczcKW37CEjcD/iEAANe1no1RERE5ERyDh4ECgvhFh4G94iLYxQ86+ozeoXnz6MoMxOufn5me0+1p27R9+p6yKiq76nzrFMHYQ/9D+fefQ9eLasWMBKRmQK9m266CUuWLFHdLiWw8/HxQbt27dTQ9NBQJxwKnnYWWFs8P3DAS4BfDa1XRERERE64P8+nVetSAZdbQIAqgyxMTUXe6dPwbtbMbO+ZtW078k6cgKuvLwIHD67Wa9V48EG4R0bBt1NHNmEh0nq8wo033ohNmzapUQjHjx/HrbfeiqeffloFfE5nxWQgLwOo3QnoMFrr1RAREZGTySnRcbMsj+KsXl5MjFnfM2XRd+oy8Kab4OZfvUyhi5sbgocPg2e0fhwEEWk8R0+6b44ZMwa1atVS3TaljNNmu2FayrG1wP7FgIsrMHgW4FrlHycRERFRleT8d2nHTQPP4n16+bGnzfZ+BefPI23lKnWde+qIHKR0Mz4+Hp9//jk+/fRT1WFTMnm5ubmqlNPpGrEU5AJLn9Zf7/wAEOWE2UwiIiLSlOy9yz12vOKMXnHnzbxY82X0UhYvVp0yZT+dt7P9/UdkR1xN2ZvXrFkz7NmzB7Nnz8bZs2fx/vvvw2ltfh84fxTwiwCumaz1aoiIiMhZG7EUFcG9Zk14lGjEYqmMnq6oCCnf/2BswkJEDpDRW7ZsGR577DE8/PDDaNKkCZzahVPA+rf01we9Bnhz3gsRERFpuD+vxFgFS2b0MjdvUXP5XAMCEHjD9WZ5TSLSOKO3ceNGpKeno2PHjujatSvmzJmDpKQkOKXlzwEF2UD9XkCbW7ReDRERETmpbEPHzXL25wnPuvoGJ/lnzkJXWGi2JixBQ4fC1cen2q9HRDYQ6HXr1g3z589HXFwc/ve//6kB6dKIpaioCCtXrlRBoFM4tAw4tBRwdQdueEumfWq9IiIiInJSl+u4KWSunouHB1BQgPy4+Gq9V35CItLXrFXX2YSFyPaZ3CbSz88P9957r8rw7d27F0899RRef/11REREYMiQIXBoBXnAson6693HARHNtV4REREROanCjAzknTx52UBPRhd41Cnep3c6tlrvl75ihRrM7tOxI7ycfRsPkR2o1jwAac7y5ptv4vTp0/j222/h8Nw9gRvf0Zds9i4O+IiIiIg0kPPff4BOB/daUXCvUaPCx3kUN2Sp7iy97L171aVfzx7Veh0issHxChVxc3PDsGHD1OHwmgzQH0REREQayjHsz2tVfiMWA8/ousg0Q+dNQ5moTwWNX4jItnDCNxEREZEDdty8JKMXG1u9MtETJy5bJkpEtoWBHhEREZEdyt5/+UYsBp519SMW8qtRupmz/z91eaUyUSKyHQz0iIiIiOxMYVoa8k/pAzfvVi0v+1hDM5a801Uv3czZX7kyUSKyHQz0iIiIiOyxEUtxEOceEnLZx3pG62fpFaWloTAlxaJlokRkOxjoEREREdkZUwIvGWzuFh6mrudVsSFLZctEich2MNAjIiIisjPZho6brSsXeEnnTZEfa/o+vcLU1EqXiRKR7WCgR0RERGRnTC2lNJRvViWjZ0qZKBHZDpsI9ObOnYv69evD29sbXbt2xbZt2yp87Oeffw4XF5dShzyPiIiIyBkUXLiA/OLGKt4tK5dh8zAGeqZn9LK5P4/ILmke6C1atAgTJkzA1KlTsWvXLrRr1w6DBg1CYmJihc8JDAxEXFyc8Th16pRV10xERESkFWOGrV5duAUGVuo5nnX1gV5VhqYbRitUtkyUiGyD5oHerFmz8MADD2Ds2LFo2bIl5s2bB19fXyxYsKDC50gWLzIy0njUrFnTqmsmIiIi0krOPtNHHXjUqXpGjx03ieyTpoFeXl4edu7ciQEDBlxckKurur1ly5YKn5eRkYF69eohOjoaQ4cOxf7i2S7lyc3NRVpaWqmDiIhISzw3UXVUJfAyZPQK4uJRlJdn0TJRIrINmgZ6SUlJKCwsvCQjJ7fj4+PLfU6zZs1Utu+XX37BV199haKiIvTo0QOnKxgCOmPGDAQFBRkPCQ6JiIi0xHMTVYdx1IEJpZRuNWrAxdcX0OmQf+aMyWWbppSJEpFt0Lx001Tdu3fH6NGj0b59e/Tp0weLFy9GeHg4Pvroo3IfP2nSJKSmphqP2NhYq6+ZiIioJJ6bqKoKkpNRcDZO9rGYlGGTbS+edeqo6/km/PdmyB6aUiZKRLbBXcs3DwsLg5ubGxISEkrdL7dl711leHh4oEOHDjh69Gi5X/fy8lIHERGRreC5iaoqp3i7imf9+nDz9zfpudJ5M/fwYeSZEugZs4cM9IjsjaYZPU9PT3Ts2BGrV6823ielmHJbMneVIaWfe/fuRVRUlAVXSkRERKS96jRGMczSy4+pfKCXXRxYmlImSkS2QdOMnpDRCmPGjEGnTp3QpUsXzJ49G5mZmaoLp5Ayzdq1a6v9DGLatGno1q0bGjdujJSUFMycOVONV7j//vs1/k6IiIiILCvb0HGzCoGXR7S+dDOvgr4GZRWcP1+lMlEisg2aB3qjRo3CuXPnMGXKFNWARfbeLV++3NigJSYmRnXiNLhw4YIaxyCPDQkJURnBzZs3q9EMRERERI6sWhm9unXVZX5MjMXLRIlIe5oHemL8+PHqKM+6detK3X7nnXfUQURERORM8hMTUSB9DVxd4d28eZVLNyWjp9PpVIOWy8nm/Dwiu2Z3XTeJiIiInJEhw+bVqCFc/fxMfr5HrVoqSNRlZ6MwKenK71eNMlEi0h4DPSIiIiI7YJhp592yaoGXi6cnPIq7mufFnq50YMmMHpF9YqBHRERE5OD780qOWBD5sTEWLRMlIu0x0CMiIiKycbKnLts4067qpZSedYv36V1hxIKxEUvDBlUqEyUi7THQIyIiIrJxBYmJKDyXBLi5VSvD5lGnOKN3OrZy+/NasWyTyF7ZRNdNIiIiqrq802eQe/gQAq65RuulkAl0RUXIOXAAutzcKz42+9/d6tKrcWO4+vhYPqPHjptEdo+BHhERkR3LO3kSx667XjXaaLp1C1x9fbVeElVCwYULOPPEk8j6+2+TnufdqnodMA0ZvbzLZPT0ZaKGRizsuElkrxjoERER2TGPevVUg4382Fhkbt6MgAEDtF4SXUHukSOIffgR5J8+DRcvL7hH1qzU81x9fBEy6tZqvbchoydloEVZWeV+MKDKRJOqXyZKRNpioEdERGTHZOh1wDX9kLzwC6SvWctAz8bJv9HZp59WQZZHnTqo88FceDdtarX3dwsKgmtgIIrS0tTg9PLe21C2Wd0yUSLSFpuxEBER2Tn/fv3UZca6ddAVFmq9HKqgHDLp4/k4PW6cCvJ8u3RB/R++t2qQZ+BpHLFQfvlmtmF/XjXLRIlIWwz0iIiI7Jxvx45wDQhAYXIysvfs0Xo5VEZRTg7OPjMR52bNkogPwbffhrqffgL3kBBN1uNhaMhSQaBn6LjJ/XlE9o2BHhERkZ1z8fCAf+/e6nrGmrVaL4dKyE9IxKm7RyPt998Bd3dETp2CqKlT1b+ZVjwNIxbK6bwpmUdD6aYPO24S2TUGekRERA5Uvpm+do3WS6Fi2Xv34uQttyBn7161N67uJ58g5PbbtV7WxYxeOZ03C86eReGFCyoo9WrWTIPVEZG5MNAjIiJyAP69rlZ/nOcdPYa8mBitl+P0Un/7HafuvEt1sPRq0hj1f/wBft26whYY9+iVk9EzjFXwatoErl5eVl8bEZkPu24SERE5AMkY+XbqhKytW5Gxdi1Cx4yx6vvrCgqgy8tzyDl+Us5YEBenvsfKSPnhR5yfP9+Yaa018024+fvDVhgCvbwzZ1TzHhc3t0v25/m0Ytkmkb1joEdEROQgZMyCBHrSwt+agZ4EQjH33oecQ4dQ/7tv4dWgARxFYWoqzjz9DDI3bDD5uTUefBDhTzwOF1fbKqByj4wEZI9gfj4KEhLgUauW8WuG/XnsuElk/2zrNw8RERFVe59e1o4dKkCxlux//0XWtm0oSk1FwiuvqsDPEeQeP46Tt47SB3lubnD186vU4R4VhVozZyJiwpM2F+QJyeB5Fgd3eSXKN+XfzVC66c1GLER2jxk9IiIiByElebIfLPfIUWRs2IigwTda5X1TvltkvJ65eTPSV6xA4HXXwZ5lbNiAMxOeQlF6OtxrRSH6gw/g3bw5HIVHdDTyTp1CvmrIot87mH/6tArWpSOo7NEjIvtmex8zERERUZX597tGXWassU73zcKUFKQtX14qo5gwfQYKMzJhjySrdf6zzxH7v4dUkOfTsSMa/PCDQwV5wtPQebNERs9QtindNl09PTVbGxGZBwM9IiIiB9unZ8hISXMUS0v95RfocnPh1bw5ar8zCx5166pOk0lz58LeFOXlIe75yUh84w2gqAhBI29Gvc8WwL1GDTgaD8MsvRIjFnKMZZvcn0fkCBjoERERORDvtm3hVqOGykZl7dxp8ezXheKyzZDbRsHV2xuRL0xWt5O/+AI5hw7DXhScO4eY0WOQ+vPPgKsraj7/PKJeeQUuDprZKi+jl23ouMn9eUQOwSYCvblz56J+/frw9vZG165dsW3btko977vvvoOLiwuGDRtm8TUSERHZA2n+4d+3j7qevnatRd8ra/t25J04ARdfXwQOHqzu8+/dGwHXXgsUFiJ+2jS7aMwiDUhO3HKrairjGhiI6PkfI3T03epvDEflEV1XXebH6gM9XVHRxYweO24SOQTNA71FixZhwoQJmDp1Knbt2oV27dph0KBBSExMvOzzTp48iaeffhq9evWy2lqJiIjsQcA1hn16ay0aaBmasAQNHlxqTlzN5yfBxccH2Tt3InXJL7BlacuW6Qebx8fDs0ED1F/0Hfx79oSj86xTW11Kd9bCtDTkx8SoLLBkML0aN9Z6eUTkCIHerFmz8MADD2Ds2LFo2bIl5s2bB19fXyxYsKDC5xQWFuLOO+/Eyy+/jIYNG1p1vURERLbOr3t39Qe7dFHMPXLEIu9RcP480lauNJZtluQRFYXwcY+o64kzZ1p11ENRdjaKMjOveEizmHPvvYczT06ALicHfr16of73ixxqBuDlyBgIt7AwY/mmoWzTq0Vz1XWTiOyfpuMV8vLysHPnTkyaNMl4n6urKwYMGIAtW7ZU+Lxp06YhIiIC9913HzZcYYBpbm6uOgzS0tLMtHoiIqKqsfS5ydXXVwV7GX/9pbJ63k2bwtzUXrb8fHi3aQPvli0v+Xro6NFI+XkJ8o4dQ+Ls2YiaOhWWVJiejrOTJiFj1WqTnxs6diwinn5KzZdzJp516iA7KUk1ZDF03PRpxf15RI5C04xeUlKSys7VrFmz1P1yOz4+vtznbNy4EZ9++inmz59fqfeYMWMGgoKCjEd0tH7zMRERkVascW7yN5RvWmCfnuznurDo+3KzeQaSUYycMsVY4pm9Vx9IWELeyZM4Oeo2k4M8V39/RM2YgZrPTnS6IE94lGjIcrHjJgM9IkdhVwPT09PTcffdd6sgL6y43OBKJFsoewBLfmrKYI+IiLRkjXOTf9++6jJ7zx7VUdI9PNxsr525ZYtq4uEaEIDA66+v8HF+Xbsg8KabkPbbb4h/+WW1/83cAZUMaD/95AQ16Ns9MhJ13nsXXpXMYLq4u6vDWXkWj1jIiznF0QpEDkjT324SrLm5uSEhIaHU/XI7MjLykscfO3ZMNWG56aabjPcVFRWpS3d3dxw6dAiNGjUq9RwvLy91EBER2QprnJs8akao7IyU5EkJZ/DIkeZvwjJkiCoTvZyaE59RWUVZR8r33yPk9tvNN9rhy6+QIDPvCgvh064d6sx536wBrbNk9DI3bkJRVhZcvL3hxd4HRA5D09JNT09PdOzYEatXry4VuMnt7t27X/L45s2bY+/evfj333+Nx5AhQ9CvXz91nZk6IiKii/yLh6enr11nttfMT0hE+po16nrwqFuv+HgJvMKfeEJdT3xntmriUl0yCD5+yhQkTJ+ugrygoUNR94uFDPJM5Fn8d5N0HBXeLVo4dYaTyNFo3nVTSlekFHPhwoU4cOAAHn74YWRmZqounGL06NHGZi0yZ69169aljuDgYAQEBKjrEjgSERFR6TELmZs2oSgnxyyvmbr4J30G7aqrKt3kJeT22+DVsgWK0tKQOPOtar1/QXIyTt17L1J++FENNo+YOBFRr8+AK6t3TOZR5gNy7s8jciyaB3qjRo3CW2+9hSlTpqB9+/YqM7d8+XJjg5aYmBjExcVpvUwiIiK749WsGdyjotT4ANlXV126wkJc+P6HyzZhKY/sy1NdN11ckLpkCbJ27KjS++ccPIiTI29B9o6dqpFK9LwPUePesQ492NySJAMq5ZoGPtyfR+RQNA/0xPjx43Hq1CnVavrvv/9G165djV9bt24dPv/88wqfK19bsmSJlVZKRERkPyQACuinL9+UMQvVlbFhAwri4uAWFISAQYNMeq7soTPsE4x/eRp0+fkmPV9m9p28407knz0Lj3p19YPNe/c26TXo0v8+PKPrGG8zo0fkWGwi0CMiIiLLMI5ZWLdOjUUwSxOW4cOrVCoZPuFJuAUHqyHu/2/vToCjLN48jj8JJEgOEs4chCPIJbcgSuQvsCQFYkmBIIdSCGJBce2CiueqgKuCWFICglTpIupSnBIoqULkCFBQ3IecIiAakHATCARITN6tp92ZTSBKLsy8Pd9P1TB35m16Zn7T/Xb3e+l/5hV60ZXzs2bJ7//+H+JkZkroowkSv2iRVLht8TUUT1Ct2uY8ICREguvWLevNAVCKmHELAIDFQh5uK4GhoeYQC7qEfsXmzYv1d3RP2rWNG83lyL53X4SlIOUrVzYHJk976205N2WKnJ8+/e5Pys0V5/8OLl954MA/j3nHgiGlxrNH774mD/jlsQQBm7FHDwAAiwUGB0vov/5lLntWyyyO9CVLTKMrpF07qVAvvth/J6JXLwnRKRqOI86NG3c/3br158HX/+tdif7PN2nklbIQXeVch/gmJpX1pgAoZXxbAgBgufDO/yYZq1aZeXo1xowp8vN1Pp1Z5VL3qhXikAp/JyAwUGrP+W/JTtMl/Z1CPUeHe5YLCyvR66Jg4Z06SaOdO8xeXwB2oaEHAIDlQnXRksBAuXXkiGT//rsE1axZpOdnpKSYoZ/lqlaV8MTEEm+PDhEMjivaNuDeoZEH2ImhmwAAWE7nxoW0bl3sg6enL1xkziN79zbDKAEAvo+GHgAAfiDMe5iFos3Ty0pNNQdc13lckX373KOtAwCUNhp6AAD4gbDOfzb0ru/YITnXrhX6eemL/zxAui7oEhz3/8dcAwD4Nhp6AAD4gQrx8RIcHy+SnS3XN20q1HNys7Ik/dul5nLl/v3u8RYCAEoTDT0AAPxs+GZhD7OQsXq15Fy6JOWjoiSsY8d7vHUAgNLEqpsAAPjRYRYuzZkjV1d+Lzf27L3r43MuXzbnkU8/zfHrAMBl+NYGAMBPVGzVSoLi4iT71CnJPnmyUM8JCAmRyD5P3/NtAwCULhp6AAD4Cd0rF5+8VLKOHy/0c8rHxEpQVI17ul0AgNJHQw8AAD9SLjzc7NkDANiNxVgAAAAAwDI09AAAAADAMjT0AAAAAMAyNPQAAAAAwDI09AAAAADAMjT0AAAAAMAyfnd4BcdxzPnVq1fLelMAwO94vns938X4E9kEAGXjqsW55HcNvYyMDHNeq1atst4UAPBb+l0cERFR1pvhM8gmAChbGRbmUoBjY/P1b+Tm5srp06clPDxcAgICvC15DdeTJ09KpUqVxCY2l8328lE2d7K5bKVRPo0cDdPY2FgJDGT2gAfZZA+by2Z7+SibO5FLf83v9uhpBcbFxRV4n745bHvz+0PZbC8fZXMnm8tW0vLZ1mNaGsgm+9hcNtvLR9nciVy6k13NVgAAAAAADT0AAAAAsA0NPRGpUKGCjB8/3pzbxuay2V4+yuZONpfNH8rnS2z+v6Zs7mVz+SibO9lctpLyu8VYAAAAAMB27NEDAAAAAMvQ0AMAAAAAy9DQAwAAAADL0NADAAAAAMvQ0BORmTNnSt26deW+++6TRx55RLZv3y5uN2HCBAkICMh3aty4sbjRxo0bpXv37hIbG2vKsWzZsnz363pC77zzjsTExEjFihUlKSlJjh49KraUb/DgwXfU5eOPPy6+btKkSdK2bVsJDw+XGjVqSM+ePeXIkSP5HnPz5k0ZNWqUVK1aVcLCwqR3795y9uxZcYPClK9Tp0531N3w4cPF13322WfSokUL78FnExISZOXKlVbUm1vYmEuKbHJHNtmaS7Znk825pMimovP7ht7ChQvlpZdeMsuy7t69W1q2bCldu3aVc+fOids1bdpU0tLSvKdNmzaJG12/ft3Ui/7wKciUKVNk+vTpMnv2bNm2bZuEhoaaOtQPvA3lUxqgeety/vz54us2bNhgvnC3bt0qq1evluzsbOnSpYspr8eLL74o3333nSxevNg8/vTp09KrVy9xg8KUTw0dOjRf3en71dfFxcXJ5MmTZdeuXbJz507p3Lmz9OjRQw4ePOj6enMDm3NJkU2+n0225pLt2WRzLimyqRgcP/fwww87o0aN8l7PyclxYmNjnUmTJjluNn78eKdly5aObfQtm5yc7L2em5vrREdHOx999JH3tvT0dKdChQrO/PnzHbeXTw0aNMjp0aOH43bnzp0z5duwYYO3noKCgpzFixd7H3P48GHzmC1btjhuL5/q2LGjM2bMGMcGlStXdr744gvr6s0X2ZpLimxyXzbZnEu2Z5PtuaTIpr/n13v0srKyTK+ADqfwCAwMNNe3bNkibqdDRHTYRb169WTAgAGSmpoqtjlx4oScOXMmXx1GRESYoU421KHH+vXrzTCMRo0ayYgRI+TixYviNleuXDHnVapUMef62dPexrx1p0O4ateu7cq6u718HvPmzZNq1apJs2bN5I033pDMzExxk5ycHFmwYIHpEdZhMrbVm6+xPZcU2WRHPdqQS7Znk625pMimwikvfuzChQvmjRIVFZXvdr3+008/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", "text/plain": [ "
" ] @@ -374,10 +436,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "463a2d27", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Accuracy: 0.6666666666666666\n" + ] + } + ], "source": [ "model.load(trainer.log_dir + '/best_model.lt')\n", "test_acc = acc(model(test_circuits), torch.tensor(test_answers))\n", diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb index 5bbb3f4..81edf22 100644 --- a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb +++ b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "28993a72", "metadata": {}, "outputs": [], @@ -201,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "5dbca676", "metadata": { "scrolled": true @@ -227,29 +227,10 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "73465ead", "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[114], line 8\u001b[0m\n\u001b[1;32m 5\u001b[0m ansatz \u001b[38;5;241m=\u001b[39m Sim4Ansatz({N:\u001b[38;5;241m1\u001b[39m}, n_layers\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m datadict\u001b[38;5;241m.\u001b[39mkeys():\n\u001b[0;32m----> 8\u001b[0m datadict[i]\u001b[38;5;241m.\u001b[39mupdate({\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtext_circuit_sim4_13\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[43mansatz\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdatadict\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mdsc_diag\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m})\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/ansatz/circuit.py:114\u001b[0m, in \u001b[0;36mCircuitAnsatz.__call__\u001b[0;34m(self, diagram)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, diagram: Diagram) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Circuit:\n\u001b[1;32m 113\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Convert a lambeq diagram into a lambeq circuit.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 114\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdiagram\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1966\u001b[0m, in \u001b[0;36mFunctor.__call__\u001b[0;34m(self, entity)\u001b[0m\n\u001b[1;32m 1964\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mob_with_cache(entity)\n\u001b[1;32m 1965\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1966\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mar_with_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mentity\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1991\u001b[0m, in \u001b[0;36mFunctor.ar_with_cache\u001b[0;34m(self, ar)\u001b[0m\n\u001b[1;32m 1988\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 1990\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m ar\u001b[38;5;241m.\u001b[39mis_id:\n\u001b[0;32m-> 1991\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mar\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_functor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1992\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1993\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtarget_category\u001b[38;5;241m.\u001b[39mDiagram\u001b[38;5;241m.\u001b[39mid(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mob_with_cache(ar\u001b[38;5;241m.\u001b[39mdom))\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:1244\u001b[0m, in \u001b[0;36mDiagram.apply_functor\u001b[0;34m(self, functor)\u001b[0m\n\u001b[1;32m 1242\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers:\n\u001b[1;32m 1243\u001b[0m left, box, right \u001b[38;5;241m=\u001b[39m layer\u001b[38;5;241m.\u001b[39munpack()\n\u001b[0;32m-> 1244\u001b[0m diagram \u001b[38;5;241m>>\u001b[39m\u001b[38;5;241m=\u001b[39m (\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mid\u001b[49m\u001b[43m(\u001b[49m\u001b[43mleft\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1245\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m@\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbox\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_diagram\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1246\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m@\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mfunctor\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mid\u001b[49m\u001b[43m(\u001b[49m\u001b[43mright\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 1247\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m diagram\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:923\u001b[0m, in \u001b[0;36mDiagram.__matmul__\u001b[0;34m(self, rhs)\u001b[0m\n\u001b[1;32m 922\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__matmul__\u001b[39m(\u001b[38;5;28mself\u001b[39m, rhs: Diagrammable \u001b[38;5;241m|\u001b[39m Ty) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Self:\n\u001b[0;32m--> 923\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrhs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:917\u001b[0m, in \u001b[0;36mDiagram.tensor\u001b[0;34m(self, *diagrams)\u001b[0m\n\u001b[1;32m 915\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m diagram \u001b[38;5;129;01min\u001b[39;00m diags:\n\u001b[1;32m 916\u001b[0m right \u001b[38;5;241m=\u001b[39m right[\u001b[38;5;28mlen\u001b[39m(diagram\u001b[38;5;241m.\u001b[39mdom):]\n\u001b[0;32m--> 917\u001b[0m layers \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m [layer\u001b[38;5;241m.\u001b[39mextend(left, right) \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m diagram\u001b[38;5;241m.\u001b[39mlayers]\n\u001b[1;32m 918\u001b[0m left \u001b[38;5;241m@\u001b[39m\u001b[38;5;241m=\u001b[39m diagram\u001b[38;5;241m.\u001b[39mcod\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m)(dom\u001b[38;5;241m=\u001b[39mdom, cod\u001b[38;5;241m=\u001b[39mleft, layers\u001b[38;5;241m=\u001b[39mlayers)\n", - "File \u001b[0;32m~/actual_discocirc/notebooks/discocirc-experiments/lambeq/lambeq/backend/grammar.py:917\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 915\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m diagram \u001b[38;5;129;01min\u001b[39;00m diags:\n\u001b[1;32m 916\u001b[0m right \u001b[38;5;241m=\u001b[39m right[\u001b[38;5;28mlen\u001b[39m(diagram\u001b[38;5;241m.\u001b[39mdom):]\n\u001b[0;32m--> 917\u001b[0m layers \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m [layer\u001b[38;5;241m.\u001b[39mextend(left, right) \u001b[38;5;28;01mfor\u001b[39;00m layer \u001b[38;5;129;01min\u001b[39;00m diagram\u001b[38;5;241m.\u001b[39mlayers]\n\u001b[1;32m 918\u001b[0m left \u001b[38;5;241m@\u001b[39m\u001b[38;5;241m=\u001b[39m diagram\u001b[38;5;241m.\u001b[39mcod\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m)(dom\u001b[38;5;241m=\u001b[39mdom, cod\u001b[38;5;241m=\u001b[39mleft, layers\u001b[38;5;241m=\u001b[39mlayers)\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "from lambeq import Sim4Ansatz\n", "from lambeq import AtomicType\n", @@ -276,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "15baa8dd", "metadata": {}, "outputs": [], @@ -294,7 +275,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "32d767fc", "metadata": {}, "outputs": [], @@ -315,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "eeefa4e2", "metadata": {}, "outputs": [], @@ -335,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "ac2c4298", "metadata": {}, "outputs": [], @@ -363,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -385,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "af318e63", "metadata": {}, "outputs": [], @@ -425,7 +406,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -470,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -527,7 +508,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -556,7 +537,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "bcecde44", "metadata": {}, "outputs": [ @@ -605,7 +586,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "91b7c34d", "metadata": {}, "outputs": [], @@ -634,7 +615,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "0dd61567", "metadata": {}, "outputs": [ @@ -670,7 +651,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "b9f1a78c", "metadata": {}, "outputs": [], From 73d0317960cb061f6c9da18413ab7eb9014cd848 Mon Sep 17 00:00:00 2001 From: Dimitri Kartsaklis Date: Mon, 24 Feb 2025 11:08:36 +0000 Subject: [PATCH 03/23] Rename NBs --- ...er-release-preparing-data.ipynb => discocirc_babi6_prep.ipynb} | 0 ...rser-release training.ipynb => discocirc_babi6_training.ipynb} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/tutorials/{tutorial_Babi6_new_parser-release-preparing-data.ipynb => discocirc_babi6_prep.ipynb} (100%) rename docs/tutorials/{tutorial_Babi6_new_parser-release training.ipynb => discocirc_babi6_training.ipynb} (100%) diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb similarity index 100% rename from docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb rename to docs/tutorials/discocirc_babi6_prep.ipynb diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb similarity index 100% rename from docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb rename to docs/tutorials/discocirc_babi6_training.ipynb From fb082322216352699bc1c391277fdcea878d8936 Mon Sep 17 00:00:00 2001 From: Dimitri Kartsaklis Date: Mon, 24 Feb 2025 11:57:03 +0000 Subject: [PATCH 04/23] Add index and hooks --- docs/discocirc-babi.rst | 12 ++++++++++++ docs/training.rst | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 docs/discocirc-babi.rst diff --git a/docs/discocirc-babi.rst b/docs/discocirc-babi.rst new file mode 100644 index 0000000..5a834fe --- /dev/null +++ b/docs/discocirc-babi.rst @@ -0,0 +1,12 @@ +.. _sec-discocirc_babi: + +Training: DisCoCirc for babi6 +============================= + +**TBD + +.. toctree:: + :maxdepth: 1 + + ../tutorials/discocirc_babi6_prep.ipynb + ../tutorials/discocirc_babi6_training.ipynb diff --git a/docs/training.rst b/docs/training.rst index 0525dae..5435bf4 100644 --- a/docs/training.rst +++ b/docs/training.rst @@ -13,6 +13,7 @@ The following examples demonstrate the usage of the :py:mod:`.training` package ../tutorials/trainer-quantum.ipynb ../tutorials/trainer-hybrid.ipynb ../tutorials/discocirc-mc-task.ipynb + discocirc-babi manual-training - :ref:`Classical case ` @@ -27,10 +28,14 @@ The following examples demonstrate the usage of the :py:mod:`.training` package See how to utilise the powerful :term:`PennyLane` backend to train pure and hybrid quantum models. -- :ref:`DisCoCirc training ` +- :ref:`DisCoCirc - classification ` Convert entire paragraphs or documents into :term:`DisCoCirc` circuits and train them with ``lambeq``'s :py:class:`~lambeq.training.PennyLaneModel`. +- :ref:`DisCoCirc - babi6 ` + + Create a DisCoCirc model for solving the `babi6` inference task. + - :ref:`Manual pipeline ` Learn how to create custom training loops for your ``lambeq`` models. From 3aa48ac91a778ba06cd1cb19137118925c5707c2 Mon Sep 17 00:00:00 2001 From: Dimitri Kartsaklis Date: Tue, 25 Feb 2025 09:44:05 +0000 Subject: [PATCH 05/23] Move and rename data files --- .../data/qa6_train_10k.txt => examples/datasets/babi6_10k.txt} | 0 docs/tutorials/data/data.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/{tutorials/data/qa6_train_10k.txt => examples/datasets/babi6_10k.txt} (100%) delete mode 100644 docs/tutorials/data/data.txt diff --git a/docs/tutorials/data/qa6_train_10k.txt b/docs/examples/datasets/babi6_10k.txt similarity index 100% rename from docs/tutorials/data/qa6_train_10k.txt rename to docs/examples/datasets/babi6_10k.txt diff --git a/docs/tutorials/data/data.txt b/docs/tutorials/data/data.txt deleted file mode 100644 index e69de29..0000000 From 39f4d55de5fa9fac47f5b1bf90dca972d9093f50 Mon Sep 17 00:00:00 2001 From: Dimitri Kartsaklis Date: Tue, 25 Feb 2025 09:48:40 +0000 Subject: [PATCH 06/23] Change dataset filename in NB --- docs/tutorials/discocirc_babi6_prep.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 81edf22..839b75e 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "28993a72", "metadata": {}, "outputs": [], @@ -74,7 +74,7 @@ "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", "\n", "# The path of the file where the initial babI6 data is stored\n", - "FILEPATH = '../data/qa6_train_10k.txt'\n", + "FILEPATH = '../examples/datasets/babi6_10k.txt'\n", "\n", "# Maximum length of the context\n", "TEXT_LENGTH = 4\n", From 350514a27bbdf07589a5df6e93c277872995f43d Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 22 May 2025 03:39:56 +0100 Subject: [PATCH 07/23] resolving some of Tiffany's comments --- ...al_Babi6_new_parser-release training.ipynb | 18 ++-- ...i6_new_parser-release-preparing-data.ipynb | 88 ++++++++++--------- 2 files changed, 50 insertions(+), 56 deletions(-) diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb index 5119b92..702cb0f 100644 --- a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb +++ b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb @@ -122,7 +122,7 @@ "id": "99b9ac0c", "metadata": {}, "source": [ - "We also modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." + "The final output of the model is going to be a vector that we can interpret as a probability distribution over the possible answers (in this case [yes, no]). Therefore, We modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." ] }, { @@ -202,24 +202,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "84d09be7", "metadata": {}, "outputs": [], "source": [ "all_circuits = []\n", "\n", - "for circuit_tuple in training_circuits:\n", - " for circuit in circuit_tuple:\n", - " all_circuits.append(circuit)\n", - "\n", - "for circuit_tuple in val_circuits:\n", - " for circuit in circuit_tuple:\n", - " all_circuits.append(circuit)\n", - "\n", - "for circuit_tuple in test_circuits:\n", - " for circuit in circuit_tuple:\n", - " all_circuits.append(circuit)\n", + "all_circuits = [circuit for circuit_tuple in training_circuits for circuit in circuit_tuple]\n", + "all_circuits = [circuit for circuit_tuple in val_circuits for circuit in circuit_tuple]\n", + "all_circuits = [circuit for circuit_tuple in test_circuits for circuit in circuit_tuple]\n", "\n", "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", "model = PairCircuitModel.from_diagrams(all_circuits,\n", diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb index 81edf22..7912fb6 100644 --- a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb +++ b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb @@ -6,9 +6,9 @@ "metadata": {}, "source": [ "\n", - "# Tutorial: babI6 Training and Preprocessing in Python\n", + "# Tutorial: bAbI6 Training and Preprocessing in Python\n", "\n", - "In this tutorial, we will try to implement question asking and answering for babI6 tasks. babI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + "In this tutorial, we will try to implement question asking and answering for bAbI6 tasks. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." ] }, { @@ -18,11 +18,14 @@ "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" + "ename": "ModuleNotFoundError", + "evalue": "No module named 'lambeq'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpathlib\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Path\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Tuple, List\n\u001b[0;32m----> 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlambeq\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexperimental\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdiscocirc\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m DisCoCircReader\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mos\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mwarnings\u001b[39;00m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'lambeq'" ] } ], @@ -56,7 +59,7 @@ "## 1. Setting Up Configuration Variables\n", "\n", "This cell defines paths and key configuration variables:\n", - "- `FILEPATH` specifies paths to the file containing the babI6 data. \n", + "- `FILEPATH` specifies paths to the file containing the bAbI6 data. \n", "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", "- `SANDWICH` is a flag for using the sandwich functor: True to apply the sandwich functor on the circuits, False to apply the usual semantic functor.\n", @@ -66,14 +69,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "28993a72", "metadata": {}, "outputs": [], "source": [ "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", "\n", - "# The path of the file where the initial babI6 data is stored\n", + "# The path of the file where the initial bAbI6 data is stored\n", "FILEPATH = '../data/qa6_train_10k.txt'\n", "\n", "# Maximum length of the context\n", @@ -86,7 +89,7 @@ "SANDWICH = True\n", "\n", "# Updating the FFL parameter\n", - "FFL = True\n", + "FFL = False\n", "\n", "# Sizes of training, validation, and test datasets\n", "TRAINING_SAMPLE_SIZE = 120\n", @@ -106,7 +109,7 @@ "source": [ "## 2. Data Preprocessing Function\n", "\n", - "The next step is to write a function `task_file_reader`, which processes the babI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", + "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", "\n", "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. We want to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", "\n", @@ -115,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "05e8f624", "metadata": {}, "outputs": [], @@ -201,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "5dbca676", "metadata": { "scrolled": true @@ -227,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "73465ead", "metadata": {}, "outputs": [], @@ -252,12 +255,12 @@ "\n", "Now that we already have the circuits representing the texts, we need to make the circuits representing the questions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the question, we have to make sure that the wires of the question box correspond to the nouns from the text that are asked about. \n", "\n", - "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the babI6 experiments, all the questions are of the format \"Is the subject in the location?\"." + "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the subject in the location?\"." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "15baa8dd", "metadata": {}, "outputs": [], @@ -275,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "32d767fc", "metadata": {}, "outputs": [], @@ -296,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "eeefa4e2", "metadata": {}, "outputs": [], @@ -316,7 +319,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "ac2c4298", "metadata": {}, "outputs": [], @@ -344,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -366,7 +369,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "af318e63", "metadata": {}, "outputs": [], @@ -406,7 +409,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -451,7 +454,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -476,7 +479,6 @@ "\n", " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", " \n", - " \n", " for k in range(1, len(text_circuit.cod)):\n", " if k == qid1 or k == qid2:\n", " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", @@ -508,15 +510,15 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "bc8aecdb", "metadata": {}, "outputs": [], "source": [ - "babi6_datadict = {}\n", + "bAbI6_datadict = {}\n", "for i in reduced_datadict.keys():\n", " # Add the updated dictionary with the transformed 'answer'\n", - " babi6_datadict.update({\n", + " bAbI6_datadict.update({\n", " i: {\n", " 'text': reduced_datadict[i]['text'],\n", " 'question': reduced_datadict[i]['question'],\n", @@ -537,7 +539,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "bcecde44", "metadata": {}, "outputs": [ @@ -554,13 +556,13 @@ "from collections import defaultdict\n", "\n", "# Add the 'measure' field to each item\n", - "for key, value in babi6_datadict.items():\n", + "for key, value in bAbI6_datadict.items():\n", " temp = -1 if value['answer'] == 0 else 1\n", " value['measure'] = temp * value['text_length']\n", "\n", "# Group items by absolute value of measure\n", "abs_value_groups = defaultdict(list)\n", - "for key, value in babi6_datadict.items():\n", + "for key, value in bAbI6_datadict.items():\n", " abs_value = abs(value['measure'])\n", " abs_value_groups[abs_value].append((key, value))\n", "\n", @@ -586,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "91b7c34d", "metadata": {}, "outputs": [], @@ -608,14 +610,14 @@ ")\n", "\n", "# Reconstruct dictionaries for training, validation, and testing\n", - "training_dict_babi6 = {k: v for k, v in zip(train_keys, train_values)}\n", - "validation_dict_babi6 = {k: v for k, v in zip(val_keys, val_values)}\n", - "test_dict_babi6 = {k: v for k, v in zip(test_keys, test_values)}" + "training_dict_bAbI6 = {k: v for k, v in zip(train_keys, train_values)}\n", + "validation_dict_bAbI6 = {k: v for k, v in zip(val_keys, val_values)}\n", + "test_dict_bAbI6 = {k: v for k, v in zip(test_keys, test_values)}" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "0dd61567", "metadata": {}, "outputs": [ @@ -631,8 +633,8 @@ "source": [ "yes_count = 0\n", "no_count = 0\n", - "for i in training_dict_babi6:\n", - " if training_dict_babi6[i]['answer'] == 0:\n", + "for i in training_dict_bAbI6:\n", + " if training_dict_bAbI6[i]['answer'] == 0:\n", " no_count += 1\n", " else:\n", " yes_count += 1\n", @@ -651,23 +653,23 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "b9f1a78c", "metadata": {}, "outputs": [], "source": [ "with open(TRAINING_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(training_dict_babi6, file)\n", + " pickle.dump(training_dict_bAbI6, file)\n", "with open(VALIDATION_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(validation_dict_babi6, file)\n", + " pickle.dump(validation_dict_bAbI6, file)\n", "with open(TEST_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(test_dict_babi6, file) " + " pickle.dump(test_dict_bAbI6, file) " ] } ], "metadata": { "kernelspec": { - "display_name": "experimentsenv", + "display_name": "Python 3", "language": "python", "name": "python3" }, From 45c4ee1c8161490455d99115869a70aca96189b9 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 27 May 2025 18:05:22 +0100 Subject: [PATCH 08/23] pushing some of the changes so far: may 27th 2025 --- ...al_Babi6_new_parser-release training.ipynb | 462 ++++++++++++ ...i6_new_parser-release-preparing-data.ipynb | 700 ++++++++++++++++++ 2 files changed, 1162 insertions(+) create mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb create mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb new file mode 100644 index 0000000..45b5845 --- /dev/null +++ b/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb @@ -0,0 +1,462 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "48aad21d", + "metadata": {}, + "source": [ + "# Tutorial: BabI6 Training and Preprocessing in Python (Part II)\n", + "\n", + "In Part I of this tutorial, we learned how to create DisCoCirc circuits for question asking for the babI6 dataset. In this part, we proceed to train the model with the circuits that we created." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "b67efc5e", + "metadata": {}, + "outputs": [], + "source": [ + "# Parameters determining the type of the data\n", + "# SANDWICH functor flag\n", + "SANDWICH = True\n", + "\n", + "# Updating the FFL Parameter\n", + "FFL = True\n", + "\n", + "# Names of Resulting file paths for the Datasets\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "\n", + "BATCH_SIZE = 5\n", + "EPOCHS = 30\n", + "SEED = 2\n", + "LEARNING_RATE = 0.005" + ] + }, + { + "cell_type": "markdown", + "id": "0f9091f4", + "metadata": {}, + "source": [ + "## 8. Training the Circuits and Tests\n", + "Now that we have the data ready, we proceed with the training as usual, except that, we have to deal with pairs of circuits instead of single circuits, which will be accommodated by overriding the forward() method in the model." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c6023fa1", + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n", + "training_dict_babi6 = {}\n", + "\n", + "with open(TRAINING_DATASET_FILEPATH, 'rb') as file:\n", + " training_dict_babi6 = pickle.load(file)\n", + "\n", + "val_dict_babi6 = {}\n", + "\n", + "with open(VALIDATION_DATASET_FILEPATH, 'rb') as file:\n", + " val_dict_babi6 = pickle.load(file)\n", + "\n", + "test_dict_babi6 = {}\n", + "with open(TEST_DATASET_FILEPATH, 'rb') as file:\n", + " test_dict_babi6 = pickle.load(file)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1565fb9d", + "metadata": {}, + "outputs": [], + "source": [ + "training_circuits = []\n", + "training_answers = []\n", + "training_questions = []\n", + "training_contexts = []\n", + "\n", + "for key, value in training_dict_babi6.items():\n", + " training_answers.append(value['answer'])\n", + " training_questions.append(value['question'])\n", + " training_contexts.append(value['text'])\n", + " training_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + "\n", + "val_circuits = []\n", + "val_answers = []\n", + "val_questions = []\n", + "val_contexts = []\n", + "\n", + "for key, value in val_dict_babi6.items():\n", + " val_answers.append(value['answer'])\n", + " val_questions.append(value['question'])\n", + " val_contexts.append(value['text'])\n", + " val_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + " \n", + "test_circuits = []\n", + "test_answers = []\n", + "test_questions = []\n", + "test_contexts = []\n", + "\n", + "for key, value in test_dict_babi6.items():\n", + " test_answers.append(value['answer'])\n", + " test_questions.append(value['question'])\n", + " test_contexts.append(value['text'])\n", + " test_circuits.append(value['quantum_circ_pair_pos_neg'])" + ] + }, + { + "cell_type": "markdown", + "id": "99b9ac0c", + "metadata": {}, + "source": [ + "The final output of the model is going to be a vector that we can interpret as a probability distribution over the possible answers (in this case [yes, no]). Therefore, We modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "007b6bc8", + "metadata": {}, + "outputs": [], + "source": [ + "training_answers = [[0., 1.] if not answer else [1., 0.] for answer in training_answers]\n", + "val_answers = [[0., 1.] if not answer else [1., 0.] for answer in val_answers]\n", + "test_answers = [[0., 1.] if not answer else [1., 0.] for answer in test_answers]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "6857d72a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "105" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(training_answers)" + ] + }, + { + "cell_type": "markdown", + "id": "1d54c0c2", + "metadata": {}, + "source": [ + "The following shows how we override the forward() method to accommodate having pairs of circuits." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "67d6507a", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq import PennyLaneModel\n", + "from lambeq.backend.quantum import Diagram\n", + "import torch\n", + "\n", + "\n", + "class PairCircuitModel(PennyLaneModel):\n", + " def forward(self, circ_pairs: list[tuple[Diagram, Diagram]]) -> torch.Tensor:\n", + " pos_circs, neg_circs = zip(*circ_pairs)\n", + " pos_out = abs(self.get_diagram_output(pos_circs))\n", + " neg_out = abs(self.get_diagram_output(neg_circs))\n", + "\n", + " # implement a function that would merge pos_out and neg_out into an nx2 tensor\n", + " out_tensor = torch.stack((pos_out, neg_out), dim=1)\n", + " out_tensor = torch.softmax(out_tensor, dim=1)\n", + " \n", + " return out_tensor\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "549f1f68", + "metadata": {}, + "source": [ + "The way circuits are stored in our current example is as pairs. However, when initializing circuits, one has to simply pass all the circuits to be initilised to the model (as seen in later cells). Therefore, for the initialisation step, we will create a new collection of circuits that includes all the circuits from the pairs of circuits that we originally have." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "84d09be7", + "metadata": {}, + "outputs": [], + "source": [ + "all_circuits = [\n", + " circuit\n", + " for circuit_tuple in training_circuits + val_circuits + test_circuits\n", + " for circuit in circuit_tuple\n", + "]\n", + "\n", + "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", + "model = PairCircuitModel.from_diagrams(all_circuits,\n", + " probabilities=False,\n", + " normalize=True,\n", + " backend_config=backend_config)\n", + "\n", + "model.initialise_weights()" + ] + }, + { + "cell_type": "markdown", + "id": "a897cf89", + "metadata": {}, + "source": [ + "Finally, we proceed with training as usual (see previous tutorials for more details on this part)." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9081225f", + "metadata": {}, + "outputs": [], + "source": [ + "def acc(y_hat, y):\n", + " return (torch.argmax(y_hat, dim=1) ==\n", + " torch.argmax(y, dim=1)).sum().item()/len(y)\n", + "\n", + "def loss(y_hat, y):\n", + " return torch.nn.functional.binary_cross_entropy(\n", + " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", + " )\n", + "\n", + "\n", + "eval_metrics = {\"acc\": acc}" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "991d8f44", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq import Dataset\n", + "\n", + "train_dataset = Dataset(training_circuits,\n", + " training_answers,\n", + " batch_size=BATCH_SIZE)\n", + "\n", + "val_dataset = Dataset(val_circuits, val_answers, shuffle=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "ec1a4b8e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "105" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(train_dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "a340f1a1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_83154/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", + "Epoch 1: train/loss: 0.9346 valid/loss: 6.8342 train/time: 5.32s valid/time: 1.01s train/acc: 0.5905 valid/acc: 0.5429\n", + "Epoch 2: train/loss: 0.2990 valid/loss: 8.0345 train/time: 5.46s valid/time: 1.02s train/acc: 0.6095 valid/acc: 0.5143\n", + "Epoch 3: train/loss: 0.7921 valid/loss: 2.7350 train/time: 5.36s valid/time: 1.03s train/acc: 0.7333 valid/acc: 0.5429\n", + "Epoch 4: train/loss: 14.7256 valid/loss: 7.4992 train/time: 5.32s valid/time: 1.03s train/acc: 0.5619 valid/acc: 0.4857\n", + "Epoch 5: train/loss: 1.0462 valid/loss: 4.2637 train/time: 5.44s valid/time: 1.05s train/acc: 0.6286 valid/acc: 0.4857\n", + "Epoch 6: train/loss: 0.1580 valid/loss: 12.2741 train/time: 5.70s valid/time: 1.03s train/acc: 0.6190 valid/acc: 0.4571\n", + "Epoch 7: train/loss: 6.8167 valid/loss: 5.6832 train/time: 5.39s valid/time: 1.04s train/acc: 0.7238 valid/acc: 0.4857\n", + "Epoch 8: train/loss: 0.3790 valid/loss: 6.2157 train/time: 5.17s valid/time: 1.26s train/acc: 0.7333 valid/acc: 0.4286\n", + "Epoch 9: train/loss: 0.2092 valid/loss: 7.0995 train/time: 5.21s valid/time: 1.27s train/acc: 0.8000 valid/acc: 0.4857\n", + "Epoch 10: train/loss: 0.1870 valid/loss: 6.0674 train/time: 5.33s valid/time: 1.48s train/acc: 0.8190 valid/acc: 0.4857\n", + "Epoch 11: train/loss: 0.2487 valid/loss: 3.8180 train/time: 5.46s valid/time: 1.03s train/acc: 0.8857 valid/acc: 0.5714\n", + "Epoch 12: train/loss: 0.0456 valid/loss: 3.2134 train/time: 5.52s valid/time: 1.04s train/acc: 0.8667 valid/acc: 0.5714\n", + "Epoch 13: train/loss: 0.2040 valid/loss: 3.2660 train/time: 5.38s valid/time: 1.05s train/acc: 0.8857 valid/acc: 0.5714\n", + "Epoch 14: train/loss: 0.1381 valid/loss: 3.2107 train/time: 5.67s valid/time: 1.05s train/acc: 0.9238 valid/acc: 0.5714\n", + "Epoch 15: train/loss: 0.1448 valid/loss: 3.0778 train/time: 5.53s valid/time: 1.08s train/acc: 0.9238 valid/acc: 0.6286\n", + "Epoch 16: train/loss: 1.2513 valid/loss: 3.7392 train/time: 5.48s valid/time: 1.05s train/acc: 0.7143 valid/acc: 0.5143\n", + "Epoch 17: train/loss: 0.0843 valid/loss: 5.8888 train/time: 6.10s valid/time: 1.09s train/acc: 0.7333 valid/acc: 0.6286\n", + "Epoch 18: train/loss: 0.3621 valid/loss: 6.2788 train/time: 5.48s valid/time: 1.05s train/acc: 0.8381 valid/acc: 0.6000\n", + "Epoch 19: train/loss: 0.0967 valid/loss: 4.8195 train/time: 5.46s valid/time: 1.14s train/acc: 0.8952 valid/acc: 0.6571\n", + "Epoch 20: train/loss: 0.3041 valid/loss: 4.3510 train/time: 5.44s valid/time: 1.06s train/acc: 0.9238 valid/acc: 0.6286\n", + "Epoch 21: train/loss: 0.0788 valid/loss: 4.5908 train/time: 5.93s valid/time: 1.10s train/acc: 0.9524 valid/acc: 0.6000\n", + "Epoch 22: train/loss: 0.3641 valid/loss: 4.6065 train/time: 5.84s valid/time: 1.13s train/acc: 0.9714 valid/acc: 0.6286\n", + "Epoch 23: train/loss: 0.0930 valid/loss: 5.3995 train/time: 5.44s valid/time: 1.05s train/acc: 0.9810 valid/acc: 0.6286\n", + "Epoch 24: train/loss: 0.1385 valid/loss: 5.4588 train/time: 5.42s valid/time: 1.05s train/acc: 0.9714 valid/acc: 0.6286\n", + "Epoch 25: train/loss: 0.2872 valid/loss: 6.8909 train/time: 5.54s valid/time: 1.06s train/acc: 0.9905 valid/acc: 0.6286\n", + "Epoch 26: train/loss: 0.0618 valid/loss: 7.5244 train/time: 5.54s valid/time: 1.12s train/acc: 0.9714 valid/acc: 0.6000\n", + "Epoch 27: train/loss: 0.1148 valid/loss: 7.2076 train/time: 5.27s valid/time: 1.29s train/acc: 0.9810 valid/acc: 0.6286\n", + "Epoch 28: train/loss: 0.2075 valid/loss: 8.3714 train/time: 5.19s valid/time: 1.29s train/acc: 0.9905 valid/acc: 0.6286\n", + "Epoch 29: train/loss: 0.1348 valid/loss: 7.4553 train/time: 5.22s valid/time: 1.30s train/acc: 0.9905 valid/acc: 0.6286\n", + "Epoch 30: train/loss: 0.0633 valid/loss: 10.5360 train/time: 5.21s valid/time: 1.29s train/acc: 0.9810 valid/acc: 0.6000\n", + "\n", + "Training completed!\n", + "train/time: 2m44s train/time_per_epoch: 5.46s train/time_per_step: 0.26s valid/time: 33.54s valid/time_per_eval: 1.12s\n" + ] + } + ], + "source": [ + "from lambeq import PytorchTrainer\n", + "\n", + "trainer = PytorchTrainer(\n", + " model=model,\n", + " loss_function=loss,\n", + " optimizer=torch.optim.Adam,\n", + " learning_rate=LEARNING_RATE,\n", + " epochs=EPOCHS,\n", + " evaluate_functions=eval_metrics,\n", + " evaluate_on_train=True,\n", + " use_tensorboard=False,\n", + " verbose='text',\n", + " seed=SEED\n", + " )\n", + "\n", + "trainer.fit(train_dataset, val_dataset)" + ] + }, + { + "cell_type": "markdown", + "id": "c91c8756", + "metadata": {}, + "source": [ + "Now that the training has ended, the final part is to test and plot the graphs for the results of the training as shown below. " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "2df2f3c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(19.4, 0.6571428571428571, 'early stopping')" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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585y7NgxsYmnngKhDj10eIu+d91Sl5MnT5a1a9fK5s2bzYWdHlo/Oizp7Nmzrq67/1W+6uiXROWGutOeu6SkJOnbt6+ZqUkvFJ87d6419eavAimXFNlkB7flku3ZZGsu+UM2BXTDSV98feE3btxY5dSm3tbTgDa5cOGC6U3QngWb6DAB/UBUrsNz586ZGYxsq0OPX375xYwl9/e61GuK9eCtp9E3bdpk6qoy/eyFhIRUqTsdLqDXO7ih7nyVrzraS6b8ve6qo8fGP//80/X15u8CKZcU2WQHt+SS7dkUaLnUINnkBLilS5eaWW5yc3OdQ4cOORMmTHAiIyOdkydPOm727LPPOnl5eU5hYaGzdetWJy0tzYmKijIzrLjN+fPnnT179phF37Jz5swxv//8889mfU5OjqmzNWvWOPv27TMz/XTs2NH5448/HLeXT9dNnTrVzAijdblhwwanT58+TqdOnZzLly87/mzixIlORESEeR+WlJR4l0uXLnkfk5mZ6bRv397ZtGmTU1BQ4KSkpJjFDXyV79ixY85rr71myqV1p+/PxMREZ8CAAY6/mzZtmpmFSfdbP1N6OygoyPn6669dX29uYGsuKbLJHdlkay7Znk0255K/ZFPAN5zU/PnzzQsdGhpqpoHdvn2743YjR450YmNjTZni4+PNbf3AuNHmzZvNgfvaRadD9Uz7+sorrzjR0dHmy0Zqaqpz5MgRx4by6cEuPT3dadOmjZlmMyEhwRk/frwrvkBVVyZdPvroI+9j9AvEpEmTzHSiTZs2dR544AFzkHcDX+UrKioyYdSqVSvzvkxKSnKee+45p6yszPF348aNM+81PX7oe08/U55gcnu9uYWNuaTIJndkk625ZHs22ZxL/pJNQfrPv3f+CgAAAADsE9DXOAEAAABATdBwAgAAAAAfaDgBAAAAgA80nAAAAADABxpOAAAAAOADDScAAAAA8IGGEwAAAAD4QMMJAAAAAHyg4QRYokOHDvLOO+809G4AAGCQS7ANDSfgBowdO1aGDx9ufh80aJBMmTKl3radm5srkZGR193/7bffyoQJE+ptPwAA/oNcAupe43rYBoAauHLlioSGht7w89u0afOv7g8AILCRS0BVnHECatnDl5+fL3PnzpWgoCCz/PTTT2bdgQMHZOjQodK8eXOJjo6Wxx57TE6fPu19rvYITp482fQKRkVFyZAhQ8z9c+bMkV69ekmzZs2kXbt2MmnSJLlw4YJZl5eXJ0888YSUlZV5tzdjxoxqh0QUFRVJRkaG2X6LFi3k4YcfllOnTnnX6/NuvfVW+fTTT81zIyIiZNSoUXL+/HnvY1asWGH2pUmTJtK6dWtJS0uTixcv1sMrCwC4EeQSUHdoOAG1oMGUkpIi48ePl5KSErNoqJw9e1YGDx4st912mxQUFMiXX35pwkFDorKPP/7Y9OZt3bpVFi1aZO4LDg6WefPmycGDB836TZs2yfPPP2/W3X333SaENHA825s6dep1+1VRUWHC6bfffjMBun79evnxxx9l5MiRVR53/PhxWb16taxdu9Ys+ticnByzTv/vRx55RMaNGyeHDx824ThixAhxHKcOX1EAQG2QS0DdYageUAvaG6YB07RpU4mJifHev2DBAhNOb7zxhve+Dz/80ITXDz/8IJ07dzb3derUSWbPnl3l/6w8Ll173F5//XXJzMyUd99912xLt6k9epW3d62NGzfK/v37pbCw0GxTffLJJ9KjRw8z5rxfv37eINOx6eHh4ea29j7qc2fNmmUC6q+//jKhlJCQYNZrLx8AwH+RS0Dd4YwTUAe+++472bx5sxmO4Fm6du3q7U3z6Nu373XP3bBhg6Smpkp8fLwJDg2NM2fOyKVLl2q8fe2J02DyhJPq3r27uXhX11UOQE84qdjYWCktLTW/Jycnm/3QUHrooYfk/fffl99///0GXg0AQEMjl4Dao+EE1AEd+z1s2DDZu3dvleXo0aMyYMAA7+N0vHhlOg79/vvvl969e8vnn38uu3btkoULF3ov0v23hYSEVLmtPYba26caNWpkhlKsW7fOhNv8+fOlS5cuprcQAOAu5BJQezScgFrSYQrl5eVV7uvTp48ZC649Z0lJSVWWa0OpMg0kDYi3335b7rrrLjN0ori42Of2rtWtWzc5ceKEWTwOHTpkxrhr2NSUBlb//v1l5syZsmfPHrPtVatW1fj5AID6Ry4BdYOGE1BLGkI7duwwvXI6O5EGTFZWlrkAVi9i1bHbOgziq6++MjMP/V24aIBdvXrV9KLpRbM6s5Dn4tzK29OeQx3zrdurbqiEzjKkQxlGjx4tu3fvlp07d8rjjz8uAwcOlNtvv71G5dIy6Vh4vYhYZ0JauXKl/Prrryb8AAD+i1wC6gYNJ6CWdPYgHT6gPWb6Nyv0YB4XF2dmJNIwSk9PN2GhF9fqWG6dneh/0fHbOu3rm2++KT179pTFixdLdnZ2lcfoDEZ6Ua7ORKTbu/YiXk+P3Jo1a6Rly5ZmCIYGVmJioixbtqzG5dIZkrZs2SL33Xef6WF8+eWXTY+jTmULAPBf5BJQN4Ic5nAEAAAAgL/FGScAAAAA8IGGEwAAAAD4QMMJAAAAAHyg4QQAAAAAPtBwAgAAAAAfaDgBAAAAgA80nAAAAADABxpOAAAAAOADDScAAAAA8IGGEwAAAAD4QMMJAAAAAOTv/T+JFC5witk1xAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "fig, ((ax_tl, ax_tr), (ax_bl, ax_br)) = plt.subplots(2, 2, sharex=True, sharey='row', figsize=(10, 6))\n", + "ax_tl.set_title('Training set')\n", + "ax_tr.set_title('Development set')\n", + "ax_bl.set_xlabel('Iterations')\n", + "ax_br.set_xlabel('Iterations')\n", + "ax_bl.set_ylabel('Accuracy')\n", + "ax_tl.set_ylabel('Loss')\n", + "\n", + "colours = iter(plt.rcParams['axes.prop_cycle'].by_key()['color'])\n", + "range_ = np.arange(1, trainer.epochs + 1)\n", + "ax_tl.plot(range_, trainer.train_epoch_costs, color=next(colours))\n", + "ax_bl.plot(range_, trainer.train_eval_results['acc'], color=next(colours))\n", + "ax_tr.plot(range_, trainer.val_costs, color=next(colours))\n", + "ax_br.plot(range_, trainer.val_eval_results['acc'], color=next(colours))\n", + "\n", + "# mark best model as circle\n", + "best_epoch = np.argmax(trainer.val_eval_results['acc'])\n", + "ax_tl.plot(best_epoch + 1, trainer.train_epoch_costs[best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_tr.plot(best_epoch + 1, trainer.val_costs[best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_bl.plot(best_epoch + 1, trainer.train_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", + "ax_br.plot(best_epoch + 1, trainer.val_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", + "\n", + "ax_br.text(best_epoch + 1.4, trainer.val_eval_results['acc'][best_epoch], 'early stopping', va='center')" + ] + }, + { + "cell_type": "markdown", + "id": "4ad0b133", + "metadata": {}, + "source": [ + "Finally, We select the best model (from the best epoch) and use it to get the accuracy on the test data. The best epoch is determined based on the validation accuracy, which is marked on the plot by a circle." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "463a2d27", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test Accuracy: 0.4444444444444444\n" + ] + } + ], + "source": [ + "model.load(trainer.log_dir + '/best_model.lt')\n", + "test_acc = acc(model(test_circuits), torch.tensor(test_answers))\n", + "print('Test Accuracy:', test_acc)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "experimentsenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb new file mode 100644 index 0000000..af26d58 --- /dev/null +++ b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb @@ -0,0 +1,700 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "48aad21d", + "metadata": {}, + "source": [ + "\n", + "# Tutorial: babI6 Training and Preprocessing in Python\n", + "\n", + "In this tutorial, we will try to implement question answering for babI6 tasks. babI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "cf759bce", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "from typing import Tuple, List\n", + "from lambeq.experimental.discocirc import DisCoCircReader\n", + "import os\n", + "import warnings\n", + "import pickle\n", + "\n", + "warnings.filterwarnings('ignore')\n", + "os.environ['TOKENIZERS_PARALLELISM'] = 'true'" + ] + }, + { + "cell_type": "markdown", + "id": "e20186c0", + "metadata": {}, + "source": [ + "Before we delve into the code, we first highlight two new features of the new parser that will be used in this tutorial: the sandwich functor and foliated frames. \n", + "\n", + "In the previous versions of the parser, the semantic functor, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of frames. The sandwich functor addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's contents. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter). For more detail on this, we recommend reading the paper explaining the theory behind the new parser [here](in_the_making)." + ] + }, + { + "cell_type": "markdown", + "id": "3e26d138", + "metadata": {}, + "source": [ + "## 1. Setting Up Configuration Variables\n", + "\n", + "This cell defines paths and key configuration variables:\n", + "- `FILEPATH` specifies paths to the file containing the babI6 data. \n", + "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", + "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", + "- `SANDWICH` is a flag for using the sandwich functor: True to apply the sandwich functor on the circuits, False to apply the usual semantic functor.\n", + "- `FFL` is a flag for activating the foliated frames. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", + "- `TRAINING_SAMPLE_SIZE`, `VALIDATION_SAMPLE_SIZE`, and `TEST_SAMPLE_SIZE` specify the size of the data for training, validation, and testing." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "28993a72", + "metadata": {}, + "outputs": [], + "source": [ + "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", + "\n", + "# The path of the file where the initial babI6 data is stored\n", + "FILEPATH = '../data/qa6_train_10k.txt'\n", + "\n", + "# Maximum length of the context\n", + "TEXT_LENGTH = 4\n", + "\n", + "# Maximum Number of wires in a circuit\n", + "MAX_WIDTH = 9\n", + "\n", + "# SANDWICH functor flag\n", + "SANDWICH = True\n", + "\n", + "# Updating the FFL parameter\n", + "FFL = True\n", + "\n", + "# Sizes of training, validation, and test datasets\n", + "TRAINING_SAMPLE_SIZE = 120\n", + "VALIDATION_SAMPLE_SIZE = 30\n", + "TEST_SAMPLE_SIZE = 30\n", + "\n", + "# Paths of resulting files for the datasets\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" + ] + }, + { + "cell_type": "markdown", + "id": "d21b2f18", + "metadata": {}, + "source": [ + "## 2. Data Preprocessing Function\n", + "\n", + "The next step is to write a function `task_file_reader`, which processes the babI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", + "\n", + "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. We want to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", + "\n", + "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05e8f624", + "metadata": {}, + "outputs": [], + "source": [ + "# Reading the texts, questions, expected answers, and text_length from the TXT file\n", + "def task_file_reader(path : str | Path) -> Tuple[List[List[str]],\n", + " List[str],\n", + " List[str],\n", + " List[str]]:\n", + " \"\"\"\n", + " reads the .txt file at `path`\n", + " returns 4 lists of equal length\n", + " - text sentences, questions, answers and text length\n", + " \"\"\"\n", + " with open(path) as f:\n", + " lines = f.readlines()\n", + "\n", + " # split the lines into stories\n", + " # record the first line location of new stories\n", + " story_splits = [i for i, line in enumerate(lines) if line[0:2] == '1 ']\n", + " # have no more need for line indices - delete these\n", + " lines = [' '.join(line.split(' ')[1:]) for line in lines]\n", + " # also delete . and \\n\n", + " lines = [line.replace('.', '').replace('\\n','') for line in lines]\n", + " stories = [lines[i:j] for i, j in zip(story_splits, story_splits[1:]+[None])]\n", + "\n", + " # create text and QnA pairs\n", + " texts = []\n", + " qnas = []\n", + " text_length = []\n", + " for story in stories:\n", + " # record the lines in the story corresponding to questions\n", + " question_splits = [i for i, line in enumerate(story) if '?' in line]\n", + " for index in question_splits:\n", + " # record the text corresponding to each question\n", + " ctx = [line.lower() for line in story[:index] if '?' not in line]\n", + " texts.append(ctx)\n", + " text_length.append(len(ctx))\n", + " # record the question\n", + " qnas.append(story[index])\n", + "\n", + " # split qna into questions and answers\n", + " questions = [qna.split('\\t')[0].lower().rstrip()[:-1] + \" ?\" for qna in qnas]\n", + " answers = [qna.split('\\t')[1].lower() for qna in qnas]\n", + "\n", + " # Filtering the data \n", + " filtered_data = [\n", + " (text, question, answer, text_length)\n", + " for text, question, answer, text_length in zip(texts, questions, answers, text_length) \n", + " if len(text) <= TEXT_LENGTH\n", + " ]\n", + " # Applying the filter\n", + " texts, questions, answers, text_length = map(list, zip(*filtered_data))\n", + "\n", + " # Converting the texts from arrays of sentences to strings\n", + " processed_texts_list = []\n", + " for text in texts:\n", + " processed_text = \"\"\n", + " for sentence in text:\n", + " processed_text += sentence + \". \"\n", + " \n", + " processed_texts_list.append(processed_text)\n", + "\n", + " processed_texts_list = [\". \".join(text) + \". \" for text in texts]\n", + "\n", + " return processed_texts_list, questions, answers, text_length\n", + "\n", + "\n", + "texts, questions, answers, text_lengths = task_file_reader(FILEPATH)" + ] + }, + { + "cell_type": "markdown", + "id": "67428372", + "metadata": {}, + "source": [ + "## 3. Converting The Texts into Circuits\n", + "\n", + "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the reader, then we use it with the `SANDWICH` flag indicating whether to use the SANDWICH functor or not, as well as the `FFL` flag which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", + "\n", + "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated DisCoCirc circuit, the question, the answer, and the text_length." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5dbca676", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# making the circuits from the texts and storing them in the dictionary\n", + "reader = DisCoCircReader()\n", + "datadict = {}\n", + "for i, (text, quest, ans, text_length) in enumerate(zip(texts, questions, answers, text_lengths)):\n", + " datadict.update({i:{'text':text, 'dsc_diag': reader.text2circuit(text, sandwich=SANDWICH, foliated_frame_labels = FFL), 'question':quest, 'answer':ans, 'text_length': text_length}})\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "b150eddc", + "metadata": {}, + "source": [ + "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", + "While we have the circuits corresponding to the texts ready, they are still DisCoCirc circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into quantum circuits by applying an ansatz. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one qubit for each noun." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "73465ead", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq import Sim4Ansatz\n", + "from lambeq import AtomicType\n", + "\n", + "N = AtomicType.NOUN\n", + "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", + "\n", + "for i in datadict.keys():\n", + " datadict[i].update({'text_circuit_sim4_13': ansatz(datadict[i]['dsc_diag'])})" + ] + }, + { + "cell_type": "markdown", + "id": "ffdeb9a1", + "metadata": {}, + "source": [ + "## 5. Question Circuits and Further Processing\n", + "The main spirit of this tutorial is having questions also be circuits that one sequetially composes with the circuits representing texts in order to see the similarity between the texts and guess the answer to the question by performing postselections. More details on question answering can be found [here](https://arxiv.org/pdf/2409.08777).\n", + "\n", + "Now that we already have the circuits representing the texts, we need to make the circuits representing the questions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the question, we have to make sure that the wires of the question box correspond to the nouns from the text that are asked about. \n", + "\n", + "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the babI6 experiments, all the questions are of the format \"Is the subject in the location?\"." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "15baa8dd", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq.backend.grammar import Ty\n", + "\n", + "def return_noun_list(text):\n", + " noun_list = []\n", + " for b in text.boxes:\n", + " if b.dom == Ty() and b.cod == N:\n", + " noun_list.append(b.name)\n", + " \n", + " return noun_list" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "32d767fc", + "metadata": {}, + "outputs": [], + "source": [ + "def return_q_nouns(question):\n", + " question_words = question.split(' ')\n", + " q_nouns = [question_words[1], question_words[4].strip('?')]\n", + " return q_nouns" + ] + }, + { + "cell_type": "markdown", + "id": "7ae48f77", + "metadata": {}, + "source": [ + "We proceed to add the lists obtained from the functions above to the dictionary to be used later when building the question circuits. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "eeefa4e2", + "metadata": {}, + "outputs": [], + "source": [ + "for i in datadict.keys():\n", + " datadict[i].update({'noun_list_text': return_noun_list(datadict[i]['dsc_diag'])})\n", + " datadict[i].update({'noun_list_question': return_q_nouns(datadict[i]['question'])})" + ] + }, + { + "cell_type": "markdown", + "id": "210a2617", + "metadata": {}, + "source": [ + "We needed to extract the list of nouns in the texts as well as the list of nouns in their corresponding questions to remove the entries where the question nouns include nouns that are not in the text (questions that ask about subjects or locations not present in the text. We do this for simplification purposes). The following cell checks every entry from the `datadict` dictionary and adds the ids of \"bad\" entries (entries where the question contains nouns not present in the text) to the `discarded_ids` list that will be used later on." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "ac2c4298", + "metadata": {}, + "outputs": [], + "source": [ + "#reduce texts where question nouns are not in the text\n", + "discarded_ids = []\n", + "for i in datadict.keys():\n", + " text_nouns = datadict[i]['noun_list_text']\n", + " q_nouns = datadict[i]['noun_list_question']\n", + " for noun in q_nouns:\n", + " if noun not in text_nouns:\n", + " discarded_ids.append(i)\n", + " break" + ] + }, + { + "cell_type": "markdown", + "id": "7deda19b", + "metadata": {}, + "source": [ + "Now that we have a list of ids of entries that should be discarded because they contain nouns in the questions that are not present in the reduced contexts corresponding to them, we simply remove the said entries from the `datadict` dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f75a2315", + "metadata": {}, + "outputs": [], + "source": [ + "# This is to be merged with the cell below by adding the logic for removing the ones that have less text length.\n", + "reduced_datadict = {\n", + " i: entry \n", + " for i, entry in datadict.items() \n", + " if set(entry['noun_list_question']).issubset(entry['noun_list_text'])\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "72b15b5f", + "metadata": {}, + "outputs": [], + "source": [ + "reduced_datadict = {}\n", + "for i in datadict.keys():\n", + " if i not in discarded_ids:\n", + " if datadict[i]['text_length'] < TEXT_LENGTH:\n", + " reduced_datadict.update({i:datadict[i]})" + ] + }, + { + "cell_type": "markdown", + "id": "33fb6e7e", + "metadata": {}, + "source": [ + "Moreover, remember that for efficiency purposes, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "af318e63", + "metadata": {}, + "outputs": [], + "source": [ + "# Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", + "def right_cod_size(circuit):\n", + " return len(circuit.cod) < MAX_WIDTH\n", + "\n", + "def filter_circuits_by_width(entries):\n", + " filtered_entries = {}\n", + " \n", + " for key, entry in entries.items():\n", + " circuit = entry.get('text_circuit_sim4_13')\n", + " if circuit and right_cod_size(circuit):\n", + " filtered_entries[key] = entry\n", + " \n", + " return filtered_entries\n", + "\n", + "filtered_cod_datadict = filter_circuits_by_width(reduced_datadict)" + ] + }, + { + "cell_type": "markdown", + "id": "b04a8ff9", + "metadata": {}, + "source": [ + "Now that the text circuits are post-processed for optimization, it is time to make the question answering circuits to later sequentially compose the latter with the former. \n", + "\n", + "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question answering in DiscoCir, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", + "\n", + "Notice that we also created two question boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", + "\n", + "We apply the same ansatz applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the ansatz to a parallel composition of two effects (bras). " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "a4ea6896", + "metadata": {}, + "outputs": [], + "source": [ + "from lambeq.backend.grammar import Box, Id\n", + "from lambeq.backend.quantum import Bra, Discard, qubit, Id, Swap\n", + "from lambeq import AtomicType, Sim4Ansatz\n", + "\n", + "N = AtomicType.NOUN\n", + "\n", + "q1 = Box('is_in', N@N, N@N)\n", + "q2 = Box('is_not_in', N@N, N@N)\n", + "\n", + "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", + "qcirc1 = ansatz(q1)\n", + "qcirc2 = ansatz(q2)\n", + "\n", + "#add the postselections to the questions\n", + "qcirc1_final = qcirc1 >> Bra(0) @ Bra(0)\n", + "qcirc2_final = qcirc2 >> Bra(0) @ Bra(0)\n", + "\n", + "is_in_q = qcirc1_final\n", + "is_not_in_q = qcirc2_final\n", + "\n", + "is_in_q_swp = Swap(qubit, qubit) >> qcirc1 >> Bra(0) @ Bra(0)\n", + "is_not_in_q_swp = Swap(qubit, qubit) >> qcirc2 >> Bra(0) @ Bra(0)" + ] + }, + { + "cell_type": "markdown", + "id": "fa5f120a", + "metadata": {}, + "source": [ + "## 5. Assembling The Text Circuits with the Question Circuits\n", + "\n", + "Now that we have all the ingredients in place (the text and question circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", + "\n", + "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question. In order for us to attach the question boxes, we have to make sure that the wires from the question circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the quetion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created question boxes that are also equiped with swaps for this purpose).\n", + "\n", + "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative questions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative questions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f50a873", + "metadata": {}, + "outputs": [], + "source": [ + "# Bringing everything together by plugging the question answering part to the text circuits\n", + "for i in reduced_datadict.keys():\n", + " \n", + " text_circuit = reduced_datadict[i]['text_circuit_sim4_13']\n", + " text_nouns = datadict[i]['noun_list_text']\n", + " q_nouns = datadict[i]['noun_list_question']\n", + " qid1 = datadict[i]['noun_list_text'].index(q_nouns[0])\n", + " qid2 = datadict[i]['noun_list_text'].index(q_nouns[1])\n", + "\n", + " swap_required = False\n", + " \n", + " if qid1 > qid2: \n", + " swap_required = True\n", + " elif qid1 < qid2:\n", + " swap_required = False\n", + " else:\n", + " print('noun ids are idential, error')\n", + "\n", + " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", + " \n", + " \n", + " for k in range(1, len(text_circuit.cod)):\n", + " if k == qid1 or k == qid2:\n", + " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", + " else:\n", + " quest_mid_layer = quest_mid_layer @ Discard()\n", + "\n", + " final_circuit = text_circuit >> quest_mid_layer\n", + "\n", + " if swap_required:\n", + " final_circuit_pos = final_circuit >> is_in_q_swp\n", + " final_circuit_neg = final_circuit >> is_not_in_q_swp\n", + " else:\n", + " final_circuit_pos = final_circuit >> is_in_q\n", + " final_circuit_neg = final_circuit >> is_not_in_q\n", + "\n", + " reduced_datadict[i].update({'pos_neg_circuit_pair': (final_circuit_pos, final_circuit_neg)})" + ] + }, + { + "cell_type": "markdown", + "id": "8fd17926", + "metadata": {}, + "source": [ + "## 6. Preparing The Datasets for Training\n", + "Now that our circuit pairs are ready, we move on to the final step of training a model.\n", + "\n", + "The first step is to prepare the data for training. We start with updating the \"yes\"." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "bc8aecdb", + "metadata": {}, + "outputs": [], + "source": [ + "babi6_datadict = {}\n", + "for i in reduced_datadict.keys():\n", + " # Add the updated dictionary with the transformed 'answer'\n", + " babi6_datadict.update({\n", + " i: {\n", + " 'text': reduced_datadict[i]['text'],\n", + " 'question': reduced_datadict[i]['question'],\n", + " 'answer': 1 if reduced_datadict[i]['answer'] == 'yes' else 0, # Transform 'yes' to 1 and 'no' to 0\n", + " 'quantum_circ_pair_pos_neg': reduced_datadict[i]['pos_neg_circuit_pair'],\n", + " 'text_length': reduced_datadict[i]['text_length']\n", + " }\n", + " })" + ] + }, + { + "cell_type": "markdown", + "id": "3545dc09", + "metadata": {}, + "source": [ + "The next step would be to make three sets: training, validation, and test sets. We try to balance the entries." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "bcecde44", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the minimum size is: 88\n" + ] + } + ], + "source": [ + "import random\n", + "from collections import defaultdict\n", + "\n", + "# Add the 'measure' field to each item\n", + "for key, value in babi6_datadict.items():\n", + " temp = -1 if value['answer'] == 0 else 1\n", + " value['measure'] = temp * value['text_length']\n", + "\n", + "# Group items by absolute value of measure\n", + "abs_value_groups = defaultdict(list)\n", + "for key, value in babi6_datadict.items():\n", + " abs_value = abs(value['measure'])\n", + " abs_value_groups[abs_value].append((key, value))\n", + "\n", + "# Balance signs within each group and ensure diverse sizes\n", + "new_balanced_dict = {}\n", + "for abs_value, items in abs_value_groups.items():\n", + " # Separate positive and negative items\n", + " positive_items = [(k, v) for k, v in items if v['measure'] > 0]\n", + " negative_items = [(k, v) for k, v in items if v['measure'] < 0]\n", + " \n", + " # Determine the maximum balanced size for this group\n", + " min_size = min(len(positive_items), len(negative_items))\n", + " print(\"the minimum size is: \" + str(min_size))\n", + " \n", + " # Randomly sample from each group to balance\n", + " balanced_positive = random.sample(positive_items, min_size)\n", + " balanced_negative = random.sample(negative_items, min_size)\n", + " \n", + " # Add to the balanced dictionary\n", + " for k, v in balanced_positive + balanced_negative:\n", + " new_balanced_dict[k] = v" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "91b7c34d", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Convert dictionary into list of keys and values\n", + "keys = list(new_balanced_dict.keys())\n", + "values = list(new_balanced_dict.values())\n", + "\n", + "# Split into training and temporary (validation + testing)\n", + "train_keys, temp_keys, train_values, temp_values = train_test_split(\n", + " keys, values, test_size=0.4, random_state=42 # 60% training, 40% temp\n", + ")\n", + "\n", + "# =Split the temporary set into validation and testing\n", + "val_keys, test_keys, val_values, test_values = train_test_split(\n", + " temp_keys, temp_values, test_size=0.5, random_state=42 # 20% validation, 20% testing\n", + ")\n", + "\n", + "# Reconstruct dictionaries for training, validation, and testing\n", + "training_dict_babi6 = {k: v for k, v in zip(train_keys, train_values)}\n", + "validation_dict_babi6 = {k: v for k, v in zip(val_keys, val_values)}\n", + "test_dict_babi6 = {k: v for k, v in zip(test_keys, test_values)}" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "0dd61567", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "52\n", + "53\n" + ] + } + ], + "source": [ + "yes_count = 0\n", + "no_count = 0\n", + "for i in training_dict_babi6:\n", + " if training_dict_babi6[i]['answer'] == 0:\n", + " no_count += 1\n", + " else:\n", + " yes_count += 1\n", + "\n", + "print(yes_count)\n", + "print(no_count)" + ] + }, + { + "cell_type": "markdown", + "id": "af769549", + "metadata": {}, + "source": [ + "Now, the final step is to store all of this data in separate files for training, validation, and testing, to be used in part II of this tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b9f1a78c", + "metadata": {}, + "outputs": [], + "source": [ + "with open(TRAINING_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(training_dict_babi6, file)\n", + "with open(VALIDATION_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(validation_dict_babi6, file)\n", + "with open(TEST_DATASET_FILEPATH, 'wb') as file:\n", + " pickle.dump(test_dict_babi6, file) " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "experimentsenv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From e6b90337704cac185c0461ddba6e53a3e792fc53 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 29 May 2025 13:57:27 +0100 Subject: [PATCH 09/23] more changes + seeding for pytorch to improve accuracy --- .gitignore | 1 + docs/tutorials/discocirc_babi6_prep.ipynb | 180 ++++++++++++------ docs/tutorials/discocirc_babi6_training.ipynb | 37 ++-- ...l_Babi6_new_parser-release_training.ipynb} | 0 4 files changed, 139 insertions(+), 79 deletions(-) rename docs/tutorials/{tutorial_Babi6_new_parser-release training.ipynb => tutorial_Babi6_new_parser-release_training.ipynb} (100%) diff --git a/.gitignore b/.gitignore index cd1ef61..ec5a22b 100644 --- a/.gitignore +++ b/.gitignore @@ -171,6 +171,7 @@ venv/ ENV/ env.bak/ venv.bak/ +tutorials_env/ # Spyder project settings .spyderproject diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 1596676..94e4132 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -13,22 +13,10 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "cf759bce", "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'lambeq'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpathlib\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Path\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Tuple, List\n\u001b[0;32m----> 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlambeq\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexperimental\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdiscocirc\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m DisCoCircReader\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mos\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mwarnings\u001b[39;00m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'lambeq'" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "from typing import Tuple, List\n", @@ -76,13 +64,8 @@ "source": [ "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", "\n", -<<<<<<< HEAD:docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb - "# The path of the file where the initial bAbI6 data is stored\n", - "FILEPATH = '../data/qa6_train_10k.txt'\n", -======= "# The path of the file where the initial babI6 data is stored\n", "FILEPATH = '../examples/datasets/babi6_10k.txt'\n", ->>>>>>> 39f4d55de5fa9fac47f5b1bf90dca972d9093f50:docs/tutorials/discocirc_babi6_prep.ipynb "\n", "# Maximum length of the context\n", "TEXT_LENGTH = 4\n", @@ -102,9 +85,9 @@ "TEST_SAMPLE_SIZE = 30\n", "\n", "# Paths of resulting files for the datasets\n", - "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" + "TRAINING_DATASET_FILEPATH = 'circuits/tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'circuits/tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'circuits/tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" ] }, { @@ -123,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "05e8f624", "metadata": {}, "outputs": [], @@ -214,7 +197,70 @@ "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Evaluating checksum: 100.0%|█████████▉|1.533/1.533GB [00:01<00:00]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting model...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading model: 100.0%|█████████▉|1.533/1.533GB [05:48<00:00]\n", + "WARNING:lambeq.core.utils:Downloading SpaCy tokeniser. This action only has to happen once.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting en-core-web-sm==3.8.0\n", + " Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl (12.8 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.8/12.8 MB\u001b[0m \u001b[31m47.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", + "\u001b[?25hInstalling collected packages: en-core-web-sm\n", + "Successfully installed en-core-web-sm-3.8.0\n", + "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n", + "You can now load the package via spacy.load('en_core_web_sm')\n", + "\u001b[38;5;3m⚠ Restart to reload dependencies\u001b[0m\n", + "If you are in a Jupyter or Colab notebook, you may need to restart Python in\n", + "order to load all the package's dependencies. You can do this by selecting the\n", + "'Restart kernel' or 'Restart runtime' option.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sapienzanlp/maverick-mes-ontonotes loading\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" + ] + } + ], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -357,11 +403,17 @@ "metadata": {}, "outputs": [], "source": [ - "reduced_datadict = {}\n", - "for i in datadict.keys():\n", - " if i not in discarded_ids:\n", - " if datadict[i]['text_length'] < TEXT_LENGTH:\n", - " reduced_datadict.update({i:datadict[i]})" + "# reduced_datadict = {}\n", + "# for i in datadict.keys():\n", + "# if i not in discarded_ids:\n", + "# if datadict[i]['text_length'] < TEXT_LENGTH:\n", + "# reduced_datadict.update({i:datadict[i]})\n", + "\n", + "reduced_datadict = {\n", + " i: entry \n", + " for i, entry in datadict.items() \n", + " if set(entry['noun_list_question']).issubset(entry['noun_list_text']) and entry['text_length'] < TEXT_LENGTH\n", + "}" ] }, { @@ -379,23 +431,36 @@ "metadata": {}, "outputs": [], "source": [ - "# Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", + "# # Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", + "# def right_cod_size(circuit):\n", + "# if len(circuit.cod) > MAX_WIDTH:\n", + "# return False\n", + "# return True\n", + "\n", + "# def filter_entries_by_pos_neg_circuit_pair(entries):\n", + "# filtered_entries = {}\n", + " \n", + "# for key, entry in entries.items():\n", + "# pos_neg_circuit_pair = entry.get('text_circuit_sim4_13')\n", + "# if pos_neg_circuit_pair and right_cod_size(pos_neg_circuit_pair):\n", + "# filtered_entries[key] = entry\n", + " \n", + "# return filtered_entries\n", + "\n", + "# filtered_cod_datadict = filter_entries_by_pos_neg_circuit_pair(reduced_datadict)\n", + "\n", "def right_cod_size(circuit):\n", " if len(circuit.cod) > MAX_WIDTH:\n", " return False\n", " return True\n", "\n", - "def filter_entries_by_pos_neg_circuit_pair(entries):\n", - " filtered_entries = {}\n", - " \n", - " for key, entry in entries.items():\n", - " pos_neg_circuit_pair = entry.get('text_circuit_sim4_13')\n", - " if pos_neg_circuit_pair and right_cod_size(pos_neg_circuit_pair):\n", - " filtered_entries[key] = entry\n", - " \n", - " return filtered_entries\n", - "\n", - "filtered_cod_datadict = filter_entries_by_pos_neg_circuit_pair(reduced_datadict)" + "filtered_cod_datadict = {\n", + " i: entry \n", + " for i, entry in reduced_datadict.items() \n", + " if right_cod_size(entry['text_circuit_sim4_13'])\n", + " # or directly:\n", + " # if len(entry['text_circuit_sim4_13'].cod) <= MAX_WIDTH\n", + "}" ] }, { @@ -473,22 +538,25 @@ " qid1 = datadict[i]['noun_list_text'].index(q_nouns[0])\n", " qid2 = datadict[i]['noun_list_text'].index(q_nouns[1])\n", "\n", - " swap_required = False\n", + " swap_required = qid1 > qid2\n", " \n", - " if qid1 > qid2: \n", - " swap_required = True\n", - " elif qid1 < qid2:\n", - " swap_required = False\n", - " else:\n", - " print('noun ids are idential, error')\n", + " if qid1 == qid2:\n", + " print('noun ids are idential, removing entry')\n", + " del reduced_datadict[i]\n", + " continue\n", "\n", - " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", + " # quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", " \n", - " for k in range(1, len(text_circuit.cod)):\n", - " if k == qid1 or k == qid2:\n", - " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", - " else:\n", - " quest_mid_layer = quest_mid_layer @ Discard()\n", + " # for k in range(1, len(text_circuit.cod)):\n", + " # if k == qid1 or k == qid2:\n", + " # quest_mid_layer = quest_mid_layer @ Id(qubit)\n", + " # else:\n", + " # quest_mid_layer = quest_mid_layer @ Discard()\n", + "\n", + " quest_mid_layer = Id().tensor(*[\n", + " Discard() if k in [qid1, qid2] else Id(qubit)\n", + " for k in range(len(text_circuit.cod))\n", + " ])\n", "\n", " final_circuit = text_circuit >> quest_mid_layer\n", "\n", @@ -674,7 +742,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "tutorials_env", "language": "python", "name": "python3" }, @@ -688,7 +756,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.16" + "version": "3.11.11" } }, "nbformat": 4, diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 702cb0f..e17aaf7 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "b67efc5e", "metadata": {}, "outputs": [], @@ -25,9 +25,9 @@ "FFL = True\n", "\n", "# Names of Resulting file paths for the Datasets\n", - "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TRAINING_DATASET_FILEPATH = 'circuits/tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'circuits/tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'circuits/tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "\n", "BATCH_SIZE = 5\n", "EPOCHS = 30\n", @@ -46,19 +46,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "c6023fa1", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "import pickle\n", "training_dict_babi6 = {}\n", @@ -122,7 +113,7 @@ "id": "99b9ac0c", "metadata": {}, "source": [ - "The final output of the model is going to be a vector that we can interpret as a probability distribution over the possible answers (in this case [yes, no]). Therefore, We modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." + "The final output of the model is going to be a vector that we can interpret as a probability distribution over the possible answers (in this case [yes, no]). Therefore, We modify the yes and no answers and replace their representations with a one hot encoding over the possible assertions, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." ] }, { @@ -207,11 +198,11 @@ "metadata": {}, "outputs": [], "source": [ - "all_circuits = []\n", - "\n", - "all_circuits = [circuit for circuit_tuple in training_circuits for circuit in circuit_tuple]\n", - "all_circuits = [circuit for circuit_tuple in val_circuits for circuit in circuit_tuple]\n", - "all_circuits = [circuit for circuit_tuple in test_circuits for circuit in circuit_tuple]\n", + "all_circuits = [\n", + " circuit\n", + " for circuit_tuple in training_circuits + val_circuits + test_circuits\n", + " for circuit in circuit_tuple\n", + "]\n", "\n", "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", "model = PairCircuitModel.from_diagrams(all_circuits,\n", @@ -449,7 +440,7 @@ ], "metadata": { "kernelspec": { - "display_name": "experimentsenv", + "display_name": "tutorials_env", "language": "python", "name": "python3" }, @@ -463,7 +454,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.16" + "version": "3.11.11" } }, "nbformat": 4, diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb similarity index 100% rename from docs/tutorials/tutorial_Babi6_new_parser-release training.ipynb rename to docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb From 3f1a24f50eee319194f22d5a2cf20c82de0446f7 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 29 May 2025 14:26:09 +0100 Subject: [PATCH 10/23] removing redundant files --- ...i6_new_parser-release-preparing-data.ipynb | 700 ------------------ ...al_Babi6_new_parser-release_training.ipynb | 462 ------------ 2 files changed, 1162 deletions(-) delete mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb delete mode 100644 docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb deleted file mode 100644 index af26d58..0000000 --- a/docs/tutorials/tutorial_Babi6_new_parser-release-preparing-data.ipynb +++ /dev/null @@ -1,700 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "48aad21d", - "metadata": {}, - "source": [ - "\n", - "# Tutorial: babI6 Training and Preprocessing in Python\n", - "\n", - "In this tutorial, we will try to implement question answering for babI6 tasks. babI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "cf759bce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/notebooks/discocirc-experiments/lambeq/experimentsenv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], - "source": [ - "from pathlib import Path\n", - "from typing import Tuple, List\n", - "from lambeq.experimental.discocirc import DisCoCircReader\n", - "import os\n", - "import warnings\n", - "import pickle\n", - "\n", - "warnings.filterwarnings('ignore')\n", - "os.environ['TOKENIZERS_PARALLELISM'] = 'true'" - ] - }, - { - "cell_type": "markdown", - "id": "e20186c0", - "metadata": {}, - "source": [ - "Before we delve into the code, we first highlight two new features of the new parser that will be used in this tutorial: the sandwich functor and foliated frames. \n", - "\n", - "In the previous versions of the parser, the semantic functor, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of frames. The sandwich functor addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's contents. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter). For more detail on this, we recommend reading the paper explaining the theory behind the new parser [here](in_the_making)." - ] - }, - { - "cell_type": "markdown", - "id": "3e26d138", - "metadata": {}, - "source": [ - "## 1. Setting Up Configuration Variables\n", - "\n", - "This cell defines paths and key configuration variables:\n", - "- `FILEPATH` specifies paths to the file containing the babI6 data. \n", - "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", - "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", - "- `SANDWICH` is a flag for using the sandwich functor: True to apply the sandwich functor on the circuits, False to apply the usual semantic functor.\n", - "- `FFL` is a flag for activating the foliated frames. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", - "- `TRAINING_SAMPLE_SIZE`, `VALIDATION_SAMPLE_SIZE`, and `TEST_SAMPLE_SIZE` specify the size of the data for training, validation, and testing." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "28993a72", - "metadata": {}, - "outputs": [], - "source": [ - "# Here we store all the variables needed for the rest of the code: file paths, configurations, parameters...\n", - "\n", - "# The path of the file where the initial babI6 data is stored\n", - "FILEPATH = '../data/qa6_train_10k.txt'\n", - "\n", - "# Maximum length of the context\n", - "TEXT_LENGTH = 4\n", - "\n", - "# Maximum Number of wires in a circuit\n", - "MAX_WIDTH = 9\n", - "\n", - "# SANDWICH functor flag\n", - "SANDWICH = True\n", - "\n", - "# Updating the FFL parameter\n", - "FFL = True\n", - "\n", - "# Sizes of training, validation, and test datasets\n", - "TRAINING_SAMPLE_SIZE = 120\n", - "VALIDATION_SAMPLE_SIZE = 30\n", - "TEST_SAMPLE_SIZE = 30\n", - "\n", - "# Paths of resulting files for the datasets\n", - "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" - ] - }, - { - "cell_type": "markdown", - "id": "d21b2f18", - "metadata": {}, - "source": [ - "## 2. Data Preprocessing Function\n", - "\n", - "The next step is to write a function `task_file_reader`, which processes the babI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", - "\n", - "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. We want to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", - "\n", - "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "05e8f624", - "metadata": {}, - "outputs": [], - "source": [ - "# Reading the texts, questions, expected answers, and text_length from the TXT file\n", - "def task_file_reader(path : str | Path) -> Tuple[List[List[str]],\n", - " List[str],\n", - " List[str],\n", - " List[str]]:\n", - " \"\"\"\n", - " reads the .txt file at `path`\n", - " returns 4 lists of equal length\n", - " - text sentences, questions, answers and text length\n", - " \"\"\"\n", - " with open(path) as f:\n", - " lines = f.readlines()\n", - "\n", - " # split the lines into stories\n", - " # record the first line location of new stories\n", - " story_splits = [i for i, line in enumerate(lines) if line[0:2] == '1 ']\n", - " # have no more need for line indices - delete these\n", - " lines = [' '.join(line.split(' ')[1:]) for line in lines]\n", - " # also delete . and \\n\n", - " lines = [line.replace('.', '').replace('\\n','') for line in lines]\n", - " stories = [lines[i:j] for i, j in zip(story_splits, story_splits[1:]+[None])]\n", - "\n", - " # create text and QnA pairs\n", - " texts = []\n", - " qnas = []\n", - " text_length = []\n", - " for story in stories:\n", - " # record the lines in the story corresponding to questions\n", - " question_splits = [i for i, line in enumerate(story) if '?' in line]\n", - " for index in question_splits:\n", - " # record the text corresponding to each question\n", - " ctx = [line.lower() for line in story[:index] if '?' not in line]\n", - " texts.append(ctx)\n", - " text_length.append(len(ctx))\n", - " # record the question\n", - " qnas.append(story[index])\n", - "\n", - " # split qna into questions and answers\n", - " questions = [qna.split('\\t')[0].lower().rstrip()[:-1] + \" ?\" for qna in qnas]\n", - " answers = [qna.split('\\t')[1].lower() for qna in qnas]\n", - "\n", - " # Filtering the data \n", - " filtered_data = [\n", - " (text, question, answer, text_length)\n", - " for text, question, answer, text_length in zip(texts, questions, answers, text_length) \n", - " if len(text) <= TEXT_LENGTH\n", - " ]\n", - " # Applying the filter\n", - " texts, questions, answers, text_length = map(list, zip(*filtered_data))\n", - "\n", - " # Converting the texts from arrays of sentences to strings\n", - " processed_texts_list = []\n", - " for text in texts:\n", - " processed_text = \"\"\n", - " for sentence in text:\n", - " processed_text += sentence + \". \"\n", - " \n", - " processed_texts_list.append(processed_text)\n", - "\n", - " processed_texts_list = [\". \".join(text) + \". \" for text in texts]\n", - "\n", - " return processed_texts_list, questions, answers, text_length\n", - "\n", - "\n", - "texts, questions, answers, text_lengths = task_file_reader(FILEPATH)" - ] - }, - { - "cell_type": "markdown", - "id": "67428372", - "metadata": {}, - "source": [ - "## 3. Converting The Texts into Circuits\n", - "\n", - "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the reader, then we use it with the `SANDWICH` flag indicating whether to use the SANDWICH functor or not, as well as the `FFL` flag which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", - "\n", - "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated DisCoCirc circuit, the question, the answer, and the text_length." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "5dbca676", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# making the circuits from the texts and storing them in the dictionary\n", - "reader = DisCoCircReader()\n", - "datadict = {}\n", - "for i, (text, quest, ans, text_length) in enumerate(zip(texts, questions, answers, text_lengths)):\n", - " datadict.update({i:{'text':text, 'dsc_diag': reader.text2circuit(text, sandwich=SANDWICH, foliated_frame_labels = FFL), 'question':quest, 'answer':ans, 'text_length': text_length}})\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "b150eddc", - "metadata": {}, - "source": [ - "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", - "While we have the circuits corresponding to the texts ready, they are still DisCoCirc circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into quantum circuits by applying an ansatz. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one qubit for each noun." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "73465ead", - "metadata": {}, - "outputs": [], - "source": [ - "from lambeq import Sim4Ansatz\n", - "from lambeq import AtomicType\n", - "\n", - "N = AtomicType.NOUN\n", - "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", - "\n", - "for i in datadict.keys():\n", - " datadict[i].update({'text_circuit_sim4_13': ansatz(datadict[i]['dsc_diag'])})" - ] - }, - { - "cell_type": "markdown", - "id": "ffdeb9a1", - "metadata": {}, - "source": [ - "## 5. Question Circuits and Further Processing\n", - "The main spirit of this tutorial is having questions also be circuits that one sequetially composes with the circuits representing texts in order to see the similarity between the texts and guess the answer to the question by performing postselections. More details on question answering can be found [here](https://arxiv.org/pdf/2409.08777).\n", - "\n", - "Now that we already have the circuits representing the texts, we need to make the circuits representing the questions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the question, we have to make sure that the wires of the question box correspond to the nouns from the text that are asked about. \n", - "\n", - "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the babI6 experiments, all the questions are of the format \"Is the subject in the location?\"." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "15baa8dd", - "metadata": {}, - "outputs": [], - "source": [ - "from lambeq.backend.grammar import Ty\n", - "\n", - "def return_noun_list(text):\n", - " noun_list = []\n", - " for b in text.boxes:\n", - " if b.dom == Ty() and b.cod == N:\n", - " noun_list.append(b.name)\n", - " \n", - " return noun_list" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "32d767fc", - "metadata": {}, - "outputs": [], - "source": [ - "def return_q_nouns(question):\n", - " question_words = question.split(' ')\n", - " q_nouns = [question_words[1], question_words[4].strip('?')]\n", - " return q_nouns" - ] - }, - { - "cell_type": "markdown", - "id": "7ae48f77", - "metadata": {}, - "source": [ - "We proceed to add the lists obtained from the functions above to the dictionary to be used later when building the question circuits. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "eeefa4e2", - "metadata": {}, - "outputs": [], - "source": [ - "for i in datadict.keys():\n", - " datadict[i].update({'noun_list_text': return_noun_list(datadict[i]['dsc_diag'])})\n", - " datadict[i].update({'noun_list_question': return_q_nouns(datadict[i]['question'])})" - ] - }, - { - "cell_type": "markdown", - "id": "210a2617", - "metadata": {}, - "source": [ - "We needed to extract the list of nouns in the texts as well as the list of nouns in their corresponding questions to remove the entries where the question nouns include nouns that are not in the text (questions that ask about subjects or locations not present in the text. We do this for simplification purposes). The following cell checks every entry from the `datadict` dictionary and adds the ids of \"bad\" entries (entries where the question contains nouns not present in the text) to the `discarded_ids` list that will be used later on." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "ac2c4298", - "metadata": {}, - "outputs": [], - "source": [ - "#reduce texts where question nouns are not in the text\n", - "discarded_ids = []\n", - "for i in datadict.keys():\n", - " text_nouns = datadict[i]['noun_list_text']\n", - " q_nouns = datadict[i]['noun_list_question']\n", - " for noun in q_nouns:\n", - " if noun not in text_nouns:\n", - " discarded_ids.append(i)\n", - " break" - ] - }, - { - "cell_type": "markdown", - "id": "7deda19b", - "metadata": {}, - "source": [ - "Now that we have a list of ids of entries that should be discarded because they contain nouns in the questions that are not present in the reduced contexts corresponding to them, we simply remove the said entries from the `datadict` dictionary." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "f75a2315", - "metadata": {}, - "outputs": [], - "source": [ - "# This is to be merged with the cell below by adding the logic for removing the ones that have less text length.\n", - "reduced_datadict = {\n", - " i: entry \n", - " for i, entry in datadict.items() \n", - " if set(entry['noun_list_question']).issubset(entry['noun_list_text'])\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "72b15b5f", - "metadata": {}, - "outputs": [], - "source": [ - "reduced_datadict = {}\n", - "for i in datadict.keys():\n", - " if i not in discarded_ids:\n", - " if datadict[i]['text_length'] < TEXT_LENGTH:\n", - " reduced_datadict.update({i:datadict[i]})" - ] - }, - { - "cell_type": "markdown", - "id": "33fb6e7e", - "metadata": {}, - "source": [ - "Moreover, remember that for efficiency purposes, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "af318e63", - "metadata": {}, - "outputs": [], - "source": [ - "# Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", - "def right_cod_size(circuit):\n", - " return len(circuit.cod) < MAX_WIDTH\n", - "\n", - "def filter_circuits_by_width(entries):\n", - " filtered_entries = {}\n", - " \n", - " for key, entry in entries.items():\n", - " circuit = entry.get('text_circuit_sim4_13')\n", - " if circuit and right_cod_size(circuit):\n", - " filtered_entries[key] = entry\n", - " \n", - " return filtered_entries\n", - "\n", - "filtered_cod_datadict = filter_circuits_by_width(reduced_datadict)" - ] - }, - { - "cell_type": "markdown", - "id": "b04a8ff9", - "metadata": {}, - "source": [ - "Now that the text circuits are post-processed for optimization, it is time to make the question answering circuits to later sequentially compose the latter with the former. \n", - "\n", - "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question answering in DiscoCir, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", - "\n", - "Notice that we also created two question boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", - "\n", - "We apply the same ansatz applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the ansatz to a parallel composition of two effects (bras). " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "a4ea6896", - "metadata": {}, - "outputs": [], - "source": [ - "from lambeq.backend.grammar import Box, Id\n", - "from lambeq.backend.quantum import Bra, Discard, qubit, Id, Swap\n", - "from lambeq import AtomicType, Sim4Ansatz\n", - "\n", - "N = AtomicType.NOUN\n", - "\n", - "q1 = Box('is_in', N@N, N@N)\n", - "q2 = Box('is_not_in', N@N, N@N)\n", - "\n", - "ansatz = Sim4Ansatz({N:1}, n_layers=3)\n", - "qcirc1 = ansatz(q1)\n", - "qcirc2 = ansatz(q2)\n", - "\n", - "#add the postselections to the questions\n", - "qcirc1_final = qcirc1 >> Bra(0) @ Bra(0)\n", - "qcirc2_final = qcirc2 >> Bra(0) @ Bra(0)\n", - "\n", - "is_in_q = qcirc1_final\n", - "is_not_in_q = qcirc2_final\n", - "\n", - "is_in_q_swp = Swap(qubit, qubit) >> qcirc1 >> Bra(0) @ Bra(0)\n", - "is_not_in_q_swp = Swap(qubit, qubit) >> qcirc2 >> Bra(0) @ Bra(0)" - ] - }, - { - "cell_type": "markdown", - "id": "fa5f120a", - "metadata": {}, - "source": [ - "## 5. Assembling The Text Circuits with the Question Circuits\n", - "\n", - "Now that we have all the ingredients in place (the text and question circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", - "\n", - "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question. In order for us to attach the question boxes, we have to make sure that the wires from the question circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the quetion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created question boxes that are also equiped with swaps for this purpose).\n", - "\n", - "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative questions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative questions." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9f50a873", - "metadata": {}, - "outputs": [], - "source": [ - "# Bringing everything together by plugging the question answering part to the text circuits\n", - "for i in reduced_datadict.keys():\n", - " \n", - " text_circuit = reduced_datadict[i]['text_circuit_sim4_13']\n", - " text_nouns = datadict[i]['noun_list_text']\n", - " q_nouns = datadict[i]['noun_list_question']\n", - " qid1 = datadict[i]['noun_list_text'].index(q_nouns[0])\n", - " qid2 = datadict[i]['noun_list_text'].index(q_nouns[1])\n", - "\n", - " swap_required = False\n", - " \n", - " if qid1 > qid2: \n", - " swap_required = True\n", - " elif qid1 < qid2:\n", - " swap_required = False\n", - " else:\n", - " print('noun ids are idential, error')\n", - "\n", - " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", - " \n", - " \n", - " for k in range(1, len(text_circuit.cod)):\n", - " if k == qid1 or k == qid2:\n", - " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", - " else:\n", - " quest_mid_layer = quest_mid_layer @ Discard()\n", - "\n", - " final_circuit = text_circuit >> quest_mid_layer\n", - "\n", - " if swap_required:\n", - " final_circuit_pos = final_circuit >> is_in_q_swp\n", - " final_circuit_neg = final_circuit >> is_not_in_q_swp\n", - " else:\n", - " final_circuit_pos = final_circuit >> is_in_q\n", - " final_circuit_neg = final_circuit >> is_not_in_q\n", - "\n", - " reduced_datadict[i].update({'pos_neg_circuit_pair': (final_circuit_pos, final_circuit_neg)})" - ] - }, - { - "cell_type": "markdown", - "id": "8fd17926", - "metadata": {}, - "source": [ - "## 6. Preparing The Datasets for Training\n", - "Now that our circuit pairs are ready, we move on to the final step of training a model.\n", - "\n", - "The first step is to prepare the data for training. We start with updating the \"yes\"." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "bc8aecdb", - "metadata": {}, - "outputs": [], - "source": [ - "babi6_datadict = {}\n", - "for i in reduced_datadict.keys():\n", - " # Add the updated dictionary with the transformed 'answer'\n", - " babi6_datadict.update({\n", - " i: {\n", - " 'text': reduced_datadict[i]['text'],\n", - " 'question': reduced_datadict[i]['question'],\n", - " 'answer': 1 if reduced_datadict[i]['answer'] == 'yes' else 0, # Transform 'yes' to 1 and 'no' to 0\n", - " 'quantum_circ_pair_pos_neg': reduced_datadict[i]['pos_neg_circuit_pair'],\n", - " 'text_length': reduced_datadict[i]['text_length']\n", - " }\n", - " })" - ] - }, - { - "cell_type": "markdown", - "id": "3545dc09", - "metadata": {}, - "source": [ - "The next step would be to make three sets: training, validation, and test sets. We try to balance the entries." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "bcecde44", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the minimum size is: 88\n" - ] - } - ], - "source": [ - "import random\n", - "from collections import defaultdict\n", - "\n", - "# Add the 'measure' field to each item\n", - "for key, value in babi6_datadict.items():\n", - " temp = -1 if value['answer'] == 0 else 1\n", - " value['measure'] = temp * value['text_length']\n", - "\n", - "# Group items by absolute value of measure\n", - "abs_value_groups = defaultdict(list)\n", - "for key, value in babi6_datadict.items():\n", - " abs_value = abs(value['measure'])\n", - " abs_value_groups[abs_value].append((key, value))\n", - "\n", - "# Balance signs within each group and ensure diverse sizes\n", - "new_balanced_dict = {}\n", - "for abs_value, items in abs_value_groups.items():\n", - " # Separate positive and negative items\n", - " positive_items = [(k, v) for k, v in items if v['measure'] > 0]\n", - " negative_items = [(k, v) for k, v in items if v['measure'] < 0]\n", - " \n", - " # Determine the maximum balanced size for this group\n", - " min_size = min(len(positive_items), len(negative_items))\n", - " print(\"the minimum size is: \" + str(min_size))\n", - " \n", - " # Randomly sample from each group to balance\n", - " balanced_positive = random.sample(positive_items, min_size)\n", - " balanced_negative = random.sample(negative_items, min_size)\n", - " \n", - " # Add to the balanced dictionary\n", - " for k, v in balanced_positive + balanced_negative:\n", - " new_balanced_dict[k] = v" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "91b7c34d", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", - "\n", - "# Convert dictionary into list of keys and values\n", - "keys = list(new_balanced_dict.keys())\n", - "values = list(new_balanced_dict.values())\n", - "\n", - "# Split into training and temporary (validation + testing)\n", - "train_keys, temp_keys, train_values, temp_values = train_test_split(\n", - " keys, values, test_size=0.4, random_state=42 # 60% training, 40% temp\n", - ")\n", - "\n", - "# =Split the temporary set into validation and testing\n", - "val_keys, test_keys, val_values, test_values = train_test_split(\n", - " temp_keys, temp_values, test_size=0.5, random_state=42 # 20% validation, 20% testing\n", - ")\n", - "\n", - "# Reconstruct dictionaries for training, validation, and testing\n", - "training_dict_babi6 = {k: v for k, v in zip(train_keys, train_values)}\n", - "validation_dict_babi6 = {k: v for k, v in zip(val_keys, val_values)}\n", - "test_dict_babi6 = {k: v for k, v in zip(test_keys, test_values)}" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "0dd61567", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "52\n", - "53\n" - ] - } - ], - "source": [ - "yes_count = 0\n", - "no_count = 0\n", - "for i in training_dict_babi6:\n", - " if training_dict_babi6[i]['answer'] == 0:\n", - " no_count += 1\n", - " else:\n", - " yes_count += 1\n", - "\n", - "print(yes_count)\n", - "print(no_count)" - ] - }, - { - "cell_type": "markdown", - "id": "af769549", - "metadata": {}, - "source": [ - "Now, the final step is to store all of this data in separate files for training, validation, and testing, to be used in part II of this tutorial." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "b9f1a78c", - "metadata": {}, - "outputs": [], - "source": [ - "with open(TRAINING_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(training_dict_babi6, file)\n", - "with open(VALIDATION_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(validation_dict_babi6, file)\n", - "with open(TEST_DATASET_FILEPATH, 'wb') as file:\n", - " pickle.dump(test_dict_babi6, file) " - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "experimentsenv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb b/docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb deleted file mode 100644 index 45b5845..0000000 --- a/docs/tutorials/tutorial_Babi6_new_parser-release_training.ipynb +++ /dev/null @@ -1,462 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "48aad21d", - "metadata": {}, - "source": [ - "# Tutorial: BabI6 Training and Preprocessing in Python (Part II)\n", - "\n", - "In Part I of this tutorial, we learned how to create DisCoCirc circuits for question asking for the babI6 dataset. In this part, we proceed to train the model with the circuits that we created." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "b67efc5e", - "metadata": {}, - "outputs": [], - "source": [ - "# Parameters determining the type of the data\n", - "# SANDWICH functor flag\n", - "SANDWICH = True\n", - "\n", - "# Updating the FFL Parameter\n", - "FFL = True\n", - "\n", - "# Names of Resulting file paths for the Datasets\n", - "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "\n", - "BATCH_SIZE = 5\n", - "EPOCHS = 30\n", - "SEED = 2\n", - "LEARNING_RATE = 0.005" - ] - }, - { - "cell_type": "markdown", - "id": "0f9091f4", - "metadata": {}, - "source": [ - "## 8. Training the Circuits and Tests\n", - "Now that we have the data ready, we proceed with the training as usual, except that, we have to deal with pairs of circuits instead of single circuits, which will be accommodated by overriding the forward() method in the model." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "c6023fa1", - "metadata": {}, - "outputs": [], - "source": [ - "import pickle\n", - "training_dict_babi6 = {}\n", - "\n", - "with open(TRAINING_DATASET_FILEPATH, 'rb') as file:\n", - " training_dict_babi6 = pickle.load(file)\n", - "\n", - "val_dict_babi6 = {}\n", - "\n", - "with open(VALIDATION_DATASET_FILEPATH, 'rb') as file:\n", - " val_dict_babi6 = pickle.load(file)\n", - "\n", - "test_dict_babi6 = {}\n", - "with open(TEST_DATASET_FILEPATH, 'rb') as file:\n", - " test_dict_babi6 = pickle.load(file)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "1565fb9d", - "metadata": {}, - "outputs": [], - "source": [ - "training_circuits = []\n", - "training_answers = []\n", - "training_questions = []\n", - "training_contexts = []\n", - "\n", - "for key, value in training_dict_babi6.items():\n", - " training_answers.append(value['answer'])\n", - " training_questions.append(value['question'])\n", - " training_contexts.append(value['text'])\n", - " training_circuits.append(value['quantum_circ_pair_pos_neg'])\n", - "\n", - "val_circuits = []\n", - "val_answers = []\n", - "val_questions = []\n", - "val_contexts = []\n", - "\n", - "for key, value in val_dict_babi6.items():\n", - " val_answers.append(value['answer'])\n", - " val_questions.append(value['question'])\n", - " val_contexts.append(value['text'])\n", - " val_circuits.append(value['quantum_circ_pair_pos_neg'])\n", - " \n", - "test_circuits = []\n", - "test_answers = []\n", - "test_questions = []\n", - "test_contexts = []\n", - "\n", - "for key, value in test_dict_babi6.items():\n", - " test_answers.append(value['answer'])\n", - " test_questions.append(value['question'])\n", - " test_contexts.append(value['text'])\n", - " test_circuits.append(value['quantum_circ_pair_pos_neg'])" - ] - }, - { - "cell_type": "markdown", - "id": "99b9ac0c", - "metadata": {}, - "source": [ - "The final output of the model is going to be a vector that we can interpret as a probability distribution over the possible answers (in this case [yes, no]). Therefore, We modify the yes and no answers and replace their representations by 1s and 0s, i.e. by \"[1, 0]\"s and \"[0, 1]\"s respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "007b6bc8", - "metadata": {}, - "outputs": [], - "source": [ - "training_answers = [[0., 1.] if not answer else [1., 0.] for answer in training_answers]\n", - "val_answers = [[0., 1.] if not answer else [1., 0.] for answer in val_answers]\n", - "test_answers = [[0., 1.] if not answer else [1., 0.] for answer in test_answers]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "6857d72a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "105" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(training_answers)" - ] - }, - { - "cell_type": "markdown", - "id": "1d54c0c2", - "metadata": {}, - "source": [ - "The following shows how we override the forward() method to accommodate having pairs of circuits." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "67d6507a", - "metadata": {}, - "outputs": [], - "source": [ - "from lambeq import PennyLaneModel\n", - "from lambeq.backend.quantum import Diagram\n", - "import torch\n", - "\n", - "\n", - "class PairCircuitModel(PennyLaneModel):\n", - " def forward(self, circ_pairs: list[tuple[Diagram, Diagram]]) -> torch.Tensor:\n", - " pos_circs, neg_circs = zip(*circ_pairs)\n", - " pos_out = abs(self.get_diagram_output(pos_circs))\n", - " neg_out = abs(self.get_diagram_output(neg_circs))\n", - "\n", - " # implement a function that would merge pos_out and neg_out into an nx2 tensor\n", - " out_tensor = torch.stack((pos_out, neg_out), dim=1)\n", - " out_tensor = torch.softmax(out_tensor, dim=1)\n", - " \n", - " return out_tensor\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "549f1f68", - "metadata": {}, - "source": [ - "The way circuits are stored in our current example is as pairs. However, when initializing circuits, one has to simply pass all the circuits to be initilised to the model (as seen in later cells). Therefore, for the initialisation step, we will create a new collection of circuits that includes all the circuits from the pairs of circuits that we originally have." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "84d09be7", - "metadata": {}, - "outputs": [], - "source": [ - "all_circuits = [\n", - " circuit\n", - " for circuit_tuple in training_circuits + val_circuits + test_circuits\n", - " for circuit in circuit_tuple\n", - "]\n", - "\n", - "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", - "model = PairCircuitModel.from_diagrams(all_circuits,\n", - " probabilities=False,\n", - " normalize=True,\n", - " backend_config=backend_config)\n", - "\n", - "model.initialise_weights()" - ] - }, - { - "cell_type": "markdown", - "id": "a897cf89", - "metadata": {}, - "source": [ - "Finally, we proceed with training as usual (see previous tutorials for more details on this part)." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "9081225f", - "metadata": {}, - "outputs": [], - "source": [ - "def acc(y_hat, y):\n", - " return (torch.argmax(y_hat, dim=1) ==\n", - " torch.argmax(y, dim=1)).sum().item()/len(y)\n", - "\n", - "def loss(y_hat, y):\n", - " return torch.nn.functional.binary_cross_entropy(\n", - " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", - " )\n", - "\n", - "\n", - "eval_metrics = {\"acc\": acc}" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "991d8f44", - "metadata": {}, - "outputs": [], - "source": [ - "from lambeq import Dataset\n", - "\n", - "train_dataset = Dataset(training_circuits,\n", - " training_answers,\n", - " batch_size=BATCH_SIZE)\n", - "\n", - "val_dataset = Dataset(val_circuits, val_answers, shuffle=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "ec1a4b8e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "105" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(train_dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "a340f1a1", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_83154/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", - "Epoch 1: train/loss: 0.9346 valid/loss: 6.8342 train/time: 5.32s valid/time: 1.01s train/acc: 0.5905 valid/acc: 0.5429\n", - "Epoch 2: train/loss: 0.2990 valid/loss: 8.0345 train/time: 5.46s valid/time: 1.02s train/acc: 0.6095 valid/acc: 0.5143\n", - "Epoch 3: train/loss: 0.7921 valid/loss: 2.7350 train/time: 5.36s valid/time: 1.03s train/acc: 0.7333 valid/acc: 0.5429\n", - "Epoch 4: train/loss: 14.7256 valid/loss: 7.4992 train/time: 5.32s valid/time: 1.03s train/acc: 0.5619 valid/acc: 0.4857\n", - "Epoch 5: train/loss: 1.0462 valid/loss: 4.2637 train/time: 5.44s valid/time: 1.05s train/acc: 0.6286 valid/acc: 0.4857\n", - "Epoch 6: train/loss: 0.1580 valid/loss: 12.2741 train/time: 5.70s valid/time: 1.03s train/acc: 0.6190 valid/acc: 0.4571\n", - "Epoch 7: train/loss: 6.8167 valid/loss: 5.6832 train/time: 5.39s valid/time: 1.04s train/acc: 0.7238 valid/acc: 0.4857\n", - "Epoch 8: train/loss: 0.3790 valid/loss: 6.2157 train/time: 5.17s valid/time: 1.26s train/acc: 0.7333 valid/acc: 0.4286\n", - "Epoch 9: train/loss: 0.2092 valid/loss: 7.0995 train/time: 5.21s valid/time: 1.27s train/acc: 0.8000 valid/acc: 0.4857\n", - "Epoch 10: train/loss: 0.1870 valid/loss: 6.0674 train/time: 5.33s valid/time: 1.48s train/acc: 0.8190 valid/acc: 0.4857\n", - "Epoch 11: train/loss: 0.2487 valid/loss: 3.8180 train/time: 5.46s valid/time: 1.03s train/acc: 0.8857 valid/acc: 0.5714\n", - "Epoch 12: train/loss: 0.0456 valid/loss: 3.2134 train/time: 5.52s valid/time: 1.04s train/acc: 0.8667 valid/acc: 0.5714\n", - "Epoch 13: train/loss: 0.2040 valid/loss: 3.2660 train/time: 5.38s valid/time: 1.05s train/acc: 0.8857 valid/acc: 0.5714\n", - "Epoch 14: train/loss: 0.1381 valid/loss: 3.2107 train/time: 5.67s valid/time: 1.05s train/acc: 0.9238 valid/acc: 0.5714\n", - "Epoch 15: train/loss: 0.1448 valid/loss: 3.0778 train/time: 5.53s valid/time: 1.08s train/acc: 0.9238 valid/acc: 0.6286\n", - "Epoch 16: train/loss: 1.2513 valid/loss: 3.7392 train/time: 5.48s valid/time: 1.05s train/acc: 0.7143 valid/acc: 0.5143\n", - "Epoch 17: train/loss: 0.0843 valid/loss: 5.8888 train/time: 6.10s valid/time: 1.09s train/acc: 0.7333 valid/acc: 0.6286\n", - "Epoch 18: train/loss: 0.3621 valid/loss: 6.2788 train/time: 5.48s valid/time: 1.05s train/acc: 0.8381 valid/acc: 0.6000\n", - "Epoch 19: train/loss: 0.0967 valid/loss: 4.8195 train/time: 5.46s valid/time: 1.14s train/acc: 0.8952 valid/acc: 0.6571\n", - "Epoch 20: train/loss: 0.3041 valid/loss: 4.3510 train/time: 5.44s valid/time: 1.06s train/acc: 0.9238 valid/acc: 0.6286\n", - "Epoch 21: train/loss: 0.0788 valid/loss: 4.5908 train/time: 5.93s valid/time: 1.10s train/acc: 0.9524 valid/acc: 0.6000\n", - "Epoch 22: train/loss: 0.3641 valid/loss: 4.6065 train/time: 5.84s valid/time: 1.13s train/acc: 0.9714 valid/acc: 0.6286\n", - "Epoch 23: train/loss: 0.0930 valid/loss: 5.3995 train/time: 5.44s valid/time: 1.05s train/acc: 0.9810 valid/acc: 0.6286\n", - "Epoch 24: train/loss: 0.1385 valid/loss: 5.4588 train/time: 5.42s valid/time: 1.05s train/acc: 0.9714 valid/acc: 0.6286\n", - "Epoch 25: train/loss: 0.2872 valid/loss: 6.8909 train/time: 5.54s valid/time: 1.06s train/acc: 0.9905 valid/acc: 0.6286\n", - "Epoch 26: train/loss: 0.0618 valid/loss: 7.5244 train/time: 5.54s valid/time: 1.12s train/acc: 0.9714 valid/acc: 0.6000\n", - "Epoch 27: train/loss: 0.1148 valid/loss: 7.2076 train/time: 5.27s valid/time: 1.29s train/acc: 0.9810 valid/acc: 0.6286\n", - "Epoch 28: train/loss: 0.2075 valid/loss: 8.3714 train/time: 5.19s valid/time: 1.29s train/acc: 0.9905 valid/acc: 0.6286\n", - "Epoch 29: train/loss: 0.1348 valid/loss: 7.4553 train/time: 5.22s valid/time: 1.30s train/acc: 0.9905 valid/acc: 0.6286\n", - "Epoch 30: train/loss: 0.0633 valid/loss: 10.5360 train/time: 5.21s valid/time: 1.29s train/acc: 0.9810 valid/acc: 0.6000\n", - "\n", - "Training completed!\n", - "train/time: 2m44s train/time_per_epoch: 5.46s train/time_per_step: 0.26s valid/time: 33.54s valid/time_per_eval: 1.12s\n" - ] - } - ], - "source": [ - "from lambeq import PytorchTrainer\n", - "\n", - "trainer = PytorchTrainer(\n", - " model=model,\n", - " loss_function=loss,\n", - " optimizer=torch.optim.Adam,\n", - " learning_rate=LEARNING_RATE,\n", - " epochs=EPOCHS,\n", - " evaluate_functions=eval_metrics,\n", - " evaluate_on_train=True,\n", - " use_tensorboard=False,\n", - " verbose='text',\n", - " seed=SEED\n", - " )\n", - "\n", - "trainer.fit(train_dataset, val_dataset)" - ] - }, - { - "cell_type": "markdown", - "id": "c91c8756", - "metadata": {}, - "source": [ - "Now that the training has ended, the final part is to test and plot the graphs for the results of the training as shown below. " - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "2df2f3c7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(19.4, 0.6571428571428571, 'early stopping')" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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585y7NgxsYmnngKhDj10eIu+d91Sl5MnT5a1a9fK5s2bzYWdHlo/Oizp7Nmzrq67/1W+6uiXROWGutOeu6SkJOnbt6+ZqUkvFJ87d6419eavAimXFNlkB7flku3ZZGsu+UM2BXTDSV98feE3btxY5dSm3tbTgDa5cOGC6U3QngWb6DAB/UBUrsNz586ZGYxsq0OPX375xYwl9/e61GuK9eCtp9E3bdpk6qoy/eyFhIRUqTsdLqDXO7ih7nyVrzraS6b8ve6qo8fGP//80/X15u8CKZcU2WQHt+SS7dkUaLnUINnkBLilS5eaWW5yc3OdQ4cOORMmTHAiIyOdkydPOm727LPPOnl5eU5hYaGzdetWJy0tzYmKijIzrLjN+fPnnT179phF37Jz5swxv//8889mfU5OjqmzNWvWOPv27TMz/XTs2NH5448/HLeXT9dNnTrVzAijdblhwwanT58+TqdOnZzLly87/mzixIlORESEeR+WlJR4l0uXLnkfk5mZ6bRv397ZtGmTU1BQ4KSkpJjFDXyV79ixY85rr71myqV1p+/PxMREZ8CAAY6/mzZtmpmFSfdbP1N6OygoyPn6669dX29uYGsuKbLJHdlkay7Znk0255K/ZFPAN5zU/PnzzQsdGhpqpoHdvn2743YjR450YmNjTZni4+PNbf3AuNHmzZvNgfvaRadD9Uz7+sorrzjR0dHmy0Zqaqpz5MgRx4by6cEuPT3dadOmjZlmMyEhwRk/frwrvkBVVyZdPvroI+9j9AvEpEmTzHSiTZs2dR544AFzkHcDX+UrKioyYdSqVSvzvkxKSnKee+45p6yszPF348aNM+81PX7oe08/U55gcnu9uYWNuaTIJndkk625ZHs22ZxL/pJNQfrPv3f+CgAAAADsE9DXOAEAAABATdBwAgAAAAAfaDgBAAAAgA80nAAAAADABxpOAAAAAOADDScAAAAA8IGGEwAAAAD4QMMJAAAAAHyg4QRYokOHDvLOO+809G4AAGCQS7ANDSfgBowdO1aGDx9ufh80aJBMmTKl3radm5srkZGR193/7bffyoQJE+ptPwAA/oNcAupe43rYBoAauHLlioSGht7w89u0afOv7g8AILCRS0BVnHECatnDl5+fL3PnzpWgoCCz/PTTT2bdgQMHZOjQodK8eXOJjo6Wxx57TE6fPu19rvYITp482fQKRkVFyZAhQ8z9c+bMkV69ekmzZs2kXbt2MmnSJLlw4YJZl5eXJ0888YSUlZV5tzdjxoxqh0QUFRVJRkaG2X6LFi3k4YcfllOnTnnX6/NuvfVW+fTTT81zIyIiZNSoUXL+/HnvY1asWGH2pUmTJtK6dWtJS0uTixcv1sMrCwC4EeQSUHdoOAG1oMGUkpIi48ePl5KSErNoqJw9e1YGDx4st912mxQUFMiXX35pwkFDorKPP/7Y9OZt3bpVFi1aZO4LDg6WefPmycGDB836TZs2yfPPP2/W3X333SaENHA825s6dep1+1VRUWHC6bfffjMBun79evnxxx9l5MiRVR53/PhxWb16taxdu9Ys+ticnByzTv/vRx55RMaNGyeHDx824ThixAhxHKcOX1EAQG2QS0DdYageUAvaG6YB07RpU4mJifHev2DBAhNOb7zxhve+Dz/80ITXDz/8IJ07dzb3derUSWbPnl3l/6w8Ll173F5//XXJzMyUd99912xLt6k9epW3d62NGzfK/v37pbCw0GxTffLJJ9KjRw8z5rxfv37eINOx6eHh4ea29j7qc2fNmmUC6q+//jKhlJCQYNZrLx8AwH+RS0Dd4YwTUAe+++472bx5sxmO4Fm6du3q7U3z6Nu373XP3bBhg6Smpkp8fLwJDg2NM2fOyKVLl2q8fe2J02DyhJPq3r27uXhX11UOQE84qdjYWCktLTW/Jycnm/3QUHrooYfk/fffl99///0GXg0AQEMjl4Dao+EE1AEd+z1s2DDZu3dvleXo0aMyYMAA7+N0vHhlOg79/vvvl969e8vnn38uu3btkoULF3ov0v23hYSEVLmtPYba26caNWpkhlKsW7fOhNv8+fOlS5cuprcQAOAu5BJQezScgFrSYQrl5eVV7uvTp48ZC649Z0lJSVWWa0OpMg0kDYi3335b7rrrLjN0ori42Of2rtWtWzc5ceKEWTwOHTpkxrhr2NSUBlb//v1l5syZsmfPHrPtVatW1fj5AID6Ry4BdYOGE1BLGkI7duwwvXI6O5EGTFZWlrkAVi9i1bHbOgziq6++MjMP/V24aIBdvXrV9KLpRbM6s5Dn4tzK29OeQx3zrdurbqiEzjKkQxlGjx4tu3fvlp07d8rjjz8uAwcOlNtvv71G5dIy6Vh4vYhYZ0JauXKl/Prrryb8AAD+i1wC6gYNJ6CWdPYgHT6gPWb6Nyv0YB4XF2dmJNIwSk9PN2GhF9fqWG6dneh/0fHbOu3rm2++KT179pTFixdLdnZ2lcfoDEZ6Ua7ORKTbu/YiXk+P3Jo1a6Rly5ZmCIYGVmJioixbtqzG5dIZkrZs2SL33Xef6WF8+eWXTY+jTmULAPBf5BJQN4Ic5nAEAAAAgL/FGScAAAAA8IGGEwAAAAD4QMMJAAAAAHyg4QQAAAAAPtBwAgAAAAAfaDgBAAAAgA80nAAAAADABxpOAAAAAOADDScAAAAA8IGGEwAAAAD4QMMJAAAAAOTv/T+JFC5witk1xAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "fig, ((ax_tl, ax_tr), (ax_bl, ax_br)) = plt.subplots(2, 2, sharex=True, sharey='row', figsize=(10, 6))\n", - "ax_tl.set_title('Training set')\n", - "ax_tr.set_title('Development set')\n", - "ax_bl.set_xlabel('Iterations')\n", - "ax_br.set_xlabel('Iterations')\n", - "ax_bl.set_ylabel('Accuracy')\n", - "ax_tl.set_ylabel('Loss')\n", - "\n", - "colours = iter(plt.rcParams['axes.prop_cycle'].by_key()['color'])\n", - "range_ = np.arange(1, trainer.epochs + 1)\n", - "ax_tl.plot(range_, trainer.train_epoch_costs, color=next(colours))\n", - "ax_bl.plot(range_, trainer.train_eval_results['acc'], color=next(colours))\n", - "ax_tr.plot(range_, trainer.val_costs, color=next(colours))\n", - "ax_br.plot(range_, trainer.val_eval_results['acc'], color=next(colours))\n", - "\n", - "# mark best model as circle\n", - "best_epoch = np.argmax(trainer.val_eval_results['acc'])\n", - "ax_tl.plot(best_epoch + 1, trainer.train_epoch_costs[best_epoch], 'o', color='black', fillstyle='none')\n", - "ax_tr.plot(best_epoch + 1, trainer.val_costs[best_epoch], 'o', color='black', fillstyle='none')\n", - "ax_bl.plot(best_epoch + 1, trainer.train_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", - "ax_br.plot(best_epoch + 1, trainer.val_eval_results['acc'][best_epoch], 'o', color='black', fillstyle='none')\n", - "\n", - "ax_br.text(best_epoch + 1.4, trainer.val_eval_results['acc'][best_epoch], 'early stopping', va='center')" - ] - }, - { - "cell_type": "markdown", - "id": "4ad0b133", - "metadata": {}, - "source": [ - "Finally, We select the best model (from the best epoch) and use it to get the accuracy on the test data. The best epoch is determined based on the validation accuracy, which is marked on the plot by a circle." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "463a2d27", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Test Accuracy: 0.4444444444444444\n" - ] - } - ], - "source": [ - "model.load(trainer.log_dir + '/best_model.lt')\n", - "test_acc = acc(model(test_circuits), torch.tensor(test_answers))\n", - "print('Test Accuracy:', test_acc)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "experimentsenv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From c6ffbd498b963d2dcd55f7c4fe754dcef182a667 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 29 May 2025 17:49:52 +0100 Subject: [PATCH 11/23] changes to glossary added --- docs/discocirc-babi.rst | 2 +- docs/tutorials/discocirc_babi6_prep.ipynb | 89 ++++----- docs/tutorials/discocirc_babi6_training.ipynb | 177 ++++++++++-------- 3 files changed, 148 insertions(+), 120 deletions(-) diff --git a/docs/discocirc-babi.rst b/docs/discocirc-babi.rst index 5a834fe..28634cf 100644 --- a/docs/discocirc-babi.rst +++ b/docs/discocirc-babi.rst @@ -3,7 +3,7 @@ Training: DisCoCirc for babi6 ============================= -**TBD +The following is a two parts tutorial on using the DisCoCirc model for bAbI6 tasks. The first part tackles the creation of the quantum circuits representing the texts and the task, and the second part handles the training. .. toctree:: :maxdepth: 1 diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 94e4132..9820e9f 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -8,7 +8,7 @@ "\n", "# Tutorial: bAbI6 Training and Preprocessing in Python\n", "\n", - "In this tutorial, we will try to implement question asking and answering for bAbI6 tasks. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of subjects in different locations and ask questions about the locations of said subjects while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." ] }, { @@ -34,9 +34,9 @@ "id": "e20186c0", "metadata": {}, "source": [ - "Before we delve into the code, we first highlight two new features of the new parser that will be used in this tutorial: the sandwich functor and foliated frames. \n", + "Before we delve into the code, we first highlight two new features of the new {term} `parser ` that will be used in this tutorial: the {term}`sandwich functor `and foliated {term}`frames `. \n", "\n", - "In the previous versions of the parser, the semantic functor, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of frames. The sandwich functor addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's contents. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter). For more detail on this, we recommend reading the paper explaining the theory behind the new parser [here](in_the_making)." + "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's content. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their own operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter) {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." ] }, { @@ -50,8 +50,8 @@ "- `FILEPATH` specifies paths to the file containing the bAbI6 data. \n", "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", - "- `SANDWICH` is a flag for using the sandwich functor: True to apply the sandwich functor on the circuits, False to apply the usual semantic functor.\n", - "- `FFL` is a flag for activating the foliated frames. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", + "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term} `functor `.\n", + "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", "- `TRAINING_SAMPLE_SIZE`, `VALIDATION_SAMPLE_SIZE`, and `TEST_SAMPLE_SIZE` specify the size of the data for training, validation, and testing." ] }, @@ -99,7 +99,7 @@ "\n", "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", "\n", - "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. We want to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", + "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. It is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", "\n", "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." ] @@ -185,14 +185,14 @@ "source": [ "## 3. Converting The Texts into Circuits\n", "\n", - "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the reader, then we use it with the `SANDWICH` flag indicating whether to use the SANDWICH functor or not, as well as the `FFL` flag which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", + "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the {py:class}`~lambeq.experimental.discocirc.DisCoCircReader`, then we use the {py:meth}`~lambeq.experimental.discocirc.DisCoCircReader.text2circuit` with the `SANDWICH` argument indicating whether to use the {term}`sandwich functor ` or not, as well as the `FFL` argument which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", "\n", - "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated DisCoCirc circuit, the question, the answer, and the text_length." + "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated {term}`DisCoCirc` circuit, the question, the answer, and the text_length." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "5dbca676", "metadata": { "scrolled": true @@ -276,12 +276,12 @@ "metadata": {}, "source": [ "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", - "While we have the circuits corresponding to the texts ready, they are still DisCoCirc circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into quantum circuits by applying an ansatz. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one qubit for each noun." + "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "73465ead", "metadata": {}, "outputs": [], @@ -311,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "15baa8dd", "metadata": {}, "outputs": [], @@ -329,7 +329,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "32d767fc", "metadata": {}, "outputs": [], @@ -350,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "eeefa4e2", "metadata": {}, "outputs": [], @@ -370,7 +370,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "ac2c4298", "metadata": {}, "outputs": [], @@ -398,7 +398,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -426,7 +426,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "af318e63", "metadata": {}, "outputs": [], @@ -470,16 +470,16 @@ "source": [ "Now that the text circuits are post-processed for optimization, it is time to make the question asking circuits to later sequentially compose the latter with the former. \n", "\n", - "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in DiscoCir, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", + "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", "\n", "Notice that we also created two question boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", "\n", - "We apply the same ansatz applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the ansatz to a parallel composition of two effects (bras). " + "We apply the same {term}`ansatz ` applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the {term}`ansatz ` to a parallel composition of two effects (bras). " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -515,16 +515,18 @@ "source": [ "## 5. Assembling The Text Circuits with the Question Circuits\n", "\n", - "Now that we have all the ingredients in place (the text and question circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", + "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", "\n", "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question. In order for us to attach the question boxes, we have to make sure that the wires from the question circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the quetion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created question boxes that are also equiped with swaps for this purpose).\n", "\n", - "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative questions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative questions." + "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", + "\n", + "**Important note**: It is to note that this isn't the standard way to present the questions/assertions (in this approach, we opted for using post-selections directly), and we went for this approach for the sake of simplicity for this tutorial. More complex approaches to assertions on text can be found [here](https://arxiv.org/pdf/2409.08777). " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -545,18 +547,13 @@ " del reduced_datadict[i]\n", " continue\n", "\n", - " # quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", + " quest_mid_layer = Id(qubit) if (qid1 == 0 or qid2 == 0) else Discard()\n", " \n", - " # for k in range(1, len(text_circuit.cod)):\n", - " # if k == qid1 or k == qid2:\n", - " # quest_mid_layer = quest_mid_layer @ Id(qubit)\n", - " # else:\n", - " # quest_mid_layer = quest_mid_layer @ Discard()\n", - "\n", - " quest_mid_layer = Id().tensor(*[\n", - " Discard() if k in [qid1, qid2] else Id(qubit)\n", - " for k in range(len(text_circuit.cod))\n", - " ])\n", + " for k in range(1, len(text_circuit.cod)):\n", + " if k == qid1 or k == qid2:\n", + " quest_mid_layer = quest_mid_layer @ Id(qubit)\n", + " else:\n", + " quest_mid_layer = quest_mid_layer @ Discard()\n", "\n", " final_circuit = text_circuit >> quest_mid_layer\n", "\n", @@ -578,12 +575,12 @@ "## 6. Preparing The Datasets for Training\n", "Now that our circuit pairs are ready, we move on to the final step of training a model.\n", "\n", - "The first step is to prepare the data for training. We start with updating the \"yes\"." + "The first step is to prepare the data for training. We start with updating the \"yes\" and \"no\" entries to 0s and 1s." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -612,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "bcecde44", "metadata": {}, "outputs": [ @@ -620,7 +617,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "the minimum size is: 88\n" + "the minimum size is: 89\n" ] } ], @@ -661,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "91b7c34d", "metadata": {}, "outputs": [], @@ -688,9 +685,17 @@ "test_dict_bAbI6 = {k: v for k, v in zip(test_keys, test_values)}" ] }, + { + "cell_type": "markdown", + "id": "a37e9614", + "metadata": {}, + "source": [ + "The following cell is to check that we have a balanced set. " + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "0dd61567", "metadata": {}, "outputs": [ @@ -698,7 +703,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "52\n", + "53\n", "53\n" ] } @@ -726,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "b9f1a78c", "metadata": {}, "outputs": [], diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index e17aaf7..b5032f3 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -7,12 +7,12 @@ "source": [ "# Tutorial: BabI6 Training and Preprocessing in Python (Part II)\n", "\n", - "In Part I of this tutorial, we learned how to create DisCoCirc circuits for question asking for the babI6 dataset. In this part, we proceed to train the model with the circuits that we created." + "In Part I of this tutorial, we learned how to create {term}`DisCoCirc` circuits for question asking for the babI6 dataset. In this part, we proceed to train the model with the circuits that we created." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "b67efc5e", "metadata": {}, "outputs": [], @@ -22,19 +22,41 @@ "SANDWICH = True\n", "\n", "# Updating the FFL Parameter\n", - "FFL = True\n", + "FFL = False\n", "\n", "# Names of Resulting file paths for the Datasets\n", - "TRAINING_DATASET_FILEPATH = 'circuits/tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'circuits/tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'circuits/tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "\n", - "BATCH_SIZE = 5\n", + "BATCH_SIZE = 1\n", "EPOCHS = 30\n", - "SEED = 2\n", "LEARNING_RATE = 0.005" ] }, + { + "cell_type": "code", + "execution_count": 2, + "id": "52347a8c", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import numpy as np\n", + "import random\n", + "\n", + "def set_pytorch_seed(seed_value):\n", + " random.seed(seed_value)\n", + " np.random.seed(seed_value)\n", + " torch.manual_seed(seed_value)\n", + " if torch.cuda.is_available():\n", + " torch.cuda.manual_seed(seed_value)\n", + " torch.cuda.manual_seed_all(seed_value)\n", + "\n", + "SEED = 2\n", + "set_pytorch_seed(SEED)" + ] + }, { "cell_type": "markdown", "id": "0f9091f4", @@ -46,19 +68,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "c6023fa1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ "import pickle\n", - "training_dict_babi6 = {}\n", "\n", + "training_dict_babi6 = {}\n", "with open(TRAINING_DATASET_FILEPATH, 'rb') as file:\n", " training_dict_babi6 = pickle.load(file)\n", "\n", "val_dict_babi6 = {}\n", - "\n", "with open(VALIDATION_DATASET_FILEPATH, 'rb') as file:\n", " val_dict_babi6 = pickle.load(file)\n", "\n", @@ -69,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "1565fb9d", "metadata": {}, "outputs": [], @@ -118,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "007b6bc8", "metadata": {}, "outputs": [], @@ -130,17 +160,17 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "6857d72a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "105" + "106" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -159,17 +189,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "67d6507a", "metadata": {}, "outputs": [], "source": [ - "from lambeq import PennyLaneModel\n", + "from lambeq import PytorchQuantumModel\n", "from lambeq.backend.quantum import Diagram\n", "import torch\n", "\n", "\n", - "class PairCircuitModel(PennyLaneModel):\n", + "class PairCircuitModel(PytorchQuantumModel):\n", " def forward(self, circ_pairs: list[tuple[Diagram, Diagram]]) -> torch.Tensor:\n", " pos_circs, neg_circs = zip(*circ_pairs)\n", " pos_out = abs(self.get_diagram_output(pos_circs))\n", @@ -179,8 +209,7 @@ " out_tensor = torch.stack((pos_out, neg_out), dim=1)\n", " out_tensor = torch.softmax(out_tensor, dim=1)\n", " \n", - " return out_tensor\n", - "\n" + " return out_tensor" ] }, { @@ -193,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "84d09be7", "metadata": {}, "outputs": [], @@ -205,10 +234,7 @@ "]\n", "\n", "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", - "model = PairCircuitModel.from_diagrams(all_circuits,\n", - " probabilities=False,\n", - " normalize=True,\n", - " backend_config=backend_config)\n", + "model = PairCircuitModel.from_diagrams(all_circuits)\n", "\n", "model.initialise_weights()" ] @@ -223,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "9081225f", "metadata": {}, "outputs": [], @@ -236,14 +262,12 @@ " return torch.nn.functional.binary_cross_entropy(\n", " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", " )\n", - "\n", - "\n", "eval_metrics = {\"acc\": acc}" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "991d8f44", "metadata": {}, "outputs": [], @@ -259,28 +283,28 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "ec1a4b8e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "105" + "36" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(train_dataset)" + "len(val_dataset)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "a340f1a1", "metadata": {}, "outputs": [ @@ -288,41 +312,41 @@ "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_45123/1585835587.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_18693/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", - "Epoch 1: train/loss: 1.5370 valid/loss: 2.9836 train/time: 1m49s valid/time: 38.70s train/acc: 0.5429 valid/acc: 0.4571\n", - "Epoch 2: train/loss: 0.6532 valid/loss: 2.7895 train/time: 1m58s valid/time: 40.71s train/acc: 0.6000 valid/acc: 0.3429\n", - "Epoch 3: train/loss: 2.2022 valid/loss: 3.5438 train/time: 1m57s valid/time: 39.87s train/acc: 0.6286 valid/acc: 0.3429\n", - "Epoch 4: train/loss: 0.8276 valid/loss: 4.5185 train/time: 1m51s valid/time: 42.11s train/acc: 0.6952 valid/acc: 0.4286\n", - "Epoch 5: train/loss: 0.7184 valid/loss: 4.9401 train/time: 1m55s valid/time: 42.15s train/acc: 0.7238 valid/acc: 0.3714\n", - "Epoch 6: train/loss: 0.4825 valid/loss: 5.4519 train/time: 1m53s valid/time: 39.68s train/acc: 0.7143 valid/acc: 0.3714\n", - "Epoch 7: train/loss: 0.4445 valid/loss: 6.5718 train/time: 1m51s valid/time: 39.32s train/acc: 0.7238 valid/acc: 0.4000\n", - "Epoch 8: train/loss: 0.3679 valid/loss: 6.2385 train/time: 2m0s valid/time: 40.68s train/acc: 0.7429 valid/acc: 0.4000\n", - "Epoch 9: train/loss: 0.3095 valid/loss: 6.7013 train/time: 1m54s valid/time: 40.06s train/acc: 0.7619 valid/acc: 0.4286\n", - "Epoch 10: train/loss: 0.2272 valid/loss: 6.4791 train/time: 1m59s valid/time: 40.86s train/acc: 0.8095 valid/acc: 0.4286\n", - "Epoch 11: train/loss: 0.6715 valid/loss: 6.6007 train/time: 1m54s valid/time: 39.54s train/acc: 0.8000 valid/acc: 0.4571\n", - "Epoch 12: train/loss: 0.3922 valid/loss: 1.7500 train/time: 1m58s valid/time: 44.03s train/acc: 0.7905 valid/acc: 0.4571\n", - "Epoch 13: train/loss: 3.7541 valid/loss: 3.8887 train/time: 1m53s valid/time: 41.77s train/acc: 0.7619 valid/acc: 0.6286\n", - "Epoch 14: train/loss: 2.0752 valid/loss: 5.7808 train/time: 1m59s valid/time: 41.75s train/acc: 0.6476 valid/acc: 0.3714\n", - "Epoch 15: train/loss: 1.0661 valid/loss: 1.6665 train/time: 2m0s valid/time: 41.13s train/acc: 0.6667 valid/acc: 0.5429\n", - "Epoch 16: train/loss: 0.1893 valid/loss: 1.7724 train/time: 1m57s valid/time: 41.65s train/acc: 0.7429 valid/acc: 0.6286\n", - "Epoch 17: train/loss: 0.6477 valid/loss: 1.4505 train/time: 2m5s valid/time: 44.40s train/acc: 0.6762 valid/acc: 0.5714\n", - "Epoch 18: train/loss: 0.2460 valid/loss: 1.0262 train/time: 1m53s valid/time: 12m29s train/acc: 0.8000 valid/acc: 0.6571\n", - "Epoch 19: train/loss: 0.5696 valid/loss: 1.1213 train/time: 1m59s valid/time: 40.40s train/acc: 0.8190 valid/acc: 0.6857\n", - "Epoch 20: train/loss: 0.3404 valid/loss: 1.1174 train/time: 2m10s valid/time: 45.98s train/acc: 0.8476 valid/acc: 0.6571\n", - "Epoch 21: train/loss: 0.5572 valid/loss: 1.1474 train/time: 2m1s valid/time: 45.00s train/acc: 0.8857 valid/acc: 0.7143\n", - "Epoch 22: train/loss: 0.0731 valid/loss: 1.3623 train/time: 2m0s valid/time: 41.02s train/acc: 0.9048 valid/acc: 0.6571\n", - "Epoch 23: train/loss: 0.1005 valid/loss: 1.6095 train/time: 2m1s valid/time: 42.97s train/acc: 0.9048 valid/acc: 0.6571\n", - "Epoch 24: train/loss: 0.3268 valid/loss: 2.6929 train/time: 1m56s valid/time: 42.86s train/acc: 0.9048 valid/acc: 0.6571\n", - "Epoch 25: train/loss: 0.0672 valid/loss: 2.7171 train/time: 2m6s valid/time: 48.04s train/acc: 0.9143 valid/acc: 0.7143\n", - "Epoch 26: train/loss: 0.4277 valid/loss: 1.5331 train/time: 1m57s valid/time: 42.90s train/acc: 0.9429 valid/acc: 0.7429\n", - "Epoch 27: train/loss: 0.4089 valid/loss: 2.7178 train/time: 1m59s valid/time: 40.65s train/acc: 0.9429 valid/acc: 0.7429\n", - "Epoch 28: train/loss: 0.1028 valid/loss: 2.6944 train/time: 1m57s valid/time: 40.42s train/acc: 0.9429 valid/acc: 0.7143\n", - "Epoch 29: train/loss: 0.4875 valid/loss: 2.9313 train/time: 1m60s valid/time: 42.20s train/acc: 0.9429 valid/acc: 0.7429\n", - "Epoch 30: train/loss: 0.0199 valid/loss: 2.6868 train/time: 1m60s valid/time: 40.84s train/acc: 0.9429 valid/acc: 0.7143\n", + "Epoch 1: train/loss: 0.6312 valid/loss: 0.6356 train/time: 46.62s valid/time: 5.91s train/acc: 0.5943 valid/acc: 0.7222\n", + "Epoch 2: train/loss: 0.4173 valid/loss: 0.6287 train/time: 10.44s valid/time: 2.47s train/acc: 0.7170 valid/acc: 0.7778\n", + "Epoch 3: train/loss: 0.6656 valid/loss: 0.6236 train/time: 10.44s valid/time: 2.17s train/acc: 0.7453 valid/acc: 0.5556\n", + "Epoch 4: train/loss: 0.5148 valid/loss: 0.5683 train/time: 10.35s valid/time: 2.46s train/acc: 0.7830 valid/acc: 0.8056\n", + "Epoch 5: train/loss: 0.5104 valid/loss: 0.5452 train/time: 10.40s valid/time: 2.48s train/acc: 0.8396 valid/acc: 0.7778\n", + "Epoch 6: train/loss: 0.4967 valid/loss: 0.5314 train/time: 10.57s valid/time: 2.47s train/acc: 0.7830 valid/acc: 0.8333\n", + "Epoch 7: train/loss: 0.4594 valid/loss: 0.5445 train/time: 10.82s valid/time: 3.05s train/acc: 0.8113 valid/acc: 0.6667\n", + "Epoch 8: train/loss: 0.6865 valid/loss: 0.5223 train/time: 59m52s valid/time: 2.23s train/acc: 0.8962 valid/acc: 0.7778\n", + "Epoch 9: train/loss: 0.3227 valid/loss: 0.5345 train/time: 11.31s valid/time: 2.21s train/acc: 0.7830 valid/acc: 0.5833\n", + "Epoch 10: train/loss: 0.4968 valid/loss: 0.5370 train/time: 10.89s valid/time: 2.19s train/acc: 0.8585 valid/acc: 0.8611\n", + "Epoch 11: train/loss: 0.3737 valid/loss: 0.5392 train/time: 11.69s valid/time: 2.20s train/acc: 0.8302 valid/acc: 0.7500\n", + "Epoch 12: train/loss: 0.3861 valid/loss: 0.5304 train/time: 10.82s valid/time: 2.65s train/acc: 0.8491 valid/acc: 0.8889\n", + "Epoch 13: train/loss: 0.7027 valid/loss: 0.5260 train/time: 11.03s valid/time: 2.34s train/acc: 0.8208 valid/acc: 0.8611\n", + "Epoch 14: train/loss: 0.4530 valid/loss: 0.5268 train/time: 10.79s valid/time: 2.18s train/acc: 0.8208 valid/acc: 0.7222\n", + "Epoch 15: train/loss: 0.5725 valid/loss: 0.5536 train/time: 10.54s valid/time: 2.50s train/acc: 0.8491 valid/acc: 0.6944\n", + "Epoch 16: train/loss: 0.6593 valid/loss: 0.5459 train/time: 10.86s valid/time: 2.49s train/acc: 0.8208 valid/acc: 0.7778\n", + "Epoch 17: train/loss: 0.4571 valid/loss: 0.5356 train/time: 11.60s valid/time: 2.18s train/acc: 0.8585 valid/acc: 0.7778\n", + "Epoch 18: train/loss: 0.3315 valid/loss: 0.5243 train/time: 10.58s valid/time: 2.46s train/acc: 0.8208 valid/acc: 0.7500\n", + "Epoch 19: train/loss: 0.5059 valid/loss: 0.5310 train/time: 10.52s valid/time: 2.52s train/acc: 0.8019 valid/acc: 0.8056\n", + "Epoch 20: train/loss: 0.6960 valid/loss: 0.5354 train/time: 10.49s valid/time: 2.19s train/acc: 0.8113 valid/acc: 0.7500\n", + "Epoch 21: train/loss: 0.6999 valid/loss: 0.5252 train/time: 10.84s valid/time: 2.24s train/acc: 0.8208 valid/acc: 0.7222\n", + "Epoch 22: train/loss: 0.3335 valid/loss: 0.5278 train/time: 10.84s valid/time: 2.20s train/acc: 0.7925 valid/acc: 0.6944\n", + "Epoch 23: train/loss: 0.5844 valid/loss: 0.5279 train/time: 11.63s valid/time: 2.19s train/acc: 0.8396 valid/acc: 0.7500\n", + "Epoch 24: train/loss: 0.6905 valid/loss: 0.5478 train/time: 9m43s valid/time: 2.52s train/acc: 0.8113 valid/acc: 0.5833\n", + "Epoch 25: train/loss: 0.4814 valid/loss: 0.5542 train/time: 11.04s valid/time: 2.58s train/acc: 0.7830 valid/acc: 0.7778\n", + "Epoch 26: train/loss: 0.4345 valid/loss: 0.5451 train/time: 11.14s valid/time: 2.37s train/acc: 0.7453 valid/acc: 0.7778\n", + "Epoch 27: train/loss: 0.3209 valid/loss: 0.5450 train/time: 11.70s valid/time: 2.31s train/acc: 0.8396 valid/acc: 0.7778\n", + "Epoch 28: train/loss: 0.3315 valid/loss: 0.5391 train/time: 11.51s valid/time: 2.29s train/acc: 0.8302 valid/acc: 0.8611\n", + "Epoch 29: train/loss: 0.6920 valid/loss: 0.5331 train/time: 11.47s valid/time: 2.30s train/acc: 0.8396 valid/acc: 0.6667\n", + "Epoch 30: train/loss: 0.4924 valid/loss: 0.5331 train/time: 11.31s valid/time: 2.61s train/acc: 0.7642 valid/acc: 0.8611\n", "\n", "Training completed!\n", - "train/time: 58m55s train/time_per_epoch: 1m58s train/time_per_step: 5.61s valid/time: 32m41s valid/time_per_eval: 1m5s\n" + "train/time: 1h15m16s train/time_per_epoch: 2m31s train/time_per_step: 1.42s valid/time: 1m15s valid/time_per_eval: 2.50s\n" ] } ], @@ -338,8 +362,7 @@ " evaluate_functions=eval_metrics,\n", " evaluate_on_train=True,\n", " use_tensorboard=False,\n", - " verbose='text',\n", - " seed=SEED\n", + " verbose='text'\n", " )\n", "\n", "trainer.fit(train_dataset, val_dataset)" @@ -355,23 +378,23 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "2df2f3c7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(26.4, 0.7428571428571429, 'early stopping')" + "Text(12.4, 0.8888888888888888, 'early stopping')" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAIjCAYAAABVpWnzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAsWVJREFUeJzs3Qd0VNUWBuA/vVeSkACh9450kCYIFqSJYgWxPRVsqCiioKigoogKiqIodiyIjSJVujSlSW8JkEII6T2Zt/aZzJCEBDLJzNwp/7fWfVMy5ST4crNn77O3i06n04GIiIiIiIgchqvWCyAiIiIiIiLzYqBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHZCH33HMP6tevX6XnvvTSS3BxcTH7moiIyHmcPHlSnUs+//xzrZdCRBpgoEdOR056lTnWrVun9VLt3jfffIPZs2drvQwiIrORoKnkucLb2xu1atXCoEGD8N577yE9PV3rJRKA6dOnY8mSJVZ/37Nnz6oPa//991+rvzdRWS46nU53yb1EDuyrr74qdfuLL77AypUr8eWXX5a6/9prr0XNmjWr/D75+fkoKiqCl5eXyc8tKChQh/wBYc8GDx6Mffv2qU+ViYgcJdAbO3Yspk2bhgYNGqjf9fHx8erDQTmX1K1bF7/++ivatm2r9VLV715Z42effaaqTJyJv78/Ro4cafVs5o4dO9C5c2en/JmT7XHXegFE1nbXXXeVur1161Z1ci57f1lZWVnw9fWt9Pt4eHhUeY3u7u7qICIi23T99dejU6dOxtuTJk3CmjVr1AdcQ4YMwYEDB+Dj46PpGonIubF0k6gcffv2RevWrbFz50707t1bBXjPP/+8+tovv/yCG2+8UZXqSLauUaNGeOWVV1BYWHjZPXqGvRJvvfUWPv74Y/U8eb588rd9+/Yr7tGT2+PHj1elKLI2eW6rVq2wfPnyS9YvnyzLHyCSEZT3+eijjyq97+/IkSO4+eabERkZqZ5fp04d3HbbbUhNTb0kM9qxY0f1h0xoaKh6TGxsbKmf4R9//IFTp04ZS5yqumeRiMgeXHPNNXjxxRfV772y1SMHDx5UGSb5fSm/W+V3tGT+SmaC5PfkwoULL3ndFStWqK/9/vvvxvvOnDmDe++9V1WeGM4HCxYsqNQ6JSDt1asX/Pz8EBwcjKFDh6rAtCTDOUPWfeuttyIwMBA1atTA448/jpycnHLPTz/88ANatmypzgvdu3fH3r171dflHNS4cWP1fcu5obwqj7///hvXXXcdgoKC1Dm3T58+2LRpU7lrOnr0qDrHytrl8ZJhlQ9jS64nMzNT/SwN558rZdfef/999TOU9w4JCVH/PrL9oKQr/czl3CvndCFrMrw390iSVpgyIKrA+fPn1Se2EsBIts9Qxim/sKUkZMKECepSTphTpkxBWloaZs6cecXXlROH7OH43//+p04Ab775JkaMGIHjx49fMQu4ceNGLF68GI888ggCAgLUfhAJymJiYtQJWPzzzz/qZBkVFYWXX35ZBaBSYhQeHn7FteXl5al9Jrm5uXj00UdVsCcnNvnjIiUlRZ1QxWuvvab+mJGT//33349z586pk6QExfL+cvKdPHmyCg5Pnz6Nd955Rz1Pfl5ERI7s7rvvVh8M/vnnn3jggQfUffv370fPnj1Ru3ZtPPfccyrA+v777zFs2DD89NNPGD58uAosGjZsqO4fM2ZMqddctGiRCj7k97NISEhAt27djAGW/H5ftmwZ7rvvPnUueuKJJypc36pVq9S5Td5LAqfs7Gz1+1vWt2vXrks+kJPf83LfjBkzVAWMnHcuXLigtj2UtGHDBhW4jhs3Tt2Wx0t2c+LEifjggw/UeUueJ+c8CZbk3Gkg12VN8uHh1KlT4erqqkofJXCW1+3Spcsla5KSVHkPWfMnn3yCiIgIvPHGG+rrshVDzk3yvAcffFDdJx96VmT+/Pl47LHHVCBuCGT37Nmjgs877rij0j/zFi1aqPOt/E0g7yvBtOjRo8dl/oshsiDZo0fkzMaNGyf7VEvd16dPH3XfvHnzLnl8VlbWJff973//0/n6+upycnKM940ZM0ZXr1494+0TJ06o16xRo4YuOTnZeP8vv/yi7v/tt9+M902dOvWSNcltT09P3dGjR4337d69W93//vvvG++76aab1FrOnDljvO/IkSM6d3f3S16zrH/++Uc95ocffqjwMSdPntS5ubnpXnvttVL37927V71HyftvvPHGUj8DIiJ799lnn6nfk9u3b6/wMUFBQboOHToYb/fv31/Xpk2bUueIoqIiXY8ePXRNmjQx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eVQ+npuIiMjS7K50MywsTP1BlJAgTcovktuRkZGXPN7Ly0sdREREtoLnJiIisjS7y+h5enqiY8eOWL16tfE+6VYnt7t3767p2oiIiIiIiGyB3WX0hIxWGDNmDDp16qRm58l4hczMTNWFk4iIiIiIyNnZZaA3atQonDt3DlOmTFENWNq3b4/ly5df0qClPDKgWLDDGRGR9Rl+9xp+F5Mez01ERNpIc+DzkovOEb+ryzh9+jS7mxERaUyaj9SpU0frZdgMnpuIiLQV64DnJacL9GQ/39mzZxEQEAAXFxdjJC8nWPkHDgwMhCNx5O/N0b8/fm/2yZG/N3N8f3LKkSHxtWrVUjNQSY/nJsfhyN+bo39//N7sE89LDla6WR3yD1hRtC7/cTjaf/zO8L05+vfH780+OfL3Vt3vT+bGUWk8NzkeR/7eHP374/dmn3heupRjha1ERERERETEQI+IiIiIiMjRMNArHlw7depUhxxe68jfm6N/f/ze7JMjf2/O8P3ZEkf+WfN7s1+O/P3xe7NPjvy9VZfTNWMhIiIiIiJydMzoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA6GgR4REREREZGDYaBHRERERETkYBjoERERERERORgGekRERERERA7GHU6mqKgIZ8+eRUBAAFxcXLReDhGRU9HpdEhPT0etWrXg6srPGg14biIi0obOgc9LThfoyYk0Ojpa62UQETm12NhY1KlTR+tl2Ayem4iItBXrgOclpwv05NNSwz9mYGCg1sshInIqaWlpKqAx/C4mPZ6biIi0kebA5yWnC/QMJTFyIuXJlIhIGyxPLI3nJiIibbk44HnJsQpR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f83v9uhpBcbFxRV4n745bHvz+0PZbC8fZXMnm8tW0vLZ1mNaGsgm+9hcNtvLR9nciVy6k13NVgAAAAAADT0AAAAAsA0NPRGpUKGCjB8/3pzbxuay2V4+yuZONpfNH8rnS2z+v6Zs7mVz+SibO9lctpLyu8VYAAAAAMB27NEDAAAAAMvQ0AMAAAAAy9DQAwAAAADL0NADAAAAAMvQ0BORmTNnSt26deW+++6TRx55RLZv3y5uN2HCBAkICMh3aty4sbjRxo0bpXv37hIbG2vKsWzZsnz363pC77zzjsTExEjFihUlKSlJjh49KraUb/DgwXfU5eOPPy6+btKkSdK2bVsJDw+XGjVqSM+ePeXIkSP5HnPz5k0ZNWqUVK1aVcLCwqR3795y9uxZcYPClK9Tp0531N3w4cPF13322WfSokUL78FnExISZOXKlVbUm1vYmEuKbHJHNtmaS7Znk825pMimovP7ht7ChQvlpZdeMsuy7t69W1q2bCldu3aVc+fOids1bdpU0tLSvKdNmzaJG12/ft3Ui/7wKciUKVNk+vTpMnv2bNm2bZuEhoaaOtQPvA3lUxqgeety/vz54us2bNhgvnC3bt0qq1evluzsbOnSpYspr8eLL74o3333nSxevNg8/vTp09KrVy9xg8KUTw0dOjRf3en71dfFxcXJ5MmTZdeuXbJz507p3Lmz9OjRQw4ePOj6enMDm3NJkU2+n0225pLt2WRzLimyqRgcP/fwww87o0aN8l7PyclxYmNjnUmTJjluNn78eKdly5aObfQtm5yc7L2em5vrREdHOx999JH3tvT0dKdChQrO/PnzHbeXTw0aNMjp0aOH43bnzp0z5duwYYO3noKCgpzFixd7H3P48GHzmC1btjhuL5/q2LGjM2bMGMcGlStXdr744gvr6s0X2ZpLimxyXzbZnEu2Z5PtuaTIpr/n13v0srKyTK+ADqfwCAwMNNe3bNkibqdDRHTYRb169WTAgAGSmpoqtjlx4oScOXMmXx1GRESYoU421KHH+vXrzTCMRo0ayYgRI+TixYviNleuXDHnVapUMef62dPexrx1p0O4ateu7cq6u718HvPmzZNq1apJs2bN5I033pDMzExxk5ycHFmwYIHpEdZhMrbVm6+xPZcU2WRHPdqQS7Znk625pMimwikvfuzChQvmjRIVFZXvdr3+008/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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAIjCAYAAADvBuGTAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA0PpJREFUeJzs3Qd8U2UXBvCne0Bb9ih7772XgCJ7OxAHinvrpzhwoaDgQEQUwYXixoGogKAgIAiC7L03LbQFuvf4fue9uemgI0mT3DR5/t/XX9M0SW9LbXLue87zeuXk5OSAiIiIiIiISsW7dHcnIiIiIiIiweKKiIiIiIjIDlhcERERERER2QGLKyIiIiIiIjtgcUVERERERGQHLK6IiIiIiIjsgMUVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4orIQHfccQfq169v031ffvlleHl52f2YiIjIfZw8eVI9V3z++ec2PX/I7eT29tSvXz/1RuSOWFwRFfFkYsnb2rVrjT7UMu+bb77B7NmzjT4MIiLDjRw5EsHBwUhISCjyNrfccgv8/f1x8eJFuLL9+/erokyKO3fk7t8f2c4rJycnpxT3J3JLX331Vb6Pv/jiC/z555/48ssv811/7bXXonr16jZ/nYyMDGRnZyMgIMDq+2ZmZqq3wMBAlGXDhw/H3r17+QRFRB5v0aJFuOmmm7Bw4UJMmDDhis8nJyejWrVquPrqq/Hrr79a9Jjyt7VBgwb47LPPVLeEtc8fciJxypQpVq9e/fjjj7jhhhuwZs2aK1ap0tPT1XspEsuq4r4/8my+Rh8AkSu69dZb833877//quKq4PWFPfHJWUdL+fn52XyMvr6+6o2IiNxn5SokJESt6BdWXP3yyy9ISkpSq1elYfTzR1kuqohKwrZAIhvJmarWrVtj27ZtuOqqq1RR9dxzz5mfAIcNG4bw8HC1KtWoUSNMmzYNWVlZxc5c6b3xM2fOxEcffaTuJ/fv0qUL/vvvv3z3LaxnXj5++OGHsWTJEnVsct9WrVphxYoVVxy/tDR27txZnbmUr/Phhx9a3Id/5MgRXHfddahRo4a6f+3atdXZ1ri4uCtWADt16oSgoCBUqlRJ3ebMmTP5fobLli3DqVOnzK2Wts6gERGVdfK3cuzYsVi9ejWioqKu+LwUXVJ8SRF26dIlTJo0CW3atEH58uURGhqKIUOGYNeuXSV+ncL+1qelpeF///sfqlatav4aZ8+eveK+8vf6wQcfRLNmzdTxVq5cWa3g5O0+kPkuuU7079//ilb6wmau5Pu96667VDeIPK+0a9dOreDlZc1zZFHdIq+88gqaNGmivoYce+/evdXJ07wOHjyI66+/Xj1vye3kuTLvSmFJ3x95Np72JioF6XmXJzMpGmRVS28RlD+88mT3xBNPqPd//fUXXnrpJcTHx+Ott94q8XHlCVR67u+77z71B/vNN99UT7jHjx8vcbVrw4YNWLx4sXrykyfIOXPmqELo9OnT6olE7NixA4MHD0bNmjXVE40UfVOnTlVPqiWRdo5BgwapJ+JHHnlEFVjnzp3D0qVLERsbi7CwMHW71157DS+++CJuvPFG3H333YiOjsZ7772nClH5+hUqVMDzzz+vCjJ5An/nnXfU/eTnRUTkqWRVSoqK77//Xp0s00kxtXLlSowfP14VNfv27VMn0uRFvrT9XbhwQZ0k69u3r5oHkpN71pC/03JC7Oabb0bPnj3V85acJCxIipiNGzeq5z05sSYFz7x581SxJF9XTjTK3/lHH31UPf/ISccWLVqo++rvC0pJSVH3P3r0qPqe5fv54Ycf1AlIeV557LHH7PIcKUXljBkz1PfatWtX9Zy8detWbN++XbX5C/m59urVC7Vq1cKzzz6LcuXKqX+L0aNH46effsKYMWOs/v7Iw8jMFREV76GHHpLZxHzX9e3bV103f/78K26fnJx8xXX33XdfTnBwcE5qaqr5uttvvz2nXr165o9PnDihHrNy5co5ly5dMl//yy+/qOt/++0383VTpky54pjkY39//5yjR4+ar9u1a5e6/r333jNfN2LECHUs586dM1935MiRHF9f3yses6AdO3ao2/zwww9F3ubkyZM5Pj4+Oa+99lq+6/fs2aO+Rt7rhw0blu9nQETkyTIzM3Nq1qyZ06NHj3zXy3ON/O1duXKl+lieS7KysvLdRp5DAgICcqZOnZrvOrnfZ599VuTzx86dO9XHDz74YL7Hu/nmm9X1cvvint82bdqkbvfFF1+Yr5PnCLluzZo1V9xenj/lTTd79mx126+++sp8XXp6uvoZlC9fPic+Pt7q58jCtGvXTj3nFOeaa67JadOmTb7n6uzs7JyePXvmNGnSxKLvjzwb2wKJSkHaESZO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icVVIfR2C3ny4hMYEZHzse3tSnxuIiJy/ecmNrQTERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLiys4uJabjvy60YMGsdsrNzjD4cIiIiIiJyEhZXdhYa5Id1h6NxNCoRx2MSjT4cIiIiIiJyEhZXdubn4412tSuoy9tOXTb6cIiIiIiIyElYXDlAp3oV1futJ1lcERERERF5ChZXDtC5vlZcbTvN4oqIiIiIyFOwuHKADnW04up4dBIuJaUbfThEREREROQELK4coGI5fzSqWk5d3s65KyIiIiIij8DiykE616uk3rM1kIiIiIjIM7C4cnCoBRMDiYiIiIg8A4srB+loKq52nYlFema20YdDREREREQOxuLKQWTmqkKwH9Iys7E/Mt7owyEiIiIiIncvrubOnYv69esjMDAQ3bp1w5YtW4q9fWxsLB566CHUrFkTAQEBaNq0KZYvX27+/MsvvwwvL698b82bN4ezydftVJetgUREREREnsLQ4mrRokV44oknMGXKFGzfvh3t2rXDoEGDEBUVVejt09PTce211+LkyZP48ccfcejQIXz88ceoVatWvtu1atUKkZGR5rcNGzbAyNbAbacuGfL1iYiIiIjIeXxhoFmzZuGee+7BxIkT1cfz58/HsmXLsGDBAjz77LNX3F6uv3TpEjZu3Ag/Pz91nax6FeTr64saNWpYfBxpaWnqTRcfH2/3UIucnBy1mkVERGTkcxMREbnhypWsQm3btg0DBgzIPRhvb/Xxpk2bCr3Pr7/+ih49eqi2wOrVq6N169aYPn06srKy8t3uyJEjCA8PR8OGDXHLLbfg9OnTxR7LjBkzEBYWZn6rU6eOXb7HdrUrwNfbCxfi03AuNsUuj0lERJ7BUc9NRETkhsVVTEyMKoqkSMpLPj5//nyh9zl+/LhqB5T7yZzViy++iLfffhuvvvqq+TYyt/X5559jxYoVmDdvHk6cOIE+ffogISGhyGOZPHky4uLizG9nzpyxy/cY5O+DVuGh6jLnroiIyBqOem4iIiI3bQu0VnZ2NqpVq4aPPvoIPj4+6NSpE86dO4e33npLzW2JIUOGmG/ftm1bVWzVq1cP33//Pe66665CH1eCMeTNUXNXu87GqeJqVPv8s2FERERFceRzExERudnKVZUqVVSBdOHChXzX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jYiIQEhICLy8vMwVqzyhnTlzBqGhoXAn/N7KLnf+/vi9eeb3Jk9J8uQVHh4Ob292rufF5yb3we+t7HLn74/fm32em7hyVQj5odWuXbvQz8k/iLv9wun4vZVd7vz98XvzvO+NK1aF43OT++H3Vna58/fH7610z008LUhERERERGQHLK6IiIiIiIjsgMWVhQICAjBlyhT13t3weyu73Pn74/dWNrnz9+aK3Pnnze+tbHLn783dvz9+b/bBQAsiIiIiIiI74MoVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4oqIiIiIiMgOWFwRERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLgiIiIiIiKyAxZXREREREREdsDiioiIiIiIyA5YXBEREREREdkBiysiIiIiIiI7YHFFRERERERkByyuiIiIiIiI7IDFFRERERERkR2wuCIiIiIiIrIDFldERERERER2wOKKiIiIiIjIDlhcERERERER2QGLKyIiIiIiIjtgcUVERERERGQHLK6IiIiIiIjsgMUVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4oqIiIiIiMgOWFwRERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLgiIiIiIiKyA197PIi7yc7ORkREBEJCQuDl5WX04RAReYycnBwkJCQgPDwc3t48/5cXn5uIiFz/uYnFVSHkyatOnTpGHwYRkcc6c+YMateubfRhuBQ+NxERuf5zE4urQshZQf0HGBoaavThEBF5jPj4eFVA6H+HKRefm4iIXP+5icVVIfR2C3ny4hMYEZHzse3tSnxuIiJy/eemMtHQPnfuXNSvXx+BgYHo1q0btmzZUuRtMzIyMHXqVDRq1Ejdvl27dlixYoVTj5eIiIiIiDyPyxdXixYtwhNPPIEpU6Zg+/btqlgaNGgQoqKiCr39Cy+8gA8//BDvvfce9u/fj/vvvx9jxozBjh07nH7sRERERETkObxyJP7ChclKVZcuXfD++++b05Kk5/GRRx7Bs88+e8XtJcXj+eefx0MPPWS+7rrrrkNQUBC++uori/sqw8LCEBcXx9YLIiIn4t/fovFnQ0Tk+n9/XXrmKj09Hdu2bcPkyZPN10n84YABA7Bp06ZC75OWlqbaAfOSwmrDhg1Ffh25j7zl/QESEREZic9NRERlj0u3BcbExCArKwvVq1fPd718fP78+ULvIy2Ds2bNwpEjR9Qq159//onFixcjMjKyyK8zY8YMVY3qb4y6JSIio/G5icoKmYufPXs23NHLL7+M9u3bG30YVIa4dHFli3fffRdNmjRB8+bN4e/vj4cffhgTJ04sdsMvWRmTZT79TWJuyclO/A38dDeQctnoIyEicgl8biJryMnotWvX4ttvv1Xv5WN3IN+LJLTFxsYa8vUnTZqE1atXG/K1qWxy6bbAKlWqwMfHBxcuXMh3vXxco0aNQu9TtWpVLFmyBKmpqbh48aKawZLZrIYNGxb5dQICAtQbGWjVK8C5rUB4R6DHg0YfDRGR4fjcRJaSDp0nn3wSJ0+ezLea9Pbbb2Ps2LEOHd+QE9nurHz58uqNyC1WruQ/2E6dOuU7YyCtfvJxjx49ir2vzF3VqlULmZmZ+OmnnzBq1CgnHDHZJD0ZiNypXY7aZ/TREBERlanC6vrrr0ebNm3UPHpCQoJ6Lx/L9fJ5/fWTtJo2aNBAzaJL+vKPP/5ofhxZ6brrrrvMn2/WrJnqBsrrjjvuwOjRo/Haa6+pk9dym4LuvPNODB8+/IptcqpVq4ZPP/200O/h1KlTGDFiBCpWrIhy5cqhVatWWL58uSoW+/fvr24jn5MVLDkGIfOIjz76qHpcec3Xu3dv/Pfff1eseC1btgxt27ZVt+nevTv27t1rvs3nn3+OChUqqJPy0vUkt5HxkryrxAXbAvWfwcyZM1GzZk1UrlxZhajJ96iTUZRhw4apn6P8PL/55hu3bp2kMrRyJSSG/fbbb0fnzp3RtWtX9YuZlJSkWv3EhAkTVBElfzDE5s2bce7cOfUfgryX/yjkD8rTTz9t8HdCRYrYDmRnapejDhh9NERERGWCFESyYiXFjBQI+giEFBHysRQB0tYmJ5hff/11lZo8f/58VUj8/fffuPXWW1XHT9++fdVrpdq1a+OHH35QBcPGjRtx7733qgLixhtvNH9NOcEtaWky016Yu+++G1dddZUqMOS+YunSpUhOTsa4ceMKvY8UJ7IKJsckxZVspSOrRTJnKCfIJfX50KFD6utKwSLkdZ18buHChahXrx7efPNNVRgdPXoUlSpVMj/2U089pYpE6Xh67rnnVBF3+PBh+Pn5qc/LcUmx+MUXX6iT+g8++CBuuukm/PPPP0X+3NesWaO+N3kvX0++L3ndec8995hfm0pugBR48nXktWxRWwiRG8opA957772cunXr5vj7++d07do1599//zV/rm/fvjm33367+eO1a9fmtGjRIicgICCncuXKObfddlvOuXPnrPp6cXFxEk+v3pMTrHszJ2dKqPb2as2cnKwso4+IiAzCv79F48+GClqzZo36ndi0aZP6OHHTvzkX3p6Vk5WUpD7euHGj+vzKlStzgoOD1cd53XXXXTnjx48v8vEfeuihnOuuu878sbzeql69ek5aWlq+29WrVy/nnXfeMX/csmXLnDfeeMP88YgRI3LuuOOOIr9OmzZtcl5++eViv8fLly+br0tMTMzx8/PL+frrr83Xpaen54SHh+e8+eab+e733XffmW9z8eLFnKCgoJxFixapjz/77DN1m7yvKw8cOKCu27x5s/p4ypQpOe3atcv3M5DvNzMz03zdDTfckDNu3Lh89//vv//Mnz9y5Ii6Lu/PiNz376/Lr1wJCaWQt8LIWYG85OyLnPGgMuT05tzLGUlA7CmgUgMjj4iIiMjl6UnIrVu3Vu8vzJiBtEOHkHX5MmpOm2q+fteuXWqF5tprr813f1kt6tChg/njuXPnYsGCBTh9+jRSUlLU5wsm5Um7YUlzVrJ69dFHH6nVJZmT//333/HXX38VeXtp73vggQfwxx9/qO12ZKVKWvmKcuzYMdWG16tXL/N1skIkHU4HDuTvgMk7RiIrWtLKmPc2vr6+aj9VnQSiSaug3EYerzDStiiZADpZxdqzZ4+6LCts8pgdO3Y0f75x48aqrZE8g0vPXJEHyM4GzmzRLvuV095HsTgmIiIqid52J3NEOdnZSDcFWsT+8APi//zTPF8krXZC5o927txpfpOT0frc1XfffadaCGXuSooc+byMYEiBlZf+WMWRtrjjx4+r2S9pRZS5oz59+hRbjMntb7vtNlWkyCjIe++9B1eltxTqZLZL2iqJBIsrMlb0ASAtTiusmg3RrmNxRUREVCIpWCQoYfr06UiPjEROnk2nI154Ea+9/LIqbG6++WaVPCkrUrKKkvdN3z9NZox69uypZo5kNUs+JytEtpCZLZn3+uyzz1RohD4nXxw5jvvvv9+cfPjxxx+r6/VVsrzR8o0aNVLX552LkpUsCbRo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uC0IAAAAAGlAcQUAAAAAaUBx1UkFBQVy8803m//7DefmXX4+P87Nm/x8bm7k539vzs2b/Hxufj8/zi09CLQAAAAAgDRg5goAAAAA0oDiCgAAAADSgOIKAAAAANKA4goAAAAA0oDiqhMeeOABGTFihPTo0UNOOukkWb58ufjBLbfcIqFQKOVx2GGHiRctXbpUzjrrLLNztp7H008/nfJ+zW256aabZNCgQdKzZ0+ZNGmSrF69WvxwbhdffHGr6/jtb39bvGDOnDly4oknSnFxsfTv31+mTp0qq1atSvmYvXv3yqxZs6SsrEyKiork3HPPlS1btogfzu30009vde0uu+wy8YI//vGPcswxxzgbMo4fP16ee+45z183L2Fscj/GJsYmt/Hz2PRHl4xLFFcdePzxx+Xqq6828Y3vvfeejB07VqZMmSJbt24VPzjyyCNl06ZNzuP1118XL9q1a5e5Nvpkoy3z5s2Te++9V+bPny9vvfWWFBYWmuuov2hePzelA1bydXz00UfFC1577TXzh27ZsmXy0ksvyb59+2Ty5MnmnG1XXXWV/Otf/5InnnjCfHxFRYWcc8454odzUzNmzEi5dvqz6gVDhw6VuXPnyrvvvivvvPOOnHHGGXL22WfLxx9/7Onr5hWMTd7A2MTY5DZ+HpuGumVc0ih2tO8b3/iGNWvWLOf1WCxmDR482JozZ47ldTfffLM1duxYy2/0x/qpp55yXo/H49bAgQOt3//+987bamtrrYKCAuvRRx+1vHxu6qKLLrLOPvtsyw+2bt1qzvG1115zrlNeXp71xBNPOB/z6aefmo958803LS+fmzrttNOsK664wvKLPn36WH/60598dd3cirHJexibvIuxybv65GBcYuZqPxoaGkz1q9P0tnA4bF5/8803xQ+0/UCn9A855BC54IILZMOGDeI369evl82bN6dcx969e5s2Gr9cxyVLlpjp/TFjxsjMmTOlurpavGj79u3m/3379jX/198/vauWfO20Peiggw7y3LVreW62Rx55RMrLy+Woo46SG264QXbv3i1eE4vF5LHHHjN3PrUNw0/XzY0Ym/yBsck7GJu8NzbFcjguRdP61XymqqrKXJwBAwakvF1f/+yzz8Tr9A/4woULzR89nfK99dZb5ZRTTpGPPvrI9OL6hQ5eqq3raL/Py7TtQqe1Dz74YFm7dq386le/kjPPPNP8sYhEIuIV8XhcrrzySpkwYYL5Y670+uTn50tpaamnr11b56Z+/OMfy/Dhw82TyBUrVsh1111net+ffPJJ8YKVK1eaQUtbmLR//amnnpIjjjhCPvjgA19cN7dibPIHxiZvYGzy1ti00gXjEsVVgOkfOZsuANQBTX+Z/v73v8tPf/rTnB4bOu/88893Xj766KPNtTz00EPNHcOJEyeKV2gPuD558uraiu6c26WXXppy7XRRu14zfSKi19Dt9MmvDlh653PRokVy0UUXmT524EAwNvkDY5P7+XFsGuOCcYm2wP3Q6VC9u9IySURfHzhwoPiNVvOjR4+WNWvWiJ/Y1yoo11HbaPRn10vXcfbs2fLss8/Kq6++ahak2vT6aAtUbW2tZ69de+fWFn0Sqbxy7fQu4MiRI2XcuHEmgUoXt99zzz2+uG5uxtjkD4xN7sfY5L2xKd8F4xLFVQcXSC/O4sWLU6ZQ9XWdcvSburo6c1dC71D4ibYk6C9O8nXcsWOHSWby43X86quvTF+7F66jroPWP/A6bf/KK6+Ya5VMf//y8vJSrp22Juj6C7dfu47OrS16t0154dq1Rf8+1tfXe/q6eQFjkz8wNrkXY5N/xqZ4LsaltMZj+NBjjz1mknsWLlxoffLJJ9all15qlZaWWps3b7a87pprrrGWLFlirV+/3nrjjTesSZMmWeXl5SY5xmt27txpvf/+++ahP9Z33XWXefnLL7807587d665bs8884y1YsUKk2B08MEHW3v27LG8fG76vmuvvdYk3eh1fPnll63jjz/eGjVqlLV3717L7WbOnGn17t3b/Bxu2rTJeezevdv5mMsuu8w66KCDrFdeecV65513rPHjx5uH189tzZo11m233WbOSa+d/mwecsgh1qmnnmp5wfXXX2/SpfTY9XdKXw+FQtaLL77o6evmFYxN3sDYxNjkNn4em653ybhEcdUJ9913n7kY+fn5Jv522bJllh9MmzbNGjRokDmvIUOGmNf1l8qLXn31VfPHveVDo2DtyNsbb7zRGjBggHlCMnHiRGvVqlWW189N/xhOnjzZ6tevn4kYHT58uDVjxgzPPMFq67z08ec//9n5GH2Scfnll5s41V69elk/+MEPzEDg9XPbsGGDGaz69u1rfiZHjhxp/eIXv7C2b99uecH06dPNz5v+/dCfP/2dsgcwL183L2Fscj/GJsYmt/Hz2DTdJeNSSP+T3rkwAAAAAAge1lwBAAAAQBpQXAEAAABAGlBcAQAAAEAaUFwBAAAAQBpQXAEAAABAGlBcAQAAAEAaUFwBAAAAQBpQXAEAAABAGlBcAQExYsQIufvuu3N9GAAAOBib4DcUV0AGXHzxxTJ16lTz8umnny5XXnll1r73woULpbS0tNXb3377bbn00kuzdhwAAHdhbAIyL5qF7wEgDRoaGiQ/P7/bn9+vX7+0Hg8AAIxNQCpmroAM3yV87bXX5J577pFQKGQeX3zxhXnfRx99JGeeeaYUFRXJgAED5Cc/+YlUVVU5n6t3FWfPnm3uLJaXl8uUKVPM2++66y45+uijpbCwUIYNGyaXX3651NXVmfctWbJELrnkEtm+fbvz/W655ZY2Wy82bNggZ599tvn+JSUlct5558mWLVuc9+vnHXvssfLXv/7VfG7v3r3l/PPPl507dzofs2jRInMsPXv2lLKyMpk0aZLs2rUrC/+yAIDuYmwCMofiCsggHbjGjx8vM2bMkE2bNpmHDjq1tbVyxhlnyHHHHSfvvPOOPP/882bw0EEk2cMPP2zuCL7xxhsyf/5887ZwOCz33nuvfPzxx+b9r7zyivzyl7807/vmN79pBikdkOzvd+2117Y6rng8bgavmpoaM8C+9NJLsm7dOpk2bVrKx61du1aefvppefbZZ81DP3bu3Lnmffq1f/SjH8n06dPl008/NYPnOeecI5ZlZfBfFABwoBibgMyhLRDIIL2jpgNQr169ZODAgc7b77//fjN43XHHHc7bHnroITO4ff755zJ69GjztlGjRsm8efNSvmZyj7zetbv99tvlsssukz/84Q/me+n31LuCyd+vpcWLF8vKlStl/fr15nuqv/zlL3LkkUea/vcTTzzRGei0T764uNi8rncw9XN/+9vfmgGssbHRDFrDhw8379c7hQAAd2NsAjKHmSsgBz788EN59dVXTduD/TjssMOcO3K2cePGtfrcl19+WSZOnChDhgwxA4sOKtXV1bJ79+5Of3+9m6cDlz14qSOOOMIsNtb3JQ+Q9uClBg0aJFu3bjUvjx071hyHDlo//OEPZcGCBbJt27Zu/GsAANyAsQk4cBRXQA5oH/pZZ50lH3zwQcpj9erVcuqppzofp73rybQn/nvf+54cc8wx8o9//EPeffddeeCBB5xFxemWl5eX8rreddQ7hioSiZiWjeeee84Mfvfdd5+MGTPG3HEEAHgPYxNw4CiugAzTdohYLJbytuOPP970pevdt5EjR6Y8Wg5ayXTA0gHkzjvvlJNPPtm0aFRUVHT4/Vo6/PDDZePGjeZh++STT0y/vQ5GnaUD2oQJE+TWW2+V999/33zvp556qtOfDwDIDcYmIDMoroAM00HqrbfeMnf2NHFJB6BZs2aZBbu66Fb7yLXd4oUXXjBpSvsbfHSA27dvn7kTp4t8NS3JXkyc/P307qP2n+v3a6slQ5OTtGXiggsukPfee0+WL18uF154oZx22mlywgkndOq89Jy0L18XPWu605NPPimVlZVmcAQAuBtjE5AZFFdAhmkikrYp6F033c9D/9gPHjzYpCzpYDV58mQzmOhiYO0r18Sl9mgvucbd/u53v5OjjjpKHnnkEZkzZ07Kx2gqky4i1nQl/X4tFx3bd/WeeeYZ6dOnj2n10AHtkEMOkccff7zT56WpT0uXLpXvfOc75i7lb37zG3PXUiN8AQDuxtgEZEbIIpsSAAAAAA4YM1cAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAAAgB+7/A47hh7yw57a8AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -386,7 +409,7 @@ "\n", "fig, ((ax_tl, ax_tr), (ax_bl, ax_br)) = plt.subplots(2, 2, sharex=True, sharey='row', figsize=(10, 6))\n", "ax_tl.set_title('Training set')\n", - "ax_tr.set_title('Development set')\n", + "ax_tr.set_title('Validation set')\n", "ax_bl.set_xlabel('Iterations')\n", "ax_br.set_xlabel('Iterations')\n", "ax_bl.set_ylabel('Accuracy')\n", @@ -419,7 +442,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "463a2d27", "metadata": {}, "outputs": [ @@ -427,7 +450,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Test Accuracy: 0.6666666666666666\n" + "Test Accuracy: 0.9166666666666666\n" ] } ], From 11e47ddc238ed5d33663f1d37d9d78951c786b69 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 29 May 2025 18:02:18 +0100 Subject: [PATCH 12/23] cleaning up the notebooks from unecessary outputs --- docs/tutorials/discocirc_babi6_prep.ipynb | 96 +------------------ docs/tutorials/discocirc_babi6_training.ipynb | 13 +-- 2 files changed, 6 insertions(+), 103 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 9820e9f..16a66ad 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -192,75 +192,12 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "5dbca676", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Evaluating checksum: 100.0%|█████████▉|1.533/1.533GB [00:01<00:00]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Extracting model...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Downloading model: 100.0%|█████████▉|1.533/1.533GB [05:48<00:00]\n", - "WARNING:lambeq.core.utils:Downloading SpaCy tokeniser. This action only has to happen once.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting en-core-web-sm==3.8.0\n", - " Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl (12.8 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.8/12.8 MB\u001b[0m \u001b[31m47.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", - "\u001b[?25hInstalling collected packages: en-core-web-sm\n", - "Successfully installed en-core-web-sm-3.8.0\n", - "\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n", - "You can now load the package via spacy.load('en_core_web_sm')\n", - "\u001b[38;5;3m⚠ Restart to reload dependencies\u001b[0m\n", - "If you are in a Jupyter or Colab notebook, you may need to restart Python in\n", - "order to load all the package's dependencies. You can do this by selecting the\n", - "'Restart kernel' or 'Restart runtime' option.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sapienzanlp/maverick-mes-ontonotes loading\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" - ] - } - ], + "outputs": [], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -398,17 +335,11 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "72b15b5f", "metadata": {}, "outputs": [], "source": [ - "# reduced_datadict = {}\n", - "# for i in datadict.keys():\n", - "# if i not in discarded_ids:\n", - "# if datadict[i]['text_length'] < TEXT_LENGTH:\n", - "# reduced_datadict.update({i:datadict[i]})\n", - "\n", "reduced_datadict = {\n", " i: entry \n", " for i, entry in datadict.items() \n", @@ -426,29 +357,12 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 26, "id": "af318e63", "metadata": {}, "outputs": [], "source": [ "# # Reducing the size of the dictionary by removing the circuits that have more than a certain number of wires. \n", - "# def right_cod_size(circuit):\n", - "# if len(circuit.cod) > MAX_WIDTH:\n", - "# return False\n", - "# return True\n", - "\n", - "# def filter_entries_by_pos_neg_circuit_pair(entries):\n", - "# filtered_entries = {}\n", - " \n", - "# for key, entry in entries.items():\n", - "# pos_neg_circuit_pair = entry.get('text_circuit_sim4_13')\n", - "# if pos_neg_circuit_pair and right_cod_size(pos_neg_circuit_pair):\n", - "# filtered_entries[key] = entry\n", - " \n", - "# return filtered_entries\n", - "\n", - "# filtered_cod_datadict = filter_entries_by_pos_neg_circuit_pair(reduced_datadict)\n", - "\n", "def right_cod_size(circuit):\n", " if len(circuit.cod) > MAX_WIDTH:\n", " return False\n", @@ -458,8 +372,6 @@ " i: entry \n", " for i, entry in reduced_datadict.items() \n", " if right_cod_size(entry['text_circuit_sim4_13'])\n", - " # or directly:\n", - " # if len(entry['text_circuit_sim4_13'].cod) <= MAX_WIDTH\n", "}" ] }, diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index b5032f3..41cfbcb 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -68,19 +68,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "c6023fa1", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "import pickle\n", "\n", From 79431e155681aebc58913ce7c3fc6ed228a3d57a Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Fri, 30 May 2025 15:31:44 +0100 Subject: [PATCH 13/23] fixing the comments raised todfay except the point on reproducibility as it is still under investigation --- docs/tutorials/discocirc_babi6_prep.ipynb | 89 ++++-- docs/tutorials/discocirc_babi6_training.ipynb | 279 ++++++++++++++---- 2 files changed, 288 insertions(+), 80 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 16a66ad..679c2d8 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -13,10 +13,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "cf759bce", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ "from pathlib import Path\n", "from typing import Tuple, List\n", @@ -51,13 +60,12 @@ "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term} `functor `.\n", - "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", - "- `TRAINING_SAMPLE_SIZE`, `VALIDATION_SAMPLE_SIZE`, and `TEST_SAMPLE_SIZE` specify the size of the data for training, validation, and testing." + "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "28993a72", "metadata": {}, "outputs": [], @@ -79,11 +87,6 @@ "# Updating the FFL parameter\n", "FFL = False\n", "\n", - "# Sizes of training, validation, and test datasets\n", - "TRAINING_SAMPLE_SIZE = 120\n", - "VALIDATION_SAMPLE_SIZE = 30\n", - "TEST_SAMPLE_SIZE = 30\n", - "\n", "# Paths of resulting files for the datasets\n", "TRAINING_DATASET_FILEPATH = 'circuits/tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "VALIDATION_DATASET_FILEPATH = 'circuits/tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", @@ -106,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "05e8f624", "metadata": {}, "outputs": [], @@ -187,17 +190,32 @@ "\n", "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the {py:class}`~lambeq.experimental.discocirc.DisCoCircReader`, then we use the {py:meth}`~lambeq.experimental.discocirc.DisCoCircReader.text2circuit` with the `SANDWICH` argument indicating whether to use the {term}`sandwich functor ` or not, as well as the `FFL` argument which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", "\n", - "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated {term}`DisCoCirc` circuit, the question, the answer, and the text_length." + "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated {term}`DisCoCirc` circuit, the question, the answer, and the text length." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "5dbca676", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sapienzanlp/maverick-mes-ontonotes loading\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" + ] + } + ], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -218,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "73465ead", "metadata": {}, "outputs": [], @@ -248,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "15baa8dd", "metadata": {}, "outputs": [], @@ -266,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "32d767fc", "metadata": {}, "outputs": [], @@ -282,12 +300,12 @@ "id": "7ae48f77", "metadata": {}, "source": [ - "We proceed to add the lists obtained from the functions above to the dictionary to be used later once we want to add the question asking boxes. " + "We proceed to add the lists obtained from the functions above to the dictionary to be used later when building the assertion boxes." ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "eeefa4e2", "metadata": {}, "outputs": [], @@ -307,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "ac2c4298", "metadata": {}, "outputs": [], @@ -335,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -357,7 +375,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 11, "id": "af318e63", "metadata": {}, "outputs": [], @@ -391,7 +409,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -438,7 +456,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 13, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -492,7 +510,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 14, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -521,7 +539,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, "id": "bcecde44", "metadata": {}, "outputs": [ @@ -570,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 16, "id": "91b7c34d", "metadata": {}, "outputs": [], @@ -607,7 +625,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 17, "id": "0dd61567", "metadata": {}, "outputs": [ @@ -643,7 +661,20 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 19, + "id": "c5a05cce", + "metadata": {}, + "outputs": [], + "source": [ + "# Paths of resulting files for the datasets\n", + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" + ] + }, + { + "cell_type": "code", + "execution_count": 20, "id": "b9f1a78c", "metadata": {}, "outputs": [], diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 41cfbcb..6d0acba 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -49,9 +49,12 @@ " random.seed(seed_value)\n", " np.random.seed(seed_value)\n", " torch.manual_seed(seed_value)\n", + " torch.use_deterministic_algorithms(True)\n", " if torch.cuda.is_available():\n", " torch.cuda.manual_seed(seed_value)\n", " torch.cuda.manual_seed_all(seed_value)\n", + " torch.backends.cudnn.deterministic = True\n", + " torch.backends.cudnn.benchmark = False\n", "\n", "SEED = 2\n", "set_pytorch_seed(SEED)" @@ -68,10 +71,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "c6023fa1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ "import pickle\n", "\n", @@ -224,10 +236,52 @@ " for circuit in circuit_tuple\n", "]\n", "\n", - "backend_config = {'backend': 'default.qubit'} # this is the default PennyLane simulator\n", + "backend_config = {'backend': 'default.qubit'} \n", "model = PairCircuitModel.from_diagrams(all_circuits)\n", - "\n", - "model.initialise_weights()" + "model.initialise_weights()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d1fcdbe8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Parameter containing:\n", + "tensor([0.6147, 0.3810, 0.6371, 0.4745, 0.7136, 0.6190, 0.4425, 0.0958, 0.6142,\n", + " 0.0573, 0.5657, 0.5332, 0.3901, 0.9088, 0.5334, 0.7073, 0.7116, 0.2050,\n", + " 0.3078, 0.9809, 0.0103, 0.4660, 0.4604, 0.8547, 0.4525, 0.6317, 0.4760,\n", + " 0.2200, 0.2166, 0.2571, 0.0458, 0.1755, 0.6177, 0.8291, 0.5246, 0.2708,\n", + " 0.7197, 0.3081, 0.3892, 0.2259, 0.3430, 0.0367, 0.7133, 0.6944, 0.5993,\n", + " 0.7455, 0.7119, 0.5221, 0.5530, 0.5382, 0.7668, 0.8359, 0.8591, 0.7898,\n", + " 0.3781, 0.4777, 0.3984, 0.7909, 0.5555, 0.9628, 0.7536, 0.0727, 0.6463,\n", + " 0.9804, 0.9441, 0.4921, 0.6659, 0.0310, 0.3406, 0.7438, 0.0445, 0.9356,\n", + " 0.1712, 0.6581, 0.4811, 0.5881, 0.5484, 0.0326, 0.3926, 0.1839, 0.9251,\n", + " 0.4386, 0.0021, 0.6211, 0.7171, 0.2762, 0.4531, 0.7162, 0.1889, 0.2357,\n", + " 0.4518, 0.1489, 0.8073, 0.5409, 0.7992, 0.7677, 0.1147, 0.1884, 0.1580,\n", + " 0.3393, 0.3173, 0.4194, 0.0163, 0.7111, 0.7837, 0.6585, 0.8177, 0.8756,\n", + " 0.0064, 0.5755, 0.9638, 0.1376, 0.2774, 0.4737, 0.1890, 0.4058, 0.4261,\n", + " 0.9455, 0.4686, 0.7711, 0.8661, 0.7228, 0.0652, 0.8748, 0.8297, 0.1416,\n", + " 0.3217, 0.8403, 0.0139, 0.0618, 0.1611, 0.6558, 0.2958, 0.0541, 0.6938,\n", + " 0.7529, 0.6873, 0.0716, 0.9869, 0.4623, 0.0241, 0.4247, 0.8266, 0.7303,\n", + " 0.4947, 0.8525, 0.0438, 0.8469, 0.9963, 0.1960, 0.6072, 0.4194, 0.0779,\n", + " 0.4956, 0.3324, 0.0729, 0.1357, 0.5109, 0.9635, 0.6790, 0.1673, 0.8449,\n", + " 0.5410, 0.0114, 0.5237, 0.8210, 0.2060, 0.4770, 0.2509, 0.1057, 0.2159,\n", + " 0.5502, 0.8232, 0.4071, 0.0503, 0.4957, 0.0651, 0.5294, 0.8707, 0.7134,\n", + " 0.1942, 0.3897, 0.7002, 0.6356, 0.0303, 0.2085, 0.3232, 0.6837, 0.9468],\n", + " requires_grad=True)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.weights" ] }, { @@ -240,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "9081225f", "metadata": {}, "outputs": [], @@ -258,7 +312,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "991d8f44", "metadata": {}, "outputs": [], @@ -274,7 +328,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "ec1a4b8e", "metadata": {}, "outputs": [ @@ -284,7 +338,7 @@ "36" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -295,7 +349,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "a340f1a1", "metadata": {}, "outputs": [ @@ -303,41 +357,163 @@ "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_18693/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_64311/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", - "Epoch 1: train/loss: 0.6312 valid/loss: 0.6356 train/time: 46.62s valid/time: 5.91s train/acc: 0.5943 valid/acc: 0.7222\n", - "Epoch 2: train/loss: 0.4173 valid/loss: 0.6287 train/time: 10.44s valid/time: 2.47s train/acc: 0.7170 valid/acc: 0.7778\n", - "Epoch 3: train/loss: 0.6656 valid/loss: 0.6236 train/time: 10.44s valid/time: 2.17s train/acc: 0.7453 valid/acc: 0.5556\n", - "Epoch 4: train/loss: 0.5148 valid/loss: 0.5683 train/time: 10.35s valid/time: 2.46s train/acc: 0.7830 valid/acc: 0.8056\n", - "Epoch 5: train/loss: 0.5104 valid/loss: 0.5452 train/time: 10.40s valid/time: 2.48s train/acc: 0.8396 valid/acc: 0.7778\n", - "Epoch 6: train/loss: 0.4967 valid/loss: 0.5314 train/time: 10.57s valid/time: 2.47s train/acc: 0.7830 valid/acc: 0.8333\n", - "Epoch 7: train/loss: 0.4594 valid/loss: 0.5445 train/time: 10.82s valid/time: 3.05s train/acc: 0.8113 valid/acc: 0.6667\n", - "Epoch 8: train/loss: 0.6865 valid/loss: 0.5223 train/time: 59m52s valid/time: 2.23s train/acc: 0.8962 valid/acc: 0.7778\n", - "Epoch 9: train/loss: 0.3227 valid/loss: 0.5345 train/time: 11.31s valid/time: 2.21s train/acc: 0.7830 valid/acc: 0.5833\n", - "Epoch 10: train/loss: 0.4968 valid/loss: 0.5370 train/time: 10.89s valid/time: 2.19s train/acc: 0.8585 valid/acc: 0.8611\n", - "Epoch 11: train/loss: 0.3737 valid/loss: 0.5392 train/time: 11.69s valid/time: 2.20s train/acc: 0.8302 valid/acc: 0.7500\n", - "Epoch 12: train/loss: 0.3861 valid/loss: 0.5304 train/time: 10.82s valid/time: 2.65s train/acc: 0.8491 valid/acc: 0.8889\n", - "Epoch 13: train/loss: 0.7027 valid/loss: 0.5260 train/time: 11.03s valid/time: 2.34s train/acc: 0.8208 valid/acc: 0.8611\n", - "Epoch 14: train/loss: 0.4530 valid/loss: 0.5268 train/time: 10.79s valid/time: 2.18s train/acc: 0.8208 valid/acc: 0.7222\n", - "Epoch 15: train/loss: 0.5725 valid/loss: 0.5536 train/time: 10.54s valid/time: 2.50s train/acc: 0.8491 valid/acc: 0.6944\n", - "Epoch 16: train/loss: 0.6593 valid/loss: 0.5459 train/time: 10.86s valid/time: 2.49s train/acc: 0.8208 valid/acc: 0.7778\n", - "Epoch 17: train/loss: 0.4571 valid/loss: 0.5356 train/time: 11.60s valid/time: 2.18s train/acc: 0.8585 valid/acc: 0.7778\n", - "Epoch 18: train/loss: 0.3315 valid/loss: 0.5243 train/time: 10.58s valid/time: 2.46s train/acc: 0.8208 valid/acc: 0.7500\n", - "Epoch 19: train/loss: 0.5059 valid/loss: 0.5310 train/time: 10.52s valid/time: 2.52s train/acc: 0.8019 valid/acc: 0.8056\n", - "Epoch 20: train/loss: 0.6960 valid/loss: 0.5354 train/time: 10.49s valid/time: 2.19s train/acc: 0.8113 valid/acc: 0.7500\n", - "Epoch 21: train/loss: 0.6999 valid/loss: 0.5252 train/time: 10.84s valid/time: 2.24s train/acc: 0.8208 valid/acc: 0.7222\n", - "Epoch 22: train/loss: 0.3335 valid/loss: 0.5278 train/time: 10.84s valid/time: 2.20s train/acc: 0.7925 valid/acc: 0.6944\n", - "Epoch 23: train/loss: 0.5844 valid/loss: 0.5279 train/time: 11.63s valid/time: 2.19s train/acc: 0.8396 valid/acc: 0.7500\n", - "Epoch 24: train/loss: 0.6905 valid/loss: 0.5478 train/time: 9m43s valid/time: 2.52s train/acc: 0.8113 valid/acc: 0.5833\n", - "Epoch 25: train/loss: 0.4814 valid/loss: 0.5542 train/time: 11.04s valid/time: 2.58s train/acc: 0.7830 valid/acc: 0.7778\n", - "Epoch 26: train/loss: 0.4345 valid/loss: 0.5451 train/time: 11.14s valid/time: 2.37s train/acc: 0.7453 valid/acc: 0.7778\n", - "Epoch 27: train/loss: 0.3209 valid/loss: 0.5450 train/time: 11.70s valid/time: 2.31s train/acc: 0.8396 valid/acc: 0.7778\n", - "Epoch 28: train/loss: 0.3315 valid/loss: 0.5391 train/time: 11.51s valid/time: 2.29s train/acc: 0.8302 valid/acc: 0.8611\n", - "Epoch 29: train/loss: 0.6920 valid/loss: 0.5331 train/time: 11.47s valid/time: 2.30s train/acc: 0.8396 valid/acc: 0.6667\n", - "Epoch 30: train/loss: 0.4924 valid/loss: 0.5331 train/time: 11.31s valid/time: 2.61s train/acc: 0.7642 valid/acc: 0.8611\n", - "\n", - "Training completed!\n", - "train/time: 1h15m16s train/time_per_epoch: 2m31s train/time_per_step: 1.42s valid/time: 1m15s valid/time_per_eval: 2.50s\n" + "Epoch 1: \n", + "Parameter containing:\n", + "tensor([ 0.6147, 0.3804, 0.6371, 0.5387, 0.7138, 0.5793, 0.3368, 0.1678,\n", + " 0.5641, 0.0060, 0.5196, 0.5666, 0.4164, 0.8748, 0.5671, 0.7236,\n", + " 0.7954, 0.1709, 0.3492, 0.9414, 0.0565, 0.4831, 0.4540, 0.8268,\n", + " 0.4544, 0.6326, 0.4776, 0.2168, 0.2367, 0.2627, 0.0456, 0.1882,\n", + " 0.6033, 0.8128, 0.5220, 0.2712, 0.7643, 0.3375, 0.4264, 0.2704,\n", + " 0.3791, 0.0748, 0.7502, 0.7347, 0.5615, 0.7060, 0.7489, 0.4852,\n", + " 0.5166, 0.5745, 0.8038, 0.7762, 0.8676, 0.7350, 0.3886, 0.4317,\n", + " 0.4519, 0.8204, 0.5504, 0.9734, 0.7536, 0.0112, 0.6087, 1.0122,\n", + " 0.9229, 0.5204, 0.5902, 0.0731, 0.3772, 0.8039, 0.1148, 0.8749,\n", + " 0.2429, 0.6554, 0.4803, 0.5881, 0.5671, -0.0014, 0.4785, 0.1577,\n", + " 1.0016, 0.5167, 0.0019, 0.6135, 0.6518, 0.3169, 0.4640, 0.7256,\n", + " 0.1295, 0.2098, 0.4424, 0.2337, 0.8889, 0.6611, 0.8304, 0.8576,\n", + " 0.1678, 0.1341, 0.2133, 0.3792, 0.3282, 0.5288, 0.0544, 0.6261,\n", + " 0.7017, 0.6301, 0.7894, 0.9179, -0.0291, 0.6158, 0.9187, 0.1787,\n", + " 0.3097, 0.5170, 0.2319, 0.3680, 0.4684, 0.9048, 0.4243, 0.8264,\n", + " 0.8229, 0.7293, 0.0743, 0.8801, 0.8883, 0.1251, 0.3389, 0.8404,\n", + " 0.0362, 0.0730, 0.1372, 0.6773, 0.2876, 0.0586, 0.6244, 0.7207,\n", + " 0.6910, 0.1012, 1.0470, 0.4741, 0.1049, 0.3932, 0.8324, 0.7044,\n", + " 0.5107, 0.8816, 0.0219, 0.9331, 0.9524, 0.2017, 0.6269, 0.4304,\n", + " -0.0109, 0.5273, 0.3347, -0.0088, 0.1571, 0.4463, 0.9001, 0.7011,\n", + " 0.0975, 0.8933, 0.5830, 0.0397, 0.5279, 0.7557, 0.2283, 0.4998,\n", + " 0.2316, 0.0790, 0.2153, 0.5070, 0.7785, 0.4436, 0.0098, 0.5386,\n", + " 0.0249, 0.5706, 0.8244, 0.6683, 0.2251, 0.3529, 0.6555, 0.6639,\n", + " 0.0798, 0.1678, 0.3220, 0.6761, 0.9564], requires_grad=True)\n", + "train/loss: 0.6351 valid/loss: 0.6657 train/time: 43.67s valid/time: 7.50s train/acc: 0.5566 valid/acc: 0.6389\n", + "Epoch 2: \n", + "Parameter containing:\n", + "tensor([ 0.6146, 0.3741, 0.6202, 0.6021, 0.7498, 0.5792, 0.2328, 0.2173,\n", + " 0.5156, 0.0439, 0.4860, 0.5220, 0.4075, 0.8751, 0.5583, 0.6631,\n", + " 0.8593, 0.1596, 0.3859, 0.9728, 0.0856, 0.4786, 0.4590, 0.8203,\n", + " 0.4591, 0.6304, 0.4752, 0.2114, 0.2543, 0.2605, 0.0435, 0.1753,\n", + " 0.5953, 0.8299, 0.5262, 0.2733, 0.8015, 0.4013, 0.3720, 0.3305,\n", + " 0.4295, 0.1044, 0.8131, 0.7917, 0.6249, 0.6664, 0.6924, 0.4242,\n", + " 0.4594, 0.5591, 0.7576, 0.8126, 0.9090, 0.7592, 0.4214, 0.4458,\n", + " 0.5103, 0.8088, 0.5404, 0.9502, 0.7536, 0.0605, 0.6117, 1.0274,\n", + " 0.8899, 0.5078, 0.6106, 0.0717, 0.3723, 0.8256, 0.1215, 0.8754,\n", + " 0.2457, 0.6431, 0.4918, 0.5881, 0.5385, 0.0120, 0.4843, 0.1761,\n", + " 1.0048, 0.5051, -0.0196, 0.5977, 0.6503, 0.3421, 0.4292, 0.7227,\n", + " 0.1231, 0.2292, 0.4695, 0.2690, 0.9605, 0.6726, 0.7828, 0.8520,\n", + " 0.2572, 0.1460, 0.2967, 0.3835, 0.3123, 0.5680, 0.1105, 0.5760,\n", + " 0.6349, 0.6860, 0.7309, 0.9076, -0.0860, 0.5902, 0.8631, 0.1251,\n", + " 0.3688, 0.5744, 0.2558, 0.4163, 0.5243, 0.9624, 0.3663, 0.7693,\n", + " 0.8270, 0.7517, 0.0603, 0.9423, 0.9021, 0.0827, 0.3020, 0.9109,\n", + " -0.0651, 0.0908, 0.2239, 0.7223, 0.3630, 0.0948, 0.7131, 0.8219,\n", + " 0.7761, 0.1308, 1.0263, 0.4651, 0.0895, 0.3905, 0.8008, 0.7062,\n", + " 0.4814, 0.8719, 0.0066, 0.9634, 0.9810, 0.1927, 0.6152, 0.4262,\n", + " -0.0360, 0.4746, 0.3037, 0.0721, 0.0464, 0.3956, 0.8359, 0.5937,\n", + " 0.0492, 0.8449, 0.6407, 0.0433, 0.5490, 0.7031, 0.2183, 0.3912,\n", + " 0.2337, 0.0920, 0.2068, 0.5521, 0.7190, 0.3862, -0.0484, 0.4873,\n", + " -0.0230, 0.5161, 0.7655, 0.6472, 0.1698, 0.4078, 0.5972, 0.7234,\n", + " 0.0221, 0.1632, 0.3153, 0.7065, 0.9797], requires_grad=True)\n", + "train/loss: 0.4759 valid/loss: 0.6314 train/time: 11.15s valid/time: 2.59s train/acc: 0.7453 valid/acc: 0.6944\n", + "Epoch 3: \n", + "Parameter containing:\n", + "tensor([ 0.5967, 0.3764, 0.6202, 0.5766, 0.8125, 0.6186, 0.1388, 0.2446,\n", + " 0.5180, 0.0323, 0.4714, 0.5337, 0.3960, 0.8368, 0.5961, 0.7274,\n", + " 0.8135, 0.2257, 0.3980, 0.9828, 0.0955, 0.4752, 0.4579, 0.8585,\n", + " 0.4458, 0.6198, 0.4804, 0.2145, 0.2664, 0.2783, 0.0538, 0.1588,\n", + " 0.5967, 0.8369, 0.5281, 0.2734, 0.7875, 0.3558, 0.4167, 0.2990,\n", + " 0.4167, 0.0589, 0.7863, 0.7715, 0.5679, 0.6837, 0.7392, 0.4530,\n", + " 0.4915, 0.5452, 0.6845, 0.8072, 0.9452, 0.7493, 0.4082, 0.4235,\n", + " 0.4639, 0.8338, 0.5169, 0.9685, 0.7536, 0.0463, 0.6001, 1.0466,\n", + " 0.9156, 0.5155, 0.6592, 0.0807, 0.3954, 0.8214, 0.0972, 0.8590,\n", + " 0.2197, 0.6492, 0.4915, 0.5881, 0.5252, 0.0137, 0.4919, 0.1848,\n", + " 0.9792, 0.4909, -0.0350, 0.5950, 0.6637, 0.4392, 0.3449, 0.6693,\n", + " 0.1429, 0.2068, 0.4527, 0.2915, 0.9845, 0.6638, 0.8183, 0.8613,\n", + " 0.2682, 0.1181, 0.3018, 0.3593, 0.3034, 0.5815, 0.1134, 0.4869,\n", + " 0.6190, 0.6314, 0.7555, 0.8428, -0.1334, 0.6436, 0.8743, 0.1256,\n", + " 0.3229, 0.6189, 0.1923, 0.4433, 0.4901, 1.0072, 0.3825, 0.7166,\n", + " 0.8293, 0.7752, 0.0352, 0.9980, 0.8739, 0.0855, 0.2682, 0.9168,\n", + " -0.0116, 0.0678, 0.2140, 0.7007, 0.3155, 0.0615, 0.6475, 0.8092,\n", + " 0.7599, 0.1281, 0.9930, 0.4773, 0.0365, 0.3864, 0.7918, 0.7173,\n", + " 0.4559, 0.8391, 0.0276, 0.9621, 1.0132, 0.2076, 0.5930, 0.4330,\n", + " -0.0264, 0.5012, 0.2817, 0.0616, 0.0200, 0.4412, 0.8339, 0.5788,\n", + " 0.0955, 0.7837, 0.6527, 0.0131, 0.5259, 0.7450, 0.1921, 0.3566,\n", + " 0.2012, 0.0893, 0.1762, 0.6074, 0.7061, 0.4535, 0.0031, 0.4871,\n", + " 0.0297, 0.5528, 0.7385, 0.5977, 0.2360, 0.3999, 0.6386, 0.6623,\n", + " 0.0895, 0.2204, 0.3521, 0.7181, 0.9772], requires_grad=True)\n", + "train/loss: 0.4596 valid/loss: 0.6011 train/time: 11.46s valid/time: 2.29s train/acc: 0.7830 valid/acc: 0.7222\n", + "Epoch 4: \n", + "Parameter containing:\n", + "tensor([ 0.5968, 0.3866, 0.6203, 0.5969, 0.8371, 0.6218, 0.0578, 0.2881,\n", + " 0.4611, 0.0418, 0.4020, 0.5304, 0.4193, 0.8563, 0.5622, 0.6991,\n", + " 0.8237, 0.1929, 0.3516, 0.9878, 0.0460, 0.4763, 0.4643, 0.8675,\n", + " 0.4452, 0.6268, 0.4868, 0.2174, 0.2759, 0.2804, 0.0645, 0.1423,\n", + " 0.5886, 0.8449, 0.5270, 0.2677, 0.7951, 0.3508, 0.4122, 0.2914,\n", + " 0.4146, 0.0575, 0.7784, 0.7617, 0.5809, 0.6894, 0.7307, 0.4586,\n", + " 0.4975, 0.5427, 0.6921, 0.7851, 1.0047, 0.7201, 0.4063, 0.4494,\n", + " 0.4969, 0.8073, 0.5070, 0.9734, 0.7536, 0.0482, 0.5981, 1.0480,\n", + " 0.9093, 0.4841, 0.6839, 0.0921, 0.3653, 0.8387, 0.1166, 0.8132,\n", + " 0.2409, 0.6715, 0.4961, 0.5881, 0.5591, 0.0168, 0.5510, 0.1489,\n", + " 0.9981, 0.5117, -0.0091, 0.6198, 0.6658, 0.4191, 0.3423, 0.6987,\n", + " 0.2275, 0.2525, 0.4413, 0.3156, 0.9983, 0.7309, 0.8333, 0.9178,\n", + " 0.2199, 0.0879, 0.2540, 0.2838, 0.3121, 0.6933, 0.1230, 0.4767,\n", + " 0.6109, 0.6374, 0.7865, 0.8294, -0.1681, 0.6661, 0.8906, 0.1213,\n", + " 0.2876, 0.6122, 0.1586, 0.4477, 0.4775, 1.0442, 0.4079, 0.6820,\n", + " 0.8156, 0.7429, 0.0513, 1.0240, 0.8468, 0.1331, 0.2814, 0.9388,\n", + " -0.0067, 0.0621, 0.2260, 0.6614, 0.3253, 0.0800, 0.6713, 0.8320,\n", + " 0.7528, 0.1398, 1.0393, 0.4568, 0.0823, 0.3889, 0.8158, 0.7234,\n", + " 0.4758, 0.8708, -0.0151, 0.9806, 0.9927, 0.1893, 0.6200, 0.3984,\n", + " -0.0467, 0.5564, 0.2925, 0.0082, 0.0029, 0.4377, 0.8383, 0.5520,\n", + " 0.0667, 0.7600, 0.6901, -0.0502, 0.5395, 0.7299, 0.1788, 0.3371,\n", + " 0.1755, 0.0651, 0.1592, 0.6414, 0.7147, 0.4891, 0.0390, 0.5126,\n", + " 0.0455, 0.5815, 0.7531, 0.5587, 0.2407, 0.3982, 0.6611, 0.6206,\n", + " 0.1230, 0.2601, 0.4078, 0.7017, 0.9718], requires_grad=True)\n", + "train/loss: 0.6262 valid/loss: 0.6061 train/time: 10.89s valid/time: 2.56s train/acc: 0.8774 valid/acc: 0.6944\n", + "Epoch 5: \n", + "Parameter containing:\n", + "tensor([ 0.6062, 0.3813, 0.6203, 0.6023, 0.8357, 0.6473, 0.0497, 0.2837,\n", + " 0.4713, 0.0457, 0.4255, 0.5127, 0.4297, 0.8945, 0.5270, 0.7615,\n", + " 0.8193, 0.2527, 0.3971, 0.9919, 0.0883, 0.4911, 0.4365, 0.8605,\n", + " 0.4314, 0.6336, 0.4923, 0.2226, 0.2436, 0.2633, 0.0543, 0.1572,\n", + " 0.6044, 0.8566, 0.5323, 0.2862, 0.7775, 0.3263, 0.4203, 0.2600,\n", + " 0.3618, 0.0063, 0.7913, 0.6959, 0.5508, 0.6708, 0.6541, 0.4874,\n", + " 0.5561, 0.4703, 0.6808, 0.7716, 1.0141, 0.7054, 0.4092, 0.4330,\n", + " 0.5258, 0.8219, 0.5163, 0.9763, 0.7536, 0.0131, 0.5885, 1.0648,\n", + " 0.9124, 0.4957, 0.6809, 0.1063, 0.3793, 0.8199, 0.0932, 0.8216,\n", + " 0.2132, 0.6601, 0.4964, 0.5881, 0.5479, 0.0117, 0.5443, 0.1673,\n", + " 0.9729, 0.5024, -0.0170, 0.6306, 0.6636, 0.4051, 0.3479, 0.7382,\n", + " 0.2373, 0.2878, 0.4696, 0.3052, 0.9796, 0.7167, 0.8638, 0.9119,\n", + " 0.1756, 0.0766, 0.1957, 0.2746, 0.3012, 0.6709, 0.1323, 0.4903,\n", + " 0.5965, 0.7002, 0.8054, 0.8197, -0.2569, 0.6434, 0.9322, 0.0751,\n", + " 0.2512, 0.6059, 0.1521, 0.4177, 0.5082, 1.1003, 0.4435, 0.6204,\n", + " 0.8257, 0.7102, 0.0759, 0.9952, 0.9182, 0.0812, 0.2786, 0.9478,\n", + " 0.0329, 0.0656, 0.2988, 0.7527, 0.3409, 0.1125, 0.6040, 0.8538,\n", + " 0.7711, 0.1482, 1.0263, 0.4570, 0.0686, 0.3873, 0.8296, 0.7063,\n", + " 0.4921, 0.8653, -0.0058, 0.9902, 0.9751, 0.1907, 0.6164, 0.4164,\n", + " -0.0617, 0.5378, 0.2333, 0.0353, 0.0643, 0.4954, 0.8109, 0.5874,\n", + " 0.1048, 0.7940, 0.6334, -0.0740, 0.5054, 0.7819, 0.1935, 0.3700,\n", + " 0.1744, 0.0742, 0.1649, 0.7148, 0.7342, 0.5623, 0.0836, 0.5990,\n", + " 0.0709, 0.6292, 0.8155, 0.5033, 0.1982, 0.3905, 0.6889, 0.5282,\n", + " 0.1492, 0.3048, 0.3677, 0.6838, 0.9731], requires_grad=True)\n", + "train/loss: 0.3813 valid/loss: 0.6006 train/time: 11.26s valid/time: 2.44s train/acc: 0.8868 valid/acc: 0.6944\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[13]\u001b[39m\u001b[32m, line 16\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mlambeq\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PytorchTrainer\n\u001b[32m 3\u001b[39m trainer = PytorchTrainer(\n\u001b[32m 4\u001b[39m model=model,\n\u001b[32m 5\u001b[39m loss_function=loss,\n\u001b[32m (...)\u001b[39m\u001b[32m 13\u001b[39m seed=SEED\n\u001b[32m 14\u001b[39m )\n\u001b[32m---> \u001b[39m\u001b[32m16\u001b[39m \u001b[43mtrainer\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_dataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_dataset\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/trainer.py:588\u001b[39m, in \u001b[36mTrainer.fit\u001b[39m\u001b[34m(self, train_dataset, val_dataset, log_interval, eval_interval, eval_mode, early_stopping_criterion, early_stopping_interval, minimize_criterion, full_timing_report)\u001b[39m\n\u001b[32m 580\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m batch \u001b[38;5;129;01min\u001b[39;00m tqdm(train_dataset,\n\u001b[32m 581\u001b[39m desc=\u001b[33m'\u001b[39m\u001b[33mBatch\u001b[39m\u001b[33m'\u001b[39m,\n\u001b[32m 582\u001b[39m total=train_dataset.batches_per_epoch,\n\u001b[32m 583\u001b[39m disable=disable_tqdm,\n\u001b[32m 584\u001b[39m leave=\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[32m 585\u001b[39m position=\u001b[32m2\u001b[39m):\n\u001b[32m 587\u001b[39m step += \u001b[32m1\u001b[39m\n\u001b[32m--> \u001b[39m\u001b[32m588\u001b[39m t_loss = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_step_and_eval\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 589\u001b[39m \u001b[43m \u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 590\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mtraining_step\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 591\u001b[39m \u001b[43m \u001b[49m\u001b[43mtrain_losses\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 592\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_train_eval_running\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 593\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mtrain_durations\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 594\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mevaluate_on_train\u001b[49m\n\u001b[32m 595\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 597\u001b[39m \u001b[38;5;28mself\u001b[39m._to_tensorboard(\u001b[33m'\u001b[39m\u001b[33mtrain/step_loss\u001b[39m\u001b[33m'\u001b[39m, t_loss, step)\n\u001b[32m 598\u001b[39m status_bar.set_description(\n\u001b[32m 599\u001b[39m \u001b[38;5;28mself\u001b[39m._generate_stat_report(\n\u001b[32m 600\u001b[39m train_loss=t_loss,\n\u001b[32m (...)\u001b[39m\u001b[32m 607\u001b[39m )\n\u001b[32m 608\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/trainer.py:390\u001b[39m, in \u001b[36mTrainer._step_and_eval\u001b[39m\u001b[34m(self, batch, step_func, losses, eval_results, step_durations, evaluate)\u001b[39m\n\u001b[32m 388\u001b[39m step_start = time.time()\n\u001b[32m 389\u001b[39m batch_size = \u001b[38;5;28mlen\u001b[39m(batch[\u001b[32m0\u001b[39m])\n\u001b[32m--> \u001b[39m\u001b[32m390\u001b[39m y_hat, loss = \u001b[43mstep_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 391\u001b[39m losses.append((batch_size, loss))\n\u001b[32m 393\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.evaluate_functions \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m evaluate:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/pytorch_trainer.py:197\u001b[39m, in \u001b[36mPytorchTrainer.training_step\u001b[39m\u001b[34m(self, batch)\u001b[39m\n\u001b[32m 183\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"Perform a training step.\u001b[39;00m\n\u001b[32m 184\u001b[39m \n\u001b[32m 185\u001b[39m \u001b[33;03mParameters\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 194\u001b[39m \n\u001b[32m 195\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 196\u001b[39m x, y = batch\n\u001b[32m--> \u001b[39m\u001b[32m197\u001b[39m y_hat = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 198\u001b[39m loss = \u001b[38;5;28mself\u001b[39m.loss_function(y_hat, y.to(\u001b[38;5;28mself\u001b[39m.device))\n\u001b[32m 199\u001b[39m \u001b[38;5;28mself\u001b[39m.train_costs.append(loss.item())\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/quantum_model.py:172\u001b[39m, in \u001b[36mQuantumModel.__call__\u001b[39m\u001b[34m(self, *args, **kwargs)\u001b[39m\n\u001b[32m 171\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, *args: Any, **kwargs: Any) -> AnyTensor:\n\u001b[32m--> \u001b[39m\u001b[32m172\u001b[39m out = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 173\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._training:\n\u001b[32m 174\u001b[39m \u001b[38;5;28mself\u001b[39m._log_prediction(out)\n", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[7]\u001b[39m\u001b[32m, line 9\u001b[39m, in \u001b[36mPairCircuitModel.forward\u001b[39m\u001b[34m(self, circ_pairs)\u001b[39m\n\u001b[32m 7\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, circ_pairs: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mtuple\u001b[39m[Diagram, Diagram]]) -> torch.Tensor:\n\u001b[32m 8\u001b[39m pos_circs, neg_circs = \u001b[38;5;28mzip\u001b[39m(*circ_pairs)\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m pos_out = \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mget_diagram_output\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpos_circs\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[32m 10\u001b[39m neg_out = \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28mself\u001b[39m.get_diagram_output(neg_circs))\n\u001b[32m 12\u001b[39m \u001b[38;5;66;03m# implement a function that would merge pos_out and neg_out into an nx2 tensor\u001b[39;00m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/pytorch_quantum_model.py:91\u001b[39m, in \u001b[36mPytorchQuantumModel.get_diagram_output\u001b[39m\u001b[34m(self, diagrams)\u001b[39m\n\u001b[32m 89\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m d \u001b[38;5;129;01min\u001b[39;00m diagrams:\n\u001b[32m 90\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(d, Circuit)\n\u001b[32m---> \u001b[39m\u001b[32m91\u001b[39m nodes, edges = \u001b[43md\u001b[49m\u001b[43m.\u001b[49m\u001b[43mto_tn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 93\u001b[39m \u001b[38;5;66;03m# Ensure uniform tensor dtypes for contraction.\u001b[39;00m\n\u001b[32m 94\u001b[39m dominant_dtype = torch.bool\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:567\u001b[39m, in \u001b[36mDiagram.to_tn\u001b[39m\u001b[34m(self, mixed)\u001b[39m\n\u001b[32m 563\u001b[39m (scan[q_offset],\n\u001b[32m 564\u001b[39m scan[q_offset + \u001b[32m1\u001b[39m]) = (scan[q_offset + \u001b[32m1\u001b[39m],\n\u001b[32m 565\u001b[39m scan[q_offset])\n\u001b[32m 566\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m567\u001b[39m utensor = \u001b[43mbox\u001b[49m\u001b[43m.\u001b[49m\u001b[43marray\u001b[49m\n\u001b[32m 568\u001b[39m node1 = tn.Node(utensor + \u001b[32m0\u001b[39mj, \u001b[33m'\u001b[39m\u001b[33mq1_\u001b[39m\u001b[33m'\u001b[39m + \u001b[38;5;28mstr\u001b[39m(box))\n\u001b[32m 569\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m backend() \u001b[38;5;28;01mas\u001b[39;00m np:\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:880\u001b[39m, in \u001b[36mRx.array\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 877\u001b[39m \u001b[38;5;129m@property\u001b[39m\n\u001b[32m 878\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34marray\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[32m 879\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m backend() \u001b[38;5;28;01mas\u001b[39;00m np:\n\u001b[32m--> \u001b[39m\u001b[32m880\u001b[39m half_theta = np.pi * \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mphase\u001b[49m\n\u001b[32m 881\u001b[39m sin = \u001b[38;5;28mself\u001b[39m.modules.sin(half_theta)\n\u001b[32m 882\u001b[39m cos = \u001b[38;5;28mself\u001b[39m.modules.cos(half_theta)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:866\u001b[39m, in \u001b[36mRotation.phase\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 861\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, phase):\n\u001b[32m 863\u001b[39m \u001b[38;5;28msuper\u001b[39m().\u001b[34m__init__\u001b[39m(\n\u001b[32m 864\u001b[39m \u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m).\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mphase\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m)\u001b[39m\u001b[33m'\u001b[39m, qubit, qubit, phase)\n\u001b[32m--> \u001b[39m\u001b[32m866\u001b[39m \u001b[38;5;129m@property\u001b[39m\n\u001b[32m 867\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mphase\u001b[39m(\u001b[38;5;28mself\u001b[39m) -> \u001b[38;5;28mfloat\u001b[39m:\n\u001b[32m 868\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m.data\n\u001b[32m 870\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mdagger\u001b[39m(\u001b[38;5;28mself\u001b[39m) -> Self:\n", + "\u001b[31mKeyboardInterrupt\u001b[39m: " ] } ], @@ -353,7 +529,8 @@ " evaluate_functions=eval_metrics,\n", " evaluate_on_train=True,\n", " use_tensorboard=False,\n", - " verbose='text'\n", + " verbose='text', \n", + " seed=SEED\n", " )\n", "\n", "trainer.fit(train_dataset, val_dataset)" @@ -369,23 +546,23 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "2df2f3c7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(12.4, 0.8888888888888888, 'early stopping')" + "Text(29.4, 1.0, 'early stopping')" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAIjCAYAAADvBuGTAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA0PpJREFUeJzs3Qd8U2UXBvCne0Bb9ih7772XgCJ7OxAHinvrpzhwoaDgQEQUwYXixoGogKAgIAiC7L03LbQFuvf4fue9uemgI0mT3DR5/t/XX9M0SW9LbXLue87zeuXk5OSAiIiIiIiISsW7dHcnIiIiIiIiweKKiIiIiIjIDlhcERERERER2QGLKyIiIiIiIjtgcUVERERERGQHLK6IiIiIiIjsgMUVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4orIQHfccQfq169v031ffvlleHl52f2YiIjIfZw8eVI9V3z++ec2PX/I7eT29tSvXz/1RuSOWFwRFfFkYsnb2rVrjT7UMu+bb77B7NmzjT4MIiLDjRw5EsHBwUhISCjyNrfccgv8/f1x8eJFuLL9+/erokyKO3fk7t8f2c4rJycnpxT3J3JLX331Vb6Pv/jiC/z555/48ssv811/7bXXonr16jZ/nYyMDGRnZyMgIMDq+2ZmZqq3wMBAlGXDhw/H3r17+QRFRB5v0aJFuOmmm7Bw4UJMmDDhis8nJyejWrVquPrqq/Hrr79a9Jjyt7VBgwb47LPPVLeEtc8fciJxypQpVq9e/fjjj7jhhhuwZs2aK1ap0tPT1XspEsuq4r4/8my+Rh8AkSu69dZb833877//quKq4PWFPfHJWUdL+fn52XyMvr6+6o2IiNxn5SokJESt6BdWXP3yyy9ISkpSq1elYfTzR1kuqohKwrZAIhvJmarWrVtj27ZtuOqqq1RR9dxzz5mfAIcNG4bw8HC1KtWoUSNMmzYNWVlZxc5c6b3xM2fOxEcffaTuJ/fv0qUL/vvvv3z3LaxnXj5++OGHsWTJEnVsct9WrVphxYoVVxy/tDR27txZnbmUr/Phhx9a3Id/5MgRXHfddahRo4a6f+3atdXZ1ri4uCtWADt16oSgoCBUqlRJ3ebMmTP5fobLli3DqVOnzK2Wts6gERGVdfK3cuzYsVi9ejWioqKu+LwUXVJ8SRF26dIlTJo0CW3atEH58uURGhqKIUOGYNeuXSV+ncL+1qelpeF///sfqlatav4aZ8+eveK+8vf6wQcfRLNmzdTxVq5cWa3g5O0+kPkuuU7079//ilb6wmau5Pu96667VDeIPK+0a9dOreDlZc1zZFHdIq+88gqaNGmivoYce+/evdXJ07wOHjyI66+/Xj1vye3kuTLvSmFJ3x95Np72JioF6XmXJzMpGmRVS28RlD+88mT3xBNPqPd//fUXXnrpJcTHx+Ott94q8XHlCVR67u+77z71B/vNN99UT7jHjx8vcbVrw4YNWLx4sXrykyfIOXPmqELo9OnT6olE7NixA4MHD0bNmjXVE40UfVOnTlVPqiWRdo5BgwapJ+JHHnlEFVjnzp3D0qVLERsbi7CwMHW71157DS+++CJuvPFG3H333YiOjsZ7772nClH5+hUqVMDzzz+vCjJ5An/nnXfU/eTnRUTkqWRVSoqK77//Xp0s00kxtXLlSowfP14VNfv27VMn0uRFvrT9XbhwQZ0k69u3r5oHkpN71pC/03JC7Oabb0bPnj3V85acJCxIipiNGzeq5z05sSYFz7x581SxJF9XTjTK3/lHH31UPf/ISccWLVqo++rvC0pJSVH3P3r0qPqe5fv54Ycf1AlIeV557LHH7PIcKUXljBkz1PfatWtX9Zy8detWbN++XbX5C/m59urVC7Vq1cKzzz6LcuXKqX+L0aNH46effsKYMWOs/v7Iw8jMFREV76GHHpLZxHzX9e3bV103f/78K26fnJx8xXX33XdfTnBwcE5qaqr5uttvvz2nXr165o9PnDihHrNy5co5ly5dMl//yy+/qOt/++0383VTpky54pjkY39//5yjR4+ar9u1a5e6/r333jNfN2LECHUs586dM1935MiRHF9f3yses6AdO3ao2/zwww9F3ubkyZM5Pj4+Oa+99lq+6/fs2aO+Rt7rhw0blu9nQETkyTIzM3Nq1qyZ06NHj3zXy3ON/O1duXKl+lieS7KysvLdRp5DAgICcqZOnZrvOrnfZ599VuTzx86dO9XHDz74YL7Hu/nmm9X1cvvint82bdqkbvfFF1+Yr5PnCLluzZo1V9xenj/lTTd79mx126+++sp8XXp6uvoZlC9fPic+Pt7q58jCtGvXTj3nFOeaa67JadOmTb7n6uzs7JyePXvmNGnSxKLvjzwb2wKJSkHaESZO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icVVIfR2C3ny4hMYEZHzse3tSnxuIiJy/ecmNrQTERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLiys4uJabjvy60YMGsdsrNzjD4cIiIiIiJyEhZXdhYa5Id1h6NxNCoRx2MSjT4cIiIiIiJyEhZXdubn4412tSuoy9tOXTb6cIiIiIiIyElYXDlAp3oV1futJ1lcERERERF5ChZXDtC5vlZcbTvN4oqIiIiIyFOwuHKADnW04up4dBIuJaUbfThEREREROQELK4coGI5fzSqWk5d3s65KyIiIiIij8DiykE616uk3rM1kIiIiIjIM7C4cnCoBRMDiYiIiIg8A4srB+loKq52nYlFema20YdDREREREQOxuLKQWTmqkKwH9Iys7E/Mt7owyEiIiIiIncvrubOnYv69esjMDAQ3bp1w5YtW4q9fWxsLB566CHUrFkTAQEBaNq0KZYvX27+/MsvvwwvL698b82bN4ezydftVJetgUREREREnsLQ4mrRokV44oknMGXKFGzfvh3t2rXDoEGDEBUVVejt09PTce211+LkyZP48ccfcejQIXz88ceoVatWvtu1atUKkZGR5rcNGzbAyNbAbacuGfL1iYiIiIjIeXxhoFmzZuGee+7BxIkT1cfz58/HsmXLsGDBAjz77LNX3F6uv3TpEjZu3Ag/Pz91nax6FeTr64saNWpYfBxpaWnqTRcfH2/3UIucnBy1mkVERGTkcxMREbnhypWsQm3btg0DBgzIPRhvb/Xxpk2bCr3Pr7/+ih49eqi2wOrVq6N169aYPn06srKy8t3uyJEjCA8PR8OGDXHLLbfg9OnTxR7LjBkzEBYWZn6rU6eOXb7HdrUrwNfbCxfi03AuNsUuj0lERJ7BUc9NRETkhsVVTEyMKoqkSMpLPj5//nyh9zl+/LhqB5T7yZzViy++iLfffhuvvvqq+TYyt/X5559jxYoVmDdvHk6cOIE+ffogISGhyGOZPHky4uLizG9nzpyxy/cY5O+DVuGh6jLnroiIyBqOem4iIiI3bQu0VnZ2NqpVq4aPPvoIPj4+6NSpE86dO4e33npLzW2JIUOGmG/ftm1bVWzVq1cP33//Pe66665CH1eCMeTNUXNXu87GqeJqVPv8s2FERERFceRzExERudnKVZUqVVSBdOHChXzX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jYiIQEhICLy8vMwVqzyhnTlzBqGhoXAn/N7KLnf+/vi9eeb3Jk9J8uQVHh4Ob292rufF5yb3we+t7HLn74/fm32em7hyVQj5odWuXbvQz8k/iLv9wun4vZVd7vz98XvzvO+NK1aF43OT++H3Vna58/fH7610z008LUhERERERGQHLK6IiIiIiIjsgMWVhQICAjBlyhT13t3weyu73Pn74/dWNrnz9+aK3Pnnze+tbHLn783dvz9+b/bBQAsiIiIiIiI74MoVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4oqIiIiIiMgOWFwRERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLgiIiIiIiKyAxZXREREREREdsDiioiIiIiIyA5YXBEREREREdkBiysiIiIiIiI7YHFFRERERERkByyuiIiIiIiI7IDFFRERERERkR2wuCIiIiIiIrIDFldERERERER2wOKKiIiIiIjIDlhcERERERER2QGLKyIiIiIiIjtgcUVERERERGQHLK6IiIiIiIjsgMUVERERERGRHbC4IiIiIiIisgMWV0RERERERHbA4oqIiIiIiMgOWFwRERERERHZAYsrIiIiIiIiO2BxRUREREREZAcsroiIiIiIiOyAxRUREREREZEdsLgiIiIiIiKyA197PIi7yc7ORkREBEJCQuDl5WX04RAReYycnBwkJCQgPDwc3t48/5cXn5uIiFz/uYnFVSHkyatOnTpGHwYRkcc6c+YMateubfRhuBQ+NxERuf5zE4urQshZQf0HGBoaavThEBF5jPj4eFVA6H+HKRefm4iIXP+5icVVIfR2C3ny4hMYEZHzse3tSnxuIiJy/eemMtHQPnfuXNSvXx+BgYHo1q0btmzZUuRtMzIyMHXqVDRq1Ejdvl27dlixYoVTj5eIiIiIiDyPyxdXixYtwhNPPIEpU6Zg+/btqlgaNGgQoqKiCr39Cy+8gA8//BDvvfce9u/fj/vvvx9jxozBjh07nH7sRERERETkObxyJP7ChclKVZcuXfD++++b05Kk5/GRRx7Bs88+e8XtJcXj+eefx0MPPWS+7rrrrkNQUBC++uori/sqw8LCEBcXx9YLIiIn4t/fovFnQ0Tk+n9/XXrmKj09Hdu2bcPkyZPN10n84YABA7Bp06ZC75OWlqbaAfOSwmrDhg1Ffh25j7zl/QESEREZic9NRERlj0u3BcbExCArKwvVq1fPd718fP78+ULvIy2Ds2bNwpEjR9Qq159//onFixcjMjKyyK8zY8YMVY3qb4y6JSIio/G5icoKmYufPXs23NHLL7+M9u3bG30YVIa4dHFli3fffRdNmjRB8+bN4e/vj4cffhgTJ04sdsMvWRmTZT79TWJuyclO/A38dDeQctnoIyEicgl8biJryMnotWvX4ttvv1Xv5WN3IN+LJLTFxsYa8vUnTZqE1atXG/K1qWxy6bbAKlWqwMfHBxcuXMh3vXxco0aNQu9TtWpVLFmyBKmpqbh48aKawZLZrIYNGxb5dQICAtQbGWjVK8C5rUB4R6DHg0YfDRGR4fjcRJaSDp0nn3wSJ0+ezLea9Pbbb2Ps2LEOHd+QE9nurHz58uqNyC1WruQ/2E6dOuU7YyCtfvJxjx49ir2vzF3VqlULmZmZ+OmnnzBq1CgnHDHZJD0ZiNypXY7aZ/TREBERlanC6vrrr0ebNm3UPHpCQoJ6Lx/L9fJ5/fWTtJo2aNBAzaJL+vKPP/5ofhxZ6brrrrvMn2/WrJnqBsrrjjvuwOjRo/Haa6+pk9dym4LuvPNODB8+/IptcqpVq4ZPP/200O/h1KlTGDFiBCpWrIhy5cqhVatWWL58uSoW+/fvr24jn5MVLDkGIfOIjz76qHpcec3Xu3dv/Pfff1eseC1btgxt27ZVt+nevTv27t1rvs3nn3+OChUqqJPy0vUkt5HxkryrxAXbAvWfwcyZM1GzZk1UrlxZhajJ96iTUZRhw4apn6P8PL/55hu3bp2kMrRyJSSG/fbbb0fnzp3RtWtX9YuZlJSkWv3EhAkTVBElfzDE5s2bce7cOfUfgryX/yjkD8rTTz9t8HdCRYrYDmRnapejDhh9NERERGWCFESyYiXFjBQI+giEFBHysRQB0tYmJ5hff/11lZo8f/58VUj8/fffuPXWW1XHT9++fdVrpdq1a+OHH35QBcPGjRtx7733qgLixhtvNH9NOcEtaWky016Yu+++G1dddZUqMOS+YunSpUhOTsa4ceMKvY8UJ7IKJsckxZVspSOrRTJnKCfIJfX50KFD6utKwSLkdZ18buHChahXrx7efPNNVRgdPXoUlSpVMj/2U089pYpE6Xh67rnnVBF3+PBh+Pn5qc/LcUmx+MUXX6iT+g8++CBuuukm/PPPP0X+3NesWaO+N3kvX0++L3ndec8995hfm0pugBR48nXktWxRWwiRG8opA957772cunXr5vj7++d07do1599//zV/rm/fvjm33367+eO1a9fmtGjRIicgICCncuXKObfddlvOuXPnrPp6cXFxEk+v3pMTrHszJ2dKqPb2as2cnKwso4+IiAzCv79F48+GClqzZo36ndi0aZP6OHHTvzkX3p6Vk5WUpD7euHGj+vzKlStzgoOD1cd53XXXXTnjx48v8vEfeuihnOuuu878sbzeql69ek5aWlq+29WrVy/nnXfeMX/csmXLnDfeeMP88YgRI3LuuOOOIr9OmzZtcl5++eViv8fLly+br0tMTMzx8/PL+frrr83Xpaen54SHh+e8+eab+e733XffmW9z8eLFnKCgoJxFixapjz/77DN1m7yvKw8cOKCu27x5s/p4ypQpOe3atcv3M5DvNzMz03zdDTfckDNu3Lh89//vv//Mnz9y5Ii6Lu/PiNz376/Lr1wJCaWQt8LIWYG85OyLnPGgMuT05tzLGUlA7CmgUgMjj4iIiMjl6UnIrVu3Vu8vzJiBtEOHkHX5MmpOm2q+fteuXWqF5tprr813f1kt6tChg/njuXPnYsGCBTh9+jRSUlLU5wsm5Um7YUlzVrJ69dFHH6nVJZmT//333/HXX38VeXtp73vggQfwxx9/qO12ZKVKWvmKcuzYMdWG16tXL/N1skIkHU4HDuTvgMk7RiIrWtLKmPc2vr6+aj9VnQSiSaug3EYerzDStiiZADpZxdqzZ4+6LCts8pgdO3Y0f75x48aqrZE8g0vPXJEHyM4GzmzRLvuV095HsTgmIiIqid52J3NEOdnZSDcFWsT+8APi//zTPF8krXZC5o927txpfpOT0frc1XfffadaCGXuSooc+byMYEiBlZf+WMWRtrjjx4+r2S9pRZS5oz59+hRbjMntb7vtNlWkyCjIe++9B1eltxTqZLZL2iqJBIsrMlb0ASAtTiusmg3RrmNxRUREVCIpWCQoYfr06UiPjEROnk2nI154Ea+9/LIqbG6++WaVPCkrUrKKkvdN3z9NZox69uypZo5kNUs+JytEtpCZLZn3+uyzz1RohD4nXxw5jvvvv9+cfPjxxx+r6/VVsrzR8o0aNVLX552LkpUsCbRo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uC0IAAAAAGlAcQUAAAAAaUBx1UkFBQVy8803m//7DefmXX4+P87Nm/x8bm7k539vzs2b/Hxufj8/zi09CLQAAAAAgDRg5goAAAAA0oDiCgAAAADSgOIKAAAAANKA4goAAAAA0oDiqhMeeOABGTFihPTo0UNOOukkWb58ufjBLbfcIqFQKOVx2GGHiRctXbpUzjrrLLNztp7H008/nfJ+zW256aabZNCgQdKzZ0+ZNGmSrF69WvxwbhdffHGr6/jtb39bvGDOnDly4oknSnFxsfTv31+mTp0qq1atSvmYvXv3yqxZs6SsrEyKiork3HPPlS1btogfzu30009vde0uu+wy8YI//vGPcswxxzgbMo4fP16ee+45z183L2Fscj/GJsYmt/Hz2PRHl4xLFFcdePzxx+Xqq6828Y3vvfeejB07VqZMmSJbt24VPzjyyCNl06ZNzuP1118XL9q1a5e5Nvpkoy3z5s2Te++9V+bPny9vvfWWFBYWmuuov2hePzelA1bydXz00UfFC1577TXzh27ZsmXy0ksvyb59+2Ty5MnmnG1XXXWV/Otf/5InnnjCfHxFRYWcc8454odzUzNmzEi5dvqz6gVDhw6VuXPnyrvvvivvvPOOnHHGGXL22WfLxx9/7Onr5hWMTd7A2MTY5DZ+HpuGumVc0ih2tO8b3/iGNWvWLOf1WCxmDR482JozZ47ldTfffLM1duxYy2/0x/qpp55yXo/H49bAgQOt3//+987bamtrrYKCAuvRRx+1vHxu6qKLLrLOPvtsyw+2bt1qzvG1115zrlNeXp71xBNPOB/z6aefmo958803LS+fmzrttNOsK664wvKLPn36WH/60598dd3cirHJexibvIuxybv65GBcYuZqPxoaGkz1q9P0tnA4bF5/8803xQ+0/UCn9A855BC54IILZMOGDeI369evl82bN6dcx969e5s2Gr9cxyVLlpjp/TFjxsjMmTOlurpavGj79u3m/3379jX/198/vauWfO20Peiggw7y3LVreW62Rx55RMrLy+Woo46SG264QXbv3i1eE4vF5LHHHjN3PrUNw0/XzY0Ym/yBsck7GJu8NzbFcjguRdP61XymqqrKXJwBAwakvF1f/+yzz8Tr9A/4woULzR89nfK99dZb5ZRTTpGPPvrI9OL6hQ5eqq3raL/Py7TtQqe1Dz74YFm7dq386le/kjPPPNP8sYhEIuIV8XhcrrzySpkwYYL5Y670+uTn50tpaamnr11b56Z+/OMfy/Dhw82TyBUrVsh1111net+ffPJJ8YKVK1eaQUtbmLR//amnnpIjjjhCPvjgA19cN7dibPIHxiZvYGzy1ti00gXjEsVVgOkfOZsuANQBTX+Z/v73v8tPf/rTnB4bOu/88893Xj766KPNtTz00EPNHcOJEyeKV2gPuD558uraiu6c26WXXppy7XRRu14zfSKi19Dt9MmvDlh653PRokVy0UUXmT524EAwNvkDY5P7+XFsGuOCcYm2wP3Q6VC9u9IySURfHzhwoPiNVvOjR4+WNWvWiJ/Y1yoo11HbaPRn10vXcfbs2fLss8/Kq6++ahak2vT6aAtUbW2tZ69de+fWFn0Sqbxy7fQu4MiRI2XcuHEmgUoXt99zzz2+uG5uxtjkD4xN7sfY5L2xKd8F4xLFVQcXSC/O4sWLU6ZQ9XWdcvSburo6c1dC71D4ibYk6C9O8nXcsWOHSWby43X86quvTF+7F66jroPWP/A6bf/KK6+Ya5VMf//y8vJSrp22Juj6C7dfu47OrS16t0154dq1Rf8+1tfXe/q6eQFjkz8wNrkXY5N/xqZ4LsaltMZj+NBjjz1mknsWLlxoffLJJ9all15qlZaWWps3b7a87pprrrGWLFlirV+/3nrjjTesSZMmWeXl5SY5xmt27txpvf/+++ahP9Z33XWXefnLL7807587d665bs8884y1YsUKk2B08MEHW3v27LG8fG76vmuvvdYk3eh1fPnll63jjz/eGjVqlLV3717L7WbOnGn17t3b/Bxu2rTJeezevdv5mMsuu8w66KCDrFdeecV65513rPHjx5uH189tzZo11m233WbOSa+d/mwecsgh1qmnnmp5wfXXX2/SpfTY9XdKXw+FQtaLL77o6evmFYxN3sDYxNjkNn4em653ybhEcdUJ9913n7kY+fn5Jv522bJllh9MmzbNGjRokDmvIUOGmNf1l8qLXn31VfPHveVDo2DtyNsbb7zRGjBggHlCMnHiRGvVqlWW189N/xhOnjzZ6tevn4kYHT58uDVjxgzPPMFq67z08ec//9n5GH2Scfnll5s41V69elk/+MEPzEDg9XPbsGGDGaz69u1rfiZHjhxp/eIXv7C2b99uecH06dPNz5v+/dCfP/2dsgcwL183L2Fscj/GJsYmt/Hz2DTdJeNSSP+T3rkwAAAAAAge1lwBAAAAQBpQXAEAAABAGlBcAQAAAEAaUFwBAAAAQBpQXAEAAABAGlBcAQAAAEAaUFwBAAAAQBpQXAEAAABAGlBcAQExYsQIufvuu3N9GAAAOBib4DcUV0AGXHzxxTJ16lTz8umnny5XXnll1r73woULpbS0tNXb3377bbn00kuzdhwAAHdhbAIyL5qF7wEgDRoaGiQ/P7/bn9+vX7+0Hg8AAIxNQCpmroAM3yV87bXX5J577pFQKGQeX3zxhXnfRx99JGeeeaYUFRXJgAED5Cc/+YlUVVU5n6t3FWfPnm3uLJaXl8uUKVPM2++66y45+uijpbCwUIYNGyaXX3651NXVmfctWbJELrnkEtm+fbvz/W655ZY2Wy82bNggZ599tvn+JSUlct5558mWLVuc9+vnHXvssfLXv/7VfG7v3r3l/PPPl507dzofs2jRInMsPXv2lLKyMpk0aZLs2rUrC/+yAIDuYmwCMofiCsggHbjGjx8vM2bMkE2bNpmHDjq1tbVyxhlnyHHHHSfvvPOOPP/882bw0EEk2cMPP2zuCL7xxhsyf/5887ZwOCz33nuvfPzxx+b9r7zyivzyl7807/vmN79pBikdkOzvd+2117Y6rng8bgavmpoaM8C+9NJLsm7dOpk2bVrKx61du1aefvppefbZZ81DP3bu3Lnmffq1f/SjH8n06dPl008/NYPnOeecI5ZlZfBfFABwoBibgMyhLRDIIL2jpgNQr169ZODAgc7b77//fjN43XHHHc7bHnroITO4ff755zJ69GjztlGjRsm8efNSvmZyj7zetbv99tvlsssukz/84Q/me+n31LuCyd+vpcWLF8vKlStl/fr15nuqv/zlL3LkkUea/vcTTzzRGei0T764uNi8rncw9XN/+9vfmgGssbHRDFrDhw8379c7hQAAd2NsAjKHmSsgBz788EN59dVXTduD/TjssMOcO3K2cePGtfrcl19+WSZOnChDhgwxA4sOKtXV1bJ79+5Of3+9m6cDlz14qSOOOMIsNtb3JQ+Q9uClBg0aJFu3bjUvjx071hyHDlo//OEPZcGCBbJt27Zu/GsAANyAsQk4cBRXQA5oH/pZZ50lH3zwQcpj9erVcuqppzofp73rybQn/nvf+54cc8wx8o9//EPeffddeeCBB5xFxemWl5eX8rreddQ7hioSiZiWjeeee84Mfvfdd5+MGTPG3HEEAHgPYxNw4CiugAzTdohYLJbytuOPP970pevdt5EjR6Y8Wg5ayXTA0gHkzjvvlJNPPtm0aFRUVHT4/Vo6/PDDZePGjeZh++STT0y/vQ5GnaUD2oQJE+TWW2+V999/33zvp556qtOfDwDIDcYmIDMoroAM00HqrbfeMnf2NHFJB6BZs2aZBbu66Fb7yLXd4oUXXjBpSvsbfHSA27dvn7kTp4t8NS3JXkyc/P307qP2n+v3a6slQ5OTtGXiggsukPfee0+WL18uF154oZx22mlywgkndOq89Jy0L18XPWu605NPPimVlZVmcAQAuBtjE5AZFFdAhmkikrYp6F033c9D/9gPHjzYpCzpYDV58mQzmOhiYO0r18Sl9mgvucbd/u53v5OjjjpKHnnkEZkzZ07Kx2gqky4i1nQl/X4tFx3bd/WeeeYZ6dOnj2n10AHtkEMOkccff7zT56WpT0uXLpXvfOc75i7lb37zG3PXUiN8AQDuxtgEZEbIIpsSAAAAAA4YM1cAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAACQBhRXAAAAAJAGFFcAAAAAkAYUVwAAAAAgB+7/A47hh7yw57a8AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAIjCAYAAAAUfdYJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAx3ZJREFUeJzs3Qd0k2UXB/B/96QttJTRlj3K3jIUQbbKHiIOEMHtJwruhRsXDhRBkaWIoIC4UaaCgMjee7WUthS6d5t+5z5vE1poS0eSN2n+v3NymqQZT0NJet97n3ud8vLy8kBERERERERkZc7WfkIiIiIiIiIiwYCUiIiIiIiIdMGAlIiIiIiIiHTBgJSIiIiIiIh0wYCUiIiIiIiIdMGAlIiIiIiIiHTBgJSIiIiIiIh0wYCUiIiIiIiIdMGAlIiIiIiIiHTBgJRIR/fccw/q1atXrvu+8sorcHJyMvuaiIio8jh9+rT6rFiwYEG5Pj/kdnJ7c+rZs6c6EREJBqRExXwAl+a0YcMGvZdq9xYvXoyPPvpI72UQEelu8ODB8Pb2RnJycrG3ufPOO+Hu7o6LFy/Clh08eFAFshIQV0aV/ecjsianvLy8PKs+I5EdWLRoUaHLX331FVavXo2vv/660PV9+/ZFjRo1yv082dnZMBgM8PDwKPN9c3Jy1MnT0xP2bODAgdi/fz8/1InI4S1duhS33347Fi5ciLFjx171/bS0NAQHB6NXr1746aefSvWY8t5av359zJ8/X1XllPXzQw6+Tp06tcxZ0mXLlmHUqFFYv379VdnQrKws9VUCa3tV0s9HRGXjWsbbEzmEu+66q9DlrVu3qoD0yuuL+mNBjm6XlpubW7nX6Orqqk5ERFR5MqRVqlRRlSNFBaQ//vgjUlNTVZa0IvT+/LDnQJSIzI8lu0TlJEdEW7ZsiR07duDGG29Ugejzzz9v+qPh1ltvRe3atVX2s2HDhnj99deRm5tb4h5S416f999/H1988YW6n9y/U6dO+O+//wrdt6g9QHL50UcfxcqVK9Xa5L4tWrTAqlWrrlq/lBt37NhRHSGX5/n8889Lva/o2LFjGDFiBGrWrKnuHxoaqo7qJyYmXpVp7tChA7y8vFCtWjV1m4iIiEKv4a+//oozZ86YyqDLu6eWiMjeyXvl8OHDsXbtWsTGxl71fQlUJWCVwPXSpUt48skn0apVK/j6+sLPzw8333wz9uzZc83nKeq9PjMzE0888QSqV69ueo7IyMir7ivv1w8//DCaNm2q1hsYGKgyhQWrXGS/qlwnbrrppqu2uRS1h1R+3gkTJqiqI/lcadOmjcoUF1SWz8jiqpJeffVVNG7cWD2HrP2GG25QB5wLOnz4MEaOHKk+t+R28llZMCN9rZ+PiMqG6RWiCpA9PPIHgARakj01lu/Kh5X8gTB58mT1dd26dXj55ZeRlJSE995775qPK390yB6iBx54QH3Ivfvuu+qPlJMnT14zq7pp0yasWLFC/cEgf1TMmDFDBY9nz55VH75i165dGDBgAGrVqqU+nCVQfu2119QfItcipVb9+/dXf7z873//U0HpuXPn8MsvvyAhIQH+/v7qdm+++SZeeukl3HbbbZg4cSIuXLiATz75RAXv8vwBAQF44YUXVBArf/R8+OGH6n7yehEROSrJfkog9t1336kDjEYSgP7xxx8YM2aMCgQPHDigDj5KYCQluTExMerAYo8ePdT+RjkgWhbyPi0HEe+44w5069ZNfW7JgdUrSeC3efNm9bknByMlSJw1a5YKMOV55eCsvM8/9thj6vNHDtQ2a9ZM3df49Urp6enq/sePH1c/s/w833//vTpoK58rkyZNMstnpATi06ZNUz/rddddpz6Tt2/fjp07d6otOEJe1+uvvx4hISF49tln4ePjo/4thg4diuXLl2PYsGFl/vmI6BpkDykRleyRRx6RvdaFruvRo4e6bvbs2VfdPi0t7arrHnjggTxvb++8jIwM03Xjxo3Lq1u3runyqVOn1GMGBgbmXbp0yXT9jz/+qK7/+eefTddNnTr1qjXJZXd397zjx4+brtuzZ4+6/pNPPjFdN2jQILWWc+fOma47duxYnqur61WPeaVdu3ap23z//ffF3ub06dN5Li4ueW+++Wah6/ft26eeo+D1t956a6HXgIjIkeXk5OTVqlUrr2vXroWul88aee/9448/1GX5LMnNzS10G/kM8fDwyHvttdcKXSf3mz9/frGfH7t371aXH3744UKPd8cdd6jr5fYlfb5t2bJF3e6rr74yXSefEXLd+vXrr7q9fH7Kyeijjz5St120aJHpuqysLPUa+Pr65iUlJZX5M7Iobdq0UZ85Jendu3deq1atCn1WGwyGvG7duuU1bty4VD8fEZUNS3aJ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SIsgR5+Nv3R+fn56L4eIyGEkJSWpoMv4PkyX8bOJiEgf/GyyLAakRTCWQskHPj/0iYisjyWpV+NnExGRvvjZZBksgiYiIiIiIiJdMCAlIiIiIiIiXTAgJSIiIiIiIl0wICUiIiIiIiJdMCAlIiIiIiIiXTAgNbOEtCxMWPAf+nzwFwyGPL2XQ0REREREZLMYkJqZr4crNh6Pw/HYFETEp+m9HCIiIiIiIpvFgNTMXF2c0TjYV50/HJ2s93KIiIiIiIhsFgNSC2has4r6eoQBKRERERERUbEYkFpAOANSIiIiIiKia2JAagFNa/qpr0diGJASEREREREVhwGpBTStoWVIT8WlIjMnV+/lEBERERER2SQGpBZQw88D/l5uyDXkqW67REREREREdDUGpBbg5OTExkZERERERETXwIDUQtjYiIiIiIiIqGQMSC2kSf4+UjY2IiIive2O3Y3H1j2Gt/59S++lEBERFeJa+CKZCzOkRERkKzJyM7A+Yj3q+tXVeylERESFMENqIU3yA9LziRlITMvWezlEROTAGgU0Ul/PJp1Fek663sshIiIyYUBqIX6ebggJ8FLnWbZLRER6CvIKQjXPashDHk4mnNR7OURERCYMSC3I1GmXASkREemscUBj9fVYwjG9l0JERGTCgNQajY2ik/ReChERObhGVbWy3WPxDEiJiMh2MCC1IDY2IiIim8uQMiAlIiIbwoDUCiW7h6OTkZeXp/dyiIjIgTWuypJdIiKyPQxILahhdV+4OjshOSNHddslIiLSS8OAhuprXHoc4jPi9V4OERGRwoDUgtxdndGguo86z8ZGRESkJx83H4T4hqjzxxOO670cIiIihQGp1RobMSAlIiLbKNs9Gn9U76UQEREpDEgtjI2NiIjI1hobMUNKRES2QveAdObMmahXrx48PT3RuXNnbNu2rcTbJyQk4JFHHkGtWrXg4eGBJk2a4LfffjN9/5VXXoGTk1OhU3h4OPTStKafqbERERGRTTQ2YqddIiKyEa56PvnSpUsxefJkzJ49WwWjH330Efr3748jR44gODj4qttnZWWhb9++6nvLli1DSEgIzpw5g4CAgEK3a9GiBdasWWO67OrqqnuG9ERsCrJzDXBz0f0YABEROaiCGVLp/i4HbYmIiBw2IP3ggw9w3333Yfz48eqyBKa//vor5s2bh2efffaq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g+mNR0bkj4CIiAj4+fmhMuHPZr8q88/Hn80xfzb5SJIP/Nq1a8PZmbtKCuJnU+XBn81+Veafjz9b8fjZZFnMkBZBftFCQ0OL/J78Ele2/6RG/NnsV2X++fizOd7PxqPPReNnU+XDn81+Veafjz9b0fjZZDkM8YmIiIiIiEgXDEiJiIiIiIhIFwxIS8nDwwNTp05VXysb/mz2qzL/fPzZ7FNl/tlsUWV+vfmz2afK/LNV9p+PPxvphU2NiIiIiIiISBfMkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuXPV5WttmMBgQFRWFKlWqwMnJSe/lEBE5jLy8PCQnJ6N27dpwduYx04L42UREpA9+NlkWA9IiyAd+WFiY3ssgInJYERERCA0N1XsZNoWfTURE+uJnk2UwIC2CHH02/tL5+fnpvRwiIoeRlJSkgi7j+zBdxs8mIiJ98LPJshiQFsFYCiUf+PzQJyKyPpakXo2fTURE+uJnk2WwCJqIiIiIiOgaWrVqhY8++giV0SuvvIK2bdvq8twMSImIiIiIyG7k5uZiw4YN+Pbbb9VXuWzvNmzYoDKwCQkJujz/k08+ibVr1+ry3DYfkP79998YNGiQ6mol/0grV64s1T9o+/bt4eHhgUaNGmHBggVWWSsREREREVnOihUr1N/3N910E+644w71VS7L9ZaSlZVlsce2Fb6+vggMDNTluW0+IE1NTUWbNm0wc+bMUt3+1KlTuPXWW9Uv5+7du/H4449j4sSJ+OOPPyy+ViIiIiIisgwJ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", "text/plain": [ "
" ] @@ -433,7 +610,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "463a2d27", "metadata": {}, "outputs": [ @@ -441,7 +618,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Test Accuracy: 0.9166666666666666\n" + "Test Accuracy: 1.0\n" ] } ], From 0b28505a3f7ac35af03f62415df0389f69316aa5 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Mon, 2 Jun 2025 22:42:32 +0100 Subject: [PATCH 14/23] All Anna's points in the PR comment have been addressed + more attempts to reduce verbosity of the tutorial by simplifiying sentences, rewriting them, or making them shorter. The reproducibility problem persists, and one might notice that some changes to the training part have been added to reflect debugging for this particular problem. Will be removed after the problem is solved. --- docs/tutorials/discocirc_babi6_prep.ipynb | 88 +- docs/tutorials/discocirc_babi6_training.ipynb | 999 +++++++++++++++--- 2 files changed, 862 insertions(+), 225 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 679c2d8..cfa6aa0 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -8,24 +8,15 @@ "\n", "# Tutorial: bAbI6 Training and Preprocessing in Python\n", "\n", - "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of subjects in different locations and ask questions about the locations of said subjects while they are moving around. More on the babI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the bAbI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "cf759bce", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "from typing import Tuple, List\n", @@ -45,7 +36,7 @@ "source": [ "Before we delve into the code, we first highlight two new features of the new {term} `parser ` that will be used in this tutorial: the {term}`sandwich functor `and foliated {term}`frames `. \n", "\n", - "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` addresses this issue by introducing a novel construction that breaks down a frame into a sequence of boxes with the frame's content. Now that we have these different frames, we can decide whether we want every layer in these frames to be assigned their own operator or have the same operator for all the layers (different parameters assigned to the layers as opposed to having all the layers having the same parameter) {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." + "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different frames, we can decide how to assign operators to the layers. We can either give each layer its own operator, with different parameters for each layer. Or, we can use the same operator for all layers, meaning all layers share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." ] }, { @@ -102,7 +93,7 @@ "\n", "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", "\n", - "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for optimization purposes. It is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", + "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for better efficiency. This is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", "\n", "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." ] @@ -195,27 +186,12 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "5dbca676", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sapienzanlp/maverick-mes-ontonotes loading\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" - ] - } - ], + "outputs": [], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -231,7 +207,7 @@ "metadata": {}, "source": [ "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", - "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun." + "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun. More information on the motivation behind this choice can be found [here](https://arxiv.org/pdf/2409.08777)." ] }, { @@ -256,12 +232,12 @@ "id": "ffdeb9a1", "metadata": {}, "source": [ - "## 5. Question Asking Circuits and Further Processing of the Circuits\n", - "The main spirit of this tutorial is having questions also be circuits that one sequetially composes with the circuits representing texts in order to see the similarity between the texts and guess the answer to the question by performing postselections. More details on question asking can be found [here](https://arxiv.org/pdf/2409.08777).\n", + "## 5. Assertion Circuits and Further Processing of the Circuits\n", + "The main spirit of this tutorial is having assertion circuits sequetially composed with the text circuits to see the similarity between the texts and the assertions. More details on assertions and question asking in general can be found [here](https://arxiv.org/pdf/2409.08777).\n", "\n", - "Now that we already have the circuits representing the texts, we need to make the circuits representing the questions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the question, we have to make sure that the wires of the question box correspond to the nouns from the text that are asked about. \n", + "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box correspond to the nouns from the text. \n", "\n", - "Below, the function `return_noun_list` returns all the nouns in a text and the function `return_q_nouns` return all the nouns in a question. One can notice that in the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the subject in the location?\"." + "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the subject in the location?\"." ] }, { @@ -320,35 +296,7 @@ "id": "210a2617", "metadata": {}, "source": [ - "We needed to extract the list of nouns in the texts as well as the list of nouns in their corresponding questions to remove the entries where the question nouns include nouns that are not in the text (questions that ask about subjects or locations not present in the text. We do this for simplification purposes). The following cell checks every entry from the `datadict` dictionary and adds the ids of \"bad\" entries (entries where the question contains nouns not present in the text) to the `discarded_ids` list that will be used later on." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "ac2c4298", - "metadata": {}, - "outputs": [], - "source": [ - "#reduce texts where question nouns are not in the text\n", - "discarded_datalist = []\n", - "discarded_ids = []\n", - "for i in datadict.keys():\n", - " text_nouns = datadict[i]['noun_list_text']\n", - " q_nouns = datadict[i]['noun_list_question']\n", - " for noun in q_nouns:\n", - " if noun not in text_nouns:\n", - " discarded_datalist.append(datadict[i])\n", - " discarded_ids.append(i)\n", - " break" - ] - }, - { - "cell_type": "markdown", - "id": "7deda19b", - "metadata": {}, - "source": [ - "Now that we have a list of ids of entries that should be discarded because they contain nouns in the questions that are not present in the reduced contexts corresponding to them, we simply remove the said entries from the `datadict` dictionary." + "We needed to extract the list of nouns in the texts and the list of nouns in their corresponding questions to remove the entries where we ask questions on subjects or locations not present in the text. We also filter by text length." ] }, { @@ -370,7 +318,7 @@ "id": "33fb6e7e", "metadata": {}, "source": [ - "Moreover, remember that for efficiency purposes, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." + "Moreover, remember that to enhance performance, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." ] }, { @@ -398,11 +346,11 @@ "id": "b04a8ff9", "metadata": {}, "source": [ - "Now that the text circuits are post-processed for optimization, it is time to make the question asking circuits to later sequentially compose the latter with the former. \n", + "Now that the text circuits are post-processed for optimization, it is time to make the assertion circuits to later sequentially compose the latter with the former. \n", "\n", - "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative questions respectively. An affirmative question is just the same question that came with the text (in the pre-processing step). On the other hand, the negative question refers to the question on the negative case of the affirmative questions. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative question would be \"Is Emily not in the kitchen?\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object?\". Therefore, we will need two boxes for the questions, a box for the \"is in\" questions, and another for the \"is not in\" questions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", + "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative assertions respectively. An affirmative assertion corresponds to an affirmative answer to the question. On the other hand, a negative assertion corresponds to a negative answer to the question. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative assertion would be \"Emily not in the kitchen\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object\". Therefore, we will need two boxes for the assertions, a box for the \"is in\" assertions, and another for the \"is not in\" assertions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", "\n", - "Notice that we also created two question boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", + "Notice that we also created two assertion boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", "\n", "We apply the same {term}`ansatz ` applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the {term}`ansatz ` to a parallel composition of two effects (bras). " ] @@ -447,7 +395,7 @@ "\n", "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", "\n", - "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question. In order for us to attach the question boxes, we have to make sure that the wires from the question circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the quetion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created question boxes that are also equiped with swaps for this purpose).\n", + "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question nouns. In order for us to attach the assertion boxes, we have to make sure that the wires from the assertion circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the assertion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created assertion boxes that are also equiped with swaps for this purpose).\n", "\n", "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", "\n", diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 6d0acba..760203d 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -29,7 +29,7 @@ "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "\n", - "BATCH_SIZE = 1\n", + "BATCH_SIZE = 5\n", "EPOCHS = 30\n", "LEARNING_RATE = 0.005" ] @@ -57,7 +57,8 @@ " torch.backends.cudnn.benchmark = False\n", "\n", "SEED = 2\n", - "set_pytorch_seed(SEED)" + "set_pytorch_seed(SEED)\n", + "device = torch.device(\"cpu\")" ] }, { @@ -71,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "c6023fa1", "metadata": {}, "outputs": [ @@ -102,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "1565fb9d", "metadata": {}, "outputs": [], @@ -357,163 +358,851 @@ "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_64311/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_90017/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", "Epoch 1: \n", "Parameter containing:\n", - "tensor([ 0.6147, 0.3804, 0.6371, 0.5387, 0.7138, 0.5793, 0.3368, 0.1678,\n", - " 0.5641, 0.0060, 0.5196, 0.5666, 0.4164, 0.8748, 0.5671, 0.7236,\n", - " 0.7954, 0.1709, 0.3492, 0.9414, 0.0565, 0.4831, 0.4540, 0.8268,\n", - " 0.4544, 0.6326, 0.4776, 0.2168, 0.2367, 0.2627, 0.0456, 0.1882,\n", - " 0.6033, 0.8128, 0.5220, 0.2712, 0.7643, 0.3375, 0.4264, 0.2704,\n", - " 0.3791, 0.0748, 0.7502, 0.7347, 0.5615, 0.7060, 0.7489, 0.4852,\n", - " 0.5166, 0.5745, 0.8038, 0.7762, 0.8676, 0.7350, 0.3886, 0.4317,\n", - " 0.4519, 0.8204, 0.5504, 0.9734, 0.7536, 0.0112, 0.6087, 1.0122,\n", - " 0.9229, 0.5204, 0.5902, 0.0731, 0.3772, 0.8039, 0.1148, 0.8749,\n", - " 0.2429, 0.6554, 0.4803, 0.5881, 0.5671, -0.0014, 0.4785, 0.1577,\n", - " 1.0016, 0.5167, 0.0019, 0.6135, 0.6518, 0.3169, 0.4640, 0.7256,\n", - " 0.1295, 0.2098, 0.4424, 0.2337, 0.8889, 0.6611, 0.8304, 0.8576,\n", - " 0.1678, 0.1341, 0.2133, 0.3792, 0.3282, 0.5288, 0.0544, 0.6261,\n", - " 0.7017, 0.6301, 0.7894, 0.9179, -0.0291, 0.6158, 0.9187, 0.1787,\n", - " 0.3097, 0.5170, 0.2319, 0.3680, 0.4684, 0.9048, 0.4243, 0.8264,\n", - " 0.8229, 0.7293, 0.0743, 0.8801, 0.8883, 0.1251, 0.3389, 0.8404,\n", - " 0.0362, 0.0730, 0.1372, 0.6773, 0.2876, 0.0586, 0.6244, 0.7207,\n", - " 0.6910, 0.1012, 1.0470, 0.4741, 0.1049, 0.3932, 0.8324, 0.7044,\n", - " 0.5107, 0.8816, 0.0219, 0.9331, 0.9524, 0.2017, 0.6269, 0.4304,\n", - " -0.0109, 0.5273, 0.3347, -0.0088, 0.1571, 0.4463, 0.9001, 0.7011,\n", - " 0.0975, 0.8933, 0.5830, 0.0397, 0.5279, 0.7557, 0.2283, 0.4998,\n", - " 0.2316, 0.0790, 0.2153, 0.5070, 0.7785, 0.4436, 0.0098, 0.5386,\n", - " 0.0249, 0.5706, 0.8244, 0.6683, 0.2251, 0.3529, 0.6555, 0.6639,\n", - " 0.0798, 0.1678, 0.3220, 0.6761, 0.9564], requires_grad=True)\n", - "train/loss: 0.6351 valid/loss: 0.6657 train/time: 43.67s valid/time: 7.50s train/acc: 0.5566 valid/acc: 0.6389\n", + "tensor([ 0.6161, 0.3797, 0.6420, 0.4463, 0.7152, 0.6400, 0.4294, 0.1247,\n", + " 0.6188, 0.0121, 0.5631, 0.5612, 0.4458, 0.9111, 0.5659, 0.7034,\n", + " 0.7098, 0.2081, 0.2615, 0.9431, -0.0357, 0.4698, 0.4631, 0.8511,\n", + " 0.4510, 0.6327, 0.4758, 0.2209, 0.2195, 0.2570, 0.0470, 0.1774,\n", + " 0.6184, 0.8334, 0.5255, 0.2705, 0.7348, 0.2950, 0.4032, 0.2128,\n", + " 0.3561, 0.0499, 0.6995, 0.6806, 0.5850, 0.7322, 0.7241, 0.5358,\n", + " 0.5401, 0.5514, 0.7789, 0.8127, 0.8717, 0.7735, 0.3473, 0.4406,\n", + " 0.4019, 0.8446, 0.5616, 0.9621, 0.7536, 0.0149, 0.6361, 1.0253,\n", + " 0.9885, 0.5489, 0.6051, 0.0407, 0.3849, 0.7808, 0.0782, 0.8988,\n", + " 0.1852, 0.6706, 0.4837, 0.5881, 0.5885, 0.0479, 0.4457, 0.1387,\n", + " 0.9419, 0.4647, 0.0043, 0.6585, 0.6501, 0.2501, 0.4879, 0.7286,\n", + " 0.1599, 0.2091, 0.4321, 0.1854, 0.8089, 0.5667, 0.8187, 0.7915,\n", + " 0.0903, 0.2008, 0.1464, 0.3376, 0.3553, 0.4692, 0.0622, 0.7005,\n", + " 0.7700, 0.6433, 0.8025, 0.8604, -0.0088, 0.5907, 0.9486, 0.1528,\n", + " 0.2622, 0.4889, 0.2042, 0.4210, 0.4413, 0.9303, 0.4838, 0.7863,\n", + " 0.8496, 0.7399, 0.0489, 0.9033, 0.8242, 0.1574, 0.3170, 0.8373,\n", + " -0.0027, 0.0755, 0.1521, 0.6518, 0.3064, 0.0625, 0.6942, 0.7639,\n", + " 0.7029, 0.0923, 1.0039, 0.4450, 0.0404, 0.4391, 0.8682, 0.7411,\n", + " 0.4921, 0.8858, 0.0377, 0.8521, 0.9498, 0.1808, 0.6423, 0.3985,\n", + " 0.0612, 0.4944, 0.3113, 0.0439, 0.1273, 0.5250, 0.9697, 0.6642,\n", + " 0.1821, 0.8697, 0.5321, 0.0350, 0.5172, 0.8301, 0.1842, 0.4552,\n", + " 0.2530, 0.1254, 0.2395, 0.5350, 0.8384, 0.4223, 0.0351, 0.4805,\n", + " 0.0803, 0.5446, 0.8555, 0.7286, 0.2094, 0.3744, 0.6850, 0.6508,\n", + " 0.0455, 0.1933, 0.3453, 0.6819, 0.8974], requires_grad=True)\n", + "train/loss: 0.7088 valid/loss: 0.6767 train/time: 44.03s valid/time: 7.50s train/acc: 0.5566 valid/acc: 0.5278\n", "Epoch 2: \n", "Parameter containing:\n", - "tensor([ 0.6146, 0.3741, 0.6202, 0.6021, 0.7498, 0.5792, 0.2328, 0.2173,\n", - " 0.5156, 0.0439, 0.4860, 0.5220, 0.4075, 0.8751, 0.5583, 0.6631,\n", - " 0.8593, 0.1596, 0.3859, 0.9728, 0.0856, 0.4786, 0.4590, 0.8203,\n", - " 0.4591, 0.6304, 0.4752, 0.2114, 0.2543, 0.2605, 0.0435, 0.1753,\n", - " 0.5953, 0.8299, 0.5262, 0.2733, 0.8015, 0.4013, 0.3720, 0.3305,\n", - " 0.4295, 0.1044, 0.8131, 0.7917, 0.6249, 0.6664, 0.6924, 0.4242,\n", - " 0.4594, 0.5591, 0.7576, 0.8126, 0.9090, 0.7592, 0.4214, 0.4458,\n", - " 0.5103, 0.8088, 0.5404, 0.9502, 0.7536, 0.0605, 0.6117, 1.0274,\n", - " 0.8899, 0.5078, 0.6106, 0.0717, 0.3723, 0.8256, 0.1215, 0.8754,\n", - " 0.2457, 0.6431, 0.4918, 0.5881, 0.5385, 0.0120, 0.4843, 0.1761,\n", - " 1.0048, 0.5051, -0.0196, 0.5977, 0.6503, 0.3421, 0.4292, 0.7227,\n", - " 0.1231, 0.2292, 0.4695, 0.2690, 0.9605, 0.6726, 0.7828, 0.8520,\n", - " 0.2572, 0.1460, 0.2967, 0.3835, 0.3123, 0.5680, 0.1105, 0.5760,\n", - " 0.6349, 0.6860, 0.7309, 0.9076, -0.0860, 0.5902, 0.8631, 0.1251,\n", - " 0.3688, 0.5744, 0.2558, 0.4163, 0.5243, 0.9624, 0.3663, 0.7693,\n", - " 0.8270, 0.7517, 0.0603, 0.9423, 0.9021, 0.0827, 0.3020, 0.9109,\n", - " -0.0651, 0.0908, 0.2239, 0.7223, 0.3630, 0.0948, 0.7131, 0.8219,\n", - " 0.7761, 0.1308, 1.0263, 0.4651, 0.0895, 0.3905, 0.8008, 0.7062,\n", - " 0.4814, 0.8719, 0.0066, 0.9634, 0.9810, 0.1927, 0.6152, 0.4262,\n", - " -0.0360, 0.4746, 0.3037, 0.0721, 0.0464, 0.3956, 0.8359, 0.5937,\n", - " 0.0492, 0.8449, 0.6407, 0.0433, 0.5490, 0.7031, 0.2183, 0.3912,\n", - " 0.2337, 0.0920, 0.2068, 0.5521, 0.7190, 0.3862, -0.0484, 0.4873,\n", - " -0.0230, 0.5161, 0.7655, 0.6472, 0.1698, 0.4078, 0.5972, 0.7234,\n", - " 0.0221, 0.1632, 0.3153, 0.7065, 0.9797], requires_grad=True)\n", - "train/loss: 0.4759 valid/loss: 0.6314 train/time: 11.15s valid/time: 2.59s train/acc: 0.7453 valid/acc: 0.6944\n", + "tensor([ 0.6157, 0.3798, 0.6422, 0.4684, 0.7512, 0.6083, 0.4640, 0.1240,\n", + " 0.6561, 0.0191, 0.5467, 0.5435, 0.4778, 0.9344, 0.5725, 0.6840,\n", + " 0.6960, 0.2141, 0.2637, 0.9764, -0.0348, 0.4675, 0.4635, 0.8512,\n", + " 0.4506, 0.6313, 0.4757, 0.2192, 0.2182, 0.2585, 0.0457, 0.1745,\n", + " 0.6198, 0.8344, 0.5256, 0.2676, 0.7611, 0.2678, 0.4285, 0.2080,\n", + " 0.3804, 0.0759, 0.6845, 0.6537, 0.5928, 0.7028, 0.7457, 0.5621,\n", + " 0.5163, 0.5805, 0.7720, 0.7807, 0.8852, 0.7433, 0.3650, 0.4424,\n", + " 0.3905, 0.8546, 0.5586, 0.9680, 0.7536, -0.0013, 0.6244, 1.0371,\n", + " 0.9756, 0.5615, 0.5906, 0.0560, 0.3971, 0.7456, 0.0758, 0.9184,\n", + " 0.1783, 0.6771, 0.4843, 0.5881, 0.5786, 0.0394, 0.4324, 0.1184,\n", + " 0.9352, 0.4634, -0.0116, 0.7033, 0.6087, 0.2508, 0.4886, 0.6925,\n", + " 0.1578, 0.1928, 0.4022, 0.2073, 0.8151, 0.5486, 0.7818, 0.7476,\n", + " 0.0685, 0.1973, 0.1444, 0.3426, 0.3277, 0.4791, 0.0412, 0.7176,\n", + " 0.7935, 0.6357, 0.7894, 0.8549, -0.0216, 0.5978, 0.9425, 0.1586,\n", + " 0.2570, 0.4938, 0.2123, 0.4252, 0.4547, 0.9160, 0.4997, 0.7942,\n", + " 0.8701, 0.7369, 0.0494, 0.9304, 0.8249, 0.1828, 0.2956, 0.8187,\n", + " -0.0191, 0.0501, 0.1440, 0.6746, 0.3156, 0.0745, 0.6997, 0.7632,\n", + " 0.7211, 0.0732, 0.9843, 0.4369, 0.0164, 0.4489, 0.8881, 0.7288,\n", + " 0.4845, 0.8792, 0.0390, 0.8590, 0.9462, 0.1684, 0.6546, 0.4098,\n", + " 0.0659, 0.4807, 0.2922, 0.0611, 0.1324, 0.5305, 0.9527, 0.6587,\n", + " 0.1879, 0.8668, 0.5591, 0.0568, 0.5536, 0.8338, 0.2055, 0.4524,\n", + " 0.2294, 0.0821, 0.2242, 0.5313, 0.8431, 0.4311, 0.0302, 0.4744,\n", + " 0.0839, 0.5600, 0.8487, 0.7337, 0.2184, 0.3695, 0.6800, 0.6551,\n", + " 0.0499, 0.1774, 0.3346, 0.7150, 0.9203], requires_grad=True)\n", + "train/loss: 0.4797 valid/loss: 0.6902 train/time: 10.68s valid/time: 2.58s train/acc: 0.6509 valid/acc: 0.4722\n", "Epoch 3: \n", "Parameter containing:\n", - "tensor([ 0.5967, 0.3764, 0.6202, 0.5766, 0.8125, 0.6186, 0.1388, 0.2446,\n", - " 0.5180, 0.0323, 0.4714, 0.5337, 0.3960, 0.8368, 0.5961, 0.7274,\n", - " 0.8135, 0.2257, 0.3980, 0.9828, 0.0955, 0.4752, 0.4579, 0.8585,\n", - " 0.4458, 0.6198, 0.4804, 0.2145, 0.2664, 0.2783, 0.0538, 0.1588,\n", - " 0.5967, 0.8369, 0.5281, 0.2734, 0.7875, 0.3558, 0.4167, 0.2990,\n", - " 0.4167, 0.0589, 0.7863, 0.7715, 0.5679, 0.6837, 0.7392, 0.4530,\n", - " 0.4915, 0.5452, 0.6845, 0.8072, 0.9452, 0.7493, 0.4082, 0.4235,\n", - " 0.4639, 0.8338, 0.5169, 0.9685, 0.7536, 0.0463, 0.6001, 1.0466,\n", - " 0.9156, 0.5155, 0.6592, 0.0807, 0.3954, 0.8214, 0.0972, 0.8590,\n", - " 0.2197, 0.6492, 0.4915, 0.5881, 0.5252, 0.0137, 0.4919, 0.1848,\n", - " 0.9792, 0.4909, -0.0350, 0.5950, 0.6637, 0.4392, 0.3449, 0.6693,\n", - " 0.1429, 0.2068, 0.4527, 0.2915, 0.9845, 0.6638, 0.8183, 0.8613,\n", - " 0.2682, 0.1181, 0.3018, 0.3593, 0.3034, 0.5815, 0.1134, 0.4869,\n", - " 0.6190, 0.6314, 0.7555, 0.8428, -0.1334, 0.6436, 0.8743, 0.1256,\n", - " 0.3229, 0.6189, 0.1923, 0.4433, 0.4901, 1.0072, 0.3825, 0.7166,\n", - " 0.8293, 0.7752, 0.0352, 0.9980, 0.8739, 0.0855, 0.2682, 0.9168,\n", - " -0.0116, 0.0678, 0.2140, 0.7007, 0.3155, 0.0615, 0.6475, 0.8092,\n", - " 0.7599, 0.1281, 0.9930, 0.4773, 0.0365, 0.3864, 0.7918, 0.7173,\n", - " 0.4559, 0.8391, 0.0276, 0.9621, 1.0132, 0.2076, 0.5930, 0.4330,\n", - " -0.0264, 0.5012, 0.2817, 0.0616, 0.0200, 0.4412, 0.8339, 0.5788,\n", - " 0.0955, 0.7837, 0.6527, 0.0131, 0.5259, 0.7450, 0.1921, 0.3566,\n", - " 0.2012, 0.0893, 0.1762, 0.6074, 0.7061, 0.4535, 0.0031, 0.4871,\n", - " 0.0297, 0.5528, 0.7385, 0.5977, 0.2360, 0.3999, 0.6386, 0.6623,\n", - " 0.0895, 0.2204, 0.3521, 0.7181, 0.9772], requires_grad=True)\n", - "train/loss: 0.4596 valid/loss: 0.6011 train/time: 11.46s valid/time: 2.29s train/acc: 0.7830 valid/acc: 0.7222\n", + "tensor([ 0.6116, 0.3827, 0.6422, 0.4859, 0.7586, 0.5865, 0.4556, 0.1347,\n", + " 0.6576, 0.0164, 0.5375, 0.5418, 0.4872, 0.9438, 0.5658, 0.6987,\n", + " 0.7215, 0.2242, 0.2604, 0.9846, -0.0384, 0.4661, 0.4604, 0.8477,\n", + " 0.4501, 0.6289, 0.4758, 0.2171, 0.2191, 0.2606, 0.0459, 0.1728,\n", + " 0.6188, 0.8330, 0.5257, 0.2681, 0.7677, 0.2724, 0.4529, 0.2388,\n", + " 0.4070, 0.0918, 0.6613, 0.6548, 0.5837, 0.6701, 0.7351, 0.5358,\n", + " 0.4854, 0.5794, 0.8019, 0.7717, 0.8873, 0.7353, 0.3563, 0.4498,\n", + " 0.3817, 0.8517, 0.5491, 0.9694, 0.7536, 0.0101, 0.6033, 1.0288,\n", + " 0.9842, 0.5543, 0.6046, 0.0760, 0.3911, 0.7481, 0.0808, 0.9043,\n", + " 0.1793, 0.6771, 0.4861, 0.5881, 0.5810, 0.0205, 0.4465, 0.0987,\n", + " 0.9359, 0.4881, -0.0268, 0.7106, 0.5771, 0.2458, 0.4948, 0.6944,\n", + " 0.1573, 0.1917, 0.4088, 0.2137, 0.8210, 0.5906, 0.7441, 0.7158,\n", + " 0.0515, 0.1945, 0.1347, 0.3542, 0.3116, 0.4921, 0.0432, 0.7504,\n", + " 0.8288, 0.6498, 0.7658, 0.8762, -0.0446, 0.5954, 0.9461, 0.1335,\n", + " 0.2678, 0.4834, 0.2089, 0.4141, 0.4796, 0.9076, 0.5148, 0.7772,\n", + " 0.8945, 0.7252, 0.0587, 0.9209, 0.8276, 0.1708, 0.3012, 0.8139,\n", + " 0.0016, 0.0469, 0.1623, 0.6986, 0.2944, 0.0818, 0.6734, 0.7722,\n", + " 0.7037, 0.0713, 0.9940, 0.4302, 0.0235, 0.4591, 0.8887, 0.7357,\n", + " 0.4742, 0.8868, 0.0384, 0.8597, 0.9439, 0.1624, 0.6582, 0.4034,\n", + " 0.0737, 0.4715, 0.3133, 0.0686, 0.1427, 0.5490, 0.9696, 0.6806,\n", + " 0.2089, 0.8536, 0.5592, 0.0599, 0.5637, 0.8519, 0.2398, 0.4744,\n", + " 0.2386, 0.0654, 0.2588, 0.5644, 0.8133, 0.4214, 0.0445, 0.4888,\n", + " 0.0491, 0.5753, 0.8610, 0.7048, 0.2197, 0.3933, 0.6910, 0.6256,\n", + " 0.0189, 0.1447, 0.3377, 0.7365, 0.9301], requires_grad=True)\n", + "train/loss: 0.6349 valid/loss: 0.6681 train/time: 11.84s valid/time: 2.26s train/acc: 0.6509 valid/acc: 0.5833\n", "Epoch 4: \n", "Parameter containing:\n", - "tensor([ 0.5968, 0.3866, 0.6203, 0.5969, 0.8371, 0.6218, 0.0578, 0.2881,\n", - " 0.4611, 0.0418, 0.4020, 0.5304, 0.4193, 0.8563, 0.5622, 0.6991,\n", - " 0.8237, 0.1929, 0.3516, 0.9878, 0.0460, 0.4763, 0.4643, 0.8675,\n", - " 0.4452, 0.6268, 0.4868, 0.2174, 0.2759, 0.2804, 0.0645, 0.1423,\n", - " 0.5886, 0.8449, 0.5270, 0.2677, 0.7951, 0.3508, 0.4122, 0.2914,\n", - " 0.4146, 0.0575, 0.7784, 0.7617, 0.5809, 0.6894, 0.7307, 0.4586,\n", - " 0.4975, 0.5427, 0.6921, 0.7851, 1.0047, 0.7201, 0.4063, 0.4494,\n", - " 0.4969, 0.8073, 0.5070, 0.9734, 0.7536, 0.0482, 0.5981, 1.0480,\n", - " 0.9093, 0.4841, 0.6839, 0.0921, 0.3653, 0.8387, 0.1166, 0.8132,\n", - " 0.2409, 0.6715, 0.4961, 0.5881, 0.5591, 0.0168, 0.5510, 0.1489,\n", - " 0.9981, 0.5117, -0.0091, 0.6198, 0.6658, 0.4191, 0.3423, 0.6987,\n", - " 0.2275, 0.2525, 0.4413, 0.3156, 0.9983, 0.7309, 0.8333, 0.9178,\n", - " 0.2199, 0.0879, 0.2540, 0.2838, 0.3121, 0.6933, 0.1230, 0.4767,\n", - " 0.6109, 0.6374, 0.7865, 0.8294, -0.1681, 0.6661, 0.8906, 0.1213,\n", - " 0.2876, 0.6122, 0.1586, 0.4477, 0.4775, 1.0442, 0.4079, 0.6820,\n", - " 0.8156, 0.7429, 0.0513, 1.0240, 0.8468, 0.1331, 0.2814, 0.9388,\n", - " -0.0067, 0.0621, 0.2260, 0.6614, 0.3253, 0.0800, 0.6713, 0.8320,\n", - " 0.7528, 0.1398, 1.0393, 0.4568, 0.0823, 0.3889, 0.8158, 0.7234,\n", - " 0.4758, 0.8708, -0.0151, 0.9806, 0.9927, 0.1893, 0.6200, 0.3984,\n", - " -0.0467, 0.5564, 0.2925, 0.0082, 0.0029, 0.4377, 0.8383, 0.5520,\n", - " 0.0667, 0.7600, 0.6901, -0.0502, 0.5395, 0.7299, 0.1788, 0.3371,\n", - " 0.1755, 0.0651, 0.1592, 0.6414, 0.7147, 0.4891, 0.0390, 0.5126,\n", - " 0.0455, 0.5815, 0.7531, 0.5587, 0.2407, 0.3982, 0.6611, 0.6206,\n", - " 0.1230, 0.2601, 0.4078, 0.7017, 0.9718], requires_grad=True)\n", - "train/loss: 0.6262 valid/loss: 0.6061 train/time: 10.89s valid/time: 2.56s train/acc: 0.8774 valid/acc: 0.6944\n", + "tensor([ 0.6068, 0.3830, 0.6468, 0.4898, 0.7685, 0.5791, 0.4510, 0.1686,\n", + " 0.6891, 0.0289, 0.5180, 0.5254, 0.5041, 0.9448, 0.5706, 0.6835,\n", + " 0.7266, 0.2334, 0.2570, 1.0020, -0.0420, 0.4672, 0.4574, 0.8510,\n", + " 0.4513, 0.6283, 0.4770, 0.2153, 0.2149, 0.2650, 0.0437, 0.1715,\n", + " 0.6162, 0.8307, 0.5260, 0.2716, 0.7682, 0.2621, 0.4591, 0.2248,\n", + " 0.4005, 0.0828, 0.6500, 0.6468, 0.5902, 0.6775, 0.7461, 0.5465,\n", + " 0.4932, 0.5622, 0.7939, 0.7577, 0.8728, 0.7249, 0.3576, 0.4341,\n", + " 0.3615, 0.8682, 0.5481, 0.9686, 0.7536, 0.0068, 0.5980, 1.0442,\n", + " 0.9858, 0.5708, 0.6051, 0.0795, 0.4085, 0.7305, 0.0724, 0.9137,\n", + " 0.1700, 0.6840, 0.4873, 0.5881, 0.5864, 0.0237, 0.4422, 0.1002,\n", + " 0.9273, 0.4961, -0.0198, 0.7228, 0.5536, 0.2331, 0.5235, 0.6764,\n", + " 0.1497, 0.2065, 0.3907, 0.1940, 0.7964, 0.5812, 0.7149, 0.6925,\n", + " 0.0473, 0.1879, 0.1442, 0.3713, 0.2633, 0.4996, 0.0533, 0.7638,\n", + " 0.8416, 0.6760, 0.7520, 0.9021, -0.0639, 0.5946, 0.9295, 0.1169,\n", + " 0.2715, 0.4780, 0.1986, 0.4297, 0.4978, 0.9161, 0.5121, 0.7411,\n", + " 0.9040, 0.7274, 0.0528, 0.9139, 0.8285, 0.1567, 0.2886, 0.8049,\n", + " -0.0054, 0.0411, 0.1544, 0.7024, 0.2994, 0.0780, 0.6767, 0.7527,\n", + " 0.7129, 0.0698, 1.0050, 0.4246, 0.0304, 0.4698, 0.8986, 0.7323,\n", + " 0.4574, 0.9036, 0.0379, 0.8733, 0.9434, 0.1573, 0.6707, 0.4047,\n", + " 0.0835, 0.4893, 0.3115, 0.0784, 0.1318, 0.5487, 0.9590, 0.6705,\n", + " 0.2094, 0.8647, 0.5642, 0.0621, 0.5751, 0.8507, 0.2411, 0.4666,\n", + " 0.2376, 0.0499, 0.2766, 0.5725, 0.8032, 0.4250, 0.0567, 0.5152,\n", + " 0.0323, 0.5661, 0.8828, 0.6720, 0.2102, 0.4053, 0.6969, 0.5894,\n", + " 0.0080, 0.1515, 0.3328, 0.7701, 0.9464], requires_grad=True)\n", + "train/loss: 0.6580 valid/loss: 0.6668 train/time: 10.57s valid/time: 2.50s train/acc: 0.7453 valid/acc: 0.6389\n", "Epoch 5: \n", "Parameter containing:\n", - "tensor([ 0.6062, 0.3813, 0.6203, 0.6023, 0.8357, 0.6473, 0.0497, 0.2837,\n", - " 0.4713, 0.0457, 0.4255, 0.5127, 0.4297, 0.8945, 0.5270, 0.7615,\n", - " 0.8193, 0.2527, 0.3971, 0.9919, 0.0883, 0.4911, 0.4365, 0.8605,\n", - " 0.4314, 0.6336, 0.4923, 0.2226, 0.2436, 0.2633, 0.0543, 0.1572,\n", - " 0.6044, 0.8566, 0.5323, 0.2862, 0.7775, 0.3263, 0.4203, 0.2600,\n", - " 0.3618, 0.0063, 0.7913, 0.6959, 0.5508, 0.6708, 0.6541, 0.4874,\n", - " 0.5561, 0.4703, 0.6808, 0.7716, 1.0141, 0.7054, 0.4092, 0.4330,\n", - " 0.5258, 0.8219, 0.5163, 0.9763, 0.7536, 0.0131, 0.5885, 1.0648,\n", - " 0.9124, 0.4957, 0.6809, 0.1063, 0.3793, 0.8199, 0.0932, 0.8216,\n", - " 0.2132, 0.6601, 0.4964, 0.5881, 0.5479, 0.0117, 0.5443, 0.1673,\n", - " 0.9729, 0.5024, -0.0170, 0.6306, 0.6636, 0.4051, 0.3479, 0.7382,\n", - " 0.2373, 0.2878, 0.4696, 0.3052, 0.9796, 0.7167, 0.8638, 0.9119,\n", - " 0.1756, 0.0766, 0.1957, 0.2746, 0.3012, 0.6709, 0.1323, 0.4903,\n", - " 0.5965, 0.7002, 0.8054, 0.8197, -0.2569, 0.6434, 0.9322, 0.0751,\n", - " 0.2512, 0.6059, 0.1521, 0.4177, 0.5082, 1.1003, 0.4435, 0.6204,\n", - " 0.8257, 0.7102, 0.0759, 0.9952, 0.9182, 0.0812, 0.2786, 0.9478,\n", - " 0.0329, 0.0656, 0.2988, 0.7527, 0.3409, 0.1125, 0.6040, 0.8538,\n", - " 0.7711, 0.1482, 1.0263, 0.4570, 0.0686, 0.3873, 0.8296, 0.7063,\n", - " 0.4921, 0.8653, -0.0058, 0.9902, 0.9751, 0.1907, 0.6164, 0.4164,\n", - " -0.0617, 0.5378, 0.2333, 0.0353, 0.0643, 0.4954, 0.8109, 0.5874,\n", - " 0.1048, 0.7940, 0.6334, -0.0740, 0.5054, 0.7819, 0.1935, 0.3700,\n", - " 0.1744, 0.0742, 0.1649, 0.7148, 0.7342, 0.5623, 0.0836, 0.5990,\n", - " 0.0709, 0.6292, 0.8155, 0.5033, 0.1982, 0.3905, 0.6889, 0.5282,\n", - " 0.1492, 0.3048, 0.3677, 0.6838, 0.9731], requires_grad=True)\n", - "train/loss: 0.3813 valid/loss: 0.6006 train/time: 11.26s valid/time: 2.44s train/acc: 0.8868 valid/acc: 0.6944\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[13]\u001b[39m\u001b[32m, line 16\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mlambeq\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m PytorchTrainer\n\u001b[32m 3\u001b[39m trainer = PytorchTrainer(\n\u001b[32m 4\u001b[39m model=model,\n\u001b[32m 5\u001b[39m loss_function=loss,\n\u001b[32m (...)\u001b[39m\u001b[32m 13\u001b[39m seed=SEED\n\u001b[32m 14\u001b[39m )\n\u001b[32m---> \u001b[39m\u001b[32m16\u001b[39m \u001b[43mtrainer\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrain_dataset\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_dataset\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/trainer.py:588\u001b[39m, in \u001b[36mTrainer.fit\u001b[39m\u001b[34m(self, train_dataset, val_dataset, log_interval, eval_interval, eval_mode, early_stopping_criterion, early_stopping_interval, minimize_criterion, full_timing_report)\u001b[39m\n\u001b[32m 580\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m batch \u001b[38;5;129;01min\u001b[39;00m tqdm(train_dataset,\n\u001b[32m 581\u001b[39m desc=\u001b[33m'\u001b[39m\u001b[33mBatch\u001b[39m\u001b[33m'\u001b[39m,\n\u001b[32m 582\u001b[39m total=train_dataset.batches_per_epoch,\n\u001b[32m 583\u001b[39m disable=disable_tqdm,\n\u001b[32m 584\u001b[39m leave=\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[32m 585\u001b[39m position=\u001b[32m2\u001b[39m):\n\u001b[32m 587\u001b[39m step += \u001b[32m1\u001b[39m\n\u001b[32m--> \u001b[39m\u001b[32m588\u001b[39m t_loss = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_step_and_eval\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 589\u001b[39m \u001b[43m \u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 590\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mtraining_step\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 591\u001b[39m \u001b[43m \u001b[49m\u001b[43mtrain_losses\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 592\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_train_eval_running\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 593\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mtrain_durations\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 594\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mevaluate_on_train\u001b[49m\n\u001b[32m 595\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 597\u001b[39m \u001b[38;5;28mself\u001b[39m._to_tensorboard(\u001b[33m'\u001b[39m\u001b[33mtrain/step_loss\u001b[39m\u001b[33m'\u001b[39m, t_loss, step)\n\u001b[32m 598\u001b[39m status_bar.set_description(\n\u001b[32m 599\u001b[39m \u001b[38;5;28mself\u001b[39m._generate_stat_report(\n\u001b[32m 600\u001b[39m train_loss=t_loss,\n\u001b[32m (...)\u001b[39m\u001b[32m 607\u001b[39m )\n\u001b[32m 608\u001b[39m )\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/trainer.py:390\u001b[39m, in \u001b[36mTrainer._step_and_eval\u001b[39m\u001b[34m(self, batch, step_func, losses, eval_results, step_durations, evaluate)\u001b[39m\n\u001b[32m 388\u001b[39m step_start = time.time()\n\u001b[32m 389\u001b[39m batch_size = \u001b[38;5;28mlen\u001b[39m(batch[\u001b[32m0\u001b[39m])\n\u001b[32m--> \u001b[39m\u001b[32m390\u001b[39m y_hat, loss = \u001b[43mstep_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 391\u001b[39m losses.append((batch_size, loss))\n\u001b[32m 393\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.evaluate_functions \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m evaluate:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/pytorch_trainer.py:197\u001b[39m, in \u001b[36mPytorchTrainer.training_step\u001b[39m\u001b[34m(self, batch)\u001b[39m\n\u001b[32m 183\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"Perform a training step.\u001b[39;00m\n\u001b[32m 184\u001b[39m \n\u001b[32m 185\u001b[39m \u001b[33;03mParameters\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 194\u001b[39m \n\u001b[32m 195\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 196\u001b[39m x, y = batch\n\u001b[32m--> \u001b[39m\u001b[32m197\u001b[39m y_hat = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 198\u001b[39m loss = \u001b[38;5;28mself\u001b[39m.loss_function(y_hat, y.to(\u001b[38;5;28mself\u001b[39m.device))\n\u001b[32m 199\u001b[39m \u001b[38;5;28mself\u001b[39m.train_costs.append(loss.item())\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/quantum_model.py:172\u001b[39m, in \u001b[36mQuantumModel.__call__\u001b[39m\u001b[34m(self, *args, **kwargs)\u001b[39m\n\u001b[32m 171\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__call__\u001b[39m(\u001b[38;5;28mself\u001b[39m, *args: Any, **kwargs: Any) -> AnyTensor:\n\u001b[32m--> \u001b[39m\u001b[32m172\u001b[39m out = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mforward\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 173\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._training:\n\u001b[32m 174\u001b[39m \u001b[38;5;28mself\u001b[39m._log_prediction(out)\n", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[7]\u001b[39m\u001b[32m, line 9\u001b[39m, in \u001b[36mPairCircuitModel.forward\u001b[39m\u001b[34m(self, circ_pairs)\u001b[39m\n\u001b[32m 7\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, circ_pairs: \u001b[38;5;28mlist\u001b[39m[\u001b[38;5;28mtuple\u001b[39m[Diagram, Diagram]]) -> torch.Tensor:\n\u001b[32m 8\u001b[39m pos_circs, neg_circs = \u001b[38;5;28mzip\u001b[39m(*circ_pairs)\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m pos_out = \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mget_diagram_output\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpos_circs\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[32m 10\u001b[39m neg_out = \u001b[38;5;28mabs\u001b[39m(\u001b[38;5;28mself\u001b[39m.get_diagram_output(neg_circs))\n\u001b[32m 12\u001b[39m \u001b[38;5;66;03m# implement a function that would merge pos_out and neg_out into an nx2 tensor\u001b[39;00m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/training/pytorch_quantum_model.py:91\u001b[39m, in \u001b[36mPytorchQuantumModel.get_diagram_output\u001b[39m\u001b[34m(self, diagrams)\u001b[39m\n\u001b[32m 89\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m d \u001b[38;5;129;01min\u001b[39;00m diagrams:\n\u001b[32m 90\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(d, Circuit)\n\u001b[32m---> \u001b[39m\u001b[32m91\u001b[39m nodes, edges = \u001b[43md\u001b[49m\u001b[43m.\u001b[49m\u001b[43mto_tn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 93\u001b[39m \u001b[38;5;66;03m# Ensure uniform tensor dtypes for contraction.\u001b[39;00m\n\u001b[32m 94\u001b[39m dominant_dtype = torch.bool\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:567\u001b[39m, in \u001b[36mDiagram.to_tn\u001b[39m\u001b[34m(self, mixed)\u001b[39m\n\u001b[32m 563\u001b[39m (scan[q_offset],\n\u001b[32m 564\u001b[39m scan[q_offset + \u001b[32m1\u001b[39m]) = (scan[q_offset + \u001b[32m1\u001b[39m],\n\u001b[32m 565\u001b[39m scan[q_offset])\n\u001b[32m 566\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m567\u001b[39m utensor = \u001b[43mbox\u001b[49m\u001b[43m.\u001b[49m\u001b[43marray\u001b[49m\n\u001b[32m 568\u001b[39m node1 = tn.Node(utensor + \u001b[32m0\u001b[39mj, \u001b[33m'\u001b[39m\u001b[33mq1_\u001b[39m\u001b[33m'\u001b[39m + \u001b[38;5;28mstr\u001b[39m(box))\n\u001b[32m 569\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m backend() \u001b[38;5;28;01mas\u001b[39;00m np:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:880\u001b[39m, in \u001b[36mRx.array\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 877\u001b[39m \u001b[38;5;129m@property\u001b[39m\n\u001b[32m 878\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34marray\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[32m 879\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m backend() \u001b[38;5;28;01mas\u001b[39;00m np:\n\u001b[32m--> \u001b[39m\u001b[32m880\u001b[39m half_theta = np.pi * \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mphase\u001b[49m\n\u001b[32m 881\u001b[39m sin = \u001b[38;5;28mself\u001b[39m.modules.sin(half_theta)\n\u001b[32m 882\u001b[39m cos = \u001b[38;5;28mself\u001b[39m.modules.cos(half_theta)\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/lambeq/backend/quantum.py:866\u001b[39m, in \u001b[36mRotation.phase\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 861\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, phase):\n\u001b[32m 863\u001b[39m \u001b[38;5;28msuper\u001b[39m().\u001b[34m__init__\u001b[39m(\n\u001b[32m 864\u001b[39m \u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m).\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mphase\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m)\u001b[39m\u001b[33m'\u001b[39m, qubit, qubit, phase)\n\u001b[32m--> \u001b[39m\u001b[32m866\u001b[39m \u001b[38;5;129m@property\u001b[39m\n\u001b[32m 867\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mphase\u001b[39m(\u001b[38;5;28mself\u001b[39m) -> \u001b[38;5;28mfloat\u001b[39m:\n\u001b[32m 868\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m.data\n\u001b[32m 870\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mdagger\u001b[39m(\u001b[38;5;28mself\u001b[39m) -> Self:\n", - "\u001b[31mKeyboardInterrupt\u001b[39m: " + "tensor([ 0.6083, 0.3822, 0.6472, 0.4996, 0.7912, 0.5557, 0.4426, 0.1720,\n", + " 0.6880, 0.0676, 0.5166, 0.4866, 0.5356, 0.9402, 0.5930, 0.6726,\n", + " 0.7084, 0.2194, 0.2630, 0.9915, -0.0359, 0.4676, 0.4580, 0.8504,\n", + " 0.4544, 0.6307, 0.4764, 0.2132, 0.2169, 0.2654, 0.0456, 0.1734,\n", + " 0.6126, 0.8314, 0.5261, 0.2782, 0.7683, 0.2533, 0.4405, 0.2215,\n", + " 0.3856, 0.0793, 0.6629, 0.6324, 0.5935, 0.6960, 0.7375, 0.5554,\n", + " 0.5098, 0.5636, 0.7746, 0.7308, 0.8609, 0.7038, 0.3435, 0.4293,\n", + " 0.3322, 0.8825, 0.5524, 0.9712, 0.7536, -0.0167, 0.5748, 1.0500,\n", + " 1.0036, 0.5953, 0.5861, 0.1172, 0.4068, 0.7219, 0.0676, 0.9163,\n", + " 0.1702, 0.6931, 0.4874, 0.5881, 0.5903, 0.0591, 0.4445, 0.0942,\n", + " 0.9300, 0.5039, 0.0218, 0.7341, 0.5159, 0.2048, 0.5902, 0.6530,\n", + " 0.1552, 0.2340, 0.3914, 0.1998, 0.8008, 0.5731, 0.6893, 0.6714,\n", + " 0.0311, 0.1833, 0.1402, 0.3719, 0.2115, 0.4687, 0.1006, 0.8182,\n", + " 0.8954, 0.6670, 0.7656, 0.8890, -0.0647, 0.5951, 0.9129, 0.1260,\n", + " 0.2632, 0.4533, 0.2022, 0.4576, 0.4941, 0.9190, 0.5217, 0.7388,\n", + " 0.9192, 0.7231, 0.0586, 0.9288, 0.8224, 0.1779, 0.2817, 0.7878,\n", + " -0.0095, 0.0321, 0.1436, 0.7059, 0.2970, 0.0876, 0.6735, 0.7511,\n", + " 0.7219, 0.0614, 1.0117, 0.4131, 0.0398, 0.4872, 0.8872, 0.7257,\n", + " 0.4565, 0.8992, 0.0548, 0.8841, 0.9415, 0.1502, 0.6620, 0.4123,\n", + " 0.0862, 0.4873, 0.3032, 0.0989, 0.1189, 0.5514, 0.9592, 0.6648,\n", + " 0.2047, 0.8606, 0.5675, 0.0833, 0.5837, 0.8493, 0.2425, 0.4527,\n", + " 0.2195, 0.0564, 0.2735, 0.5888, 0.8127, 0.4028, 0.0642, 0.5048,\n", + " 0.0262, 0.5736, 0.8803, 0.6482, 0.2285, 0.4022, 0.7024, 0.5982,\n", + " 0.0207, 0.1706, 0.3227, 0.7857, 0.9506], requires_grad=True)\n", + "train/loss: 0.5525 valid/loss: 0.6419 train/time: 10.65s valid/time: 2.21s train/acc: 0.8208 valid/acc: 0.6389\n", + "Epoch 6: \n", + "Parameter containing:\n", + "tensor([ 0.6135, 0.3790, 0.6445, 0.5313, 0.7976, 0.5660, 0.4547, 0.1640,\n", + " 0.6856, 0.1033, 0.5416, 0.4524, 0.5481, 0.9302, 0.5986, 0.6725,\n", + " 0.7141, 0.2261, 0.2665, 1.0017, -0.0325, 0.4672, 0.4604, 0.8525,\n", + " 0.4544, 0.6300, 0.4759, 0.2129, 0.2166, 0.2663, 0.0468, 0.1756,\n", + " 0.6081, 0.8353, 0.5252, 0.2810, 0.7685, 0.2561, 0.4083, 0.2336,\n", + " 0.3813, 0.0880, 0.6819, 0.6280, 0.6028, 0.7171, 0.7155, 0.5503,\n", + " 0.5110, 0.5817, 0.7694, 0.7068, 0.8681, 0.6847, 0.3537, 0.4363,\n", + " 0.2977, 0.8761, 0.5564, 0.9698, 0.7536, -0.0245, 0.5724, 1.0489,\n", + " 0.9932, 0.6048, 0.5778, 0.1415, 0.3998, 0.7201, 0.0592, 0.9185,\n", + " 0.1692, 0.6985, 0.4883, 0.5881, 0.5674, 0.0591, 0.4504, 0.0930,\n", + " 0.9296, 0.5311, 0.0255, 0.7427, 0.4857, 0.2028, 0.6042, 0.6133,\n", + " 0.1586, 0.2584, 0.4018, 0.1956, 0.7995, 0.5612, 0.6699, 0.6579,\n", + " 0.0273, 0.1824, 0.1400, 0.3778, 0.1781, 0.4504, 0.1649, 0.8788,\n", + " 0.9573, 0.6840, 0.7478, 0.8971, -0.0692, 0.5701, 0.9302, 0.1038,\n", + " 0.2836, 0.4626, 0.1812, 0.4898, 0.5035, 0.8966, 0.5254, 0.7118,\n", + " 0.9341, 0.7166, 0.0684, 0.9038, 0.8407, 0.1727, 0.2879, 0.7996,\n", + " -0.0108, 0.0133, 0.1533, 0.7120, 0.2942, 0.0757, 0.6697, 0.7571,\n", + " 0.7213, 0.0471, 1.0081, 0.4128, 0.0448, 0.4909, 0.8871, 0.7119,\n", + " 0.4395, 0.8978, 0.0582, 0.9076, 0.9387, 0.1522, 0.6598, 0.4190,\n", + " 0.0744, 0.4867, 0.3068, 0.1019, 0.1269, 0.5570, 0.9520, 0.6756,\n", + " 0.2064, 0.8590, 0.5839, 0.0903, 0.5939, 0.8548, 0.2540, 0.4597,\n", + " 0.2120, 0.0721, 0.2903, 0.6015, 0.8117, 0.4260, 0.0727, 0.5235,\n", + " 0.0483, 0.5472, 0.8995, 0.6690, 0.2041, 0.4026, 0.7173, 0.5775,\n", + " 0.0404, 0.1985, 0.3256, 0.8268, 0.9414], requires_grad=True)\n", + "train/loss: 0.3190 valid/loss: 0.6071 train/time: 10.59s valid/time: 2.21s train/acc: 0.8302 valid/acc: 0.6667\n", + "Epoch 7: \n", + "Parameter containing:\n", + "tensor([ 6.1181e-01, 3.7606e-01, 6.4263e-01, 5.4871e-01, 7.9612e-01,\n", + " 5.6061e-01, 4.6391e-01, 1.5905e-01, 6.8303e-01, 1.1681e-01,\n", + " 5.5065e-01, 4.3948e-01, 5.5935e-01, 9.2379e-01, 6.0593e-01,\n", + " 6.7931e-01, 6.8668e-01, 1.9250e-01, 2.6468e-01, 9.7560e-01,\n", + " -3.4252e-02, 4.6429e-01, 4.5697e-01, 8.6842e-01, 4.6175e-01,\n", + " 6.2720e-01, 4.7748e-01, 2.1709e-01, 2.0182e-01, 2.6647e-01,\n", + " 4.4823e-02, 1.7513e-01, 5.9350e-01, 8.4281e-01, 5.2714e-01,\n", + " 2.7650e-01, 7.5510e-01, 2.1749e-01, 4.2891e-01, 1.9493e-01,\n", + " 3.4371e-01, 5.2052e-02, 6.7124e-01, 5.9647e-01, 6.4256e-01,\n", + " 7.5449e-01, 7.4592e-01, 5.9011e-01, 5.5039e-01, 5.6038e-01,\n", + " 7.3332e-01, 6.9472e-01, 8.7397e-01, 6.7586e-01, 3.4958e-01,\n", + " 4.3587e-01, 2.7194e-01, 8.7787e-01, 5.4987e-01, 9.7083e-01,\n", + " 7.5360e-01, -2.0236e-02, 5.6502e-01, 1.0498e+00, 9.9454e-01,\n", + " 6.1021e-01, 5.8271e-01, 1.5056e-01, 4.0508e-01, 7.1503e-01,\n", + " 5.2838e-02, 9.1779e-01, 1.7072e-01, 7.1128e-01, 4.9056e-01,\n", + " 5.8811e-01, 5.5392e-01, 5.8978e-02, 4.5776e-01, 9.5208e-02,\n", + " 9.3172e-01, 5.7409e-01, 2.7780e-02, 7.5432e-01, 4.7153e-01,\n", + " 2.0423e-01, 6.2190e-01, 6.0722e-01, 1.7452e-01, 2.8413e-01,\n", + " 3.9837e-01, 1.9313e-01, 7.9447e-01, 5.6371e-01, 6.6204e-01,\n", + " 6.4821e-01, 2.2989e-02, 1.8384e-01, 1.3115e-01, 4.0222e-01,\n", + " 1.5205e-01, 4.5607e-01, 1.7933e-01, 9.2243e-01, 9.7585e-01,\n", + " 6.7728e-01, 7.2522e-01, 8.9240e-01, -8.6611e-02, 5.7606e-01,\n", + " 9.3997e-01, 1.0047e-01, 2.8241e-01, 4.8394e-01, 1.9133e-01,\n", + " 4.7603e-01, 5.2536e-01, 8.9860e-01, 5.0706e-01, 7.1241e-01,\n", + " 9.3186e-01, 7.1780e-01, 6.5672e-02, 9.0534e-01, 8.2057e-01,\n", + " 1.7603e-01, 2.7152e-01, 7.7056e-01, -2.1988e-02, 5.3884e-04,\n", + " 1.4491e-01, 7.1291e-01, 2.9936e-01, 1.0848e-01, 6.7213e-01,\n", + " 7.4627e-01, 7.3553e-01, 5.3394e-02, 1.0096e+00, 4.1064e-01,\n", + " 5.8012e-02, 4.9028e-01, 8.7225e-01, 7.1730e-01, 4.4184e-01,\n", + " 8.9678e-01, 5.7872e-02, 9.2575e-01, 9.4358e-01, 1.5598e-01,\n", + " 6.5275e-01, 4.1356e-01, 6.7852e-02, 4.8266e-01, 3.0645e-01,\n", + " 9.8808e-02, 1.2521e-01, 5.6866e-01, 9.5008e-01, 6.7990e-01,\n", + " 2.1524e-01, 8.5348e-01, 5.9511e-01, 1.0402e-01, 6.0594e-01,\n", + " 8.6833e-01, 2.5788e-01, 4.5797e-01, 1.9733e-01, 7.7866e-02,\n", + " 2.9275e-01, 6.0617e-01, 8.0357e-01, 4.1441e-01, 5.7469e-02,\n", + " 5.2971e-01, 6.1167e-02, 5.5023e-01, 9.0886e-01, 6.9193e-01,\n", + " 2.1615e-01, 3.9368e-01, 7.1137e-01, 5.6883e-01, 4.1260e-02,\n", + " 1.8575e-01, 2.9955e-01, 8.4938e-01, 9.3354e-01],\n", + " requires_grad=True)\n", + "train/loss: 0.9441 valid/loss: 0.5893 train/time: 10.60s valid/time: 2.53s train/acc: 0.8491 valid/acc: 0.7222\n", + "Epoch 8: \n", + "Parameter containing:\n", + "tensor([ 0.6110, 0.3761, 0.6424, 0.5797, 0.8040, 0.5773, 0.4577, 0.1670,\n", + " 0.6940, 0.1298, 0.5604, 0.4277, 0.5634, 0.9030, 0.6012, 0.6959,\n", + " 0.6859, 0.1765, 0.2851, 0.9896, -0.0142, 0.4656, 0.4537, 0.8766,\n", + " 0.4596, 0.6267, 0.4778, 0.2150, 0.1950, 0.2656, 0.0401, 0.1735,\n", + " 0.5910, 0.8423, 0.5281, 0.2829, 0.7532, 0.2051, 0.4242, 0.1882,\n", + " 0.3394, 0.0487, 0.6678, 0.5926, 0.6696, 0.7662, 0.7496, 0.5963,\n", + " 0.5546, 0.5611, 0.7251, 0.6676, 0.8952, 0.6574, 0.3534, 0.4381,\n", + " 0.2547, 0.8696, 0.5522, 0.9657, 0.7536, -0.0211, 0.5737, 1.0554,\n", + " 0.9927, 0.6077, 0.5813, 0.1394, 0.4179, 0.7102, 0.0586, 0.9208,\n", + " 0.1764, 0.7078, 0.4929, 0.5881, 0.5271, 0.0374, 0.4673, 0.1194,\n", + " 0.9398, 0.6181, 0.0110, 0.7664, 0.4616, 0.2070, 0.6299, 0.5972,\n", + " 0.1509, 0.3294, 0.4044, 0.1886, 0.7918, 0.5621, 0.6456, 0.6298,\n", + " 0.0182, 0.1844, 0.1252, 0.4020, 0.1388, 0.4621, 0.1926, 0.9420,\n", + " 0.9884, 0.6720, 0.7627, 0.8787, -0.0515, 0.5644, 0.9298, 0.1243,\n", + " 0.3030, 0.4663, 0.1668, 0.4742, 0.4889, 0.8789, 0.5159, 0.7151,\n", + " 0.9296, 0.7206, 0.0601, 0.8819, 0.8237, 0.1520, 0.2780, 0.7819,\n", + " -0.0065, -0.0228, 0.1640, 0.7210, 0.3031, 0.0954, 0.6591, 0.7487,\n", + " 0.7169, 0.0439, 1.0105, 0.4155, 0.0555, 0.4870, 0.8759, 0.7135,\n", + " 0.4563, 0.8866, 0.0664, 0.9290, 0.9335, 0.1634, 0.6494, 0.4192,\n", + " 0.0680, 0.4956, 0.3083, 0.0931, 0.1445, 0.5782, 0.9433, 0.6875,\n", + " 0.2253, 0.8471, 0.5994, 0.0982, 0.6007, 0.8802, 0.2617, 0.4709,\n", + " 0.1900, 0.0906, 0.3006, 0.5801, 0.8347, 0.4347, 0.0715, 0.5140,\n", + " 0.0526, 0.5649, 0.8829, 0.6743, 0.2103, 0.3602, 0.7094, 0.5925,\n", + " 0.0644, 0.1935, 0.2794, 0.8630, 0.9317], requires_grad=True)\n", + "train/loss: 0.6091 valid/loss: 0.5819 train/time: 10.39s valid/time: 2.59s train/acc: 0.8679 valid/acc: 0.7222\n", + "Epoch 9: \n", + "Parameter containing:\n", + "tensor([ 0.6109, 0.3764, 0.6388, 0.5926, 0.8177, 0.5781, 0.4532, 0.1584,\n", + " 0.6821, 0.1202, 0.5839, 0.4399, 0.5776, 0.8794, 0.6017, 0.7153,\n", + " 0.6887, 0.1605, 0.2754, 0.9837, -0.0240, 0.4663, 0.4510, 0.8824,\n", + " 0.4590, 0.6227, 0.4773, 0.2153, 0.1934, 0.2667, 0.0418, 0.1727,\n", + " 0.5891, 0.8452, 0.5271, 0.2875, 0.7553, 0.2064, 0.3924, 0.2012,\n", + " 0.3530, 0.0675, 0.6750, 0.6076, 0.7039, 0.7702, 0.7304, 0.5822,\n", + " 0.5388, 0.5812, 0.7266, 0.6770, 0.8888, 0.6649, 0.3527, 0.4351,\n", + " 0.2477, 0.8724, 0.5577, 0.9690, 0.7536, -0.0177, 0.5642, 1.0586,\n", + " 0.9894, 0.6167, 0.5857, 0.1513, 0.4251, 0.7014, 0.0463, 0.9160,\n", + " 0.1670, 0.7131, 0.4932, 0.5881, 0.5243, 0.0454, 0.4663, 0.1197,\n", + " 0.9306, 0.6296, 0.0249, 0.7705, 0.4516, 0.2090, 0.6298, 0.6016,\n", + " 0.1500, 0.3401, 0.3877, 0.1933, 0.7888, 0.5571, 0.6576, 0.6433,\n", + " 0.0206, 0.1912, 0.0944, 0.4022, 0.1453, 0.4538, 0.1868, 0.9440,\n", + " 0.9844, 0.6924, 0.7525, 0.9000, -0.0636, 0.5681, 0.9230, 0.1120,\n", + " 0.2962, 0.4745, 0.1778, 0.4781, 0.5008, 0.8880, 0.5096, 0.7171,\n", + " 0.9232, 0.7152, 0.0718, 0.8849, 0.8108, 0.1696, 0.2640, 0.7801,\n", + " -0.0014, -0.0204, 0.1567, 0.7084, 0.3040, 0.0972, 0.6588, 0.7491,\n", + " 0.7115, 0.0370, 1.0006, 0.4080, 0.0488, 0.4947, 0.8740, 0.7103,\n", + " 0.4503, 0.8846, 0.0723, 0.9376, 0.9406, 0.1606, 0.6514, 0.4207,\n", + " 0.0800, 0.5072, 0.3051, 0.0989, 0.1490, 0.5752, 0.9442, 0.6868,\n", + " 0.2197, 0.8430, 0.6023, 0.1048, 0.5948, 0.8766, 0.2540, 0.4682,\n", + " 0.1676, 0.0890, 0.2948, 0.5957, 0.8187, 0.4229, 0.0697, 0.5130,\n", + " 0.0416, 0.5608, 0.8944, 0.6622, 0.2130, 0.3840, 0.7105, 0.5861,\n", + " 0.0436, 0.1845, 0.2575, 0.8642, 0.9161], requires_grad=True)\n", + "train/loss: 0.6865 valid/loss: 0.5919 train/time: 10m6s valid/time: 4.91s train/acc: 0.8868 valid/acc: 0.6389\n", + "Epoch 10: \n", + "Parameter containing:\n", + "tensor([ 0.6144, 0.3783, 0.6375, 0.6065, 0.8214, 0.5782, 0.4414, 0.1577,\n", + " 0.6766, 0.1064, 0.5701, 0.4470, 0.5781, 0.8759, 0.6014, 0.7096,\n", + " 0.7041, 0.1714, 0.2644, 0.9599, -0.0349, 0.4689, 0.4496, 0.8845,\n", + " 0.4604, 0.6220, 0.4774, 0.2229, 0.1931, 0.2694, 0.0437, 0.1722,\n", + " 0.5882, 0.8475, 0.5259, 0.2930, 0.7386, 0.2188, 0.3764, 0.1999,\n", + " 0.3329, 0.0642, 0.7078, 0.6144, 0.6936, 0.7801, 0.7105, 0.5869,\n", + " 0.5574, 0.5870, 0.6993, 0.6857, 0.8973, 0.6770, 0.3547, 0.4369,\n", + " 0.2535, 0.8643, 0.5527, 0.9676, 0.7536, -0.0183, 0.5750, 1.0552,\n", + " 0.9867, 0.6121, 0.5833, 0.1393, 0.4226, 0.7063, 0.0525, 0.8997,\n", + " 0.1763, 0.7151, 0.4935, 0.5881, 0.5013, 0.0340, 0.4805, 0.1166,\n", + " 0.9396, 0.6427, 0.0288, 0.7793, 0.4439, 0.2170, 0.6411, 0.5994,\n", + " 0.1478, 0.3439, 0.3928, 0.2039, 0.8003, 0.5679, 0.6632, 0.6447,\n", + " 0.0266, 0.1910, 0.0949, 0.3980, 0.1421, 0.4517, 0.1904, 0.9577,\n", + " 0.9888, 0.6926, 0.7494, 0.8994, -0.0673, 0.5583, 0.9224, 0.0983,\n", + " 0.3045, 0.4765, 0.1713, 0.4823, 0.5045, 0.8790, 0.5111, 0.6991,\n", + " 0.9223, 0.7084, 0.0845, 0.8743, 0.8147, 0.1732, 0.2699, 0.7782,\n", + " -0.0113, -0.0177, 0.1584, 0.7187, 0.2992, 0.1014, 0.6661, 0.7531,\n", + " 0.7116, 0.0328, 1.0023, 0.4096, 0.0570, 0.4908, 0.8770, 0.7146,\n", + " 0.4501, 0.8920, 0.0704, 0.9508, 0.9379, 0.1662, 0.6580, 0.4161,\n", + " 0.0819, 0.5095, 0.3044, 0.0955, 0.1487, 0.5789, 0.9443, 0.6880,\n", + " 0.2203, 0.8353, 0.6072, 0.1120, 0.5982, 0.8825, 0.2530, 0.4652,\n", + " 0.1594, 0.0773, 0.2940, 0.5913, 0.8166, 0.4340, 0.0673, 0.5133,\n", + " 0.0416, 0.5440, 0.8884, 0.6582, 0.1992, 0.3803, 0.7095, 0.5910,\n", + " 0.0451, 0.1958, 0.2483, 0.8797, 0.9140], requires_grad=True)\n", + "train/loss: 0.3978 valid/loss: 0.5962 train/time: 11.89s valid/time: 2.64s train/acc: 0.8491 valid/acc: 0.6667\n", + "Epoch 11: \n", + "Parameter containing:\n", + "tensor([ 0.6157, 0.3783, 0.6373, 0.6047, 0.8385, 0.5692, 0.4503, 0.1724,\n", + " 0.6917, 0.1319, 0.5706, 0.4221, 0.5779, 0.8851, 0.6060, 0.7110,\n", + " 0.6984, 0.1677, 0.2762, 0.9593, -0.0235, 0.4733, 0.4467, 0.8759,\n", + " 0.4710, 0.6289, 0.4789, 0.2400, 0.2002, 0.2892, 0.0391, 0.1639,\n", + " 0.5819, 0.8568, 0.5296, 0.3107, 0.7484, 0.2113, 0.3831, 0.1949,\n", + " 0.3462, 0.0619, 0.6870, 0.6127, 0.6935, 0.7787, 0.7197, 0.5882,\n", + " 0.5474, 0.5836, 0.7093, 0.6745, 0.8989, 0.6653, 0.3543, 0.4335,\n", + " 0.2419, 0.8667, 0.5605, 0.9655, 0.7536, -0.0213, 0.5687, 1.0621,\n", + " 0.9857, 0.6203, 0.5819, 0.1472, 0.4330, 0.7001, 0.0507, 0.9004,\n", + " 0.1767, 0.7163, 0.4932, 0.5881, 0.5023, 0.0400, 0.4793, 0.1130,\n", + " 0.9398, 0.6461, 0.0366, 0.7864, 0.4346, 0.2211, 0.6450, 0.6098,\n", + " 0.1600, 0.3582, 0.3910, 0.2085, 0.8031, 0.5620, 0.6631, 0.6469,\n", + " 0.0236, 0.1880, 0.1024, 0.3852, 0.1433, 0.4510, 0.2012, 0.9507,\n", + " 0.9970, 0.7034, 0.7405, 0.9133, -0.0751, 0.5689, 0.9340, 0.0930,\n", + " 0.2899, 0.4800, 0.1828, 0.4796, 0.5122, 0.8942, 0.5213, 0.7087,\n", + " 0.9100, 0.7122, 0.0837, 0.8758, 0.8163, 0.1722, 0.2579, 0.7756,\n", + " -0.0069, -0.0180, 0.1574, 0.7140, 0.3027, 0.1045, 0.6624, 0.7512,\n", + " 0.7222, 0.0342, 1.0010, 0.4083, 0.0562, 0.4943, 0.8684, 0.7156,\n", + " 0.4599, 0.8830, 0.0807, 0.9512, 0.9390, 0.1682, 0.6513, 0.4178,\n", + " 0.0881, 0.5095, 0.3041, 0.0939, 0.1543, 0.5800, 0.9362, 0.6913,\n", + " 0.2223, 0.8384, 0.6105, 0.1114, 0.5905, 0.8840, 0.2546, 0.4711,\n", + " 0.1656, 0.0908, 0.3052, 0.6052, 0.8044, 0.4164, 0.0747, 0.5194,\n", + " 0.0529, 0.5498, 0.9028, 0.6752, 0.2084, 0.4014, 0.7283, 0.5805,\n", + " 0.0353, 0.1882, 0.2289, 0.8752, 0.9072], requires_grad=True)\n", + "train/loss: 0.7133 valid/loss: 0.5935 train/time: 10.81s valid/time: 2.72s train/acc: 0.8396 valid/acc: 0.5556\n", + "Epoch 12: \n", + "Parameter containing:\n", + "tensor([ 6.2004e-01, 3.7164e-01, 6.3297e-01, 6.3716e-01, 8.3958e-01,\n", + " 5.7914e-01, 4.5757e-01, 1.6015e-01, 6.8212e-01, 1.3299e-01,\n", + " 5.6148e-01, 4.1876e-01, 5.9427e-01, 8.8993e-01, 6.2038e-01,\n", + " 7.1277e-01, 6.9763e-01, 1.6611e-01, 2.8317e-01, 9.6842e-01,\n", + " -1.7113e-02, 4.7197e-01, 4.5162e-01, 8.7273e-01, 4.7140e-01,\n", + " 6.2622e-01, 4.7907e-01, 2.3465e-01, 1.9615e-01, 2.8809e-01,\n", + " 4.1871e-02, 1.6537e-01, 5.8078e-01, 8.5919e-01, 5.2971e-01,\n", + " 3.1569e-01, 7.4699e-01, 2.1049e-01, 3.7849e-01, 1.9825e-01,\n", + " 3.4335e-01, 6.5835e-02, 6.8959e-01, 6.1320e-01, 7.0002e-01,\n", + " 7.8339e-01, 7.1726e-01, 5.8757e-01, 5.4860e-01, 5.8083e-01,\n", + " 7.1286e-01, 6.8425e-01, 8.9968e-01, 6.7624e-01, 3.5861e-01,\n", + " 4.4363e-01, 2.5224e-01, 8.5787e-01, 5.6058e-01, 9.6582e-01,\n", + " 7.5360e-01, -9.8212e-03, 5.7066e-01, 1.0612e+00, 9.8320e-01,\n", + " 6.0625e-01, 5.9159e-01, 1.3721e-01, 4.4065e-01, 7.0537e-01,\n", + " 5.0732e-02, 8.9810e-01, 1.7565e-01, 7.1563e-01, 4.9353e-01,\n", + " 5.8811e-01, 4.9743e-01, 3.7860e-02, 4.8542e-01, 1.1855e-01,\n", + " 9.3916e-01, 6.5025e-01, 3.2947e-02, 7.8627e-01, 4.3373e-01,\n", + " 2.2315e-01, 6.4693e-01, 5.9835e-01, 1.5986e-01, 3.5906e-01,\n", + " 3.9618e-01, 2.0557e-01, 8.0242e-01, 5.5840e-01, 6.7357e-01,\n", + " 6.5906e-01, 2.4853e-02, 1.8494e-01, 1.1340e-01, 3.6297e-01,\n", + " 1.4059e-01, 4.3964e-01, 1.8956e-01, 9.4295e-01, 9.8794e-01,\n", + " 6.7770e-01, 7.5564e-01, 8.8690e-01, -6.2168e-02, 5.6337e-01,\n", + " 9.0944e-01, 1.0732e-01, 3.0370e-01, 4.6548e-01, 1.6940e-01,\n", + " 4.5822e-01, 4.9903e-01, 8.7857e-01, 5.1524e-01, 7.0148e-01,\n", + " 9.1862e-01, 7.1234e-01, 8.2230e-02, 8.7148e-01, 8.1326e-01,\n", + " 1.6859e-01, 2.7069e-01, 7.8202e-01, -8.7188e-04, -2.6880e-02,\n", + " 1.5989e-01, 7.2452e-01, 2.9365e-01, 9.5650e-02, 6.5512e-01,\n", + " 7.5096e-01, 7.0976e-01, 3.4447e-02, 9.9953e-01, 4.1452e-01,\n", + " 5.7347e-02, 4.8565e-01, 8.7537e-01, 7.1103e-01, 4.5519e-01,\n", + " 8.8463e-01, 7.5334e-02, 9.6698e-01, 9.3276e-01, 1.7479e-01,\n", + " 6.5709e-01, 4.1873e-01, 9.3990e-02, 5.1006e-01, 3.0564e-01,\n", + " 9.3644e-02, 1.5421e-01, 5.8260e-01, 9.3200e-01, 6.8972e-01,\n", + " 2.2484e-01, 8.3775e-01, 6.1378e-01, 1.1178e-01, 5.9258e-01,\n", + " 8.8619e-01, 2.5225e-01, 4.7126e-01, 1.5293e-01, 8.6826e-02,\n", + " 3.0048e-01, 5.7949e-01, 8.2151e-01, 4.3714e-01, 5.7781e-02,\n", + " 4.9395e-01, 3.5585e-02, 5.5367e-01, 8.7018e-01, 6.5579e-01,\n", + " 2.0196e-01, 3.7221e-01, 7.0205e-01, 6.1052e-01, 4.4090e-02,\n", + " 1.9293e-01, 2.2038e-01, 8.9768e-01, 9.0925e-01],\n", + " requires_grad=True)\n", + "train/loss: 0.5667 valid/loss: 0.5915 train/time: 10.88s valid/time: 2.25s train/acc: 0.8774 valid/acc: 0.5833\n", + "Epoch 13: \n", + "Parameter containing:\n", + "tensor([ 0.6163, 0.3725, 0.6370, 0.6232, 0.8567, 0.5714, 0.4407, 0.1688,\n", + " 0.6824, 0.1284, 0.5718, 0.4240, 0.5827, 0.8942, 0.6137, 0.7073,\n", + " 0.6906, 0.1670, 0.2817, 0.9632, -0.0185, 0.4707, 0.4527, 0.8737,\n", + " 0.4690, 0.6254, 0.4792, 0.2339, 0.1923, 0.2876, 0.0419, 0.1651,\n", + " 0.5827, 0.8604, 0.5308, 0.3149, 0.7444, 0.2072, 0.3842, 0.1976,\n", + " 0.3344, 0.0661, 0.6994, 0.5992, 0.6894, 0.7855, 0.7171, 0.5930,\n", + " 0.5566, 0.5799, 0.7080, 0.6895, 0.8917, 0.6798, 0.3656, 0.4367,\n", + " 0.2516, 0.8559, 0.5644, 0.9589, 0.7536, -0.0188, 0.5729, 1.0609,\n", + " 0.9725, 0.6179, 0.5837, 0.1457, 0.4352, 0.7072, 0.0547, 0.8969,\n", + " 0.1802, 0.7184, 0.4943, 0.5881, 0.4985, 0.0383, 0.4830, 0.1064,\n", + " 0.9429, 0.6414, 0.0401, 0.7845, 0.4285, 0.2313, 0.6557, 0.6075,\n", + " 0.1584, 0.3713, 0.3857, 0.2148, 0.8087, 0.5704, 0.6719, 0.6527,\n", + " 0.0217, 0.1880, 0.1030, 0.3656, 0.1380, 0.4426, 0.1885, 0.9115,\n", + " 0.9832, 0.6963, 0.7408, 0.9065, -0.0720, 0.5695, 0.9223, 0.0951,\n", + " 0.2990, 0.4846, 0.1801, 0.4583, 0.5108, 0.8876, 0.5105, 0.7118,\n", + " 0.9260, 0.7004, 0.0985, 0.8749, 0.8069, 0.1712, 0.2627, 0.7683,\n", + " -0.0079, -0.0182, 0.1446, 0.7069, 0.2997, 0.1056, 0.6626, 0.7339,\n", + " 0.7227, 0.0450, 0.9960, 0.4174, 0.0617, 0.4828, 0.8696, 0.7151,\n", + " 0.4617, 0.8812, 0.0792, 0.9657, 0.9357, 0.1785, 0.6541, 0.4186,\n", + " 0.0965, 0.5235, 0.3067, 0.0988, 0.1427, 0.5774, 0.9310, 0.6722,\n", + " 0.2188, 0.8364, 0.6142, 0.1088, 0.5979, 0.8794, 0.2323, 0.4567,\n", + " 0.1582, 0.0854, 0.3028, 0.5922, 0.8065, 0.4210, 0.0523, 0.4956,\n", + " 0.0403, 0.5577, 0.8819, 0.6743, 0.2094, 0.3925, 0.7120, 0.6007,\n", + " 0.0261, 0.1793, 0.1998, 0.8886, 0.9002], requires_grad=True)\n", + "train/loss: 0.4108 valid/loss: 0.6079 train/time: 10.84s valid/time: 2.56s train/acc: 0.8774 valid/acc: 0.5833\n", + "Epoch 14: \n", + "Parameter containing:\n", + "tensor([ 0.6159, 0.3734, 0.6374, 0.6476, 0.8503, 0.5817, 0.4564, 0.1598,\n", + " 0.6806, 0.1279, 0.5542, 0.4195, 0.5807, 0.8904, 0.6109, 0.7153,\n", + " 0.6887, 0.1596, 0.2809, 0.9678, -0.0197, 0.4707, 0.4511, 0.8720,\n", + " 0.4707, 0.6248, 0.4796, 0.2350, 0.1902, 0.2859, 0.0404, 0.1675,\n", + " 0.5864, 0.8573, 0.5306, 0.3171, 0.7477, 0.2051, 0.3779, 0.1966,\n", + " 0.3479, 0.0633, 0.6815, 0.6109, 0.7007, 0.7868, 0.7198, 0.5886,\n", + " 0.5445, 0.5779, 0.7201, 0.6704, 0.9080, 0.6652, 0.3646, 0.4419,\n", + " 0.2483, 0.8545, 0.5699, 0.9528, 0.7536, -0.0083, 0.5657, 1.0561,\n", + " 0.9723, 0.6126, 0.5938, 0.1465, 0.4372, 0.7171, 0.0539, 0.8932,\n", + " 0.1792, 0.7188, 0.4939, 0.5881, 0.4880, 0.0382, 0.4957, 0.1139,\n", + " 0.9414, 0.6439, 0.0352, 0.7861, 0.4388, 0.2312, 0.6568, 0.6026,\n", + " 0.1441, 0.3690, 0.3887, 0.2098, 0.8051, 0.5718, 0.6787, 0.6574,\n", + " 0.0222, 0.1886, 0.1017, 0.3649, 0.1342, 0.4401, 0.1897, 0.9329,\n", + " 0.9889, 0.7002, 0.7417, 0.9102, -0.0694, 0.5649, 0.9283, 0.0923,\n", + " 0.3035, 0.4860, 0.1769, 0.4617, 0.5086, 0.8840, 0.5138, 0.7097,\n", + " 0.9250, 0.7098, 0.0836, 0.8676, 0.8095, 0.1752, 0.2614, 0.7776,\n", + " -0.0034, -0.0259, 0.1502, 0.7132, 0.2925, 0.0972, 0.6565, 0.7422,\n", + " 0.7179, 0.0421, 0.9899, 0.4100, 0.0535, 0.4894, 0.8700, 0.7137,\n", + " 0.4556, 0.8819, 0.0833, 0.9707, 0.9411, 0.1728, 0.6570, 0.4181,\n", + " 0.1055, 0.5207, 0.3067, 0.1047, 0.1609, 0.5760, 0.9243, 0.6894,\n", + " 0.2164, 0.8406, 0.6273, 0.1162, 0.5949, 0.8772, 0.2449, 0.4727,\n", + " 0.1544, 0.0934, 0.3020, 0.5918, 0.8066, 0.4227, 0.0578, 0.4982,\n", + " 0.0420, 0.5552, 0.8823, 0.6764, 0.2052, 0.3945, 0.7199, 0.5999,\n", + " 0.0254, 0.1830, 0.1901, 0.8917, 0.9016], requires_grad=True)\n", + "train/loss: 0.5528 valid/loss: 0.5940 train/time: 10.84s valid/time: 2.28s train/acc: 0.8774 valid/acc: 0.5833\n", + "Epoch 15: \n", + "Parameter containing:\n", + "tensor([ 0.6160, 0.3766, 0.6373, 0.6316, 0.8659, 0.5747, 0.4327, 0.1484,\n", + " 0.6536, 0.1215, 0.5523, 0.4246, 0.5857, 0.8854, 0.6132, 0.7063,\n", + " 0.6915, 0.1681, 0.2863, 0.9522, -0.0139, 0.4705, 0.4492, 0.8744,\n", + " 0.4773, 0.6269, 0.4805, 0.2276, 0.1878, 0.2845, 0.0391, 0.1709,\n", + " 0.5913, 0.8575, 0.5291, 0.3176, 0.7387, 0.2104, 0.3824, 0.1944,\n", + " 0.3336, 0.0603, 0.7011, 0.5980, 0.6784, 0.7847, 0.7132, 0.5954,\n", + " 0.5592, 0.5848, 0.7019, 0.6829, 0.9096, 0.6801, 0.3678, 0.4402,\n", + " 0.2506, 0.8522, 0.5716, 0.9561, 0.7536, -0.0105, 0.5649, 1.0584,\n", + " 0.9663, 0.6176, 0.5917, 0.1502, 0.4397, 0.7114, 0.0499, 0.8917,\n", + " 0.1762, 0.7188, 0.4933, 0.5881, 0.4934, 0.0438, 0.4934, 0.1156,\n", + " 0.9390, 0.6548, 0.0402, 0.7903, 0.4326, 0.2218, 0.6428, 0.6111,\n", + " 0.1397, 0.3749, 0.3941, 0.2256, 0.8200, 0.5618, 0.6913, 0.6710,\n", + " 0.0330, 0.1863, 0.1156, 0.3567, 0.1292, 0.4288, 0.2003, 0.9360,\n", + " 0.9985, 0.6968, 0.7443, 0.9053, -0.0677, 0.5694, 0.9261, 0.0975,\n", + " 0.3011, 0.4803, 0.1766, 0.4458, 0.5065, 0.8853, 0.5196, 0.7102,\n", + " 0.9322, 0.6942, 0.1055, 0.8692, 0.8141, 0.1739, 0.2589, 0.7695,\n", + " -0.0110, -0.0228, 0.1463, 0.7133, 0.2967, 0.1059, 0.6650, 0.7367,\n", + " 0.7210, 0.0366, 0.9888, 0.4136, 0.0535, 0.4852, 0.8686, 0.7148,\n", + " 0.4499, 0.8782, 0.0878, 0.9780, 0.9402, 0.1815, 0.6548, 0.4155,\n", + " 0.1076, 0.5257, 0.3065, 0.1020, 0.1521, 0.5768, 0.9261, 0.6790,\n", + " 0.2165, 0.8361, 0.6234, 0.1134, 0.6002, 0.8778, 0.2351, 0.4631,\n", + " 0.1494, 0.0815, 0.3007, 0.5862, 0.8050, 0.4271, 0.0631, 0.4959,\n", + " 0.0398, 0.5621, 0.8742, 0.6717, 0.2098, 0.3903, 0.7264, 0.6019,\n", + " 0.0193, 0.1818, 0.1798, 0.8800, 0.8984], requires_grad=True)\n", + "train/loss: 0.7186 valid/loss: 0.6092 train/time: 10.97s valid/time: 2.27s train/acc: 0.8962 valid/acc: 0.5556\n", + "Epoch 16: \n", + "Parameter containing:\n", + "tensor([ 0.6202, 0.3808, 0.6371, 0.6499, 0.8696, 0.5880, 0.4391, 0.1518,\n", + " 0.6589, 0.1329, 0.5741, 0.4179, 0.5858, 0.8702, 0.6075, 0.7075,\n", + " 0.6906, 0.1667, 0.2874, 0.9675, -0.0141, 0.4719, 0.4502, 0.8753,\n", + " 0.4726, 0.6242, 0.4814, 0.2223, 0.1849, 0.2889, 0.0375, 0.1722,\n", + " 0.5877, 0.8560, 0.5292, 0.3121, 0.7385, 0.2097, 0.3792, 0.1944,\n", + " 0.3341, 0.0605, 0.6995, 0.6006, 0.6821, 0.7880, 0.7135, 0.5950,\n", + " 0.5586, 0.5821, 0.7035, 0.6902, 0.9156, 0.6895, 0.3638, 0.4367,\n", + " 0.2561, 0.8498, 0.5686, 0.9500, 0.7536, -0.0079, 0.5664, 1.0572,\n", + " 0.9657, 0.6186, 0.5925, 0.1423, 0.4411, 0.7136, 0.0557, 0.8875,\n", + " 0.1774, 0.7190, 0.4930, 0.5881, 0.4922, 0.0308, 0.4936, 0.1151,\n", + " 0.9421, 0.6586, 0.0303, 0.7887, 0.4318, 0.2260, 0.6471, 0.6068,\n", + " 0.1359, 0.3807, 0.3931, 0.2181, 0.8128, 0.5690, 0.6862, 0.6629,\n", + " 0.0280, 0.1818, 0.1233, 0.3419, 0.1237, 0.4269, 0.1962, 0.9360,\n", + " 0.9952, 0.6888, 0.7537, 0.8939, -0.0599, 0.5596, 0.9218, 0.0937,\n", + " 0.3035, 0.4701, 0.1693, 0.4654, 0.4976, 0.8801, 0.5281, 0.7028,\n", + " 0.9331, 0.6988, 0.0977, 0.8636, 0.8159, 0.1785, 0.2650, 0.7796,\n", + " -0.0030, -0.0261, 0.1518, 0.7046, 0.2894, 0.0955, 0.6575, 0.7445,\n", + " 0.7170, 0.0421, 0.9886, 0.4054, 0.0540, 0.4930, 0.8748, 0.7184,\n", + " 0.4547, 0.8839, 0.0960, 0.9672, 0.9393, 0.1760, 0.6609, 0.4149,\n", + " 0.1198, 0.5271, 0.3078, 0.1050, 0.1495, 0.5764, 0.9286, 0.6775,\n", + " 0.2145, 0.8328, 0.6256, 0.1170, 0.6054, 0.8773, 0.2331, 0.4592,\n", + " 0.1571, 0.0842, 0.3102, 0.5952, 0.8132, 0.4296, 0.0677, 0.4921,\n", + " 0.0399, 0.5482, 0.8714, 0.6695, 0.1985, 0.3875, 0.7276, 0.6058,\n", + " 0.0297, 0.1986, 0.1801, 0.8886, 0.9051], requires_grad=True)\n", + "train/loss: 0.3593 valid/loss: 0.5944 train/time: 10.86s valid/time: 2.54s train/acc: 0.8585 valid/acc: 0.6111\n", + "Epoch 17: \n", + "Parameter containing:\n", + "tensor([ 0.6210, 0.3813, 0.6370, 0.6450, 0.8618, 0.5768, 0.4578, 0.1589,\n", + " 0.6738, 0.1283, 0.5692, 0.4205, 0.5867, 0.8688, 0.6077, 0.7097,\n", + " 0.6899, 0.1646, 0.2832, 0.9655, -0.0184, 0.4714, 0.4489, 0.8731,\n", + " 0.4665, 0.6187, 0.4830, 0.2254, 0.1809, 0.2916, 0.0363, 0.1842,\n", + " 0.5917, 0.8562, 0.5295, 0.3090, 0.7400, 0.2107, 0.3792, 0.1969,\n", + " 0.3345, 0.0635, 0.6976, 0.5977, 0.6834, 0.7870, 0.7144, 0.5941,\n", + " 0.5577, 0.5845, 0.7071, 0.6892, 0.9032, 0.6859, 0.3663, 0.4333,\n", + " 0.2414, 0.8485, 0.5674, 0.9454, 0.7536, -0.0118, 0.5647, 1.0630,\n", + " 0.9629, 0.6248, 0.5898, 0.1462, 0.4506, 0.7067, 0.0517, 0.8892,\n", + " 0.1740, 0.7202, 0.4927, 0.5881, 0.4987, 0.0409, 0.4921, 0.1209,\n", + " 0.9389, 0.6719, 0.0334, 0.7964, 0.4335, 0.2315, 0.6539, 0.6042,\n", + " 0.1353, 0.3826, 0.3923, 0.2082, 0.8024, 0.5741, 0.6907, 0.6652,\n", + " 0.0283, 0.1852, 0.1148, 0.3475, 0.1180, 0.4366, 0.2036, 0.9552,\n", + " 1.0056, 0.6975, 0.7451, 0.9039, -0.0675, 0.5625, 0.9281, 0.0823,\n", + " 0.3004, 0.4791, 0.1713, 0.4657, 0.5059, 0.8841, 0.5260, 0.6955,\n", + " 0.9296, 0.6941, 0.1076, 0.8700, 0.8157, 0.1934, 0.2641, 0.7738,\n", + " -0.0080, -0.0276, 0.1483, 0.7033, 0.2898, 0.1039, 0.6610, 0.7479,\n", + " 0.7233, 0.0440, 0.9893, 0.4122, 0.0563, 0.4864, 0.8688, 0.7197,\n", + " 0.4593, 0.8789, 0.0956, 0.9762, 0.9411, 0.1843, 0.6555, 0.4150,\n", + " 0.1168, 0.5245, 0.3099, 0.1153, 0.1536, 0.5765, 0.9341, 0.6840,\n", + " 0.2129, 0.8301, 0.6352, 0.1293, 0.6122, 0.8769, 0.2364, 0.4602,\n", + " 0.1429, 0.0763, 0.3027, 0.5972, 0.8060, 0.4264, 0.0642, 0.4969,\n", + " 0.0458, 0.5425, 0.8789, 0.6782, 0.1970, 0.3939, 0.7298, 0.6018,\n", + " 0.0259, 0.1965, 0.1654, 0.8905, 0.9003], requires_grad=True)\n", + "train/loss: 0.7008 valid/loss: 0.6071 train/time: 10.96s valid/time: 2.28s train/acc: 0.8585 valid/acc: 0.5833\n", + "Epoch 18: \n", + "Parameter containing:\n", + "tensor([ 0.6211, 0.3820, 0.6415, 0.6634, 0.8752, 0.5879, 0.4554, 0.1523,\n", + " 0.6645, 0.1269, 0.5682, 0.4210, 0.5870, 0.8663, 0.6067, 0.7130,\n", + " 0.6881, 0.1610, 0.2927, 0.9757, -0.0096, 0.4708, 0.4487, 0.8709,\n", + " 0.4661, 0.6155, 0.4816, 0.2202, 0.1839, 0.2916, 0.0374, 0.1800,\n", + " 0.5933, 0.8551, 0.5287, 0.3047, 0.7406, 0.2113, 0.3764, 0.1988,\n", + " 0.3377, 0.0658, 0.6906, 0.5996, 0.6920, 0.7906, 0.7156, 0.5932,\n", + " 0.5533, 0.5804, 0.7162, 0.6914, 0.9058, 0.6886, 0.3709, 0.4388,\n", + " 0.2485, 0.8417, 0.5674, 0.9382, 0.7536, -0.0059, 0.5619, 1.0610,\n", + " 0.9559, 0.6208, 0.5952, 0.1478, 0.4531, 0.7153, 0.0579, 0.8844,\n", + " 0.1799, 0.7141, 0.4926, 0.5881, 0.4948, 0.0328, 0.4888, 0.1075,\n", + " 0.9442, 0.6584, 0.0380, 0.7833, 0.4356, 0.2347, 0.6583, 0.5939,\n", + " 0.1312, 0.3819, 0.3875, 0.2103, 0.8021, 0.5720, 0.6935, 0.6683,\n", + " 0.0251, 0.1859, 0.1110, 0.3380, 0.1187, 0.4289, 0.1847, 0.9417,\n", + " 0.9888, 0.6958, 0.7490, 0.9016, -0.0634, 0.5617, 0.9256, 0.0845,\n", + " 0.3018, 0.4772, 0.1684, 0.4624, 0.5019, 0.8824, 0.5283, 0.6952,\n", + " 0.9318, 0.6936, 0.1077, 0.8628, 0.8124, 0.1906, 0.2660, 0.7768,\n", + " -0.0047, -0.0290, 0.1472, 0.7067, 0.2895, 0.0991, 0.6581, 0.7440,\n", + " 0.7179, 0.0460, 0.9894, 0.4070, 0.0625, 0.4909, 0.8681, 0.7135,\n", + " 0.4520, 0.8761, 0.0970, 0.9737, 0.9394, 0.1788, 0.6533, 0.4173,\n", + " 0.1262, 0.5269, 0.3101, 0.1118, 0.1575, 0.5699, 0.9244, 0.6857,\n", + " 0.2098, 0.8390, 0.6410, 0.1266, 0.6095, 0.8728, 0.2370, 0.4650,\n", + " 0.1488, 0.0834, 0.3094, 0.5947, 0.8093, 0.4284, 0.0631, 0.4950,\n", + " 0.0449, 0.5437, 0.8763, 0.6767, 0.1962, 0.3918, 0.7286, 0.6042,\n", + " 0.0276, 0.1966, 0.1592, 0.8874, 0.9030], requires_grad=True)\n", + "train/loss: 0.4395 valid/loss: 0.5955 train/time: 11.01s valid/time: 2.63s train/acc: 0.8396 valid/acc: 0.5833\n", + "Epoch 19: \n", + "Parameter containing:\n", + "tensor([ 0.6211, 0.3820, 0.6420, 0.6637, 0.8706, 0.5872, 0.4547, 0.1620,\n", + " 0.6747, 0.1323, 0.5631, 0.4139, 0.5899, 0.8617, 0.6067, 0.7101,\n", + " 0.6864, 0.1629, 0.2899, 0.9770, -0.0128, 0.4740, 0.4453, 0.8724,\n", + " 0.4682, 0.6163, 0.4819, 0.2247, 0.1835, 0.2925, 0.0377, 0.1838,\n", + " 0.5944, 0.8505, 0.5288, 0.3077, 0.7372, 0.2098, 0.3760, 0.1999,\n", + " 0.3286, 0.0705, 0.6988, 0.5930, 0.6903, 0.7960, 0.7131, 0.5974,\n", + " 0.5612, 0.5794, 0.7133, 0.6822, 0.9019, 0.6780, 0.3705, 0.4375,\n", + " 0.2435, 0.8383, 0.5694, 0.9394, 0.7536, -0.0080, 0.5669, 1.0626,\n", + " 0.9562, 0.6210, 0.5918, 0.1420, 0.4558, 0.7141, 0.0626, 0.8906,\n", + " 0.1815, 0.7212, 0.4921, 0.5881, 0.5047, 0.0336, 0.4938, 0.1183,\n", + " 0.9480, 0.6729, 0.0270, 0.7890, 0.4292, 0.2315, 0.6538, 0.5965,\n", + " 0.1414, 0.3850, 0.3823, 0.2137, 0.8035, 0.5777, 0.6987, 0.6710,\n", + " 0.0245, 0.1854, 0.1118, 0.3308, 0.1180, 0.4359, 0.1796, 0.9486,\n", + " 0.9856, 0.6983, 0.7482, 0.9049, -0.0626, 0.5635, 0.9254, 0.0866,\n", + " 0.3032, 0.4805, 0.1692, 0.4535, 0.5022, 0.8818, 0.5270, 0.6976,\n", + " 0.9247, 0.6886, 0.1159, 0.8596, 0.8121, 0.1777, 0.2629, 0.7687,\n", + " -0.0066, -0.0220, 0.1487, 0.7048, 0.2897, 0.1077, 0.6609, 0.7394,\n", + " 0.7212, 0.0447, 0.9900, 0.4026, 0.0690, 0.4893, 0.8685, 0.7186,\n", + " 0.4436, 0.8824, 0.0943, 0.9735, 0.9387, 0.1804, 0.6582, 0.4103,\n", + " 0.1370, 0.5254, 0.3086, 0.0984, 0.1497, 0.5777, 0.9247, 0.6791,\n", + " 0.2239, 0.8359, 0.6269, 0.1201, 0.6072, 0.8845, 0.2403, 0.4633,\n", + " 0.1567, 0.0666, 0.3155, 0.5906, 0.8079, 0.4291, 0.0600, 0.4947,\n", + " 0.0466, 0.5479, 0.8756, 0.6791, 0.1991, 0.3926, 0.7283, 0.6042,\n", + " 0.0245, 0.1903, 0.1513, 0.8944, 0.8955], requires_grad=True)\n", + "train/loss: 0.4777 valid/loss: 0.5774 train/time: 10.99s valid/time: 2.36s train/acc: 0.8396 valid/acc: 0.6111\n", + "Epoch 20: \n", + "Parameter containing:\n", + "tensor([ 0.6221, 0.3817, 0.6412, 0.6578, 0.8865, 0.5832, 0.4614, 0.1585,\n", + " 0.6745, 0.1218, 0.5410, 0.4185, 0.5951, 0.8621, 0.6105, 0.7108,\n", + " 0.6852, 0.1616, 0.2905, 0.9720, -0.0121, 0.4720, 0.4437, 0.8728,\n", + " 0.4699, 0.6162, 0.4830, 0.2189, 0.1853, 0.2947, 0.0420, 0.1896,\n", + " 0.5963, 0.8486, 0.5278, 0.3184, 0.7397, 0.2058, 0.3725, 0.1955,\n", + " 0.3384, 0.0623, 0.6868, 0.6051, 0.7004, 0.8045, 0.7200, 0.5970,\n", + " 0.5529, 0.5651, 0.7221, 0.6930, 0.9107, 0.6916, 0.3734, 0.4414,\n", + " 0.2467, 0.8356, 0.5687, 0.9402, 0.7536, -0.0032, 0.5621, 1.0582,\n", + " 0.9508, 0.6180, 0.5980, 0.1476, 0.4523, 0.7142, 0.0676, 0.8860,\n", + " 0.1868, 0.7174, 0.4925, 0.5881, 0.4974, 0.0325, 0.5041, 0.1217,\n", + " 0.9539, 0.6819, 0.0241, 0.8004, 0.4351, 0.2278, 0.6508, 0.5973,\n", + " 0.1287, 0.3928, 0.3908, 0.2098, 0.8015, 0.5826, 0.7005, 0.6719,\n", + " 0.0273, 0.1837, 0.1181, 0.3410, 0.1094, 0.4498, 0.1899, 0.9546,\n", + " 0.9962, 0.6897, 0.7505, 0.8951, -0.0614, 0.5625, 0.9181, 0.0904,\n", + " 0.3012, 0.4701, 0.1716, 0.4596, 0.5001, 0.8814, 0.5355, 0.7015,\n", + " 0.9300, 0.6853, 0.1179, 0.8616, 0.8129, 0.1859, 0.2620, 0.7757,\n", + " -0.0034, -0.0278, 0.1437, 0.7040, 0.2896, 0.0970, 0.6586, 0.7364,\n", + " 0.7178, 0.0424, 0.9806, 0.4075, 0.0619, 0.4862, 0.8706, 0.7104,\n", + " 0.4392, 0.8835, 0.0991, 0.9838, 0.9449, 0.1869, 0.6617, 0.4145,\n", + " 0.1410, 0.5313, 0.3095, 0.1030, 0.1541, 0.5686, 0.9219, 0.6788,\n", + " 0.2159, 0.8424, 0.6347, 0.1205, 0.6098, 0.8753, 0.2351, 0.4641,\n", + " 0.1261, 0.0564, 0.2854, 0.5999, 0.8105, 0.4264, 0.0603, 0.4887,\n", + " 0.0425, 0.5494, 0.8723, 0.6737, 0.2002, 0.3925, 0.7265, 0.6050,\n", + " 0.0240, 0.1935, 0.1490, 0.8920, 0.9056], requires_grad=True)\n", + "train/loss: 0.3420 valid/loss: 0.6009 train/time: 11.13s valid/time: 2.38s train/acc: 0.8962 valid/acc: 0.5278\n", + "Epoch 21: \n", + "Parameter containing:\n", + "tensor([ 0.6237, 0.3815, 0.6354, 0.6577, 0.8707, 0.5798, 0.4559, 0.1649,\n", + " 0.6793, 0.1254, 0.5348, 0.4132, 0.5884, 0.8747, 0.6114, 0.7074,\n", + " 0.6900, 0.1666, 0.2903, 0.9675, -0.0123, 0.4733, 0.4415, 0.8697,\n", + " 0.4722, 0.6193, 0.4835, 0.2199, 0.1877, 0.2964, 0.0444, 0.1947,\n", + " 0.6030, 0.8429, 0.5267, 0.3186, 0.7366, 0.2132, 0.3817, 0.1935,\n", + " 0.3336, 0.0577, 0.6946, 0.5951, 0.6898, 0.7967, 0.7189, 0.6005,\n", + " 0.5581, 0.5710, 0.7139, 0.6908, 0.9099, 0.6891, 0.3751, 0.4400,\n", + " 0.2439, 0.8316, 0.5614, 0.9362, 0.7536, -0.0055, 0.5631, 1.0656,\n", + " 0.9496, 0.6200, 0.5943, 0.1438, 0.4661, 0.7082, 0.0665, 0.8859,\n", + " 0.1847, 0.7153, 0.4927, 0.5881, 0.5012, 0.0295, 0.4954, 0.1159,\n", + " 0.9527, 0.6813, 0.0259, 0.7991, 0.4299, 0.2278, 0.6502, 0.5905,\n", + " 0.1204, 0.3898, 0.3927, 0.2084, 0.8005, 0.5780, 0.6858, 0.6609,\n", + " 0.0278, 0.1848, 0.1160, 0.3258, 0.1115, 0.4429, 0.1909, 0.9670,\n", + " 0.9986, 0.6900, 0.7494, 0.8962, -0.0616, 0.5637, 0.9178, 0.0893,\n", + " 0.3002, 0.4747, 0.1737, 0.4552, 0.5012, 0.8819, 0.5307, 0.7030,\n", + " 0.9309, 0.6917, 0.1084, 0.8609, 0.8132, 0.1873, 0.2641, 0.7720,\n", + " -0.0094, -0.0253, 0.1456, 0.7157, 0.2900, 0.1029, 0.6617, 0.7400,\n", + " 0.7207, 0.0420, 0.9751, 0.4014, 0.0640, 0.4913, 0.8676, 0.7143,\n", + " 0.4429, 0.8840, 0.1059, 0.9722, 0.9525, 0.1853, 0.6621, 0.4128,\n", + " 0.1523, 0.5251, 0.3071, 0.1035, 0.1585, 0.5705, 0.9203, 0.6869,\n", + " 0.2171, 0.8423, 0.6393, 0.1262, 0.6065, 0.8786, 0.2437, 0.4694,\n", + " 0.1403, 0.0603, 0.2994, 0.5977, 0.8090, 0.4243, 0.0560, 0.4910,\n", + " 0.0443, 0.5506, 0.8749, 0.6759, 0.2023, 0.3928, 0.7242, 0.6040,\n", + " 0.0229, 0.1903, 0.1371, 0.9017, 0.9053], requires_grad=True)\n", + "train/loss: 0.7455 valid/loss: 0.5915 train/time: 10.83s valid/time: 2.73s train/acc: 0.8962 valid/acc: 0.6389\n", + "Epoch 22: \n", + "Parameter containing:\n", + "tensor([ 0.6215, 0.3820, 0.6279, 0.6804, 0.8768, 0.5939, 0.4565, 0.1607,\n", + " 0.6747, 0.1307, 0.5317, 0.4070, 0.5872, 0.8780, 0.6121, 0.7115,\n", + " 0.6847, 0.1607, 0.2934, 0.9629, -0.0090, 0.4710, 0.4433, 0.8698,\n", + " 0.4739, 0.6197, 0.4830, 0.2152, 0.1877, 0.2884, 0.0452, 0.1952,\n", + " 0.6100, 0.8403, 0.5281, 0.3212, 0.7369, 0.2139, 0.3741, 0.2007,\n", + " 0.3310, 0.0699, 0.6900, 0.5956, 0.7057, 0.8062, 0.7180, 0.5987,\n", + " 0.5555, 0.5652, 0.7255, 0.6946, 0.9055, 0.6926, 0.3726, 0.4377,\n", + " 0.2543, 0.8322, 0.5521, 0.9239, 0.7536, -0.0043, 0.5583, 1.0657,\n", + " 0.9480, 0.6218, 0.5951, 0.1445, 0.4663, 0.7111, 0.0655, 0.8808,\n", + " 0.1864, 0.7200, 0.4938, 0.5881, 0.4900, 0.0313, 0.4941, 0.1041,\n", + " 0.9533, 0.6700, 0.0416, 0.7950, 0.4385, 0.2370, 0.6616, 0.5887,\n", + " 0.1223, 0.3859, 0.3874, 0.2166, 0.8074, 0.5718, 0.6885, 0.6658,\n", + " 0.0266, 0.1866, 0.1112, 0.3293, 0.1045, 0.4482, 0.1816, 0.9616,\n", + " 0.9906, 0.6881, 0.7515, 0.8954, -0.0581, 0.5584, 0.9167, 0.0851,\n", + " 0.3042, 0.4755, 0.1702, 0.4565, 0.4992, 0.8761, 0.5278, 0.6956,\n", + " 0.9346, 0.6873, 0.1146, 0.8600, 0.8116, 0.1884, 0.2654, 0.7729,\n", + " -0.0061, -0.0295, 0.1485, 0.7027, 0.2894, 0.1020, 0.6633, 0.7433,\n", + " 0.7146, 0.0391, 0.9851, 0.3997, 0.0769, 0.4907, 0.8600, 0.7136,\n", + " 0.4375, 0.8796, 0.1075, 0.9779, 0.9460, 0.1874, 0.6548, 0.4104,\n", + " 0.1542, 0.5236, 0.3046, 0.0994, 0.1531, 0.5770, 0.9245, 0.6811,\n", + " 0.2202, 0.8370, 0.6353, 0.1250, 0.6040, 0.8857, 0.2363, 0.4624,\n", + " 0.1482, 0.0482, 0.3060, 0.5951, 0.8117, 0.4271, 0.0526, 0.4935,\n", + " 0.0452, 0.5450, 0.8755, 0.6737, 0.1956, 0.3905, 0.7211, 0.6059,\n", + " 0.0257, 0.1945, 0.1267, 0.9037, 0.9056], requires_grad=True)\n", + "train/loss: 0.5441 valid/loss: 0.5825 train/time: 11.99s valid/time: 2.53s train/acc: 0.8491 valid/acc: 0.6389\n", + "Epoch 23: \n", + "Parameter containing:\n", + "tensor([ 0.6213, 0.3836, 0.6272, 0.6678, 0.9082, 0.5852, 0.4650, 0.1672,\n", + " 0.6865, 0.1408, 0.5229, 0.3936, 0.5783, 0.8715, 0.6029, 0.7068,\n", + " 0.6863, 0.1655, 0.2956, 0.9657, -0.0072, 0.4692, 0.4416, 0.8655,\n", + " 0.4798, 0.6196, 0.4840, 0.2067, 0.1899, 0.2903, 0.0437, 0.1891,\n", + " 0.6107, 0.8404, 0.5294, 0.3286, 0.7346, 0.2180, 0.3828, 0.1992,\n", + " 0.3237, 0.0702, 0.6983, 0.5835, 0.6937, 0.7998, 0.7165, 0.6025,\n", + " 0.5626, 0.5733, 0.7174, 0.6911, 0.8940, 0.6870, 0.3740, 0.4395,\n", + " 0.2478, 0.8275, 0.5469, 0.9204, 0.7536, -0.0030, 0.5604, 1.0649,\n", + " 0.9458, 0.6201, 0.5950, 0.1426, 0.4671, 0.7125, 0.0646, 0.8931,\n", + " 0.1825, 0.7157, 0.4946, 0.5881, 0.4986, 0.0389, 0.5075, 0.1215,\n", + " 0.9511, 0.6815, 0.0226, 0.8067, 0.4314, 0.2336, 0.6565, 0.5818,\n", + " 0.1208, 0.3836, 0.3889, 0.2116, 0.8031, 0.5672, 0.6968, 0.6751,\n", + " 0.0253, 0.1864, 0.1113, 0.3296, 0.0842, 0.4428, 0.1943, 0.9705,\n", + " 1.0037, 0.6876, 0.7536, 0.8948, -0.0541, 0.5618, 0.9168, 0.0875,\n", + " 0.3019, 0.4757, 0.1710, 0.4477, 0.4964, 0.8772, 0.5280, 0.6985,\n", + " 0.9231, 0.6817, 0.1286, 0.8583, 0.8095, 0.1873, 0.2678, 0.7685,\n", + " -0.0104, -0.0266, 0.1469, 0.7049, 0.2927, 0.1067, 0.6666, 0.7405,\n", + " 0.7177, 0.0423, 0.9792, 0.4080, 0.0716, 0.4812, 0.8680, 0.7086,\n", + " 0.4330, 0.8850, 0.1029, 0.9927, 0.9456, 0.1963, 0.6637, 0.4111,\n", + " 0.1554, 0.5247, 0.3056, 0.0978, 0.1476, 0.5747, 0.9219, 0.6766,\n", + " 0.2175, 0.8379, 0.6371, 0.1231, 0.6069, 0.8844, 0.2334, 0.4579,\n", + " 0.1541, 0.0589, 0.3108, 0.5925, 0.8122, 0.4257, 0.0512, 0.4932,\n", + " 0.0467, 0.5521, 0.8744, 0.6749, 0.1992, 0.3901, 0.7218, 0.6064,\n", + " 0.0241, 0.1908, 0.1132, 0.8980, 0.9042], requires_grad=True)\n", + "train/loss: 0.4624 valid/loss: 0.5920 train/time: 11.56s valid/time: 2.26s train/acc: 0.8868 valid/acc: 0.6389\n", + "Epoch 24: \n", + "Parameter containing:\n", + "tensor([ 0.6210, 0.3825, 0.6229, 0.6781, 0.9002, 0.5961, 0.4708, 0.1606,\n", + " 0.6804, 0.1338, 0.5239, 0.4001, 0.5810, 0.8797, 0.6094, 0.7109,\n", + " 0.6856, 0.1618, 0.2882, 0.9563, -0.0141, 0.4672, 0.4369, 0.8584,\n", + " 0.4766, 0.6183, 0.4830, 0.2091, 0.1896, 0.2925, 0.0473, 0.1845,\n", + " 0.6177, 0.8401, 0.5293, 0.3139, 0.7378, 0.2166, 0.3817, 0.1981,\n", + " 0.3317, 0.0679, 0.6894, 0.5875, 0.6974, 0.7988, 0.7206, 0.6000,\n", + " 0.5555, 0.5712, 0.7221, 0.6917, 0.8778, 0.6848, 0.3737, 0.4393,\n", + " 0.2511, 0.8226, 0.5516, 0.9256, 0.7536, -0.0023, 0.5600, 1.0603,\n", + " 0.9396, 0.6207, 0.5953, 0.1460, 0.4573, 0.7263, 0.0753, 0.8846,\n", + " 0.1889, 0.7107, 0.4940, 0.5881, 0.4976, 0.0224, 0.5005, 0.1138,\n", + " 0.9580, 0.6758, 0.0220, 0.7858, 0.4326, 0.2263, 0.6491, 0.5765,\n", + " 0.1205, 0.3718, 0.3824, 0.2190, 0.8088, 0.5705, 0.7023, 0.6798,\n", + " 0.0250, 0.1852, 0.1145, 0.3250, 0.0886, 0.4455, 0.1781, 0.9631,\n", + " 0.9886, 0.6868, 0.7553, 0.8941, -0.0515, 0.5615, 0.9165, 0.0907,\n", + " 0.3027, 0.4742, 0.1712, 0.4456, 0.4943, 0.8760, 0.5310, 0.7015,\n", + " 0.9236, 0.6846, 0.1249, 0.8572, 0.8105, 0.1819, 0.2642, 0.7716,\n", + " -0.0054, -0.0227, 0.1509, 0.7063, 0.2879, 0.1039, 0.6621, 0.7426,\n", + " 0.7158, 0.0406, 0.9764, 0.3988, 0.0732, 0.4931, 0.8635, 0.7106,\n", + " 0.4422, 0.8796, 0.1086, 0.9749, 0.9489, 0.1844, 0.6589, 0.4144,\n", + " 0.1690, 0.5244, 0.3015, 0.0926, 0.1555, 0.5752, 0.9224, 0.6830,\n", + " 0.2242, 0.8432, 0.6282, 0.1221, 0.5959, 0.8854, 0.2405, 0.4680,\n", + " 0.1481, 0.0605, 0.3050, 0.5923, 0.8131, 0.4257, 0.0525, 0.4930,\n", + " 0.0480, 0.5551, 0.8737, 0.6759, 0.2006, 0.3905, 0.7235, 0.6059,\n", + " 0.0236, 0.1895, 0.1070, 0.9003, 0.9081], requires_grad=True)\n", + "train/loss: 0.3325 valid/loss: 0.5828 train/time: 10.97s valid/time: 2.54s train/acc: 0.8774 valid/acc: 0.5833\n", + "Epoch 25: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3845, 0.6179, 0.6777, 0.9273, 0.5935, 0.4738, 0.1517,\n", + " 0.6686, 0.1225, 0.5065, 0.4095, 0.5883, 0.8810, 0.6165, 0.7161,\n", + " 0.6853, 0.1571, 0.2926, 0.9635, -0.0104, 0.4666, 0.4336, 0.8542,\n", + " 0.4788, 0.6189, 0.4819, 0.2049, 0.1922, 0.2898, 0.0468, 0.1918,\n", + " 0.6209, 0.8364, 0.5285, 0.3146, 0.7378, 0.2114, 0.3679, 0.1942,\n", + " 0.3418, 0.0605, 0.6761, 0.6080, 0.7142, 0.8139, 0.7252, 0.5968,\n", + " 0.5465, 0.5518, 0.7314, 0.6858, 0.8780, 0.6796, 0.3744, 0.4353,\n", + " 0.2593, 0.8211, 0.5536, 0.9241, 0.7536, -0.0067, 0.5619, 1.0597,\n", + " 0.9346, 0.6248, 0.5921, 0.1479, 0.4488, 0.7223, 0.0730, 0.8856,\n", + " 0.1834, 0.7090, 0.4937, 0.5881, 0.4972, 0.0225, 0.4992, 0.1059,\n", + " 0.9532, 0.6714, 0.0221, 0.7916, 0.4244, 0.2341, 0.6556, 0.5705,\n", + " 0.1202, 0.3694, 0.3895, 0.2197, 0.8105, 0.5762, 0.7014, 0.6771,\n", + " 0.0317, 0.1879, 0.1112, 0.3171, 0.1200, 0.4349, 0.1769, 0.9631,\n", + " 0.9877, 0.6903, 0.7483, 0.8993, -0.0561, 0.5655, 0.9146, 0.0914,\n", + " 0.3061, 0.4831, 0.1739, 0.4305, 0.5011, 0.8744, 0.5221, 0.7001,\n", + " 0.9377, 0.6769, 0.1278, 0.8659, 0.8024, 0.1810, 0.2582, 0.7689,\n", + " -0.0046, -0.0091, 0.1487, 0.7081, 0.2849, 0.1065, 0.6639, 0.7407,\n", + " 0.7107, 0.0407, 0.9797, 0.4022, 0.0764, 0.4865, 0.8669, 0.7088,\n", + " 0.4385, 0.8814, 0.1060, 0.9907, 0.9420, 0.1918, 0.6603, 0.4115,\n", + " 0.1666, 0.5238, 0.2983, 0.0921, 0.1565, 0.5760, 0.9187, 0.6840,\n", + " 0.2319, 0.8522, 0.6237, 0.1260, 0.5875, 0.8869, 0.2439, 0.4723,\n", + " 0.1586, 0.0593, 0.3155, 0.5814, 0.8085, 0.4306, 0.0416, 0.4928,\n", + " 0.0459, 0.5581, 0.8691, 0.6771, 0.2040, 0.3886, 0.7161, 0.6074,\n", + " 0.0167, 0.1783, 0.1031, 0.9107, 0.9149], requires_grad=True)\n", + "train/loss: 0.3603 valid/loss: 0.5791 train/time: 10.78s valid/time: 2.25s train/acc: 0.8679 valid/acc: 0.6389\n", + "Epoch 26: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3868, 0.6172, 0.6717, 0.9097, 0.5945, 0.4780, 0.1521,\n", + " 0.6733, 0.1262, 0.5016, 0.4050, 0.5866, 0.8761, 0.6131, 0.7121,\n", + " 0.6880, 0.1616, 0.2913, 0.9620, -0.0117, 0.4698, 0.4339, 0.8580,\n", + " 0.4791, 0.6174, 0.4827, 0.1988, 0.1960, 0.2908, 0.0487, 0.1936,\n", + " 0.6309, 0.8356, 0.5287, 0.3179, 0.7329, 0.2219, 0.3783, 0.1969,\n", + " 0.3246, 0.0677, 0.6972, 0.5848, 0.6994, 0.8022, 0.7176, 0.6020,\n", + " 0.5625, 0.5682, 0.7116, 0.6965, 0.8883, 0.6926, 0.3780, 0.4411,\n", + " 0.2461, 0.8173, 0.5527, 0.9241, 0.7536, -0.0023, 0.5594, 1.0628,\n", + " 0.9343, 0.6194, 0.5972, 0.1451, 0.4657, 0.7107, 0.0715, 0.8811,\n", + " 0.1838, 0.7072, 0.4937, 0.5881, 0.4982, 0.0362, 0.4944, 0.0972,\n", + " 0.9533, 0.6753, 0.0388, 0.8006, 0.4256, 0.2348, 0.6568, 0.5619,\n", + " 0.1187, 0.3909, 0.3925, 0.2144, 0.8063, 0.5509, 0.6882, 0.6707,\n", + " 0.0319, 0.1831, 0.1216, 0.3207, 0.0938, 0.4394, 0.1924, 0.9747,\n", + " 1.0036, 0.6847, 0.7570, 0.8945, -0.0470, 0.5535, 0.9162, 0.0944,\n", + " 0.3133, 0.4693, 0.1678, 0.4475, 0.4918, 0.8654, 0.5376, 0.6989,\n", + " 0.9256, 0.6853, 0.1187, 0.8583, 0.8130, 0.1743, 0.2653, 0.7690,\n", + " -0.0057, -0.0253, 0.1551, 0.7099, 0.2913, 0.1078, 0.6632, 0.7432,\n", + " 0.7101, 0.0314, 0.9796, 0.4039, 0.0823, 0.4847, 0.8635, 0.7081,\n", + " 0.4402, 0.8794, 0.1125, 0.9959, 0.9450, 0.1987, 0.6565, 0.4105,\n", + " 0.1685, 0.5256, 0.2999, 0.0925, 0.1559, 0.5726, 0.9140, 0.6827,\n", + " 0.2293, 0.8563, 0.6282, 0.1272, 0.5898, 0.8846, 0.2422, 0.4717,\n", + " 0.1605, 0.0487, 0.3151, 0.5877, 0.8161, 0.4320, 0.0549, 0.4936,\n", + " 0.0486, 0.5515, 0.8704, 0.6739, 0.1951, 0.3893, 0.7263, 0.6077,\n", + " 0.0222, 0.1913, 0.0987, 0.9164, 0.9075], requires_grad=True)\n", + "train/loss: 0.3233 valid/loss: 0.5915 train/time: 10.78s valid/time: 2.56s train/acc: 0.8679 valid/acc: 0.6667\n", + "Epoch 27: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3863, 0.6171, 0.6678, 0.9111, 0.5995, 0.4739, 0.1532,\n", + " 0.6726, 0.1274, 0.5002, 0.4029, 0.5917, 0.8923, 0.6260, 0.7197,\n", + " 0.6816, 0.1526, 0.2958, 0.9620, -0.0073, 0.4749, 0.4310, 0.8737,\n", + " 0.4876, 0.6283, 0.4868, 0.1796, 0.2009, 0.3028, 0.0468, 0.1702,\n", + " 0.6563, 0.8334, 0.5353, 0.3316, 0.7430, 0.2192, 0.3822, 0.1986,\n", + " 0.3387, 0.0686, 0.6828, 0.5842, 0.7014, 0.7924, 0.7271, 0.5968,\n", + " 0.5505, 0.5726, 0.7200, 0.6885, 0.8813, 0.6839, 0.3735, 0.4418,\n", + " 0.2533, 0.8210, 0.5506, 0.9172, 0.7536, 0.0019, 0.5495, 1.0637,\n", + " 0.9356, 0.6182, 0.6042, 0.1484, 0.4683, 0.7150, 0.0716, 0.8804,\n", + " 0.1804, 0.6898, 0.4932, 0.5881, 0.4989, 0.0233, 0.4906, 0.0992,\n", + " 0.9511, 0.6738, 0.0294, 0.7918, 0.4279, 0.2380, 0.6605, 0.5573,\n", + " 0.1149, 0.3864, 0.3821, 0.2145, 0.8042, 0.5619, 0.6893, 0.6685,\n", + " 0.0337, 0.1882, 0.1119, 0.3222, 0.0896, 0.4432, 0.1838, 0.9707,\n", + " 0.9957, 0.6933, 0.7481, 0.9016, -0.0574, 0.5628, 0.9147, 0.0860,\n", + " 0.3062, 0.4783, 0.1749, 0.4403, 0.5021, 0.8737, 0.5289, 0.6967,\n", + " 0.9233, 0.6916, 0.1111, 0.8699, 0.7972, 0.1954, 0.2612, 0.7673,\n", + " -0.0074, -0.0212, 0.1455, 0.7042, 0.2947, 0.1094, 0.6654, 0.7438,\n", + " 0.7118, 0.0453, 0.9770, 0.3958, 0.0784, 0.4932, 0.8579, 0.7087,\n", + " 0.4380, 0.8740, 0.1142, 0.9825, 0.9544, 0.1893, 0.6495, 0.4105,\n", + " 0.1780, 0.5308, 0.3050, 0.1060, 0.1532, 0.5642, 0.9109, 0.6835,\n", + " 0.2121, 0.8556, 0.6469, 0.1368, 0.6001, 0.8754, 0.2403, 0.4651,\n", + " 0.1578, 0.0539, 0.3082, 0.5895, 0.8055, 0.4260, 0.0468, 0.4917,\n", + " 0.0471, 0.5524, 0.8732, 0.6759, 0.2015, 0.3959, 0.7224, 0.6060,\n", + " 0.0115, 0.1821, 0.1014, 0.8977, 0.9087], requires_grad=True)\n", + "train/loss: 0.8285 valid/loss: 0.5859 train/time: 10.78s valid/time: 2.22s train/acc: 0.8679 valid/acc: 0.6389\n", + "Epoch 28: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3879, 0.6152, 0.6770, 0.9064, 0.6080, 0.4811, 0.1569,\n", + " 0.6822, 0.1193, 0.4996, 0.4105, 0.6049, 0.8716, 0.6313, 0.7208,\n", + " 0.6869, 0.1533, 0.3033, 0.9832, -0.0025, 0.4741, 0.4313, 0.8787,\n", + " 0.4888, 0.6252, 0.4859, 0.1794, 0.1944, 0.2991, 0.0434, 0.1736,\n", + " 0.6521, 0.8340, 0.5352, 0.3433, 0.7443, 0.2217, 0.3926, 0.1948,\n", + " 0.3431, 0.0582, 0.6788, 0.5816, 0.6966, 0.7829, 0.7338, 0.5961,\n", + " 0.5483, 0.5713, 0.7188, 0.6731, 0.8733, 0.6674, 0.3854, 0.4305,\n", + " 0.2537, 0.8091, 0.5600, 0.9135, 0.7536, -0.0202, 0.5734, 1.0695,\n", + " 0.9208, 0.6298, 0.5784, 0.1415, 0.4576, 0.7188, 0.0717, 0.8679,\n", + " 0.1791, 0.6773, 0.4930, 0.5881, 0.4861, 0.0193, 0.5178, 0.1096,\n", + " 0.9507, 0.6834, 0.0173, 0.8159, 0.4492, 0.2231, 0.6431, 0.5452,\n", + " 0.1120, 0.3783, 0.3770, 0.2082, 0.7974, 0.5884, 0.6861, 0.6575,\n", + " 0.0463, 0.1995, 0.0948, 0.3147, 0.0725, 0.4368, 0.1737, 0.9946,\n", + " 0.9890, 0.6670, 0.7485, 0.8741, -0.0613, 0.5510, 0.8951, 0.0796,\n", + " 0.3087, 0.4705, 0.1723, 0.4462, 0.5042, 0.8611, 0.5182, 0.6723,\n", + " 0.9043, 0.6978, 0.1120, 0.8641, 0.7860, 0.2083, 0.2653, 0.7874,\n", + " -0.0140, -0.0191, 0.1488, 0.7083, 0.2941, 0.0880, 0.6767, 0.7547,\n", + " 0.6916, 0.0488, 0.9703, 0.3989, 0.0777, 0.4848, 0.8613, 0.7122,\n", + " 0.4334, 0.8746, 0.1071, 0.9941, 0.9541, 0.1986, 0.6508, 0.4048,\n", + " 0.1740, 0.5353, 0.3057, 0.1229, 0.1592, 0.5575, 0.9100, 0.6853,\n", + " 0.2005, 0.8616, 0.6545, 0.1357, 0.6020, 0.8647, 0.2373, 0.4648,\n", + " 0.1615, 0.0570, 0.3098, 0.5875, 0.8096, 0.4409, 0.0274, 0.4828,\n", + " 0.0252, 0.5274, 0.8570, 0.6495, 0.1849, 0.3733, 0.7026, 0.6215,\n", + " 0.0124, 0.2004, 0.0776, 0.9030, 0.9007], requires_grad=True)\n", + "train/loss: 0.6068 valid/loss: 0.5817 train/time: 10.91s valid/time: 2.43s train/acc: 0.8491 valid/acc: 0.6944\n", + "Epoch 29: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3899, 0.6147, 0.6887, 0.8977, 0.6192, 0.4968, 0.1451,\n", + " 0.6680, 0.1272, 0.4977, 0.4017, 0.5746, 0.8732, 0.6158, 0.7127,\n", + " 0.6966, 0.1631, 0.3009, 0.9802, -0.0051, 0.4767, 0.4314, 0.8820,\n", + " 0.4881, 0.6254, 0.4863, 0.1803, 0.1953, 0.3010, 0.0425, 0.1765,\n", + " 0.6505, 0.8340, 0.5335, 0.3428, 0.7354, 0.2238, 0.3805, 0.2011,\n", + " 0.3100, 0.0590, 0.7130, 0.5672, 0.6958, 0.8047, 0.7166, 0.6062,\n", + " 0.5774, 0.5646, 0.6926, 0.6917, 0.8757, 0.6850, 0.3747, 0.4354,\n", + " 0.2469, 0.8147, 0.5648, 0.9179, 0.7536, -0.0056, 0.5589, 1.0639,\n", + " 0.9274, 0.6197, 0.5954, 0.1384, 0.4662, 0.7223, 0.0798, 0.8772,\n", + " 0.1871, 0.6823, 0.4919, 0.5881, 0.4871, 0.0249, 0.5118, 0.1040,\n", + " 0.9580, 0.6749, 0.0274, 0.8114, 0.4278, 0.2364, 0.6537, 0.5412,\n", + " 0.0930, 0.3810, 0.3917, 0.2070, 0.8015, 0.5684, 0.7045, 0.6793,\n", + " 0.0017, 0.1964, 0.0784, 0.3119, 0.0790, 0.4340, 0.1764, 0.9912,\n", + " 0.9918, 0.6944, 0.7588, 0.9005, -0.0390, 0.5533, 0.9112, 0.1138,\n", + " 0.3235, 0.4726, 0.1710, 0.4323, 0.4864, 0.8563, 0.5345, 0.7069,\n", + " 0.9140, 0.7038, 0.1017, 0.8591, 0.8056, 0.1912, 0.2695, 0.7606,\n", + " -0.0126, -0.0236, 0.1383, 0.7472, 0.2737, 0.1163, 0.6621, 0.7342,\n", + " 0.7005, 0.0195, 0.9714, 0.3996, 0.0849, 0.4901, 0.8659, 0.7025,\n", + " 0.4368, 0.8833, 0.1170, 1.0081, 0.9501, 0.1967, 0.6588, 0.4120,\n", + " 0.1757, 0.5256, 0.2974, 0.1209, 0.1818, 0.5719, 0.9332, 0.6991,\n", + " 0.2207, 0.8376, 0.6263, 0.1280, 0.5927, 0.8812, 0.2665, 0.4833,\n", + " 0.1598, 0.0470, 0.3091, 0.5859, 0.8227, 0.4326, 0.0316, 0.4722,\n", + " 0.0467, 0.5599, 0.8553, 0.6592, 0.1957, 0.3952, 0.7090, 0.6245,\n", + " 0.0186, 0.1752, 0.0732, 0.9004, 0.8849], requires_grad=True)\n", + "train/loss: 0.3521 valid/loss: 0.5778 train/time: 11.53s valid/time: 2.59s train/acc: 0.8774 valid/acc: 0.6667\n", + "Epoch 30: \n", + "Parameter containing:\n", + "tensor([ 0.6209, 0.3910, 0.6163, 0.6861, 0.9147, 0.6223, 0.5030, 0.1440,\n", + " 0.6729, 0.1438, 0.4941, 0.3840, 0.5813, 0.8903, 0.6350, 0.7180,\n", + " 0.6859, 0.1550, 0.3046, 0.9739, -0.0012, 0.4758, 0.4272, 0.8898,\n", + " 0.4906, 0.6222, 0.4875, 0.1767, 0.1940, 0.3042, 0.0394, 0.1810,\n", + " 0.6481, 0.8311, 0.5330, 0.3443, 0.7548, 0.2204, 0.3653, 0.2033,\n", + " 0.3462, 0.0591, 0.6681, 0.5891, 0.7254, 0.8276, 0.7451, 0.6014,\n", + " 0.5408, 0.5268, 0.7373, 0.6862, 0.8679, 0.6776, 0.3725, 0.4302,\n", + " 0.2536, 0.8165, 0.5547, 0.9277, 0.7536, -0.0086, 0.5566, 1.0656,\n", + " 0.9243, 0.6242, 0.5937, 0.1408, 0.4617, 0.7268, 0.0718, 0.8766,\n", + " 0.1777, 0.6799, 0.4930, 0.5881, 0.4891, 0.0234, 0.5087, 0.1034,\n", + " 0.9483, 0.6713, 0.0278, 0.8013, 0.4168, 0.2456, 0.6629, 0.5363,\n", + " 0.1042, 0.3705, 0.3812, 0.2116, 0.8040, 0.5745, 0.6993, 0.6709,\n", + " 0.0184, 0.1964, 0.0905, 0.3104, 0.0955, 0.4275, 0.1722, 0.9863,\n", + " 0.9879, 0.6988, 0.7474, 0.9076, -0.0496, 0.5514, 0.9065, 0.1000,\n", + " 0.3268, 0.4755, 0.1716, 0.4412, 0.4981, 0.8536, 0.5337, 0.6959,\n", + " 0.9292, 0.6905, 0.1120, 0.8621, 0.7965, 0.1978, 0.2605, 0.7736,\n", + " -0.0106, -0.0089, 0.1456, 0.7169, 0.2764, 0.1040, 0.6690, 0.7484,\n", + " 0.6970, 0.0452, 0.9714, 0.3999, 0.0820, 0.4902, 0.8673, 0.7028,\n", + " 0.4369, 0.8843, 0.1187, 1.0122, 0.9506, 0.1979, 0.6587, 0.4119,\n", + " 0.1772, 0.5206, 0.2944, 0.1051, 0.1732, 0.5745, 0.9293, 0.6869,\n", + " 0.2328, 0.8392, 0.6197, 0.1214, 0.5892, 0.8928, 0.2624, 0.4776,\n", + " 0.1601, 0.0378, 0.3087, 0.5952, 0.8138, 0.4348, 0.0255, 0.4699,\n", + " 0.0406, 0.5426, 0.8549, 0.6610, 0.1836, 0.4034, 0.7042, 0.6237,\n", + " 0.0093, 0.1787, 0.0630, 0.9063, 0.8751], requires_grad=True)\n", + "train/loss: 0.3604 valid/loss: 0.5726 train/time: 12.92s valid/time: 2.74s train/acc: 0.8774 valid/acc: 0.7222\n", + "\n", + "Training completed!\n", + "train/time: 15m60s train/time_per_epoch: 32.00s train/time_per_step: 1.45s valid/time: 1m21s valid/time_per_eval: 2.70s\n" ] } ], @@ -546,14 +1235,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "2df2f3c7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(29.4, 1.0, 'early stopping')" + "Text(7.4, 0.7222222222222222, 'early stopping')" ] }, "execution_count": 14, @@ -562,7 +1251,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAIjCAYAAAAUfdYJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAx3ZJREFUeJzs3Qd0k2UXB/B/96QttJTRlj3K3jIUQbbKHiIOEMHtJwruhRsXDhRBkaWIoIC4UaaCgMjee7WUthS6d5t+5z5vE1poS0eSN2n+v3NymqQZT0NJet97n3ud8vLy8kBERERERERkZc7WfkIiIiIiIiIiwYCUiIiIiIiIdMGAlIiIiIiIiHTBgJSIiIiIiIh0wYCUiIiIiIiIdMGAlIiIiIiIiHTBgJSIiIiIiIh0wYCUiIiIiIiIdMGAlIiIiIiIiHTBgJRIR/fccw/q1atXrvu+8sorcHJyMvuaiIio8jh9+rT6rFiwYEG5Pj/kdnJ7c+rZs6c6EREJBqRExXwAl+a0YcMGvZdq9xYvXoyPPvpI72UQEelu8ODB8Pb2RnJycrG3ufPOO+Hu7o6LFy/Clh08eFAFshIQV0aV/ecjsianvLy8PKs+I5EdWLRoUaHLX331FVavXo2vv/660PV9+/ZFjRo1yv082dnZMBgM8PDwKPN9c3Jy1MnT0xP2bODAgdi/fz8/1InI4S1duhS33347Fi5ciLFjx171/bS0NAQHB6NXr1746aefSvWY8t5av359zJ8/X1XllPXzQw6+Tp06tcxZ0mXLlmHUqFFYv379VdnQrKws9VUCa3tV0s9HRGXjWsbbEzmEu+66q9DlrVu3qoD0yuuL+mNBjm6XlpubW7nX6Orqqk5ERFR5MqRVqlRRlSNFBaQ//vgjUlNTVZa0IvT+/LDnQJSIzI8lu0TlJEdEW7ZsiR07duDGG29Ugejzzz9v+qPh1ltvRe3atVX2s2HDhnj99deRm5tb4h5S416f999/H1988YW6n9y/U6dO+O+//wrdt6g9QHL50UcfxcqVK9Xa5L4tWrTAqlWrrlq/lBt37NhRHSGX5/n8889Lva/o2LFjGDFiBGrWrKnuHxoaqo7qJyYmXpVp7tChA7y8vFCtWjV1m4iIiEKv4a+//oozZ86YyqDLu6eWiMjeyXvl8OHDsXbtWsTGxl71fQlUJWCVwPXSpUt48skn0apVK/j6+sLPzw8333wz9uzZc83nKeq9PjMzE0888QSqV69ueo7IyMir7ivv1w8//DCaNm2q1hsYGKgyhQWrXGS/qlwnbrrppqu2uRS1h1R+3gkTJqiqI/lcadOmjcoUF1SWz8jiqpJeffVVNG7cWD2HrP2GG25QB5wLOnz4MEaOHKk+t+R28llZMCN9rZ+PiMqG6RWiCpA9PPIHgARakj01lu/Kh5X8gTB58mT1dd26dXj55ZeRlJSE995775qPK390yB6iBx54QH3Ivfvuu+qPlJMnT14zq7pp0yasWLFC/cEgf1TMmDFDBY9nz55VH75i165dGDBgAGrVqqU+nCVQfu2119QfItcipVb9+/dXf7z873//U0HpuXPn8MsvvyAhIQH+/v7qdm+++SZeeukl3HbbbZg4cSIuXLiATz75RAXv8vwBAQF44YUXVBArf/R8+OGH6n7yehEROSrJfkog9t1336kDjEYSgP7xxx8YM2aMCgQPHDigDj5KYCQluTExMerAYo8ePdT+RjkgWhbyPi0HEe+44w5069ZNfW7JgdUrSeC3efNm9bknByMlSJw1a5YKMOV55eCsvM8/9thj6vNHDtQ2a9ZM3df49Urp6enq/sePH1c/s/w833//vTpoK58rkyZNMstnpATi06ZNUz/rddddpz6Tt2/fjp07d6otOEJe1+uvvx4hISF49tln4ePjo/4thg4diuXLl2PYsGFl/vmI6BpkDykRleyRRx6RvdaFruvRo4e6bvbs2VfdPi0t7arrHnjggTxvb++8jIwM03Xjxo3Lq1u3runyqVOn1GMGBgbmXbp0yXT9jz/+qK7/+eefTddNnTr1qjXJZXd397zjx4+brtuzZ4+6/pNPPjFdN2jQILWWc+fOma47duxYnqur61WPeaVdu3ap23z//ffF3ub06dN5Li4ueW+++Wah6/ft26eeo+D1t956a6HXgIjIkeXk5OTVqlUrr2vXroWul88aee/9448/1GX5LMnNzS10G/kM8fDwyHvttdcKXSf3mz9/frGfH7t371aXH3744UKPd8cdd6jr5fYlfb5t2bJF3e6rr74yXSefEXLd+vXrr7q9fH7Kyeijjz5St120aJHpuqysLPUa+Pr65iUlJZX5M7Iobdq0UZ85Jendu3deq1atCn1WGwyGvG7duuU1bty4VD8fEZUNS3aJ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SIsgR5+Nv3R+fn56L4eIyGEkJSWpoMv4PkyX8bOJiEgf/GyyLAakRTCWQskHPj/0iYisjyWpV+NnExGRvvjZZBksgiYiIiIiIiJdMCAlIiIiIiIiXTAgJSIiIiIiIl0wICUiIiIiIiJdMCAlIiIiIiIiXTAgNbOEtCxMWPAf+nzwFwyGPL2XQ0REREREZLMYkJqZr4crNh6Pw/HYFETEp+m9HCIiIiIiIpvFgNTMXF2c0TjYV50/HJ2s93KIiIiIiIhsFgNSC2has4r6eoQBKRERERERUbEYkFpAOANSIiIiIiKia2JAagFNa/qpr0diGJASEREREREVhwGpBTStoWVIT8WlIjMnV+/lEBERERER2SQGpBZQw88D/l5uyDXkqW67REREREREdDUGpBbg5OTExkZERERERETXwIDUQtjYiIiIiIiIqGQMSC2kSf4+UjY2IiIive2O3Y3H1j2Gt/59S++lEBERFeJa+CKZCzOkRERkKzJyM7A+Yj3q+tXVeylERESFMENqIU3yA9LziRlITMvWezlEROTAGgU0Ul/PJp1Fek663sshIiIyYUBqIX6ebggJ8FLnWbZLRER6CvIKQjXPashDHk4mnNR7OURERCYMSC3I1GmXASkREemscUBj9fVYwjG9l0JERGTCgNQajY2ik/ReChERObhGVbWy3WPxDEiJiMh2MCC1IDY2IiIim8uQMiAlIiIbwoDUCiW7h6OTkZeXp/dyiIjIgTWuypJdIiKyPQxILahhdV+4OjshOSNHddslIiLSS8OAhuprXHoc4jPi9V4OERGRwoDUgtxdndGguo86z8ZGRESkJx83H4T4hqjzxxOO670cIiIihQGp1RobMSAlIiLbKNs9Gn9U76UQEREpDEgtjI2NiIjI1hobMUNKRES2QveAdObMmahXrx48PT3RuXNnbNu2rcTbJyQk4JFHHkGtWrXg4eGBJk2a4LfffjN9/5VXXoGTk1OhU3h4OPTStKafqbERERGRTTQ2YqddIiKyEa56PvnSpUsxefJkzJ49WwWjH330Efr3748jR44gODj4qttnZWWhb9++6nvLli1DSEgIzpw5g4CAgEK3a9GiBdasWWO67OrqqnuG9ERsCrJzDXBz0f0YABEROaiCGVLp/i4HbYmIiBw2IP3ggw9w3333Yfz48eqyBKa//vor5s2bh2efffaq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g+mNR0bkj4CIiAj4+fmhMuHPZr8q88/Hn80xfzb5SJIP/Nq1a8PZmbtKCuJnU+XBn81+Veafjz9b8fjZZFnMkBZBftFCQ0OL/J78Ele2/6RG/NnsV2X++fizOd7PxqPPReNnU+XDn81+Veafjz9b0fjZZDkM8YmIiIiIiEgXDEiJiIiIiIhIFwxIS8nDwwNTp05VXysb/mz2qzL/fPzZ7FNl/tlsUWV+vfmz2afK/LNV9p+PPxvphU2NiIiIiIiISBfMkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuGJASERERERGRLhiQEhERERERkS4YkBIREREREZEuXPV5WttmMBgQFRWFKlWqwMnJSe/lEBE5jLy8PCQnJ6N27dpwduYx04L42UREpA9+NlkWA9IiyAd+WFiY3ssgInJYERERCA0N1XsZNoWfTURE+uJnk2UwIC2CHH02/tL5+fnpvRwiIoeRlJSkgi7j+zBdxs8mIiJ98LPJshiQFsFYCiUf+PzQJyKyPpakXo2fTURE+uJnk2WwCJqIiIiIiOgaWrVqhY8++giV0SuvvIK2bdvq8twMSImIiIiIyG7k5uZiw4YN+Pbbb9VXuWzvNmzYoDKwCQkJujz/k08+ibVr1+ry3DYfkP79998YNGiQ6mol/0grV64s1T9o+/bt4eHhgUaNGmHBggVWWSsREREREVnOihUr1N/3N910E+644w71VS7L9ZaSlZVlsce2Fb6+vggMDNTluW0+IE1NTUWbNm0wc+bMUt3+1KlTuPXWW9Uv5+7du/H4449j4sSJ+OOPPyy+ViIiIiIisgwJ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", + "image/png": "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xJ6rPMibVqlSpTx/Jv8glvYLp8fXZr4s+fXxtVnfa2OPVd54brI8fG3my5JfH19b8c5NvCxIRERERERkAAyuiIiIiIiIDIDBVQE5OTlh0qRJ6t7S8LWZL0t+fXxt5smSX5spsuT3m6/NPFnya7P018fXZhgsaEFERERERGQA7LkiIiIiIiIyAAZXREREREREBsDgioiIiIiIyAAYXBERERERERkAgysiIiIiIiIDYHBFRERERERkAAyuiIiIiIiIDIDBFRERERERkQEwuCIiIiIiIjIABldEREREREQGwOCKiIiIiIjIABhcERERERERGQCDKyIiIiIiIgNgcEVERERERGQADK6IiIiIiIgMgMEVERERERGRATC4IiIiIiIiMgAGV0RERERERAbA4IqIiIiIiMgAGFwREREREREZAIMrIiIiIiIiA2BwRUREREREZAAMroiIiIiIiAyAwRUREREREZEBMLgiIiIiIiIyAAZXREREREREBsDgioiIiIiIyAAYXBERERERERkAgysiIiIiIiIDYHBFRERERERkAAyuiIiIiIiIDIDBFRERERERkQEwuCIiIiIiIjIABldEREREREQGYG+Ig1iazMxMhISEoFSpUrCxsdG6OUREViMrKwtxcXGoWLEibG15/S8nnpuIiEz/3MTgKg9y8qpcubLWzSAislpBQUGoVKmS1s0wKTw3ERGZ/rmJwVUe5Kqg/g308PDQujlERFYjNjZWBRD6z2G6jecmIiLTPzcxuMqDPt1CTl48gRERlTymvd2N5yYiItM/NzGhnYiIiIiIyADMIriaOXMm/P394ezsjFatWuHAgQP5bpuWlobJkyejRo0aavsmTZpg/fr1JdpeIiIiIiKyPiYfXC1btgxvvvkmJk2ahMOHD6tgqVevXggLC8tz+w8++AA//fQTvv/+e5w+fRovvPAC+vfvjyNHjpR424mIiIiIyHrYZEltQRMmPVUPPvggZsyYkV2KVgaUvfLKK3jvvffu2l5KJI4fPx4vvfRS9rrHH38cLi4uWLRoUYEHrXl6eiImJoZ57UREJYifv/nje0NEZPqfvyZd0CI1NRWHDh3CuHHjstdJbfnu3btj7969ee6TkpKi0gFzksBq165d+T6P7CO3nG8gERGRlnhuIiIyPyYdXEVERCAjIwPly5fPtV4enz17Ns99JGVw2rRp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NUREREREFovBldWkBD6mdUuIiIiIiCwagytLlhABXN2tW2ZKIBERERGRUTG4svSUwKxMoEITwMtf69YQEREREVk0BleW7PStiYPrsUogEREREZGxMbiyVElRwOXtuuX6/bRuDRERERGRxWNwZanOrQcy04Fy9QGfmlq3hoiIiIjI4hkluPL398fkyZMRGBhojMNTQZxhSiARERERkdkHV6+//jr+/PNPVK9eHT169MDSpUuRkpJijKeivKSnAhe36pbr9dG6NUREREREVsFowdXRo0dx4MAB1KtXD6+88goqVKiAl19+GYcPHzbGU1JOwQeB9CTArSxQvqHWrSEiIiIisgpGHXPVvHlzfPfddwgJCcGkSZPw888/48EHH0TTpk0xd+5cZGVlGfPprdflHbr7ah0BGxutW0NEREREZBXsjXnwtLQ0/PXXX/j111/x77//onXr1nj22WcRHByM999/H5s2bcLixYuN2QTrpK8SKMEVERERERGZb8+VpP7lTAVs0KABTp48iV27dmHkyJGYMGGCCqwk8CIDS03QpQWKap20bg0REZHVk0Jf06dPhyX68MMPVUYSERkxuJLUvwsXLuDHH3/EtWvXMHXqVNStWzfXNtWqVcPgwYON8fTW7epeXQl2zyqAl7/WrSEiIiIj2rZtG2xsbBAdHa3J848dOxabN2/W5LmJrCYt8NKlS6hateo9t3Fzc1PpgmRgl7fp7qtzvBUREVFOGRkZ2LlzJ0JDQ1V2TYcOHWBnZ2e050tNTYWjoyMsmbu7u7oRkRF7rsLCwrB///671su6//77zxhPSXcVs+isdUuIiIhMhkwRU7NmTXTp0gVDhw5V9/JY1ovMzExMmTJFZda4uLigSZMmWLFiRa7ATMaN639ep04dfPvtt7me45lnnkG/fv3w6aefomLFimqbO/3vf/9Dnz597hqjXq5cOfzyyy95tv3q1avo27cvvLy81MVpGW6xdu1aXLlyRb0OIT+THixpg5ApcF599VV1XGdnZ7Rv3x4HDx68q8drzZo1aNy4sdpGxsbLMA69efPmoXTp0li5ciVq1aqltunVqxeCgoLyTQvUvweStSQBrLe3N1566SX1GvUkuH3kkUfU+yjvp4y/t+TUSbIuRgmu5I8o5x+enqQIys/ISBIjgdDjuuVqHbRuDRERkUmQAGrgwIFo1KgR9u7d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", "text/plain": [ "
" ] @@ -610,7 +1299,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "463a2d27", "metadata": {}, "outputs": [ @@ -618,7 +1307,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Test Accuracy: 1.0\n" + "Test Accuracy: 0.7777777777777778\n" ] } ], From 955c26aaa7d5a0c54d11823ba709cbfe2351031a Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 3 Jun 2025 08:37:54 +0100 Subject: [PATCH 15/23] minor chanes to the presentation --- docs/tutorials/discocirc_babi6_prep.ipynb | 39 +- docs/tutorials/discocirc_babi6_training.ipynb | 944 +----------------- 2 files changed, 61 insertions(+), 922 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index cfa6aa0..33dd9b9 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "28993a72", "metadata": {}, "outputs": [], @@ -79,9 +79,9 @@ "FFL = False\n", "\n", "# Paths of resulting files for the datasets\n", - "TRAINING_DATASET_FILEPATH = 'circuits/tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'circuits/tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'circuits/tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" + "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", + "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" ] }, { @@ -301,7 +301,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -323,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "af318e63", "metadata": {}, "outputs": [], @@ -357,7 +357,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -458,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -487,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "bcecde44", "metadata": {}, "outputs": [ @@ -536,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "91b7c34d", "metadata": {}, "outputs": [], @@ -573,7 +573,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "0dd61567", "metadata": {}, "outputs": [ @@ -609,20 +609,7 @@ }, { "cell_type": "code", - "execution_count": 19, - "id": "c5a05cce", - "metadata": {}, - "outputs": [], - "source": [ - "# Paths of resulting files for the datasets\n", - "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", - "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" - ] - }, - { - "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "id": "b9f1a78c", "metadata": {}, "outputs": [], diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 760203d..62ee6af 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -34,6 +34,14 @@ "LEARNING_RATE = 0.005" ] }, + { + "cell_type": "markdown", + "id": "88228542", + "metadata": {}, + "source": [ + "To guarantee reproducibility, we make sure to manually seed torch and random." + ] + }, { "cell_type": "code", "execution_count": 2, @@ -67,7 +75,7 @@ "metadata": {}, "source": [ "## 8. Training the Circuits and Tests\n", - "Now that we have the data ready, we proceed with the training as usual, except that, we have to deal with pairs of circuits instead of single circuits, which will be accommodated by overriding the forward() method in the model." + "Now that we have the data ready, we proceed with the training as usual. However, we need to override the forward() method to deal with pairs of circuits instead of single circuits." ] }, { @@ -75,16 +83,7 @@ "execution_count": null, "id": "c6023fa1", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "import pickle\n", "\n", @@ -103,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "1565fb9d", "metadata": {}, "outputs": [], @@ -164,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "id": "6857d72a", "metadata": {}, "outputs": [ @@ -174,12 +173,13 @@ "106" ] }, - "execution_count": 6, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "# this is strictly for debugging and should be removed once cleared\n", "len(training_answers)" ] }, @@ -221,7 +221,7 @@ "id": "549f1f68", "metadata": {}, "source": [ - "The way circuits are stored in our current example is as pairs. However, when initializing circuits, one has to simply pass all the circuits to be initilised to the model (as seen in later cells). Therefore, for the initialisation step, we will create a new collection of circuits that includes all the circuits from the pairs of circuits that we originally have." + "The way circuits are stored in our current example is as pairs. However, we need to pass all the circuits to the model for initialization. Therefore, we will create a new collection of circuits that includes all the circuits from the pairs of circuits that we originally have." ] }, { @@ -244,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 16, "id": "d1fcdbe8", "metadata": {}, "outputs": [ @@ -252,36 +252,39 @@ "data": { "text/plain": [ "Parameter containing:\n", - "tensor([0.6147, 0.3810, 0.6371, 0.4745, 0.7136, 0.6190, 0.4425, 0.0958, 0.6142,\n", - " 0.0573, 0.5657, 0.5332, 0.3901, 0.9088, 0.5334, 0.7073, 0.7116, 0.2050,\n", - " 0.3078, 0.9809, 0.0103, 0.4660, 0.4604, 0.8547, 0.4525, 0.6317, 0.4760,\n", - " 0.2200, 0.2166, 0.2571, 0.0458, 0.1755, 0.6177, 0.8291, 0.5246, 0.2708,\n", - " 0.7197, 0.3081, 0.3892, 0.2259, 0.3430, 0.0367, 0.7133, 0.6944, 0.5993,\n", - " 0.7455, 0.7119, 0.5221, 0.5530, 0.5382, 0.7668, 0.8359, 0.8591, 0.7898,\n", - " 0.3781, 0.4777, 0.3984, 0.7909, 0.5555, 0.9628, 0.7536, 0.0727, 0.6463,\n", - " 0.9804, 0.9441, 0.4921, 0.6659, 0.0310, 0.3406, 0.7438, 0.0445, 0.9356,\n", - " 0.1712, 0.6581, 0.4811, 0.5881, 0.5484, 0.0326, 0.3926, 0.1839, 0.9251,\n", - " 0.4386, 0.0021, 0.6211, 0.7171, 0.2762, 0.4531, 0.7162, 0.1889, 0.2357,\n", - " 0.4518, 0.1489, 0.8073, 0.5409, 0.7992, 0.7677, 0.1147, 0.1884, 0.1580,\n", - " 0.3393, 0.3173, 0.4194, 0.0163, 0.7111, 0.7837, 0.6585, 0.8177, 0.8756,\n", - " 0.0064, 0.5755, 0.9638, 0.1376, 0.2774, 0.4737, 0.1890, 0.4058, 0.4261,\n", - " 0.9455, 0.4686, 0.7711, 0.8661, 0.7228, 0.0652, 0.8748, 0.8297, 0.1416,\n", - " 0.3217, 0.8403, 0.0139, 0.0618, 0.1611, 0.6558, 0.2958, 0.0541, 0.6938,\n", - " 0.7529, 0.6873, 0.0716, 0.9869, 0.4623, 0.0241, 0.4247, 0.8266, 0.7303,\n", - " 0.4947, 0.8525, 0.0438, 0.8469, 0.9963, 0.1960, 0.6072, 0.4194, 0.0779,\n", - " 0.4956, 0.3324, 0.0729, 0.1357, 0.5109, 0.9635, 0.6790, 0.1673, 0.8449,\n", - " 0.5410, 0.0114, 0.5237, 0.8210, 0.2060, 0.4770, 0.2509, 0.1057, 0.2159,\n", - " 0.5502, 0.8232, 0.4071, 0.0503, 0.4957, 0.0651, 0.5294, 0.8707, 0.7134,\n", - " 0.1942, 0.3897, 0.7002, 0.6356, 0.0303, 0.2085, 0.3232, 0.6837, 0.9468],\n", - " requires_grad=True)" + "tensor([ 0.5949, 0.3811, 0.6405, 0.4579, 0.9659, 0.5814, 0.2229, 0.0017,\n", + " 0.4109, -0.0242, 0.4091, 0.6002, 0.6264, 0.8179, 0.4966, 0.7230,\n", + " 0.8393, 0.3294, 0.5204, 0.8359, 0.1531, 0.4993, 0.4438, 0.8782,\n", + " 0.4600, 0.6706, 0.4874, 0.1780, 0.2014, 0.2673, 0.0301, 0.1303,\n", + " 0.6108, 0.8112, 0.5419, 0.2220, 0.7135, 0.3322, 0.3780, 0.3438,\n", + " 0.3505, 0.0662, 0.7175, 0.6219, 0.6385, 0.7993, 0.7480, 0.4351,\n", + " 0.5673, 0.4263, 0.7952, 0.8457, 1.0175, 0.7833, 0.3625, 0.5299,\n", + " 0.6474, 0.7390, 0.6094, 0.9780, 0.7536, 0.0834, 0.5477, 1.2316,\n", + " 0.8532, 0.4774, 0.5899, 0.0178, 0.3342, 0.8407, 0.1243, 0.7978,\n", + " 0.2434, 0.7182, 0.4862, 0.5881, 0.4625, 0.0214, 0.5486, 0.1148,\n", + " 0.9926, 0.5442, -0.0956, 0.6477, 0.3853, 0.2976, 0.5014, 0.8863,\n", + " 0.0393, 0.3295, 0.4438, 0.5494, 1.0617, 0.7210, 0.6808, 0.8502,\n", + " 0.2203, 0.2778, 0.1463, 0.4623, 0.1034, 0.5321, 0.0470, 0.5342,\n", + " 0.6654, 0.5990, 0.7424, 0.9225, -0.0297, 0.6015, 0.9842, 0.1169,\n", + " 0.3636, 0.3986, 0.2004, 0.4137, 0.5094, 0.8895, 0.4809, 0.8469,\n", + " 0.8673, 0.8114, 0.0293, 0.9203, 0.9126, 0.1477, 0.3250, 0.8430,\n", + " 0.0233, 0.0569, 0.1515, 0.6123, 0.2085, 0.0900, 0.6929, 0.7440,\n", + " 0.6629, 0.0290, 1.0456, 0.4284, 0.0580, 0.4547, 0.8499, 0.7113,\n", + " 0.4423, 0.9017, 0.0698, 1.0073, 0.9721, 0.1326, 0.6397, 0.4474,\n", + " -0.0976, 0.4587, 0.3461, -0.0145, 0.1033, 0.6238, 0.9767, 0.7084,\n", + " 0.2046, 0.8929, 0.4338, 0.2117, 0.4601, 0.8923, 0.1992, 0.4317,\n", + " 0.1117, -0.0366, 0.1619, 0.5750, 0.7682, 0.4888, 0.1515, 0.5316,\n", + " 0.0446, 0.5464, 0.6885, 0.6750, 0.1388, 0.4288, 0.6966, 0.6290,\n", + " 0.0298, 0.2423, 0.2986, 0.9552, 0.9564], requires_grad=True)" ] }, - "execution_count": 9, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "# This is strictly to debug the reproducibility problem and is not part of the tutorial\n", "model.weights" ] }, @@ -350,863 +353,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "a340f1a1", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/xl/dhbq46vx3fjd140_39vc28hh0000gp/T/ipykernel_90017/976416833.py:7: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " y_hat, torch.tensor(y, dtype=y_hat.dtype)\n", - "Epoch 1: \n", - "Parameter containing:\n", - "tensor([ 0.6161, 0.3797, 0.6420, 0.4463, 0.7152, 0.6400, 0.4294, 0.1247,\n", - " 0.6188, 0.0121, 0.5631, 0.5612, 0.4458, 0.9111, 0.5659, 0.7034,\n", - " 0.7098, 0.2081, 0.2615, 0.9431, -0.0357, 0.4698, 0.4631, 0.8511,\n", - " 0.4510, 0.6327, 0.4758, 0.2209, 0.2195, 0.2570, 0.0470, 0.1774,\n", - " 0.6184, 0.8334, 0.5255, 0.2705, 0.7348, 0.2950, 0.4032, 0.2128,\n", - " 0.3561, 0.0499, 0.6995, 0.6806, 0.5850, 0.7322, 0.7241, 0.5358,\n", - " 0.5401, 0.5514, 0.7789, 0.8127, 0.8717, 0.7735, 0.3473, 0.4406,\n", - " 0.4019, 0.8446, 0.5616, 0.9621, 0.7536, 0.0149, 0.6361, 1.0253,\n", - " 0.9885, 0.5489, 0.6051, 0.0407, 0.3849, 0.7808, 0.0782, 0.8988,\n", - " 0.1852, 0.6706, 0.4837, 0.5881, 0.5885, 0.0479, 0.4457, 0.1387,\n", - " 0.9419, 0.4647, 0.0043, 0.6585, 0.6501, 0.2501, 0.4879, 0.7286,\n", - " 0.1599, 0.2091, 0.4321, 0.1854, 0.8089, 0.5667, 0.8187, 0.7915,\n", - " 0.0903, 0.2008, 0.1464, 0.3376, 0.3553, 0.4692, 0.0622, 0.7005,\n", - " 0.7700, 0.6433, 0.8025, 0.8604, -0.0088, 0.5907, 0.9486, 0.1528,\n", - " 0.2622, 0.4889, 0.2042, 0.4210, 0.4413, 0.9303, 0.4838, 0.7863,\n", - " 0.8496, 0.7399, 0.0489, 0.9033, 0.8242, 0.1574, 0.3170, 0.8373,\n", - " -0.0027, 0.0755, 0.1521, 0.6518, 0.3064, 0.0625, 0.6942, 0.7639,\n", - " 0.7029, 0.0923, 1.0039, 0.4450, 0.0404, 0.4391, 0.8682, 0.7411,\n", - " 0.4921, 0.8858, 0.0377, 0.8521, 0.9498, 0.1808, 0.6423, 0.3985,\n", - " 0.0612, 0.4944, 0.3113, 0.0439, 0.1273, 0.5250, 0.9697, 0.6642,\n", - " 0.1821, 0.8697, 0.5321, 0.0350, 0.5172, 0.8301, 0.1842, 0.4552,\n", - " 0.2530, 0.1254, 0.2395, 0.5350, 0.8384, 0.4223, 0.0351, 0.4805,\n", - " 0.0803, 0.5446, 0.8555, 0.7286, 0.2094, 0.3744, 0.6850, 0.6508,\n", - " 0.0455, 0.1933, 0.3453, 0.6819, 0.8974], requires_grad=True)\n", - "train/loss: 0.7088 valid/loss: 0.6767 train/time: 44.03s valid/time: 7.50s train/acc: 0.5566 valid/acc: 0.5278\n", - "Epoch 2: \n", - "Parameter containing:\n", - "tensor([ 0.6157, 0.3798, 0.6422, 0.4684, 0.7512, 0.6083, 0.4640, 0.1240,\n", - " 0.6561, 0.0191, 0.5467, 0.5435, 0.4778, 0.9344, 0.5725, 0.6840,\n", - " 0.6960, 0.2141, 0.2637, 0.9764, -0.0348, 0.4675, 0.4635, 0.8512,\n", - " 0.4506, 0.6313, 0.4757, 0.2192, 0.2182, 0.2585, 0.0457, 0.1745,\n", - " 0.6198, 0.8344, 0.5256, 0.2676, 0.7611, 0.2678, 0.4285, 0.2080,\n", - " 0.3804, 0.0759, 0.6845, 0.6537, 0.5928, 0.7028, 0.7457, 0.5621,\n", - " 0.5163, 0.5805, 0.7720, 0.7807, 0.8852, 0.7433, 0.3650, 0.4424,\n", - " 0.3905, 0.8546, 0.5586, 0.9680, 0.7536, -0.0013, 0.6244, 1.0371,\n", - " 0.9756, 0.5615, 0.5906, 0.0560, 0.3971, 0.7456, 0.0758, 0.9184,\n", - " 0.1783, 0.6771, 0.4843, 0.5881, 0.5786, 0.0394, 0.4324, 0.1184,\n", - " 0.9352, 0.4634, -0.0116, 0.7033, 0.6087, 0.2508, 0.4886, 0.6925,\n", - " 0.1578, 0.1928, 0.4022, 0.2073, 0.8151, 0.5486, 0.7818, 0.7476,\n", - " 0.0685, 0.1973, 0.1444, 0.3426, 0.3277, 0.4791, 0.0412, 0.7176,\n", - " 0.7935, 0.6357, 0.7894, 0.8549, -0.0216, 0.5978, 0.9425, 0.1586,\n", - " 0.2570, 0.4938, 0.2123, 0.4252, 0.4547, 0.9160, 0.4997, 0.7942,\n", - " 0.8701, 0.7369, 0.0494, 0.9304, 0.8249, 0.1828, 0.2956, 0.8187,\n", - " -0.0191, 0.0501, 0.1440, 0.6746, 0.3156, 0.0745, 0.6997, 0.7632,\n", - " 0.7211, 0.0732, 0.9843, 0.4369, 0.0164, 0.4489, 0.8881, 0.7288,\n", - " 0.4845, 0.8792, 0.0390, 0.8590, 0.9462, 0.1684, 0.6546, 0.4098,\n", - " 0.0659, 0.4807, 0.2922, 0.0611, 0.1324, 0.5305, 0.9527, 0.6587,\n", - " 0.1879, 0.8668, 0.5591, 0.0568, 0.5536, 0.8338, 0.2055, 0.4524,\n", - " 0.2294, 0.0821, 0.2242, 0.5313, 0.8431, 0.4311, 0.0302, 0.4744,\n", - " 0.0839, 0.5600, 0.8487, 0.7337, 0.2184, 0.3695, 0.6800, 0.6551,\n", - " 0.0499, 0.1774, 0.3346, 0.7150, 0.9203], requires_grad=True)\n", - "train/loss: 0.4797 valid/loss: 0.6902 train/time: 10.68s valid/time: 2.58s train/acc: 0.6509 valid/acc: 0.4722\n", - "Epoch 3: \n", - "Parameter containing:\n", - "tensor([ 0.6116, 0.3827, 0.6422, 0.4859, 0.7586, 0.5865, 0.4556, 0.1347,\n", - " 0.6576, 0.0164, 0.5375, 0.5418, 0.4872, 0.9438, 0.5658, 0.6987,\n", - " 0.7215, 0.2242, 0.2604, 0.9846, -0.0384, 0.4661, 0.4604, 0.8477,\n", - " 0.4501, 0.6289, 0.4758, 0.2171, 0.2191, 0.2606, 0.0459, 0.1728,\n", - " 0.6188, 0.8330, 0.5257, 0.2681, 0.7677, 0.2724, 0.4529, 0.2388,\n", - " 0.4070, 0.0918, 0.6613, 0.6548, 0.5837, 0.6701, 0.7351, 0.5358,\n", - " 0.4854, 0.5794, 0.8019, 0.7717, 0.8873, 0.7353, 0.3563, 0.4498,\n", - " 0.3817, 0.8517, 0.5491, 0.9694, 0.7536, 0.0101, 0.6033, 1.0288,\n", - " 0.9842, 0.5543, 0.6046, 0.0760, 0.3911, 0.7481, 0.0808, 0.9043,\n", - " 0.1793, 0.6771, 0.4861, 0.5881, 0.5810, 0.0205, 0.4465, 0.0987,\n", - " 0.9359, 0.4881, -0.0268, 0.7106, 0.5771, 0.2458, 0.4948, 0.6944,\n", - " 0.1573, 0.1917, 0.4088, 0.2137, 0.8210, 0.5906, 0.7441, 0.7158,\n", - " 0.0515, 0.1945, 0.1347, 0.3542, 0.3116, 0.4921, 0.0432, 0.7504,\n", - " 0.8288, 0.6498, 0.7658, 0.8762, -0.0446, 0.5954, 0.9461, 0.1335,\n", - " 0.2678, 0.4834, 0.2089, 0.4141, 0.4796, 0.9076, 0.5148, 0.7772,\n", - " 0.8945, 0.7252, 0.0587, 0.9209, 0.8276, 0.1708, 0.3012, 0.8139,\n", - " 0.0016, 0.0469, 0.1623, 0.6986, 0.2944, 0.0818, 0.6734, 0.7722,\n", - " 0.7037, 0.0713, 0.9940, 0.4302, 0.0235, 0.4591, 0.8887, 0.7357,\n", - " 0.4742, 0.8868, 0.0384, 0.8597, 0.9439, 0.1624, 0.6582, 0.4034,\n", - " 0.0737, 0.4715, 0.3133, 0.0686, 0.1427, 0.5490, 0.9696, 0.6806,\n", - " 0.2089, 0.8536, 0.5592, 0.0599, 0.5637, 0.8519, 0.2398, 0.4744,\n", - " 0.2386, 0.0654, 0.2588, 0.5644, 0.8133, 0.4214, 0.0445, 0.4888,\n", - " 0.0491, 0.5753, 0.8610, 0.7048, 0.2197, 0.3933, 0.6910, 0.6256,\n", - " 0.0189, 0.1447, 0.3377, 0.7365, 0.9301], requires_grad=True)\n", - "train/loss: 0.6349 valid/loss: 0.6681 train/time: 11.84s valid/time: 2.26s train/acc: 0.6509 valid/acc: 0.5833\n", - "Epoch 4: \n", - "Parameter containing:\n", - "tensor([ 0.6068, 0.3830, 0.6468, 0.4898, 0.7685, 0.5791, 0.4510, 0.1686,\n", - " 0.6891, 0.0289, 0.5180, 0.5254, 0.5041, 0.9448, 0.5706, 0.6835,\n", - " 0.7266, 0.2334, 0.2570, 1.0020, -0.0420, 0.4672, 0.4574, 0.8510,\n", - " 0.4513, 0.6283, 0.4770, 0.2153, 0.2149, 0.2650, 0.0437, 0.1715,\n", - " 0.6162, 0.8307, 0.5260, 0.2716, 0.7682, 0.2621, 0.4591, 0.2248,\n", - " 0.4005, 0.0828, 0.6500, 0.6468, 0.5902, 0.6775, 0.7461, 0.5465,\n", - " 0.4932, 0.5622, 0.7939, 0.7577, 0.8728, 0.7249, 0.3576, 0.4341,\n", - " 0.3615, 0.8682, 0.5481, 0.9686, 0.7536, 0.0068, 0.5980, 1.0442,\n", - " 0.9858, 0.5708, 0.6051, 0.0795, 0.4085, 0.7305, 0.0724, 0.9137,\n", - " 0.1700, 0.6840, 0.4873, 0.5881, 0.5864, 0.0237, 0.4422, 0.1002,\n", - " 0.9273, 0.4961, -0.0198, 0.7228, 0.5536, 0.2331, 0.5235, 0.6764,\n", - " 0.1497, 0.2065, 0.3907, 0.1940, 0.7964, 0.5812, 0.7149, 0.6925,\n", - " 0.0473, 0.1879, 0.1442, 0.3713, 0.2633, 0.4996, 0.0533, 0.7638,\n", - " 0.8416, 0.6760, 0.7520, 0.9021, -0.0639, 0.5946, 0.9295, 0.1169,\n", - " 0.2715, 0.4780, 0.1986, 0.4297, 0.4978, 0.9161, 0.5121, 0.7411,\n", - " 0.9040, 0.7274, 0.0528, 0.9139, 0.8285, 0.1567, 0.2886, 0.8049,\n", - " -0.0054, 0.0411, 0.1544, 0.7024, 0.2994, 0.0780, 0.6767, 0.7527,\n", - " 0.7129, 0.0698, 1.0050, 0.4246, 0.0304, 0.4698, 0.8986, 0.7323,\n", - " 0.4574, 0.9036, 0.0379, 0.8733, 0.9434, 0.1573, 0.6707, 0.4047,\n", - " 0.0835, 0.4893, 0.3115, 0.0784, 0.1318, 0.5487, 0.9590, 0.6705,\n", - " 0.2094, 0.8647, 0.5642, 0.0621, 0.5751, 0.8507, 0.2411, 0.4666,\n", - " 0.2376, 0.0499, 0.2766, 0.5725, 0.8032, 0.4250, 0.0567, 0.5152,\n", - " 0.0323, 0.5661, 0.8828, 0.6720, 0.2102, 0.4053, 0.6969, 0.5894,\n", - " 0.0080, 0.1515, 0.3328, 0.7701, 0.9464], requires_grad=True)\n", - "train/loss: 0.6580 valid/loss: 0.6668 train/time: 10.57s valid/time: 2.50s train/acc: 0.7453 valid/acc: 0.6389\n", - "Epoch 5: \n", - "Parameter containing:\n", - "tensor([ 0.6083, 0.3822, 0.6472, 0.4996, 0.7912, 0.5557, 0.4426, 0.1720,\n", - " 0.6880, 0.0676, 0.5166, 0.4866, 0.5356, 0.9402, 0.5930, 0.6726,\n", - " 0.7084, 0.2194, 0.2630, 0.9915, -0.0359, 0.4676, 0.4580, 0.8504,\n", - " 0.4544, 0.6307, 0.4764, 0.2132, 0.2169, 0.2654, 0.0456, 0.1734,\n", - " 0.6126, 0.8314, 0.5261, 0.2782, 0.7683, 0.2533, 0.4405, 0.2215,\n", - " 0.3856, 0.0793, 0.6629, 0.6324, 0.5935, 0.6960, 0.7375, 0.5554,\n", - " 0.5098, 0.5636, 0.7746, 0.7308, 0.8609, 0.7038, 0.3435, 0.4293,\n", - " 0.3322, 0.8825, 0.5524, 0.9712, 0.7536, -0.0167, 0.5748, 1.0500,\n", - " 1.0036, 0.5953, 0.5861, 0.1172, 0.4068, 0.7219, 0.0676, 0.9163,\n", - " 0.1702, 0.6931, 0.4874, 0.5881, 0.5903, 0.0591, 0.4445, 0.0942,\n", - " 0.9300, 0.5039, 0.0218, 0.7341, 0.5159, 0.2048, 0.5902, 0.6530,\n", - " 0.1552, 0.2340, 0.3914, 0.1998, 0.8008, 0.5731, 0.6893, 0.6714,\n", - " 0.0311, 0.1833, 0.1402, 0.3719, 0.2115, 0.4687, 0.1006, 0.8182,\n", - " 0.8954, 0.6670, 0.7656, 0.8890, -0.0647, 0.5951, 0.9129, 0.1260,\n", - " 0.2632, 0.4533, 0.2022, 0.4576, 0.4941, 0.9190, 0.5217, 0.7388,\n", - " 0.9192, 0.7231, 0.0586, 0.9288, 0.8224, 0.1779, 0.2817, 0.7878,\n", - " -0.0095, 0.0321, 0.1436, 0.7059, 0.2970, 0.0876, 0.6735, 0.7511,\n", - " 0.7219, 0.0614, 1.0117, 0.4131, 0.0398, 0.4872, 0.8872, 0.7257,\n", - " 0.4565, 0.8992, 0.0548, 0.8841, 0.9415, 0.1502, 0.6620, 0.4123,\n", - " 0.0862, 0.4873, 0.3032, 0.0989, 0.1189, 0.5514, 0.9592, 0.6648,\n", - " 0.2047, 0.8606, 0.5675, 0.0833, 0.5837, 0.8493, 0.2425, 0.4527,\n", - " 0.2195, 0.0564, 0.2735, 0.5888, 0.8127, 0.4028, 0.0642, 0.5048,\n", - " 0.0262, 0.5736, 0.8803, 0.6482, 0.2285, 0.4022, 0.7024, 0.5982,\n", - " 0.0207, 0.1706, 0.3227, 0.7857, 0.9506], requires_grad=True)\n", - "train/loss: 0.5525 valid/loss: 0.6419 train/time: 10.65s valid/time: 2.21s train/acc: 0.8208 valid/acc: 0.6389\n", - "Epoch 6: \n", - "Parameter containing:\n", - "tensor([ 0.6135, 0.3790, 0.6445, 0.5313, 0.7976, 0.5660, 0.4547, 0.1640,\n", - " 0.6856, 0.1033, 0.5416, 0.4524, 0.5481, 0.9302, 0.5986, 0.6725,\n", - " 0.7141, 0.2261, 0.2665, 1.0017, -0.0325, 0.4672, 0.4604, 0.8525,\n", - " 0.4544, 0.6300, 0.4759, 0.2129, 0.2166, 0.2663, 0.0468, 0.1756,\n", - " 0.6081, 0.8353, 0.5252, 0.2810, 0.7685, 0.2561, 0.4083, 0.2336,\n", - " 0.3813, 0.0880, 0.6819, 0.6280, 0.6028, 0.7171, 0.7155, 0.5503,\n", - " 0.5110, 0.5817, 0.7694, 0.7068, 0.8681, 0.6847, 0.3537, 0.4363,\n", - " 0.2977, 0.8761, 0.5564, 0.9698, 0.7536, -0.0245, 0.5724, 1.0489,\n", - " 0.9932, 0.6048, 0.5778, 0.1415, 0.3998, 0.7201, 0.0592, 0.9185,\n", - " 0.1692, 0.6985, 0.4883, 0.5881, 0.5674, 0.0591, 0.4504, 0.0930,\n", - " 0.9296, 0.5311, 0.0255, 0.7427, 0.4857, 0.2028, 0.6042, 0.6133,\n", - " 0.1586, 0.2584, 0.4018, 0.1956, 0.7995, 0.5612, 0.6699, 0.6579,\n", - " 0.0273, 0.1824, 0.1400, 0.3778, 0.1781, 0.4504, 0.1649, 0.8788,\n", - " 0.9573, 0.6840, 0.7478, 0.8971, -0.0692, 0.5701, 0.9302, 0.1038,\n", - " 0.2836, 0.4626, 0.1812, 0.4898, 0.5035, 0.8966, 0.5254, 0.7118,\n", - " 0.9341, 0.7166, 0.0684, 0.9038, 0.8407, 0.1727, 0.2879, 0.7996,\n", - " -0.0108, 0.0133, 0.1533, 0.7120, 0.2942, 0.0757, 0.6697, 0.7571,\n", - " 0.7213, 0.0471, 1.0081, 0.4128, 0.0448, 0.4909, 0.8871, 0.7119,\n", - " 0.4395, 0.8978, 0.0582, 0.9076, 0.9387, 0.1522, 0.6598, 0.4190,\n", - " 0.0744, 0.4867, 0.3068, 0.1019, 0.1269, 0.5570, 0.9520, 0.6756,\n", - " 0.2064, 0.8590, 0.5839, 0.0903, 0.5939, 0.8548, 0.2540, 0.4597,\n", - " 0.2120, 0.0721, 0.2903, 0.6015, 0.8117, 0.4260, 0.0727, 0.5235,\n", - " 0.0483, 0.5472, 0.8995, 0.6690, 0.2041, 0.4026, 0.7173, 0.5775,\n", - " 0.0404, 0.1985, 0.3256, 0.8268, 0.9414], requires_grad=True)\n", - "train/loss: 0.3190 valid/loss: 0.6071 train/time: 10.59s valid/time: 2.21s train/acc: 0.8302 valid/acc: 0.6667\n", - "Epoch 7: \n", - "Parameter containing:\n", - "tensor([ 6.1181e-01, 3.7606e-01, 6.4263e-01, 5.4871e-01, 7.9612e-01,\n", - " 5.6061e-01, 4.6391e-01, 1.5905e-01, 6.8303e-01, 1.1681e-01,\n", - " 5.5065e-01, 4.3948e-01, 5.5935e-01, 9.2379e-01, 6.0593e-01,\n", - " 6.7931e-01, 6.8668e-01, 1.9250e-01, 2.6468e-01, 9.7560e-01,\n", - " -3.4252e-02, 4.6429e-01, 4.5697e-01, 8.6842e-01, 4.6175e-01,\n", - " 6.2720e-01, 4.7748e-01, 2.1709e-01, 2.0182e-01, 2.6647e-01,\n", - " 4.4823e-02, 1.7513e-01, 5.9350e-01, 8.4281e-01, 5.2714e-01,\n", - " 2.7650e-01, 7.5510e-01, 2.1749e-01, 4.2891e-01, 1.9493e-01,\n", - " 3.4371e-01, 5.2052e-02, 6.7124e-01, 5.9647e-01, 6.4256e-01,\n", - " 7.5449e-01, 7.4592e-01, 5.9011e-01, 5.5039e-01, 5.6038e-01,\n", - " 7.3332e-01, 6.9472e-01, 8.7397e-01, 6.7586e-01, 3.4958e-01,\n", - " 4.3587e-01, 2.7194e-01, 8.7787e-01, 5.4987e-01, 9.7083e-01,\n", - " 7.5360e-01, -2.0236e-02, 5.6502e-01, 1.0498e+00, 9.9454e-01,\n", - " 6.1021e-01, 5.8271e-01, 1.5056e-01, 4.0508e-01, 7.1503e-01,\n", - " 5.2838e-02, 9.1779e-01, 1.7072e-01, 7.1128e-01, 4.9056e-01,\n", - " 5.8811e-01, 5.5392e-01, 5.8978e-02, 4.5776e-01, 9.5208e-02,\n", - " 9.3172e-01, 5.7409e-01, 2.7780e-02, 7.5432e-01, 4.7153e-01,\n", - " 2.0423e-01, 6.2190e-01, 6.0722e-01, 1.7452e-01, 2.8413e-01,\n", - " 3.9837e-01, 1.9313e-01, 7.9447e-01, 5.6371e-01, 6.6204e-01,\n", - " 6.4821e-01, 2.2989e-02, 1.8384e-01, 1.3115e-01, 4.0222e-01,\n", - " 1.5205e-01, 4.5607e-01, 1.7933e-01, 9.2243e-01, 9.7585e-01,\n", - " 6.7728e-01, 7.2522e-01, 8.9240e-01, -8.6611e-02, 5.7606e-01,\n", - " 9.3997e-01, 1.0047e-01, 2.8241e-01, 4.8394e-01, 1.9133e-01,\n", - " 4.7603e-01, 5.2536e-01, 8.9860e-01, 5.0706e-01, 7.1241e-01,\n", - " 9.3186e-01, 7.1780e-01, 6.5672e-02, 9.0534e-01, 8.2057e-01,\n", - " 1.7603e-01, 2.7152e-01, 7.7056e-01, -2.1988e-02, 5.3884e-04,\n", - " 1.4491e-01, 7.1291e-01, 2.9936e-01, 1.0848e-01, 6.7213e-01,\n", - " 7.4627e-01, 7.3553e-01, 5.3394e-02, 1.0096e+00, 4.1064e-01,\n", - " 5.8012e-02, 4.9028e-01, 8.7225e-01, 7.1730e-01, 4.4184e-01,\n", - " 8.9678e-01, 5.7872e-02, 9.2575e-01, 9.4358e-01, 1.5598e-01,\n", - " 6.5275e-01, 4.1356e-01, 6.7852e-02, 4.8266e-01, 3.0645e-01,\n", - " 9.8808e-02, 1.2521e-01, 5.6866e-01, 9.5008e-01, 6.7990e-01,\n", - " 2.1524e-01, 8.5348e-01, 5.9511e-01, 1.0402e-01, 6.0594e-01,\n", - " 8.6833e-01, 2.5788e-01, 4.5797e-01, 1.9733e-01, 7.7866e-02,\n", - " 2.9275e-01, 6.0617e-01, 8.0357e-01, 4.1441e-01, 5.7469e-02,\n", - " 5.2971e-01, 6.1167e-02, 5.5023e-01, 9.0886e-01, 6.9193e-01,\n", - " 2.1615e-01, 3.9368e-01, 7.1137e-01, 5.6883e-01, 4.1260e-02,\n", - " 1.8575e-01, 2.9955e-01, 8.4938e-01, 9.3354e-01],\n", - " requires_grad=True)\n", - "train/loss: 0.9441 valid/loss: 0.5893 train/time: 10.60s valid/time: 2.53s train/acc: 0.8491 valid/acc: 0.7222\n", - "Epoch 8: \n", - "Parameter containing:\n", - "tensor([ 0.6110, 0.3761, 0.6424, 0.5797, 0.8040, 0.5773, 0.4577, 0.1670,\n", - " 0.6940, 0.1298, 0.5604, 0.4277, 0.5634, 0.9030, 0.6012, 0.6959,\n", - " 0.6859, 0.1765, 0.2851, 0.9896, -0.0142, 0.4656, 0.4537, 0.8766,\n", - " 0.4596, 0.6267, 0.4778, 0.2150, 0.1950, 0.2656, 0.0401, 0.1735,\n", - " 0.5910, 0.8423, 0.5281, 0.2829, 0.7532, 0.2051, 0.4242, 0.1882,\n", - " 0.3394, 0.0487, 0.6678, 0.5926, 0.6696, 0.7662, 0.7496, 0.5963,\n", - " 0.5546, 0.5611, 0.7251, 0.6676, 0.8952, 0.6574, 0.3534, 0.4381,\n", - " 0.2547, 0.8696, 0.5522, 0.9657, 0.7536, -0.0211, 0.5737, 1.0554,\n", - " 0.9927, 0.6077, 0.5813, 0.1394, 0.4179, 0.7102, 0.0586, 0.9208,\n", - " 0.1764, 0.7078, 0.4929, 0.5881, 0.5271, 0.0374, 0.4673, 0.1194,\n", - " 0.9398, 0.6181, 0.0110, 0.7664, 0.4616, 0.2070, 0.6299, 0.5972,\n", - " 0.1509, 0.3294, 0.4044, 0.1886, 0.7918, 0.5621, 0.6456, 0.6298,\n", - " 0.0182, 0.1844, 0.1252, 0.4020, 0.1388, 0.4621, 0.1926, 0.9420,\n", - " 0.9884, 0.6720, 0.7627, 0.8787, -0.0515, 0.5644, 0.9298, 0.1243,\n", - " 0.3030, 0.4663, 0.1668, 0.4742, 0.4889, 0.8789, 0.5159, 0.7151,\n", - " 0.9296, 0.7206, 0.0601, 0.8819, 0.8237, 0.1520, 0.2780, 0.7819,\n", - " -0.0065, -0.0228, 0.1640, 0.7210, 0.3031, 0.0954, 0.6591, 0.7487,\n", - " 0.7169, 0.0439, 1.0105, 0.4155, 0.0555, 0.4870, 0.8759, 0.7135,\n", - " 0.4563, 0.8866, 0.0664, 0.9290, 0.9335, 0.1634, 0.6494, 0.4192,\n", - " 0.0680, 0.4956, 0.3083, 0.0931, 0.1445, 0.5782, 0.9433, 0.6875,\n", - " 0.2253, 0.8471, 0.5994, 0.0982, 0.6007, 0.8802, 0.2617, 0.4709,\n", - " 0.1900, 0.0906, 0.3006, 0.5801, 0.8347, 0.4347, 0.0715, 0.5140,\n", - " 0.0526, 0.5649, 0.8829, 0.6743, 0.2103, 0.3602, 0.7094, 0.5925,\n", - " 0.0644, 0.1935, 0.2794, 0.8630, 0.9317], requires_grad=True)\n", - "train/loss: 0.6091 valid/loss: 0.5819 train/time: 10.39s valid/time: 2.59s train/acc: 0.8679 valid/acc: 0.7222\n", - "Epoch 9: \n", - "Parameter containing:\n", - "tensor([ 0.6109, 0.3764, 0.6388, 0.5926, 0.8177, 0.5781, 0.4532, 0.1584,\n", - " 0.6821, 0.1202, 0.5839, 0.4399, 0.5776, 0.8794, 0.6017, 0.7153,\n", - " 0.6887, 0.1605, 0.2754, 0.9837, -0.0240, 0.4663, 0.4510, 0.8824,\n", - " 0.4590, 0.6227, 0.4773, 0.2153, 0.1934, 0.2667, 0.0418, 0.1727,\n", - " 0.5891, 0.8452, 0.5271, 0.2875, 0.7553, 0.2064, 0.3924, 0.2012,\n", - " 0.3530, 0.0675, 0.6750, 0.6076, 0.7039, 0.7702, 0.7304, 0.5822,\n", - " 0.5388, 0.5812, 0.7266, 0.6770, 0.8888, 0.6649, 0.3527, 0.4351,\n", - " 0.2477, 0.8724, 0.5577, 0.9690, 0.7536, -0.0177, 0.5642, 1.0586,\n", - " 0.9894, 0.6167, 0.5857, 0.1513, 0.4251, 0.7014, 0.0463, 0.9160,\n", - " 0.1670, 0.7131, 0.4932, 0.5881, 0.5243, 0.0454, 0.4663, 0.1197,\n", - " 0.9306, 0.6296, 0.0249, 0.7705, 0.4516, 0.2090, 0.6298, 0.6016,\n", - " 0.1500, 0.3401, 0.3877, 0.1933, 0.7888, 0.5571, 0.6576, 0.6433,\n", - " 0.0206, 0.1912, 0.0944, 0.4022, 0.1453, 0.4538, 0.1868, 0.9440,\n", - " 0.9844, 0.6924, 0.7525, 0.9000, -0.0636, 0.5681, 0.9230, 0.1120,\n", - " 0.2962, 0.4745, 0.1778, 0.4781, 0.5008, 0.8880, 0.5096, 0.7171,\n", - " 0.9232, 0.7152, 0.0718, 0.8849, 0.8108, 0.1696, 0.2640, 0.7801,\n", - " -0.0014, -0.0204, 0.1567, 0.7084, 0.3040, 0.0972, 0.6588, 0.7491,\n", - " 0.7115, 0.0370, 1.0006, 0.4080, 0.0488, 0.4947, 0.8740, 0.7103,\n", - " 0.4503, 0.8846, 0.0723, 0.9376, 0.9406, 0.1606, 0.6514, 0.4207,\n", - " 0.0800, 0.5072, 0.3051, 0.0989, 0.1490, 0.5752, 0.9442, 0.6868,\n", - " 0.2197, 0.8430, 0.6023, 0.1048, 0.5948, 0.8766, 0.2540, 0.4682,\n", - " 0.1676, 0.0890, 0.2948, 0.5957, 0.8187, 0.4229, 0.0697, 0.5130,\n", - " 0.0416, 0.5608, 0.8944, 0.6622, 0.2130, 0.3840, 0.7105, 0.5861,\n", - " 0.0436, 0.1845, 0.2575, 0.8642, 0.9161], requires_grad=True)\n", - "train/loss: 0.6865 valid/loss: 0.5919 train/time: 10m6s valid/time: 4.91s train/acc: 0.8868 valid/acc: 0.6389\n", - "Epoch 10: \n", - "Parameter containing:\n", - "tensor([ 0.6144, 0.3783, 0.6375, 0.6065, 0.8214, 0.5782, 0.4414, 0.1577,\n", - " 0.6766, 0.1064, 0.5701, 0.4470, 0.5781, 0.8759, 0.6014, 0.7096,\n", - " 0.7041, 0.1714, 0.2644, 0.9599, -0.0349, 0.4689, 0.4496, 0.8845,\n", - " 0.4604, 0.6220, 0.4774, 0.2229, 0.1931, 0.2694, 0.0437, 0.1722,\n", - " 0.5882, 0.8475, 0.5259, 0.2930, 0.7386, 0.2188, 0.3764, 0.1999,\n", - " 0.3329, 0.0642, 0.7078, 0.6144, 0.6936, 0.7801, 0.7105, 0.5869,\n", - " 0.5574, 0.5870, 0.6993, 0.6857, 0.8973, 0.6770, 0.3547, 0.4369,\n", - " 0.2535, 0.8643, 0.5527, 0.9676, 0.7536, -0.0183, 0.5750, 1.0552,\n", - " 0.9867, 0.6121, 0.5833, 0.1393, 0.4226, 0.7063, 0.0525, 0.8997,\n", - " 0.1763, 0.7151, 0.4935, 0.5881, 0.5013, 0.0340, 0.4805, 0.1166,\n", - " 0.9396, 0.6427, 0.0288, 0.7793, 0.4439, 0.2170, 0.6411, 0.5994,\n", - " 0.1478, 0.3439, 0.3928, 0.2039, 0.8003, 0.5679, 0.6632, 0.6447,\n", - " 0.0266, 0.1910, 0.0949, 0.3980, 0.1421, 0.4517, 0.1904, 0.9577,\n", - " 0.9888, 0.6926, 0.7494, 0.8994, -0.0673, 0.5583, 0.9224, 0.0983,\n", - " 0.3045, 0.4765, 0.1713, 0.4823, 0.5045, 0.8790, 0.5111, 0.6991,\n", - " 0.9223, 0.7084, 0.0845, 0.8743, 0.8147, 0.1732, 0.2699, 0.7782,\n", - " -0.0113, -0.0177, 0.1584, 0.7187, 0.2992, 0.1014, 0.6661, 0.7531,\n", - " 0.7116, 0.0328, 1.0023, 0.4096, 0.0570, 0.4908, 0.8770, 0.7146,\n", - " 0.4501, 0.8920, 0.0704, 0.9508, 0.9379, 0.1662, 0.6580, 0.4161,\n", - " 0.0819, 0.5095, 0.3044, 0.0955, 0.1487, 0.5789, 0.9443, 0.6880,\n", - " 0.2203, 0.8353, 0.6072, 0.1120, 0.5982, 0.8825, 0.2530, 0.4652,\n", - " 0.1594, 0.0773, 0.2940, 0.5913, 0.8166, 0.4340, 0.0673, 0.5133,\n", - " 0.0416, 0.5440, 0.8884, 0.6582, 0.1992, 0.3803, 0.7095, 0.5910,\n", - " 0.0451, 0.1958, 0.2483, 0.8797, 0.9140], requires_grad=True)\n", - "train/loss: 0.3978 valid/loss: 0.5962 train/time: 11.89s valid/time: 2.64s train/acc: 0.8491 valid/acc: 0.6667\n", - "Epoch 11: \n", - "Parameter containing:\n", - "tensor([ 0.6157, 0.3783, 0.6373, 0.6047, 0.8385, 0.5692, 0.4503, 0.1724,\n", - " 0.6917, 0.1319, 0.5706, 0.4221, 0.5779, 0.8851, 0.6060, 0.7110,\n", - " 0.6984, 0.1677, 0.2762, 0.9593, -0.0235, 0.4733, 0.4467, 0.8759,\n", - " 0.4710, 0.6289, 0.4789, 0.2400, 0.2002, 0.2892, 0.0391, 0.1639,\n", - " 0.5819, 0.8568, 0.5296, 0.3107, 0.7484, 0.2113, 0.3831, 0.1949,\n", - " 0.3462, 0.0619, 0.6870, 0.6127, 0.6935, 0.7787, 0.7197, 0.5882,\n", - " 0.5474, 0.5836, 0.7093, 0.6745, 0.8989, 0.6653, 0.3543, 0.4335,\n", - " 0.2419, 0.8667, 0.5605, 0.9655, 0.7536, -0.0213, 0.5687, 1.0621,\n", - " 0.9857, 0.6203, 0.5819, 0.1472, 0.4330, 0.7001, 0.0507, 0.9004,\n", - " 0.1767, 0.7163, 0.4932, 0.5881, 0.5023, 0.0400, 0.4793, 0.1130,\n", - " 0.9398, 0.6461, 0.0366, 0.7864, 0.4346, 0.2211, 0.6450, 0.6098,\n", - " 0.1600, 0.3582, 0.3910, 0.2085, 0.8031, 0.5620, 0.6631, 0.6469,\n", - " 0.0236, 0.1880, 0.1024, 0.3852, 0.1433, 0.4510, 0.2012, 0.9507,\n", - " 0.9970, 0.7034, 0.7405, 0.9133, -0.0751, 0.5689, 0.9340, 0.0930,\n", - " 0.2899, 0.4800, 0.1828, 0.4796, 0.5122, 0.8942, 0.5213, 0.7087,\n", - " 0.9100, 0.7122, 0.0837, 0.8758, 0.8163, 0.1722, 0.2579, 0.7756,\n", - " -0.0069, -0.0180, 0.1574, 0.7140, 0.3027, 0.1045, 0.6624, 0.7512,\n", - " 0.7222, 0.0342, 1.0010, 0.4083, 0.0562, 0.4943, 0.8684, 0.7156,\n", - " 0.4599, 0.8830, 0.0807, 0.9512, 0.9390, 0.1682, 0.6513, 0.4178,\n", - " 0.0881, 0.5095, 0.3041, 0.0939, 0.1543, 0.5800, 0.9362, 0.6913,\n", - " 0.2223, 0.8384, 0.6105, 0.1114, 0.5905, 0.8840, 0.2546, 0.4711,\n", - " 0.1656, 0.0908, 0.3052, 0.6052, 0.8044, 0.4164, 0.0747, 0.5194,\n", - " 0.0529, 0.5498, 0.9028, 0.6752, 0.2084, 0.4014, 0.7283, 0.5805,\n", - " 0.0353, 0.1882, 0.2289, 0.8752, 0.9072], requires_grad=True)\n", - "train/loss: 0.7133 valid/loss: 0.5935 train/time: 10.81s valid/time: 2.72s train/acc: 0.8396 valid/acc: 0.5556\n", - "Epoch 12: \n", - "Parameter containing:\n", - "tensor([ 6.2004e-01, 3.7164e-01, 6.3297e-01, 6.3716e-01, 8.3958e-01,\n", - " 5.7914e-01, 4.5757e-01, 1.6015e-01, 6.8212e-01, 1.3299e-01,\n", - " 5.6148e-01, 4.1876e-01, 5.9427e-01, 8.8993e-01, 6.2038e-01,\n", - " 7.1277e-01, 6.9763e-01, 1.6611e-01, 2.8317e-01, 9.6842e-01,\n", - " -1.7113e-02, 4.7197e-01, 4.5162e-01, 8.7273e-01, 4.7140e-01,\n", - " 6.2622e-01, 4.7907e-01, 2.3465e-01, 1.9615e-01, 2.8809e-01,\n", - " 4.1871e-02, 1.6537e-01, 5.8078e-01, 8.5919e-01, 5.2971e-01,\n", - " 3.1569e-01, 7.4699e-01, 2.1049e-01, 3.7849e-01, 1.9825e-01,\n", - " 3.4335e-01, 6.5835e-02, 6.8959e-01, 6.1320e-01, 7.0002e-01,\n", - " 7.8339e-01, 7.1726e-01, 5.8757e-01, 5.4860e-01, 5.8083e-01,\n", - " 7.1286e-01, 6.8425e-01, 8.9968e-01, 6.7624e-01, 3.5861e-01,\n", - " 4.4363e-01, 2.5224e-01, 8.5787e-01, 5.6058e-01, 9.6582e-01,\n", - " 7.5360e-01, -9.8212e-03, 5.7066e-01, 1.0612e+00, 9.8320e-01,\n", - " 6.0625e-01, 5.9159e-01, 1.3721e-01, 4.4065e-01, 7.0537e-01,\n", - " 5.0732e-02, 8.9810e-01, 1.7565e-01, 7.1563e-01, 4.9353e-01,\n", - " 5.8811e-01, 4.9743e-01, 3.7860e-02, 4.8542e-01, 1.1855e-01,\n", - " 9.3916e-01, 6.5025e-01, 3.2947e-02, 7.8627e-01, 4.3373e-01,\n", - " 2.2315e-01, 6.4693e-01, 5.9835e-01, 1.5986e-01, 3.5906e-01,\n", - " 3.9618e-01, 2.0557e-01, 8.0242e-01, 5.5840e-01, 6.7357e-01,\n", - " 6.5906e-01, 2.4853e-02, 1.8494e-01, 1.1340e-01, 3.6297e-01,\n", - " 1.4059e-01, 4.3964e-01, 1.8956e-01, 9.4295e-01, 9.8794e-01,\n", - " 6.7770e-01, 7.5564e-01, 8.8690e-01, -6.2168e-02, 5.6337e-01,\n", - " 9.0944e-01, 1.0732e-01, 3.0370e-01, 4.6548e-01, 1.6940e-01,\n", - " 4.5822e-01, 4.9903e-01, 8.7857e-01, 5.1524e-01, 7.0148e-01,\n", - " 9.1862e-01, 7.1234e-01, 8.2230e-02, 8.7148e-01, 8.1326e-01,\n", - " 1.6859e-01, 2.7069e-01, 7.8202e-01, -8.7188e-04, -2.6880e-02,\n", - " 1.5989e-01, 7.2452e-01, 2.9365e-01, 9.5650e-02, 6.5512e-01,\n", - " 7.5096e-01, 7.0976e-01, 3.4447e-02, 9.9953e-01, 4.1452e-01,\n", - " 5.7347e-02, 4.8565e-01, 8.7537e-01, 7.1103e-01, 4.5519e-01,\n", - " 8.8463e-01, 7.5334e-02, 9.6698e-01, 9.3276e-01, 1.7479e-01,\n", - " 6.5709e-01, 4.1873e-01, 9.3990e-02, 5.1006e-01, 3.0564e-01,\n", - " 9.3644e-02, 1.5421e-01, 5.8260e-01, 9.3200e-01, 6.8972e-01,\n", - " 2.2484e-01, 8.3775e-01, 6.1378e-01, 1.1178e-01, 5.9258e-01,\n", - " 8.8619e-01, 2.5225e-01, 4.7126e-01, 1.5293e-01, 8.6826e-02,\n", - " 3.0048e-01, 5.7949e-01, 8.2151e-01, 4.3714e-01, 5.7781e-02,\n", - " 4.9395e-01, 3.5585e-02, 5.5367e-01, 8.7018e-01, 6.5579e-01,\n", - " 2.0196e-01, 3.7221e-01, 7.0205e-01, 6.1052e-01, 4.4090e-02,\n", - " 1.9293e-01, 2.2038e-01, 8.9768e-01, 9.0925e-01],\n", - " requires_grad=True)\n", - "train/loss: 0.5667 valid/loss: 0.5915 train/time: 10.88s valid/time: 2.25s train/acc: 0.8774 valid/acc: 0.5833\n", - "Epoch 13: \n", - "Parameter containing:\n", - "tensor([ 0.6163, 0.3725, 0.6370, 0.6232, 0.8567, 0.5714, 0.4407, 0.1688,\n", - " 0.6824, 0.1284, 0.5718, 0.4240, 0.5827, 0.8942, 0.6137, 0.7073,\n", - " 0.6906, 0.1670, 0.2817, 0.9632, -0.0185, 0.4707, 0.4527, 0.8737,\n", - " 0.4690, 0.6254, 0.4792, 0.2339, 0.1923, 0.2876, 0.0419, 0.1651,\n", - " 0.5827, 0.8604, 0.5308, 0.3149, 0.7444, 0.2072, 0.3842, 0.1976,\n", - " 0.3344, 0.0661, 0.6994, 0.5992, 0.6894, 0.7855, 0.7171, 0.5930,\n", - " 0.5566, 0.5799, 0.7080, 0.6895, 0.8917, 0.6798, 0.3656, 0.4367,\n", - " 0.2516, 0.8559, 0.5644, 0.9589, 0.7536, -0.0188, 0.5729, 1.0609,\n", - " 0.9725, 0.6179, 0.5837, 0.1457, 0.4352, 0.7072, 0.0547, 0.8969,\n", - " 0.1802, 0.7184, 0.4943, 0.5881, 0.4985, 0.0383, 0.4830, 0.1064,\n", - " 0.9429, 0.6414, 0.0401, 0.7845, 0.4285, 0.2313, 0.6557, 0.6075,\n", - " 0.1584, 0.3713, 0.3857, 0.2148, 0.8087, 0.5704, 0.6719, 0.6527,\n", - " 0.0217, 0.1880, 0.1030, 0.3656, 0.1380, 0.4426, 0.1885, 0.9115,\n", - " 0.9832, 0.6963, 0.7408, 0.9065, -0.0720, 0.5695, 0.9223, 0.0951,\n", - " 0.2990, 0.4846, 0.1801, 0.4583, 0.5108, 0.8876, 0.5105, 0.7118,\n", - " 0.9260, 0.7004, 0.0985, 0.8749, 0.8069, 0.1712, 0.2627, 0.7683,\n", - " -0.0079, -0.0182, 0.1446, 0.7069, 0.2997, 0.1056, 0.6626, 0.7339,\n", - " 0.7227, 0.0450, 0.9960, 0.4174, 0.0617, 0.4828, 0.8696, 0.7151,\n", - " 0.4617, 0.8812, 0.0792, 0.9657, 0.9357, 0.1785, 0.6541, 0.4186,\n", - " 0.0965, 0.5235, 0.3067, 0.0988, 0.1427, 0.5774, 0.9310, 0.6722,\n", - " 0.2188, 0.8364, 0.6142, 0.1088, 0.5979, 0.8794, 0.2323, 0.4567,\n", - " 0.1582, 0.0854, 0.3028, 0.5922, 0.8065, 0.4210, 0.0523, 0.4956,\n", - " 0.0403, 0.5577, 0.8819, 0.6743, 0.2094, 0.3925, 0.7120, 0.6007,\n", - " 0.0261, 0.1793, 0.1998, 0.8886, 0.9002], requires_grad=True)\n", - "train/loss: 0.4108 valid/loss: 0.6079 train/time: 10.84s valid/time: 2.56s train/acc: 0.8774 valid/acc: 0.5833\n", - "Epoch 14: \n", - "Parameter containing:\n", - "tensor([ 0.6159, 0.3734, 0.6374, 0.6476, 0.8503, 0.5817, 0.4564, 0.1598,\n", - " 0.6806, 0.1279, 0.5542, 0.4195, 0.5807, 0.8904, 0.6109, 0.7153,\n", - " 0.6887, 0.1596, 0.2809, 0.9678, -0.0197, 0.4707, 0.4511, 0.8720,\n", - " 0.4707, 0.6248, 0.4796, 0.2350, 0.1902, 0.2859, 0.0404, 0.1675,\n", - " 0.5864, 0.8573, 0.5306, 0.3171, 0.7477, 0.2051, 0.3779, 0.1966,\n", - " 0.3479, 0.0633, 0.6815, 0.6109, 0.7007, 0.7868, 0.7198, 0.5886,\n", - " 0.5445, 0.5779, 0.7201, 0.6704, 0.9080, 0.6652, 0.3646, 0.4419,\n", - " 0.2483, 0.8545, 0.5699, 0.9528, 0.7536, -0.0083, 0.5657, 1.0561,\n", - " 0.9723, 0.6126, 0.5938, 0.1465, 0.4372, 0.7171, 0.0539, 0.8932,\n", - " 0.1792, 0.7188, 0.4939, 0.5881, 0.4880, 0.0382, 0.4957, 0.1139,\n", - " 0.9414, 0.6439, 0.0352, 0.7861, 0.4388, 0.2312, 0.6568, 0.6026,\n", - " 0.1441, 0.3690, 0.3887, 0.2098, 0.8051, 0.5718, 0.6787, 0.6574,\n", - " 0.0222, 0.1886, 0.1017, 0.3649, 0.1342, 0.4401, 0.1897, 0.9329,\n", - " 0.9889, 0.7002, 0.7417, 0.9102, -0.0694, 0.5649, 0.9283, 0.0923,\n", - " 0.3035, 0.4860, 0.1769, 0.4617, 0.5086, 0.8840, 0.5138, 0.7097,\n", - " 0.9250, 0.7098, 0.0836, 0.8676, 0.8095, 0.1752, 0.2614, 0.7776,\n", - " -0.0034, -0.0259, 0.1502, 0.7132, 0.2925, 0.0972, 0.6565, 0.7422,\n", - " 0.7179, 0.0421, 0.9899, 0.4100, 0.0535, 0.4894, 0.8700, 0.7137,\n", - " 0.4556, 0.8819, 0.0833, 0.9707, 0.9411, 0.1728, 0.6570, 0.4181,\n", - " 0.1055, 0.5207, 0.3067, 0.1047, 0.1609, 0.5760, 0.9243, 0.6894,\n", - " 0.2164, 0.8406, 0.6273, 0.1162, 0.5949, 0.8772, 0.2449, 0.4727,\n", - " 0.1544, 0.0934, 0.3020, 0.5918, 0.8066, 0.4227, 0.0578, 0.4982,\n", - " 0.0420, 0.5552, 0.8823, 0.6764, 0.2052, 0.3945, 0.7199, 0.5999,\n", - " 0.0254, 0.1830, 0.1901, 0.8917, 0.9016], requires_grad=True)\n", - "train/loss: 0.5528 valid/loss: 0.5940 train/time: 10.84s valid/time: 2.28s train/acc: 0.8774 valid/acc: 0.5833\n", - "Epoch 15: \n", - "Parameter containing:\n", - "tensor([ 0.6160, 0.3766, 0.6373, 0.6316, 0.8659, 0.5747, 0.4327, 0.1484,\n", - " 0.6536, 0.1215, 0.5523, 0.4246, 0.5857, 0.8854, 0.6132, 0.7063,\n", - " 0.6915, 0.1681, 0.2863, 0.9522, -0.0139, 0.4705, 0.4492, 0.8744,\n", - " 0.4773, 0.6269, 0.4805, 0.2276, 0.1878, 0.2845, 0.0391, 0.1709,\n", - " 0.5913, 0.8575, 0.5291, 0.3176, 0.7387, 0.2104, 0.3824, 0.1944,\n", - " 0.3336, 0.0603, 0.7011, 0.5980, 0.6784, 0.7847, 0.7132, 0.5954,\n", - " 0.5592, 0.5848, 0.7019, 0.6829, 0.9096, 0.6801, 0.3678, 0.4402,\n", - " 0.2506, 0.8522, 0.5716, 0.9561, 0.7536, -0.0105, 0.5649, 1.0584,\n", - " 0.9663, 0.6176, 0.5917, 0.1502, 0.4397, 0.7114, 0.0499, 0.8917,\n", - " 0.1762, 0.7188, 0.4933, 0.5881, 0.4934, 0.0438, 0.4934, 0.1156,\n", - " 0.9390, 0.6548, 0.0402, 0.7903, 0.4326, 0.2218, 0.6428, 0.6111,\n", - " 0.1397, 0.3749, 0.3941, 0.2256, 0.8200, 0.5618, 0.6913, 0.6710,\n", - " 0.0330, 0.1863, 0.1156, 0.3567, 0.1292, 0.4288, 0.2003, 0.9360,\n", - " 0.9985, 0.6968, 0.7443, 0.9053, -0.0677, 0.5694, 0.9261, 0.0975,\n", - " 0.3011, 0.4803, 0.1766, 0.4458, 0.5065, 0.8853, 0.5196, 0.7102,\n", - " 0.9322, 0.6942, 0.1055, 0.8692, 0.8141, 0.1739, 0.2589, 0.7695,\n", - " -0.0110, -0.0228, 0.1463, 0.7133, 0.2967, 0.1059, 0.6650, 0.7367,\n", - " 0.7210, 0.0366, 0.9888, 0.4136, 0.0535, 0.4852, 0.8686, 0.7148,\n", - " 0.4499, 0.8782, 0.0878, 0.9780, 0.9402, 0.1815, 0.6548, 0.4155,\n", - " 0.1076, 0.5257, 0.3065, 0.1020, 0.1521, 0.5768, 0.9261, 0.6790,\n", - " 0.2165, 0.8361, 0.6234, 0.1134, 0.6002, 0.8778, 0.2351, 0.4631,\n", - " 0.1494, 0.0815, 0.3007, 0.5862, 0.8050, 0.4271, 0.0631, 0.4959,\n", - " 0.0398, 0.5621, 0.8742, 0.6717, 0.2098, 0.3903, 0.7264, 0.6019,\n", - " 0.0193, 0.1818, 0.1798, 0.8800, 0.8984], requires_grad=True)\n", - "train/loss: 0.7186 valid/loss: 0.6092 train/time: 10.97s valid/time: 2.27s train/acc: 0.8962 valid/acc: 0.5556\n", - "Epoch 16: \n", - "Parameter containing:\n", - "tensor([ 0.6202, 0.3808, 0.6371, 0.6499, 0.8696, 0.5880, 0.4391, 0.1518,\n", - " 0.6589, 0.1329, 0.5741, 0.4179, 0.5858, 0.8702, 0.6075, 0.7075,\n", - " 0.6906, 0.1667, 0.2874, 0.9675, -0.0141, 0.4719, 0.4502, 0.8753,\n", - " 0.4726, 0.6242, 0.4814, 0.2223, 0.1849, 0.2889, 0.0375, 0.1722,\n", - " 0.5877, 0.8560, 0.5292, 0.3121, 0.7385, 0.2097, 0.3792, 0.1944,\n", - " 0.3341, 0.0605, 0.6995, 0.6006, 0.6821, 0.7880, 0.7135, 0.5950,\n", - " 0.5586, 0.5821, 0.7035, 0.6902, 0.9156, 0.6895, 0.3638, 0.4367,\n", - " 0.2561, 0.8498, 0.5686, 0.9500, 0.7536, -0.0079, 0.5664, 1.0572,\n", - " 0.9657, 0.6186, 0.5925, 0.1423, 0.4411, 0.7136, 0.0557, 0.8875,\n", - " 0.1774, 0.7190, 0.4930, 0.5881, 0.4922, 0.0308, 0.4936, 0.1151,\n", - " 0.9421, 0.6586, 0.0303, 0.7887, 0.4318, 0.2260, 0.6471, 0.6068,\n", - " 0.1359, 0.3807, 0.3931, 0.2181, 0.8128, 0.5690, 0.6862, 0.6629,\n", - " 0.0280, 0.1818, 0.1233, 0.3419, 0.1237, 0.4269, 0.1962, 0.9360,\n", - " 0.9952, 0.6888, 0.7537, 0.8939, -0.0599, 0.5596, 0.9218, 0.0937,\n", - " 0.3035, 0.4701, 0.1693, 0.4654, 0.4976, 0.8801, 0.5281, 0.7028,\n", - " 0.9331, 0.6988, 0.0977, 0.8636, 0.8159, 0.1785, 0.2650, 0.7796,\n", - " -0.0030, -0.0261, 0.1518, 0.7046, 0.2894, 0.0955, 0.6575, 0.7445,\n", - " 0.7170, 0.0421, 0.9886, 0.4054, 0.0540, 0.4930, 0.8748, 0.7184,\n", - " 0.4547, 0.8839, 0.0960, 0.9672, 0.9393, 0.1760, 0.6609, 0.4149,\n", - " 0.1198, 0.5271, 0.3078, 0.1050, 0.1495, 0.5764, 0.9286, 0.6775,\n", - " 0.2145, 0.8328, 0.6256, 0.1170, 0.6054, 0.8773, 0.2331, 0.4592,\n", - " 0.1571, 0.0842, 0.3102, 0.5952, 0.8132, 0.4296, 0.0677, 0.4921,\n", - " 0.0399, 0.5482, 0.8714, 0.6695, 0.1985, 0.3875, 0.7276, 0.6058,\n", - " 0.0297, 0.1986, 0.1801, 0.8886, 0.9051], requires_grad=True)\n", - "train/loss: 0.3593 valid/loss: 0.5944 train/time: 10.86s valid/time: 2.54s train/acc: 0.8585 valid/acc: 0.6111\n", - "Epoch 17: \n", - "Parameter containing:\n", - "tensor([ 0.6210, 0.3813, 0.6370, 0.6450, 0.8618, 0.5768, 0.4578, 0.1589,\n", - " 0.6738, 0.1283, 0.5692, 0.4205, 0.5867, 0.8688, 0.6077, 0.7097,\n", - " 0.6899, 0.1646, 0.2832, 0.9655, -0.0184, 0.4714, 0.4489, 0.8731,\n", - " 0.4665, 0.6187, 0.4830, 0.2254, 0.1809, 0.2916, 0.0363, 0.1842,\n", - " 0.5917, 0.8562, 0.5295, 0.3090, 0.7400, 0.2107, 0.3792, 0.1969,\n", - " 0.3345, 0.0635, 0.6976, 0.5977, 0.6834, 0.7870, 0.7144, 0.5941,\n", - " 0.5577, 0.5845, 0.7071, 0.6892, 0.9032, 0.6859, 0.3663, 0.4333,\n", - " 0.2414, 0.8485, 0.5674, 0.9454, 0.7536, -0.0118, 0.5647, 1.0630,\n", - " 0.9629, 0.6248, 0.5898, 0.1462, 0.4506, 0.7067, 0.0517, 0.8892,\n", - " 0.1740, 0.7202, 0.4927, 0.5881, 0.4987, 0.0409, 0.4921, 0.1209,\n", - " 0.9389, 0.6719, 0.0334, 0.7964, 0.4335, 0.2315, 0.6539, 0.6042,\n", - " 0.1353, 0.3826, 0.3923, 0.2082, 0.8024, 0.5741, 0.6907, 0.6652,\n", - " 0.0283, 0.1852, 0.1148, 0.3475, 0.1180, 0.4366, 0.2036, 0.9552,\n", - " 1.0056, 0.6975, 0.7451, 0.9039, -0.0675, 0.5625, 0.9281, 0.0823,\n", - " 0.3004, 0.4791, 0.1713, 0.4657, 0.5059, 0.8841, 0.5260, 0.6955,\n", - " 0.9296, 0.6941, 0.1076, 0.8700, 0.8157, 0.1934, 0.2641, 0.7738,\n", - " -0.0080, -0.0276, 0.1483, 0.7033, 0.2898, 0.1039, 0.6610, 0.7479,\n", - " 0.7233, 0.0440, 0.9893, 0.4122, 0.0563, 0.4864, 0.8688, 0.7197,\n", - " 0.4593, 0.8789, 0.0956, 0.9762, 0.9411, 0.1843, 0.6555, 0.4150,\n", - " 0.1168, 0.5245, 0.3099, 0.1153, 0.1536, 0.5765, 0.9341, 0.6840,\n", - " 0.2129, 0.8301, 0.6352, 0.1293, 0.6122, 0.8769, 0.2364, 0.4602,\n", - " 0.1429, 0.0763, 0.3027, 0.5972, 0.8060, 0.4264, 0.0642, 0.4969,\n", - " 0.0458, 0.5425, 0.8789, 0.6782, 0.1970, 0.3939, 0.7298, 0.6018,\n", - " 0.0259, 0.1965, 0.1654, 0.8905, 0.9003], requires_grad=True)\n", - "train/loss: 0.7008 valid/loss: 0.6071 train/time: 10.96s valid/time: 2.28s train/acc: 0.8585 valid/acc: 0.5833\n", - "Epoch 18: \n", - "Parameter containing:\n", - "tensor([ 0.6211, 0.3820, 0.6415, 0.6634, 0.8752, 0.5879, 0.4554, 0.1523,\n", - " 0.6645, 0.1269, 0.5682, 0.4210, 0.5870, 0.8663, 0.6067, 0.7130,\n", - " 0.6881, 0.1610, 0.2927, 0.9757, -0.0096, 0.4708, 0.4487, 0.8709,\n", - " 0.4661, 0.6155, 0.4816, 0.2202, 0.1839, 0.2916, 0.0374, 0.1800,\n", - " 0.5933, 0.8551, 0.5287, 0.3047, 0.7406, 0.2113, 0.3764, 0.1988,\n", - " 0.3377, 0.0658, 0.6906, 0.5996, 0.6920, 0.7906, 0.7156, 0.5932,\n", - " 0.5533, 0.5804, 0.7162, 0.6914, 0.9058, 0.6886, 0.3709, 0.4388,\n", - " 0.2485, 0.8417, 0.5674, 0.9382, 0.7536, -0.0059, 0.5619, 1.0610,\n", - " 0.9559, 0.6208, 0.5952, 0.1478, 0.4531, 0.7153, 0.0579, 0.8844,\n", - " 0.1799, 0.7141, 0.4926, 0.5881, 0.4948, 0.0328, 0.4888, 0.1075,\n", - " 0.9442, 0.6584, 0.0380, 0.7833, 0.4356, 0.2347, 0.6583, 0.5939,\n", - " 0.1312, 0.3819, 0.3875, 0.2103, 0.8021, 0.5720, 0.6935, 0.6683,\n", - " 0.0251, 0.1859, 0.1110, 0.3380, 0.1187, 0.4289, 0.1847, 0.9417,\n", - " 0.9888, 0.6958, 0.7490, 0.9016, -0.0634, 0.5617, 0.9256, 0.0845,\n", - " 0.3018, 0.4772, 0.1684, 0.4624, 0.5019, 0.8824, 0.5283, 0.6952,\n", - " 0.9318, 0.6936, 0.1077, 0.8628, 0.8124, 0.1906, 0.2660, 0.7768,\n", - " -0.0047, -0.0290, 0.1472, 0.7067, 0.2895, 0.0991, 0.6581, 0.7440,\n", - " 0.7179, 0.0460, 0.9894, 0.4070, 0.0625, 0.4909, 0.8681, 0.7135,\n", - " 0.4520, 0.8761, 0.0970, 0.9737, 0.9394, 0.1788, 0.6533, 0.4173,\n", - " 0.1262, 0.5269, 0.3101, 0.1118, 0.1575, 0.5699, 0.9244, 0.6857,\n", - " 0.2098, 0.8390, 0.6410, 0.1266, 0.6095, 0.8728, 0.2370, 0.4650,\n", - " 0.1488, 0.0834, 0.3094, 0.5947, 0.8093, 0.4284, 0.0631, 0.4950,\n", - " 0.0449, 0.5437, 0.8763, 0.6767, 0.1962, 0.3918, 0.7286, 0.6042,\n", - " 0.0276, 0.1966, 0.1592, 0.8874, 0.9030], requires_grad=True)\n", - "train/loss: 0.4395 valid/loss: 0.5955 train/time: 11.01s valid/time: 2.63s train/acc: 0.8396 valid/acc: 0.5833\n", - "Epoch 19: \n", - "Parameter containing:\n", - "tensor([ 0.6211, 0.3820, 0.6420, 0.6637, 0.8706, 0.5872, 0.4547, 0.1620,\n", - " 0.6747, 0.1323, 0.5631, 0.4139, 0.5899, 0.8617, 0.6067, 0.7101,\n", - " 0.6864, 0.1629, 0.2899, 0.9770, -0.0128, 0.4740, 0.4453, 0.8724,\n", - " 0.4682, 0.6163, 0.4819, 0.2247, 0.1835, 0.2925, 0.0377, 0.1838,\n", - " 0.5944, 0.8505, 0.5288, 0.3077, 0.7372, 0.2098, 0.3760, 0.1999,\n", - " 0.3286, 0.0705, 0.6988, 0.5930, 0.6903, 0.7960, 0.7131, 0.5974,\n", - " 0.5612, 0.5794, 0.7133, 0.6822, 0.9019, 0.6780, 0.3705, 0.4375,\n", - " 0.2435, 0.8383, 0.5694, 0.9394, 0.7536, -0.0080, 0.5669, 1.0626,\n", - " 0.9562, 0.6210, 0.5918, 0.1420, 0.4558, 0.7141, 0.0626, 0.8906,\n", - " 0.1815, 0.7212, 0.4921, 0.5881, 0.5047, 0.0336, 0.4938, 0.1183,\n", - " 0.9480, 0.6729, 0.0270, 0.7890, 0.4292, 0.2315, 0.6538, 0.5965,\n", - " 0.1414, 0.3850, 0.3823, 0.2137, 0.8035, 0.5777, 0.6987, 0.6710,\n", - " 0.0245, 0.1854, 0.1118, 0.3308, 0.1180, 0.4359, 0.1796, 0.9486,\n", - " 0.9856, 0.6983, 0.7482, 0.9049, -0.0626, 0.5635, 0.9254, 0.0866,\n", - " 0.3032, 0.4805, 0.1692, 0.4535, 0.5022, 0.8818, 0.5270, 0.6976,\n", - " 0.9247, 0.6886, 0.1159, 0.8596, 0.8121, 0.1777, 0.2629, 0.7687,\n", - " -0.0066, -0.0220, 0.1487, 0.7048, 0.2897, 0.1077, 0.6609, 0.7394,\n", - " 0.7212, 0.0447, 0.9900, 0.4026, 0.0690, 0.4893, 0.8685, 0.7186,\n", - " 0.4436, 0.8824, 0.0943, 0.9735, 0.9387, 0.1804, 0.6582, 0.4103,\n", - " 0.1370, 0.5254, 0.3086, 0.0984, 0.1497, 0.5777, 0.9247, 0.6791,\n", - " 0.2239, 0.8359, 0.6269, 0.1201, 0.6072, 0.8845, 0.2403, 0.4633,\n", - " 0.1567, 0.0666, 0.3155, 0.5906, 0.8079, 0.4291, 0.0600, 0.4947,\n", - " 0.0466, 0.5479, 0.8756, 0.6791, 0.1991, 0.3926, 0.7283, 0.6042,\n", - " 0.0245, 0.1903, 0.1513, 0.8944, 0.8955], requires_grad=True)\n", - "train/loss: 0.4777 valid/loss: 0.5774 train/time: 10.99s valid/time: 2.36s train/acc: 0.8396 valid/acc: 0.6111\n", - "Epoch 20: \n", - "Parameter containing:\n", - "tensor([ 0.6221, 0.3817, 0.6412, 0.6578, 0.8865, 0.5832, 0.4614, 0.1585,\n", - " 0.6745, 0.1218, 0.5410, 0.4185, 0.5951, 0.8621, 0.6105, 0.7108,\n", - " 0.6852, 0.1616, 0.2905, 0.9720, -0.0121, 0.4720, 0.4437, 0.8728,\n", - " 0.4699, 0.6162, 0.4830, 0.2189, 0.1853, 0.2947, 0.0420, 0.1896,\n", - " 0.5963, 0.8486, 0.5278, 0.3184, 0.7397, 0.2058, 0.3725, 0.1955,\n", - " 0.3384, 0.0623, 0.6868, 0.6051, 0.7004, 0.8045, 0.7200, 0.5970,\n", - " 0.5529, 0.5651, 0.7221, 0.6930, 0.9107, 0.6916, 0.3734, 0.4414,\n", - " 0.2467, 0.8356, 0.5687, 0.9402, 0.7536, -0.0032, 0.5621, 1.0582,\n", - " 0.9508, 0.6180, 0.5980, 0.1476, 0.4523, 0.7142, 0.0676, 0.8860,\n", - " 0.1868, 0.7174, 0.4925, 0.5881, 0.4974, 0.0325, 0.5041, 0.1217,\n", - " 0.9539, 0.6819, 0.0241, 0.8004, 0.4351, 0.2278, 0.6508, 0.5973,\n", - " 0.1287, 0.3928, 0.3908, 0.2098, 0.8015, 0.5826, 0.7005, 0.6719,\n", - " 0.0273, 0.1837, 0.1181, 0.3410, 0.1094, 0.4498, 0.1899, 0.9546,\n", - " 0.9962, 0.6897, 0.7505, 0.8951, -0.0614, 0.5625, 0.9181, 0.0904,\n", - " 0.3012, 0.4701, 0.1716, 0.4596, 0.5001, 0.8814, 0.5355, 0.7015,\n", - " 0.9300, 0.6853, 0.1179, 0.8616, 0.8129, 0.1859, 0.2620, 0.7757,\n", - " -0.0034, -0.0278, 0.1437, 0.7040, 0.2896, 0.0970, 0.6586, 0.7364,\n", - " 0.7178, 0.0424, 0.9806, 0.4075, 0.0619, 0.4862, 0.8706, 0.7104,\n", - " 0.4392, 0.8835, 0.0991, 0.9838, 0.9449, 0.1869, 0.6617, 0.4145,\n", - " 0.1410, 0.5313, 0.3095, 0.1030, 0.1541, 0.5686, 0.9219, 0.6788,\n", - " 0.2159, 0.8424, 0.6347, 0.1205, 0.6098, 0.8753, 0.2351, 0.4641,\n", - " 0.1261, 0.0564, 0.2854, 0.5999, 0.8105, 0.4264, 0.0603, 0.4887,\n", - " 0.0425, 0.5494, 0.8723, 0.6737, 0.2002, 0.3925, 0.7265, 0.6050,\n", - " 0.0240, 0.1935, 0.1490, 0.8920, 0.9056], requires_grad=True)\n", - "train/loss: 0.3420 valid/loss: 0.6009 train/time: 11.13s valid/time: 2.38s train/acc: 0.8962 valid/acc: 0.5278\n", - "Epoch 21: \n", - "Parameter containing:\n", - "tensor([ 0.6237, 0.3815, 0.6354, 0.6577, 0.8707, 0.5798, 0.4559, 0.1649,\n", - " 0.6793, 0.1254, 0.5348, 0.4132, 0.5884, 0.8747, 0.6114, 0.7074,\n", - " 0.6900, 0.1666, 0.2903, 0.9675, -0.0123, 0.4733, 0.4415, 0.8697,\n", - " 0.4722, 0.6193, 0.4835, 0.2199, 0.1877, 0.2964, 0.0444, 0.1947,\n", - " 0.6030, 0.8429, 0.5267, 0.3186, 0.7366, 0.2132, 0.3817, 0.1935,\n", - " 0.3336, 0.0577, 0.6946, 0.5951, 0.6898, 0.7967, 0.7189, 0.6005,\n", - " 0.5581, 0.5710, 0.7139, 0.6908, 0.9099, 0.6891, 0.3751, 0.4400,\n", - " 0.2439, 0.8316, 0.5614, 0.9362, 0.7536, -0.0055, 0.5631, 1.0656,\n", - " 0.9496, 0.6200, 0.5943, 0.1438, 0.4661, 0.7082, 0.0665, 0.8859,\n", - " 0.1847, 0.7153, 0.4927, 0.5881, 0.5012, 0.0295, 0.4954, 0.1159,\n", - " 0.9527, 0.6813, 0.0259, 0.7991, 0.4299, 0.2278, 0.6502, 0.5905,\n", - " 0.1204, 0.3898, 0.3927, 0.2084, 0.8005, 0.5780, 0.6858, 0.6609,\n", - " 0.0278, 0.1848, 0.1160, 0.3258, 0.1115, 0.4429, 0.1909, 0.9670,\n", - " 0.9986, 0.6900, 0.7494, 0.8962, -0.0616, 0.5637, 0.9178, 0.0893,\n", - " 0.3002, 0.4747, 0.1737, 0.4552, 0.5012, 0.8819, 0.5307, 0.7030,\n", - " 0.9309, 0.6917, 0.1084, 0.8609, 0.8132, 0.1873, 0.2641, 0.7720,\n", - " -0.0094, -0.0253, 0.1456, 0.7157, 0.2900, 0.1029, 0.6617, 0.7400,\n", - " 0.7207, 0.0420, 0.9751, 0.4014, 0.0640, 0.4913, 0.8676, 0.7143,\n", - " 0.4429, 0.8840, 0.1059, 0.9722, 0.9525, 0.1853, 0.6621, 0.4128,\n", - " 0.1523, 0.5251, 0.3071, 0.1035, 0.1585, 0.5705, 0.9203, 0.6869,\n", - " 0.2171, 0.8423, 0.6393, 0.1262, 0.6065, 0.8786, 0.2437, 0.4694,\n", - " 0.1403, 0.0603, 0.2994, 0.5977, 0.8090, 0.4243, 0.0560, 0.4910,\n", - " 0.0443, 0.5506, 0.8749, 0.6759, 0.2023, 0.3928, 0.7242, 0.6040,\n", - " 0.0229, 0.1903, 0.1371, 0.9017, 0.9053], requires_grad=True)\n", - "train/loss: 0.7455 valid/loss: 0.5915 train/time: 10.83s valid/time: 2.73s train/acc: 0.8962 valid/acc: 0.6389\n", - "Epoch 22: \n", - "Parameter containing:\n", - "tensor([ 0.6215, 0.3820, 0.6279, 0.6804, 0.8768, 0.5939, 0.4565, 0.1607,\n", - " 0.6747, 0.1307, 0.5317, 0.4070, 0.5872, 0.8780, 0.6121, 0.7115,\n", - " 0.6847, 0.1607, 0.2934, 0.9629, -0.0090, 0.4710, 0.4433, 0.8698,\n", - " 0.4739, 0.6197, 0.4830, 0.2152, 0.1877, 0.2884, 0.0452, 0.1952,\n", - " 0.6100, 0.8403, 0.5281, 0.3212, 0.7369, 0.2139, 0.3741, 0.2007,\n", - " 0.3310, 0.0699, 0.6900, 0.5956, 0.7057, 0.8062, 0.7180, 0.5987,\n", - " 0.5555, 0.5652, 0.7255, 0.6946, 0.9055, 0.6926, 0.3726, 0.4377,\n", - " 0.2543, 0.8322, 0.5521, 0.9239, 0.7536, -0.0043, 0.5583, 1.0657,\n", - " 0.9480, 0.6218, 0.5951, 0.1445, 0.4663, 0.7111, 0.0655, 0.8808,\n", - " 0.1864, 0.7200, 0.4938, 0.5881, 0.4900, 0.0313, 0.4941, 0.1041,\n", - " 0.9533, 0.6700, 0.0416, 0.7950, 0.4385, 0.2370, 0.6616, 0.5887,\n", - " 0.1223, 0.3859, 0.3874, 0.2166, 0.8074, 0.5718, 0.6885, 0.6658,\n", - " 0.0266, 0.1866, 0.1112, 0.3293, 0.1045, 0.4482, 0.1816, 0.9616,\n", - " 0.9906, 0.6881, 0.7515, 0.8954, -0.0581, 0.5584, 0.9167, 0.0851,\n", - " 0.3042, 0.4755, 0.1702, 0.4565, 0.4992, 0.8761, 0.5278, 0.6956,\n", - " 0.9346, 0.6873, 0.1146, 0.8600, 0.8116, 0.1884, 0.2654, 0.7729,\n", - " -0.0061, -0.0295, 0.1485, 0.7027, 0.2894, 0.1020, 0.6633, 0.7433,\n", - " 0.7146, 0.0391, 0.9851, 0.3997, 0.0769, 0.4907, 0.8600, 0.7136,\n", - " 0.4375, 0.8796, 0.1075, 0.9779, 0.9460, 0.1874, 0.6548, 0.4104,\n", - " 0.1542, 0.5236, 0.3046, 0.0994, 0.1531, 0.5770, 0.9245, 0.6811,\n", - " 0.2202, 0.8370, 0.6353, 0.1250, 0.6040, 0.8857, 0.2363, 0.4624,\n", - " 0.1482, 0.0482, 0.3060, 0.5951, 0.8117, 0.4271, 0.0526, 0.4935,\n", - " 0.0452, 0.5450, 0.8755, 0.6737, 0.1956, 0.3905, 0.7211, 0.6059,\n", - " 0.0257, 0.1945, 0.1267, 0.9037, 0.9056], requires_grad=True)\n", - "train/loss: 0.5441 valid/loss: 0.5825 train/time: 11.99s valid/time: 2.53s train/acc: 0.8491 valid/acc: 0.6389\n", - "Epoch 23: \n", - "Parameter containing:\n", - "tensor([ 0.6213, 0.3836, 0.6272, 0.6678, 0.9082, 0.5852, 0.4650, 0.1672,\n", - " 0.6865, 0.1408, 0.5229, 0.3936, 0.5783, 0.8715, 0.6029, 0.7068,\n", - " 0.6863, 0.1655, 0.2956, 0.9657, -0.0072, 0.4692, 0.4416, 0.8655,\n", - " 0.4798, 0.6196, 0.4840, 0.2067, 0.1899, 0.2903, 0.0437, 0.1891,\n", - " 0.6107, 0.8404, 0.5294, 0.3286, 0.7346, 0.2180, 0.3828, 0.1992,\n", - " 0.3237, 0.0702, 0.6983, 0.5835, 0.6937, 0.7998, 0.7165, 0.6025,\n", - " 0.5626, 0.5733, 0.7174, 0.6911, 0.8940, 0.6870, 0.3740, 0.4395,\n", - " 0.2478, 0.8275, 0.5469, 0.9204, 0.7536, -0.0030, 0.5604, 1.0649,\n", - " 0.9458, 0.6201, 0.5950, 0.1426, 0.4671, 0.7125, 0.0646, 0.8931,\n", - " 0.1825, 0.7157, 0.4946, 0.5881, 0.4986, 0.0389, 0.5075, 0.1215,\n", - " 0.9511, 0.6815, 0.0226, 0.8067, 0.4314, 0.2336, 0.6565, 0.5818,\n", - " 0.1208, 0.3836, 0.3889, 0.2116, 0.8031, 0.5672, 0.6968, 0.6751,\n", - " 0.0253, 0.1864, 0.1113, 0.3296, 0.0842, 0.4428, 0.1943, 0.9705,\n", - " 1.0037, 0.6876, 0.7536, 0.8948, -0.0541, 0.5618, 0.9168, 0.0875,\n", - " 0.3019, 0.4757, 0.1710, 0.4477, 0.4964, 0.8772, 0.5280, 0.6985,\n", - " 0.9231, 0.6817, 0.1286, 0.8583, 0.8095, 0.1873, 0.2678, 0.7685,\n", - " -0.0104, -0.0266, 0.1469, 0.7049, 0.2927, 0.1067, 0.6666, 0.7405,\n", - " 0.7177, 0.0423, 0.9792, 0.4080, 0.0716, 0.4812, 0.8680, 0.7086,\n", - " 0.4330, 0.8850, 0.1029, 0.9927, 0.9456, 0.1963, 0.6637, 0.4111,\n", - " 0.1554, 0.5247, 0.3056, 0.0978, 0.1476, 0.5747, 0.9219, 0.6766,\n", - " 0.2175, 0.8379, 0.6371, 0.1231, 0.6069, 0.8844, 0.2334, 0.4579,\n", - " 0.1541, 0.0589, 0.3108, 0.5925, 0.8122, 0.4257, 0.0512, 0.4932,\n", - " 0.0467, 0.5521, 0.8744, 0.6749, 0.1992, 0.3901, 0.7218, 0.6064,\n", - " 0.0241, 0.1908, 0.1132, 0.8980, 0.9042], requires_grad=True)\n", - "train/loss: 0.4624 valid/loss: 0.5920 train/time: 11.56s valid/time: 2.26s train/acc: 0.8868 valid/acc: 0.6389\n", - "Epoch 24: \n", - "Parameter containing:\n", - "tensor([ 0.6210, 0.3825, 0.6229, 0.6781, 0.9002, 0.5961, 0.4708, 0.1606,\n", - " 0.6804, 0.1338, 0.5239, 0.4001, 0.5810, 0.8797, 0.6094, 0.7109,\n", - " 0.6856, 0.1618, 0.2882, 0.9563, -0.0141, 0.4672, 0.4369, 0.8584,\n", - " 0.4766, 0.6183, 0.4830, 0.2091, 0.1896, 0.2925, 0.0473, 0.1845,\n", - " 0.6177, 0.8401, 0.5293, 0.3139, 0.7378, 0.2166, 0.3817, 0.1981,\n", - " 0.3317, 0.0679, 0.6894, 0.5875, 0.6974, 0.7988, 0.7206, 0.6000,\n", - " 0.5555, 0.5712, 0.7221, 0.6917, 0.8778, 0.6848, 0.3737, 0.4393,\n", - " 0.2511, 0.8226, 0.5516, 0.9256, 0.7536, -0.0023, 0.5600, 1.0603,\n", - " 0.9396, 0.6207, 0.5953, 0.1460, 0.4573, 0.7263, 0.0753, 0.8846,\n", - " 0.1889, 0.7107, 0.4940, 0.5881, 0.4976, 0.0224, 0.5005, 0.1138,\n", - " 0.9580, 0.6758, 0.0220, 0.7858, 0.4326, 0.2263, 0.6491, 0.5765,\n", - " 0.1205, 0.3718, 0.3824, 0.2190, 0.8088, 0.5705, 0.7023, 0.6798,\n", - " 0.0250, 0.1852, 0.1145, 0.3250, 0.0886, 0.4455, 0.1781, 0.9631,\n", - " 0.9886, 0.6868, 0.7553, 0.8941, -0.0515, 0.5615, 0.9165, 0.0907,\n", - " 0.3027, 0.4742, 0.1712, 0.4456, 0.4943, 0.8760, 0.5310, 0.7015,\n", - " 0.9236, 0.6846, 0.1249, 0.8572, 0.8105, 0.1819, 0.2642, 0.7716,\n", - " -0.0054, -0.0227, 0.1509, 0.7063, 0.2879, 0.1039, 0.6621, 0.7426,\n", - " 0.7158, 0.0406, 0.9764, 0.3988, 0.0732, 0.4931, 0.8635, 0.7106,\n", - " 0.4422, 0.8796, 0.1086, 0.9749, 0.9489, 0.1844, 0.6589, 0.4144,\n", - " 0.1690, 0.5244, 0.3015, 0.0926, 0.1555, 0.5752, 0.9224, 0.6830,\n", - " 0.2242, 0.8432, 0.6282, 0.1221, 0.5959, 0.8854, 0.2405, 0.4680,\n", - " 0.1481, 0.0605, 0.3050, 0.5923, 0.8131, 0.4257, 0.0525, 0.4930,\n", - " 0.0480, 0.5551, 0.8737, 0.6759, 0.2006, 0.3905, 0.7235, 0.6059,\n", - " 0.0236, 0.1895, 0.1070, 0.9003, 0.9081], requires_grad=True)\n", - "train/loss: 0.3325 valid/loss: 0.5828 train/time: 10.97s valid/time: 2.54s train/acc: 0.8774 valid/acc: 0.5833\n", - "Epoch 25: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3845, 0.6179, 0.6777, 0.9273, 0.5935, 0.4738, 0.1517,\n", - " 0.6686, 0.1225, 0.5065, 0.4095, 0.5883, 0.8810, 0.6165, 0.7161,\n", - " 0.6853, 0.1571, 0.2926, 0.9635, -0.0104, 0.4666, 0.4336, 0.8542,\n", - " 0.4788, 0.6189, 0.4819, 0.2049, 0.1922, 0.2898, 0.0468, 0.1918,\n", - " 0.6209, 0.8364, 0.5285, 0.3146, 0.7378, 0.2114, 0.3679, 0.1942,\n", - " 0.3418, 0.0605, 0.6761, 0.6080, 0.7142, 0.8139, 0.7252, 0.5968,\n", - " 0.5465, 0.5518, 0.7314, 0.6858, 0.8780, 0.6796, 0.3744, 0.4353,\n", - " 0.2593, 0.8211, 0.5536, 0.9241, 0.7536, -0.0067, 0.5619, 1.0597,\n", - " 0.9346, 0.6248, 0.5921, 0.1479, 0.4488, 0.7223, 0.0730, 0.8856,\n", - " 0.1834, 0.7090, 0.4937, 0.5881, 0.4972, 0.0225, 0.4992, 0.1059,\n", - " 0.9532, 0.6714, 0.0221, 0.7916, 0.4244, 0.2341, 0.6556, 0.5705,\n", - " 0.1202, 0.3694, 0.3895, 0.2197, 0.8105, 0.5762, 0.7014, 0.6771,\n", - " 0.0317, 0.1879, 0.1112, 0.3171, 0.1200, 0.4349, 0.1769, 0.9631,\n", - " 0.9877, 0.6903, 0.7483, 0.8993, -0.0561, 0.5655, 0.9146, 0.0914,\n", - " 0.3061, 0.4831, 0.1739, 0.4305, 0.5011, 0.8744, 0.5221, 0.7001,\n", - " 0.9377, 0.6769, 0.1278, 0.8659, 0.8024, 0.1810, 0.2582, 0.7689,\n", - " -0.0046, -0.0091, 0.1487, 0.7081, 0.2849, 0.1065, 0.6639, 0.7407,\n", - " 0.7107, 0.0407, 0.9797, 0.4022, 0.0764, 0.4865, 0.8669, 0.7088,\n", - " 0.4385, 0.8814, 0.1060, 0.9907, 0.9420, 0.1918, 0.6603, 0.4115,\n", - " 0.1666, 0.5238, 0.2983, 0.0921, 0.1565, 0.5760, 0.9187, 0.6840,\n", - " 0.2319, 0.8522, 0.6237, 0.1260, 0.5875, 0.8869, 0.2439, 0.4723,\n", - " 0.1586, 0.0593, 0.3155, 0.5814, 0.8085, 0.4306, 0.0416, 0.4928,\n", - " 0.0459, 0.5581, 0.8691, 0.6771, 0.2040, 0.3886, 0.7161, 0.6074,\n", - " 0.0167, 0.1783, 0.1031, 0.9107, 0.9149], requires_grad=True)\n", - "train/loss: 0.3603 valid/loss: 0.5791 train/time: 10.78s valid/time: 2.25s train/acc: 0.8679 valid/acc: 0.6389\n", - "Epoch 26: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3868, 0.6172, 0.6717, 0.9097, 0.5945, 0.4780, 0.1521,\n", - " 0.6733, 0.1262, 0.5016, 0.4050, 0.5866, 0.8761, 0.6131, 0.7121,\n", - " 0.6880, 0.1616, 0.2913, 0.9620, -0.0117, 0.4698, 0.4339, 0.8580,\n", - " 0.4791, 0.6174, 0.4827, 0.1988, 0.1960, 0.2908, 0.0487, 0.1936,\n", - " 0.6309, 0.8356, 0.5287, 0.3179, 0.7329, 0.2219, 0.3783, 0.1969,\n", - " 0.3246, 0.0677, 0.6972, 0.5848, 0.6994, 0.8022, 0.7176, 0.6020,\n", - " 0.5625, 0.5682, 0.7116, 0.6965, 0.8883, 0.6926, 0.3780, 0.4411,\n", - " 0.2461, 0.8173, 0.5527, 0.9241, 0.7536, -0.0023, 0.5594, 1.0628,\n", - " 0.9343, 0.6194, 0.5972, 0.1451, 0.4657, 0.7107, 0.0715, 0.8811,\n", - " 0.1838, 0.7072, 0.4937, 0.5881, 0.4982, 0.0362, 0.4944, 0.0972,\n", - " 0.9533, 0.6753, 0.0388, 0.8006, 0.4256, 0.2348, 0.6568, 0.5619,\n", - " 0.1187, 0.3909, 0.3925, 0.2144, 0.8063, 0.5509, 0.6882, 0.6707,\n", - " 0.0319, 0.1831, 0.1216, 0.3207, 0.0938, 0.4394, 0.1924, 0.9747,\n", - " 1.0036, 0.6847, 0.7570, 0.8945, -0.0470, 0.5535, 0.9162, 0.0944,\n", - " 0.3133, 0.4693, 0.1678, 0.4475, 0.4918, 0.8654, 0.5376, 0.6989,\n", - " 0.9256, 0.6853, 0.1187, 0.8583, 0.8130, 0.1743, 0.2653, 0.7690,\n", - " -0.0057, -0.0253, 0.1551, 0.7099, 0.2913, 0.1078, 0.6632, 0.7432,\n", - " 0.7101, 0.0314, 0.9796, 0.4039, 0.0823, 0.4847, 0.8635, 0.7081,\n", - " 0.4402, 0.8794, 0.1125, 0.9959, 0.9450, 0.1987, 0.6565, 0.4105,\n", - " 0.1685, 0.5256, 0.2999, 0.0925, 0.1559, 0.5726, 0.9140, 0.6827,\n", - " 0.2293, 0.8563, 0.6282, 0.1272, 0.5898, 0.8846, 0.2422, 0.4717,\n", - " 0.1605, 0.0487, 0.3151, 0.5877, 0.8161, 0.4320, 0.0549, 0.4936,\n", - " 0.0486, 0.5515, 0.8704, 0.6739, 0.1951, 0.3893, 0.7263, 0.6077,\n", - " 0.0222, 0.1913, 0.0987, 0.9164, 0.9075], requires_grad=True)\n", - "train/loss: 0.3233 valid/loss: 0.5915 train/time: 10.78s valid/time: 2.56s train/acc: 0.8679 valid/acc: 0.6667\n", - "Epoch 27: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3863, 0.6171, 0.6678, 0.9111, 0.5995, 0.4739, 0.1532,\n", - " 0.6726, 0.1274, 0.5002, 0.4029, 0.5917, 0.8923, 0.6260, 0.7197,\n", - " 0.6816, 0.1526, 0.2958, 0.9620, -0.0073, 0.4749, 0.4310, 0.8737,\n", - " 0.4876, 0.6283, 0.4868, 0.1796, 0.2009, 0.3028, 0.0468, 0.1702,\n", - " 0.6563, 0.8334, 0.5353, 0.3316, 0.7430, 0.2192, 0.3822, 0.1986,\n", - " 0.3387, 0.0686, 0.6828, 0.5842, 0.7014, 0.7924, 0.7271, 0.5968,\n", - " 0.5505, 0.5726, 0.7200, 0.6885, 0.8813, 0.6839, 0.3735, 0.4418,\n", - " 0.2533, 0.8210, 0.5506, 0.9172, 0.7536, 0.0019, 0.5495, 1.0637,\n", - " 0.9356, 0.6182, 0.6042, 0.1484, 0.4683, 0.7150, 0.0716, 0.8804,\n", - " 0.1804, 0.6898, 0.4932, 0.5881, 0.4989, 0.0233, 0.4906, 0.0992,\n", - " 0.9511, 0.6738, 0.0294, 0.7918, 0.4279, 0.2380, 0.6605, 0.5573,\n", - " 0.1149, 0.3864, 0.3821, 0.2145, 0.8042, 0.5619, 0.6893, 0.6685,\n", - " 0.0337, 0.1882, 0.1119, 0.3222, 0.0896, 0.4432, 0.1838, 0.9707,\n", - " 0.9957, 0.6933, 0.7481, 0.9016, -0.0574, 0.5628, 0.9147, 0.0860,\n", - " 0.3062, 0.4783, 0.1749, 0.4403, 0.5021, 0.8737, 0.5289, 0.6967,\n", - " 0.9233, 0.6916, 0.1111, 0.8699, 0.7972, 0.1954, 0.2612, 0.7673,\n", - " -0.0074, -0.0212, 0.1455, 0.7042, 0.2947, 0.1094, 0.6654, 0.7438,\n", - " 0.7118, 0.0453, 0.9770, 0.3958, 0.0784, 0.4932, 0.8579, 0.7087,\n", - " 0.4380, 0.8740, 0.1142, 0.9825, 0.9544, 0.1893, 0.6495, 0.4105,\n", - " 0.1780, 0.5308, 0.3050, 0.1060, 0.1532, 0.5642, 0.9109, 0.6835,\n", - " 0.2121, 0.8556, 0.6469, 0.1368, 0.6001, 0.8754, 0.2403, 0.4651,\n", - " 0.1578, 0.0539, 0.3082, 0.5895, 0.8055, 0.4260, 0.0468, 0.4917,\n", - " 0.0471, 0.5524, 0.8732, 0.6759, 0.2015, 0.3959, 0.7224, 0.6060,\n", - " 0.0115, 0.1821, 0.1014, 0.8977, 0.9087], requires_grad=True)\n", - "train/loss: 0.8285 valid/loss: 0.5859 train/time: 10.78s valid/time: 2.22s train/acc: 0.8679 valid/acc: 0.6389\n", - "Epoch 28: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3879, 0.6152, 0.6770, 0.9064, 0.6080, 0.4811, 0.1569,\n", - " 0.6822, 0.1193, 0.4996, 0.4105, 0.6049, 0.8716, 0.6313, 0.7208,\n", - " 0.6869, 0.1533, 0.3033, 0.9832, -0.0025, 0.4741, 0.4313, 0.8787,\n", - " 0.4888, 0.6252, 0.4859, 0.1794, 0.1944, 0.2991, 0.0434, 0.1736,\n", - " 0.6521, 0.8340, 0.5352, 0.3433, 0.7443, 0.2217, 0.3926, 0.1948,\n", - " 0.3431, 0.0582, 0.6788, 0.5816, 0.6966, 0.7829, 0.7338, 0.5961,\n", - " 0.5483, 0.5713, 0.7188, 0.6731, 0.8733, 0.6674, 0.3854, 0.4305,\n", - " 0.2537, 0.8091, 0.5600, 0.9135, 0.7536, -0.0202, 0.5734, 1.0695,\n", - " 0.9208, 0.6298, 0.5784, 0.1415, 0.4576, 0.7188, 0.0717, 0.8679,\n", - " 0.1791, 0.6773, 0.4930, 0.5881, 0.4861, 0.0193, 0.5178, 0.1096,\n", - " 0.9507, 0.6834, 0.0173, 0.8159, 0.4492, 0.2231, 0.6431, 0.5452,\n", - " 0.1120, 0.3783, 0.3770, 0.2082, 0.7974, 0.5884, 0.6861, 0.6575,\n", - " 0.0463, 0.1995, 0.0948, 0.3147, 0.0725, 0.4368, 0.1737, 0.9946,\n", - " 0.9890, 0.6670, 0.7485, 0.8741, -0.0613, 0.5510, 0.8951, 0.0796,\n", - " 0.3087, 0.4705, 0.1723, 0.4462, 0.5042, 0.8611, 0.5182, 0.6723,\n", - " 0.9043, 0.6978, 0.1120, 0.8641, 0.7860, 0.2083, 0.2653, 0.7874,\n", - " -0.0140, -0.0191, 0.1488, 0.7083, 0.2941, 0.0880, 0.6767, 0.7547,\n", - " 0.6916, 0.0488, 0.9703, 0.3989, 0.0777, 0.4848, 0.8613, 0.7122,\n", - " 0.4334, 0.8746, 0.1071, 0.9941, 0.9541, 0.1986, 0.6508, 0.4048,\n", - " 0.1740, 0.5353, 0.3057, 0.1229, 0.1592, 0.5575, 0.9100, 0.6853,\n", - " 0.2005, 0.8616, 0.6545, 0.1357, 0.6020, 0.8647, 0.2373, 0.4648,\n", - " 0.1615, 0.0570, 0.3098, 0.5875, 0.8096, 0.4409, 0.0274, 0.4828,\n", - " 0.0252, 0.5274, 0.8570, 0.6495, 0.1849, 0.3733, 0.7026, 0.6215,\n", - " 0.0124, 0.2004, 0.0776, 0.9030, 0.9007], requires_grad=True)\n", - "train/loss: 0.6068 valid/loss: 0.5817 train/time: 10.91s valid/time: 2.43s train/acc: 0.8491 valid/acc: 0.6944\n", - "Epoch 29: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3899, 0.6147, 0.6887, 0.8977, 0.6192, 0.4968, 0.1451,\n", - " 0.6680, 0.1272, 0.4977, 0.4017, 0.5746, 0.8732, 0.6158, 0.7127,\n", - " 0.6966, 0.1631, 0.3009, 0.9802, -0.0051, 0.4767, 0.4314, 0.8820,\n", - " 0.4881, 0.6254, 0.4863, 0.1803, 0.1953, 0.3010, 0.0425, 0.1765,\n", - " 0.6505, 0.8340, 0.5335, 0.3428, 0.7354, 0.2238, 0.3805, 0.2011,\n", - " 0.3100, 0.0590, 0.7130, 0.5672, 0.6958, 0.8047, 0.7166, 0.6062,\n", - " 0.5774, 0.5646, 0.6926, 0.6917, 0.8757, 0.6850, 0.3747, 0.4354,\n", - " 0.2469, 0.8147, 0.5648, 0.9179, 0.7536, -0.0056, 0.5589, 1.0639,\n", - " 0.9274, 0.6197, 0.5954, 0.1384, 0.4662, 0.7223, 0.0798, 0.8772,\n", - " 0.1871, 0.6823, 0.4919, 0.5881, 0.4871, 0.0249, 0.5118, 0.1040,\n", - " 0.9580, 0.6749, 0.0274, 0.8114, 0.4278, 0.2364, 0.6537, 0.5412,\n", - " 0.0930, 0.3810, 0.3917, 0.2070, 0.8015, 0.5684, 0.7045, 0.6793,\n", - " 0.0017, 0.1964, 0.0784, 0.3119, 0.0790, 0.4340, 0.1764, 0.9912,\n", - " 0.9918, 0.6944, 0.7588, 0.9005, -0.0390, 0.5533, 0.9112, 0.1138,\n", - " 0.3235, 0.4726, 0.1710, 0.4323, 0.4864, 0.8563, 0.5345, 0.7069,\n", - " 0.9140, 0.7038, 0.1017, 0.8591, 0.8056, 0.1912, 0.2695, 0.7606,\n", - " -0.0126, -0.0236, 0.1383, 0.7472, 0.2737, 0.1163, 0.6621, 0.7342,\n", - " 0.7005, 0.0195, 0.9714, 0.3996, 0.0849, 0.4901, 0.8659, 0.7025,\n", - " 0.4368, 0.8833, 0.1170, 1.0081, 0.9501, 0.1967, 0.6588, 0.4120,\n", - " 0.1757, 0.5256, 0.2974, 0.1209, 0.1818, 0.5719, 0.9332, 0.6991,\n", - " 0.2207, 0.8376, 0.6263, 0.1280, 0.5927, 0.8812, 0.2665, 0.4833,\n", - " 0.1598, 0.0470, 0.3091, 0.5859, 0.8227, 0.4326, 0.0316, 0.4722,\n", - " 0.0467, 0.5599, 0.8553, 0.6592, 0.1957, 0.3952, 0.7090, 0.6245,\n", - " 0.0186, 0.1752, 0.0732, 0.9004, 0.8849], requires_grad=True)\n", - "train/loss: 0.3521 valid/loss: 0.5778 train/time: 11.53s valid/time: 2.59s train/acc: 0.8774 valid/acc: 0.6667\n", - "Epoch 30: \n", - "Parameter containing:\n", - "tensor([ 0.6209, 0.3910, 0.6163, 0.6861, 0.9147, 0.6223, 0.5030, 0.1440,\n", - " 0.6729, 0.1438, 0.4941, 0.3840, 0.5813, 0.8903, 0.6350, 0.7180,\n", - " 0.6859, 0.1550, 0.3046, 0.9739, -0.0012, 0.4758, 0.4272, 0.8898,\n", - " 0.4906, 0.6222, 0.4875, 0.1767, 0.1940, 0.3042, 0.0394, 0.1810,\n", - " 0.6481, 0.8311, 0.5330, 0.3443, 0.7548, 0.2204, 0.3653, 0.2033,\n", - " 0.3462, 0.0591, 0.6681, 0.5891, 0.7254, 0.8276, 0.7451, 0.6014,\n", - " 0.5408, 0.5268, 0.7373, 0.6862, 0.8679, 0.6776, 0.3725, 0.4302,\n", - " 0.2536, 0.8165, 0.5547, 0.9277, 0.7536, -0.0086, 0.5566, 1.0656,\n", - " 0.9243, 0.6242, 0.5937, 0.1408, 0.4617, 0.7268, 0.0718, 0.8766,\n", - " 0.1777, 0.6799, 0.4930, 0.5881, 0.4891, 0.0234, 0.5087, 0.1034,\n", - " 0.9483, 0.6713, 0.0278, 0.8013, 0.4168, 0.2456, 0.6629, 0.5363,\n", - " 0.1042, 0.3705, 0.3812, 0.2116, 0.8040, 0.5745, 0.6993, 0.6709,\n", - " 0.0184, 0.1964, 0.0905, 0.3104, 0.0955, 0.4275, 0.1722, 0.9863,\n", - " 0.9879, 0.6988, 0.7474, 0.9076, -0.0496, 0.5514, 0.9065, 0.1000,\n", - " 0.3268, 0.4755, 0.1716, 0.4412, 0.4981, 0.8536, 0.5337, 0.6959,\n", - " 0.9292, 0.6905, 0.1120, 0.8621, 0.7965, 0.1978, 0.2605, 0.7736,\n", - " -0.0106, -0.0089, 0.1456, 0.7169, 0.2764, 0.1040, 0.6690, 0.7484,\n", - " 0.6970, 0.0452, 0.9714, 0.3999, 0.0820, 0.4902, 0.8673, 0.7028,\n", - " 0.4369, 0.8843, 0.1187, 1.0122, 0.9506, 0.1979, 0.6587, 0.4119,\n", - " 0.1772, 0.5206, 0.2944, 0.1051, 0.1732, 0.5745, 0.9293, 0.6869,\n", - " 0.2328, 0.8392, 0.6197, 0.1214, 0.5892, 0.8928, 0.2624, 0.4776,\n", - " 0.1601, 0.0378, 0.3087, 0.5952, 0.8138, 0.4348, 0.0255, 0.4699,\n", - " 0.0406, 0.5426, 0.8549, 0.6610, 0.1836, 0.4034, 0.7042, 0.6237,\n", - " 0.0093, 0.1787, 0.0630, 0.9063, 0.8751], requires_grad=True)\n", - "train/loss: 0.3604 valid/loss: 0.5726 train/time: 12.92s valid/time: 2.74s train/acc: 0.8774 valid/acc: 0.7222\n", - "\n", - "Training completed!\n", - "train/time: 15m60s train/time_per_epoch: 32.00s train/time_per_step: 1.45s valid/time: 1m21s valid/time_per_eval: 2.70s\n" - ] - } - ], + "outputs": [], "source": [ + "# Currently, we print more than we need to debug the reproducibility problem\n", "from lambeq import PytorchTrainer\n", "\n", "trainer = PytorchTrainer(\n", @@ -1242,7 +394,7 @@ { "data": { "text/plain": [ - "Text(7.4, 0.7222222222222222, 'early stopping')" + "Text(15.4, 0.7777777777777778, 'early stopping')" ] }, "execution_count": 14, @@ -1251,7 +403,7 @@ }, { "data": { - "image/png": "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xJ6rPMibVqlSpTx/Jv8glvYLp8fXZr4s+fXxtVnfa2OPVd54brI8fG3my5JfH19b8c5NvCxIRERERERkAAyuiIiIiIiIDIDBVQE5OTlh0qRJ6t7S8LWZL0t+fXxt5smSX5spsuT3m6/NPFnya7P018fXZhgsaEFERERERGQA7LkiIiIiIiIyAAZXREREREREBsDgioiIiIiIyAAYXBERERERERkAgysiIiIiIiIDYHBFRERERERkAAyuiIiIiIiIDIDBFRERERERkQEwuCIiIiIiIjIABldEREREREQGwOCKiIiIiIjIABhcERERERERGQCDKyIiIiIiIgNgcEVERERERGQADK6IiIiIiIgMgMEVERERERGRATC4IiIiIiIiMgAGV0RERERERAbA4IqIiIiIiMgAGFwREREREREZAIMrIiIiIiIiA2BwRUREREREZAAMroiIiIiIiAyAwRUREREREZEBMLgiIiIiIiIyAAZXREREREREBsDgioiIiIiIyAAYXBERERERERkAgysiIiIiIiIDYHBFRERERERkAAyuiIiIiIiIDIDBFRERERERkQEwuCIiIiIiIjIABldEREREREQGYG+Ig1iazMxMhISEoFSpUrCxsdG6OUREViMrKwtxcXGoWLEibG15/S8nnpuIiEz/3MTgKg9y8qpcubLWzSAislpBQUGoVKmS1s0wKTw3ERGZ/rmJwVUe5Kqg/g308PDQujlERFYjNjZWBRD6z2G6jecmIiLTPzcxuMqDPt1CTl48gRERlTymvd2N5yYiItM/NzGhnYiIiIiIyADMIriaOXMm/P394ezsjFatWuHAgQP5bpuWlobJkyejRo0aavsmTZpg/fr1JdpeIiIiIiKyPiYfXC1btgxvvvkmJk2ahMOHD6tgqVevXggLC8tz+w8++AA//fQTvv/+e5w+fRovvPAC+vfvjyNHjpR424mIiIiIyHrYZEltQRMmPVUPPvggZsyYkV2KVgaUvfLKK3jvvffu2l5KJI4fPx4vvfRS9rrHH38cLi4uWLRoUYEHrXl6eiImJoZ57UREJYifv/nje0NEZPqfvyZd0CI1NRWHDh3CuHHjstdJbfnu3btj7969ee6TkpKi0gFzksBq165d+T6P7CO3nG8gERGRlnhuIiIyPyYdXEVERCAjIwPly5fPtV4enz17Ns99JGVw2rRp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NUREREREFovBldWkBD6mdUuIiIiIiCwagytLlhABXN2tW2ZKIBERERGRUTG4svSUwKxMoEITwMtf69YQEREREVk0BleW7PStiYPrsUogEREREZGxMbiyVElRwOXtuuX6/bRuDRERERGRxWNwZanOrQcy04Fy9QGfmlq3hoiIiIjI4hkluPL398fkyZMRGBhojMNTQZxhSiARERERkdkHV6+//jr+/PNPVK9eHT169MDSpUuRkpJijKeivKSnAhe36pbr9dG6NUREREREVsFowdXRo0dx4MAB1KtXD6+88goqVKiAl19+GYcPHzbGU1JOwQeB9CTArSxQvqHWrSEiIiIisgpGHXPVvHlzfPfddwgJCcGkSZPw888/48EHH0TTpk0xd+5cZGVlGfPprdflHbr7ah0BGxutW0NEREREZBXsjXnwtLQ0/PXXX/j111/x77//onXr1nj22WcRHByM999/H5s2bcLixYuN2QTrpK8SKMEVERERERGZb8+VpP7lTAVs0KABTp48iV27dmHkyJGYMGGCCqwk8CIDS03QpQWKap20bg0REZHVk0Jf06dPhyX68MMPVUYSERkxuJLUvwsXLuDHH3/EtWvXMHXqVNStWzfXNtWqVcPgwYON8fTW7epeXQl2zyqAl7/WrSEiIiIj2rZtG2xsbBAdHa3J848dOxabN2/W5LmJrCYt8NKlS6hateo9t3Fzc1PpgmRgl7fp7qtzvBUREVFOGRkZ2LlzJ0JDQ1V2TYcOHWBnZ2e050tNTYWjoyMsmbu7u7oRkRF7rsLCwrB///671su6//77zxhPSXcVs+isdUuIiIhMhkwRU7NmTXTp0gVDhw5V9/JY1ovMzExMmTJFZda4uLigSZMmWLFiRa7ATMaN639ep04dfPvtt7me45lnnkG/fv3w6aefomLFimqbO/3vf/9Dnz597hqjXq5cOfzyyy95tv3q1avo27cvvLy81MVpGW6xdu1aXLlyRb0OIT+THixpg5ApcF599VV1XGdnZ7Rv3x4HDx68q8drzZo1aNy4sdpGxsbLMA69efPmoXTp0li5ciVq1aqltunVqxeCgoLyTQvUvweStSQBrLe3N1566SX1GvUkuH3kkUfU+yjvp4y/t+TUSbIuRgmu5I8o5x+enqQIys/ISBIjgdDjuuVqHbRuDRERkUmQAGrgwIFo1KgR9u7d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", + "image/png": "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U8cHR27cxU+7r2Lj6YD0cVm5UczRBn0alsHApuVQwdOpwNpMRERkqhhcERGZyXivhuXc1XIzLAa/7LuW3pNlaWEBKSooi6zfvy/rgIwCOx8QqdIL5+2+qpZWlT0xqFlZdKhRUgVwRERExOCKiMjsyDxYY5+5P041J6Rs/PZzQfjt3+vYcSEYey6FqEUKcvRvXBb9m/jCx82hwNpMRERkChhcERHRY0kVww5+JdUiPV9LDt5QFQlljq6vt17E7O2X0L66l6pIKL1alvmsekhERGSKWNAiCxw0TET0ePFJydh4OhCLD1zHwath6dvLeTji46droHPNnE0GnxG/f7PHz4aIyDBY0IKIiAplYuTudUup5UJgJJb8ewN/HL6F66ExqgohERGRuWFwRURE+SbzZk3oXhMfPlUNG04F4IkqBTOPFxERkTFjcEVERHrjaGuN3g3KGLoZREREBsG8DSIiIiIiIj1gcEVERERERKQHDK6IiIiIiIj0gMEVERERERGRHjC4IiIiIiIi0gMGV0RERERERHrAUuxZSE1NTZ+NmYiICo/ue1f3PUz38dxERGT85yYGV1mIjIxUt76+voZuChGR2X4Pu7m5GboZRoXnJiIi4z83WaTy8uBDUlJScOfOHbi4uMDCwiI9YpUT2s2bN+Hq6oqihO/NdBXl98f3Zp7vTU5JcvIqVaoULC2ZuZ4Rz01FB9+b6SrK74/vTT/nJvZcZUE+tDJlymT5mPyDFLU/OB2+N9NVlN8f35v5vTf2WGWN56aih+/NdBXl98f3lr9zEy8LEhERERER6QGDKyIiIiIiIj1gcJVDdnZ2GD9+vLotavjeTFdRfn98b6apKL83Y1SUP2++N9NUlN9bUX9/fG/6wYIWREREREREesCeKyIiIiIiIj1gcEVERERERKQHDK6IiIiIiIj0gMEVERERERGRHjC4IiIiIiIi0gMGV0RERERERHrA4IqIiIiIiEgPGFwRERERERHpAYMrIiIiIiIiPWBwRUREREREpAcMroiIiIiIiPSAwRUREREREZEeMLgiIiIiIiLSAwZXREREREREesDgioiIiIiISA8YXBEREREREekBgysiIiIiIiI9YHBFRERERESkBwyuiIiIiIiI9IDBFRERERERkR4wuCIiIiIiItIDBldERERERER6wOCKiIiIiIhIDxhcERERERER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", "text/plain": [ "
" ] @@ -1307,7 +459,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Test Accuracy: 0.7777777777777778\n" + "Test Accuracy: 0.8333333333333334\n" ] } ], From 9afdc9b371924bd3b3f737aaf8ecb6221215474c Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 3 Jun 2025 12:29:16 +0100 Subject: [PATCH 16/23] all Anna's recent comments have been fixed except the one on the stories and the one on reqriting the three paragraphs justifying the swaps --- docs/tutorials/discocirc_babi6_prep.ipynb | 48 +++++++-------- docs/tutorials/discocirc_babi6_training.ipynb | 61 +++++++++++++------ 2 files changed, 65 insertions(+), 44 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 33dd9b9..5b75e69 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -8,7 +8,7 @@ "\n", "# Tutorial: bAbI6 Training and Preprocessing in Python\n", "\n", - "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the bAbI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook." + "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the bAbI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook (now Meta)." ] }, { @@ -36,7 +36,7 @@ "source": [ "Before we delve into the code, we first highlight two new features of the new {term} `parser ` that will be used in this tutorial: the {term}`sandwich functor `and foliated {term}`frames `. \n", "\n", - "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different frames, we can decide how to assign operators to the layers. We can either give each layer its own operator, with different parameters for each layer. Or, we can use the same operator for all layers, meaning all layers share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." + "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different boxes, we can decide how to assign operators to the layers. We can either give each layer its own operator, with different parameters for each layer. Or, we can use the same operator for all layers, meaning all layers share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." ] }, { @@ -48,7 +48,7 @@ "\n", "This cell defines paths and key configuration variables:\n", "- `FILEPATH` specifies paths to the file containing the bAbI6 data. \n", - "- `TEXT_LENGTH` specifies the maximum number of sentences in a context for the experiment.\n", + "- `TEXT_LENGTH` specifies the maximum number of sentences in a text for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term} `functor `.\n", "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated." @@ -66,7 +66,7 @@ "# The path of the file where the initial babI6 data is stored\n", "FILEPATH = '../examples/datasets/babi6_10k.txt'\n", "\n", - "# Maximum length of the context\n", + "# Maximum length of the text\n", "TEXT_LENGTH = 4\n", "\n", "# Maximum Number of wires in a circuit\n", @@ -91,16 +91,16 @@ "source": [ "## 2. Data Preprocessing Function\n", "\n", - "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns a list of texts, a list of questions on these texts, a list of answers to these questions, and a list of the lengths of the texts. This function reads and cleans lines from the `FILEPATH`, splits lines into stories, and extracts text sentences, questions, and answers.\n", + "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns lists of texts, questions, answers and text lengths.\n", "\n", "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for better efficiency. This is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", "\n", - "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences. In other words, we concatenate the sentences in each text (which is an array) to obtain a string." + "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences so that function returns the texts as strings." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "05e8f624", "metadata": {}, "outputs": [], @@ -136,9 +136,9 @@ " question_splits = [i for i, line in enumerate(story) if '?' in line]\n", " for index in question_splits:\n", " # record the text corresponding to each question\n", - " ctx = [line.lower() for line in story[:index] if '?' not in line]\n", - " texts.append(ctx)\n", - " text_length.append(len(ctx))\n", + " text = [line.lower() for line in story[:index] if '?' not in line]\n", + " texts.append(text)\n", + " text_length.append(len(text))\n", " # record the question\n", " qnas.append(story[index])\n", "\n", @@ -233,11 +233,11 @@ "metadata": {}, "source": [ "## 5. Assertion Circuits and Further Processing of the Circuits\n", - "The main spirit of this tutorial is having assertion circuits sequetially composed with the text circuits to see the similarity between the texts and the assertions. More details on assertions and question asking in general can be found [here](https://arxiv.org/pdf/2409.08777).\n", + "The main spirit of this tutorial is having assertion circuits sequetially composed with the text circuits to see the similarity between the texts and the assertions. More details on assertions and implementation of questions in general can be found [here](https://arxiv.org/pdf/2409.08777).\n", "\n", "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box correspond to the nouns from the text. \n", "\n", - "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the second and fifth noun as the subject and object of the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the subject in the location?\"." + "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the third and sixth word as the person and location in the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the person in the location?\"." ] }, { @@ -296,7 +296,7 @@ "id": "210a2617", "metadata": {}, "source": [ - "We needed to extract the list of nouns in the texts and the list of nouns in their corresponding questions to remove the entries where we ask questions on subjects or locations not present in the text. We also filter by text length." + "We needed to extract the list of nouns in the texts and the list of nouns in their corresponding questions to remove the entries where we ask questions on people or locations not present in the text. We also filter by text length." ] }, { @@ -346,9 +346,9 @@ "id": "b04a8ff9", "metadata": {}, "source": [ - "Now that the text circuits are post-processed for optimization, it is time to make the assertion circuits to later sequentially compose the latter with the former. \n", + "Now that the text circuits have been post-processed for optimization, we move on to building the assertion circuits. These will later be sequentially composed with the text circuits.\n", "\n", - "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative assertions respectively. An affirmative assertion corresponds to an affirmative answer to the question. On the other hand, a negative assertion corresponds to a negative answer to the question. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative assertion would be \"Emily not in the kitchen\". For the purposes of this training, all the questions are either in the format of \"Is subject in object?\" or \"Is subject not in object\". Therefore, we will need two boxes for the assertions, a box for the \"is in\" assertions, and another for the \"is not in\" assertions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details about question asking in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", + "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative assertions respectively. An affirmative assertion corresponds to an affirmative answer to the question. On the other hand, a negative assertion corresponds to a negative answer to the question. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative assertion would be \"Emily is not in the kitchen\". For the purposes of this training, all the questions are either in the format of \"Is person in location?\" or \"Is person not in location\". Therefore, we will need two boxes for the assertions, a box for the \"is in\" assertions, and another for the \"is not in\" assertions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details on the choice of implementation of assertions in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", "\n", "Notice that we also created two assertion boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", "\n", @@ -395,21 +395,21 @@ "\n", "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", "\n", - "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question nouns. In order for us to attach the assertion boxes, we have to make sure that the wires from the assertion circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the assertion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created assertion boxes that are also equiped with swaps for this purpose).\n", + "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question nouns. In order for us to attach the assertion boxes, we have to make sure that the wires from the assertion circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the assertion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created assertion boxes that are also equiped with swaps to make sure the correct wires are matched).\n", "\n", - "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"pos\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", + "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"aff\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", "\n", "**Important note**: It is to note that this isn't the standard way to present the questions/assertions (in this approach, we opted for using post-selections directly), and we went for this approach for the sake of simplicity for this tutorial. More complex approaches to assertions on text can be found [here](https://arxiv.org/pdf/2409.08777). " ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "9f50a873", "metadata": {}, "outputs": [], "source": [ - "# Bringing everything together by plugging the question asking part to the text circuits\n", + "# Bringing everything together by plugging the assertions part to the text circuits\n", "for i in reduced_datadict.keys():\n", " \n", " text_circuit = reduced_datadict[i]['text_circuit_sim4_13']\n", @@ -436,13 +436,13 @@ " final_circuit = text_circuit >> quest_mid_layer\n", "\n", " if swap_required:\n", - " final_circuit_pos = final_circuit >> is_in_q_swp\n", + " final_circuit_aff = final_circuit >> is_in_q_swp\n", " final_circuit_neg = final_circuit >> is_not_in_q_swp\n", " else:\n", - " final_circuit_pos = final_circuit >> is_in_q\n", + " final_circuit_aff = final_circuit >> is_in_q\n", " final_circuit_neg = final_circuit >> is_not_in_q\n", "\n", - " reduced_datadict[i].update({'pos_neg_circuit_pair': (final_circuit_pos, final_circuit_neg)})" + " reduced_datadict[i].update({'aff_neg_circuit_pair': (final_circuit_aff, final_circuit_neg)})" ] }, { @@ -458,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -471,7 +471,7 @@ " 'text': reduced_datadict[i]['text'],\n", " 'question': reduced_datadict[i]['question'],\n", " 'answer': 1 if reduced_datadict[i]['answer'] == 'yes' else 0, # Transform 'yes' to 1 and 'no' to 0\n", - " 'quantum_circ_pair_pos_neg': reduced_datadict[i]['pos_neg_circuit_pair'],\n", + " 'quantum_circ_pair_aff_neg': reduced_datadict[i]['aff_neg_circuit_pair'],\n", " 'text_length': reduced_datadict[i]['text_length']\n", " }\n", " })" diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 62ee6af..7fce30c 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -80,10 +80,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "c6023fa1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ "import pickle\n", "\n", @@ -105,7 +114,19 @@ "execution_count": 4, "id": "1565fb9d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "'quantum_circ_pair_aff_neg'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[4]\u001b[39m\u001b[32m, line 10\u001b[39m\n\u001b[32m 8\u001b[39m training_questions.append(value[\u001b[33m'\u001b[39m\u001b[33mquestion\u001b[39m\u001b[33m'\u001b[39m])\n\u001b[32m 9\u001b[39m training_contexts.append(value[\u001b[33m'\u001b[39m\u001b[33mtext\u001b[39m\u001b[33m'\u001b[39m])\n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m training_circuits.append(\u001b[43mvalue\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mquantum_circ_pair_aff_neg\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m]\u001b[49m)\n\u001b[32m 12\u001b[39m val_circuits = []\n\u001b[32m 13\u001b[39m val_answers = []\n", + "\u001b[31mKeyError\u001b[39m: 'quantum_circ_pair_aff_neg'" + ] + } + ], "source": [ "training_circuits = []\n", "training_answers = []\n", @@ -116,7 +137,7 @@ " training_answers.append(value['answer'])\n", " training_questions.append(value['question'])\n", " training_contexts.append(value['text'])\n", - " training_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + " training_circuits.append(value['quantum_circ_pair_aff_neg'])\n", "\n", "val_circuits = []\n", "val_answers = []\n", @@ -127,7 +148,7 @@ " val_answers.append(value['answer'])\n", " val_questions.append(value['question'])\n", " val_contexts.append(value['text'])\n", - " val_circuits.append(value['quantum_circ_pair_pos_neg'])\n", + " val_circuits.append(value['quantum_circ_pair_aff_neg'])\n", " \n", "test_circuits = []\n", "test_answers = []\n", @@ -138,7 +159,7 @@ " test_answers.append(value['answer'])\n", " test_questions.append(value['question'])\n", " test_contexts.append(value['text'])\n", - " test_circuits.append(value['quantum_circ_pair_pos_neg'])" + " test_circuits.append(value['quantum_circ_pair_aff_neg'])" ] }, { @@ -151,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "007b6bc8", "metadata": {}, "outputs": [], @@ -163,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "6857d72a", "metadata": {}, "outputs": [ @@ -193,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "67d6507a", "metadata": {}, "outputs": [], @@ -205,12 +226,12 @@ "\n", "class PairCircuitModel(PytorchQuantumModel):\n", " def forward(self, circ_pairs: list[tuple[Diagram, Diagram]]) -> torch.Tensor:\n", - " pos_circs, neg_circs = zip(*circ_pairs)\n", - " pos_out = abs(self.get_diagram_output(pos_circs))\n", + " aff_circs, neg_circs = zip(*circ_pairs)\n", + " aff_out = abs(self.get_diagram_output(aff_circs))\n", " neg_out = abs(self.get_diagram_output(neg_circs))\n", "\n", - " # implement a function that would merge pos_out and neg_out into an nx2 tensor\n", - " out_tensor = torch.stack((pos_out, neg_out), dim=1)\n", + " # implement a function that would merge aff_out and neg_out into an nx2 tensor\n", + " out_tensor = torch.stack((aff_out, neg_out), dim=1)\n", " out_tensor = torch.softmax(out_tensor, dim=1)\n", " \n", " return out_tensor" @@ -226,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "84d09be7", "metadata": {}, "outputs": [], @@ -244,7 +265,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "d1fcdbe8", "metadata": {}, "outputs": [ @@ -298,7 +319,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "9081225f", "metadata": {}, "outputs": [], @@ -316,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "991d8f44", "metadata": {}, "outputs": [], @@ -332,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "ec1a4b8e", "metadata": {}, "outputs": [ @@ -387,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "2df2f3c7", "metadata": {}, "outputs": [ @@ -451,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "463a2d27", "metadata": {}, "outputs": [ From a83ec62c7cb8a5f86617cf5c0f39b4ce0f6d73db Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 3 Jun 2025 12:37:47 +0100 Subject: [PATCH 17/23] one more pass on the tutorial --- docs/tutorials/discocirc_babi6_prep.ipynb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 5b75e69..651023a 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -36,7 +36,7 @@ "source": [ "Before we delve into the code, we first highlight two new features of the new {term} `parser ` that will be used in this tutorial: the {term}`sandwich functor `and foliated {term}`frames `. \n", "\n", - "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different boxes, we can decide how to assign operators to the layers. We can either give each layer its own operator, with different parameters for each layer. Or, we can use the same operator for all layers, meaning all layers share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." + "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different boxes, we can decide how to assign operators to them. We can either give each box its own operator, with different parameters for each box. Or, we can use the same operator for all boxes, meaning all boxes share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." ] }, { @@ -51,7 +51,7 @@ "- `TEXT_LENGTH` specifies the maximum number of sentences in a text for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term} `functor `.\n", - "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated." + "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers (boxes) of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated." ] }, { @@ -179,7 +179,7 @@ "source": [ "## 3. Converting The Texts into Circuits\n", "\n", - "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the {py:class}`~lambeq.experimental.discocirc.DisCoCircReader`, then we use the {py:meth}`~lambeq.experimental.discocirc.DisCoCircReader.text2circuit` with the `SANDWICH` argument indicating whether to use the {term}`sandwich functor ` or not, as well as the `FFL` argument which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", + "Now that we have our texts and the rest of data ready and pre-processed, we move on to the crucial step of converting them into circuits. We first start by initializing the {py:class}`~lambeq.experimental.discocirc.DisCoCircReader`, then we use the {py:meth}`~lambeq.experimental.discocirc.DisCoCircReader.text2circuit` with the `sandwich` argument indicating whether to use the {term}`sandwich functor ` or not, as well as the `foliated_frame_labels` argument which indicates whether to assign different parameters to the different layers of the frame, or the same parameters.\n", "\n", "Moreover, we store the data in a dictionary where each entry includes the text, the corresponding generated {term}`DisCoCirc` circuit, the question, the answer, and the text length." ] @@ -235,7 +235,7 @@ "## 5. Assertion Circuits and Further Processing of the Circuits\n", "The main spirit of this tutorial is having assertion circuits sequetially composed with the text circuits to see the similarity between the texts and the assertions. More details on assertions and implementation of questions in general can be found [here](https://arxiv.org/pdf/2409.08777).\n", "\n", - "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box correspond to the nouns from the text. \n", + "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box natch with the wires representing the nouns from the text. \n", "\n", "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the third and sixth word as the person and location in the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the person in the location?\"." ] @@ -393,7 +393,7 @@ "source": [ "## 5. Assembling The Text Circuits with the Question Circuits\n", "\n", - "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the question boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", + "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the assertion boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", "\n", "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question nouns. In order for us to attach the assertion boxes, we have to make sure that the wires from the assertion circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the assertion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created assertion boxes that are also equiped with swaps to make sure the correct wires are matched).\n", "\n", From 7be5030d3b8883ffd2ca55214397467b87b8fc4d Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 3 Jun 2025 12:46:49 +0100 Subject: [PATCH 18/23] another pass --- docs/tutorials/discocirc_babi6_prep.ipynb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 651023a..ebd8c0f 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -93,9 +93,7 @@ "\n", "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns lists of texts, questions, answers and text lengths.\n", "\n", - "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for better efficiency. This is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. \n", - "\n", - "After this filtering, the last step is to convert the list of texts from a list of arrays of sentences, to a list of sentences so that function returns the texts as strings." + "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for better efficiency. This is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. " ] }, { @@ -207,7 +205,7 @@ "metadata": {}, "source": [ "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", - "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun. More information on the motivation behind this choice can be found [here](https://arxiv.org/pdf/2409.08777)." + "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun. This choice of anzatz has shown good experiemental results. More information on the motivation behind this choice can be found [here](https://arxiv.org/pdf/2409.08777)." ] }, { From 8dd33593f88e46d89467b76668dd6111a7f524d2 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Tue, 3 Jun 2025 12:49:36 +0100 Subject: [PATCH 19/23] removing errors with training due to outdated naming conventions --- docs/tutorials/discocirc_babi6_training.ipynb | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index 7fce30c..ad8a9f9 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -111,22 +111,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "1565fb9d", "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "'quantum_circ_pair_aff_neg'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mKeyError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[4]\u001b[39m\u001b[32m, line 10\u001b[39m\n\u001b[32m 8\u001b[39m training_questions.append(value[\u001b[33m'\u001b[39m\u001b[33mquestion\u001b[39m\u001b[33m'\u001b[39m])\n\u001b[32m 9\u001b[39m training_contexts.append(value[\u001b[33m'\u001b[39m\u001b[33mtext\u001b[39m\u001b[33m'\u001b[39m])\n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m training_circuits.append(\u001b[43mvalue\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mquantum_circ_pair_aff_neg\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m]\u001b[49m)\n\u001b[32m 12\u001b[39m val_circuits = []\n\u001b[32m 13\u001b[39m val_answers = []\n", - "\u001b[31mKeyError\u001b[39m: 'quantum_circ_pair_aff_neg'" - ] - } - ], + "outputs": [], "source": [ "training_circuits = []\n", "training_answers = []\n", From 7764cdf4caddb4c205a527ec6a5990a814b261eb Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Wed, 4 Jun 2025 01:31:56 +0100 Subject: [PATCH 20/23] another pass was done on the tutorial to make sure the latest comments have been addressed + more changes to wording --- docs/tutorials/discocirc_babi6_prep.ipynb | 44 +++++++++++++++++------ 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index ebd8c0f..110fef3 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -13,10 +13,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "cf759bce", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], "source": [ "from pathlib import Path\n", "from typing import Tuple, List\n", @@ -56,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "28993a72", "metadata": {}, "outputs": [], @@ -98,7 +107,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "05e8f624", "metadata": {}, "outputs": [], @@ -184,12 +193,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "5dbca676", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sapienzanlp/maverick-mes-ontonotes loading\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" + ] + } + ], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -393,8 +417,6 @@ "\n", "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the assertion boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", "\n", - "We start by creating a layer composed of either identities (to link with the wires corresponding to the question nouns), or discards (for the rest of the wires). Once we sequentially compose this layer with the text circuit, this leaves us with a circuit whose codomain has two wires corresponding to the question nouns. In order for us to attach the assertion boxes, we have to make sure that the wires from the assertion circuits are linked to the right wires from the text circuit. To achieve this, we check the question ids of the wires in the text circuits (to see whether the nouns in the text circuits are in the right order). This helps us decide whether to use the assertion boxes that come with swaps, or the ones without swaps (if the question wires are in the wrong order, we would need a swap to bring them back to the right order for the questions. Remember, we already created assertion boxes that are also equiped with swaps to make sure the correct wires are matched).\n", - "\n", "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"aff\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", "\n", "**Important note**: It is to note that this isn't the standard way to present the questions/assertions (in this approach, we opted for using post-selections directly), and we went for this approach for the sake of simplicity for this tutorial. More complex approaches to assertions on text can be found [here](https://arxiv.org/pdf/2409.08777). " @@ -402,7 +424,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "9f50a873", "metadata": {}, "outputs": [], @@ -456,7 +478,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "bc8aecdb", "metadata": {}, "outputs": [], @@ -607,7 +629,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "b9f1a78c", "metadata": {}, "outputs": [], From fc74c82a427d8f92a04a8ca8ee65b13cbc121672 Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Wed, 4 Jun 2025 23:31:14 +0100 Subject: [PATCH 21/23] more updates on the prep notebook + training notebook is still under the works since there seems to be a problem with Lambeq --- docs/tutorials/discocirc_babi6_prep.ipynb | 261 ++++++++++------------ 1 file changed, 121 insertions(+), 140 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_prep.ipynb b/docs/tutorials/discocirc_babi6_prep.ipynb index 110fef3..ece1c6a 100644 --- a/docs/tutorials/discocirc_babi6_prep.ipynb +++ b/docs/tutorials/discocirc_babi6_prep.ipynb @@ -8,24 +8,15 @@ "\n", "# Tutorial: bAbI6 Training and Preprocessing in Python\n", "\n", - "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. bAbI6 tasks are tasks where we supply a text that describes movement of people in different locations and ask questions about the locations of said people while they are moving around. More on the bAbI tasks can be in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook (now Meta)." + "In this tutorial, we will try to implement question answering for bAbI6 tasks using the new {py:mod}`~lambeq.experimental.discocirc`. In bAbI6 tasks, a text describes people moving between locations, and the goal is to answer questions about where they are. More on the bAbI tasks can be found in this [paper](https://arxiv.org/abs/1502.05698) and this [repository](https://github.com/facebookarchive/bAbI-tasks?tab=readme-ov-file) by Facebook (now Meta)." ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "cf759bce", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ouissal.moumou/actual_discocirc/lambeq-docs/tutorials_env/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "from typing import Tuple, List\n", @@ -43,9 +34,9 @@ "id": "e20186c0", "metadata": {}, "source": [ - "Before we delve into the code, we first highlight two new features of the new {term} `parser ` that will be used in this tutorial: the {term}`sandwich functor `and foliated {term}`frames `. \n", + "Before we delve into the code, we first highlight two new features of the new {term}`parser ` that will be used in this tutorial: the {term}`sandwich functor ` and foliated {term}`frames `. \n", "\n", - "In the previous versions of the {term} `parser `, the semantic {term} `functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different boxes, we can decide how to assign operators to them. We can either give each box its own operator, with different parameters for each box. Or, we can use the same operator for all boxes, meaning all boxes share the same parameters. {cite:p}`krawchuk_2025`. For more detail on this, we recommend reading the paper explaining the theory behind the new parser {cite:p}`krawchuk_2025`." + "In previous versions of the {term}`parser `, the semantic {term}`functor `, while providing quantum implementations for boxes, wires and states, did not specify the quantum implementation of {term}`frames `. The {term}`sandwich functor ` tackles this by breaking down a frame into a sequence of boxes with the frame's content {cite:p}`laakkonen_2024`. Now that we have these different boxes, we can decide how to assign operators to them. We can either give each box its own operator, with different parameters for each box. Or, we can use the same operator for all boxes, meaning all boxes share the same parameters. {cite:p}`krawchuk_2025`. For more details on this, we recommend {cite:p}`krawchuk_2025`." ] }, { @@ -59,13 +50,15 @@ "- `FILEPATH` specifies paths to the file containing the bAbI6 data. \n", "- `TEXT_LENGTH` specifies the maximum number of sentences in a text for the experiment.\n", "- `MAX_WIDTH` specifies the maximum number of wires in a circuit for the experiment.\n", - "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term} `functor `.\n", - "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers (boxes) of frames, False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated." + "- `SANDWICH` is a flag for using the {term}`sandwich functor `: True to apply the sandwich functor on the circuits, False to apply the usual semantic {term}`functor `.\n", + "- `FFL` is a flag for activating the foliated {term}`frames `. True to set different parameters for the different layers (boxes) of frames. False to set the same parameter for all the layers. It is to note that it only makes sense to have this flag if the sandwich functor is activated.\n", + "\n", + "We also define file paths to store the prepared training, validation, and test datasets. " ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "28993a72", "metadata": {}, "outputs": [], @@ -87,7 +80,7 @@ "# Updating the FFL parameter\n", "FFL = False\n", "\n", - "# Paths of resulting files for the datasets\n", + "# Paths of resulting files for the datasets for training the model later\n", "TRAINING_DATASET_FILEPATH = 'tutorial_training_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "VALIDATION_DATASET_FILEPATH = 'tutorial_validation_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'\n", "TEST_DATASET_FILEPATH = 'tutorial_test_ffl' + str(FFL) + '_sandwich_' + str(SANDWICH) + '.pkl'" @@ -100,7 +93,7 @@ "source": [ "## 2. Data Preprocessing Function\n", "\n", - "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns lists of texts, questions, answers and text lengths.\n", + "The next step is to write a function `task_file_reader`, which processes the bAbI6 dataset and returns lists of texts, questions, answers and text lengths. This function returns texts as strings.\n", "\n", "After extracting the texts, they are filtered to only keep the ones whose number of sentences is less than or equal to `TEXT_LENGTH`, which we set in the previous cell to determine the maximum number of sentences that we want in a text for better efficiency. This is to make sure that we do not get huge circuits later on when we convert the texts into circuits, which might slow down the experiment. " ] @@ -153,6 +146,9 @@ " questions = [qna.split('\\t')[0].lower().rstrip()[:-1] + \" ?\" for qna in qnas]\n", " answers = [qna.split('\\t')[1].lower() for qna in qnas]\n", "\n", + " # we convert answers to 0s and 1s to be ready for training later on\n", + " answers = [1 if ans == 'yes' else 0 for ans in answers]\n", + "\n", " # Filtering the data \n", " filtered_data = [\n", " (text, question, answer, text_length)\n", @@ -193,27 +189,12 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "5dbca676", "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sapienzanlp/maverick-mes-ontonotes loading\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n" - ] - } - ], + "outputs": [], "source": [ "# making the circuits from the texts and storing them in the dictionary\n", "reader = DisCoCircReader()\n", @@ -229,12 +210,12 @@ "metadata": {}, "source": [ "## 4. Converting The Circuits from DisCoCirc Circuits to Quantum Circuits\n", - "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we chose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun. This choice of anzatz has shown good experiemental results. More information on the motivation behind this choice can be found [here](https://arxiv.org/pdf/2409.08777)." + "While we have the circuits corresponding to the texts ready, they are still {term}`DisCoCirc` circuits, not quantum circuits. Therefore, we need to convert the DisCocirc circuits into {term}`quantum circuits ` by applying an {term}`ansatz `. In this case, we choose to apply the Sim4Ansatz with 3 layers, and one {term}`qubit ` for each noun. This choice of anzatz has shown good experiemental results. More information on the motivation behind this choice can be found [here](https://arxiv.org/pdf/2409.08777)." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "73465ead", "metadata": {}, "outputs": [], @@ -257,14 +238,16 @@ "## 5. Assertion Circuits and Further Processing of the Circuits\n", "The main spirit of this tutorial is having assertion circuits sequetially composed with the text circuits to see the similarity between the texts and the assertions. More details on assertions and implementation of questions in general can be found [here](https://arxiv.org/pdf/2409.08777).\n", "\n", - "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box natch with the wires representing the nouns from the text. \n", + "Now that we already have the circuits representing the texts, we need to make the circuits representing the assertions. Remember, in our experiment, we need to have a pair of circuits, one for the affirmative case, and the other for the negative case. However, when adding the box corresponding to the assertion, we have to make sure that the wires of the assertion box match with the wires representing the nouns from the text. \n", "\n", - "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the third and sixth word as the person and location in the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the person in the location?\"." + "Below, the function `return_noun_list` returns all the nouns in a text. The function `return_q_nouns` return all the nouns in a question. In the latter, we take the third and sixth word as the person and location in the question respectively. This works because of the simple case of the bAbI6 experiments, all the questions are of the format \"Is the person in the location?\".\n", + "\n", + "**Important note**: It is to note that this isn't the standard way to implement the questions/assertions, we went for the simplest approach in this tutorial for the sake of simplicity. More complex approaches to assertions on text can be found [here](https://arxiv.org/pdf/2409.08777). " ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "15baa8dd", "metadata": {}, "outputs": [], @@ -282,7 +265,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "32d767fc", "metadata": {}, "outputs": [], @@ -303,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "eeefa4e2", "metadata": {}, "outputs": [], @@ -318,12 +301,12 @@ "id": "210a2617", "metadata": {}, "source": [ - "We needed to extract the list of nouns in the texts and the list of nouns in their corresponding questions to remove the entries where we ask questions on people or locations not present in the text. We also filter by text length." + "We needed to extract the list of nouns in the texts and the list of nouns in their corresponding questions to remove the entries where we ask questions on people or locations not present in the text." ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "72b15b5f", "metadata": {}, "outputs": [], @@ -331,7 +314,7 @@ "reduced_datadict = {\n", " i: entry \n", " for i, entry in datadict.items() \n", - " if set(entry['noun_list_question']).issubset(entry['noun_list_text']) and entry['text_length'] < TEXT_LENGTH\n", + " if set(entry['noun_list_question']).issubset(entry['noun_list_text'])\n", "}" ] }, @@ -340,12 +323,12 @@ "id": "33fb6e7e", "metadata": {}, "source": [ - "Moreover, remember that to enhance performance, we also wanted to limit the number of wires in every circuit by chekcing that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keep the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." + "Moreover, remember that to enhance performance, we also wanted to limit the number of wires in every circuit by checking that every circuit's codomain (which is the number of open wires of a circuit) is less than or equal to `MAX_WIDTH`. The following filters the entries in the `datadict` dictionary and only keeps the entries in which the text circuits have less than or equal to the maximum number of wires specified in `MAX_WIDTH`." ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "af318e63", "metadata": {}, "outputs": [], @@ -372,14 +355,14 @@ "\n", "We first start with constructing two boxes `q1` and `q2` for both the affirmative and negative assertions respectively. An affirmative assertion corresponds to an affirmative answer to the question. On the other hand, a negative assertion corresponds to a negative answer to the question. For example, if the question related to a text is \"Is Emily in the kitchen?\", the equivalent negative assertion would be \"Emily is not in the kitchen\". For the purposes of this training, all the questions are either in the format of \"Is person in location?\" or \"Is person not in location\". Therefore, we will need two boxes for the assertions, a box for the \"is in\" assertions, and another for the \"is not in\" assertions. The purpose of having two generic boxes is that the ML model will learn later the parameters for these boxes. For more details on the choice of implementation of assertions in {term}`DisCoCirc`, we recommend [this paper](https://arxiv.org/pdf/2409.08777).\n", "\n", - "Notice that we also created two assertion boxes that are equiped with swaps, the purpose of which will become clearer in later parts of the tutorial. \n", + "We added two assertion boxes with swaps to match the wires in the text circuit, in case the noun order is flipped.\n", "\n", - "We apply the same {term}`ansatz ` applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). Lastly, we add the postselections by sequentially composing the resulting circuit from applying the {term}`ansatz ` to a parallel composition of two effects (bras). " + "We apply the same {term}`ansatz ` applied on the text circuits (Sim4Ansatz with 3 layers and one qubit for each wire). " ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "a4ea6896", "metadata": {}, "outputs": [], @@ -397,7 +380,6 @@ "qcirc1 = ansatz(q1)\n", "qcirc2 = ansatz(q2)\n", "\n", - "#add the postselections to the questions\n", "qcirc1_final = qcirc1 >> Bra(0) @ Bra(0)\n", "qcirc2_final = qcirc2 >> Bra(0) @ Bra(0)\n", "\n", @@ -415,21 +397,19 @@ "source": [ "## 5. Assembling The Text Circuits with the Question Circuits\n", "\n", - "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. However, we need to be careful and only attach the wires in the assertion boxes to the corresponding wires in the text boxes so that the nouns match. Moreover, we have to discard the wires of the nouns that are not included in the question. In order to do this, we might need to perform some swaps so that the wires that get composed with the question circuit are the corresponding wires from the text circuit.\n", + "Now that we have all the ingredients in place (the text and assertion circuits), it is time to assemble them using sequential composition. We need to connect the assertion wires only to their matching text wires, so the nouns align. This is where the assetion circuits with the swaps will be needed. Moreover, we have to discard the wires of the nouns that are not included in the question.\n", "\n", - "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"aff\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions.\n", - "\n", - "**Important note**: It is to note that this isn't the standard way to present the questions/assertions (in this approach, we opted for using post-selections directly), and we went for this approach for the sake of simplicity for this tutorial. More complex approaches to assertions on text can be found [here](https://arxiv.org/pdf/2409.08777). " + "Notice that, throughout the next cell, we always have two circuits. The circuit names ending in \"aff\" signal the circuits corrsponding to the affirmative assertions, while their counterparts ending in \"neg\" signal the ones corresponding to the negative assertions." ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "9f50a873", "metadata": {}, "outputs": [], "source": [ - "# Bringing everything together by plugging the assertions part to the text circuits\n", + "# Bringing everything together by plugging the assertion circuits to the text circuits\n", "for i in reduced_datadict.keys():\n", " \n", " text_circuit = reduced_datadict[i]['text_circuit_sim4_13']\n", @@ -462,7 +442,7 @@ " final_circuit_aff = final_circuit >> is_in_q\n", " final_circuit_neg = final_circuit >> is_not_in_q\n", "\n", - " reduced_datadict[i].update({'aff_neg_circuit_pair': (final_circuit_aff, final_circuit_neg)})" + " reduced_datadict[i].update({'quantum_circ_pair_aff_neg': (final_circuit_aff, final_circuit_neg)})" ] }, { @@ -471,51 +451,72 @@ "metadata": {}, "source": [ "## 6. Preparing The Datasets for Training\n", - "Now that our circuit pairs are ready, we move on to the final step of training a model.\n", "\n", - "The first step is to prepare the data for training. We start with updating the \"yes\" and \"no\" entries to 0s and 1s." + "With our circuit pairs prepared, we now move on to the final step: training a model. This begins with creating three datasets: training, validation, and test. We ensure each set is balanced in terms of both text length and answers (positive and negative).\n" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "bc8aecdb", + "execution_count": 20, + "id": "bcecde44", "metadata": {}, "outputs": [], "source": [ - "bAbI6_datadict = {}\n", - "for i in reduced_datadict.keys():\n", - " # Add the updated dictionary with the transformed 'answer'\n", - " bAbI6_datadict.update({\n", - " i: {\n", - " 'text': reduced_datadict[i]['text'],\n", - " 'question': reduced_datadict[i]['question'],\n", - " 'answer': 1 if reduced_datadict[i]['answer'] == 'yes' else 0, # Transform 'yes' to 1 and 'no' to 0\n", - " 'quantum_circ_pair_aff_neg': reduced_datadict[i]['aff_neg_circuit_pair'],\n", - " 'text_length': reduced_datadict[i]['text_length']\n", - " }\n", - " })" + "import random\n", + "from collections import defaultdict\n", + "\n", + "# Add the 'measure' field to each item\n", + "for key, value in reduced_datadict.items():\n", + " temp = -1 if value['answer'] == 0 else 1\n", + " value['measure'] = temp * value['text_length']\n", + "\n", + "# Group items by absolute value of measure\n", + "abs_value_groups = defaultdict(list)\n", + "for key, value in reduced_datadict.items():\n", + " abs_value = abs(value['measure'])\n", + " abs_value_groups[abs_value].append((key, value))\n", + "\n", + "# Balance signs within each group and ensure diverse sizes\n", + "new_balanced_dict = {}\n", + "max_length = 100\n", + "for abs_value, items in abs_value_groups.items():\n", + " # Separate positive and negative items\n", + " positive_items = [(k, v) for k, v in items if v['measure'] > 0]\n", + " negative_items = [(k, v) for k, v in items if v['measure'] < 0]\n", + " \n", + " # Determine the minimum balanced size for this group\n", + " max_size = min(len(positive_items), len(negative_items), max_length)\n", + " \n", + " # Randomly sample from each group to balance\n", + " balanced_positive = random.sample(positive_items, max_size)\n", + " balanced_negative = random.sample(negative_items, max_size)\n", + "\n", + " # Add to the balanced dictionary\n", + " for k, v in balanced_positive + balanced_negative:\n", + " new_balanced_dict[k] = v" ] }, { "cell_type": "markdown", - "id": "3545dc09", + "id": "1324315d", "metadata": {}, "source": [ - "The next step would be to make three sets: training, validation, and test sets. We try to balance the entries." + "Lastly, we need to split the data into training, validation and test sets. We ensure that each dataset contains a balanced number of positive and negative answers during the split. " ] }, { "cell_type": "code", - "execution_count": 14, - "id": "bcecde44", + "execution_count": 17, + "id": "6b66d62f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the minimum size is: 89\n" + "Training set size: 62\n", + "Validation set size: 26\n", + "Test size set: 16\n" ] } ], @@ -523,69 +524,49 @@ "import random\n", "from collections import defaultdict\n", "\n", - "# Add the 'measure' field to each item\n", - "for key, value in bAbI6_datadict.items():\n", - " temp = -1 if value['answer'] == 0 else 1\n", - " value['measure'] = temp * value['text_length']\n", + "# Label configurations\n", + "train_ratio = 0.6\n", + "val_ratio = 0.25\n", + "test_ratio = 0.25\n", "\n", - "# Group items by absolute value of measure\n", - "abs_value_groups = defaultdict(list)\n", - "for key, value in bAbI6_datadict.items():\n", - " abs_value = abs(value['measure'])\n", - " abs_value_groups[abs_value].append((key, value))\n", + "# We group by answer\n", + "answer_to_keys = defaultdict(list)\n", + "for key, value in new_balanced_dict.items():\n", + " answer = value['answer']\n", + " answer_to_keys[answer].append(key)\n", "\n", - "# Balance signs within each group and ensure diverse sizes\n", - "new_balanced_dict = {}\n", - "for abs_value, items in abs_value_groups.items():\n", - " # Separate positive and negative items\n", - " positive_items = [(k, v) for k, v in items if v['measure'] > 0]\n", - " negative_items = [(k, v) for k, v in items if v['measure'] < 0]\n", - " \n", - " # Determine the maximum balanced size for this group\n", - " min_size = min(len(positive_items), len(negative_items))\n", - " print(\"the minimum size is: \" + str(min_size))\n", - " \n", - " # Randomly sample from each group to balance\n", - " balanced_positive = random.sample(positive_items, min_size)\n", - " balanced_negative = random.sample(negative_items, min_size)\n", - " \n", - " # Add to the balanced dictionary\n", - " for k, v in balanced_positive + balanced_negative:\n", - " new_balanced_dict[k] = v" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "91b7c34d", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", + "# Initializing the dictionaries for the training, valodation, and test datasets\n", + "training_dict_bAbI6, validation_dict_bAbI6, test_dict_bAbI6 = {}, {}, {}\n", "\n", - "# Convert dictionary into list of keys and values\n", - "keys = list(new_balanced_dict.keys())\n", - "values = list(new_balanced_dict.values())\n", + "# For each answer, we split the keys proportionally and add to splits\n", + "for label, keys in answer_to_keys.items():\n", + " random.shuffle(keys) # shuffle in-place for randomness\n", "\n", - "# Split into training and temporary (validation + testing)\n", - "train_keys, temp_keys, train_values, temp_values = train_test_split(\n", - " keys, values, test_size=0.4, random_state=42 # 60% training, 40% temp\n", - ")\n", + " total = len(keys)\n", + " n_train = int(train_ratio * total)\n", + " n_val = int(val_ratio * total)\n", + " n_test = total - n_train - n_val # just to account for any rounding error\n", "\n", - "# =Split the temporary set into validation and testing\n", - "val_keys, test_keys, val_values, test_values = train_test_split(\n", - " temp_keys, temp_values, test_size=0.5, random_state=42 # 20% validation, 20% testing\n", - ")\n", + " train_keys = keys[:n_train]\n", + " val_keys = keys[n_train:n_train + n_val]\n", + " test_keys = keys[n_train + n_val:]\n", "\n", - "# Reconstruct dictionaries for training, validation, and testing\n", - "training_dict_bAbI6 = {k: v for k, v in zip(train_keys, train_values)}\n", - "validation_dict_bAbI6 = {k: v for k, v in zip(val_keys, val_values)}\n", - "test_dict_bAbI6 = {k: v for k, v in zip(test_keys, test_values)}" + " # Populating the datasets\n", + " for k in train_keys:\n", + " training_dict_bAbI6[k] = new_balanced_dict[k]\n", + " for k in val_keys:\n", + " validation_dict_bAbI6[k] = new_balanced_dict[k]\n", + " for k in test_keys:\n", + " test_dict_bAbI6[k] = new_balanced_dict[k]\n", + "\n", + "print(f\"Training set size: {len(training_dict_bAbI6)}\")\n", + "print(f\"Validation set size: {len(validation_dict_bAbI6)}\")\n", + "print(f\"Test size set: {len(test_dict_bAbI6)}\")" ] }, { "cell_type": "markdown", - "id": "a37e9614", + "id": "f06c935d", "metadata": {}, "source": [ "The following cell is to check that we have a balanced set. " @@ -593,16 +574,16 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "0dd61567", + "execution_count": 18, + "id": "d718b153", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "53\n", - "53\n" + "31\n", + "31\n" ] } ], @@ -621,7 +602,7 @@ }, { "cell_type": "markdown", - "id": "af769549", + "id": "378620ac", "metadata": {}, "source": [ "Now, the final step is to store all of this data in separate files for training, validation, and testing, to be used in part II of this tutorial." @@ -629,8 +610,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "id": "b9f1a78c", + "execution_count": 19, + "id": "b3937b80", "metadata": {}, "outputs": [], "source": [ From 5f4b70a682e6179d0b25099c58f07bafd29b2e1a Mon Sep 17 00:00:00 2001 From: Ouissal Moumou Date: Thu, 5 Jun 2025 14:41:31 +0100 Subject: [PATCH 22/23] Fixing Anna's comment --- docs/tutorials/discocirc_babi6_training.ipynb | 80 +++++++++---------- 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/docs/tutorials/discocirc_babi6_training.ipynb b/docs/tutorials/discocirc_babi6_training.ipynb index ad8a9f9..053f6d7 100644 --- a/docs/tutorials/discocirc_babi6_training.ipynb +++ b/docs/tutorials/discocirc_babi6_training.ipynb @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "1565fb9d", "metadata": {}, "outputs": [], @@ -160,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "007b6bc8", "metadata": {}, "outputs": [], @@ -172,17 +172,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "6857d72a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "106" + "62" ] }, - "execution_count": 18, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -202,7 +202,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "67d6507a", "metadata": {}, "outputs": [], @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "84d09be7", "metadata": {}, "outputs": [], @@ -253,7 +253,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "d1fcdbe8", "metadata": {}, "outputs": [ @@ -261,33 +261,31 @@ "data": { "text/plain": [ "Parameter containing:\n", - "tensor([ 0.5949, 0.3811, 0.6405, 0.4579, 0.9659, 0.5814, 0.2229, 0.0017,\n", - " 0.4109, -0.0242, 0.4091, 0.6002, 0.6264, 0.8179, 0.4966, 0.7230,\n", - " 0.8393, 0.3294, 0.5204, 0.8359, 0.1531, 0.4993, 0.4438, 0.8782,\n", - " 0.4600, 0.6706, 0.4874, 0.1780, 0.2014, 0.2673, 0.0301, 0.1303,\n", - " 0.6108, 0.8112, 0.5419, 0.2220, 0.7135, 0.3322, 0.3780, 0.3438,\n", - " 0.3505, 0.0662, 0.7175, 0.6219, 0.6385, 0.7993, 0.7480, 0.4351,\n", - " 0.5673, 0.4263, 0.7952, 0.8457, 1.0175, 0.7833, 0.3625, 0.5299,\n", - " 0.6474, 0.7390, 0.6094, 0.9780, 0.7536, 0.0834, 0.5477, 1.2316,\n", - " 0.8532, 0.4774, 0.5899, 0.0178, 0.3342, 0.8407, 0.1243, 0.7978,\n", - " 0.2434, 0.7182, 0.4862, 0.5881, 0.4625, 0.0214, 0.5486, 0.1148,\n", - " 0.9926, 0.5442, -0.0956, 0.6477, 0.3853, 0.2976, 0.5014, 0.8863,\n", - " 0.0393, 0.3295, 0.4438, 0.5494, 1.0617, 0.7210, 0.6808, 0.8502,\n", - " 0.2203, 0.2778, 0.1463, 0.4623, 0.1034, 0.5321, 0.0470, 0.5342,\n", - " 0.6654, 0.5990, 0.7424, 0.9225, -0.0297, 0.6015, 0.9842, 0.1169,\n", - " 0.3636, 0.3986, 0.2004, 0.4137, 0.5094, 0.8895, 0.4809, 0.8469,\n", - " 0.8673, 0.8114, 0.0293, 0.9203, 0.9126, 0.1477, 0.3250, 0.8430,\n", - " 0.0233, 0.0569, 0.1515, 0.6123, 0.2085, 0.0900, 0.6929, 0.7440,\n", - " 0.6629, 0.0290, 1.0456, 0.4284, 0.0580, 0.4547, 0.8499, 0.7113,\n", - " 0.4423, 0.9017, 0.0698, 1.0073, 0.9721, 0.1326, 0.6397, 0.4474,\n", - " -0.0976, 0.4587, 0.3461, -0.0145, 0.1033, 0.6238, 0.9767, 0.7084,\n", - " 0.2046, 0.8929, 0.4338, 0.2117, 0.4601, 0.8923, 0.1992, 0.4317,\n", - " 0.1117, -0.0366, 0.1619, 0.5750, 0.7682, 0.4888, 0.1515, 0.5316,\n", - " 0.0446, 0.5464, 0.6885, 0.6750, 0.1388, 0.4288, 0.6966, 0.6290,\n", - " 0.0298, 0.2423, 0.2986, 0.9552, 0.9564], requires_grad=True)" + "tensor([0.6147, 0.3810, 0.6371, 0.4745, 0.7136, 0.6190, 0.4425, 0.0958, 0.6142,\n", + " 0.0573, 0.5657, 0.5332, 0.3901, 0.9088, 0.5334, 0.7073, 0.7116, 0.2050,\n", + " 0.3078, 0.9809, 0.0103, 0.4660, 0.4604, 0.8547, 0.4525, 0.6317, 0.4760,\n", + " 0.2200, 0.2166, 0.2571, 0.0458, 0.1755, 0.6177, 0.8291, 0.5246, 0.2708,\n", + " 0.7197, 0.3081, 0.3892, 0.2259, 0.3430, 0.0367, 0.7133, 0.6944, 0.5993,\n", + " 0.7455, 0.7119, 0.5221, 0.5530, 0.5382, 0.7668, 0.8359, 0.8591, 0.7898,\n", + " 0.3781, 0.4777, 0.3984, 0.7909, 0.5555, 0.9628, 0.7536, 0.0727, 0.6463,\n", + " 0.9804, 0.9441, 0.4921, 0.6659, 0.0310, 0.3406, 0.7438, 0.0445, 0.9356,\n", + " 0.1712, 0.6581, 0.4811, 0.5881, 0.5484, 0.0326, 0.3926, 0.1839, 0.9251,\n", + " 0.4386, 0.0021, 0.6211, 0.7171, 0.2762, 0.4531, 0.7162, 0.1889, 0.2357,\n", + " 0.4518, 0.1489, 0.8073, 0.5409, 0.7992, 0.7677, 0.1147, 0.1884, 0.1580,\n", + " 0.3393, 0.3173, 0.4194, 0.0163, 0.7111, 0.7837, 0.6585, 0.8177, 0.8756,\n", + " 0.0064, 0.5755, 0.9638, 0.1376, 0.2774, 0.4737, 0.1890, 0.4058, 0.4261,\n", + " 0.9455, 0.4686, 0.7711, 0.8661, 0.7228, 0.0652, 0.8748, 0.8297, 0.1416,\n", + " 0.3217, 0.8403, 0.0139, 0.0618, 0.1611, 0.6558, 0.2958, 0.0541, 0.6938,\n", + " 0.7529, 0.6873, 0.0716, 0.9869, 0.4623, 0.0241, 0.4247, 0.8266, 0.7303,\n", + " 0.4947, 0.8525, 0.0438, 0.8469, 0.9963, 0.1960, 0.6072, 0.4194, 0.0779,\n", + " 0.4956, 0.3324, 0.0729, 0.1357, 0.5109, 0.9635, 0.6790, 0.1673, 0.8449,\n", + " 0.5410, 0.0114, 0.5237, 0.8210, 0.2060, 0.4770, 0.2509, 0.1057, 0.2159,\n", + " 0.5502, 0.8232, 0.4071, 0.0503, 0.4957, 0.0651, 0.5294, 0.8707, 0.7134,\n", + " 0.1942, 0.3897, 0.7002, 0.6356, 0.0303, 0.2085, 0.3232, 0.6837, 0.9468],\n", + " requires_grad=True)" ] }, - "execution_count": 16, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -307,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "9081225f", "metadata": {}, "outputs": [], @@ -325,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "991d8f44", "metadata": {}, "outputs": [], @@ -334,21 +332,21 @@ "\n", "train_dataset = Dataset(training_circuits,\n", " training_answers,\n", - " batch_size=BATCH_SIZE)\n", + " batch_size=BATCH_SIZE, shuffle=False)\n", "\n", "val_dataset = Dataset(val_circuits, val_answers, shuffle=False)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "ec1a4b8e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "36" + "26" ] }, "execution_count": 12, @@ -403,7 +401,7 @@ { "data": { "text/plain": [ - "Text(15.4, 0.7777777777777778, 'early stopping')" + "Text(12.4, 0.75, 'early stopping')" ] }, "execution_count": 14, @@ -412,7 +410,7 @@ }, { "data": { - "image/png": "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U8cHR27cxU+7r2Lj6YD0cVm5UczRBn0alsHApuVQwdOpwNpMRERkqhhcERGZyXivhuXc1XIzLAa/7LuW3pNlaWEBKSooi6zfvy/rgIwCOx8QqdIL5+2+qpZWlT0xqFlZdKhRUgVwRERExOCKiMjsyDxYY5+5P041J6Rs/PZzQfjt3+vYcSEYey6FqEUKcvRvXBb9m/jCx82hwNpMRERkChhcERHRY0kVww5+JdUiPV9LDt5QFQlljq6vt17E7O2X0L66l6pIKL1alvmsekhERGSKWNAiCxw0TET0ePFJydh4OhCLD1zHwath6dvLeTji46droHPNnE0GnxG/f7PHz4aIyDBY0IKIiAplYuTudUup5UJgJJb8ewN/HL6F66ExqgohERGRuWFwRURE+SbzZk3oXhMfPlUNG04F4IkqBTOPFxERkTFjcEVERHrjaGuN3g3KGLoZREREBsG8DSIiIiIiIj1gcEVERERERKQHDK6IiIiIiIj0gMEVERERERGRHjC4IiIiIiIi0gMGV0RERERERHrAUuxZSE1NTZ+NmYiICo/ue1f3PUz38dxERGT85yYGV1mIjIxUt76+voZuChGR2X4Pu7m5GboZRoXnJiIi4z83WaTy8uBDUlJScOfOHbi4uMDCwiI9YpUT2s2bN+Hq6oqihO/NdBXl98f3Zp7vTU5JcvIqVaoULC2ZuZ4Rz01FB9+b6SrK74/vTT/nJvZcZUE+tDJlymT5mPyDFLU/OB2+N9NVlN8f35v5vTf2WGWN56aih+/NdBXl98f3lr9zEy8LEhERERER6QGDKyIiIiIiIj1gcJVDdnZ2GD9+vLotavjeTFdRfn98b6apKL83Y1SUP2++N9NUlN9bUX9/fG/6wYIWREREREREesCeKyIiIiIiIj1gcEVERERERKQHDK6IiIiIiIj0gMEVERERERGRHjC4IiIiIiIi0gMGV0RERERERHrA4IqIiIiIiEgPGFwRERERERHpAYMrIiIiIiIiPWBwRUREREREpAcMroiIiIiIiPSAwRUREREREZEeMLgiIiIiIiLSAwZXREREREREesDgioiIiIiISA8YXBEREREREekBgysiIiIiIiI9YHBFRERERESkBwyuiIiIiIiI9IDBFRERERERkR4wuCIiIiIiItIDBldERERERER6wOCKiIiIiIhIDxhcERERERER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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIjCAYAAAA0vUuxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAesRJREFUeJzt3Qd4lFXaxvE7PQSS0CEU6UU6olIUZRXFLlYsqy4qrthFdxUbKxZc22JB+daVxXUtqGvvimJFkSpIr6Em1AQCpM53PSdMTCAQEpK8U/6/vd6dmXdmkjMJzsk955znRPh8Pp8AAAAAAPsVuf+7AAAAAACG4AQAAAAAZSA4AQAAAEAZCE4AAAAAUAaCEwAAAACUgeAEAAAAAGUgOAEAAABAGQhOAAAAAFAGghMAAAAAlIHgBFSRP/3pT2rZsmWFnvu3v/1NERERld4mAEDoWLlypesrJk6cWKH+wx5nj69MAwYMcAcQighOCDvWURzMMWXKFK+bGvReffVVjR071utmAIDnzjrrLCUkJGj79u37fcyll16q2NhYbd68WYFs/vz5LnBZcAtFof76UHERPp/PdwjPB4LOf//73xK3//Of/+iLL77Qyy+/XOL8SSedpEaNGlX4++Tm5qqgoEBxcXHlfm5eXp474uPjFczOOOMMzZs3j84HQNibNGmSLrroIr300ku6/PLL97l/586datiwoU444QS9//77B/U17b21VatW+ve//+1mOZS3/7APCUeNGlXuUae33npLF1xwgb7++ut9RpdycnLcpQXAYHWg14fwFu11A4Dq9sc//rHE7Z9++skFp73Pl9ap2aeFBysmJqbCbYyOjnYHACB0RpwSExPdSHxpwem9995TVlaWG3U6FF73H8EcmICyMFUPKIV9wtSlSxfNmDFDxx13nAtMd911V1Hndvrpp6tJkyZuNKlNmzZ64IEHlJ+ff8A1Tv656I8//rj++c9/uufZ84866ij98ssvJZ5b2hx1u33DDTfo3XffdW2z53bu3FmffvrpPu23aYZHHnmk+8TRvs///d//HfS89yVLlui8885T48aN3fObNWvmPiXNyMjYZ+SuV69eqlGjhurWreses3r16hI/w48++kirVq0qmv5Y0TVfABDs7L3y3HPP1eTJk5Wenr7P/RaoLFhZwNqyZYtuv/12de3aVbVq1VJSUpJO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2giYf/TPDv8UQ3u9xacb1q9R3633QvggOHnAhpPvPv1wnfHM93p/zjpdeWwr9Whe2+tmAQCAAGKlxi0c2T5O/fr1KzrfqlWroC5FbiHFQocdFR3xslGjfF9+0WiSnXPhqSCv6H7/bRt9csFoTzgquh4V60ITa4lwsAhOHuncJFnn9mym/81cowc/nK83r+1L6VAAAFCChaOzzz5b3333ndavX6+UlBT179/fk5GmQGEjXnYA1Y3g5KHbB7XXR3PXafqqrfrstw06pUuK100CAAABxkKSvwAEAO8wNumhlOQaGta/tbv+yCcLlZNX4HWTAAAAAJSC4OSxPx/fRvVrxWnl5p16+adVXjcHAAAAQCkITh6rFRet205u764/PXmJtu3M8bpJAAAAAAItOI0bN04tW7ZUfHy8evfurWnTph3w8du2bdP111/vFkfGxcWpffv2+vjjjxXMLujVTO0b1VLGrlw9+NECr5sDAAAAIJCC06RJkzRixAiNGjVKM2fOVPfu3TVo0CClp6eX+vicnByddNJJWrlypSvDuWjRIr3wwgtq2rSpgll0VKQePqerrKjeWzPWuEIRAAAAAAKHp8HpySef1LBhwzR06FB16tRJ48ePV0JCgiZMmFDq4+38li1b3A7axxxzjBupOv74413gCnZHtqyrPx/Xxl2/6+252rQj2+smAQAAAPA6ONno0YwZMzRw4MCic5GRke721KlTS33O+++/r759+7qpeo0aNXI7aD/88MPKz9//NtHZ2dnKzMwscQSqW09qp46NE7U5K0d3/m+ufD6f100CAFSBYOqbAAAeB6dNmza5wGMBqDi7vWFD6VPVli9f7qbo2fNsXdO9996rJ554Qg8++OB+v8+YMWOUnJxcdDRv3lyBKi46Sv8Y0kOxUZH6ckGa3py+xusmAQCqQDD1TQCAACkOUR4FBQVq2LCh/vnPf6pXr14aMmSI7r77bjfFb39GjhypjIyMomP16tUKZIenJGnEnip793/wm1Zv2el1kwAAlSzY+iYAgBTt1TeuX7++2wk7LS2txHm73bhx41KfY5X0YmJi3PP8Dj/8cDdCZVP/YmNj93mOVd6zI5jYprhfLUjXtJVbdNubc/TasD6KiozwulkAgEoSjH0TAIQ7z0acLOTYqNHkyZNLjCjZbVvHVBorCLF06VL3OL/Fixe7QFVaaApWFpIev6C7asZGadqKLXrx++VeNwkAAAAIa55O1bNS5FZO/KWXXtKCBQs0fPhwZWVluSp75vLLL3fTGfzsfquqd/PNN7vA9NFHH7niEFYsItQcVi9B957RyV1//LPFWriBhcMAAABA2E3VM7ZGaePGjbrvvvvcdLsePXro008/LSoYkZqa6irt+dni2c8++0y33nqrunXr5vZvshB1xx13KBQNOaq5KxLx5YJ03Tppjt67/hjFRgfVsjQAAAAgJET4wqzmtZV8tQpGthg3KSlJgW7j9mwNGvuttmTl6LoBbfTXUzp63SQACJv34OrCzwUAAv/9t0LDF1b9Z82a30tlT5s2TbfccourdofK1SAxTg+f08VdH//NMs1YtcXrJgEAAABhp0LB6ZJLLtHXX3/trtsUu5NOOsmFJysNPnr06MpuY9g7pUuKzj2iqQp8clP2srLzvG4SAAAAEFYqFJzmzZuno48+2l1/44031KVLF/3444965ZVXNHHixMpuIyT97azOalq7hlK37NRDHy/wujkAAABAWKlQcMrNzS3af+LLL7/UWWed5a537NhR69evr9wWwkmKj9FjF3Rz11/9OVVfL0z3ukkAAABA2KhQcOrcubPGjx+v7777Tl988YVOOeUUd37dunWqV69eZbcRe/RrU19XHtPKXf/r/351BSMAAAAABGhw+vvf/67/+7//04ABA3TxxRere/fu7vz7779fNIUPVeOvp3RQ24a1XLW9Bz+a73VzAAAAgLBQoX2cLDBt2rTJle+rU6dO0flrrrlGCQkJldk+7CU+JkqPX9Bd5zz3g96euVbnH9FM/drW97pZAAAAQEir0IjTrl27lJ2dXRSaVq1apbFjx2rRokVq2LBhZbcRe+nRvLYu69PCXb/73XnanZvvdZMAAACAkFah4HT22WfrP//5j7u+bds29e7dW0888YQGDx6s559/vrLbiFLcPqiDGibGacWmLD03ZZnXzQEAAABCWoWC08yZM9W/f393/a233lKjRo3cqJOFqaeffrqy24j9VNmzEuXm+SlLtTR9h9dNAgAAAEJWhYLTzp07lZiY6K5//vnnOvfccxUZGak+ffq4AIXqcWqXxjqhY0Pl5vt01ztz5fP5vG4SAAAAEJIqFJzatm2rd999V6tXr9Znn32mk08+2Z1PT09XUlJSZbcR+xEREaH7z+qs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u924ceNSn3Pvvffqsssu09VXX+1ud+3aVVlZWbrmmmt09913u6l+e4uLi3NHYJUipzAEAISzgOqbAACBPeIUGxurXr16afLkyUXnCgoK3O2+ffuW+pydO3fuE44sfBmfVawLdGx+CwAAAAQlz0acjJUiv+KKK3TkkUfq6KOPdns02QiSVdkzl19+uZo2bermgpszzzzTVeLr2bOn2/Np6dKlbhTKzvsDVEBjqh4AAAAQlDwNTkOGDNHGjRt13333uYIQPXr00KefflpUMCI1NbXECNM999yjiIgId7l27Vo1aNDAhaaHHnpIAS8/T9q2Zw47U/UAAACAoBLhC4o5bpXHSr5aBSNbjJuUlFS90/Se6iZFxUl3b7Da69X3vQEg3N+DAxw/FwAI/Pdf/nqv7ml6tvEtoQkAAASBli1buqUUoehvf/ubm+0EHCz+gq8uVNQDAAAVYPte2pYsr732mru026HAXostwdi2bZsn3//2228vUaQMKAvBqbpQUQ8AAJST7VnZtm1b/eEPf9All1ziLu22na9KOTk5CnW1atVSvXr1vG4GggjBqbpQUQ8AAJSDhaPzzz/f7Vs5depUbd++3V3abTvvD0+2nYtVIG7VqpVq1Kih7t2766233ir6OjZCddVVVxXd36FDBz311FMlvtef/vQnDR482BXcatKkiXvM3q688kqdccYZJc7l5uaqYcOGevHFF0t9DatWrXKFvOrUqaOaNWuqc+fO+vjjj7Vy5UoXAo3dZyNP1gaTnZ2tm266yX3d+Ph4HXvssfrll1/2Gan66KOP1K1bN/eYPn36aN68eUWPmThxomrXrq13331X7dq1c48ZNGhQic2m956q5/8ZPP7440pJSXGh6vrrr3ev0W/9+vU6/fTT3c/Rfp6vvvpqSE9nRABV1QvLqXqMOAEAgDJY2LnttttcULE//q3KcG56uo5o0kRvPP20zt+1S7fdcotO7dlTjz33nF595x09M3q02rZqpe9//ll//OMfVbugQMf16eP+8E9JTNSrzzyjurVr66cZM3TdyJFqEBOj8/cEoYKsLE3+8kvViorSx//5jzuXk5pqDVHe1q3u+hVnnKETL7zQhQcLFubDDz90+2xapeTSWPCw0atvv/3WBaf58+e7kZ7mzZvrf//7n8477zwtWrTILcq3MGL++te/uvteeukltWjRQo8+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", "text/plain": [ "
" ] @@ -468,7 +466,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Test Accuracy: 0.8333333333333334\n" + "Test Accuracy: 0.5\n" ] } ], From 54140133905acd4887618ab4e43c153f1ee29f5f Mon Sep 17 00:00:00 2001 From: "Neil John D. Ortega" Date: Tue, 17 Jun 2025 14:49:44 +0100 Subject: [PATCH 23/23] Ignore pickle files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ec5a22b..652c654 100644 --- a/.gitignore +++ b/.gitignore @@ -244,3 +244,5 @@ docs/puml/img # ignore runs and related artifacts **/runs/ **/*.lt +**/*.pkl +**/*.pickle