Did you know ... Search Documentation:
Pack logicmoo_nlu -- ext/ace_in_gf/docs/first_commit.md

First commit

This project started out as a port of an existing ACE-in-GF implementation. The first commit was based on the 2011-12-14 version of the GF darcs repository `examples/attempto/`-directory implemented by the GF developers in 2009 targeting ACE v6.0. See also the publication:

K. Angelov and A. Ranta.
Implementing Controlled Languages in GF.
N. Fuchs (ed.), CNL-2009 Controlled Natural Languages, LNCS/LNAI 5972, 2010.

This version does not completely match ACE v6.6, i.e. some ACE constructs are not supported. Below, __(F)__ marks things that the current version has already fixed.

  • __(F)__ transitive adjectives: mad-about (`mad about` does not seem to work either)
  • __(F)__ exactly
  • __(F)__ less than
  • __(F)__ everybody
  • __(F)__ everybody X
  • __(F)__ everything
  • __(F)__ somebody X
  • __(F)__ (some|every|no)body who
  • __(F)__ Mary who
  • which as a question pronoun
  • __(F)__ `is not and isn't` are not equivalent
    • __(F)__ `a woman is not a man .` fails
    • __(F)__ `a woman isn't a man .` succeeds
    • __(F)__ `a woman is not every man .` succeeds
    • __(F)__ `a woman isn't every man .` succeeds
  • __(F)__ `are not and aren't` are not equivalent
  • __(F)__ `does not and doesn't` are not equivalent
  • __(F)__ `do not and don't` are not equivalent
  • __(F)__ who (instead of whom) in object relative clauses (`a woman who a man sees`)
  • dative shift (`John gives Mary an apple`)
  • __(F)__ `does wait` (as alternative to waits)
  • adjective coordination
    • a rich and lucky man waits .
    • John is rich and lucky .
  • John is more rich. (John is richer works)
  • John always runs. (`John runs always` works)
  • VP coordination (of both positive and negative VPs) (Note that GF RGL common API supports Conj only with AP, Adv, NP, RS, and S; but there is support for VP coordination in ExtraEng.)
  • __(F)__ negated relative clauses (that is not, `that does not`, `that CN is not`)
  • __(F)__ negated WH-questions (`who does not like Mary?`)
  • __(F)__ WH-word in object position (`who does Mary not like ?`)
  • reflexive pronouns (e.g. itself)
  • strings and string concatenation
  • lists and sets

and it supports some constructs which in ACE do not exist, have been deprecated or should be avoided (i.e. create a warning), e.g.

  • relative clause can be attached to any NP using a comma between the NP and the relative clause (in ACE: relative clauses can be used only for nouns, indefinite pronouns and proper names)
  • `he waits .` (and other unresolvable personal pronouns)
  • `the man waits .` (gives a warning in APE)
  • a man X is the man Y .
  • __(F)__ not more than, not at least, ...
  • numbers larger than 12 as words, e.g. `one hundred and thirty`
  • __(F)__ whom
  • __(F)__ such that
  • `- ( X + X ) waits .` (minus sign should be followed by a number)
  • 1 = - -1 . (-1 is a built-in GF integer)
  • __(F)__ `nothing except` (instead of `nothing but`)
  • __(F)__ multiple variables in apposition (`a man X X X Y ...`)
  • __(F)__ `there is/are` can take any NP as an argument
  • ...