Of course it's never really finished. There's more cases I should write treebanks
for and test, but I think the coverage is good enough and the implementation
for the verbs is solid enough that only minor fixes may arise.
There's also the issue of verb participles, but I'll come back to those
when I am looked more closely at the syntax.
Agreement with the focus part (the object) works not only for Pers3, but also for Pers1 and Pers2 NPs (if the verb requires non-typical subject/object valences).
Object-dependent double negation works (in addition to the subject-dependent double negation).
The first one is motivated by PhrasebookLav, the second one - by AttemptoLav.
Also a couple of minor fixes.
There was 55 lines of rather repetitive code with calls to 6 compiler passes.
They have been replaced with 19 lines that call the 6 compiler passes
plus 26 lines of helper functions.
Double negation: sebject-dependent - works, object-dependent - still has to be fixed (in VerbsLav).
Structural words: everybody, somebody, nobody.
Both motivated by AttemptoLav.
The output from commands is represented as ([Expr],String), where the [Expr] is
used when data is piped between commands and the String is used for the final
output. The String can represent the same list of trees as the [Expr] and/or
contain diagnostic information.
Sometimes the data that is piped between commands is not a list of trees, but
e.g. a string or a list of strings. In those cases, functions like fromStrings
and toStrings are used to encode the data as a [Expr].
This patch introduces a newtype for CommandOutput and collects the functions
dealing with command output in one place to make it clearer what is going on.
It also makes it easier to change to a more direct representation of piped
data, and make pipes more "type safe", if desired.
- Alternative variants in AScared.
- The order of adv. modifiers: first time, then place (PSeeYouPlaceDate).
- Fixed: the object valence in QWhatAge; Day.point linearization.
- PSeeYouPlaceDate is now less formal.
- Open/Closed and SeeYou functions are ok now, except that the word order in Open/Closed is a bit clumsy. TODO: "<what> <when> is open/closed" (currently not supported by the RG).
Fixed QWhatName, QWhatAge, HowMuchCost and ItCost, however, the solutions have to be reviewed.
Introduced a Lav-specific type for Language (affected also NPNationality etc.) to support a different realization of ASpeak.
Introduced alternative realizations for AHasName and ASpeak (the most typical/simple variant is the default one).