Attempto Controlled English Norbert Fuchs et al. Dept CS, Univ Zurich, Switzerland as (mis-)interpreted by Peter Clark Background • Funded continuously from 1989 to 2003 by Swiss NSF. • Employed in two master theses (robot control and querying an ontological database). Also taught to students of Univ Dresden. • Informal collaborations with hospital (use of controlled language for patient records) – Demand for past tense and passive voice • Now: funding from EC as part of the “Network of Excellence” 2003-2007. – ACE was chosen as (basis of) the controlled English for the EU Network of Excellence REWERSE (2004-8) – Initial requirements include: verbalization of formal languages in ACE, NAF as well as logical negation, decidable ACE subset. • Norbert Fuchs is now senior research fellow with the Univ Zurich heading Zurich’s part of REWERSE for next 4 years. • Not a stepping stone to full NL; rather full NL is considered largely out of reach. ACE: Overview and Approach • ACE is completely (& deliberately) knowledge poor – (Exception: numbers, groups, equality) • Parsing in ACE is deterministic – “predictability is better than smarts” – users learn the disambiguation rules, e.g., • PPs attach right-to-left • rules for coordination • More like an English-like programming language than a “natural” language – Though: Norbert claims can achieve both – “Only suitable for logic-like domains, not commonsense reasoning” The ACE System • Three main bits of software: – Language to logic translation – Lexicon editor – Theorem prover ACE Grammar (overview) • Vocabulary – Words only have one sense (per part of speech) – No ontology (sense taxonomy) • Basic sentence: – subject + verb + complements + adjuncts – e.g., “The driver stops the train at the station” • Composite sentences: • • • • • coordination (and, or) subordination (if, then) verb phrase negation (does not, is not) noun phrase negation (no) quantification (a, there is, for every) ACE • Words only have one sense (per part of speech) • Compound nouns are not decomposed – enter them explicitly in the lexicon • Anaphora resolution: – simple search of an object stack + recency • No inheritance hierarchy • Coordination Ambiguity Resolution • Fixed interpretation rules, e.g., – Relative phrases always attach to the immediately preceding noun phrase – PPs always attach to the verb • If there is a misattachment, e.g., in “The driver stops the train with the defective brake”, the user rewrites with a relative phrase, e.g., “the driver stops the train that has a defective brake”. – multiple PPs attach right-to-left – Plurals have a collective interpretation by default • “Three men lift a table” • Use of “cue” phrases to overwrite defaults, e.g., • “Each of three men lifts a table”, to get distributive interpretation ACE • No semantic roles: • “the person hits the nail” event(E,hit(person,nail)) • “the hammer hits the nail” event(E,hit(hammer,nail)) • • • • – User must be careful! Interpretation is context-free Verbs with multiple alternations are not allowed – e.g., “X gave Y Z”, “X gave Y” – no guessing of missing object Ditransitive verbs not allowed – instead use a preposition (e.g., “John gives a book to Mary”, rather than “John gave Mary a book”) prepositions need to be used consistently by user – e.g., “in the morning” “during the morning” – with one exception: “in the bed” vs. “in the morning” • disambiguated based on object type (physical vs. temporal) Background Knowledge in ACE • ACE deliberately has little prior, built-in knowledge, e.g.,; – No built-in knowledge that “give”, “give_to” are related – No built-in knowledge of interword relationships (e.g., “has” vs. “owns”) – No built-in knowledge of how verbs and nominalizations relate • Rather, philosophy is to allow user to specify such knowledge using axioms, so user has control, e.g., – “If a person X gives an object Y to a person Z, then the person X gives the object Y.” – “If a person X has an object Y then the person X owns the object Y”; or simply “If a person has an object then the person owns the object” Multiple ways of saying things… • “The box is red” – box(A) & property(A,red) • “The color of the box is red” – box(A) & color-of(A,B) & property(B,red) • “The red box” – box(A) & property(A,red) 2. The Lexicon Editor • Simple TTY interface; user enters word then: – part of speech – nouns: • singular/plural • mass/count • person/location/time/object – verbs: • 3rd person singular & plural • transitive/intransitive/ditransitive • Is accessible via the Web. more fancy Web-based interface is also under development. 3. Theorem Proving (Reasoning) • ACE translates to first-order logic, not Prolog – wanted non-Horn rules • No temporal reasoning • Use a theorem-prover to spot contradictions – spent 2 yrs wrestling with it (!) – Will help users debug the KB (in theory) • Events are reified. Also… • Feedback to help user – Feeback on failed parses: ACE will identify the first sentence that failed to parse, and try to give more info. – Paraphrase of successful parses: Helpful, providing that the paraphrase does not itself contain the ambiguity in the original sentence.