## User's Guide of NAL

### Input/Output Language

In this demonstration, NAL implements the following formal language, Narsese. The input and output of the system are Narsese judgments.
```           <judgment> ::= [<statement> [frequency-value, confidence-value]]
<statement> ::= <relation>(<term>, <term>)
| <compound-statement>
| <term>
<term> ::= <word>
| <variable>
| <compound-term>
| <statement>
<variable> ::= <independent-variable>
| <dependent-variable>(<independent-variable>*)
<relation> ::= inheritance
| similarity
| implication
| equivalence
| instance
| property
| inst_prop                                // instance-property
<compound-statement> ::= negation(<statement>)
| conjunction([<statement>, <statement>+])
| disjunction([<statement>, <statement>+])
<compound-term> ::= ext_set([<term>+])                       // extensional set
| int_set([<term>+])                       // intensional set
| ext_intersection([<term>, <term>+])      // extensional intersection
| int_intersection([<term>, <term>+])      // intensional intersection
| ext_difference(<term>, <term>)           // extensional difference
| int_difference(<term>, <term>)           // intensional difference
| product([<term>, <term>+])
| ext_image(<term>, <term>)                // extensional image
| int_image(<term>, <term>)                // intensional image
```
The frequency-value is a real number in [0, 1]; the confidence-value a real number in (0, 1).

### User Interface

The program can be invoked in the following ways:
• revision(J1, J2, J).
Judgment J is the result of a revision between judgments J1 and J2. The three judgments all have the same statement in them.
• choice(J1, J2, J).
Judgment J is the result of a choice between judgments J1 and J2.
• inference(J1, J2, J).
Judgment J is the conclusion derived from judgments J1 and J2 as premises.
• inference(J1, J).
Judgment J is the conclusion derived from judgment J1 as single premise.