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