Overview of Features
Although AutoMathic's default interface is the
natural-language-oriented "Converse Mode", the command-oriented
"Command Mode" provides a direct interface to the core features that
"Converse Mode" uses indirectly. See the "Manual Calculations" section for a complete
discussion of "Command Mode" and the global features it
provides. The following additional features are exclusive to
"Converse Mode":
Basic
Behavior
and Language Skills
- Accepts free-form input in a restricted subset of the English
language.
- Automatically selects variables for nouns and noun phrases.
- Automatically matches singular and plural forms of words,
including alternate plural forms.
- Fuzzy-matches noun phrases to determine if two or more noun
phrases refer to the "same thing".
- The thresholds for automatic matches and non-matches are
customizable, and the user is asked whenever the match is
inconclusive.
- When the optional "learning mode" is enabled, AutoMathic
records and recalls the user's interpretation of
questionable matches.
- Understands the sometimes-special meaning of quantity words
such as "number", "amount", "fraction", "quantity", "part",
"portion", "multiple", and "percentage".
- Automatically generates appropriate variable names for
implicit "how much" (Amount), "how many" (Number), and embedded
"what" (Answer) questions.
- Allows use of any demonstrative pronoun (this, that, these,
those, them) for referring to the most recent noun or answer
given.
- Handles algebraic math expressions using the symbols "+", "-",
"*", "x", "/", "=", "(", ")", and "%".
- Handles units using a few language conventions.
- Handles all common forms and tenses of the verb "to be", alone
or in combination with the auxiliary verb forms of "have" and
"do", and modal auxiliary verbs such as "should", "would",
"could", "must", etc.
- Rejects translations which are not interpreted as valid
equations or expressions.
- Lists any unanswered questions before completely giving up.
- Allows direct execution of arbitrary "Command Mode" commands.
- Annotates the output of the "list", "save", and "info"
commands with variable names and definitions.
- Alters feedback and messages based on the "detail" setting.
Vocabulary
and Knowledgebase
- Recognizes simple numbers and fractions by name (e.g. one,
dozen, fifteen, ninety, five billion, three tenths, five
sixteenths).
- Knows a few special constants by their common names (e.g. Pi,
Tau, e, Golden Ratio, C).
- Knows some common factors by name (e.g. half, double, triple,
quadruple).
- Knows standard abbreviations for many simple and compound
units that have unique and unambiguous abbreviations (e.g. cm,
km, qt, oz, mph, rpm, cc's).
- Consults an extensive library of mathematical facts as needed,
and incrementally loads only the relevant information.
Indirect
Solution
Strategies
When AutoMathic cannot solve a problem by plugging-in the values
of known variables to find unknowns, it may try to find them using
a few indirect strategies. It will try to apply each of
these techniques, in the following order, to find solutions:
- Create a hypothetical situation by assigning a value to a
variable. AutoMathic uses heuristics to determine which
noun-phrases are safe for creating hypothetical
situations. The strictness of the heuristics can be
relaxed through an optional setting that allows a wider range of
"safe" variables.
- For most problems that require indirect solutions,
AutoMathic's cautious heuristics can find a variable to which to
give a hypothetical value. A few problems require a
less-cautious selection, so the "b_assume_any" Kernel option
lets AutoMathic give a hypothetical value to any unknown
variable that is alone in a denominator. These variables
are usually the object of a preposition, or a simple unit
following a quantity.
- Make opportunistic substitution(s) which simplify a system of
equations. Substitution rewrites one or more equations,
replacing a variable with an equivalent expression taken from
another equation. Substitution combines equations to
reduce the number of unknowns in specific equations.
- Give a value to a "free" variable, one not mentioned in any
question or request for calculation.
- Make any valid, but not necessarily simplifying, substitution.
If AutoMathic's attempts at these strategies do not find answers
to all of the questions, it will give up, but list any questions
that were left unanswered.