[Attempto] Some questions about ACE

Norbert E. Fuchs fuchs at ifi.uzh.ch
Fri Jan 17 19:41:15 CET 2014


On 17 Jan 2014, at 16:24 , Vijay Saraswat <vijay at saraswat.org> wrote:

> I am studying ACE with interest.

Excellent.

> My interests go back twenty years ago, when I was working with colleagues on the natural language syntax/semantics interface (what came to be called "glue semantics"). At that time I was also working with  text-based social virtual realities (MOOs), and it was clear to me that it would be very nice if the many English / Agriculture / Political Science etc majors frequenting such places could use a subset of natural language to interact with the MOO, a subset that had a precise computational interpretation.

This is the main goal of ACE, namely to make formal methods available to people who are not familiar with formality.

> Now, I am interested in something similar: permitting  very broad class of business users (non-programmers) to specify (executable) rules of various kinds (e.g. business logic, policy rules, campaign ruels etc) in a "controlled" natural language.  

Several people already used ACE for business and policy rules. We were involved in a project where we used ACE to express clinical practice guidelines, i.e. rules.

> (Particularly rules with non-trivial temporal clauses.)

Please note that ACE does not provide explicit temporal conjunctions like "before", "after", "while" etc. However, temporality can be expressed by prepositional phrases as in "John works in the morning.". If you use explicit times or dates then you can express them as strings, e.g. "John works at "8 o'clock".", but have to process these strings yourself.

> Hence, I am trying to become familiar with the advantages and disadvantages of ACE. I understand the basic premise of ACE (controlled English, single meaningful parse etc) and support it.
> 
> While the "ACE 6.7 Construction Rules" page is helpful, it seems to be missing some cases.
> 
> (a) I see that

ACE does not know "I", but only the third person singular and plural.

> (a.i) John saw a dog, a cat and a pony.
> 
> does not work. (I want a list with more than two items.) The following works:

No, it doesn't since ACE doesn't know the past tense, but only the simple present tense.
> 
> (a.ii) John saw a dog and a cat and a pony.

ACE requires an "and" between all elements of a list. (See the ACE Construction Rules for all constructs that can be combined by "and" and by "or".)

Commas are only used to override the binding order of "and" and "or" (See the ACE Construction Rules 3.4.1 Coordinated Sentences) and in commands (See the ACE Construction Rules 3.6 Imperative Sentences).

> but not
> 
> (*) John saw a dog, and a cat, and a pony.
> 
> So "commas" matter here, counter-intuitively. What is the "idiomatic" way in ACE to say (a.ii)?
> 
> (b) It appears that compound nouns may not always be treated in the same way as non-compound nouns...?

Please explain.

> The following does not work:
> 
> (*) An attendee is a business-entity. He has an email-address and a name and a phone-number. He is related to some followers and some followees and some follow-requests and some favorite-locations. He has some alerts and some ratings and some requests. A follower is an attendee.

A general comment: To increase readability and to prevent wrong associations pronouns as anaphoric references should preferably only be used for short textual distances. 

> There is an error at favorite-locations. Replace that with programmers and it works:
> 
> (b.1) An attendee is a business-entity. He has an email-address and a name and a phone-number. He is related to some followers and some followees and some follow-requests and some programmers. He has some alerts and some ratings and some requests. A follower is an attendee.

Are you sure that you had added the lexicon entry "noun_pl('favorite-locations', favoriteLocation, neuter)." before you parsed the text?

> Note I have added various entries to the lexicon, e.g.:
> 
> noun_sg('follow-request', followRequest, human).
> noun_sg('favorite-location', favoriteLocation, neuter).
> noun_sg('last-location-time-stamp', lastLocationTS, neuter).
> 
> noun_pl('follow-requests', followRequest, human).
> noun_pl('favorite-locations', favoriteLocation, neuter).
> noun_pl('last-location-time-stamps', lastLocationTS, neuter).
> 
> Should I be adding different entries?

This I do not understand.

> Why does 'some follow-requests' not exhibit a problem?

Why should it?

> Interestingly, I changed favorite-locations to be "human" instead of neuter and (b.1) works!
> 
> Can someone tell me why?

This is strange since the gender attribute should only be relevant for references by pronouns.

> (More as I experiment more...)

You are certainly welcome.

Best regards.

   --- nef



More information about the attempto mailing list