/* Copyright (C) Wolfgang Menzel, Universität Hamburg, 2003-06-27 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ :- use_module(instance_diag). :- nl. :- write_ln('a simple instance-based system with error anticipation'). :- write_ln('subject-verb agreement in simple sentences'). :- nl. exercise(agreement1b,'Build a sentence using the following words.'). item(agreement1b,1,'Mary, sleep', [[[mary, sleeps]], [[mary, slept]], [[mary, will, sleep]], [[mary, is, sleeping]], [[mary, was, sleeping]], [[mary, sleep],[agree,names]], [[mary, sleeping],[progressive,no_aux]], [[sleeps, mary],[subject_first,swap]]]). item(agreement1b,2,'I, drink', [[[i, drink]], [[i, drank]], [[i, will, drink]], [[i, am, drinking]], [[i, was, drinking]], [[i, drinks],[agree,non_3rd_sg]], [[i, drinking],[progressive,no_aux]], [[drink, i],[subject_first,swap]]]). item(agreement1b,3,'he, walk', [[[he, walks]], [[he, walked]], [[he, will, walk]], [[he, is, walking]], [[he, was, walking]], [[he, walk],[agree,'3rd_sg']], [[he, walking],[progressive,no_aux]], [[walks,he],[subject_first,swap]]]). item(agreement1b,4,'they, dance', [[[they, dance]], [[they, danced]], [[they, will, dance]], [[they, are, dancing]], [[they, were, dancing]], [[they, dances],[agree,non_3rd_sg]], [[they, dancing],[progressive,no_aux]], [[dance, they],[subject_first,swap]]]). message(agreement1b,agree, 'Subject and Predicate must agree in person and number'). message(agreement1b,names, 'If the subject is a name the verb needs to be in 3rd person singular form.'). message(agreement1b,non_3rd_sg, 'The pronoun is not 3rd person singular, but the verb is.'). message(agreement1b,'3rd_sg', 'The pronoun is 3rd person singular, so the verb should be as well.'). message(agreement1b,subject_first,'The subject must precede the verb.'). message(agreement1b,swap, 'Swap the two words around.'). message(agreement1b,no_aux, 'An appropriate form of the auxiliary "to be" will be required.'). message(agreement1b,progressive, 'The progressive tense requires a complex verb group.'). :- do_exercise(agreement1b).