annotate README @ 3:cf0f9e6d383d

Clarified some things in the README.
author Atul Varma <varmaa@toolness.com>
date Mon, 12 May 2008 13:53:10 -0700
parents 7c040d675c3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 Humane Imperative Parser (HIP)
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 This is an interactive, primarily text-based command-line environment
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4 in which users can enter information about an action they want to
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 perform, while receiving constant feedback from the interface to
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6 ensure that the computer and user understand each other.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 The exact details of the environment are not set in stone; this could
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9 be performed through ubiquitous quasimodal environment, as with Enso,
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 or it could be initiated from the URL bar of a web browser, a
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 contextual menu, or something else. The only elements required are:
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 * a free-form text entry field,
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 * a suggestion pop-up window,
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 * a preview window that supports HTML content, and
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16 * an optional current selection.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 Example commands that the user could enter include:
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 "email A" such that A is a contact with an email address
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 "fly from A to B" such that A and B are cities
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 "fly to B from A" such that A and B are cities
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 "fly from A to B on C" such that A and B are cities, C is an airline
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 "fly on C from A to B" such that A and B are cities, C is an airline
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 "fly here from A" such that "here" is the user's current selection
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31 and A is a city.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 "reduce redeye in A" such that A is a picture
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 "schedule 3pm dinner with bob tomorrow"
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 "resize A to B" such that A and B are pictures
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39 "resize A to C" such that A is a picture and C is a dimension, and
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40 a dimension is a number followed by "x" followed by a number
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 Both of the "resize" statements may invoke methods on a "verb"
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 object, like so:
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
44
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45 resize_verb.preview(A, B, C)
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 Returns HTML code for a "preview" of what the operation
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 will do, which is executed repeatedly after each
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 user input keystroke, starting from the point that it
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50 is understood that "resize" is the verb to use (i.e.,
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 once the user has typed in the string "resize ").
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53 resize_verb.execute(A, B, C)
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 Actually executes the action.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 Other remarks:
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 * Live feedback is key, so that the user knows what the computer
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 thinks he/she wants. This is the primary difference between the
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 HIP and existing linguistic parsers; the latter do not assume
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62 continuous HC interaction during the creation of the statement.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
64 * Different suggestion lists may be used multiple times in the
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
65 creation of a statement. For instance, when a user is typing
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
66 "fly from chicago to san francisco", the suggestions "fly from"
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
67 and "fly to" may appear after the user has typed "fly"; once the
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 user has typed "fly from", there are no suggestions, but the preview
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
69 may tell to the user that they should enter the name of a city.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
70 Once the user has typed "fly from c", a suggestion list that
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
71 includes a number of cities starting with "c" should show up.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
72
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
73 * Ambiguities are expected, and simply result in multiple options for
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
74 the user to choose from, but should hopefully be fairly uncommon.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
75
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
76 * Note that this is verb->noun. noun->verb is much harder b/c the
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
77 scope of possible options is enormous; specifying a verb first is
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
78 helpful because it specifies scope, which means that it's much
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
79 easier for the computer to help them out.
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
80
3
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
81 * it might be possible to do noun->verb in a limited fashion, if we
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
82 have a very constrained scope for the initial noun; for instance,
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
83 limiting it to very specific subset of options, e.g. dates, zip
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
84 codes, phone numbers, other numerically identifiable things with
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
85 very well-defined formats.
2
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
86
3
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
87 * it may also be possible to do noun->verb if the scope starts out
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
88 narrow and is expanded as the computer "learns" about what things
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
89 the user likes based on browsing history and command history.
2
7c040d675c3c Added README
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
90
3
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
91 * The interface should be habit-forming, so we'll need to carefully
cf0f9e6d383d Clarified some things in the README.
Atul Varma <varmaa@toolness.com>
parents: 2
diff changeset
92 balance the dynamism of the system with its habituability.